Jak se naučit programovat od nuly. Jak se začít učit programovat pro začátečníka? Jazyky nízké a vysoké úrovně

Start
Kde mám začít?
Který programovací jazyk byste se měli naučit jako první?
Kde najdete kvalitní vzdělávací zdroje?
Jak zlepšit své dovednosti
Jak přejdu od začátečníka po středně pokročilého?
Kde najdete cvičná cvičení a nápady na projekty?
Jak zlepšit dovednost implementace úkolů / úkolů v programech (algoritmické myšlení)?
Nenapadá mě skvělý projektový nápad. Chybí mi jen kreativita? Jak hledají inspiraci ostatní programátoři?
Kde najdu příklady dobrého kódu a projektů, ze kterých se mám učit?
Jak se učíte témata obsažená ve standardních univerzitních programech počítačové vědy?
Jak zahájit velký projekt a neopustit ho?
Běžné obavy a obavy
Jsem příliš starý na programování?
Je ještě něco, co se musím nejprve naučit?
Musím být dobrý v matematice?
Hodně googlím nebo nevím, jak něco udělat, když právě začínám. Je to špatné?
Je těžké programovat?
Otázky týkající se školení
Co to znamená „umět jazyk“ nebo „umět programovat“?
Právě jsem se začal učit X. Měl bych se začít učit Y?
Měli byste se naučit více než jeden programovací jazyk současně?
Je špatné, že začátečníci mají někdy problémy s úkoly a cvičením?
Jak zjistíte / udržíte si motivaci naučit se kódovat?
Kde mám začít X?
Kde začít s výrobou videoher?
Kde začít dělat webové stránky / webové aplikace / vývoj webových aplikací?
Kde začít vytvářet mobilní / aplikace pro Android / aplikace pro iOS / aplikace pro Windows Phone?
Jak něco automatizujete?
Terminologie a slovní zásoba
Jaký je rozdíl mezi počítačovou vědou (CS), počítačovým inženýrstvím (CE), softwarovým inženýrstvím (SE), programováním a kódováním?
Jaký je rozdíl mezi C, C ++, Objective-C a C #?
Jaký je rozdíl mezi jazykem Java a JavaScript?
Nástroje a správa verzí
Co je správa verzí / správa verzí? Mám to použít?
Jak začít používat správu verzí?
Co je IDE? Mám to použít?
Počítače a operační systémy
Jaký operační systém mám použít?
Jaký počítač / notebook si mám koupit?
Kariéra a práce
Můžete vydělat spoustu peněz na programování?
Můžete získat práci v programování bez titulu z informatiky? Nebo vůbec žádné vyšší vzdělání?
Jak vstoupit do tohoto odvětví a získat výchozí pozici?
Co dělat dál?
Už žádný nováček
Programování je jen nástroj
Jak zlepšit své programátorské dovednosti
Smíšený
Jak naučit programování dítě?
Jak mohu přispět k projektům s otevřeným zdrojovým kódem?
Mám dotaz ohledně jazyka C / Python / jiného.
Moje otázka tam není. Co bych měl dělat?
Ano, moje otázka je ve FAQ, ale chci odpověď od skutečné osoby.
Jak upravím wiki / r / learnprogramming (včetně této FAQ)?

Kde mám začít?

Pokud se chcete naučit kódovat, je užitečné nejprve pochopit, proč to potřebujete. V tomto Video z YouTube Kevin Cheers odvedl skvělou práci a vysvětlil, jak přistupovat k programování učení.

Dále nezapomeňte, že neexistuje univerzálním způsobem naučte se kódovat - všichni lidé se učí trochu jinak a možná budete muset experimentovat, abyste našli ten, který vám nejlépe vyhovuje. Většina lidí však používá následující přístup, který vřele doporučujeme:

  1. Najděte malý problém nebo projekt, který bude pro vás zajímavé vyřešit. Můžete se pokusit vytvořit nástroj pro řešení drobného životního problému, nebo implementovat program od nuly, který se vám zdá zajímavý. Projekt, jako je tento, vás bude motivovat k tomu, abyste se stále učili kódovat, a dá vám příležitost uplatnit to, co jste se naučili, v praxi.
  2. Přečtěte si informace o různých programovacích jazycích a najděte ten nejlepší pro svůj projekt. (Viz doporučení níže).
  3. Najděte a použijte jeden kvalitní zdroj pro začátečníky pro daný jazyk. (Viz také níže).
  4. Kromě tohoto zdroje googlete a ptejte se.
  5. Udělejte několik originálních projektů v tomto jazyce.
  1. Nemůžete jen pasivně studovat zvolený zdroj: dělat cvičení a domácí úkoly; praxe je nepostradatelnou součástí učení se programovat.
  2. Nepřepínejte zbytečně z jednoho jazyka do druhého. Vyberte si jeden a držte se ho, protože programování je o řešení problémů, ne o učení jazyků. Naučit se řešit problémy je obtížné a tuto dovednost lze zdokonalit pouze důslednou praxí. Pokaždé, když přejdete do jiného jazyka, ztratíte čas, ve kterém byste si mohli procvičit aplikaci toho, co jste se naučili, k rozvoji dovedností při řešení problémů.
  3. Nepřestávejte se učit po absolvování jakéhokoli kurzu. Programování je jednou z oblastí, kde se je vždy co učit.

Nakonec nezapomeňte, že naučit se kódovat je dlouhý a náročný proces. Pokud je to pro vás těžké, nenechte se odradit! To je zcela normální a mnoho lidí roky studuje a cvičí, dokud se necítí natolik kompetentní, aby si hledali práci nebo přispívali na seriózní projekt. Začátek není naštěstí vůbec tak těžký.

Který programovací jazyk byste se měli naučit jako první?

Existují dva běžné mylné představy, které vedou lidi k položení této otázky. První je, že existuje „nejlepší“ programovací jazyk, a druhý, že první jazyk, který se naučíte, jednou provždy určí vaši programátorskou kariéru.

Ve skutečnosti neexistuje lepší jazyk což rozhodně stojí za to nejprve naučit a nebude hrát zásadní roli ve vaší budoucí kariéře. Navenek se programovací jazyky zdají velmi odlišné, ale většina základních principů proudí z jednoho jazyka do druhého. Učení se novým jazykům bude navíc postupem času snazší: Začátečníkům může trvat, než si budou v prvním jazyce jisti, zatímco zkušený programátor se s novým jazykem seznámí během několika dní.

V ideálním případě by měli mít všichni programátoři odlišné typy jazyky. Jakmile zvládnete jeden jazyk, můžete se pustit do dalšího, který se od předchozího zásadně liší. Když se učíte nové jazyky, budete si moci vybrat z širší škály nástrojů, které jsou nejlepší pro řešení konkrétního problému, a to je ukazatelem dobrého programátora. Protože principy programování jsou prvořadé, doporučujeme začátečníkům začít s populárním jazykem z níže uvedené tabulky. S pomocí kterékoli z nich začátečníci budou moci začít tvořit jednoduché aplikace a procvičujte kódování, aniž byste se dotýkali příliš pokročilých funkcí jazyka.

Pokud již máte představu nebo cíl projektu, naučíte se rychleji, pokud dokážete na úkol uplatnit své dovednosti. Níže uvedená tabulka ukazuje doporučené jazyky pro běžné projekty.

Chci se učit…

  • … Vyvíjet aplikace pro iPhone - Swift (více)
  • … Vyvíjet aplikace pro Android - Java (více)
  • ... vytvářet webové stránky - JavaScript, CSS, HTML5 (více)
  • ... psát desktopové aplikace pro Windows - C #
  • ... vytvářet 2D / 3D hry - JavaScript, C # nebo C ++ (více)
  • ... program Arduino / mikrokontroléry / roboty - C
  • ... provádět vědecké / matematické výpočty nebo analýzu dat - Julia, Python, R nebo Matlab
  • ... dělat automatizaci a skriptování - mnoho jazyků (Python, Ruby, Bash, Powershell, AutoHotKey ...)

Pokud není uvedeno, co potřebujete, podívejte se na další možnosti těchto zdrojů:

Pokud stále nemůžete zjistit, který z nich si vybrat, naučte se Python. Je to dobrý jazyk dostupný pro začínající programátory s obrovskou komunitou a mnoha knihovnami, které lze použít k téměř jakémukoli vytváření her, automatizaci procesů doma nebo v práci a analýze dat za účelem vytvoření webové stránky. Než se ponoříte do složitějšího vývoje aplikací, zkuste najít studijní zdroj, který pokrývá klíčové principy a základy. Pokyny, jak se začít učit jakýkoli jazyk, najdete na stránce Začínáme reddit.

Kde najdete kvalitní vzdělávací zdroje?

Jak zlepšit své dovednosti

Jak přejdu od začátečníka k mírně pokročilému?

Typická otázka, kterou dostáváme od mnoha nováčků, je „co dál?“ Zejména když se pokoušeli zpracovat některé lekce, manuály, kurzy, ale nakonec stále nedokázali zaplnit mezeru mezi porozuměním tomu, jak funguje příkaz if nebo smyčka for, a jak přesně aplikovat to, co se naučili, vytvořit komplexní a zajímavé programy.

