Až toto přečtete, budete vědět, jak kódovat.

Budete na tom špatní, ale cokoli.

Toto je raná verze kapitoly z vašeho prvního roku v kódu, kniha praktických návodů a rad pro nové vývojáře. Pokud uvažujete o kariéře v softwaru, podívejte se na https://leanpub.com/firstyearincode.

Toto není kompletní kódovací manuál. Toto je úvodní úvod do právě tolik konceptů kódování a klíčových slov, aby vás dostal od nuly k základnímu skriptu. Je to 30 minut čtení.

Píšu to pro:

  • lidé, kteří se zajímají o kódování, ale chtějí si vychutnat, jaké to je, než se na to kdykoli a vynaloží úsilí;
  • lidé, kteří pracují přímo s kodéry a chtějí pochopit matice a šrouby toho, co dělají;
  • lidé, kteří začínají svou cestu v oblasti informatiky a chtějí stručně řečeno základní nátěr;
  • lidé, kteří viděli programátory v televizi a jsou zvědaví na to, co píšou pořád.

Za prvé: zhluboka se nadechněte. Titulní obrázek na tomto příspěvku není skutečný kód. Alespoň to není kód, který někdo používá. Skutečný kód - to, co píšu o práci - je většinou složeno z anglických slov, symbolů, čísel (všech deset, nejen těch a nul), a vytvořených jmen. Jakmile se naučíte trochu slovní zásoby, je to čitelné. Každou z nich budu později pokrýt.

Jedna žádost pro vás: Pokud něčemu nerozumíte, zvýrazněte jej a zanechte komentář, abychom to mohli objasnit. Jsem posedlý editor a chci, aby to bylo plynulé čtení.

Začněme.

Co je to počítačový program?

Počítačový program - známý také jako aplikace, aplikace nebo kus softwaru - je sbírka mnoha řádků zvláštního textu. Jsou zvláštní, protože jim počítač dokáže porozumět a počítače jsou neuvěřitelně hloupé. Nejmenší praktické aplikace mají v sobě sto řádků textu. Největší aplikace mají miliardy.

Tento speciální textový kód nazýváme. Kód je sada instrukcí krok za krokem, jako je recept. Říká počítačům, co dělat s daty. Data jsou jakékoli informace, které počítač může uchovávat ve své paměti. Moderní počítače dokážou udržet věci jako data a věty. Pokud máte účet na Twitteru, pak má Twitter nějaké ploché, ošklivé počítače ve skladu, který drží vaše narozeniny a každý tweet, který jste kdy tweetovali. Spolu s 300 miliony narozenin a tweety ostatních lidí.

To jsou všechna data. Nedělejte si starosti, počítače si nesedí a čtou si staré tweety pro zábavu. A pokud ano, nebylo by to „zábavné“. Bylo by to bolestivé. Vaše tweety jsou hloupé.

Když navštívíte twitter.com, váš počítač si půjčí spoustu kódu z jednoho z těch ošklivých skladových počítačů. Rychle čte sakra z tohoto kódu. A pak provede tento kód, což znamená, že počítač dělá přesně to, co mu krok za krokem říká.

Pokud jsou pokyny psány velmi pečlivě, jsou to všechno broskve odtud. Twitter bude fungovat. Bude publikovat vaše hloupé tweety do celého světa. Umožní vám přečíst němé tweety ostatních lidí. To vám umožní ty tweety.

Pokud se v těchto pokynech vyskytne chyba - cokoli od překlepu k úplné nesprávné interpretaci dat - pak Twitter nebude fungovat. Ukáže se buď chybová zpráva, aplikace se zhroutí, nebo mlčí, tajně dělá s vašimi daty věci, které byste raději nechtěli.

To je úlovek. Kódování není příliš těžké. Vyžaduje si, abyste si zapamatovali pár stovek termínů a naučili se některá gramatická pravidla - to byste mohli udělat s angličtinou, dokud jste byli dva, a anglický jazyk je nepořádek. To, co je těžké, je vyvoláno analententním počítačem pokaždé, když stisknete nesprávnou klávesu nebo špatně pochopíte koncept. Nejtěžší částí kódování je pouhé množství frustrace, kterou musíte absorbovat.

Zábavná část je řešení problémů. V moderním softwaru se skutečné problémy stávají hádankami, které lze vyřešit pomocí kódu - ale teprve poté, co jim opravdu porozumíte. Jakmile se zamyslíte nad každou možnou permutací problému, můžete napsat krok za krokem kód, který jej důkladně řeší.

Nástroje obchodu

Programátorova sada nástrojů se obvykle skládá z několika věcí:

  • Počítač.
  • Připojení k internetu. Abyste mohli používat Google, potřebujete připojení k internetu. Když nevíte, jak něco udělat (což se děje asi 787283493857krát denně), Google to Google. Když vám aplikace zobrazí chybovou zprávu, Google ji zobrazí. Ty Google všechno.
  • Editor kódu (nebo IDE, což je editor kódu pro steroidy). Ber to jako Microsoft Word (nebo ještě lépe, Edward The App) pro kódování. Pomáhá vám uspořádat a korigovat váš kód.
  • Kompilátor nebo tlumočník. Jedná se o program, který čte váš kód, snaží se najít chyby, aby vás o nich mohl otravovat, shromažďuje váš kód do pěkného malého balíčku a poté jej předá počítači, aby ho provedl. Dělá také spoustu dalších věcí, ale to jsou věci, o kterých musíte vědět hned teď.
  • Dobrý pár sluchátek. Tyto vám pomohou ignorovat lidi, abyste se mohli soustředit.

