Hagnýt handbók til að læra grunnatriði forritunar á vefnum

Hvernig þú getur lært að kóða ókeypis sem 'einstaklingur sem ekki er tæknilega'

Síðasta sumar var ég á síðustu mánuðum meistaragráðu minnar með sérhæfingu í frumkvöðlastarfi. Allir í kringum mig voru stöðugt að tala um 'tæknifyrirtæki' og voru mjög spenntir fyrir því. Fólk minntist stöðugt á dulmát hugtök eins og 'HTML & CSS þráðrammar' og 'SaaS' - og ég hafði ekki hugmynd um hvað flestir þessir hlutir þýða.

Það sem ég vissi var að ég vildi læra meira um það. Svo ég ákvað að læra um 'kóða' og forritun.

Sem fyrsta skref spurði ég kunnasta manneskju sem ég þekki: Google. Ég skrifaði „læra að kóða“ og það sem ég endaði með voru 396.000.000 leitarniðurstöður á 0,54 sekúndum: geðveikur fjöldi greina, rafbóka, námskeiða og hvers konar annars hugsanlegs innihalds um forritun.

Ég hafði nákvæmlega enga hugmynd um hvernig og hvar ég ætti að byrja.

© Wikimedia Commons.

Ég reiknaði með að öll þessi viðleitni þyrfti mikinn tíma og fyrirhöfn og ákvað því að skrifa meistararitgerðina mína um efnið. Ég myndi skrifa um hvaða leiðir eru fyrir fólk sem ekki er tæknilegt - eins og ég og flestir athafnamenn - til að læra að kóða á sem hagkvæmastan hátt. Von mín var sú að rannsóknirnar myndu hjálpa sumum frumkvöðlum að öðlast þá þekkingu sem þeir þurfa til að hampa saman frumgerð eða gera betri tæknilegar ráðningar og ég myndi taka upp gagnlega færni á leiðinni.

Nokkrum mánuðum seinna var ég búinn með ritgerðina. Mjög spennt, deildi því í einu af umræðunum á freeCodeCamp, þar sem ég sótti mikið af því sem ég veit um kóða (takk ❤).

Quincy Larson, stofnandi Free Code Camp, gaf mér heiðarlegt svar:

Þetta voru frábær viðbrögð: Það er ekkert vit í að láta einhvern lesa heilt 67 blaðsíðna skjal sem var skrifað til að uppfylla fræðilegar kröfur. Markmið mitt hafði verið að vera strangur - sumir segja kannski leiðinlegt - nóg til að birtast eins og 'alvarlegur' fræðimaður (hér er krækjan ef þú vilt láta reyna á það samt).

Viðbrögð Quincy eru ástæðan fyrir því að ég skrifaði þessa færslu: að deila þéttu námi sem ég fékk frá því að sigta í gegnum óteljandi greinar, greinar, bækur og bloggfærslur um hvernig á að læra forritun á eigin spýtur á skilvirkasta hátt og ókeypis - án að vera leiðinlegur og taka 67 blaðsíður, og eftir að hafa beitt allri þekkingu á sjálfan mig.

Von mín er sú að þessi færsla hjálpi þér að forðast að sóa tíma þínum eins og ég gerði í upphafi með lítil gæði og ómarkviss námsaðferðir. Ég braut niður allt ferlið við að læra forritun í sjö skref - það er það sem ég lærði.

# 1 Settu upp sterkt námsmarkmið.

Árangursrík námsmarkmið gæti verið persónulegt verkefni sem þú ert áhugasamur um að byggja: frumgerð af hugmynd sem þú hefur, persónulega vefsíðan þín, þú nefnir það. Forðastu að hoppa beint inn í námskeið eða MOOC með óljósum þrá að „læra forritun“. Að hafa vel skilgreint námsmarkmið gerir námsframvindu þína mælanlegar, eykur hvatningu og hjálpar þér að halda áfram þegar hlutirnir verða flóknari.

# 2 Fáðu yfirsýn yfir námsefnið áður en þú byrjar.

„Forritun“ er breitt hugtak og þess vegna legg ég til að þú þrengir að þróun vefsins sem byrjandi. Áður en þú byrjar að læra neitt skaltu fá yfirsýn yfir hvað 'fullur stakkur' nær til til að geta tekið menntað val um tungumál og tækni. Hérna er það minn:

Aðferð mín byggist á LearnCode.Academy myndbandinu á YouTube - takk fyrir!

# 3 Byrjaðu með annað hvort JavaScript, Python eða Ruby sem fyrsta tungumál þitt.

Almennt er enginn „besti“ kostur á fyrsta forritunarmáli. Ég mæli með þessum þremur tungumálum vegna þess að þau eru öll notuð við þróun vefa, þau hafa vænlegar framtíðarhorfur og sérfræðingar líta almennt á að þær séu lagaðar fyrir byrjendur.

Ég myndi mæla með þessum þremur stöðum til að byrja:

  • JavaScript er kynþokkafullt (JavaScript)
  • Lærðu Python The Hard Way eftir Zed A. Shaw (Python)
  • Leiðbeiningar um Ruby on Rails eftir Michael Hartl (Ruby on Rails)

# 4 Settu upp námskrá til að leiðbeina viðleitni þinni og notaðu nokkur úrræði samhliða.

