Czy są jakieś wady podjęcia pracy, w której będę używać unikalnego języka programowania? [Zamknięte]


37

Właśnie ukończyłem college z dyplomem CS, więc chciałbym znaleźć pracę, w której mogę dowiedzieć się więcej o tej dziedzinie i zdobyć doświadczenie zawodowe.

Przeprowadziłem wywiad w firmie, która używa własnego wewnętrznego języka programowania i nie sądzę, aby inni go używali. Nie wspominali o użyciu innych języków ani o tym, czego używają w środowisku programistycznym.

Co powinienem martwić podejmując taką pracę? Gdybym miał zmienić pracę później, czy musiałbym ponownie zacząć szukać pozycji na poziomie podstawowym, ponieważ nie zdobyłem żadnego doświadczenia związanego z konkretnym językiem?


8
Język nie będzie ważny, dopóki czujesz się komfortowo w pracy, środowisku pracy i obowiązkach.
Marcelo,

5
Ukończenie dyplomu CS oznacza, że ​​możesz uczyć się nowych rzeczy. Będziesz stale informowany o sytuacjach, w których musisz zdobyć / nauczyć się nowego języka lub technologii, i to nie jest inaczej. To, co zabierasz z pracy do pracy, to doświadczenie w rozwiązywaniu problemów. Podczas jazdy pojawia się składnia określonego języka.
Chris

11
Czy przypadkiem zastrzeżony język MUMPS ?
R0MANARMY

3
Jeśli to Wasabi ( blog.fogcreek.com/the-origin-of-wasabi ) - weź to!
Gerry

3
@DaveShaw: I ludzie wciąż biegają z bykami. Niekoniecznie czyni to dobrym pomysłem;).
R0MANARMY

Odpowiedzi:


28

Główne wady:

  • praca w „niestandardowym środowisku” może oznaczać ograniczone narzędzia / wsparcie, które mogą być denerwujące, gdy utkniesz w problemie.
  • Język, którego używają, może być źle zaprojektowany, co powoduje, że wcześnie wychwytujesz złe nawyki i piszesz włośliwy kod, aby stworzyć obejścia.
  • Baffony HR nie rozpoznają twojego doświadczenia. (To jest OK. Firma, która opiera się na HR, aby zatrudniać pracowników technicznych, nie jest tym, dla którego zazwyczaj chcesz pracować. Po kilku latach większość wspaniałych miejsc pracy i tak powstaje w wyniku połączeń).

Gdybym to był ja, zapytałbym ich, dlaczego używają języka wewnętrznego. Jeśli dzieje się tak z uzasadnionego powodu, takiego jak zwariowane przeciwwskazania sprzętowe, domena, której nie da się łatwo wymodelować w żadnym z istniejących języków, to jest w porządku. Z drugiej strony, jeśli ich odpowiedź sugeruje, że stworzyli swój własny język, aby mogli zebrać razem kilka hacków i logiki biznesowej, co stanowi grupę zwariowanych makr, to jest to duża czerwona flaga. Chcesz się upewnić, że stosują dobre zasady inżynieryjne, abyś mógł się od nich uczyć i odnieść sukces.W takim przypadku możesz sprawdzić, czy mogą oni racjonalnie uzasadnić użycie języka własnego, który nie ma bazy wiedzy społeczności i wsparcia zewnętrznego. Może się okazać, że ich decyzja jest całkowicie racjonalna (uważam, że Facebook zbudował własną wersję PHP, aby poradzić sobie ze skalowalnością, co zrobiło dla nich całkiem nieźle), lub może się okazać, że stworzyli potworność języka, który był tak ściśle sprzężone ze swoimi podstawowymi systemami, że nie mogą się od niego oderwać. Zaufaj mi, nie chcesz pracować w języku, którego głównym typem danych jest ImARInObj (obiekt faktury niezmiennej dla kont). W tego typu sytuacjach często dochodzi do ścisłego powiązania między językiem a potrzebami biznesowymi, a codzienne radzenie sobie z tego rodzaju systemem byłoby absolutnym koszmarem.


12
Właściwie to nie jest w porządku, ponieważ baffony HR prowadzą większość rekrutacji, nawet dla wielu dobrych firm ...
Cervo

1
Zgodziłbym się z narzędziami / wsparciem. W mojej starej pracy korzystaliśmy z niestandardowego silnika dostępu do danych. Nie potrafię powiedzieć, ile razy chciałem wyszukiwać w Google informacje o napotkanych błędach czasu wykonywania, ale musiałem sobie przypomnieć, że to była sprawa wewnętrzna. Nie możesz nawet wysyłać pytań do stackoverflow w celu uzyskania pomocy. Jesteś na łasce swojej firmy i lepiej żeruj, że mają dobrze dokumenty, stronę / sekcję często zadawanych pytań i / lub dokumentację dotyczącą rozwiązywania tych dokuczliwych nieprzewidzianych problemów, które normalnie zajmowałyby godziny. To było do bani. Cieszę się, że wróciłem z NHibernate.
A-Dubb,

