Jak dlouho trvá, než se naučíme programování dostatečně dobře, abyste z něj mohli vydělávat na živobytí?


Odpověď 1:

Nikdy se nepřestanete učit, takže k tomu ve skutečnosti není konečný bod.

Trvalo mi několik let, než jsem byl užitečný, opravdu.

Samotné psaní kódu, které jsem mohl udělat, je sice špatně, ale roky mi přinesly dvě velké věci:

  • Naučil jsem se kódovat způsobem, který byl lepší později upravit, a měl méně vad
  • Dozvěděl jsem se o systémech a různých oblastech

Někdo zanechal skvělou poznámku, že programy musí být o něčem.

To je opravdu pravda. A je to vaše práce, aby to všechno vyřešil.

Řekněme, že jste požádáni o kódování řídicího systému pro robota.

Jak ovládáte robota?

To je to, co jste právě měli vyřešit.

Pokud jste požádáni, abyste napsali střílecí hru, to samé. Jak si vyrobit hru? Jak čte herní ovladač? Jak přimět hráče k pohybu?

Nejde jen psát kód jako programátor. Pomocí kódu vymýšlíte řešení problémů.

To je těžká část, která vás udržuje celoživotním studentem.


Odpověď 2:

Zobrazený obrázek je William H. Winslow House. Vnější linie jsou dobré. Čisté, uspořádané a založené na vzhledu povrchu se jeví jako pevná budova. V době, kdy to píšu, je ten dům starší 100 let. Někteří by řekli, že dům podle dnešních standardů vypadá jednoduše.

Člověk by mohl být omluven za to, že si myslel, že ten, kdo navrhl Winslowův dům, nemůže být stejný člověk, který to navrhl:

Jedná se o budovu běžně známou jednoduše jako Guggenheim, ale formálně pojmenovanou budova muzea Solomon R. Guggenheim v New Yorku. Osoba, která ji stavěla, strávila na ní 16 let. Dokončeno bylo kolem roku 1959, ale zajímavé je, jak to vypadá jako moderní budova Space Space. Exteriér vypadá jako sídlo dobročinné společnosti přímo ze sci-fi filmu. Budova je skutečným a seriózním prostředím pro pozorování umění.

Kdo tyto dvě budovy vytvořil?

To by byl Frank Lloyd Wright. Jeden z předních architektů budov, který žil, navrhoval a dohlížel na stavbu budov v nejméně 9 státech USA. Pan Wright měl solidní dovednosti. Lidé ho vyzývali, aby vytvořil dobré budovy. Jak začal a jak se stal natolik dobrým, že byl jedním z nejvyhledávanějších praktiků své dovednosti?

Jeho cesta k dokonalosti začala tímto:

Tím zvláštním sortimentem geometrických dobrot jsou Fröbel Blocks od Friedricha Fröbela. Těmito bloky byly jeho TRS-80, jeho první setkání s kreativitou, budováním, vztahy mezi prvky a další. Ty bloky byste mohli dát milionu dětí z jeho doby a většina z nich by si s nimi chvíli hrála, než se nudí a přejdete k něčemu jinému. Většina dětí své doby, které se staraly o tyto dary Fröbel, by považovala za přirozený způsob, jak trávit čas, a nic víc. Někteří však objevili bránu k latentnímu zájmu o to, co bloky představují.

Pan Wright se stal dobrým v tom, co udělal, protože byl náchylný k tomu, ať už za něj někdo zaplatil nebo ne. Kdyby se nikdy nestal smluvním architektem, pravděpodobně by ještě někde byl, možná jako činnost po skončení práce, vypracovávající nové návrhy ve svém suterénu. Kdyby měl stejnou osobnost a zkušenosti, ale vyrostl v naší době, pravděpodobně by pracoval na projektech Habitat for Humanity, protože na něj stavěl dobré věci.

Přejdeme k aktuální době.

To je obraz bootování jádra Linuxu. Obecně je to kód v zákulisí, který je základním softwarovým prostředím „digitálního domu“ pro většinu směrovačů Wifi, většinu cloudových serverů, webů, telefonů Android, zařízení IoT, přenosných počítačů a většiny superpočítačů Top500. Ten, kdo vytvořil tento základní digitální dům, by se nepovažoval za architekta, ale rozhodně je designérem solidního počítačového softwaru. Další z jeho výtvorů, git, je základem pro web známý jako GitHub. Vytvořil Linux a Git zdarma. Neprodal jsem to.