Přechod z výukových programů na složitý kód může být obtížný a je běžné, že se každý učí kódovat. Tento jev je velmi dobře popsán v tomto článku. Mnoho kurzů (zejména komercializovaných webů pro výuku kódování, jako je CodeAcademy) vám pomůže důkladně prostudovat základy, ale tím to končí a nováčci se zaseknou.

Pokud se ale nevzdáte a překonáte zmatek, začnete si všímat, že se postupně zlepšujete a zlepšujete, až si jednoho dne uvědomíte, že aniž byste si to uvědomovali, již jste začali přecházet na novou úroveň.

Zde je pár tipů, jak se nevzdávat a co dělat dál.

Přepněte z pasivního na aktivní učení

Místo kurzů a lekcí, které vás (myslíte si) naučí to, co se chcete naučit, začněte aktivně hledat způsoby, jak se učit sami. Pokud například nevíte, jak hru vytvořit, dejte si do googlu „jak napsat hru v X“, kde „X“ je programovací jazyk, který hodláte používat. Pokud se vám zobrazí chybová zpráva, která vám není známá, zkuste si to vygooglit. Pokud chcete zvládnout strojové učení, googlete a najděte si dobrou knihu, návod nebo online kurz.

Často narazíte návody přesně vysvětlující, co byste měli dělat, nebo alespoň články, které dávají obecnou představu a tipy, jak zpřesnit vyhledávací dotazy... Navíc není nic ostudného hledat zdroje nových znalostí - právě naopak. Všichni programátoři, začátečníci i profesionálové, neustále dělají dvě věci: googlují a učí se.

Cvičte neustále

Programování je podobné cvičení v tom smyslu, že se můžete zlepšit, pouze pokud budete cvičit nepřetržitě. Začněte postupně a zkuste napsat jednoduchou hru nůžky na kámen, papír příkazový řádek... Až budete hotovi, zkuste řešit odvážnější projekt a mít ho hotový. Pokud si přejete, můžete paralelně provádět několik programovacích cvičení.

Hlavním cílem programování je vyvinout aplikované řešení problémů a nejlepší způsob, jak se to naučit, je neustále řešit problémy, velké i malé.

(Viz také FAQ: Kde najít cvičná cvičení a nápady na projekty a FAQ: Nemohu vymyslet skvělý projektový nápad. Jen mi chybí kreativita? Jak hledají inspiraci ostatní programátoři?)

Naučte se rozložit úkol

Když se snažíte vyrovnat s velkým projektem nebo úkolem, můžete už být zoufalí z toho, jak velcí a zastrašující vypadají. Místo toho, abyste se nechali odradit, rozdělte úkol na menší a menší dílčí úkoly (tomu se říká rozklad), dokud se každý jednotlivý dílčí úkol nezačne zdát docela zvládnutelný a proveditelný.

Řekněme, že chcete vytvořit hru kámen-nůžky na papír. Lze jej rozdělit na několik dílčích úkolů: jak získat vstup od uživatele, jak přimět počítač k randomizaci, jak určit vítěze a jak hru opakovat (pokud chcete hrát několikrát za sebou).

Pokud si nejste jisti, jak vyřešit každý z těchto dílčích problémů, rozebírejte je dále. Pokud například nevíte, jak určit vítěze, můžete zvýraznit ještě více dílčích úkolů: jak určit remízu, jak určit své vítězství (pokud zvolíte kámen), jak určit své vítězství (pokud zvolíte papír) a jak určit své vítězství (pokud zvolíte nůžky).

Pokud vůbec nevíte, jak něco udělat (například jak přimět počítač, aby vybral náhodnou hodnotu), vygooglete si to. PROTI tento příklad hledání „X pro výběr náhodné hodnoty“ (kde X je použitý programovací jazyk) zobrazí několik různé způsoby které můžete použít. Někdy lze úkol rozdělit na mnoho částí bez vyhledávače a někdy se bez něj neobejdete.

Pokud se tedy učíte Javu a chcete se naučit psát hry, ale nevíte, kde začít nebo jak problém rozdělit na součásti, vygooglete si „návody na hry java“. Vyhledávání vám poskytne několik dobrých zdrojů, které vás naučí psát hry a (obvykle automaticky) rozdělit proces psaní hry na menší dílčí úkoly.

V zásadě tím do sebe vštípíte vývojářské myšlení. Pokud je úkol příliš obtížný, nenechte se odradit. Pokračujte v rozdělování na další a další jednoduché kousky a prozkoumávejte věci, které se zdají nedělitelné. Pak znovu v kruhu: smeč, google, smeč, google ...

Jedná se o poměrně efektivní samoučící se strategii. Díky procvičování lépe porozumíte rozložení úkolů a rozšíříte svou znalostní základnu a zásoby. možné způsoby jejich řešení.

Další tipy najdete v FAQ: Jak zlepšit dovednost implementace úkolů / úkolů v programech (algoritmické myšlení).

Buďte systematičtí

Když píšete a ladíte kód, v žádném případě si nezvykněte na to, že se jen snažíte něco udělat a doufáte, že to bude omylem fungovat. Buďte co nejjasnější a nejkonzistentnější - pokus a omyl zde nebudou fungovat.

Při psaní kódu se na minutu zastavte a nakreslete si na papír hrubý akční plán. Zkuste nakreslit nějaké diagramy nebo nakreslit něco jako pseudokód. Pokud musíte změnit svůj plán (což s největší pravděpodobností uděláte), zvažte, proč změnu potřebujete a jaký bude váš plán. nový plán akce. (Tento krok plánování je také dobrou příležitostí k procvičení rozkládajících se úkolů!)

Při ladění kódu si ujasněte cíle. Uvažujte jako vědec: pokuste se buď opravit chybu, nebo zúžit vyhledávání a zapište si výsledky. Pokud byl váš odhad / pokus špatný nebo se stalo něco, co jste nepředvídali, zastavte se a zjistěte, jaký je důvod. Pokud vám to pomůže dodržet plán, můžete si zapisovat experimenty a testy do notebooku.

Chyby vznikají, když se vaše předpoklady neshodují s realitou. Pokud se vám něco zdá špatně, neignorujte to: hledejte dál, dokud nepřijdete na to, co bylo špatně / který z vašich předpokladů byl špatný.

Nedělejte vůbec nic, dokud něco nefunguje - buďte důslední.

Nenechte se odradit, pokud budete muset opravit chyby nebo google

Ne všichni nováčci si uvědomují, že trávit většinu času opravováním chyb a hledáním informací je naprosto normální, dokonce i pro profesionální programátory.

Ladění (a obtížnost!) Je nedílnou součástí programování. Pokud můžete, snažte se nenechat se odradit nebo rozzlobit. Berte to jako zábavný úkol nebo hádanku.

I když kvůli chybě nemůžete pokračovat v práci na samotném kódu, pokud jste konzistentní, v každém případě si dobře procvičíte dovednost rozkladu úkolů, i když trochu jiným způsobem.

Nakonec, i když vám oprava jedné chyby zabere mnoho hodin, bude tento čas dobře využit. Ladění je jedním z nejlepších způsobů, jak se naučit řešit problémy.

(To se stane ještě pravdivější, když získáte více zkušeností. V životě, jak vaše kompetence roste, se složitost chyb, se kterými se setkáte, jen zvýší. Někdy i zkušení programátoři musí strávit měsíce hledáním jedné obzvláště problematické chyby.)

Nebojte se požádat o pomoc

Konečně, pokud jste úplně ztraceni a nevíte, co dělat dál, neváhejte požádat o pomoc!

Programátoři obecně velmi reagují. Mnozí z nás jsou také samouci a chápou, jak těžké je začít a jaké to je, když jste beznadějně uvízli.

Pokuste se však nejprve udělat maximum (rozložit úkol, odladit kód, google atd.) A svůj příspěvek si dobře promyslet. Jako každá jiná subkultura mají programátoři svá vlastní nevyslovená pravidla a příkazy. Jednou z klíčových věcí je, že otázka by měla být jasně popsána (i když jde o něco elementárního).

Absolvujte intenzivnější úvodní kurz

Tento bod platí pouze pro ty, kteří pouze poškrábali povrch programování v úvodních kurzech, jaké nabízí CodeCademy. Weby, jako jsou tyto, dávají skvělou představu o tom, co je programování, a učí některé ze základů, ale mohou být docela zbytečné, pokud se chcete posunout na střední úroveň.

Obecně platí, že pokud vám úvodní kurzy programování, které jste absolvovali, nezpůsobovaly velké potíže nebo neobsahovaly zadání, cvičení a miniprojekty, měli byste se poohlédnout po náročnějších kurzech. Neustálá praxe (a potíže!) Je nedílnou součástí vzdělávacího procesu.

  • https://www.reddit.com/r/learnprogramming/comments/3yqhuk/why_do_i_feel_like_ive_hit_a_wall_learning/

Kde najdete cvičná cvičení a nápady na projekty?

Existuje o tom běžný mýtus jediná možnost Stát se dobrým programátorem znamená naučit se kódovat v raném věku. Není tomu tak: ačkoli se někteří lidé začínají učit kódovat brzy (což jim může přinést určitou výhodu), většina lidí se začíná učit kódovat, když jdou na vysokou školu nebo později.

