it-swarm-eu.dev

Kariérní poradenství: zůstaňte s PHP nebo začněte novou kariéru v něčem jiném (.Net?)

Plánuji se přestěhovat do NY za 6 až 12 měsíců, takže jsem nucen najít novou práci. Když plánuji začít svůj život v jiném městě, je také pravděpodobně dobrý čas přemýšlet o změnách kariéry.

Našel jsem spoustu různých názorů na PHP vs .Net vs Java a toto téma zde není. Nechci začít nový boj o to, který jazyk je lepší. Znalost programovacího jazyka není pro vývojáře softwaru nejdůležitější věcí. Chcete-li být opravdu dobrým vývojářem, musíte znát OOP, návrhové vzory, testování ... a jazyk je jen nástroj k tomu, aby se věci staly.

Takže zpět k mé otázce. Mám smíšené zkušenosti s IT - 1 rok jako IT support chlap (správa a podpora Windows), asi 2 roky zkušeností s vestavěným programováním (VB.Net 2005) a poslední 2 roky pracuji s PHP/MySQL. Pracoval jsem s webovým obchodem Magento, pomáhal jsem v některých projektech v Symfony, upravil jsem několik Drupal webů.

Mé hlavní obavy jsou následující:

  1. Budu pokračovat ve zlepšování svých dovedností v PHP např. aby se začal učit nějaký hlavní PHP framework jako Zend, Symfony možná získá nějakou PHP certifikaci.
  2. Nebo se začnu učit .NET nebo Java. Znám to .NET, takže si ho pravděpodobně vyberu, pokud volba spadá mezi .NET a Java (nebo byste mě mohli přesvědčit, abych si vybral Java :).

Kariéra, nevím, co je nejlepší volbou. Učit se nový rámec a jazyk je časově náročnější než zdokonalit mé stávající dovednosti v PHP. Ale s .NET máte spoustu možností (Windows 7 Phone vývoj, Silverlight, WPF) a možná větší šance na nalezení lepších pracovních míst.

Úlohy PHP jsou tedy méně dobře placené než .NET, alespoň podle mého výzkumu (opravte mě, pokud se mýlím). Ale pokud začnu hned s .NET, jsem jen začátečník a můj plat bude nízký. Potřebuji alespoň 2+ let zkušeností v nějakém jazyce, abych se dokonce pokusil najít nějakou práci, která platí v New Yorku více než 50 - 60 000 $. Mým hlavním cílem v příštích 2-3 letech je pokusit se najít práci v kategorii $ 60-80k. Nechápejte mě špatně, nejenom honím peníze, ale peníze jsou důležitým faktorem, když se snažíte založit rodinu.

Je mi 27 let a mám pocit, že není dost místa pro špatná rozhodnutí týkající se mé kariéry, takže jakákoli rada bude velmi vítána.

Aktualizace

Děkuji vám všem, že jste strávili čas, abyste mi pomohli s mým problémem. Všechny odpovědi a komentáře byly velmi užitečné. Rozhodl jsem se držet se PHP, ale také se učit C # a Silverlight 4. Uvidíme, kam mě život vezme.

34
Christian P

Je mi 51 let a používám alespoň 15 jazyků a/nebo rámců od doby, kdy jsem po maturitě v roce 1987 dostal svůj první platící koncert.

Požehnej vám.

Nikdy jsem nešel do vedení, protože jsem nechtěl, ale vím, jak programovat a vím, jak udržet týmy motivované a poskytovat dobrý kód. Musíte pracovat na dovednostech lidí a hledat zajímavou práci, která vás táhne. Nikdy jsem se nepřestal učit nebo bavit, ale byly chvíle, kdy jsem byl na cestě, co jsem mohl udělat se zastavením - ale ne kódování, cestování.

Dokud si dokážete vydělat na živobytí a splnit své osobní závazky, aniž byste ohrozili své zásady, pokud si užíváte to, co děláte (luxus, který generace mých rodičů neměla), pokračujte dál.