Jak začala taková schopná osoba, jako je Linus? "Hrál" s počítači. Měl otázky o tom, co viděl. Snažil se odpovědět na tyto otázky vyzkoušením věcí. Nakonec rozšířil tento zájem tím, že více studoval a učil se více, až nakonec začal spolupracovat s ostatními. Jeho zvědavost na technologii byla nakažlivá, ale byla řízena vlastními silami. Mnoho lidí by si najalo pana Torvaldse, ale nikdy v tom nebyl kvůli penězům.


Odpověď 3:

Obvykle to trvá

asi 1 000 hodin práce

. Například většina programovacích bootcampů je asi 12 týdnů práce při 80 hodinách týdně, což vychází z 960 hodin - a pravděpodobně strávíte nějaký čas před a po studiu. Podobně bude titul CS obvykle vyžadovat asi 1 000–2 000 hodin programovací práce. Dokonce i lidé, kteří se sami učí, často tráví podobné množství času před získáním zaměstnání, až na vzácné výjimky.


Odpověď 4:

Co bych udělal, bylo, kdybych si vzal knihu plnou otázek technického programového rozhovoru v jazycích, které chci dostávat za kódování. Přečtěte si knihu. Bude to trvat tak dlouho, než vás najmeme jako vývojáře, protože to bude trvat, abyste byli schopni odpovědět na tyto druhy otázek s jistotou, pod určitým tlakem - a také být schopen provádět úkoly kódování na tabuli v rozhovoru.

Příklady otázek na pohovor v C #

  • Můj oblíbený: implementujte prosím na tabuli tabulku rozšíření .Select () (za předpokladu, že ji Microsoft zanedbal).
  • Jaký je rozdíl v časové složitosti mezi lineárním a binárním vyhledáváním?
  • Jaké jsou komparativní výhody a nevýhody propojených seznamů a polí?
  • Napište prosím na tabuli metodu, která odstraní všechny duplicitní hodnoty z kolekce celých čísel

Až na # 1 - což je těžké, pokud neznáte C #

opravdu

dobře, všechny tyto otázky jsou na jednodušším konci věcí, které budete muset udělat, abyste absolvovali technický pohovor.

Důležité je také mít portfolio kódu a historii tvorby kódu, který řeší problémy.


Odpověď 5:

Závisí na vás a kolik času trávíte tím, že to denně děláte.

Většina lidí je pronajímatelná po absolvování 3–4 letého unijního kurzu. Řekl bych, že je to celkem neefektivní. Pokud jste rozumně inteligentní a trávíte programováním přibližně 20 hodin týdně, měli byste být schopni získat práci po 2 letech. Udělejte více nebo se učte rychleji a to omezíte, uděláte méně nebo pokud se neučíte snadno a bude to trvat déle.

Jako vedlejší poznámka, když se snažíte získat práci jako samouk programátora, je nutné dokončit plné a užitečné projekty. Možnost nasměrovat lidi do úložiště pomocí několika plně vybavených aplikací pomůže hodně s nájemem. A začněte se pokoušet odpovídat na otázky o přetečení zásobníku. To hodně pomáhá s technickou komunikací, kterou budete v práci potřebovat.


Odpověď 6:

Je třeba zvážit mnoho faktorů. Co je to bydlení? Výše peněz potřebných k bydlení se mezi lidmi a lokalitami velmi liší. Jak rychle se můžeš učit? Opět velmi proměnlivé číslo.

Takže do té míry nemůžu odpovědět na to, jak dlouho vám nebo někomu jinému potrvá, než bude dostatečně zdatný v programování, aby vydělal vhodný příjem.

