Porady dotyczące kariery: zostań z PHP lub rozpocznij nową karierę w czymś innym (.Net?) [Zamknięte]

34

Planuję przeprowadzkę do Nowego Jorku za 6-12 miesięcy, więc jestem zmuszony znaleźć nową pracę. Kiedy planuję rozpocząć życie w innym mieście, jest to prawdopodobnie dobry moment, aby pomyśleć o zmianach kariery.

Znalazłem wiele różnych opinii na temat PHP vs .Net vs Java i nie jest to tematem tutaj. Nie chcę rozpoczynać nowej walki o to, który język jest lepszy. Znajomość języka programowania nie jest najważniejsza dla programisty. Aby być naprawdę dobrym programistą, musisz znać OOP, wzorce projektowe, testy ... a język to tylko narzędzie, dzięki któremu wszystko się stanie.

Wracając do mojego pytania. Mam mieszane doświadczenie w IT - 1 rok jako specjalista ds. Wsparcia IT (administracja i wsparcie Windows), około 2 lata doświadczenia w programowaniu wbudowanym (VB.Net 2005) i przez ostatnie 2 lata pracuję z PHP / MySQL. Współpracowałem ze sklepem internetowym Magento, asystowałem przy niektórych projektach w Symfony, modyfikowałem kilka stron Drupala.

Moje główne obawy są następujące:

  1. Czy nadal doskonalę swoje umiejętności posługiwania się PHP, np. Aby rozpocząć naukę ważniejszych struktur PHP, takich jak Zend, Symfony może uzyskać certyfikat PHP
  2. A może zacznę uczyć się .NET lub Java. Jestem bardziej zaznajomiony z .NET, więc prawdopodobnie wybiorę go, jeśli wybór będzie między .NET a Javą (lub możesz mnie przekonać do wyboru Java :).

Pod względem kariery zawodowej nie wiem, jaki jest najlepszy wybór. Uczenie się nowego frameworka i języka jest bardziej czasochłonne niż doskonalenie moich umiejętności w PHP. Ale z .NET masz wiele możliwości (rozwój Windows 7 Phone, Silverlight, WPF) i być może większe szanse na znalezienie lepszej pracy.

Zadania PHP są gorzej opłacane niż przynajmniej .NET, według moich badań (popraw mnie, jeśli się mylę). Ale jeśli zacznę od .NET, jestem tylko początkującym, a moje wynagrodzenie będzie niskie. Potrzebuję co najmniej ponad 2-letniego doświadczenia w jakimś języku, aby nawet spróbować znaleźć pracę, która w Nowym Jorku kosztuje ponad 50-60 000 $. Moim głównym celem w ciągu najbliższych 2-3 lat jest znalezienie pracy w kategorii 60-80 000 $. Nie zrozum mnie źle, nie tylko ścigam pieniądze, ale pieniądze są ważnym czynnikiem, gdy próbujesz założyć rodzinę.

Mam 27 lat i uważam, że nie ma miejsca na złe decyzje dotyczące mojej kariery, więc wszelkie porady będą mile widziane.

Aktualizacja

Dziękuję wszystkim za poświęcenie czasu na pomoc w rozwiązaniu mojego problemu. Wszystkie odpowiedzi i komentarze były bardzo pomocne. Postanowiłem trzymać się PHP, ale także uczyć się C # i Silverlight 4. Zobaczymy, dokąd zaprowadzi mnie życie.

Christian P.
źródło
Naucz się obu. Rozpocznij projekt w każdym z nich. to nie trwa tak długo.
systemovich
Wypróbuj Code Igniter. Jest bardzo łatwy do nauczenia się i dobrze udokumentowany.
B Siedem,
2
Nauka 2-3 języków nie szkodzi.
Rudy,
Ponieważ ktoś go zderzył, muszę zapytać: osadzony VB.NET? ..
Simon Whitehead
@ SimonWhitehead nie jest dokładnie osadzony, ale nie mogłem znaleźć lepszego słowa na jego wyjaśnienie. Była to aplikacja napisana w VB.NET dla sprzętu przemysłowego (stworzonego przeze mnie i moich współpracowników), który komunikował się z dwoma przetwornikami cyfrowo-analogowymi (kartami akwizycji danych).
Christian P

