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:
- 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
- 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.
źródło
Odpowiedzi:
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.
źródło
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.
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.
źródło
Naucz się jak największej liczby języków, najlepiej co najmniej jednego z każdego głównego obszaru rozwoju.
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'
źródło
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
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ć.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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ążą.
źródło
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ę
źródło