.Net a Java jsou obecně korporátní (protože jsou drahé dělat užitečné věci, ale škálovat opravdu dobře), PHP se obecně spouští, Ruby (obvykle startupy, které vyšly z designových studií z nějakého důvodu) pro mnoho lidí jako nezávislých. Pokud se budete držet s PHP naučte se OO věci, protože si myslím, že to konečně začne tak, jak lidé dělají věci, i když je to o něco lepší reimplementace toho, co máte s Java a mohli by mít udělali to mnohem dynamičtějším. Lidé, kteří dělají Python a chtějí cestovat), mohou skončit děláním nejrůznějších zajímavých vědeckých a herních věcí po celém světě. Perl je stále běžcem a má podobné profil.

Zapomeňte na jazyk, výběr a průmysl, který se vám líbí, vyberte společnost řízenou lidskými bytostmi a jděte si pobavit a přineste hodnotu lidem, kteří to ocení. Nebudete toho litovat.

64
Francis Fish

Co na světě má volba programovacího jazyka co do činění s vaší kariérou?

Tato otázka je jako zeptat se: „Mám dvě možnosti pro místo, kde mám pracovat. Měl bych pracovat u toho, kde má šéf norský přízvuk, nebo kde má šéf španělský přízvuk?“

Existuje mnohem důležitějších úvah o kariéře.

  1. Založení nebo založení společnosti?
  2. Produktová společnost nebo společnost, kde je IT podpůrnou funkcí?
  3. Naučíte se nové věci nebo nacvičujete staré?
  4. 9 až 5 nebo „pracujete každých 80 hodin, jak chcete?“
  5. Pěkní spolupracovníci nebo střední spolupracovníci?
  6. Chytří spolupracovníci nebo hloupí spolupracovníci?
  7. Oblek a kravata nebo tričko?

Tento seznam by mohl trvat hodiny. Volba programovacího jazyka je pro programátorskou kariéru stejně důležitá jako volba, zda si chcete vlasy rozčesávat doleva nebo doprava. Je to veškerý vývoj softwaru bez ohledu na to, jaký dialekt programovacího jazyka mluvíte.

120
Joel Spolsky

Naučte se co nejvíce jazyků, nejlépe alespoň jeden z každé hlavní oblasti vývoje.

  • Skriptované programovací jazyky (již máte PHP, zkuste Ruby, Python nebo něco jiného))
  • Kompilován do jazyků virtuálních strojů s bohatými kostry: .Net, Mono, Java
  • Zkompilován na holý kov: C/C++
  • Funkční jazyky: LISP, F #, Haskell

Každý z nich vás naučí něco o základech vývoje softwaru. Kromě toho budete samozřejmě muset zažít různé přístupy k designu (OO, funkční, datově řízený), různé metody týmové práce (agilní, tdd, ve srovnání s pevnějšími typy), různé platformy, různé mechanismy nasazení (nativní , webový rámec). Seznam pokračuje. Jazyková plynulost je jen malou částí celku.

Pro všechny tyto věci musíte udělat alespoň jeden skutečný produkt, který je používá, abyste byli zdatní.

Někteří lidé vám řeknou, že je třeba se specializovat na jednu technologii (PHP, .Net, Java) a vybudovat si kariéru z velké části kolem této, abyste dosáhli pokroku. S tím vůbec nesouhlasím. Vezmu vývojáře, který byl několikrát kolem bloku s různými platformami a technologiemi, než ten, který strávil 10 let jednou věcí v týdnu jednou věcí. Důvodem je to, že technologie se každý rok mění a vývojář, který je schopen vyzvednout novou technologii, přečíst API a aplikovat své zkušenosti obecnějším způsobem, než jen vědět, že funkce knihovny jsou od srdce, bude mnohem produktivnější v dlouhodobý. Dobře, takže 10letý veterán .Net bude mimo startovní bloky v .Net rychleji, ale časný náskok se ztratí asi za měsíc. Ve srovnání s širším obrazem zkušeností s řadou přístupů a technologií je to irelevantní.

23
Steve Streeting

Navrhl bych hledat práci PHP), protože to je to, co umíte nejlépe.

Navrhuji také, abyste se začali vzdělávat v nových technologiích, které se chcete naučit, abyste mohli nakonec začít hledat práci pomocí těchto, ale nedělejte to v tak krátkém termínu, protože zjistíte, že tyto věci jsou obrovské a zaměstnavatelé očekávají, abyste věděli dost o těchto tvorech, abyste byli produktivní. To vyžaduje čas a praxi . Nepodceňujte množství času a množství cvičení, které budete muset udělat.