Pravděpodobně již máte počítač. Protože toto čtete, určitě máte připojení k internetu a tlumočníka (Internet Explorer a Google Chrome mají vestavěné tlumočníky). Existuje mnoho bezplatných editorů kódů dostupných online (jako je tento). Nemůžu vám pomoci se sluchátky, ale dobrá alternativa zírá na lidi, dokud neodejdou.

Takže jste všichni připraveni, že?

Programovací jazyky

Na světě jsou tisíce programovacích jazyků. Mnoho z nich je hloupých a zbytečných. Můžete mít dlouhou a šťastnou kariéru, znáte pouze tři nebo čtyři - ale nebojte se, není to tak těžké, jako se učit tři nebo čtyři lidské jazyky.

Programovací jazyky jsou často popisovány jejich paradigmatem, což je způsob kategorizace druhů funkcí, které mají. Například JavaScript je jazyk, ve kterém běží všechny webové prohlížeče, a pravděpodobně nejoblíbenější programovací jazyk na světě. Má rozmanitou sadu funkcí; Mohl bych říci, že JavaScript podporuje nezbytná, strukturovaná, objektově orientovaná a událostem řízená paradigma. A můžete říci, že jsem honosný geek.

Nemusíte vědět, co všechna tato slova znamenají. Co potřebujete vědět, je to, že programovací jazyky s podobnými vzory obvykle mají podobnou syntaxi - tj. Slovní zásobu a gramatiku. Jakmile se naučíte jeden jazyk (například JavaScript), již máte 75% způsob, jak se učit podobné jazyky, jako jsou Python a Ruby.

Nejlepší kodéry rozumí problémům z hlediska algoritmu - série kroků, které lze použít k provedení určité věci, i když se detaily pokaždé liší. Koupili jste si někdy na Amazonu něco? Zážitek z pokladny je druh algoritmu. Bez ohledu na to, co kupujete, jsou kroky zhruba stejné: naplňte svůj košík, vyberte svou kreditní kartu a dodací adresu, vyberte rychlost doručení a zadejte objednávku. Kód je ve skutečnosti stejný pro každý nákup. Rozdíl je v údajích. Nyní si to: každý algoritmus, který může existovat, může být napsán v každém běžném programovacím jazyce. Je to matematický fakt. Jakmile se naučíte myslet v algoritmech, programovací jazyk je sekundární. Jistě, trochu to kopne a táhne nohy. Nakonec se ale nejedná o klíčová slova a symboly, které používáte. Jde o procesy, které popisujete.

Od této chvíle budu používat příklady programovacího jazyka JavaScript. Dělám to pro svůj prospěch, ne pro tebe. Jsem v JavaScriptu dobrý.

Příklady kódu budou vytištěny v monospace, což je speciální písmo, které vypadá takto. Monospaced fonty dávají stejnou přesnou šířku každému písmenu, číslu, symbolu a prostoru. Celý kód je psán v monospace, i když je jeho čtení obtížnější než normální písma. Je to proto, že pomáhá zarovnávat bloky kódu a umožňuje kodérům věnovat stejnou pozornost každému písmenu a symbolu, což jim pomáhá vyhýbat se chybám. Jako příklad uvádíme následující větu v běžném písmu i v monospace:

Ve větě jsou tři chyby: další prostor za “pro”, další apostrof v “Alice's” a Bobovo zneužívání Aliceho přátelství a důvěry. Jo a „bez“ je chybně napsáno. Pravděpodobně jste viděli všechny tyto chyby v první větě, ale jsou patrnější ve druhé a zjevně je váš nejlepší přítel, když skenujete dokument s 200 řádky kódu.

Zadávání dat do kódu

Dostatek pozadí: napišme nějaký kód. Nejzákladnější stavební blok počítačového programu je proměnná. Proměnná je název pro část dat, například číslo nebo věta. Musíte pojmenovat svá data.

Data jsou pojmenována ze dvou důvodů:

  1. Nevíte, co to je předem. Zná Facebook vaše narozeniny dříve, než je zadáte? Ne, samozřejmě že ne. Facebookový kód používá za scénami jméno, jako je den figuríny (podtržítko je tam, protože v nich nemohou být mezery). Připojí toto jméno k jakémukoli narozeninám, které zadáte. Tímto způsobem může být kód úplně stejný, ať už máte narozeniny 10. června, 9. září nebo 86. prosince. Jednoduše se pohybuje v den narození figuríny v programu, dokud nedosáhne ošklivého skladového počítače.
  2. Nechcete zapomenout, co to znamená. Předpokládejme, že počítačový program musí vědět, že 86. prosince není skutečné datum. Takže někde musíte říct, že prosinec má 31 dní. 31 je číslo, část dat. Ale pokud používáte číslo 31 v celém kódu a také používáte čísla jako 30 a 28 (protože díky bohu, prosinec není jediný měsíc), bude váš kód matoucí číst. K čemu jsou všechna tato čísla? Takže je pojmenujete. 31 se stává the_number_of_days_in_december a váš kód se stane samozřejmým. Krásná.

