Pod vrstvou kódu se skrývá jazyk, který touží být naučen.

V době psaní tohoto článku dotaz "jaký jazyk programování se učit první" vyhledává 517 milionů výsledků. Každá z těchto stránek bude vychvalovat jeden konkrétní jazyk, a 90 % z nich nakonec doporučí Python nebo JavaScript.
Bez zbytečných okolků bych rád oficiálně prohlásil, že všech těchto 517 milionů stránek se mýlí, a prohlásil, že jazyk, který by se měl učit jako první, je fundamentální logika.
Jen vědět, jak kódovat, nestačí. Trh je tak nasycen absolventy vysokých škol a kurzů, že pozice juniora téměř přestala existovat. Abyste uspěli v dnešním světě, musíte umět kodovat a mít pokročilé fundamentální logické myšlení.
* zde a dále, prosím, pamatujte, že toto je překlad a situace na trhu práce u autora a ve vaší zemi se může lišit (tak jako další nuance), což samo o sobě nezhoršuje originální článek — pozn. překladatele.
Moje první hodina informatiky
Moje první setkání s informatikou bylo volitelným předmětem, který jsem vzal ve 10. třídě. Hned první den, když jsem vešel do učebny, jsem byl ohromen, když jsem uviděl spoustu kelímků s zmrzlinou a různými polevami. Poté, co se všichni usadili, učitelka prohlásila:
„Dnes budeme ochutnávat sami vyrobené zmrzliny. Ale s jednou podmínkou: musíte vytvořit seznam konkrétních instrukcí, jak připravit dezert, a já jim budu následovat.“
„Bez problémů,“ pomyslel jsem si, „tato hodina nebude dlouhá.“ Kdesi za minutu jsem sepsal skvělý recept na zmrzlinu svých snů:
- Vezměte a dejte tři kopečky malinové zmrzliny do mísy.
- Otevřete čokoládovou polevu a přidejte dvě polévkové lžíce do téže mísy.
- Přidejte šlehačku do mísy.
- Posypte toto vše cukrovými tyčinkami a dejte třešničku navrch.
Moje učitelka — "počítač" v této milé metaforu — zahrála mnohem sarkastičtější a doslovnější představení, než jsem kdy viděl. Začala energicky propichovat kelímek zmrzliny lžící na kopečky, aniž by se dotkla víčka.
„Dobře, dobře, ale nejdříve jej musíte otevřít!“ zvolal jsem, snažící se získat pochoutku co nejdříve.
„Napsal jsi tohle v pokynech, a já jsem ti nemohla udělat zmrzlinu. DALŠÍ!“
Přeskočíme čas do pokusu č. 2
- Otevři malinovou zmrzlinu, sundej víčko
- Vezměte a dejte tři kopečky malinové zmrzliny do mísy.
- Otevřete čokoládovou polevu a přidejte dvě polévkové lžíce do téže mísy.
- Přidejte šlehačku do mísy.
- Posyp to vše cukrovými tyčinkami a polož na vrchol třešničku
Teď už by neměly být žádné problémy. Dokonce jsem se pro jistotu ujistil, že všechny ingredience na můj kulinářský skvost jsou otevřené.
Učitelka sundala víčko, nabírala a položila tři kopečky zmrzliny do mísy. „Konečně se můj krásný plombyr začíná měnit na skutečnost!“ Pak otevřela čokoládovou omáčku a přidala dvě lžíce do mísy. Ne „přidala čokoládovou omáčku ze dvou lžic“ — abys nezapomněl — ona samozřejmě položila do mísy samotné lžíce. Bez omáčky v nich. Opět jsem se neobtěžoval všechno přesně napsat. Jakmile bylo ostatní provedeno stejným způsobem, dostal jsem do rukou misku se zmrzlinou a dvěma lžícemi, téměř neviditelnými pod mořem šlehačky. Na vrchol byla položena pár cukrových tyčinek.
V ten moment mi konečně došlo: počítač — logika ve vakuu. Neví o okolních okolnostech a nedělá žádné předpoklady. Poslouchá pouze jasně formulované pokyny a postupuje slovo od slova.
Můj konečný výsledek byl výsledkem dlouhé, ale nezbytné série pokusů a omylů:
- Otevři, pokud to ještě nebylo uděláno, každé z následujících balení: malinová zmrzlina, čokoládová omáčka, šlehačka, cukrové tyčinky.
- Vezmi misku a postav ji před sebe
- Vezmi lžíci na zmrzlinu a jeden po druhém polož tři kopečky malinové zmrzliny do mísy. Polož lžíci na zmrzlinu zpět na místo.
- Vezmi sklenici s čokoládovou omáčkou, naber omáčku a vylij obsah lžíce do mísy. Opakuj akci s nabíráním a vyléváním omáčky ještě jednou. Polož lžíci a sklenici na místo.
- Vezmi a obracej naruby balení šlehačky a, držíc ji nad miskou, polévej zmrzlinu 3 sekundy, poté se vrať balení na místo.
- Vezmi sklenici cukrových tyčinek, vysyp přibližně čtyřicet tyčinek do mísy a polož sklenici na místo.
- Vezmi jednu třešničku z misky s třešničkami a polož ji na vrch zmrzliny.
- Předáš studentovi misku s hotovým plombýrem a lžíci.
Poslední bod byl obzvlášť důležitý, protože bez něj učitelka naposledy prostě začala jíst moje zmrzlinu.
Ale tohle je programování. Napjaté vytváření pečlivé sady pokynů pro počítač. V podstatě se to vztahuje na každý programovací jazyk — na sestavení pokynů.
Kariéra v programování
Programování dosáhlo bodu, kdy je obtížné o něm diskutovat jako o jediné industrí, stejně jako je nemožné použít jediné slovo „programátor“ jako popis pracovních míst. Dva vývojáři mohou být na trhu stejně žádaní, přičemž znají naprosto různé jazyky, což znamená, že schopnost vyvíjet je důležitější než znalost konkrétního jazyka. Univerzální atribut, který mají všichni úspěšní vývojáři — fundamentální logika.
Nejlepší programátor je schopen podívat se na kód z nové perspektivy. A to je zásadní, protože většina softwarových produktů je soubor nedokumentovaných fragmentů špatného kódu. Tyto fragmenty je třeba neustále spojovat, přičemž je nutné vyplňovat mezery. Lidé, kteří nejsou schopni propojit rozptýlené body jednou čarou, zůstanou navždy na druhé koleji.
To mě přivádí k další deklaraci, tentokrát tučně: fundamentální znalosti byly a vždy budou pro programátora prvotní.
Jazyky přicházejí a odcházejí. Rámce se stávají zastaralými a společnosti reagují na poptávku, měnících technologický stack. Existuje něco, co se nikdy nezmění? Ano — fundamentální znalosti, které se právě proto nazývají fundamentální, že leží v základu všeho!
Jak zlepšit fundamentální znalosti
Fotografie Kristophera na
Pokud hledáte výchozí bod pro zlepšení fundamentálního logického myšlení, zkuste začít zde:
Znáte složitost svého programu
Také nazývána Big O "složitostí algoritmu" se označuje závislost času na vykonání programu na velikosti jeho vstupních dat (n). Mít přehled o používaných algoritmech je důležitým krokem.
Znáte své datové struktury
Datové struktury tvoří základ jakékoliv moderní aplikace. Znalost toho, kterou strukturu použít v jaké situaci, je samostatnou disciplínou. Datové struktury mají přímý vliv na složitost běhu a výběr nesprávné struktury může vést k zásadním problémům s výkonem. Hledání prvku v poli trvá O(n), což ukazuje na nákladnost používání polí jako vstupních dat. Hledání v hashovacích tabulkách trvá O(1), což znamená, že v tomto případě doba hledání hodnoty nezávisí na počtu prvků.
Na pohovor ke mně přišli lidé, kteří tvrdili, že hledání v poli je rychlejší než v hashovací tabulce. To byl nejjistější znak toho, že je nebudu najímat — znát své datové struktury.
Čti / sleduj / poslouchej
Takové stránky jako , a — skvělá volba pro učení nových programovacích jazyků. Ale pro základy se obraťte na knihy o obecných principech, praktikách a stylech kódování. Nejpříznivěji hodnocené knihy jsou „Design Patterns“, „Refactoring: Improving the Existing Code“, „Code Complete“, „Clean Code“ a „The Pragmatic Programmer“. Nakonec by každý vývojář měl mít po ruce kopii „“.
Cvič se!
Nedá se udělat omeleta, aniž bys rozbil vejce. Takové stránky jako , , , a nabízejí tisíce zajímavých úloh k prověření znalostí o datových strukturách a algoritmech. Zkuste vyřešit zajímavý problém, zveřejněte svůj návrh na Githubu a poté se podívejte, jak k němu přistupovali ostatní. Co nás přivádí k poslednímu bodu:
Čti cizí kód
Největší chybou, kterou můžeš udělat na cestě vývoje, je ujít tuto cestu sám. Vývoj softwaru je do značné míry týmová práce. Společně vytváříme standardy, společně děláme chyby a navzdory všem neúspěchům se společně stáváme lepšími. Čas strávený čtením cizího kódu se nám několikanásobně vrátí. Jen se ujistěte, že je to kvalitní kód.
Nejlepší rada, kterou mohu dát, je nikdy se nestydět za to, že ještě něco nevíte. Jak už bylo řečeno, náš obor je obrovský a množství technologií je ohromující. Vyžaduje to hodně času a úsilí vybudovat si celkový obraz, ještě více, abyste se stali profesionálem v něčem konkrétním a mnohem více, abyste zdokonalili své dovednosti v dané oblasti. Dám vám vědět, až toho dosáhnu sám.
Zdroj: habr.com