Chcete-li poskytnout odhad toho, co by potenciální zaměstnanec „umím programovat v Javě“, měl být schopen, můžete se podívat na Sun Java tutoriál . [~ # ~] i [~ # ~] - očekáváte, že znáte alespoň polovinu uvedených konceptů, kde známé znamená, že je budete moci používat v program, který jste napsali, a používejte jej správně . Očekával bych, že bude trvat déle než 6 měsíců volného času, než bude studium dosaženo.

7
user1249

Nerad vypadám jako troll, ale jazyk, který byste se měli naučit, je angličtina. Ve vašem příspěvku je spousta chyb a vypadá to nedbalě. Kdybych najal a to byl tvůj životopis, bylo by mi jedno, jaké programovací jazyky jsi řekl, že víš, předpokládal bych, že tvá nedbalost s anglickým jazykem by se přenesla do tvé programovací práce.

Nezdálo se, že byste přicházeli v angličtině jako druhý jazyk (samozřejmě jsem se mohl mýlit), ale bylo dost gramatických a pravopisných chyb, aby se většina najímajících manažerů zastavila. Protože oni nejprve uvidí vaše napsané slovo, musíte to opravit.

6

Dlouhodobou odpovědí na tuto otázku je v podstatě to, co řekli náš vážený hostitel (Joel Spolsky) a Steve Streeting. Programování v jeho jádru není o jazycích, jde o používání počítače k ​​řešení problémů, a je to řemeslo, které se musí v průběhu času učit, pracovat a přemýšlet. Vědět, jak kódovat, z něj nečiní programátora.

Ale zeptali jste se na pragmatické a časově citlivé téma .. co byste měli dělat TEĎ?

Navrhuji, abyste se kopali do PHP do přesunu.) Do toho kopali, tvrdě, opravdu tvrdě, 20 hodin týdně mimo práci tvrdě. S PHP to je to docela snadné .. získejte hostingový účet a doménu a začněte vytvářet aplikace. Soustředěným úsilím je 6 měsíců věčnost. Za tu dobu se v tom buďte opravdu dobří. To vám pomůže najít dobrou práci jednou v novém York, a velmi pravděpodobně z vás udělá lepšího programátora pro zavedení.

BTW .. pokud jste to nevěděli, existuje IT job site v rodině StackExchange.

POTŘEBA, když se životní přechod trochu ustálil, začněte sledovat Playbook's Playbook a vzdělávejte se spíše o programování než o obchodu s kódováním. Chvíli mimo práci čtěte a dělejte věci na jiných platformách a pomocí jiných nástrojů.

5
tomjedrz

Krátkodobý; Nevím, jaké náborové postupy jsou v USA, ale vzhledem k tomu, že se pohybujete za 6 ~ 12 měsíců, prozatím bych uvažoval o tom, že se budete držet PHP, protože máte dva roky) zkušenosti s tím.

Moje zkušenost zde (v Nizozemsku) je, že společnosti mají tendenci se velmi krátkodobě zaměřovat na technologie a rámcové zkušenosti. Jazyk opravdu není -it-, i když se ptají „roky zkušeností C #" chtějí říct „roky zkušeností s knihovnami a nástroji frameworku/tříd, které ' d používat s C # ".

(Jinak, proč chtějí najmout kohokoli, kdo potřebuje 3 roky na to, aby se naučil syntaxe C # a funkce jazyka, je mimo mě. Zní to jako někdo, koho bych nechtěl najmout.)

Učení nových jazyků; statický, dynamický, funkční, má velkou hodnotu, pokud jde o rozšíření vašich perspektiv. Naučit se příslušné třídní knihovny a způsob, jak dělat věci v tomto jazyce, však bude vyžadovat zkušenost.

Doporučil bych přijít k rozhodnutí vybrat jeden technologický zásobník a naučit se ho hluboce. Pro inspiraci použijte jiná prostředí.

Samozřejmě přichází také osobní preference. Například, i když na to existuje spousta trhu, nikdy bych nikdy nepřijal/a PHP= job :-P) Vybral jsem si zásobník a na základě toho jsem nacházel lov.