Odpowiedzi:

64

Mam 51 lat i używałem co najmniej 15 języków i / lub ram, odkąd dostałem swój pierwszy płatny koncert po ukończeniu studiów w 1987 roku.

Na zdrowie.

Nigdy nie zajmowałem się zarządzaniem, ponieważ nie chciałem, ale wiem, jak programować i wiem, jak motywować zespoły i dostarczać dobry kod. Musisz pracować nad umiejętnościami ludzi i szukać ciekawej pracy, która Cię rozciąga. Nigdy nie przestałem się uczyć lub dobrze bawić, ale były chwile, kiedy byłem w drodze, mogłem zrobić to z zatrzymaniem się - ale nie kodowaniem, podróżowaniem.

Tak długo, jak możesz zarabiać na życie i realizować swoje osobiste zobowiązania bez naruszania swoich zasad, tak długo, jak lubisz to, co robisz (luksus pokolenia moich rodziców), po prostu kontynuuj.

.Net i Java są na ogół korporacyjne (ponieważ są drogie, aby robić użyteczne rzeczy, ale skalują się naprawdę dobrze), PHP jest na ogół startupem, ja robię Ruby (zwykle startupy, które z jakiegoś powodu wyszły ze studiów projektowych) dla wielu ludzi jako niezależny. Jeśli pozostaniesz przy PHP, naucz się rzeczy OO, ponieważ myślę, że w końcu zacznie to być sposób, w jaki ludzie robią różne rzeczy, nawet jeśli jest to nieco lepsza reimplementacja tego, co masz w Javie i mogliby to uczynić o wiele bardziej dynamicznym. Ludzie, którzy używają Pythona i chcą podróżować, mogą robić różne ciekawe rzeczy naukowe i związane z grami na całym świecie. Perl też jest biegaczem i ma podobny profil.

Zapomnij o języku, wyborze i branży, którą lubisz, wybierz firmę zarządzaną przez ludzi i baw się dobrze, dostarczając wartość osobom, które ją doceniają. Nie pożałujesz.

Francis Fish
źródło
9
PHP jest bardzo słaba na OO. Zaczęło się jako język szablonów i pokazuje.
Keyo,
5
@Keyou, nie znaczy, że nie należy naciskać użycie funkcji php OO jak to ma języka na inny poziom :)
Jonathan
@Keyo Kto powiedział, że PHP ma słaby dostęp do OO dla twoich informacji PHP OO jest teraz bardzo blisko Java Zobacz PHP5.5 i ciągle się poprawia
Hmmm
120

Co, u licha, wybór języka programowania ma wspólnego z twoją karierą?

To pytanie jest jak pytanie: „Mam dwa miejsca na miejsce do pracy. Czy powinienem pracować w tym, w którym szef ma akcent norweski, czy w tym, gdzie szef ma akcent hiszpański?”

Istnieją znacznie ważniejsze względy zawodowe.

  1. Startup czy założona firma?
  2. Firma produktowa lub firma, w której IT jest funkcją wsparcia?
  3. Będziesz uczyć się nowych rzeczy lub przerabiać stare?
  4. 9 do 5 lub „pracujesz dowolne 80 godzin?”
  5. Mili współpracownicy czy wredni współpracownicy?
  6. Sprytni współpracownicy czy głupi współpracownicy?
  7. Garnitur i krawat czy t-shirt?

Ta lista może trwać kilka godzin. Wybór języka programowania jest tak samo istotny dla kariery programisty, jak wybór, czy czesać włosy w lewo czy w prawo. Cały rozwój oprogramowania jest bez względu na to, jakim dialektem języka mówisz.