„Nie możesz nawet wysyłać pytań do stackoverflow w celu uzyskania pomocy”. Co jeśli przekonasz jedną z osób, która utrzymuje wewnętrzną sieć, do utworzenia wewnętrznego klonowania SO?
JAB

Wpadłem na podobny problem. Bardzo wyspecjalizowane języki bez bazy użytkowników mają problemy ze swoimi narzędziami. Jedną z opcji, której użyłem, jest pobranie narzędzia podobnego do ząbka i napisanie kodu, aby napisać kod. Zwłaszcza jeśli wiele z nich to płyta kotłowa.
Spencer Rathbun

96

Uciekaj i uciekaj szybko. Jeśli nie jesteś zdesperowany do pracy i jesteś bardzo głodny, jest to sytuacja, z której chcesz uniknąć.

Mam doświadczenie w firmie, która to zrobiła, a jedynym powodem, dla którego to zrobili, było to, że ich pracownicy nie mogli zdobyć znaczącego, zbywalnego doświadczenia. Naprawdę chodziło o kontrolę.

Inni, którzy powiedzieli tutaj, że „programowanie to programowanie”, mają rację, ale zwróciłbym to na głowie i zapytam, dlaczego nie skorzystać z jakiegoś standardowego języka, dla którego istnieje wsparcie zewnętrzne, biblioteki, fora i pula dostępnych programistów do wyboru z?

Jedyny moment, w którym myślę, że taka sytuacja byłaby OK, byłby, gdyby jedynym językiem firmy był niestandardowy sprzęt. Na przykład, musisz napisać wszystko dla interferometru gamma 9000X przy użyciu kodu zestawu / maszyny specyficznego dla tej maszyny.


21
Potencjalny brak wsparcia i dokumentacji (nigdy nie wiedziałem, że narzędzia wewnętrzne są tak dobrze udokumentowane jak standardowe narzędzia) jest dużym problemem, IMO. Powody robienia tego w ten sposób muszą być dobrze zrozumiane.
Ethel Evans,

15
+100 Pomyśl o tym ... następna pozycja, której szukasz, ma główny język, będziesz mieć zero lat doświadczenia zawodowego / stosownego. Zaczniesz od nowa jako Junior Developer.

2
Co jeśli mówi o Google, a językiem jest sawzall ( labs.google.com/papers/sawzall.html ) lub Go (zanim było to publiczne)? Czy nie ma innych dobrych powodów, aby wymyślić nowy język?
Neil G

3
@Neil - Wiele wspaniałych powodów, a ludzie zwykle nazywają je małymi językami, DSL (języki specyficzne dla domeny) lub (w przypadku Google) „następną wielką rzeczą”. Z pewnością nie mam nic przeciwko prawnie zastrzeżonym językom. OP stwierdził, że jest to jedyny używany język. Google nie ma nic przeciwko standardowym językom.
niepythonic

3
Podoba mi się pomysł patrzenia na motywy firmy, ale IMHO, wymyślanie własnego języka wyłącznie w celu uwięzienia pracowników, nie jest pomysłem, który mógłby odejść od podstaw. Zamiast tego prawie na pewno ktoś wymyślił język, aby rozwiązać konkretny problem, a teraz jest używany głównie ze względów starszych. Nie jest to idealne środowisko, ale przynajmniej łagodne.
tylerl

22

Ponieważ twoje CV jest w zasadzie puste po ukończeniu studiów, twoja pierwsza praca bardzo przyspiesza twoją przyszłą ścieżkę kariery. Twój następny potencjalny pracodawca (ów) będzie przykładał dużą wagę do tej pracy. Tak więc, chyba że będziesz programować również w innych (bardziej zbywalnych) językach, zdecydowanie odradzam podejmowanie tej pracy.

Mówię to z doświadczenia, ponieważ właśnie skończyłem pierwszą pracę, którą miałem po ukończeniu studiów z CS, gdzie byłem na prawie dokładnie tak, jak to opisujesz. Większość programowania została wykonana w zasadniczo nieznanym języku o nazwie Progress (aka OpenEdge ABL). To jest straszne. Nie tak zły jak COBOL, ale blisko. Utknąłem tam, ponieważ w okolicy, w której ukończyłem szkołę, nie ma wielu prac programistycznych, a przed przeprowadzką czekałem na moją żonę, aby ukończyła studia.

Zmuszenie tego języka do rozmowy z innymi językami lub bazami danych było prawie niemożliwe (przyłączyło się ono również do własnej, zastrzeżonej bazy danych - bonus!). Spędziłem dużo czasu samodzielnie pisząc frameworki, które już istniały w innych językach i prawdopodobnie były już lepiej zaimplementowane, ponieważ język ten nie wspierał bardzo dobrze tego rodzaju paradygmatu „rozszerzenia”. Język był bardziej dostosowany do podejścia „skontaktuj się z Progress Corp. z prośbą o dodanie funkcji i poczekaj, aż pojawi się wersja n + 1 dla nowej funkcji”. Nie trzeba dodawać, że przemysł oprogramowania nie porusza się wystarczająco wolno, aby było to realne podejście. Nie będę dalej mówił o tym, jak źle było, ale zakładam, że spotkasz się z podobną sytuacją, jeśli masz również do czynienia z prawnie zastrzeżonym językiem.