Počítače očekávají, že své proměnné deklarujete. Proměnná deklarace je jako rodný list pro část dat. Vypadá to takto:

var the_number_of_days_in_december

Operativní slovo je var. Je to zkratka pro „variabilní“. Zkratka je pěkná, protože je rychlejší psát. Lze jej také zadat pouze jednou rukou, takže pokud vše, co děláte, je oznamování proměnných po celý den, vaše druhá ruka může dělat úžasné věci, jako jsou grapefruitové šťávy, a cvičit s quarterstaffem.

Další věc, kterou děláte s proměnnými, je přiřadit je. Zde připojíte jméno k datům. Vypadá to takto:

the_number_of_days_in_december = 31

Snadné věci. Deklarujete proměnnou, poté ji přiřadíte a kdykoli budete chtít v programu použít číslo 31, můžete zadat the_number_of_days_in_december a počítač bude vědět, co máte na mysli.

Při psaní programu nemusíte přiřadit každou proměnnou k explicitnímu datu. Můžete deklarovat proměnné a přiřadit je k věcem, které ještě neexistují. Můžete například deklarovat varovný den narození a říct aplikaci, aby počkala, než ji uživatel napíše. Ať už se jedná o jakýkoli typ, stane se den narození. Nemusíte se o to ani starat.

Proměnné dokážou držet více než jen čísla a data. Můžete například deklarovat řetězec nebo část textu:

var great_song_lyrics = 'La la la, la la la dnes večer'

Hej. Curveball. Právě jsem deklaroval proměnnou a přiřadil ji současně. Jsem tak zatraceně efektivní. Přineste tomuto muži grapefruit.

Teď můžu psát great_song_lyrics v mém kódu, kdekoli chci, a počítač bude vědět, že mám na mysli „La la la, la la la dnes večer“. Je to, jako bychom mluvili ... v kódu.

Nevěříš mi? Vyzkoušejte to hned teď. Pokud to čtete na svém telefonu, musíte v počítači otevřít webový prohlížeč, například Google Chrome. Stiskněte klávesu F12 na klávesnici (pokud používáte Mac, zkuste to místo toho). Uvidíte něco takového:

To může být zarovnáno k pravému nebo spodnímu okraji prohlížeče.

Zkontrolujte, zda je vybrána karta „Konzola“. Klikněte do prázdné oblasti vedle symbolu>, zadejte deklaraci proměnné a přiřazení a stiskněte klávesu Enter:

Konzola říká nedefinovaná, protože řádek zadaného kódu nevytvořil žádná data. To je v pořádku, nemělo to. Nyní zadejte název vaší proměnné a stiskněte znovu klávesu Enter:

Hurá! Konzole (která je interpretem) rozumí vaší proměnné. Proměnná great_song_lyrics hodnocena (byla chápána) jako "La la la, la la la la večer". To je perfektní (mimochodem, nezáleží na tom, zda používáte jednoduché uvozovky nebo dvojité uvozovky „pokud je použijete v odpovídajících párech).

Budeme mluvit o dalších věcech, které proměnné pojmou za vteřinu.

Mnoho programovacích jazyků vyžaduje, abyste věděli, jakou proměnnou deklarujete. Například v C ++ neexistuje žádné klíčové slovo var. Existuje klíčové slovo int (pro deklarování malých celých čísel), dlouhé klíčové slovo (pro deklarování velkých celých čísel), float a double klíčová slova (pro deklarování desetinných čísel), řetězcové klíčové slovo (pro deklarování kusů textu) a několik dalších. Teď si s tím nedělej starosti. Dozvíte se to později.

Složité typy

Objekty

Důležitou součástí kódování je naučit se organizovat data. Příklad narozenin: Facebook má stovky milionů narozenin (a výročí a data rozpadu) uložených v počítačové paměti ve svém skladu. Jak ví, co je co? Kdybych vám dal seznam miliard dat, víte, komu patří a k čemu jsou? Samozřejmě byste, protože jste velký Calendifus, řecký bůh náhodně významných dat.

Naštěstí Facebook nemá jen hromadu libovolných dat. Spojují vaše narozeniny, vaše výročí, vaše rodné město, vaši zaměstnaneckou historii, vaše jméno a vše ostatní, co o vás vědí, spolu s jedinečným identifikačním číslem (jako je ta na kartě sociálního zabezpečení nebo řidičský průkaz). Pravděpodobně je to velké číslo, které si z klobouku vybrali. To znamená, že jste číslo 12884002 a každá část dat, která o vás mají, má štítek s nápisem „12884002“, a když se přihlásíte, vyhledají na něm vše s tímto číslem. Je to všechno organizováno takhle.