Joel Spolsky
źródło
19
Masz rację. Ale rodzaj języka programowania jest w większości przypadków ściśle powiązany z profilem firmy. W moim rozumieniu PHP jest używane głównie w firmach startupowych, a duże znane firmy używają .NET do ich rozwoju.
Christian P
29
prawdziwa odpowiedź: spędź kilka miesięcy, zdobywając pięciocyfrową reputację Stack Overflow, a będziesz otrzymywać oferty pracy w przedziale od 100 000 $ bez wywiadu.
Joel Spolsky
37
@Joel: tak bardzo, jak uwielbiam StackOverflow (i będąc kilka tygodni przed osiągnięciem pięciocyfrowej reputacji dla zabawy), jeśli kiedykolwiek dostanę z tego powodu ofertę pracy w wysokości 100 000, kupię ci piwo :-)
Diego Mijelshon,
25
Dla niektórych osób język ma wszystko wspólnego z twoją karierą. Chciałbym pracować dla wielu dużych firm, ale nie kosztem pisania języka, który by mnie frustrował / zmniejszał wydajność. Nie twierdzę, że cieszę się z pisania tylko jednego języka, ale zdecydowanie są języki, których nie chciałbym kodować w pełnym wymiarze godzin, i głupio byłoby dla mnie zaakceptować pracę, na przykład z elastycznym pisaniem Cel - C ponad 9-5 zadań pisania C #. Nie możesz podzielić się tą opinią, w porządku. Ale nie zakładaj, że programiści to idioci. Twoja lista ważnych uwag jest twoja .
Danny Tuppeny,
39
@Joel. Czy mogę dostać pracę za 100 000? Mam 5-cyfrowy przedstawiciel i jestem obecnie bezrobotny.
aaronasterling
23

Naucz się jak największej liczby języków, najlepiej co najmniej jednego z każdego głównego obszaru rozwoju.

  • Skrypty języków programowania (masz już PHP, wypróbuj Ruby, Python lub coś innego)
  • Kompilowany do języków maszyn wirtualnych z bogatymi frameworkami: .Net, Mono, Java
  • Kompilowany do gołego metalu: C / C ++
  • Języki funkcjonalne: Lisp, F #, Haskell

Każdy z nich nauczy Cię czegoś na temat podstaw tworzenia oprogramowania. Oczywiście musisz ponadto doświadczyć różnych podejść projektowych (OO, funkcjonalne, oparte na danych), różnych metod pracy zespołowej (zwinny, tdd, w porównaniu do bardziej sztywnych typów), różnych platform, różnych mechanizmów wdrażania (natywne , oparte na frameworku, sieci). I tak dalej. Biegła znajomość języka to tylko niewielka część całości.

Do tych wszystkich rzeczy musisz zrobić co najmniej jeden prawdziwy produkt, używając ich, aby być biegłym.

Niektórzy powiedzą ci, że musisz się specjalizować w jednej technologii (PHP, .Net, Java) i zbudować karierę w dużej mierze wokół tej technologii, aby robić postępy. Zupełnie się z tym nie zgadzam. Wezmę programistę, który kilka razy był przy bloku z różnymi platformami i technologiami w ciągu jednego, który spędził 10 lat, robiąc jedną rzecz każdego dnia tygodnia. Powodem jest to, że technologia zmienia się co roku, a programista, który jest w stanie wybrać nową technologię, przeczytać interfejs API i wykorzystać swoje doświadczenie w bardziej ogólny sposób niż tylko na pamięć, że biblioteka działa na pamięć, będzie znacznie wydajniejszy w długoterminowy. Ok, więc 10-letni weteran .Net będzie szybciej opuszczał bloki startowe w .Net, ale ten wczesny lead zostanie utracony za około miesiąc. To'