Aby dodać do tego, istniejąca podstawa kodu była, powiedzmy, nieoptymalna. Wiele starszych kodów z końca lat 80. i wczesnych 90. Założę się, że powinieneś spodziewać się czegoś podobnego, ponieważ uważam, że większość firm trzyma się tylko zastrzeżonych języków, ponieważ mają przy sobie dużo tego starszego bagażu. Pamiętaj, że takiemu pracodawcy prawdopodobnie trudno jest znaleźć programistów chętnych do kodowania w tym starszym / zastrzeżonym środowisku, a ponadto prawdopodobnie muszą również zapłacić za szkolenie, ponieważ nikt o tym nie słyszał. Twoi współpracownicy prawdopodobnie nie będą także tytaniami inżynierii oprogramowania, ze względu na efekt Morza Martwego(każdy z talentem prawdopodobnie już odszedł). Miałem wiele problemów z recenzjami kodu, próbującymi używać kodu obiektowego, nie mówiąc już o wszelkiego rodzaju wzorcach projektowych, ponieważ po prostu go nie rozumieli (ludzie w moim zespole mieli co najwyżej stopień MIS (bez obrazy) )).

Wreszcie, zakładając, że wykonujesz tę pracę, ale pragniesz zrobić coś lepszego po odejściu, aby stać się konkurencyjnym dla swojej następnej pracy, musisz poświęcić dużo wolnego czasu poza pracą, tworząc łamliwe zabawki w bardziej zbywalnych językach (i prawdopodobnie większość tego, co tworzysz) lub zrób to, co zrobiłem i zaoszczędź trochę pieniędzy, zanim rzucisz i spędzisz miesiąc lub dwa robiąc to samo. Tak czy inaczej, jest to bardzo stresująca rzecz, szczególnie jeśli lubisz mieć jakiekolwiek relacje towarzyskie poza pracą lub spędzasz wolny czas, robiąc coś, co nie jest kodowane od czasu do czasu.

Teraz moje doświadczenia mogą nie być przypisane bezpośrednio do twojego wyboru, ale jestem pewien, że niektóre z nich będą miały zastosowanie. Mam nadzieję, że przynajmniej da ci kilka pytań do poruszenia. Jak wspomnieli inni, prawdopodobnie chcesz dowiedzieć się, jakich narzędzi używają (sprzęt, środowisko programistyczne / IDE i zdecydowanie kontrola wersji). Joel testowy może być użytecznym przewodnikiem.

TL; DR

Nie rób tego

PS Dla tych, którzy mówią, że nauka nowego języka jest przydatna, to samo w sobie jest prawdą. Problem polega na tym, że utkniesz w używaniu tego języka prawie wyłącznie w pełnym wymiarze godzin przez długi czas, tracąc kontakt z bardziej przydatnymi językami (i technikami). Tego właśnie chcesz uniknąć.


To. Coś takiego jest dobre dla wygodnej, bezstresowej pracy, która przetrwa do emerytury. To nie jest dobry sposób na rozpoczęcie kariery.
Wayne Molina

To przerażająca myśl @Wayne: Naucz się języka zastrzeżonego tuż po szkole, a następnie używaj go wyłącznie przez 50 nieparzystych lat ...
Morgan Herlocker

Przerażające jest lekceważenie tego. Nevermind fakt, gdybyś kiedykolwiek zwolniony lub firma przeszła pod, trzeba zerowe umiejętności poszukiwanych na rynku o wartości do nikogo. Równie dobrze mógłbyś nie istnieć w świecie biznesu.
Wayne Molina,

Właśnie skończyłem kontrakt w średniej wielkości miejscu, którego podstawowy system jest napisany w toku - nie jest to takie nieznane. Na szczęście byłem jednym z nowych koderów .Net łączących się z systemem za pośrednictwem wywołań usług internetowych. Nadal zdołali zdobyć kodery Progress, ilekroć ich potrzebowali.
dave

16

Oczywistym minusem jest to, że nie będziesz w stanie dodać tej pracy do wymogu „5+ doświadczenia w posługiwaniu się językiem x”, który będą obowiązywać w przyszłych ofertach pracy. Może to być bardziej irytujące, niż mogłoby się wydawać (mówiąc jako ktoś, kto ma wieloletnie doświadczenie, ale szeroką gamę języków programowania). Mam doświadczenie zawodowe z VBA, które równie dobrze może być doświadczeniem z LOLCODE, na podstawie pracy, której szukam dzisiaj.

Ale czy używają wyłącznie tego języka? Rzadko zdarza się, aby firma używała tylko jednego języka. Nawet mój czas z VBA obejmował trochę ASP, Java i PostgreSQL.


Zredagowałem swoje pytanie, aby było bardziej szczegółowe; nie wspomnieli jeszcze o żadnym innym języku, więc muszę ich zapytać o to, kiedy następnym razem będę z nimi rozmawiać.
AlexMA,