Pokud jde o kariéru, z dlouhodobého hlediska si myslím, že byste se měli dívat za kódování (na konci je to všechno o učení a schopnosti číst a/nebo skimovat dokumentaci) a technologii dne a podívat se více na měkké dovednosti a podobně. Technologie přicházejí a odcházejí poměrně rychle. Samozřejmě je toho co se naučit, pokud jde o osvědčené postupy a obecnější know-how, bohužel je podle mých zkušeností bohužel jen zřídka hledají na trhu práce.

1
Joppe

Myslím, že lidé často kombinují programovací jazyky a rámce/technologické balíčky. Je poměrně snadné se naučit nový jazyk, ale u velkých technologií je to mnohem obtížnější. Souhlasím s některými odpověďmi, že nejdůležitější je vaše celková zkušenost s programováním/řešením problémů, ale nemyslím si, že kdokoli dokáže porozumět zcela nové technologii za 1 týden.

Jistě, velká část vývojářů nikdy nečetla jednu technickou knihu a nerozuměla samotným stavebním kamenům technologií, které používají. Prostě se vymaní z problémů a jsou velmi „úspěšní“. Sám jsem začal kariéru v PHP), aniž bych nejprve pochopil, jak HTTP funguje na začátku. Ale někteří zaměstnavatelé, které respektuji nejvíce, očekávají hluboké porozumění „jak věci fungují“, jednoduše proto, že to má tendenci zvýšit šance na úspěch svých projektů.

Nejméně musíte udělat, abyste toto porozumění získali, abyste si přečetli několik dobrých knih s dostatkem času na prototypování řešení běžných problémů v novém neznámém vývojovém prostředí. Je možné to udělat za týden? Ráda bych pracovala s lidmi, kteří jsou toho schopni, ale já doufám, že se s takovými lidmi brzy setkám.

Někteří zaměstnavatelé jsou ve skutečnosti připraveni poskytnout vám dostatek času k tomu, abyste toto porozumění získali, respektujíc vaše celkové hluboké technické zkušenosti v jiných technologických řadách (pokud je máte), ale bohužel většina z nich ne.

Také, když měníte technologie, nejdůležitější je vaše osobnost - jak skromný a zvědavý člověk musíte trávit dost času, abyste pochopili, jak věci fungují a jak se věci dějí ve vaší nové oblasti.

Abych to shrnul, moje odpověď by byla následující. Vyberte si technologii, která má dostatek potenciálu a která (a co je nejdůležitější) vás učiní šťastnou ve vaší práci. Specializujte se na tuto technologii, trh práce to ocení a několik let potřebných k získání vašeho cílového platu bude stát za to. Ale nikdy nebuďte příliš horliví, trávte nějaký čas s jinými technologiemi, celkově z toho budete mnohem lepší PROFESIONÁLNÍ.

1
Konstantin

Myslím si, že primárním bodem je, že softwarový inženýr by se nakonec měl dostat do stavu, ve kterém je jazyk pro daný úkol do značné míry nevýznamný, s výjimkou jeho omezení.

Ať už znáte jazyk, nebo ne, nemělo by to dělat žádný rozdíl, pokud máte příručku, jen abyste urychlili první den nebo tak, zatímco najdete ložiska.

Přesto však proprietární jazyky mají po celém webu méně dokumentů a příkladů, a proto je obtížnější si na ně zvyknout a představovat problém, pokud si chcete vzít svou práci domů s sebou.

1
Orbling

Moje rada je najít práci dělat to, co vás zajímá, a užít si dělat. Pokud se vám líbí PHP, proč ne dále rozvíjet své dovednosti PHP=.) Je mnohem snazší se učit a rozvíjet dovednosti, které dělají něco, o co máte zájem.

Už jste se někdy dívali na .NET nebo Java)? Pokud ne, mohlo by to naznačovat, že vás tyto jazyky nezajímají, ale možná byste mohli strávit týden nebo tak dívat se na každý z nich a vidět pro sebe, zda vás zajímá.

1
cspolton

Musím souhlasit s Joel. Jeho odpověď však přesahuje technické dovednosti a preference.

Podle mých zkušeností jsou vaše pracovní požadavky obvykle zaměřeny na konkrétní technologii nebo programovací jazyk, nikoli na to, co byste chtěli použít; pokud se nejedná o spuštění, které ještě nedefinovalo, co budou používat. A nikdo nemůže zaručit, že najdete práci/společnost využívající přesně to, co hledáte.