Steve Streeting
źródło
3
Dodałbym również do twojej listy, języki logiczne (Prolog), języki matematyczne (które są z reguły podzbiorem funkcjonalnym) (Mathematica, R), języki prefiksów / postfiksów (PS, Forth), asembler i sprzętowe (dla FPGA i tym podobne).
Orbling
8
Zgadzam się ... fajnie jest uczyć się nowych języków. Ale kiedy próbujesz poprawić swoją ogólną wiedzę na temat tworzenia oprogramowania, ucząc się nowego frameworka PHP i dodatkowego języka (C #), którego chcesz używać w przyszłości, nauka nowych języków dla zabawy nie jest opcją, a przynajmniej nie jest opcją bez główne ofiary w innych częściach twojego życia.
Christian P
4
Zgadzam się, Christian, ta odpowiedź jest nieco ekstremalna. Ale chyba na wynos z tej odpowiedzi nie powinno być, „uczyć się nowych języków bajillion teraz albo po prostu całować twoje sny do widzenia”. Powinno raczej brzmieć: „Tak, powinieneś spróbować znaleźć pracę w języku, którego nie znasz, ponieważ jest to lepsza inwestycja w karierę w perspektywie długoterminowej”. Ponadto jest to najlepszy sposób na naprawdę dobrą znajomość języka.
Neil Traft
1
@Orbling: masz rację, lista nie była kompletna, właśnie wybrałem główne „kariery”, aby uniknąć
zbytniej
3
Jeśli chodzi o skrajność - nie sugerowałem, abyś uczył się tych wszystkich języków w ciągu roku :) Ponieważ pytanie dotyczyło kariery, nie sądzę, aby było to w ogóle nierealne. Wszyscy musimy wziąć odpowiedzialność za własny rozwój zawodowy, a nawet jeśli wykonasz jeden projekt hobby w ciągu roku, korzystając z technologii, której wcześniej nie używałeś, bardzo ci to pomoże. Open source to również świetny sposób, aby to zrobić, ponieważ oznacza to, że możesz wziąć udział w prawdziwym projekcie, nie zaczynając od zera, i uzyskać pomoc od innych członków społeczności.
Steve Streeting
7

Sugerowałbym poszukiwanie pracy w PHP, ponieważ to właśnie robisz najlepiej.

Sugeruję również, abyś zaczął kształcić się w zakresie nowych technologii, których chcesz się nauczyć, abyś mógł w końcu zacząć szukać pracy za ich pomocą, ale nie rób tego w tak krótkim terminie, ponieważ okaże się, że te rzeczy są ogromne i pracodawcy oczekują musicie wiedzieć wystarczająco dużo o tych potworach, aby być produktywnymi. To wymaga czasu i praktyki . Nie lekceważ czasu i ilości ćwiczeń, które będziesz musiał wykonać.

Aby oszacować, do czego powinien być zdolny potencjalny pracownik programu „Mogę programować w Javie”, zapoznaj się z samouczkiem Sun Java . I byłoby oczekiwać, aby zapoznać się z co najmniej pół wymienione pojęcia, gdzie znane środki są w stanie wykorzystać go w program napisany przez ciebie, i używać go poprawnie . Spodziewam się, że nauka osiągnie ten poziom dłużej niż 6 miesięcy.


źródło
7
6 miesięcy? naprawdę? Tacy zatrudnieni przeze mnie programiści uczą się języka i platformy w pierwszym tygodniu pracy, dlatego NIGDY nie obchodzi mnie, jaki język ktoś zna, kiedy ubiegają się o pracę w Stack Overflow lub Fog Creek.
Joel Spolsky
4
@Joel, pamiętaj, że mówię o zbieraniu rzeczy w wolnym czasie . Sam, bez mentora w pobliżu. To może nie być tak skuteczny sposób na naukę nowych rzeczy, jak fizyczny pobyt w biurze wraz z tobą i pracownikami ... Być może będziesz chciał zatrudnić christian.p, aby udowodnić, że się mylę?
3
@Joel Gdy Twoja aplikacja jest napisana we własnym języku niestandardowym, nie masz dużego wyboru, eh! ;-)
Darrel Miller
3
@Orbling. Czy to nie jest dla nich trochę łatwe? Dlaczego nie coś takiego: „znajdź i napraw błąd w tym kodzie produkcyjnym BrainF * ck! Ja i moi 5 współpracowników będziemy cię obserwować i ile czasu zajmiesz”?
5
@Jel - Podejrzewam, że kiedy Christian szuka nowej pracy w nowym mieście, przekona się, że nie wszyscy pracodawcy są tak samo obojętni wobec języka jak Ty w Stack Overflow / Fog Creek. Rzeczywiście zaryzykowałbym przypuszczenie, że nie dbając o to, jakie języki zna, 95% + natychmiast wrzuci swoje CV do kosza, jeśli nie pasuje do właściwych słów kluczowych w języku.
Carson63000,
6