V kódu byste to udělali s objektem. Objekt je skupina dat, která jsou uspořádána společně. Můžeme to také nazvat asociativním polem, slovníkem nebo mapou. Ale nejčastěji říkám objekt.

V JavaScriptu jsou objekty deklarovány a přiřazovány podobně jako jiné proměnné. Zde je příklad objektu:

var dummy = {
    id: 12884002,
    věk: 28 let,
    jméno: 'Bob',
    Favorites_song: 'Photograph, Nickelback'
}

Každá část dat v objektu je jako houpačka. Jméno je na levé straně, data jsou na pravé straně a je zde: uprostřed zůstatek. Opravdu jsme udělali jen čtyři proměnné: první dvě jsou čísla a poslední dvě řetězce. Jsou ale uspořádány společně, abychom je mohli najít, kdykoli potřebujeme vědět něco o figuríně. A místo toho, abychom jim říkali „proměnné“, nazýváme je „vlastnosti“ nebo „pole“. Objekt může mít jakékoli vlastnosti, které chcete, pokud je dáte všechny dohromady do {složených závorek}.

Můžeme pohybovat figurínovým objektem a odkazovat na něj stejně jako na jakoukoli jinou proměnnou. Počítač ví, co máme na mysli. Pokud se chceme někdy zmínit pouze o jedné vlastnosti figuríny, použijeme tečku, jako je tato:

dummy.id
dummy.name
dummy.age
dummy.favorite_song

Každá z nich je jako každá jiná proměnná. Můžeme k tomu něco přiřadit a odkazovat na něj později. Chcete změnit Bobovo jméno? Snadný:

dummy.name = 'Alice'

A to je vše. Je to opravdu dobrá aktualizace, že? Od této chvíle, kdykoli zadáte dummy.name, bude odkazovat na „Alice“.

Pole

Někdy nechcete vymyslet jedinečné jméno pro každou vlastnost v objektu, zejména pokud jsou všechny velmi podobné. Nebo nevíte, kolik jich bude. Tehdy je čas použít pole, které je seznamem podobných údajů. Pole mohou podle potřeby růst nebo zmenšovat.

Dobrým příkladem jsou všechny vaše hloupé tweety. Twitter neví, kolik tweety budete psát. Začali jste v 0, a podívejte se, kde jste nyní. Twitter používá pole k jejich uložení. Pole v JavaScriptu vypadají takto:

var dumb_tweets = ['Ahoj, Twitter!', 'Moji přátelé jsou tak cool', 'Chce někdo LaCroix?']

Pamatujete si, jak objekty používaly {složené závorky}? Pole používají [hranaté závorky]. Toto pole obsahuje tři řetězce oddělené čárkami. A ano, je to proměnná stejně jako cokoli jiného. Můžete použít dumb_tweets kdekoli v kódu a bude odkazovat na pole, které jsme definovali právě teď.

Pokud chcete v poli odkazovat na konkrétní řetězec, udělejte to takto:

dumb_tweets [0]
dumb_tweets [1]
dumb_tweets [2]

Používáme název pole, dumb_tweets, a pak uvnitř [hranatých závorek] použijeme číslo (nebo index) věci (nebo prvku), na kterou se chceme odkazovat. Vím, že je divné, že prvním prvkem v poli je číslo 0. Ale teď je to tvůj život. Od tohoto dne budete vždy začít počítat od 0. Je to programátorský způsob.

Každý z výše uvedených výrazů (výraz je jakýkoli kód, který se při spuštění změní na část dat) je proměnná. Můžete jí přiřadit něco nového, pokud chcete.

dumb_tweets [2] = 'Lituji doslova všeho, co jsem kdy řekl'

Co se stalo s „Chce někdo LaCroix?“? Je to navždy pryč. Polkla propast. G'bye!

Pole mohou obsahovat řetězce, čísla, data, objekty a dokonce i jiná pole. Pole můžete vložit do polí uvnitř polí do polí.

Jakýkoli časový kód nebo data získají veškerý počáteční přístup, říkáme, že je vnořený.

Pole mohou být také vlastnostmi objektů. Objekt může mít vlastnost, která je řadou objektů, z nichž každý má vlastnost, která je řadou objektů ... a udělal jsem to znovu. Zní to jako ruská panenka, ale je to jak struktura dat. Například váš účet Twitter může být objekt, který má vlastnost, která je řadou tweetů; každý tweet může být objektem, který má vlastnosti, které jsou polem odpovědí, lajků a retweek; každá odpověď, jako nebo retweet může být objektem, který má vlastnosti, které jsou jméno, profilový obrázek a bio uživatele, který jim dal; a tak dále.

var nested_object = {
    pole: [
        {
            other_array: [
                {
                    ještě další: [
                        {
                            zpráva: „Blikejte dvakrát, pokud potřebujete pomoc“
                        }
                    ]
                }
            ]
        }
    ]
}

Pro přístup ke zprávě můžete napsat:

nested_object.an_array [0] .another_array [0] .yet_another [0] .message

A počítač bude vědět, že máte na mysli „Blink dvakrát, pokud potřebujete pomoc.“.