Skutečná otázka tedy zní: jste dobří v učení nových věcí? můžete problém vyřešit a včas ho vyřešit bez ohledu na programovací jazyk?

Dobrý programátor by si měl být dobře vědom koncepcí konstrukce softwaru a softwarového inženýrství. Vaše otázka mě nutí věřit, že jste neinvestovali dost času na to, abyste se naučili ty, což vám pravděpodobně způsobí nejistotu ohledně vašich schopností a jaké jsou vaše skutečné potenciály. A upřímně, pokud jste to neudělali, je čas, protože bez nich pravděpodobně nejdete daleko.

Je tu ještě jedna věc, kterou většina z nás programátorů obvykle nezajímá, než stárneme nad 30 let: Programovací dovednosti jsou jen polovinou dovedností, které dělají dobrého programátora. Jste dobrý týmový hráč? Jste ochotni předat znalosti spolupracovníkům stejně ochotně, jako jste (nebo by měli) přijímat znalosti od ostatních? Mnoho lidí z nás velmi podceňuje dovednosti lidí, zatímco ve skutečnosti jsou velmi důležité.

1
mspir

Nesouhlasím s většinou komentářů uvedených na tomto fóru.

Kromě učení se principům a teorii softwarového inženýrství je jazyk, který si zvolíte, mistrovskou volbou. Proto existují Java programátoři a PHP programátoři. PHP programátoři pravděpodobně nebudou pracovat pro NASA a Java programátoři pravděpodobně nebudou pracovat pro internetový obchod.

Pokud chcete práci ve firemní Americe, je lepší jít do Java/.Net. Dobrý příjem se do vás může dostat, ale buďte připraveni věnovat jim svůj život (časem).

Pokud chcete být nezávislým nezávislým pracovníkem a žít v rychlém pruhu s webovou technologií, máte lepší PHP. Hodně práce zde, ale plat se velmi liší a být nezávislý, pracuje sám s každým Tomem, Dickem a Harrym s myšlenkou, která se vás snaží najmout za haléře.

Dochází k určitému překrývání s PHP a Java, ale je vidět pouze v podnikových úlohách (Java REST Služby s PHP front-end)), nenajdete však internetové obchody ani nezávislou práci na volné noze. kdekoli poblíž Java.

Obě vyžadují hodně času a odhodlání, pokud chcete být v dané situaci užitečné.

Chcete-li být kvalifikovaným a vyhledávaným vývojářem PHP, potřebujete tašku plnou dovednostních sad. Je pravděpodobné, že budete znát CSS, HTML4/5, a určitě Javascript DOM/Ajax/Jquery plus alespoň životaschopný rámec, jako je Zend (výběr podnikového amerického ochutnávky), Codeignitor, cakePHP atd. A pak vy Budu potřebovat znát „velké tři“ CMS: Drupal, Wordpress a Magento. Pořiďte si tyto sady dovedností pod pás a budete specialistou PHP s možností práce na zemi kdekoli jdete. Jak můžete říci, brát to všechno je oddanost jazyku a jeho nástroje způsobují, že učení se Perlu vám nepomůže být odborníkem Drupal nebo vývojářem Zend.

Totéž platí pro Javu: OOP, J2EE, REST/SOAP, jaro/vzpěry atd. A je to flotila dalších nástrojů, které pánům trvá roky.

Vyzkoušel tu někdo kódování Java po dobu jednoho roku a poté se vrátil do PHP (nebo jakéhokoli skriptovacího jazyka). Je to náročné. Je to nepříjemné.

Pracuji pro fortune 500 společnost a Java vývojáři by nebyli schopni dělat to, co PHP vývojáři dělali, a PHP vývojáři by nebyli schopni dělat to, co Java vývojáři dělali. Ale obojí se finančně dobře daří, protože jsou to specialisté ve svém oboru, jejich jazyk volby a řada nástrojů, které s tím přicházejí.

1
coder3

Jazyk a platforma nejsou tak důležité. Naučte se solidní lidé a dovednosti comp sci. Spousta lidí to řekla, ale nedala specifika, tak mi to dovolte. Zde je několik věcí, které se naučit

  • algoritmy a datové struktury.
  • konkurence
  • strojové učení
  • programování na úrovni systémů
  • vyhledávací a vyhledávací stroje
0
jshen