Nienawidzę wyglądać jak troll, ale językiem, którego powinieneś się uczyć, jest angielski. W poście jest wiele błędów, które wyglądają niechlujnie. Gdybym zatrudniał i to było twoje CV, nie dbałbym o to, jakie znasz języki programowania, zakładam, że twoja niechęć do języka angielskiego przełoży się na twoją pracę programistyczną.

Nie wyglądało na to, że przyjeżdżasz na angielski jako drugi język (oczywiście mogłem się mylić), ale było wystarczająco dużo błędów gramatycznych i ortograficznych, aby większość menedżerów ds. Zatrudnienia mogła się zatrzymać. Ponieważ na początku będą widzieć tylko twoje słowo pisane, musisz to naprawić.

Doug Johnson-Cookloose
źródło
6
To nie temat, ale dziękuję za zgłoszenie się. Angielski jest w rzeczywistości moim drugim językiem. Wierz lub nie (a może to dla ciebie oczywiste), ale nauczyłem się mówić / mówić po angielsku sam (bez kursów językowych).
Christian P
3
Ponieważ jest to twój drugi język, masz się dobrze. Oczywiście, aby ktoś sprawdził twoje CV, dla pewności, ale wiem, że gdybym musiał zrobić moje komentarze po francusku, powiedzmy, nie byłoby to tak jasne i dobrze sformułowane jak twoje po angielsku. Nie byłem wredny, po prostu starałem się być pomocny. Istnieje jakakolwiek liczba Amerykanów, którzy nie zawracają sobie głowy pisownią i gramatyką, a to boli ich na rynku.
Doug Johnson-Cookloose,
1
Wiem, że mój angielski wymaga ulepszeń i staram się go poprawić. Ale jestem wdzięczny za twoje komentarze, ponieważ wiem, że kiedy ubiegam się o pracę, liczy się ogólne wrażenie. Więc jeśli moje pisanie jest niechlujne, zaszkodzi mojej ogólnej szansie na znalezienie pracy.
Christian P
1
Dawno, dawno temu, jeśli ubiegałeś się o pracę przez rekrutera, poświęcili czas na dopracowanie twojego CV i upewnienie się, że pisownia, gramatyka i ogólny styl są poprawne. Ale ostatnio przeprowadzałem wywiad z niektórymi kandydatami i wygląda na to, że rekruterzy już się nie przejmują, po prostu przyklejają swoje logo w prawym górnym rogu i wysyłają CV. Polecam więc znajomemu, któremu ufasz, przejrzeć twoje CV i listy aplikacji / e-maile.
Carson63000,
1
@ Carson63000 Moje doświadczenie w zatrudnianiu przez rekruterów polega na tym, że kiedy próbują „pomóc”, często robią kompletny bałagan w życiorysach kandydatów. W rezultacie musiałem dać kandydatom z niechlujnymi CV CV wątpliwości. Biorąc pod uwagę wybór, całkowicie wyeliminowałbym idiotycznych rekruterów z równania.
Daniel Cassidy
5

Długoterminowa odpowiedź na to pytanie jest w zasadzie tym, co powiedział nasz ceniony gospodarz (Joel Spolsky) i Steve Streeting. Podstawą programowania nie są języki, chodzi o używanie komputera do rozwiązywania problemów. Jest to rzemiosło, którego należy się nauczyć, pracować i myśleć o nim z czasem. Znajomość kodu nie czyni programistą.

Ale zadałeś pragmatyczny i wrażliwy na czas temat ... co powinieneś zrobić TERAZ?

Sugeruję, byś kopał w PHP aż do przeprowadzki. Zagłęb się w to, ciężko, naprawdę ciężko, 20 godzin tygodniowo poza ciężką pracą. Z PHP jest to dość łatwe .. załóż konto hostingowe i domenę i zacznij tworzyć aplikacje. Dzięki skoncentrowanemu wysiłkowi 6 miesięcy to wieczność. W tym czasie bądź w tym naprawdę dobry. Pomoże ci to znaleźć dobrą pracę w Nowym Jorku i najprawdopodobniej sprawi, że będziesz lepszym programistą do uruchomienia.

BTW .. jeśli jeszcze tego nie wiesz, w rodzinie StackExchange znajduje się serwis informatyki .