Předměty (pokračování)

Ještě jedna trippy část, a pak se můžeme přesunout k zábavným věcem.

Všechno v JavaScriptu je tajně objektem (to neříkejte! Jeho rodiče by byli tak šílení). Například naše pole dumb_tweets má vlastnost, kterou jsme nikdy nehlásili:

dumb_tweets.length

Co to sakra je délka? Je to vlastnost, kterou JavaScript automaticky vytváří a aktualizuje. Říká vám, kolik prvků je v poli. V tomto případě by to bylo 3. V poli jsou 3 prvky. Počítejte, ale nezačínejte od této chvíle, protože jsem lhal a vy byste měli počítat od 0 jen při zvláštních příležitostech. Dang to.

API

Čas na děsivý příběh ohně.

Kdysi v alternativním vesmíru byl programátor jménem McChuck. Byl jediným kodérem v celém vesmíru. Musel napsat celý kód, který by kdy existoval, sám.

Sheesh, byl to jen příběh. Zklidni se.

Pravda je, že žádný kodér není ostrov. Všichni neustále používáme kód, který jsme nepsali - vlastně jeho kbelíky.

I když jste plodný kodér a ve svém životě píšete miliony řádků kódu, budete používat mnohem více řádků kódu, které napsal někdo jiný. Většina tohoto kódu bude pocházet od úplných cizinců. Někteří z těchto cizinců budou mrtví. Jejich kód žije dál, i když se prsty, které jej psaly, rozkládají v hrobě. Je to zombie kód. Ale místo toho, aby jedl váš mozek, zachrání váš mozek od vykonávání hodně tvrdé práce. Nejlepší. zombie. vůbec.

Jak používáte tento zombie kód? Kopírování a vkládání? Občas ano, ale ne často. Většinou k němu přistupujete prostřednictvím rozhraní API. Rozhraní API je souhrnná sada vlastností a metod (účelové části kódu), které jsou pojmenovány jako proměnné, takže na ně můžete odkazovat podle jejich názvu a nechat je dělat svou věc. Dělají pro vás všechny užitečné věci.

Pole JavaScript mají své vlastní API. Vlastnost length je součástí tohoto API. Další součástí je metoda push, která přidá prvek na konec pole:

dumb_tweets.push ('Muž, který nenávidím dobré postoje')

Metoda je jako vlastnost, protože k ní přistupujete tečkou. Metoda se liší od vlastnosti, protože za ní musíte vložit (závorky). Tyto závorky obsahují data, která chceme přidat do našeho pole. Nyní má dumb_tweets čtyři prvky. Vypadá to takto:

['Ahoj, Twitter!', 'Moji přátelé jsou tak v pohodě', 'Lituji doslova všeho, co jsem kdy řekl', 'Člověče, nesnáším dobré postoje']

Pamatujte, že index tohoto posledního prvku je 3 (protože jste začali počítat na 0), takže byste ho označovali jako dumb_tweets [3]. A dumb_tweets.length by nyní vyhodnotil na 4.

Rozhraní API pole JavaScriptu obsahuje mnoho různých metod. Vysvětlení všech je však mimo účel tohoto příspěvku. Na tomto odkazu je můžete vidět v plné slávě.

Webové prohlížeče mají obrovské rozhraní API, které kodéry jazyka JavaScript používají každý den. Toto API má metody pro věci, jako je animace věcí na webu, získání uživatelského vstupu, komunikace s jinými počítači přes internet, manipulace s řetězci a spousta dalších věcí. Vytváření pracovní slovní zásoby v tomto rozhraní API je nezbytnou součástí vývoje webového vývojáře.

Funkce

Funkce je další slovo pro metodu. Je to jen kus kódu, který něco dělá a (obvykle) má jméno. Funkce lze snadno deklarovat v JavaScriptu:

function giveMeOne () {
    návrat 1
}

Začneme funkcí klíčového slova. Pak dáme funkci název, jako bychom deklarovali proměnnou (zde jsem použil velká písmena místo podtržítek k oddělení slov). Pak použijeme závorky (za sekundu uvidíte proč). Pak použijeme {složené závorky}. Uvnitř složených závorek jsou všechny řádky kódu, které chceme provést, kdykoli je funkce vyvolána (kdykoli na ni odkazuje výraz podle názvu).

Návrat slova je další speciální klíčové slovo. To způsobí, že hodnota (část dat) vyskočí z funkce. Poté ukončí funkci (pokud napíšete nějaký kód po návratovém příkazu, tento kód se nespustí). Takže byste mohli udělat něco takového:

var the_loneliest_number = giveMeOne ()

To není příliš těžké, že? Deklarujeme proměnnou s názvem the_loneliest_number. Přiřazovací část našeho příkazu volá giveMeOne (), a protože tato funkce říká return 1, 1 vyskočí. Naše proměnná tedy bude držet číslo 1. Pokračujte a spusťte oba tyto bloky kódu v konzole prohlížeče. Poté zadejte the_loneliest_number, stiskněte Enter a uvidíte, že se vyhodnocuje jako 1.