Mohu se podělit o své zkušenosti s získáním prvního programovacího koncertu PHP. Už jsem psal programy v jiných jazycích, když jsem si vybral knihu PHP a začal si s tímto jazykem pohrávat. Jsem si jist, že již zkušenosti s vývojem softwaru urychlily mé učení se PHP. Knihu jsem vypínal a zapínal asi 6 týdnů, většinou jsem spouštěl PHP z příkazového řádku, abych se jen naučil syntaxi a schopnostem jazyka. To mě tam částečně dostalo, ale chyběl mi velký kus toho, na co se PHP obvykle používá (vývoj webových aplikací). Abych to vyřešil, nainstaloval jsem Apache na moji pracovní stanici Linux, abych se také mohl naučit jazykovou stránku pro vývoj webových aplikací. Vytvořil jsem několik osobních projektů pro usnadnění mého učení. Asi po 6 měsících jsem se s jazykem cítil docela dobře. Začal jsem prověřovat stránky na volné noze a nabízet nabídky na PHP. Byly to roky, ale myslím, že jsem většinou nabízela na rent-a-coder a Odesk (nyní upwork). Neměl jsem žádné štěstí, ale jednoho dne (myslím, že to bylo na Odesku) byla vyslána práce na provedení nějakého škrabání na webu. Zahrnoval odkaz na vzorovou stránku, kterou chtěli poškrábat. V té době se mohli nezávislí nezávislí hráči klást otázky o práci a otázky / odpovědi se stávaly součástí vyslání práce. Všichni, kdo si práci prohlédli, mohli vidět všechny předchozí příspěvky. Další nezávislý pracovník zveřejnil, že odkaz (na příklad webu byl přerušen, takže jej nemohli vidět. Na stránce jsem udělal zdroj zobrazení, abych viděl hodnotu odkazu href. Viděl jsem, proč to nefunguje. V odkazu byl mezera nebo něco. Zkopíroval jsem odkaz ze zdroje a vložil ho do textového editoru, opravil chybu a vložil do svého prohlížeče, abych viděl příkladovou stránku. Poté jsem odpověděl na druhého nezávislého pracovníka s opraveným odkazem. Další den mi byla nabídnuta práce. Klient nikdy nezmínil můj příspěvek, ale myslím, že to naklonilo stupnice v můj prospěch. Získání první nabídky je klíčové. Může to být obtížné, ale pokud jsou trvalé a píšete návrhy, které vám ukazují, že rozumíte a dokážou vyhovět potřebám klientů a nakonec dostanete tu první nabídku.


Odpověď 7:

Existuje spousta různých přístupů ke zpeněžení. Řekl bych, že spadá do 3 kategorií:

  • získat práci jako programátor
  • na volné noze
  • kódovat něco, co prodává a vytváří společnost

Druhá 2 opravdu zahrnuje praxi a kreativitu. Pokud si to přejete, přestaňte číst knihy a online kurzy a začněte dělat věci.

Pokud chcete legitimní práci softwarového inženýra, který se samostatně učí, budete muset udělat trochu více práce. Začal bych s vytvářením webových stránek s komplexními zálohami, ověřováním dat atd. Nenechte se příliš zavěsit na html / css. Jistě, grafika se prodává, ale nedostanou ti práci inženýra.

Řekl bych, že 2 důležité knihy ke čtení jsou „Kniha dinosaurů“ a CLRS. A ano, říkejte jim, že vás znějí, jako byste věděli, o čem to mluvíte. Inženýři milují nerdy uvnitř vtipů. Kniha dinosaurů je úvodem do operačních systémů, zejména Linuxu. CLRS je úvodem do algoritmů a datových struktur.

Žádný úvod neznamená snadné. To znamená, že na konci toho pochopíte základní vědu operačních systémů a programů. Jako začátečníci jsou obtížní, ale držte se jich a provádějte praktické problémy. Úvod do kurzu algoritmů na MITOpenCourseware používá jako učebnici CLRS, takže bych určitě sledoval přednášky a zadával úkoly. Učí to v pythonu, což je skvělé, zvláště pro vás.

Nemyslel jsem si, že operační systémy budou tak důležité pro cíle, které sleduji, dokud jsem nezačal číst knihu dinosaurů. Je mi jedno, jestli děláte hru, aplikaci, web nebo kosmickou loď. Operační systém je zdaleka nejdůležitější a nejvlivnější součástí.

Vyzkoušejte věci jako coderbyte, topcoder, projekt Euler atd. Pokud nejste v matematice silní, pomůže vám to. V závislosti na tom, jak nízké jsou vaše matematické dovednosti, bych se alespoň pokusil probudit základní počet pomocí online kurzů. V tuto chvíli je trochu snazší jít na vlastní pěst, i když v žádném případě to není snadný proces.

Tam je hlavní mylná představa, že každý může získat práci jako programátor bez titulu. Tento názor je velmi ovlivněn skutečností, že

tolik lidí to zkouší

. Miliony se snaží, tisíce uspějí.

To je také ovlivněno spouštěcí scénou v tech. Jistě, můžete získat práci při spuštění, pokud znáte správné technologie. Naučte se python, django, AWS EC2 a ubuntu a můžete být připraveni k uvedení do provozu za 6 měsíců. To není totéž jako práce ve velké technologické společnosti nebo kdekoli, kde je tato technologie prioritou. Konkurence s nejlepšími způsoby, jak optimalizovat rychlost / velikost / spolehlivost / užitečnost pro miliony uživatelů, je jiná, než produkovat velmi chytrý nápad s 9 vašimi kamarády.

Nemluvě o tom, že jeden je „lepší“, ale získání inženýrské práce při spuštění vám nepřinese inženýrskou práci na google. Rozdíl je v základech. Jistě, učení správných technologií vás učiní vysoce produktivními v malém prostředí. Znalost základů a základů je však to, co vás činí vysoce produktivním v podnikovém prostředí.

Operační systémy, datové struktury, algoritmy a typy. Jsou vědou o aplikované počítačové technologii.