Můžete se učit v každém věku a místo toho, abyste se zabývali ostatními, se soustřeďte pouze na sebe a své osobní tempo pokroku. Pokuste se vyvinout růstové myšlení a zbavit se pevného myšlení.

Je ještě něco, co se musím nejprve naučit?

Existuje velmi málo předpokladů a obecně se můžete začít učit programovat kdykoli.

Zde jsou jediné skutečné předpoklady:

  • Musíte umět psát (pokud nepoužíváte jazyk drag-and-drop, jako je Scratch).
  • Musíte mít počítač.
  • Měli byste být schopni Google / hledat odpovědi na otázky sami.

Budete také potřebovat určité znalosti matematiky (základní algebry) a angličtiny (protože mnoho online zdrojů je v angličtině), ale tyto dvě podmínky lze upustit.

Všechny výše uvedené platí víceméně pro ty, kteří chtějí získat oficiální diplom na univerzitě. Většina univerzit spoléhá na to, že příchozí studenti nevědí nic o informatice a programování, a začnou je učit od nuly (i když v některých případech je možné přeskočit jeden nebo dva úvodní kurzy, pokud složí test nebo prokáží dostatečné dovednosti). Pokud jste na střední škole nebo mladší a chcete studovat informatiku na vysoké škole, pak budete mít prospěch pouze tehdy, pokud začnete studovat dopředu - dá vám to náskok, ale nemusíte to dělat.

Některé univerzity mohou být na obecné vzdělání a úroveň matematiky přísnější (například na většině univerzit existuje požadavek na výpočetní dovednosti), ale liší se od univerzity k univerzitě a měli byste se na ně přímo zeptat, kde byste chtěli zapsat se. Přečtěte si více níže.

Potřebuji znát dobrou matematiku?

Volitelné: Programování a počítačová věda je široká oblast a to, zda se potřebujete dobře orientovat, závisí na tom, na jakou disciplínu se rozhodnete specializovat.

Například v některých oblastech programování jsou solidní matematické dovednosti opravdu nutné. 2D a 3D hry často používají vektory, matice a lineární algebru; v dolování dat a strojovém učení - mnoho konceptů statistiky; a je jednodušší se vyrovnat s algoritmickými složitostmi, pokud dobře ovládáte algebru a základní výpočetní dovednosti.

Obvykle čím vyšší je úroveň a obtížnost tématu, tím je pravděpodobnější, že budete potřebovat silný matematický trénink. Pokud je vaším cílem naučit se řešit tyto složité problémy, pak pro vás bude dobrá základna neocenitelná.

Stejně tak mnoho oblastí počítačové vědy a programování nevyžaduje hluboké znalosti matematiky. Jediné, co opravdu potřebujete vědět, je sčítání, odčítání, násobení, dělení a někdy i nějaká základní algebra. Mnoho programátorů má s matematikou v celé své kariéře jen málo společného.

Pokud nejste příliš dobří v matematice, můžete se stejně učit a růst. Koneckonců, nejspíš nejste ani moc zdatní v programování, ale stále se chystáte naučit se kódovat. Přejděte na Khan Academy a hledejte lekce zdarma počínaje od základních úrovní po obtížnější.

Odpověď je však mírně odlišná, pokud hledáte titul z informatiky. Mnoho univerzit má speciální požadavky, které musíte splnit, než vás přijmou nebo absolvují (kurzy v počtu atd.). A protože počítačová věda je poněkud aplikovaná matematika, budete se téměř jistě muset naučit diskrétní matematiku, psát důkazy a podobně, abyste získali titul. Ke studiu těchto témat (nicméně jakýchkoli matematických témat) nemusíte být v matematice zpočátku dobří, ale některé znalosti matematiky vám rozhodně neublíží a mohou zjednodušit proces učení.

Rozsah, v jakém bude program počítačové vědy propojen s matematikou, se liší od instituce k instituci. Podrobnosti najdete v požadavcích a obsahu programu univerzity, na kterou se chcete přihlásit.

Abychom to shrnuli, k vybudování úspěšné rozvojové kariéry nemusíte mít dobré znalosti matematiky. Pokud se chcete stát počítačovým vědcem, buďte připraveni naučit se spoustu matematiky. Pokud chcete pracovat na složitějších problémech / v různých směrech, v závislosti na situaci může být matematika velmi užitečným nástrojem.

Hodně googlím nebo nevím, jak něco udělat, když právě začínám. Je to špatné?

Často si myslíme: „kdybych měl dostatečnou motivaci ... pak bych mohl ...“, ačkoli je to akce, která motivaci udržuje. Akce je na prvním místě, pak motivace. Najděte malé konkrétní programy, které chcete vytvořit. Zbavte se všeho, co vás rozptyluje. Nainstalujte si rozšíření prohlížeče, která blokují weby jako Reddit, Facebook a Twitter. Na okamžik si představte, jak skvělé to bude být kompetentnějším programátorem.

Zde je několik nedávných vláken k tomuto tématu:

Kde mám začít X?

Kde začít s výrobou videoher?