NASTĘPNIE, kiedy przejście do życia nieco się uspokoi, zacznijcie postępować zgodnie z podręcznikiem pana Streetinga i uczyć się o rzemiośle programowania, a nie o kodzie programowania. Poświęć trochę czasu poza pracą na czytanie i robienie rzeczy na innych platformach i za pomocą innych narzędzi.

tomjedrz
źródło
1

Myślę, że najważniejszą kwestią jest to, że inżynier oprogramowania powinien ostatecznie przejść do stanu, w którym język jest w dużej mierze nieistotny dla danego zadania, z wyjątkiem jego ograniczeń.

Niezależnie od tego, czy znasz język, czy nie, nie powinno to robić różnicy, pod warunkiem, że dysponujesz instrukcją, aby przyspieszyć tylko przez pierwszy dzień podczas wyszukiwania pozycji.

Powiedziawszy to, w językach zastrzeżonych jest zwykle mniej dokumentów i przykładów rozpowszechnianych w Internecie, dlatego trudniej jest się przyzwyczaić i stanowić problem, jeśli chcesz zabrać ze sobą swoją pracę do domu.

Orbling
źródło
3
Język rzadko jest trudny. Nauka ekosystemu i najlepszych praktyk zajmuje mi trochę czasu ...
@ Thorbjørn Bardzo prawda, zdobycie najlepszych praktyk w danym języku może zająć trochę czasu. Chociaż to bardzo zależy od tego, jak się go uczysz, niektóre języki są znacznie trudniejsze niż inne do znalezienia informacji.
Orbling
1

Radzę znaleźć pracę i robić to, co cię interesuje, i czerpać radość z tego. Jeśli lubisz PHP, możesz dalej rozwijać swoje umiejętności PHP. O wiele łatwiej jest uczyć się i rozwijać umiejętności robiąc coś, co Cię interesuje.

Czy kiedykolwiek wcześniej przeglądałeś platformę .NET lub Java? Jeśli nie, może to sugerować, że nie interesujesz się tymi językami, ale być może mógłbyś spędzić tydzień lub mniej więcej na każdym z nich i przekonać się, czy jesteś zainteresowany którymkolwiek z nich.

cspolton
źródło
Znam Silverlight 4 i C # (mam też 2 lata w VB.NET 2005), to jest główny powód, dla którego myślę o zmianie.
Christian P
1

Krótkoterminowe; Nie wiem, jakie są praktyki zatrudniania w USA, ale biorąc pod uwagę, że przeprowadzasz się za 6 ~ 12 miesięcy, na razie rozważę pozostanie przy PHP, ponieważ masz z tym dwa lata doświadczenia.

Moje doświadczenie tutaj (w Holandii) polega na tym, że firmy zazwyczaj bardzo krótko skupiają się na technologiach i doświadczeniach ramowych. Język naprawdę nie jest -it-, nawet jeśli pytają „ 3 lata doświadczenia w C # ”, mają na myśli „ 3 lata doświadczenia w bibliotekach frameworkowych / klasach i narzędziach, których będziesz używać z C # ”.