Það er fjöldinn allur af ókeypis hágæða auðlindum í boði og það er næstum því ómögulegt að gera grein fyrir þeim öllum í byrjun. Veldu af þessum sökum eina eða fleiri námskrár sem leiðbeina námi þínu. Athugaðu að það er ekki til neitt „stöðva búð“ auðlind sem mun kenna þér allt - þú getur og ættir að nota nokkur úrræði samhliða sem munu bæta hvert annað.

Hér eru nokkrar námskrár sem mér fannst sérstaklega gagnlegar:

  • Ókeypis kóða búðir (JavaScript)
  • Óðinsverkefnið (Ruby)
  • Bento.io (Python / Flask) eða Lifehacker (Python / Django)
  • Tölvunarfræði BS-prófs

# 5 Fínstilltu námið með því að nota tækni sem uppgötvast með sálfræðilegum rannsóknum.

Að læra rannsóknir hafa komið fram með fjölda tækni sem auðvelt er að fylgja eftir og hrinda í framkvæmd. Notaðu þau og sérsniðu þau að þínum þörfum til að bæta vandamál til að leysa vandamál þitt, skilning þinn á erfiðum hugtökum, varðveislu á nýju efni og ná tökum á frestun.

Hér eru algengar aðferðir til að bæta færni þína til að leysa vandamál:

  • Notaðu bæði einbeittan og dreifðan hugsunarhátt
  • Klippið frá þekkingu sem maður lærir
  • Faðma bilun og læra af því
  • Notaðu myndlíkingar og hliðstæður

Eftirfarandi eru aðferðir til að bæta varðveislu nýlegrar efnis:

  • Notaðu innköllun í stað þess að lesa aftur
  • Notaðu dreifingu endurtekinna
  • Fléttu saman mismunandi tegundir æfinga
  • Lagið orðaforða yfir lykilorð og hugtök sem munu nýtast til að leysa vandamál (í stað þess að reyna að læra setningafræði af hjarta)

Nokkur ráð um hvernig á að forðast frestun:

  • Finndu vin til að læra ásamt
  • Einbeittu þér að ferlinu, ekki lokaafurðinni
  • Prófaðu Pomodoro tæknina
  • Settu regluleg markmið (vertu SMART)

# 6 Lærðu með því að gera: æfðu forritunarhæfileika þína og byggðu raunveruleg verkefni eins fljótt og auðið er.

Að læra forritun er sniðug áreynsla - það er ekki nóg að horfa á myndbönd og leysa fjölvalspróf. Þú ættir að eyða mestum tíma þínum í að byggja verkefni. Þetta eru nokkrir staðir þar sem þú getur fundið innblástur fyrir það sem á að byggja:

  • 180 forritunarverkefni Jennifer deWalt
  • Núll framanhetja eftir Jonathan Z. White (Part I & Part II)

Og hér eru nokkrir staðir þar sem hægt er að finna forritunarvandamál fyrir vísvitandi starfshætti:

  • Tæmandi listi yfir forritunarvandamengi á GitHub
  • 17 erfðaskrá áskoranir frá Codecondo

# 7 Lærðu af ráðum forritara, kennara og annarra sjálfanemenda.

Helstu ráð sem þú munt finna er að læra forritun tekur langan tíma. Ekki láta hræða þig af 'snillingum forriturum' og venja þig á kembiforrit.

Þetta eru tvö uppáhaldssöfn mín af ráðleggingum:

  • 97 ráðleggingar varðandi forritun eftir O'Reilly
  • Raunhæf ráðleggingar forritara

Loka ráðið mitt er það mikilvægasta:

Helstu spár um árangur við nám í forritun eru mannlegs eðlis - hvatning þín og þrautseigja.

Margir byrjendur falla í þá gildru að hafa miklar áhyggjur af tæknilegum spurningum: Hvaða úrræði ætti ég að velja? Hvaða tungumál ætti ég að velja? Hvaða tækni ætti ég að nota? Þessi aðferð hefur góða möguleika á að sóa tíma þínum. Svo framarlega sem val þitt er innan iðnaðarstaðla skiptir það ekki máli eins mikið og að hafa sterkt, yfirgripsmikið námsmarkmið til að vera áhugasamir og kóða reglulega.

Það er ekki auðvelt að læra að kóða. Það tekur mikinn tíma og þrautseigju. Þegar þú vilt ná meginmarkmiðinu þínu skaltu taka því einu vandamáli í einu - og byrja bara! Þú munt taka stöðugum framförum og þá snýst allt um að vera áhugasamir og þrauka til loka.

„Ef þú vilt smíða skip skaltu ekki tromma fólk til að safna viði og ekki úthluta þeim verkefnum og vinnu, heldur kenna þeim að þrá eftir endalausri ómældu sjávarins.“ - Antoine de Saint-Exupéry

Og áður en þú ferð ...

Veistu einhver ráð, tækni eða úrræði sem vantar í þessa færslu? Vinsamlegast deildu þeim í athugasemdinni hér að neðan.

PS: Hér eru nokkur viðbótarsöfn fyrir mismunandi námsstíla:

  • 33 sýningarstjórar á YouTube rásum (sem mér fannst mjög gagnlegar)
  • Listar yfir forritunarbækur (hér, hér og hér)
  • Inngangur að tölvunarfræðinámskeiðum frá Harvard, Stanford og MIT
  • Alhliða listi yfir netnámskeið um Class Central
  • 'Awesome' listi yfir auðlindir á netinu á GitHub