Moderní videohry jsou vytvářeny pomocí herních motorů: knihoven programů, které vám umožňují pracovat se složitými věcmi, jako je grafika, zvuk, fyzika a vytváření sítí. K dispozici je mnoho knihoven. Následující knihovny jsou však velmi doporučovány pro začátečníky, protože jsou zdarma a mají nejlepší dokumentaci pro učení:

  • Unity (C #): Vhodné pro mobilní, stolní počítače, prohlížeče / online a konzolové 2D a 3D hry
  • Construct2 (JavaScript): pro mobilní, stolní počítače a prohlížeče / online 2D hry
  • Pygame (Python): Motor pro 2D stolní hry
  • LÖVE (LUA): Vhodné pro 2D stolní hry

Vždy mějte na paměti, že vaším cílem je vyvíjet hry, ne enginy! Není tedy nutné znovu objevovat kolo.

Motory vám pomohou začít s grafikou a vlastním ovládáním pro budoucí hry, ale stále musíte důkladně prostudovat programovací jazyk, abyste napsali logiku hry, takže si najděte vhodnou knihu nebo online zdroj.

Nejdůležitější věc: začněte jednoduše. Budete chtít všechno vzít hned a vytvořit si svoji vysněnou hru, ale pamatujte si, že jediný způsob, jak vystoupit na vrchol hory, je udělat jeden malý krůček po druhém. Zde je seznam jednoduchých her, které můžete cvičit ve vzestupném pořadí obtížnosti - vyzkoušejte některé z nich, než se vydáte ke svému konečnému cíli:

  • Blackjack nebo tic-tac-toe
  • Hon na Wampuse (pravidla)
  • dobrodružná hra podle vašeho výběru nebo klon Zork
  • Klon Pong, Tetris nebo Minesweeper
  • Vesmírná střílečka s vertikálním nebo horizontálním posouváním
  • jednoduchý klon DOOM, Mario nebo Legend of Zelda

Určitě si přečtěte FAQ / r / gamedev, přečtěte si úvodní manuál na / r / gamedev a podívejte se na starší větve na / r / gamedev a / r / learnprogramming.

Kde začít dělat webové stránky / webové aplikace / vývoj webových aplikací?

Existuje mnoho různých způsobů, jak se naučit webové programování, ale obecně klíčové dovednosti, které budete potřebovat, jsou front-end vývoj (kód, který běží ve webovém prohlížeči uživatele) a back-end vývoj (kód, který běží na vašem serveru).

Obvykle většina lidí doporučuje začít učení HTML„CSS a Javascript (v uvedeném pořadí) jsou tři hlavní jazyky, které podporují všechny webové prohlížeče a ve kterých jsou napsány všechny weby.

Více informací najdete v / r / webdev FAQ. Tady je další pro začátek.

Kde začít vytvářet mobilní / aplikace pro Android / aplikace pro iOS / aplikace pro Windows Phone?

Pro každý typ smartphonu se budete muset naučit různé programovací jazyky.

  • Aplikace pro Android jsou primárně napsány v Javě - další informace najdete v / r / androiddev FAQ.
  • Aplikace pro iOS jsou napsány v Objective -C nebo Swift - další informace najdete na postranním panelu / r / iosprogramming a na jejich wiki (na GitHubu).
  • Aplikace pro Windows Phone jsou napsány v jazyce C #, Visual Basic nebo Javascript - další informace najdete v postranním panelu / r / WPDev.

Můžete také vytvářet aplikace, které běží na všech třech hlavních platformách, pomocí technologií Phonegap a Titanium - aplikace jsou psány jednou s pomocí HTML, CSS a Javascript a běží na jakékoli platformě.

Mějte však na paměti, že mnoho, ne -li všechny tyto nástroje jsou určeny pro ty, kteří mají předchozí zkušenosti s programováním. Pokud jste vývoj nikdy předtím neprováděli, možná vám bude lépe začít tím, že se naučíte jazyk, který má více zdrojů speciálně pro začátečníky. Jakmile získáte nějaké zkušenosti a porozumíte základním principům programování, bude pro vás mnohem snazší naučit se nové jazyky a začít se učit. mobilní vývoj... Sekce „Kde mám začít?“ naše FAQ obsahuje více informací o tom, kde začít.

Jak něco automatizujete?

Pro Windows existuje pár speciální jazyky programování jako Autohotkey a AutoIt.

Další vhodnou alternativou pro více platforem je Python. Automatizace nudných věcí pomocí Pythonu je úžasný vzdělávací zdroj.

Chcete-li automatizovat MS-Office, použijte vestavěný jazyk Vizuální programování Základní pro aplikace (VBA). Subreddit / r / vba je věnován programování VBA.

Jaké jsou nejlepší ...

Programování vs. kódování

Nakonec je tu programování a kódování. Rozdíl mezi těmito koncepty je velmi malý a mnozí je používají zaměnitelně. Termín „programování“ má obecně pozitivnější význam než „kódování“. Pokud řeknete „Jsem programátor“, znamená to určitou úroveň profesionality a znamená to, že můžete nejen psát kód, ale také mít hluboké znalosti základů a teorie, umět komunikovat s klienty, pracovat v týmu , atd.

Naopak, pokud řeknete „jsem kodér“, pak zdůrazníte, že se věnujete výhradně vývoji kódu a v menší míře i dalším věcem.

Ale opět jsou zde tyto odstíny téměř irelevantní: v drtivé většině případů lze tyto dva termíny použít zaměnitelně.

Jaký je rozdíl mezi C, C ++, Objective-C a C #?

C, C ++, Objective-C a C # nejsou variace stejného jazyka.

C je nejmenší a nejstarší z těchto jazyků. Původně byl vytvořen jako systémový programovací jazyk pro operační sál. Unixové systémy a je stále široce používán v programování aplikací.

C ++ je velmi populární programovací jazyk obecný účel původně založené na C. Po nějakém vyladění lze většinu kódu C (téměř jakýkoli kód) zkompilovat jako kód C ++. V jazyce C ++ se však objevuje velká sada funkcí, které výrazně mění používání jazyka ve srovnání s jazykem C. Psaní kódu ve stylu C v C ++ se obecně nedoporučuje.

Objective-C je přísná nadmnožina jazyka C, takže jakýkoli fungující kód C funguje také v kódu Objective-C. Tento jazyk není zdaleka tak běžný jako C nebo C ++ a dnes se používá hlavně ve vývoji pro platformy Apple OS X a iOS.

C # není technicky založeno na C. C # je programovací jazyk pro obecné účely vytvořený společností Microsoft a podobný jazyku Java. Kompiluje se do přechodné formy, která běží na virtuálním počítači (CLR), na rozdíl od předchozích tří jazyků, které se kompilují do nativního strojového kódu. A přestože si C # půjčuje syntaxi z C a C ++ (jako Java), s těmito jazyky technicky nesouvisí.

Jaký je rozdíl mezi jazykem Java a JavaScript?

Java a JavaScript spolu souvisejí stejně jako creme a creme brulee.

Podobně jako u předchozí otázky, z technického hlediska Java a JavaScript spolu nijak nesouvisí. Mají určité podobnosti v syntaxi, protože předchůdcem obou byl C, ale ne více. Wikipedia má dobré vysvětlení, odkud tato podobnost jmen pochází: https://ru.wikipedia.org/wiki/JavaScript#JavaScript_%D0%B8_Java.

Nástroje a správa verzí

Co je správa verzí / správa verzí? Mám to použít?

Systém pro správu verzí (VCS) je nástroj, který sleduje změny v kódu a poskytuje takové užitečné funkce jak opravit chyby a zjistit, co se v průběhu času změnilo. Moderní distribuované systémy také usnadňují práci na stejném kódu s jinými programátory. A ano, určitě byste měli použít ovládání zdroje!

Dva nejpopulárnější distribuované systémy jsou Git a Mercurial; který z nich použít, závisí hlavně na vašich osobních preferencích, ale my jeden vřele doporučujeme.

Jak začít používat správu verzí?

Dobrý a rychlý průvodce od společnosti Mercurial -.

Počítače a operační systémy

Jaký operační systém mám použít?

Běžnou otázkou, která vyvstává pro mnoho nováčků, je, jaký operační systém by měli používat: Windows, Mac nebo Linux.

Na tom vlastně nezáleží: v dnešní době kvalita a možnosti dostupné nástroje bude přibližně stejný na všech platformách a jakýkoli slušný programovací jazyk lze použít na všech operačních systémech.

A přesto byste se dříve nebo později měli více či méně seznámit se všemi třemi operačními systémy, abyste nebyli vůbec zmatení, když stojíte před novým operačním systémem (například když se přesunete na jiný počítač nebo získáte novou práci) .

Existují dvě hlavní výjimky z tohoto pravidla:

  • Pokud chcete dělat vývoj Windows, kupte si počítač s Windows.
  • Pokud chcete dělat vývoj pro Mac nebo iOS, kupte si Mac.

Existuje několik dobrých možností pro spuštění kódu C # na jiných platformách, ale některé nástroje Microsoft a .NET jsou převážně zaměřeny na Windows.

I když můžete vyvíjet aplikace pro Mac a iOS na jakémkoli počítači, ke kompilaci a nahrání aplikace do App Store budete muset použít Xcode na Macu.

Nakonec je třeba poznamenat, že výběr konkrétního operačního systému neomezuje vaše akce: můžete vždy spustit virtuální stroj s nainstalovaným jiným operačním systémem. Pokud mám například na počítači nainstalovaný systém Windows, mohu snadno nastavit virtuální počítač s Linuxem a používat jej bez obav ze zasahování do mých stávajících Windows.

Jaký počítač / notebook si mám koupit?

Celkově to také není rozhodující: postačí jakýkoli notebook nebo počítač střední třídy. Pokud již počítač nebo notebook máte, použijte jej - nemusíte kupovat nový. Programovat a psát složité a zajímavé programy se můžete naučit téměř na jakémkoli stávajícím počítači.

Ať už máte rozpočet nebo nemáte pracovní počítač, můžete vždy najít použité počítače na webech, jako je Craigslist, nebo se zeptat v okolí. Pokud se právě učíte, můžete jít dlouhou cestu, dokonce i na starém počítači.

Ale pokud potřebujete koupit nový počítač které chcete použít k programování, v první řadě věnujte pozornost procesoru, objemu paměť s náhodným přístupem a pevný disk... Pokud je to možné, zkuste získat počítač s těmito nebo lepšími vlastnostmi:

  • centrální Procesor Intel i5 (3,0+ GHz)
  • RAM 4+ GB
  • pevný disk 200+ GB
  • (volitelný) disk SSD

Pokud je to možné, je lepší dát přednost zařízení s výkonnějším procesorem a více RAM než pevným diskem: extra výkon procesoru nikdy neuškodí. Naopak, obecně programování nevyžaduje mnoho místa na disku - pokud tedy nebudete pracovat s obrázky a videi nebo zpracovávat obrovské datové sady pro strojové učení a podobně. Takové věci však lze ukládat do cloudu.

Pokud se chystáte koupit stolní počítač, toto je jediné důležité vlastnosti... Pokud je pro vás mobilita důležitá, kupte si notebook a ujistěte se, že máte dost velká obrazovka a snadno programovatelnou klávesnicí. V přenosných počítačích však existuje určitá rovnováha mezi použitelností a přenositelností:

  • Čím širší je obrazovka, tím kratší je výdrž baterie (ale čím nižší jas upravíte, tím delší je výdrž baterie)
  • Čím menší obrazovka, tím méně se na ni vejde a tím častěji musíte přepínat mezi okny / desktopy. V ideálním případě by měl pohodlně pojmout dvě okna pro práci.
  • Čím je notebook širší, tím je těžší a těžší je nosit jej s sebou.

Rovněž stojí za zvážení, jak plánujete notebook používat. Budete celý den jen stát na stole, nebo ho budete nosit s sebou, nebo s ním vyrazíte na kemp?

Pokud je to možné, vyzkoušejte naživo každý notebook, který si vyberete. Pokud je vám například nepříjemné psaní na klávesnici jednoho z nich a nemůžete si na to zvyknout, je lepší takový notebook odmítnout, bez ohledu na to, jak atraktivní vypadá na papíře.

Další informace a další podrobná pomoc najdete v následujících subredditech - nabízejí více přizpůsobené rady:

Nákup Chromebooků také pečlivě zvažte: buď si je budete muset přizpůsobit, nebo použijete online editory a IDE, a také budete potřebovat neustálý přístup k internetu. Přečtěte si více na odkazech:

Ještě lépe zvažte, zda byste měli jako hlavní programovací nástroj používat tablety nebo smartphony. I když je možné s určitým úsilím programovat na tabletech nebo smartphonech, vývoj softwaru se téměř vždy provádí na počítačích nebo přenosných počítačích pomocí klávesnice.

Pokud potřebujete poradit s výběrem konkrétního výrobce, pamatujte, že z vašeho počítače nejsou k programování vyžadovány žádné velmoci: dobrý univerzální počítač pravděpodobně bude dobře fungovat při programování. (Hledání je proto snazší dobrý notebook, protože není nutné vybírat zařízení určené přímo pro programátory.)

Jedna možná konečná námitka: pokud se chcete soustředit výhradně na strojové učení, zpracování přirozeného jazyka nebo grafiku (včetně vývoje her), zvažte nákup zařízení s GPU. Je to pro všechny tyto věci volitelné, ale často můžete svůj kód zrychlit tak, že ho napíšete, aby běžel na GPU.

Pokud vás více zajímá strojové učení nebo zpracování přirozeného jazyka, mějte na paměti, že je možné si pronajmout auto GPU v cloudu pomocí služeb jako Web Services (AWS) nebo Google Compute Engine (GCE) za relativně nízké ceny.

Kariéra a práce

Můžete vydělat spoustu peněz na programování?

Možná, ale pouze pokud jste dobrý programátor. Můžete vydělat spoustu peněz jako instalatér nebo v jakémkoli jiném oboru. A možná nebudete vydělávat peníze. Profese programátora to nezaručuje na sto procent.

Můžete získat práci v programování bez titulu z informatiky? Nebo vůbec žádné vyšší vzdělání?

Bez titulu z počítačové vědy je získání zaměstnání jako programátor skutečné a také bez diplomu, i když vyhlídky budou horší. Rozhodně nedoporučujeme zanechat vysokou školu. Pokud programování není pro vás, změňte specializaci. Pokud pro vás, dokončení studia zvýší vaše šance na úspěch při hledání zaměstnání.

Podrobnější odpovědi na různé kariérní otázky lze získat jejich položením v / r / cscareerquestions.

Jak vstoupit do tohoto odvětví a získat výchozí pozici?

Na tomto subredditu je tato otázka trochu mimo: otázky týkající se kariéry se nejlépe pokládají v / r / cscareerquestions a hledají se na jejich komplexní wiki stránce.

Ale obecně platí, že odpovědi většiny lidí se omezují na toto:

  • Vytvořte poutavé portfolio originálních projektů, které můžete ukázat potenciálním náborářům a připojit ke svému životopisu. Mohou to být vaše školní projekty, nezávislé vedlejší projekty, projekty z kruhů ve škole a na univerzitě, výzkumné nebo dobrovolnické projekty nebo projekty vytvořené během stáže nebo v předchozích zaměstnáních atd. Výkonné portfolio ukazuje zaměstnavatelům, že můžete úspěšně aplikovat programovací jazyky, knihovny a technologie při řešení problémů, a umožňuje jim přesněji posoudit úroveň vašich dovedností.
  • Je lepší nejprve hledat stáž, než práci na plný úvazek. Je snazší získat stáž a obvykle platí dobře.
  • Určitě potřebujete dobré znalosti datových struktur a algoritmů. Většina rozhovorů, zejména pro výchozí pozice, zahrnuje zadání kódování - na webu nebo na živé tabuli.

Co dělat dál?

Už žádný nováček

Přijde čas, kdy všichni programátoři vyrostou, a pak se postaví problému - skutečnému světu. V reálném světě nikdo nedrží kliku ani nevede životem. Nyní se musíte naučit, jak jít vpřed sami. Pokud jste se dostali do tohoto bodu, pravděpodobně již máte nějaký druh oblasti zájmu, ať už je to jen programování, vývoj webu, algoritmy nebo něco jiného. Možná byste chtěli prozkoumat další oblasti související s programováním nebo jen zjistit, co dělat dál.

Programování je jen nástroj

Když začínáte s kódováním, možná jste přemýšleli o budoucnosti, když se naučíte, jak vytvořit druhý reddit nebo neuvěřitelnou grafiku nebo jak spustit různé algoritmy. Pokud se už nepovažujete za začátečníka, programování se připojilo k vašemu arzenálu nástrojů. Nyní se musíte naučit, jak ji aplikovat a upevnit své dovednosti. Velmi brzy budete schopni tyto věci dělat a vše se o nich dozvíte.

Jak zlepšit své programátorské dovednosti

Mnoho lidí, kteří se zabývají programováním, se začíná obávat, že nemají dostatečné znalosti. Proto se mnozí snaží zlepšit své dovednosti. Ale v této fázi existuje pouze jeden způsob, jak to udělat - cvičit. Existuje mnoho školicích stránek a zdrojů, například / r / dailyprogrammer, CodeWars, HackerRank, Project Euler a mnoho dalších.

Smíšený

Jak naučit programování dítě?

V té či oné podobě zde často vyvstává tato otázka. Než zveřejníte ten svůj, podívejte se na tuto žádost - možná již byla zodpovězena. Pokud se rozhodnete zaslat novou otázku, zkuste si ujasnit, v čem se liší vaše učební potřeby od již zveřejněných.

Scratch je úžasný nástroj pro děti od 8 do 16 let, který vyvinul Massachusetts Institute of Technology. Běží přes prohlížeč bez instalace dalšího softwaru.

Můžete se také podívat na / r / ProgrammingForKids - subreddit je věnován právě tomuto problému. Existuje mnoho zdrojů.

Jak mohu přispět k projektům s otevřeným zdrojovým kódem?

Přispějte do skupinových projektů / r / learnprogramming na GitHubu! Byl vytvořen společností jfredett speciálně pro hostování projektů, s jejichž pomocí mohou začínající programátoři zvládnout otevřený vývoj a komunikovat se zkušenými programátory a mentory.

Skupina byla vytvořena nedávno, několik lidí se zabývá její propagací.

Pokud se vaše otázka skutečně výrazně liší a odpovědi v těchto FAQ vám nevyhovují, uveďte v příspěvku, že jste si FAQ přečetli, a napište přesně, čím se vaše otázka liší a proč vám stávající odpovědi nepomohou. To znamená, že jste již tvrdě pracovali na nalezení odpovědi na svou otázku a pomůže vám ji zodpovědět přesněji.

Jak upravím wiki / r / learnprogramming (včetně této FAQ)?

Vítáme vaše příspěvky, ale abyste byli oprávněni k úpravám, potřebujete účet zaregistrovaný nejméně před 30 dny a karma komentářů na tomto subredditu (ne obecně na redditu) alespoň 200. Jakmile jsou tyto podmínky splněny, v záhlaví wiki se objeví tlačítko „upravit“. Pokud nemáte dost času nebo karmy, vytvořte na toto téma pravidelný příspěvek s textem, který chcete přidat: pokud to bude dobrá kvalita, někdo, kdo může upravovat, vám to téměř jistě zveřejní.

Nejoblíbenější služba v oblasti výuky kódování od nuly, která získala několik významných kol financování. Známý jako zcela zdarma a vytvořený speciálně pro ty, kteří v programování ničemu nerozumí. Učí základní principy práce s JavaScriptem, HTML a CSS, Pythonem a Ruby. Trénink probíhá formou krátkých cvičení s jednoduchými úkoly a pokyny. Uživatel napíše kód a okamžitě vidí výsledek svého jednání.

Pro další motivaci přišel Codecademy se systémem motivačních odznaků za splnění úkolu, absolvování sekce nebo absolvování testů. Tato služba pečlivě sleduje pokrok a důsledně buduje studijní program, který naznačuje, která témata je třeba dále studovat. Každý si také může vytvořit vlastní kurz nebo napsat několik cvičení pro ostatní uživatele. Nejoblíbenější kurz se jmenuje Kódový rok - po jeho absolvování se můžete naučit, jak vytvářet webové stránky nebo hry.

Zatímco Codecademy využívá k učení minimalistický přístup, Code School miluje fantazírování a experimentování. Nejzajímavější na nich nejsou základní lekce Ruby, JavaScript, HTML / CSS a iOS, ale pokračovací kurzy jako Rails for Zombies. Krédem společnosti je Learn by Doing. Místo nudných abstraktních úkolů nabízejí uživatelům programování toho, co je zajímá, například zombie hry.

Všechny základní kurzy jsou organizovány v pěti úrovních, z nichž každá začíná 15minutovými instruktážními videi. Poté následují cvičení, v jejichž průběhu můžete okamžitě získat zpětnou vazbu a vidět své výsledky. Například v kurzu pro vytváření aplikací pro iPhone existuje emulátor, který ukazuje, jak bude kód vypadat na obrazovce gadgetu. Ani zde to nebylo bez gamifikace: musíte sbírat body a získávat odznaky.

Treehouse se zaměřuje na instruktážní videa. I když nejste připraveni na plnohodnotný kurz vytváření webových stránek, aplikace pro iPhone nebo Android, ale chcete jen získat základní znalosti o tom, co je internet a jak funguje, měli byste se k němu přihlásit. kanál Na youtube. Pro ty, kteří se rozhodnou začít učit Ruby on Rails, PHP a další programovací jazyky, je na webu k dispozici více než 1 000 video návodů. Jsou organizovány do kurzů webového designu, programování, technologického podnikání a dalších.

Videa jsou neustále aktualizována, aby kurzy nezastaraly. Po každém videu jsou uvedeny praktické úkoly, interaktivní kvízy. Na konci každého kurzu budete mít připravený malý projekt. Poté vám služba řekne, co stojí za další zkoumání. Stránka má dobré uživatelské fórum, můžete získat zpětnou vazbu od odborníků, zúčastnit se mistrovských kurzů. Jedinou nevýhodou je, že školné stojí peníze, od 250 do 490 dolarů za rok. Treehouse má skvělý bezplatný sesterský projekt pro ty, kteří se již něco naučili - Code Racer. Tam musíte kódovat rychlost a soutěžit s nepřítelem. Přitom do něj můžete všemožně zasahovat: například mu na obrazovku házet obrázky koček.

Pokud studium není pro vás, můžete absolvovat online kurzy s dalšími začátečníky na Coursera, Udacity a dalších specializovaných webech, které jsme již pokryli. Výhodou takových kurzů je, že máte, byť vzdáleného, ​​ale učitele, a určité tempo učení, které vám neumožňuje relaxovat. Kurz Úvod do informatiky (na videu) je velmi oblíbený u začátečníků. Udacity, vytvořené na základě Stanfordské univerzity, je dobré, protože poskytuje univerzitní kurzy zcela zdarma formou přizpůsobenou pro distanční vzdělávání. Vedle každého kurzu je stupnice obtížnosti. Po dokončení kurzu nulové obtížnosti se očekává, že budete připraveni na zbytek, kde se vyučují konkrétní jazyky. Coursera má také spoustu kurzů pro začínající programátory, například tento věnovaný Pythonu a tento je o vytváření kreativních mobilní aplikace.

Pokud potlačíte svou hrdost a připustíte, že všechny výše uvedené kurzy jsou stále příliš obtížné, můžete začít těmi, které jsou určeny speciálně pro děti. Například aplikace pro iPad a iPhone Move the Turtle. Jedná se o hru, která učí programování prostřednictvím malých úkolů, z nichž každá želvu pohne. Alice, vytvořená na univerzitě Carnegie Mellon, učí vytváření pohyblivých 3D hrdinů a zároveň poskytuje základy C ++ a Javy. Hackety Hack je aplikace, která učí základy Ruby. Na rozdíl od předchozích to nedělá prostřednictvím obrázků, ale prostřednictvím konkrétních jazykových příkazů. Ale samozřejmě nejlepší pro děti jsou roboti, naprogramovaní tak, aby prováděli jednoduché příkazy, které je nejprve nutné napsat ve formě počítačového kódu. Jedním z nich je robot Sparki, který získal peníze na Kickstarteru. Můžete si předobjednat a bude to stát pouze 100 USD.

Foto přes Shutterstock

Svou cestu ke kariéře programátora byste měli začít odpovědí na otázku, potřebujete vůbec programování? Tato otázka se nevztahuje na ty, kteří studují nebo studovali specializaci blízkou programování. Pokud jste byli ve škole lepší v matematice než v humanitních oborech, pokud rádi trávíte hodně času u počítače, pokud se chcete naučit něco nového, pak je programování pro vás.

Kde začít

Existuje několik možností pro vývoj událostí, v důsledku kterých se člověk stane programátorem. Prvním z nich jsou rodiče-programátoři, kteří své děti vše naučili. Tyto děti nemusí ani chodit na univerzitu. Druhou možností je módní profese programátora. Po škole bylo nutné vybrat, kam jít studovat, a zvolit módní směr IT, vypadalo to, že se mi to líbí. A poslední možností je koníček, který přerostl v práci.

Pokud se vám nic z výše uvedeného nestalo, máte na výběr ze čtyř možností:

  • Sebevzdělávání... Tuto možnost lze použít jak samostatně, tak ve spojení s jinými metodami. Internet je plný a aplikace, které vám pomohou naučit se různé programovací jazyky a technologie. To je ale pro začátečníky nejtěžší cesta.
  • Univerzita... Pokud ukončujete střední školu a chcete být programátorem, pak jděte na univerzitu. Když ne pro znalosti, tak za krustou. Může sloužit jako bonus při ucházení se o zaměstnání. I když nějaké znalosti také získáte. Nezapomeňte však také na samostudium. K výběru vysoké školy by se mělo přistupovat velmi zodpovědně. Studujte pečlivě studijní programy a vyberte si ty nejlepší technické univerzity.
  • Učitel... Bude velmi pěkné, když najdete někoho, kdo bude souhlasit, že vám pomůže a nasměruje vás správným směrem. Navrhne vhodné knihy a zdroje, zkontroluje váš kód, dá Užitečné tipy... Mimochodem, již jsme psali o tom, kde najdete mentora. Mentora můžete hledat mezi známými programátory, na IT večírcích a konferencích, na online fórech atd.
  • Specializované praktické kurzy... Zkuste vyhledat kurzy ve vašem městě, kde vás naučí programovací jazyk nebo technologii. Byl jsem příjemně překvapen počtem takových kurzů v Kyjevě, včetně bezplatných a s následným zaměstnáním.

Jaký jazyk, technologii a směr zvolit

Když se stanete programátorem, po roce nebo dvou si budete moci svobodně vybrat jakýkoli jazyk, který se vám líbí. Při výběru prvního programovacího jazyka by ale začátečník měl zvážit následující kritéria:

  • Dostupnost volných míst na trhu... Konečným cílem této cesty je najít práci jako programátor. A to bude obtížné, pokud nikdo nehledá vývojáře ve vašem programovacím jazyce na trhu práce. Podívejte se na stránky práce, podívejte se, kdo hledá více, napište tucet jazyků. A přejděte k dalšímu kritériu.
  • Nízká vstupní úroveň... Pokud se musíte učit jazyk dlouho, může vás to od programování obecně odradit. Přečtěte si o jazycích, které jste si vybrali výše. Projděte si literaturu, kterou si musíte přečíst, abyste se tyto jazyky naučili. A vyberte ty, o kterých píšou, které jsou snadné nebo které se vám zdály snadné. Takovými jazyky mohou být PHP, Ruby, Python.
  • Vzrušení z procesu... Pokud vás nebaví psát kód ve zvoleném jazyce, nebude vás bavit proces, práce a život. Potřebuješ to? Udělejte správnou volbu.

Také se budete muset rozhodnout o směru programování. Mobil, počítač, hry, web, programování na nízké úrovni atd. Nejoblíbenější a relativně lehká odvětví jsou vývoj pro webové, mobilní a desktopové klienty. Pro každý směr se může hodit jeden jazyk a vůbec ne jiný. To znamená, že při výběru programovacího jazyka také stojí za to začít od tohoto faktoru.

Naučte se webové technologie. Je to značkovací jazyk HTML, styly CSS a díky tomu bude vaše stránka dynamická. V dalším kroku se naučte jazyk na straně serveru (Python, PHP, Ruby a další) a vhodné webové rámce pro něj. Prozkoumejte databáze: zmiňuje to téměř každé volné místo programátora.

Jak získat počáteční zkušenost

Bez zkušeností práci nezískáte. Bez práce nezískáte zkušenosti. Začarovaný kruh skutečného života. Ale to je v pořádku, dostaneme se z toho.

Nejprve nečekejte, až si přečtete všechny knihy o zvoleném programovacím jazyce. Začněte psát první řádky kódu po druhé kapitole knihy. Dokončete všechny úkoly z knih, přepište příklady, porozumějte jim. Zkomplikujte příklady a úkoly z knih svými nápady. Vytvořte si úkoly pro pokrytý materiál. Vyřešte tyto úkoly.

Za druhé, musíte najít své první projekty. Toto je pravděpodobně nejtěžší možnost, ale funkční. Objednávky si budete muset hledat sami, plnit je, trápit se s platbami. Pro začátečníka je to skličující, ale pak budou všechny ostatní možnosti vypadat jako hračka. Dokončené projekty lze zapsat do zkušeností a ukázat je budoucímu zaměstnavateli. Skutečné projekty jsou velkým plusem vašeho životopisu.

Pokud umíte anglicky, je lepší se zaregistrovat na anglicky mluvících burzách. Trh je tam větší. Pokud neumíte anglicky, naučte se to. Mezitím jsou vám k dispozici výměny na volné noze v ruském jazyce. Podívejte se na malé projekty, které odpovídají nebo mírně překračují vaši úroveň odbornosti. Požádejte o několik desítek těchto úkolů. A připravte se na moře odmítnutí. Pokud se ale spustí jedna nebo dvě aplikace, máte šanci získat skutečné zkušenosti.

Další dobrou možností, jak získat skutečné zkušenosti, je open source. Takové projekty vždy potřebují nové lidi, dokonce i začátečníky. Můžete vyhledat chyby v projektu nebo se podívat do nástroje pro sledování chyb a navrhnout metody jejich řešení. Hledání takových projektů je snadné na GitHub nebo. Klidně se tam ptejte.

Čtvrtým způsobem, jak získat zkušenosti, je pomoci známým programátorům. Požádejte je, aby vám zadali malé a jednoduché úkoly. Pokud něco nevyjde, budete se mít vždy na koho obrátit. A zároveň se zúčastníte skutečného projektu.

Posledním způsobem jsou vaše vlastní projekty, různé hackathony nebo práce v coworkingovém prostoru. Začít s vlastními projekty je obtížné, je lepší hledat známé nebo přátele.

Proč zvolit Python

Promluvme si trochu více o výběru prvního programovacího jazyka. První jazyk by měl být jednoduchý a populární na trhu. Tento jazyk je Krajta... Vřele doporučuji vybrat si jej jako svůj první programovací jazyk.

Kód programu Pythonu je čitelný. Nemusíte být ani programátor, abyste obecně chápali, co se v programu děje. Díky jednoduché syntaxi Pythonu budete na napsání programu potřebovat méně času než například v Javě. Obrovská databáze knihoven, která vám ušetří spoustu námahy, nervů a času. Python je jazyk na vysoké úrovni. To znamená, že nemusíte příliš přemýšlet o paměťových buňkách a o tom, co tam dát. Python je obecný jazyk. A je to tak jednoduché, že se to mohou naučit i děti.

Kvůli spravedlnosti stojí za zmínku další programovací jazyky. Jáva může být dobrou volbou pro začátečníka. Tento jazyk je populárnější než Python, ale také trochu složitější. Vývojové nástroje jsou ale mnohem lépe vyvinuté. Stačí porovnat Eclipse a IDLE. Po Javě bude pro vás snazší přejít k práci s nízkoúrovňovými programovacími jazyky.

PHP je další velmi populární jazyk. A myslím, že je to ještě jednodušší než Python. Je velmi snadné najít si mentora nebo řešení problému na fóru. Důvodem je, že na světě existuje obrovské množství programátorů PHP různých úrovní. PHP nemá běžný import, možností řešení stejného problému je mnoho. Tím je učení obtížnější. A PHP je přizpůsobeno výhradně pro web.

Jazyky C a C # velmi obtížné pro začátečníka. Rubín - dobrá volba jako druhý jazyk, ale ne první. JavaScript- velmi jednoduchý jazyk, ale nenaučí vás nic dobrého. A úkolem prvního programovacího jazyka je stále vás naučit něco správného, ​​nastavit nějaký druh logiky.

Je angličtina důležitá

Důležité! Nevím? Učit se. Víš? Zlepšit. Naučte se číst, psát, poslouchat a mluvit anglicky. Zaměřte se na technickou literaturu. Poslouchejte podcasty v anglickém jazyce. Přečtěte si výukové programy angličtiny.

Co potřebujete vědět kromě programovacího jazyka

Kromě programovacího jazyka a angličtiny musíte samozřejmě umět i něco jiného. Co ale závisí na směru, který zvolíte. Webový programátor musí znát HTML, CSS, JavaScript. Desktopový programátor učí API operačního systému a různé rámce. Vývojář mobilních aplikací učí rámce pro Android, iOS nebo Windows Phone.

Každý se musí naučit algoritmy. Zkuste absolvovat kurz Coursera nebo najít knihu o algoritmech, která vám bude vyhovovat. Kromě toho potřebujete znát jednu z databází, programovací vzory, datové struktury. Také stojí za to seznámit se s úložišti kódů. Minimálně s jedním. Znalost systémů pro správu verzí je nutností. Vyberte Git, je nejoblíbenější. Potřebujete znát nástroje, se kterými pracujete, operační systém a vývojové prostředí. A hlavní dovedností programátora je umět googlit. Bez toho nemůžete žít.

Poslední kroky

Musíte připravit životopis. Nejen shrnutí, ale. Neměli byste tam psát, ale ani nemusíte mlčet o svých schopnostech. Jakmile jste pozváni na pohovor, musíte se na něj připravit. Projděte si materiál ve svém životopise. Musíte si být jisti svými znalostmi. Zkontrolujte projekty, na kterých jste pracovali, pamatujte si technologie, které jste použili. A vpřed - do světlé budoucnosti s novou profesí programátora.

Doufám, že po přečtení tohoto článku si najdete cestu, protože právě to s vámi teď vymyslíme!

Nejprve se musíte rozhodnout, čeho chcete nejvíce dosáhnout - vytvořit si vlastní web, napsat hru nebo vyvinout databázi pro účtování osobních financí. Stanovení cíle je první fází na cestě k velkému podnikání. Zamířením na něco konkrétního vám bude jízda na koni znalostí mnohem pohodlnější. Konec konců, svět programování je velmi rozšiřitelný koncept, takže byste se měli pokusit tento svět naučit a přitom zůstat na vlastní vlně. V budoucnu, pokud to budete potřebovat, můžete snadno přejít k dalším oblastem činnosti, protože oblast, se kterou jste si začali dláždit cestu, se určitě promítne do celé vaší životní cesty.

Pokud je vaším snem vytvořit si vlastní web, pak stojí za to se s webovým programováním seznámit. A pokud vás nebaví programování tolik jako třeba 3D modelování objektů, pak jsou lekce v této oblasti vždy k dispozici. V dnešní době jsou volně dostupné miliony terabajtů užitečných informací, lekcí a dokonce celých kurzů z různých univerzit po celém světě. Ale není to tak dávno, abychom byli na vrcholu evoluce, museli jsme absolutně studovat na vysokých školách, kde cenné znalosti byly jen tam. Nyní pojďme dál ...

Stojí za zmínku, že znalost věd, jako je matematika„Angličtina je volitelná a velmi rychle to pochopíte, jakmile začnete psát svůj první program. Samozřejmě, pokud plánujete pracovat na velkých projektech jako GTAV, Cinema4D nebo Google.Maps, pak by bylo lepší takové vědy znát. Je pravda, že zde vám více pomůže zkušenost, která v krátké době vytvoří ve vaší mysli obrovské množství znalostí přesných věd. Nebudu však zastírat, že existují některé oblasti činnosti, jako např neuronové sítě, ve kterém se bez předchozích znalostí matematiky jednoduše neobejdete. Ale ne web, hry, programy, design atd. V tomto duchu. Přinejmenším v prvních párech si s tím nemusíte vůbec lámat hlavu.

Mimochodem, mnoho lidí si myslí, že je nutné se naučit programovací jazyky, počínaje úplně prvním jazykem, který se objevil, a končí tím posledním. To znamená, že konstrukce algoritmů, zastaralé jazyky jako Pascal, Delphi a další. Ale to je volitelné. Ačkoli to může být užitečné, pokud vytrváte ve studiu, zdokonalení logických znalostí, které pak lze použít při vytváření kódu v moderních jazycích, které jsou běžnějšímu uživateli přístupnější. Ale stále musíte začít jazykem, který se nejvíce týká vaší oblíbené oblasti, protože vám pomůže rychle si na to zvyknout a začít na tomto podnikání vydělávat skutečné peníze. Naučit se základy vás může jen vyděsit. Navíc, jakmile budete mít alespoň trochu znalosti kódu, teorie se rychle stane srozumitelnou a přístupnou, spíše než naopak.

Můj první jazyk byl „C ++“. Předtím jsem nic nevěděl a, věřte mé zkušenosti, časem všechno do sebe zapadlo. Později jsem vstoupil na univerzitu. Tam jsme se vše naučili od úplných základů, ale v tomto jsem opravdu neviděl smysl.

Pojďme se nyní podívat na každou oblast zvlášť. A začneme webovým programováním ...

Webové programování

Tato oblast činnosti je jednou z nejjednodušších a nejdostupnějších. Doslova dva měsíce tréninku, několik hodin denně, stačí k tomu, abyste se změnili z úplného začátečníka na webového řemeslníka. Ano, a vydělávat peníze na tomto podnikání není obtížné, protože na volné noze v tomto směru je moře a hory.

Abyste se stali webovým programátorem, potřebujete znát takové programovací a značkovací jazyky jako (a s ním knihovny, AngularJS a mnoho dalších). Kromě toho musíte umět psát funkce webu, které lze psát v jazyce. Je také nutné umět pracovat s databázemi a Jazyk SQL... Pro komunikační web - databázi, kterou můžete studovat. A poslední věc, která vám dá pár dovednostních bodů, je. Umožňuje provádět na webu nějaké změny, například odesílat data do databáze bez opětovného načítání samotného webu.

Ano, budete se muset naučit spoustu nových věcí. Ale to jsou jen základní znalosti, které jsou v tomto řemesle prostě nepostradatelné. Pokud vás tedy láká toto pole činnosti, vzhlédněte svůj pohled trochu výše a začněte studovat vše výše uvedené.

Hry vlastní výroby

Tato oblast znalostí je jednou z nejobtížnějších, neuvěřitelně zajímavých, těžko dostupných a kosmických oblastí činnosti hazardních her. Jakmile jednou začnete, bude obtížné později přestat. Zde je to obtížné i zajímavé zároveň, takže složitost v čase je kompenzována zájmem. Pokud však vytváříte hru na hotových motorech, nejsou na obzoru žádné potíže. A experimentování s tím, co vytvoříte, je úplně samostatné téma.

Je důležité pochopit, že hry lze vytvářet pomocí různých motorů nebo sami. Rozdíl je v tom, že vlastní vývoj potřebných nástrojů pro vytvoření budoucí hry vyžaduje obrovskou dávku trpělivosti, protože je to opravdu velmi obtížný úkol.

Chcete -li například vyvinout hru pro Android, potřebujete znát jazyk a speciální knihovny používané k vytváření her pro Android v aplikaci Android Studio.

K vytváření her na PC nebo konzole budete určitě potřebovat jazyk a všechny druhy knihoven, které vám pomohou vytvořit hru. K vývoji na IOS potřebujete Objective C nebo Swift a také potřebujete program Xcode.

Vývoj her s enginy

Pokud se rozhodnete začít vyvíjet hry pomocí motorů, jste na správné cestě. Většina dnešních her je vytvářena pomocí všech druhů herních motorů, z nichž lze zmínit takové giganty jako Cry Engine, Unreal Engine, Frostbite Engine, Dunia Engine, Source a tak dále.


Návrhář

V designu musíte umět kreslit ve Photoshopu a 3D modelovacích programech, jako je Cinema 4D. Dva týdny tréninku stačí, zbytek už udělají zkušenosti.

To je vše. Pokusil jsem se mluvit o všech složitostech každé oblasti programování a říci vám, které oblasti znalostí potřebujete k jejich zvládnutí. Složitá témata jako AI ( Umělá inteligence) Obešel jsem, protože takové oblasti znalostí nejsou pro začátečníky, pro které byl tento článek určen.

Ekonomika a celý náš život se každým dnem stává více a více digitálním a trh práce vyžaduje stále více kvalifikovaných řemeslníků, aby stavěli z míst a softwarové produkty... Země potřebuje programátory a vývojáře, firmy jsou připraveny vyplácet slušné platy inteligentním specialistům a vytvářet jim nejpohodlnější podmínky pro jejich práci, včetně flexibilní pracovní doby a schopnosti pracovat na dálku.

Přečtěte si mé osobní hodnocení 10 nejlepších online kurzů pro začátečníky, kteří se naučí základy jazyků webového programování od nuly po první stáže a počáteční zaměstnání ve známých ruských IT společnostech. Jsou k dispozici v ruštině, a to i pro školáky a mladistvé. Zde jsou kurzy nejpopulárnějších jazyků od HTML a CSS po 1C, PHP, Java, Python, Ruby a C #. Kdo článek přečte až do konce, dostane odkazy na bezplatné kurzy a intenzivní programování :)

1. Python pro webové vývojáře ze SkillFactory

Datová věda, strojové učení a umělá inteligence- nejžhavější technologické trendy posledních let. Ti, kteří se chtějí v první řadě stát programátorem, by se měli blíže podívat na zvládnutí jazyka jako Python, protože v těchto oblastech se používá nejvíce.

SkillFactory spolu s Igorem Bosyaginem, programátorem výzkumu a vývoje společnosti Lamoda, vám pomohou zvládnout základy programování v Pythonu, rámce Django a vyvíjet první aplikace za 6 měsíců. Čeká vás večírek s užitečnými známými, zkouška na konci kurzu, certifikát, ale i pomoc při stážích a zaměstnání. Kurz je k dispozici odkudkoli na světě.

Cena kurzu je od 33 900 do 48 900, v závislosti na datu rezervace místa na kurzu a počtu volných míst. Jako čtenář blogového webu můžete získat 10% slevu tím, že po dokončení aplikace informujete manažera o kódovém slovu igaryoh. Přečtěte si podrobnosti o programu a přihlaste se na kurz zde.

3. Profese webového vývojáře z GeekBrains

GeekBrains je vzdělávací projekt, který se stal součástí ekosystému Mail.ru Group a školí personál především pro potřeby tohoto IT giganta, často jeho vlastními specialisty. Profese webového vývojáře od nuly je zde dána prostřednictvím webinářů po dobu 10 měsíců za téměř 8 tisíc rublů měsíčně.

Toto je nejdražší možnost, ale spolu s profesí obsahuje sada bonusové bezplatné kurzy angličtiny a databází. Pokud máte zájem pracovat pro Mail.ru Group nebo její partnery, pak zaregistrujte se na online univerzitě GeekBrains .

Formát: webináře + analýza domácích úkolů.

Doba trvání: 10 měsíců.

Cena: 7997 rublů za měsíc.

4. Profese webového vývojáře z Netology

Webový vývojář je nejpopulárnější a nejrelevantnější profesí, která vyžaduje vývoj různých nástrojů. Online univerzity učí tuto profesi 8-12 měsíců. Učitelé - zkušení praktici ze známých IT společností poskytují dovednosti, na kterých si studenti procvičují skutečné projekty... Výsledkem je, že absolventi získají dovednosti, zkušenosti, diplomy, portfoliové projekty a možné uplatnění v partnerských společnostech.

V Netology se tato specializace nazývá „full-stack developer“. To znamená, že absolvent tohoto kurzu bude schopen vytvořit webovou stránku nebo webovou aplikaci od začátku do konce, což se nazývá „na klíč“. Do programu se můžete zaregistrovat.

Formát

Doba trvání: 8 měsíců.

Cena

Přečtěte si také:

5. Profese webového vývojáře ze Skillboxu

Ve Skillboxu školení v podobné specializaci trvá 12 měsíců, ale může být levnější. Zde místo živých webinářů sledujete záznamy z video přednášek, ale na jakémkoli vhodná doba... Podrobnosti a registrace na tomto odkazu.

Formát: video přednášky + videoanalýzy domácích úkolů.

Doba trvání: 12 měsíců.

Cena: 39 000 - 50 000 RUB nebo roční splátkový plán 3900 rublů. za měsíc.

6. Profese Frontend vývojář z Netology

Frontend developer se zaměřuje na vývoj vzhled web a jeho interaktivní prvky a prakticky se nezabývá serverovou částí (vším, co je „pod kapotou“). Školení pro „frontend“ v Netology trvá 8 měsíců. Podrobnosti o specializaci, školícím programu a registraci na tomto odkazu.

Formát: webináře + Zpětná vazba za domácí úkol.

Doba trvání: 8 měsíců.

Cena: 48 900 RUB - 62 900 RUB nebo roční splátka 5 240 rublů. za měsíc.

7. Profese Frontend Developer od GeekBrains

Za 7 měsíců se můžete stát frontendem v GeekBrains. Náklady budou přibližně stejné jako v Netology. Ale pak je splátkový plán 7, ne 12 měsíců. Podrobnosti a registrace.

Formát: webináře + analýza domácích úkolů.

Doba trvání: 7 měsíců.

Cena: 7 141 s. za měsíc.

8. Vývojář PHP od nuly k PRO by Skillbox

Vývojáři PHP se zajímají především o to, co je pod pokličkou většiny moderních webů, včetně stránek, které právě čtete. Skillbox vyučují především specialisté z QSOFT, předního webového integrátora v Rusku. Učí to celý rok, ale za relativně dostupnou cenu. Na kurz se můžete přihlásit zde.

Formát: video přednášky + video analýza domácích úkolů.

Doba trvání: 12 měsíců.

Cena: 29 000 - 50 000 RUB nebo roční splátkový plán 2 900 s. za měsíc.

GeekBrains je připraven naučit tento směr za pouhých šest měsíců, ale náklady mohou být dražší než Skillbox. Podrobnosti a registrace. V Netology trvá kurz PHP a databází 2 měsíce a stojí 22 00 - 25 000 rublů, ale tato informace je pro ty, kteří si článek pozorně přečtou. Odkaz zde.

Přečtěte si také:

9. Pyton vývojář z Netology

Hlubší program pro výuku Pythonu z Netology - trvá téměř rok a obsahuje moduly v oblastech HTML / CSS, JavaScript a Django. Podrobnosti.

Formát: webináře + zpětná vazba z domácích úkolů.

Doba trvání: 11 měsíců.

Cena: 48 900 RUB - 62 900 RUB nebo roční splátka 5 240 rublů. za měsíc.

10. Mobilní vývojář od nuly ze Skillboxu

Lidé stále častěji používají mobilní zařízení, a proto roste rozsah práce na mobilním vývoji a poptávka po vývojářích mobilních aplikací. Skillbox nabízí rozsáhlý roční kurz vývoje Java / iOs / Android pro začátečníky od začátku. Přečtěte si podrobnosti a zaregistrujte se, Java Programmer. A do stejné společnosti přidáme kurz Java pro vývojáře ze Skillboxu.

A nakonec, co zbylo na sladké, je freebie. Je jasné, že ne každý má prostředky ke studiu za peníze, ale možnost studovat zdarma je také oficiálně možná a o tomto bodě 17.

Kurzy programování zdarma

Mnoho dnešních vývojářů, kteří se učili sami, začalo své vzdělávání tím, že se naučili webové programování, konkrétně jazyk HTML (Hypertext Markup Language) a kaskádové styly (CSS). Netology vám dává možnost studovat tato témata zdarma během dvou týdnů pod vedením zkušených vývojářů ze známých IT společností. Zaregistrujte se na tomto odkazu, pokud s programováním teprve začínáte.

Další placené kurzy pro programátory z Netology sledují tento odkaz a z GeekBrains tento odkaz.

P. S.: Důrazně doporučuji všem, kteří hledají kurzy programování v Moskvě, produkty St. za dostupnou cenu (kvůli absenci nákladů na pronájem), a také spojují nejlepší učitele a zaměstnavatele se studenty a budoucími zaměstnanci z regionů, které jsou nejvíce vzdálené hlavní města. Online učební schopnost je navíc užitečná také pro distanční vzdělávání v zahraničních školách.

Píšu o vývoji, vzdělávání, startupech, content marketingu, obchodních službách.

NSsledujte mě na Instagramu, předtímnastoupit