3
Właściwie mam problemy, ponieważ chcę pracę w Javie, a całe moje doświadczenie jest w .NET, więc nikt mnie nie zatrudni i są BARDZO podobne. Dzięki całkowicie niestandardowemu językowi będziesz miał jeszcze trudniejszy czas. Ludzie zajmujący się zasobami ludzkimi i większość osób rekrutujących są kretynami i myślą, że potrzebujesz 5 lat doświadczenia w każdej technologii, której dotykasz ...
Cervo

8

Zwykle zgadzam się z mantrą: „ programowanie to programowanie ”, niezależnie od języka, w którym pracujesz. Tyle programowania to nauka myślenia, a reszta to tylko składnia. Potencjalny przyszły pracodawca będzie pod większym wrażeniem: „ Osiągnąłem X dzięki Firmie Y ” niż „ Znam język X od Y lat ”.

Ostatnia praca, którą podjąłem, wymagała dużo pracy w języku PL / SQL i nigdy nie napisałem ani jednej linii języka PL / SQL - podniosłem ją w ciągu około dwóch tygodni.

To powiedziawszy, zdecydowanie będę ćwiczyć z innymi językami, żeby pozostać na bieżąco. Będąc w nowej pracy, miej projekt zwierzaka lub dwa, które utrzymają twoje ramię programistyczne w bardziej standardowym języku, ale nie przejmuj się zbytnio.


To był mój plan; w weekendy piszę własne aplikacje (lub cokolwiek), aby doskonalić swoje umiejętności w zakresie technologii, które mnie interesują. To powiedziawszy, jak wspomina Brian, mogę nie zdobyć kwalifikacji na oferty pracy wymagające X-letniego doświadczenia z językiem Y. wziąłeś wymaga trochę doświadczenia PL / SQL?
AlexMA,

@Alex: „... może nie zdobyć kwalifikacji na oferty pracy wymagające X-letniego doświadczenia w posługiwaniu się językiem Y” to przypadek podjęcia jakiejkolwiek pracy. Podjęcie określonej pracy oznacza, że ​​tracisz inne możliwości.
Chris

2
@Chris Tak ... ale jest trochę inaczej, jeśli uczysz się „FooBar” i nie masz nadziei na przeniesienie go do innej firmy, która również używa „FooBar”. jeśli nauczysz się PHP ... na pewno nie uczysz się C ... ale jest mnóstwo firm, które płacą za PHP.
WernerCD,

3
-1 To poprawna odpowiedź, ale nie na to pytanie.
wilhelmtell,

2
„Potencjalny przyszły pracodawca będzie pod większym wrażeniem,„ osiągnąłem X dzięki Firmie Y ”niż„ Znam język X od Y lat ”. --- Moje doświadczenie po obu stronach wywiadów technicznych było dokładnie przeciwne.

6

W IT firma często ma do czynienia z rekruterami, aby znaleźć dobrych kandydatów. Rekruterzy nie są specjalistami IT, więc mają pewne kryteria i dopasowują kandydatów, a następnie odsyłają ich z powrotem do firmy. Podobnie dzieje się z zasobami hummanów w dużych firmach.

Masz z tym problem. Nie pasujesz do kryteriów rekrutujących. Powiedziałbym więc, że nie ma problemu z twoimi kompetencjami. Programowanie to programowanie, a solidny programista powinien wiedzieć, jak przełączać się z jednego języka na inny, ponieważ składnia jest mniej ważna niż umiejętność tworzenia niezawodnego kodu, kodu testowalnego i kodu, który można utrzymać. Te zdolności są w większości niezależne od języka.

Jednak dopóki nie będziesz pasować do kryteriów, które nie będą wymagały rekrutacji Cię przez informatyków, znalezienie przyszłej pracy będzie prawdopodobnie utrudnieniem. Nawet jeśli i tak będziesz konkurencyjny. Te osoby nie wiedzą, jak to oceniać, ponieważ nie są informatykami.