Funkce může být vlastnost objektu. Může to být prvek pole. Může vrátit číslo, datum, řetězec, objekt, pole, jinou funkci, pole plné funkcí atd. Tyto věci jsou jako cihly LEGO. Vložte jakýkoli kus kamkoli budete chtít, a to se vejde.

giveMeOne () je něco jako dumb_tweets.push (). Hlavní rozdíly jsou:

  1. giveMeOne () je funkce, kterou jsme sami napsali. push () je funkce, kterou napsali někteří cizinci. Je to v pořádku, nevadí, pokud to použijeme.
  2. push () je metoda dumb_tweets (a jakéhokoli jiného pole, které kdy vytvoříme). giveMeOne () je globální, což znamená, že k použití není třeba odkazovat na konkrétní objekt.

Uvidíte ještě jednu věc, která se na nich jeví jinak: giveMeOne () používá prázdné závorky, ale push () očekává, že do závorek vložíme část dat. Ve skutečnosti by push () bylo zbytečné, kdybychom mu nemohli říct, co přidat do našeho pole. Část dat, která jí poskytneme, se nazývá argument. Argument je jen část dat, která spadáme do funkce. Deklarování funkce, která očekává argumenty, vypadá takto:

funkce addTheseNumbersTogetherPlz (number1, number2) {
    návratové číslo1 + číslo2
}

Tato funkce se příliš neliší od giveMeOne (). Ale místo prázdných závorek jsou v nich proměnná jména oddělená čárkou. To jsou naše argumenty. Příkaz návratu dělá přesně to, co vypadá: přidává číslo1 a číslo2 dohromady a výsledek zobrazí. Tuto funkci byste nazvali takto: addTheseNumbersTogetherPlz (3, 4). A objevilo by se to 7.