(W przeciwnym razie, dlaczego chcą zatrudnić kogoś, kto potrzebuje 3 lat na naukę składni C # i funkcji językowych, jest poza mną. Brzmi jak ktoś, kogo nie chciałbym zatrudnić.)

Uczenie się nowych języków; statyczny, dynamiczny, funkcjonalny, ma wielką wartość, jeśli chodzi o poszerzanie swoich perspektyw. Jednak nauczenie się odpowiednich bibliotek klas i sposobu robienia rzeczy w tym języku będzie wymagało doświadczenia.

Poleciłbym podjąć decyzję o wyborze jednego stosu technologii i dogłębnej nauki. Inspiracje możesz wykorzystać w innych środowiskach.

Oczywiście w grę wchodzą również osobiste preferencje. Na przykład, chociaż jest na to duży rynek, nigdy nie zaakceptowałbym pracy w PHP: -PI wybieram stos i szukam pracy w oparciu o to.

Jeśli chodzi o karierę w perspektywie długoterminowej, myślę, że powinieneś spojrzeć poza kodowanie (w końcu chodzi o naukę i umiejętność czytania i / lub przeglądania dokumentacji) oraz technologię dnia i bardziej skupić się na umiejętnościach miękkich i tym podobnych. Technologie przychodzą i odchodzą dość szybko. Oczywiście należy się wiele nauczyć, jeśli chodzi o dobre praktyki i bardziej ogólne know-how, niestety z mojego doświadczenia rzadko są one poszukiwane na rynku pracy.

Joppe
źródło
1

Myślę, że często ludzie mieszają języki programowania i struktury / stosy technologii. Nauka nowego języka jest stosunkowo łatwa, ale z dużymi technologiami jest znacznie trudniejsza. Zgadzam się z niektórymi odpowiedziami, że najważniejsze jest twoje ogólne doświadczenie w programowaniu / rozwiązywaniu problemów, ale nie sądzę, aby ktokolwiek mógł ZROZUMIEĆ całkowicie nową technologię w ciągu 1 tygodnia.

Jasne, duża część programistów nigdy nie przeczytała ani jednej książki technicznej i nie rozumiała podstawowych elementów technologii, których używają. Po prostu włamują się do wyjścia z problemów i odnoszą duże sukcesy. Sam zacząłem karierę w PHP, nawet nie rozumiem na początku, jak działa HTTP. Ale niektórzy pracodawcy, których najbardziej szanuję, oczekują głębokiego zrozumienia „jak rzeczy działają”, po prostu dlatego, że zwykle zwiększa to szanse powodzenia ich projektów.

Aby to zrozumieć, musisz przynajmniej przeczytać kilka DOBRYCH książek, które mają wystarczająco dużo czasu, aby stworzyć prototyp rozwiązań dla typowych problemów w nowym, nieznanym środowisku programistycznym. Czy można to zrobić za tydzień? Chciałbym współpracować z ludźmi, którzy są do tego zdolni, ale nie mam nadziei, że zobaczę takich ludzi w najbliższym czasie.

Niektórzy pracodawcy faktycznie są gotowi dać ci wystarczająco dużo czasu na zrozumienie, szanując twoje ogólne głębokie doświadczenie techniczne w innych stosach technologii (jeśli masz), ale niestety większość nie.

Ponadto, gdy zmieniasz technologie, najważniejsza jest twoja osobowość - jak pokorna i ciekawa jest osoba, która spędza wystarczająco dużo czasu, aby zrozumieć, jak działają rzeczy i jak się to robi w nowym obszarze.

Podsumowując, moja odpowiedź byłaby następująca. Wybierz technologię, która ma wystarczający potencjał i która (co najważniejsze) sprawi, że będziesz szczęśliwy w swojej pracy. Specjalizując się w tej technologii, rynek pracy to doceni, a kilka lat potrzebnych do uzyskania docelowego wynagrodzenia będzie tego warte. Ale nigdy nie bądź nadgorliwy, spędzaj trochę czasu z innymi technologiami, dzięki temu będziesz znacznie lepszy PROFESJONALNY.

Konstantin
źródło
1

Muszę się zgodzić z Joelem. Ale jego odpowiedź wykracza poza umiejętności techniczne i preferencje.

Z mojego doświadczenia wynika, że ​​zazwyczaj Twoje wymagania dotyczące pracy wskazują na konkretną technologię lub język programowania, a nie to, czego chciałbyś użyć; chyba że jest to startup, który nie zdefiniował jeszcze tego, czego będą używać. I nikt nie może zagwarantować, że znajdziesz pracę / firmę wykorzystującą dokładnie to, czego szukasz.

Tak więc prawdziwe pytanie brzmi: czy umiesz uczyć się nowych rzeczy? czy możesz rozwiązać problem i rozwiązać go na czas, niezależnie od języka programowania?

Dobry programista powinien być świadomy koncepcji budowy oprogramowania i inżynierii oprogramowania. Twoje pytanie sprawia, że ​​wierzę, że nie zainwestowałeś wystarczająco dużo czasu w naukę tych, co prawdopodobnie sprawia, że ​​nie masz pewności co do swoich umiejętności i rzeczywistego potencjału. I szczerze mówiąc, jeśli nie zrobiłeś tego, to najwyższy czas, bo bez nich prawdopodobnie nie zajdziesz daleko.

Jest jeszcze jedna rzecz, na którą większość z nas programistów nie zwraca uwagi, zanim osiągniemy wiek powyżej 30 lat: Umiejętność programowania to tylko połowa umiejętności, które sprawiają, że dobry programista. Czy jesteś dobrym graczem zespołowym? Czy chcesz przekazywać wiedzę współpracownikom tak chętnie, jak chcesz (lub powinnaś) otrzymywać wiedzę od innych? Umiejętności ludzkie są bardzo niedoceniane przez wielu z nas, podczas gdy w rzeczywistości są bardzo ważne.

mspir
źródło
1

Nie zgadzam się z większością komentarzy wymienionych na tej tablicy.

Oprócz nauki zasad i teorii inżynierii oprogramowania, język, który chcesz opanować, to wybór kariery. Dlatego są programiści Java i programiści PHP. Programiści PHP prawdopodobnie nie będą pracować dla NASA, a programiści Java prawdopodobnie nie będą pracować dla sklepu internetowego.

Jeśli chcesz pracować w korporacyjnej Ameryce, lepiej skorzystaj z Java / .Net. Dobry dochód możesz uzyskać, ale bądź przygotowany na oddanie im swojego życia (jeśli chodzi o czas).

Jeśli chcesz być niezależnym freelancerem i żyć na szybkiej linii z technologią internetową, lepiej skorzystaj z PHP. Dużo pracy tutaj, ale wynagrodzenie jest bardzo zróżnicowane, a bycie niezależnym to sama praca z każdym Tomem, Dickiem i Harrym z pomysłem, który próbuje cię zatrudnić za grosze.

W pewnym stopniu nakładają się na PHP i Java, ale widoczne są tylko w zadaniach korporacyjnych (Usługi Java REST z interfejsem PHP), jednak nie znajdziesz sklepów internetowych ani niezależnych niezależnych miejsc pracy w pobliżu Java.

Oba wymagają dużo czasu i poświęcenia, jeśli chcesz być użyteczny w danej sytuacji.

Aby być kompetentnym i poszukiwanym programistą PHP, potrzebujesz torby pełnej zestawów umiejętności. Są szanse, że będziesz wiedział, że znasz CSS, HTML4 / 5, a na pewno JavaScript DOM / Ajax / Jquery oraz co najmniej realne środowisko, takie jak Zend (wybór testera korporacyjnej Ameryki), Codeignitor, cakePHP itp. Będę musiał znać „wielkie trzy” CMS-y: Drupal, Wordpress i Magento. Zdobądź te umiejętności za sobą, a będziesz specjalistą PHP z możliwością lądowania w dowolnym miejscu. Jak widać, przyjęcie tego wszystkiego jest oddaniem dla języka i jego narzędzi, ponieważ nauka Perla nie pomoże ci zostać ekspertem w dziedzinie Drupala lub Zend.

To samo dotyczy Java: OOP, J2EE, REST / SOAP, Spring / Struts, itp. I jest to flota innych narzędzi, których opanowanie zajmuje lata.

Czy ktoś tutaj próbował kodować Javę przez rok, a potem wrócił do PHP (lub dowolnego języka skryptowego). To jest trudne. Czuje się niezręcznie.

Pracuję dla firmy o fortunie 500 i programiści Java nie byliby w stanie robić tego, co robią programiści PHP, a programiści PHP nie byliby w stanie robić tego, co robią programiści Java. Ale oboje mają się dobrze finansowo, ponieważ są specjalistami w swojej dziedzinie, swoim wybranym językiem i mnóstwem narzędzi, które się z tym wiążą.

koder3
źródło
0

Język i platforma nie są tak ważne. Ucz się solidnych ludzi i umiejętności komputerowe. Wiele osób to powiedziało, ale nie podało szczegółów, więc pozwól mi to zrobić. Oto kilka rzeczy do nauczenia się

  • algorytmy i struktury danych.
  • konkurencja
  • nauczanie maszynowe
  • programowanie na poziomie systemów
  • wyszukiwanie informacji i wyszukiwarki
jshen
źródło