Zdecydowanie nie poleciłbym tej pracy po raz pierwszy. Ale jeśli masz już jakiś wpis w swoim CV na temat szeroko stosowanych technologii (Java, PHP, C, C ++, C #, ...), skorzystaj z niego, jeśli Ci się spodoba.


Dziękujemy za wgląd w rekruterów; to brzmi dobrze.
AlexMA,

5

Zdecydowanie są umiejętności, które można podnieść / poprawić przy użyciu zastrzeżonych języków i środowisk. Jak wspomniano w innych odpowiedziach, niektóre umiejętności wykraczają poza język i mogą być bardzo cenne po wznowieniu.

Jednak umiejętności te są często pomijane, gdy osoby przeglądające CV nie mają charakteru technicznego. Często (w dolnej części spektrum jakości pracy, która niestety jest często najlepszym rozwiązaniem dla stosunkowo niedoświadczonych programistów) wznowienia będą oceniane przede wszystkim na x lat języka y , a inne umiejętności, których możesz nie znać graj, dopóki nie znajdziesz stopy w drzwiach z wywiadem.

Innym czynnikiem, który należy wziąć pod uwagę, jest to, że środowiska własnościowe mają tendencję (przynajmniej imo) do tego, że są bardziej źle zaprojektowane, kludgey i ogólnie frustrujące niż środowiska głównego nurtu. Praca wyłącznie w złym, zastrzeżonym systemie może być bardzo zniechęcająca, szczególnie dla kogoś, kto dopiero zaczyna karierę programistyczną.

To powiedziawszy, pamiętaj, że doświadczenie z zastrzeżonym systemem, choć nie tak dobre, jak podobne doświadczenie podczas pracy z popularnymi językami głównego nurtu, wciąż jest lepsze niż brak doświadczenia z długiej perspektywy. W przypadku niektórych pozycji będziesz mieć przewagę nad poziomem podstawowym, a w przypadku innych możesz (lub nie) nadal kwalifikować się jako poziom podstawowy dla określonych języków, ale twoje doświadczenie znacznie wyprzedzi większość konkurencyjnych osób do tych prac.

Zanim rozważysz rezygnację z oferty z powodu skoncentrowania się na zastrzeżonym języku, pamiętaj o aktualnym rynku pracy i o tym, jak ogólnie przyjmowane są Twoje aplikacje.


3

Wszystko sprowadza się do tego, jakie dodatkowe języki i umiejętności zdobędziesz. Jeśli w rzeczywistości ich język wewnętrzny nie jest używany ani nawet znany poza firmą, będzie miał ograniczony zakres kariery zawodowej (chyba że prawdopodobnie wybuchnie i będzie następną wielką rzeczą). Spędziłem kilka lat pracując z narzędziem strony trzeciej, które samo w sobie jest dla mnie bezużyteczne (karierowe), jednak pracując nad tymi projektami poprawiłem swoje umiejętności HTML, css i javascript. Dowiedziałem się również dużo o tym, jak projekty korporacyjne są prowadzone i strukturyzowane, jak radzić sobie z klientami, jak zarządzać oczekiwaniami. Wszystkie rzeczy, które są nieodłączną częścią nowoczesnego oprogramowania, w rzeczywistości nie są językiem.


Zredagowałem moje pytanie, aby zauważyć, że nie wspomnieli o żadnych językach pomocniczych; jednak dobre punkty na temat umiejętności niezwiązanych z językiem.
AlexMA,

2

Co z frameworkiem: IDE, edytor, biblioteki? Najbardziej złożone aplikacje biznesowe. w tych dniach nie można tego zrobić przy pomocy zwykłego edytora tekstu i kompilatora wiersza poleceń.

Czy mają coś takiego dla swojego niestandardowego języka programowania?


Słuszna uwaga. Znów nie wspomnieli o tym. Muszę zapytać.
AlexMA

2
Czasami zastrzeżone IDE / zestawy narzędzi są oszałamiająco złe (pracowałem z niektórymi).
FrustratedWithFormsDesigner

2

Często nauka biznesu jest ważniejsza niż nauka technologii. Jeśli uważasz, że możesz chcieć pozostać w konkretnej branży, w której działa ta firma, to śmiało. Jeśli jest to rynek niszowy lub ten, na którym nie jesteś szczególnie zainteresowany, sugeruję pominięcie go. Znajomość tajników (powiedzmy) farmakokinetyki i procesu odkrywania leków otworzy drzwi, których nie zrobi inny programista C # / Python / Java. I chyba że ten „unikalny” język będzie raczej generatorem kodu lub konfiguratorem, nadal będziesz rozwiązywać typowe problemy, więc nadal będziesz mieć ogólne doświadczenie, nawet jeśli określonych technik nie da się przenieść bezpośrednio.


To też. Tylko sposób ta praca byłaby korzyścią jest to, czy znajomość branży pomoże i chcesz przejść do rzeczywistej domeny biznesowej. Jeśli chcesz pozostać programistą, w nieśmiertelnych słowach admirała Ackbara,IT'S A TRAP!
Wayne Molina

2

Rozważałbym wzięcie go, jeśli i tylko wtedy, gdy możesz mieć duże doświadczenie w innych językach. Jeśli zrobić podjąć pracę, można (i należy) nadążyć swoje umiejętności z języków nurtu pracując przy projektach open-source w swoim wolnym czasie.

To, czego chcesz uniknąć, to możliwość dostosowania twoich umiejętności do konkretnej firmy i nieprzenoszenia ich na inne osoby. Z technicznego punktu widzenia programowanie to programowanie, a doświadczenie poza jednym środowiskiem programistycznym jest korzystne, a nie szkodliwe, ponieważ pomaga lepiej widzieć problemy.

Pomyśl o tym w ten sposób: jeśli podejmujesz pracę pisząc programy w Perlu, niekoniecznie musi to skazać cię na wieczność pisania programów w Perlu. Podjęcie pracy w .NET nie skazuje cię na wieczne związanie się z Microsoftem.

Ale oto ważna część: nigdy nie zatrudniłbym programisty, który zna tylko jeden język , nawet jeśli jest to ten, którego chcę, aby używał. Programista, który nie ma szerokiego doświadczenia w wielu językach, jest często ubogi, nawet z wybranym przez siebie językiem. Odzwierciedla także brak ambicji uczenia się nowych rzeczy.

Z drugiej strony, jeśli programista zna Python, Ruby, C #, PHP, C i Erlang, to fakt, że on również zna APL, nie jest dla niego strajkiem, mimo że w piekle nie ma szans, że użyjemy APL do byle co.

Więc jeśli masz dyscyplinę, aby język nie stał się twoim jedynym celem, to podejmij pracę.

Warto jeszcze raz powiedzieć: przyczynić się do projektów typu open source. Liczą na ton więcej niż „doświadczenie zawodowe”, ponieważ to nie jest coś, coś, czego po prostu nie dokonać wypłaty. Programiści pracujący nad projektami typu open source są jak złoto.


2

Moja pierwsza praca po ukończeniu studiów z zakresu CS obejmowała rozwijanie się w niejasnym języku. Nieunikalny. Nie opracowano wewnętrznie. Ale VMS 4GL jest na tyle niejasny, że nigdy nie widziałem, żeby ktokolwiek go używał.

Patrząc wstecz, była to niemądra decyzja. Podczas gdy wiele się nauczyłem o profesjonalnym tworzeniu oprogramowania, wykonując tę ​​pracę, o wiele lepiej byłoby rozwinąć znajomość języka na rynku, aby podążać za „miękkimi” umiejętnościami.

Miałem szczęście - moja druga praca polegała na pracy z innym niejasnym VMS 4GL. Zatrudnili mnie, ponieważ wiedzieli, że nie mogą znaleźć ludzi, którzy już znają język - wystarczyło, że miałem doświadczenie na platformie VMS z 4GL. W tym zadaniu miałem okazję nauczyć się języka zbywalnego, gdy chcieli odejść od VMS w kierunku serwerów Windows.

Ale z łatwością mogłem nie mieć tego szczęścia i znalazłem się pięć lat w mojej karierze z absolutnie zerowym doświadczeniem, które przekonałoby rekrutera lub osobę z działu HR do przejrzenia mojego CV.

W przypadku pierwszej pracy po ukończeniu studiów naprawdę jej nie polecam.


2

Aby dać meta-odpowiedź, zauważyłem, że wiele odpowiedzi mówi: „Z własnego doświadczenia jest to zła rzecz”.

Wielu innych mówi: „Teoretycznie nie musi to być złe”.

Ale żadna z odpowiedzi, które widziałem, nie pochodzi od ludzi, którzy zrobili coś podobnego i uważali, że to dobre doświadczenie.

Teraz może niektórzy ludzie to zrobili i są zachwyceni pracą, ale nie są na Stack Exchange. Dotyczy to niektórych programów komercyjnych. Na przykład jest kilku naprawdę oddanych administratorów Software AG Natural / Adabas, ale nie ma zbyt wielu powiązanych dyskusji na temat Stack Exchange. Jednak przynajmniej ktoś szuka nawet tych niszowych specjalistów. Nie byłoby to prawdą w przypadku całkowicie zastrzeżonego języka.

Więc jeśli celem jest przejście do omawianych tutaj technologii, fakt, że niewielu popiera to na podstawie rzeczywistych doświadczeń, sugeruje, że niekoniecznie jest to najlepszy początek. To może nie być pocałunek śmierci. Ale chciałbyś pracować, aby nie stała się straszną przeszkodą, na przykład poprzez rozpoczęcie lub udział w projekcie open source związanym z twoimi aspiracjami.


1

Podejmij pracę, jeśli uważasz, że są dobrzy / wspaniali programiści, którzy pomogą ci i będą mentorem. Można by pomyśleć, że w tym miejscu są całkiem dobrzy ludzie, ale nie można być tego pewnym. Ponadto, czy ta firma ma reputację zatrudniającą najlepszych kandydatów? Możesz zostać zatrudniony przez kogoś innego, niezależnie od języków używanych w pracy.


1

Zachowaj szczególną ostrożność, jeśli dziedzina problemowa jest zdominowana przez jeden lub kilka języków w branży. Tworzenie baz danych jest ściśle powiązane z SQL. Rozwój FPGA jest w większości podzielony między Verilog i VHDL. Porównaj to z aplikacjami internetowymi napisanymi w (kombinacjach) Java, PHP, perl, python, Scala, C ++ itp. Menedżer ds. Rekrutacji poszukujący programistów internetowych będzie znacznie lepiej rozumieć umiejętności zbywalne, jeśli nie masz określonego doświadczenia w wybranym przez siebie języku. Menedżer ds. Rekrutacji poszukujący kogoś do pisania zapytań do bazy danych będzie oczekiwał doświadczenia z SQL.


1

Programowałem w zastrzeżonym języku. Ale to nie był język, który był używany wszędzie. Teraz nie mam nic przeciwko temu doświadczeniu, chociaż łamię każdą chwilę, wykonując tę ​​pracę. Miałem szansę używać tego języka, utrzymywać go i doskonalić go, a także utrzymywać program napisany w tym języku.

Po drodze nauczyłem się czytać i rozumieć, jak działa mały tłumacz. Jeśli twój potencjalny pracodawca ma źródła dla kompilatora / tłumacza dla zastrzeżonego języka, równie dobrze możesz mieć szansę pracy nad jego elementami wewnętrznymi. Mogę powiedzieć, z doświadczenia, że ​​będziesz cenił to doświadczenie zawodowe przez wiele lat.

Umiejętności, które można nabyć, to umiejętność pracy w zespole, inżynierii oprogramowania, pisania kompilatora / tłumacza lub jego części, algorytmów itp. Jeśli jest to tłumacz, język zastrzeżony to tylko maska, pod którą znajdziesz tłumacza napisane w, powiedzmy, C lub innym języku. Jeśli skompilowany zostanie język prawnie zastrzeżony, będziesz miał szansę pracować na kompilatorze produkcyjnym, który jest w pełni obciążony bootowaniem. Tak więc, kiedy szukasz następnej pracy, musisz sprzedać te umiejętności mocniej niż, powiedzmy, C / C ++ / Java / Python dla programisty aplikacji lub Python, Perl, Java, HTML, CSS, JavaScript, Flash do tworzenia stron internetowych lub Verilog, VHDL do programowania wbudowanego lub dowolny inny zestaw języków dla innej domeny aplikacji.

Wszystko to przy założeniu, że twój potencjalny pracodawca ma źródła dla zastrzeżonego języka i jesteś gotów więcej niż pracować nad programami napisanymi w zastrzeżonym języku. Mimo to przyznaję, że jestem bardzo optymistyczny, mówiąc, że możesz mieć podobną okazję, jak kilka lat temu.

Podczas wywiadów wieloletnie doświadczenie i umiejętności techniczne nie są same w podejmowaniu decyzji o zatrudnieniu. Wasze pragnienie uczenia się, dopasowania kulturowego, kulturowego skłaniania się stanowi dużą część decyzji.

Tak więc, jeśli chodzi o pierwszą pracę, jeśli twoja praca nie będzie ograniczona do programów napisanych wyłącznie w zastrzeżonym języku, ale pozwoli ci również pracować nad jej implementacją, weź ją.


1

Myślę, że są dwie strony tego. Po pierwsze, ta konkretna praca, a po drugie, jak wpływa ona na twoje perspektywy kariery.

Chciałbym wiedzieć o tym zadaniu, dlaczego stworzyli własny język programowania. Czy jest sens? Jeśli nie, podjąłbym inną pracę.

W ciągu ostatnich dziesięciu lat pracowałem dla trzech firm z własnym językiem. Pierwszy, ponieważ kiedy projekt został rozpoczęty, nic nie mogło zrobić tego, czego potrzebowali. (Napisali wersję techniczną Visual Basic, ale była na Unixie i wiele lat przed istnieniem VB.) Pozostałe dwa miały wymagania dotyczące wydajności, których nie można było spełnić w istniejących językach. Uważam te całkiem dobre powody.

Jeśli chodzi o perspektywę kariery, jak wspomnieli inni, rekruterzy i pracownicy HR, którzy nie rozumieją programowania i pracy przy użyciu szeregu pól wyboru, będą mieli trudności z twoim CV. Wiele firm, które chcą mieć programistę C ++ typu plug-and-play, zdziwi się, płacąc za naukę nowego języka. To wszystko prawda.

Ale czy naprawdę chcesz pracować dla takiej firmy?

Jeśli odpowiedź brzmi „tak”, prawdopodobnie powinieneś odrzucić tę pracę i poszukać takiej o bardziej konwencjonalnych wymaganiach. Ponadto, w zależności od miejsca zamieszkania, możesz nie mieć dużego wyboru i musiałbyś pracować dla firm, które tak naprawdę nie rozumieją programistów.

Osobiście nie chcę pracować dla takiej firmy i myślę, że uczciwie jest powiedzieć, że moje wybory nie były zbyt ograniczone. Jeśli masz doświadczenie w szybkim uczeniu się nowych technologii, rozwiązywaniu rzeczywistych problemów i być może trochę wiedzy biznesowej, myślę, że powinieneś być w porządku.

Są też pozytywne. W ilu innych miejscach możesz bawić się z kompilatorem / tłumaczem? Jak często wpływasz na nowe funkcje i składnię języka, którego używasz na co dzień?


1

Po pierwsze, wewnętrzny język programowania nie jest konieczny złą rzeczą, jednak istnieje kilka podstawowych zasad uzasadniających niestandardowy język.

Piszesz, że myślisz, że nie używają żadnego innego języka. Pierwszym pytaniem, które powinieneś zadać, jest to, czy używają oni również innego języka.

Niestandardowe języki programowania mogą mieć dobre uzasadnienie. Wiem, że matematyka działa ze specjalistycznymi językami. Słyszałem, że agencja podatkowa używa specjalnego języka do obliczania podatków wraz z corocznie zmieniającymi się przepisami o nich. Witamy w dziedzinie metaprogramowania .

Jednak każdy niestandardowy język nigdy nie powinien implementować pełnego języka. Poza domeną powinieneś powrócić do klasycznego / powszechnie znanego języka programowania. Nawet w domenie językowej nie jest prawdopodobne, że każdy najmniejszy szczegół jest objęty tym językiem.

Dobre pytania, które należy zadać:

  1. Czy w tej firmie używane są inne języki?
  2. Z jakiego powodu inny język nie był dla nich odpowiedni?
  3. Czy język jest używany poza firmą (przez badaczy lub na podstawie licencji dla innych firm)
  4. Ile osób zna język.
  5. Ile (udanych) projektów / programów wykonano w tym języku.

Z tych odpowiedzi powinieneś być w stanie dowiedzieć się, jaki jest stan języka. jeśli jest to język domeny, który dodaje wielką wartość, wszystko jest w porządku. Jeśli jest to projekt zwierzaka, który ma zastąpić Javę lub C #, wyjdź stamtąd jak najszybciej .

Edycja: proponuję przeczytać artykuł w specjalnym języku na Wikipedii, który powinien dać więcej wglądu.


1

Może nam się to nie podobać, ale jako programista musimy mieć życiorys, który agenci i działy HR chętnie przekażą kierownikom projektów . Nasze CV musi również wyróżniać się jako pasujące do potrzebnego wciąż ustawionego w ciągu 30 sekund od momentu, gdy ktoś na niego spojrzy, musi również mieć odpowiednie słowa kluczowe pasujące do wyszukiwania w bazie danych cv.

Tak właśnie działa w unikalny język programowania jest duże ryzyko! Jednak użycie kombinacji DSL i języka głównego strumienia można dobrze przedstawić w CV. (Musisz powiedzieć prawdę w swoim CV, ale to nie musi być cała prawda!)


1

Byłbym mniej zdenerwowany podjęciem takiej pracy, jeśli masz już dość szeroki zakres wiedzy programistycznej. Jeśli jesteś nowicjuszem w branży, może to poważnie zaszkodzić ci zawodowo, być może do tego stopnia, że ​​będziesz musiał zacząć od nowa jako Jr lub stażysta później ... Może to być szczególnie złe, jeśli zostaniesz w tej firmie na jakiś czas, tylko po to, by odejść bez umiejętności zbywalnych.

Jeśli masz już duże doświadczenie w branży, może to być naprawdę fajny punkt kulminacyjny w twojej karierze. A wrażenie, że jeśli / kiedy opuścisz to miejsce, byłoby bardziej „cholera, on jest jedi, zrobił wszystko”


1

Dołącz do firmy tylko wtedy, gdy będziesz pracował w firmie przez całe życie lub nigdy nawet nie pomyślisz o podjęciu pracy, nawet jeśli otrzymujesz dobry pakiet wynagrodzeń. Mam doświadczenie w dołączeniu do takiej firmy i utknięciu w niej pomimo wielu frustracji w pracy, ponieważ nie ma doświadczenia w innych językach programowania, aby szukać innej pracy.


To. Strzeż się tej „możliwości”, to tylko okazja do szybkiego przejścia na emeryturę.
Wayne Molina

0

Widziałem kogoś z 15-letnim doświadczeniem, głównie jako główny lub główny programista, który nie był w stanie znaleźć pracy przez długi czas, głównie dlatego, że firma nie pozostawiła go bez doświadczenia w tym, co stało się współczesnymi językami i interfejsami API.

Programiści umieszczają się mentalnie w pojemnikach, tak jak robią to aktorzy w filmach (bohater, wieśniak itp.). Po ustaleniu, jaki jest twój kosz, myślę, że możesz znacznie trudniej znaleźć pracę niż wtedy, gdy dopiero zaczynasz pracę Szkoła Wyższa.

Oznacza to, że jeśli masz dyplom CS, prawdopodobnie jesteś kandydatem na wiele stanowisk.

Ale jeśli masz dyplom CS z 3-letnim doświadczeniem w PHP, w rzeczywistości jesteś MNIEJ kandydatem na stanowisko programisty WWW Java niż po ukończeniu studiów. Ustaliłeś się jako programista PHP i dopóki nie doświadczysz czegoś przeciwnego, to właśnie będziesz musiał zostać zatrudniony. (Dziwne, ale myślę, że to prawda, masz więcej całkowitego doświadczenia, ale twoje CV zostanie zignorowane jako nieistotne, ponieważ jest to niewłaściwy rodzaj doświadczenia, podczas gdy twoje CV po studiach może nie być)

A jeśli masz dyplom CS z rocznym doświadczeniem w SpecialtyLanguageX, to zamknąłeś dla siebie wszystkie rodzaje drzwi.

To tylko moje opinie i spostrzeżenia, oczywiście, nigdy nie zatrudniłem się, tak właśnie dla mnie wygląda.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.