Ooh! Matematika! Strašidelné, že? Téměř všechny kódovací jazyky vám umožňují psát matematické výrazy stejným způsobem, jakým jste je psali v těch statečných kalkulačkách TI, které jste používali na střední škole. Můžete použít + k přidání, - k odečtení, / k rozdělení, * k vynásobení, (závorkách) k vynucení pořadí operací,% k získání zbytku dělení, ak ^ k okamžitému pěstování krku (ne, to ' Nepoužívejte exponenty, k tomu potřebujete API).

Tuto funkci můžete také napsat:

funkce addTheseNumbersTogetherPlz (number1, number2) {
    var sum = number1 + number2
    vrácená částka
}

Tato funkce dělá totéž. Jako prostředník používá pouze proměnnou pojmenovanou částku.

Existuje mnoho způsobů, jak napsat funkci. Měli byste zvolit způsob, který co nejjasněji vyjadřuje, co kód dělá. Kód, který je stručný a snadno pochopitelný, se často nazývá expresivní nebo výmluvný. Při psaní tohoto kódu je umělecké potěšení.

Programy musí být psány tak, aby je lidé mohli číst, a pouze náhodně, aby je mohli počítače provádět. ~ Harold Abelson

Logické větve a srovnání

To je místo, kde kód dostane extra zábavu. (Už to byla zábava.)

Počítačové programy nedělají totéž přesně při každém spuštění. Pokud ano, videohry by se hrály samy. To by byl pokles. Museli byste tam jen sedět a dívat se, jak se příběh hraje na obrazovce, jako ... um ... nevím, ale bylo by to nudné. Určitě by tomu nebylo celé průmyslové odvětví.

Programy musí reagovat na různé situace. Musí se rozhodovat. A tam jsou věci, jako kdyby se objevily prohlášení.

Řekněme, že píšeme aplikaci, která určuje, zda může konkrétní osoba vstoupit do nočního klubu. Předpokládejme, že v rozhraní API JavaScriptu existuje metoda, která zvyšuje věk uživatele. Říkáme tomu getUserAge (). Představíme si také, že existují dvě další metody, allowThemInTheNightclub () a throwThemOutOnTheirButt (). Jak můžeme pomoci našemu programu rozhodnout, kterou z těchto dvou posledních metod zavolat, na základě vrácené hodnoty první metody?

var age = getUserAge ()
if (age> = 21) {
    allowThemInTheNightclub ()
} jinde {
    throwThemOutOnTheirButt ()
}

Vidíte, jak pěkné je zarovnání na pravé straně? Monotyp pro vítězství.

Už víte, co dělá první řádek. věk bude mít hodnotu 13 nebo 21 nebo 101. Nyní musíme vědět: je věk 21 a více? Pokud ano, mohou stranou. Pokud ne, bude muset odejít.

Děláme to pomocí příkazu if. pokud je klíčové slovo, které vypadá trochu jako metoda. Argument, který očekává, je výrazem nějakého druhu, obvykle porovnáním. Porovnání berou dvě hodnoty a vzájemně je porovnávají, což vede k hodnotě true (pokud je porovnání pravdivé) nebo false (pokud to není pravda). Tyto dvě hodnoty se nazývají booleans a jsou jedinými dvěma booleans v existenci. Můžeme provést šest různých druhů srovnání:

  • === (tři se rovná znaménka) porovnává hodnoty na obou stranách, aby zjistil, zda jsou přesně stejné. Pokud jsou si rovni, výsledek je pravdivý. 6 === 6 by byla pravda.
  • ! == porovnává hodnoty na obou stranách, aby zjistil, zda nejsou přesně stejné. Pokud si nejsou rovni, je výsledek pravdivý. 6! == 3 by byla pravda.
  • > zkontroluje, zda je hodnota na levé straně větší než hodnota na pravé straně. 6> 3 by byla pravda.
  • > = zkontroluje, zda je hodnota na levé straně větší nebo rovna hodnotě na pravé straně. 6> = 6 a 6> = 5 jsou pravdivé.
  • <= zkontroluje, zda je hodnota na pravé straně větší nebo rovná hodnotě na levé straně. 6 <= 6 a 6 <= 7 jsou pravdivé.

pokud příkazy vyhodnotí srovnání, které jim dáte. Pokud se vyhodnotí jako true, vykonají kód uvnitř svého bloku (řádky kódu uvnitř {složených závorek}). Pokud to vyhodnotí jako nepravdivé, přeskočí tento kód.

pokud příkazy mohou mít také připojené jiné prohlášení k jejich koncovému konci. Příkaz else má blok, který bude proveden, pokud je porovnání nepravdivé. Podívejte se zpět na naši aplikaci pro noční klub. Nyní by vám to mělo dát hodně smysl.

Hej, právě jsme udělali redundanci vyhazovače (byl nahrazen počítačovým programem). Není to dobrý pocit?

Smyčky

Někdy, zvláště když pracujete s maticí, chcete provést blok kódu několikrát za sebou. Není čas použít kopírování a vkládání. Místo toho byste měli použít smyčku. Nejjednodušší druh smyčky v JavaScriptu je smyčka while:

var the_real_slim_shady = ['Jmenuji se', 'Jmenuji se', 'Jmenuji se', 'Waka waka Slim Shadyyy']
var index = 0
while (index 

zatímco smyčky používají stejnou syntaxi jako příkazy if. Používáte závorky, předáváte v porovnání, sledujete je s blokem. Blok if provede kód uvnitř pouze jednou (nebo nulakrát, pokud je porovnání vyhodnoceno jako false). Blok while provede kód uvnitř něj znovu a znovu, dokud není podmínka falešná. To znamená, že vyhodnocuje stav; pokud je to pravda, provede blok; poté vyhodnotí stav znovu; pokud je to pravda, provede blok znovu; poté vyhodnotí stav znovu; a tak dále, navždy. Vymyslel jsem zde imaginární API, které má metodu rap (), ale všechno ostatní je běžný JavaScript.

Kolikrát bude smyčka vykonána? Když poprvé vyhodnotí porovnání, zkontroluje, zda je index (který je 0) menší než the_real_slim_shady.length (což je - pokračujte, spočítejte je - 4). Protože srovnání je pravdivé, provede kód, který rapuje the_real_slim_shady [0], protože index je stále 0. Pak se stane magie: změní index na index + 1 nebo 0 + 1, což je 1. Potom vyhodnotí srovnávací výraz znovu. 1 je stále menší než 4, takže provede blok znovu - ale tentokrát, protože index je 1, rapuje the_real_slim_shady [1]. Pochopit to? Zastaví se provádění bloku, když se index rovná 4, což je dobré, protože the_real_slim_shady [4] neexistuje. Když smyčka pracuje na více prvcích v poli, říkáme, že je iterační.

Null a undefined

Pokud deklarujete proměnnou a nepřiřadíte jí žádnou hodnotu, bude držet speciální hodnotu nazvanou undefined. Je to podivínské slovo, které znamená „pohybovat se, nic vidět tady.“ Je to většinou k ničemu.

JavaScript má také speciální hodnotu nazvanou null. Znamená to zhruba stejnou věc jako nedefinovaná. Opravdu by neměla zahrnout obě slova do jazyka. Ale udělali to a je už příliš pozdě.

Rozsahy

Funkce jsou velmi sobecké. Pokud deklarujete proměnnou uvnitř funkce, funkce nedovolí, aby žádný z kódů mimo tuto proměnnou použil. Například:

function whatHappensInVegas () {
    var wildIndiscretions = ['parted', 'dances']
    návrat 'nepřiznávám nic'
}
co se stane ve Vegas()
co se stane ve Vegas()
co se stane ve Vegas()
if (wildIndiscretions.length> 0) {
    getADivorce ()
}

Máme velmi jednoduchou funkci. Deklaruje proměnnou wildIndiscretions, ale nevrací ji. Vnější svět o tom nic neví! Tuto funkci dokonce spustíme třikrát, protože jsme mladí a vytrvalí. Příkaz if se pokouší proniknout do osobního života funkce, ale nemůže. Kód uvnitř bloku if se nikdy nespustí. Porovnání wildIndiscretions.length> 0 ve skutečnosti způsobí chybu (nebude fungovat a zobrazí se zpráva s vysvětlením proč), protože wildIndiscretions je mimo funkci whatHappensInVegas nedefinováno. Nemá žádné vlastnosti, natož délku.

Pokud však přesunete tento blok uvnitř funkčního bloku (samozřejmě před příkazem return), získá přístup k wildIndiscretions. Doufám, že jste měli předvádění, bub!

Komentáře

Není vždy zřejmé, co dělá kus kódu, nebo co s ním musí ještě udělat. Potřebujete-li se vymanit z počítačového jazyka a mluvit o skutečných událostech v kódu (nebo jen vypustit nějaké texty dopingu), můžete použít komentář nebo řádek kódu, který počítač bude ignorovat. Začnete s komentářem // dvěmi lomítky. Takhle:

funkce isEven (num) {
    // Tato funkce určuje, zda je „num“ sudé nebo liché.
    // Pokud dokonce, vrátí true. Pokud je liché, vrátí hodnotu false.
    // TO DO: přidejte druhý argument, který vám umožní určit
    // zprávu, která se zobrazí, pokud je „num“ liché.
    návratnost (num% 2) === 0
    // Hej, jo, udělej to jako Isaac
    // Pokud nejste se mnou, dítě není moudré
}

Nedělejte si starosti s matematikou v prohlášení o návratu. Jen vám ukážu, že můžete pomocí komentářů vysvětlit, co se děje, zanechat poznámku pro vaše budoucí já a plivat bary. Poslední použití je pravděpodobně odsuzováno ve vážných kódových základnách. Ale nedovolte, aby vás ten muž držel zpátky. Narodili jste se, abyste dělali to, co jste se narodili.

O strom Google, strom Google ...

Poslední a nejdůležitější věc, kterou vás mohu naučit, je toto: když nevíte, jak něco udělat, okamžitě přejděte na google.com a zeptejte se. Velkorysost programovací komunity vás ohromí. Tisíce vývojářů po celém světě volně sdílejí své kódy a znalosti na webech jako GitHub a Stack Overflow, což znamená, že vše, co se potřebujete stát odborníkem na jakýkoli programovací jazyk, je stálé připojení k internetu a schopnost číst.

Dobré dotazy Google vyžadují trochu praxe. Dobrá šablona je něco takového:

[programovací jazyk] jak [něco]

Chcete například vědět, jak odebrat prvek z pole v JavaScriptu? Nechci tě učit. Zkuste to zadat do Googlu: „JavaScript, jak odebrat prvek z pole“. Prvních několik výsledků by vám mělo poskytnout všechny potřebné informace (s příklady!)

Syntéza

Většina rozsáhlých aplikací používá všechny popsané koncepty a klíčová slova. Jejich kód zahrnuje tisíce až tisíce řádků kódu, všechny postavené z těchto základních prvků. Co tedy dělají?

Na základní úrovni přijímají vstupy (data, která zadávají kód odkudkoli, například z klávesnice uživatele), transformují je (často opakováním přes ně, matematicky na nich nebo reorganizují jejich vlastnosti) a poskytují výstupy ( data, která opouští kód). Každý počítačový program lze popsat z hlediska jeho vstupů a výstupů. Každý programovací jazyk má ve svém API metody pro přijímání vstupů a poskytování výstupů.

Výrobník ledu je dobrou analogií počítačového programu. Jeho vstupy jsou voda a elektřina (pocházejí z API známého jako „komunální služby“). Jeho výstupem je led (který je podroben API známému jako „vysoká sklenice koksu“). Zajímá vás, co se stane uprostřed? Teď ne, pokud dostanete led bez přílišných potíží. Jednoho dne se však výrobce ledu rozpadne. A kdo to musí opravit, bude se hodně starat o to, jak jednoduché, robustní a dobře stavěné jeho vnitřní komponenty jsou.

Úkolem kodéra není jen poskytnout led, i když je to důležité. Úkolem kodéra je zajistit, aby se při lámání ledu osoba, která ho musí opravit, v tomto procesu nerozvinula výbušná stresová kýla. To je rozdíl mezi amatérským kodérem a profesionálem.

Závěr

Ya udělal dobře. Naučil jsem vás dost základy programování, že s trochou fantazie a spoustou Googlingu se můžete naučit vše, co potřebujete vědět, abyste mohli psát aplikace. Pokud chceš.

Stále můžete mít pocit, že vám scházejí některé důležité informace. A vy jste. Ale nikdy se to všechno nedozvíte, a to je dobrý začátek.

Pokud jste stále na nohou chvění, podívejte se na další návody JavaScriptu. Existuje spousta bezplatných online. A jakmile se budete cítit dostatečně sebejistí, abyste mohli napsat vlastní kód, jděte něco postavit. Neexistuje žádná náhrada za znečištění rukou.

Hodně štěstí!

Další čtení

  • Jak myslet jako počítačový vědec, Allen Downey, Jeffrey Elkner a Chris Meyers. Toto je více dobře napsaná a komplexní (ale patrně méně zábavná) verze toho, co jsem zde napsal, zaměřený na programovací jazyk Python.

Přečtěte si tento příběh později v časopise.

Probuď se každou neděli ráno k nejvýznamnějším týdnům v Tech, které čekají ve vaší doručené poště. Přečtěte si informační bulletin Pozoruhodný v Tech.