de Cecily Carver
Și ceea ce am învățat de la învățarea altora
Înainte de a învăța să codezi, gândește-te ce vrei să codezi
Știind cum să codezi este în principal construirea de lucruri, iar calea este mult mai clară atunci când ai un sens al obiectivului final. Dacă obiectivul dvs. este „învățați să codificați”, fără o idee clară despre tipurile de programe pe care le veți scrie și despre modul în care acestea vă vor îmbunătăți viața, probabil că veți găsi un exercițiu frustrant.
Mi-e puțin rușine să recunosc că o parte din motivația mea de a studia informatica a fost că am vrut să dovedesc că sunt deștept și am vrut să pot obține locuri de muncă Smart Person. De asemenea, mi-a plăcut să mă gândesc la matematică și teorie (această carte mi-a suflat mintea la o vârstă impresionabilă) și programul a fost potrivit. Totuși, nu a fost suficient să mă susțin până când am găsit modalități de a conecta tehnologia la lucrurile pe care le iubeam cu adevărat, cum ar fi muzica și literatura.
Deci, ce doriți să codificați? Site-uri web? Jocuri? aplicații iPhone? Un startup care te îmbogățește? Arta interactivă? Vrei să îți poți impresiona șeful sau să automatizezi o sarcină plictisitoare, astfel încât să poți petrece mai mult timp uitându-te la fotografii de vidră? Poate că pur și simplu doriți să fiți mai angajabil, să adăugați un cuvânt cheie la CV-ul dvs. sau să îndepliniți cerințele programului dvs. educațional. Toate acestea sunt obiective demne. Asigurați-vă că știți care este a dvs. și studiați în consecință.
Nu este nimic mistic în asta
Codificarea este o abilitate ca oricare alta. La fel ca învățarea limbilor străine, există gramatică și vocabular de dobândit. La fel ca matematica, există procese care pot rezolva tipuri specifice de probleme. La fel ca toate tipurile de artizanat și de artă, există tehnici și instrumente și cele mai bune practici pe care oamenii le-au dezvoltat de-a lungul timpului, specializate în diferite sarcini, pe care sunteți liberi să le utilizați sau să le modificați sau să le aruncați.
Acest băiat (un tip foarte deștept! Cu ale cărui alte scrieri mă bucur și sunt de acord!) susține că există o linie strălucitoare între oamenii cu adevărata minte a unui programator și toți ceilalți, cărora le lipsește capacitatea intelectuală necesară pentru a reuși în domeniu. Această linie strălucitoare constă, potrivit lui, din indicatori și recursivitate (există grunduri aici și aici pentru curioși).
Am învățat despre indicii și recursivitate la școală și, când le-am înțeles, a fost o încântare încântătoare pentru creierul meu – genul de plăcere intelectuală care m-a făcut să vreau să studiez informatica în primul rând. Dar, în afara exercițiilor din clasă, de câte ori a trebuit să mă familiarizez cu oricare dintre concepte pentru a face lucrurile a fost relativ mic. Și când îi ajut pe ceilalți să învețe, din nou și din nou, i-am urmărit pe oameni finalizând proiecte interesante și pline de satisfacții fără să știe nimic despre nici unul.
Nu are rost să fii intimidat sau să te întrebi dacă ești suficient de inteligent. Sigur, cu cât sarcina dvs. este mai complexă și ezoterică, cu atât va fi mai ridicat nivelul de stăpânire pentru a o finaliza. Dar acest lucru este adevărat în absolut toate celelalte domenii. Cu excepția cazului în care intenționați să vă câștigați viața în totalitate prin codul dvs., este posibil să nu fiți un geniu care înțelege recursivitatea pentru a face ceea ce doriți să faceți.
Nu funcționează niciodată pentru prima dată
Și probabil că nu o va face a doua sau a treia oară
Când începeți să învățați să codificați, veți întâlni foarte repede această experiență specială: credeți că ați configurat totul așa cum trebuie, ați verificat-o și ați verificat-o din nou și totuși. nu. muncă. Nu aveți nicio idee de unde să începeți să încercați să o remediați, iar mesajul de eroare (dacă aveți norocul să aveți unul) ar putea la fel de bine să spună „dracu’ ”. S-ar putea să fiți tentați să renunțați în acest moment, crezând că nu vă veți da seama niciodată, că nu sunteți exclus pentru asta. Am avut acel sentiment prima dată când am încercat să scriu un program în C ++, l-am rulat și am primit doar cuvintele „vina de segmentare” pentru problemele mele.
Dar această experiență este atât de obișnuită pentru programatorii de toate nivelurile de calificare, încât nu spune absolut nimic despre inteligența, cunoștințele tehnice sau adecvarea pentru viața de codificare. Ți se va întâmpla ca începător, dar ți se va întâmpla și ca programator cu experiență. Principala diferență va fi în modul în care răspundeți la aceasta.
Am constatat că o mare diferență între noii codificatori și codificatorii experimentați este credința: credința că lucrurile merg prost dintr-un motiv logic și descoperibil, credința că problemele sunt rezolvabile, credința că există o modalitate de a atinge obiectivul. Calea de la „a nu funcționa” la „a lucra” s-ar putea să nu fie evidentă, dar cu răbdare o puteți găsi de obicei.
Cineva îți va spune întotdeauna că faci greșit
Bretele ar trebui să meargă pe linia următoare. Bretele ar trebui să meargă pe aceeași linie. Utilizați filele pentru a indenta. Dar filele sunt rele. Tu ar trebui folosiți proceduri stocate, dar de fapt nu ar trebui să le folosești. Tu ar trebui comentează întotdeauna codul tău. Dar codul bun nu are nevoie de comentarii.
Aproape întotdeauna există multe abordări diferite pentru o anumită problemă, fără un singur „mod corect”. Mulți dintre programatori se pricep foarte bine să pledeze pentru modul lor preferat, dar asta nu înseamnă că este calea unică adevărată. Unul dintre aspectele mai stresante ale carierei mele timpurii a fost să mă confrunt cu oameni care îmi spun că sunt greșit și să încerc să-mi dau seama dacă au dreptate.
Dacă codificați într-o echipă cu alte persoane, cineva va avea cu siguranță probleme cu ceva ce faceți. Uneori vor fi absolut corecți și mereu merită investigat pentru a vedea dacă, de fapt, faci asta greșit. Dar, uneori, vor fi plini de rahat sau vor relua o dispută străveche și lipsită de sens în care ar fi cel mai bine să urmezi un ghid de stil și să uiți de el.
Pe de altă parte, dacă ești genul de persoană care se bucură de dispute antice, dar fără sens (tocilari de gramatică, mă uit la tine), ai ajuns la locul potrivit.
Cineva îți va spune întotdeauna că nu ești un adevărat programator
HTML nu este o codificare reală. Dacă nu utilizați vi, nu sunteți cu adevărat serioși. Programatorii adevărați știu C. Codificatorii adevărați nu fac Windows. Unii oameni nu o vor putea învăța niciodată. Nu ar trebui să înveți să codezi. Nu ești programator de computere (dar eu sunt).
„Codificare” înseamnă o mulțime de lucruri diferite pentru o mulțime de oameni diferiți și arată acum diferit de modul în care a fost. Și, destul de amuzant, instrumentele, pachetele și cadrele care o fac mai rapidă și mai ușoară pentru noii veniți sau chiar dezvoltatorii instruiți să construiască lucruri sunt cel mai probabil să fie gudrate cu pensula „nu pentru coderii REALI”. (Vedea: “Întoarcerea programatorului real”)
În spatele tuturor acestea se află frica că dacă „oricine” se poate numi programator, titlul va deveni lipsit de sens. Dar cred că această intretinere este distructivă.
Utilizați instrumentele care facilitează construirea lucrurilor pe care doriți să le construiți. Dacă asta înseamnă că jocul tău a fost creat în Stencyl sau GameMaker, mai degrabă decât scris de la zero, este în regulă. Dacă prima dvs. incursiune în codificare este HTML sau macrocomenzi Excel, este în regulă. Lucrează cu ceva cu care simți că poți rămâne.
Pe măsură ce vă simțiți mai confortabil, veți începe în mod natural să găsiți acele instrumente limitative decât utile și să căutați altele mai puternice. Dar, de cele mai multe ori, puțini oameni se vor uita vreodată la codul dvs. sau chiar vă vor întreba ce ați folosit – Contează ceea ce faceți cu el.
Îngrijorarea cu privire la „geek cred” te va ucide încet
Vezi deasupra. Îmi făceam griji mult, mai ales la școală, dacă mă identificam ca „nu un adevărat geek” (și, prin urmare, mai puțin demn de a fi inclus în comunitățile tehnologice) prin îmbrăcămintea mea, prezentarea mea, alegerea materialului meu de lectură și chiar opțiuni de personalizare a software-ului. A fost o pierdere teribilă de energie și am devenit mult mai funcțională după ce am luat decizia de a renunța la toate.
Trebuie să interiorizați acest lucru: capacitatea dvs. de a vă pricepe la codificare are nimic pentru a face cu cât de bine te încadrezi în diferite subculturi geek. Acest lucru se dublează dacă știi în adâncul că nu te vei potrivi niciodată. Energia pe care o cheltuiți dovedindu-vă, ar trebui să se îndrepte spre a face lucruri în schimb. Și, dacă sunteți un geek incontestabil cu credite care se scurg din orificiile dvs., țineți cont de acest lucru atunci când evaluați nivelul creditării altcuiva. Poate că nu înseamnă ce crezi că face.
A rămâne cu el este mai important decât metoda
Nu lipsesc articole despre „corect” sau „cel mai bun” mod de a învăța cum să codificați și există o mulțime de abordări potențiale. Puteți învăța conceptele dintr-o carte sau de finalizarea exercițiilor interactive sau de depanarea lucrurilor pe care alții le-au scris. Și, desigur, există o mulțime de limbi pe care le-ați putea alege ca prima dvs. de învățare, cu avocați pentru fiecare.
O reclamație obișnuită cu programele și atelierele „învățați-vă să codificați” este că veți trece fericit prin materialul pentru începători și apoi veți atinge o curbă abruptă în care lucrurile se îngreunează foarte repede. Știți cum să imprimați câteva linii de text pe o pagină, dar nu aveți idee de unde să începeți să lucrați la un proiect util „real”. S-ar putea să simțiți că urmați instrucțiuni fără să înțelegeți cu adevărat și să dați vina pe materialele de învățare.
Când ajungeți în această etapă, majoritatea tutorialelor și resurselor online disponibile sunt mult mai puțin utile, deoarece presupun că sunteți deja un programator experimentat și confortabil. Dificultatea este agravată și de faptul că „nu știi ce nu știi”. Chiar și încercarea de a afla ce să înveți în continuare este un puzzle în sine.
Veți atinge acest zid indiferent de programul „învățați să codificați” pe care îl urmați, iar singura modalitate de a trece este să perseverați. Aceasta înseamnă că încercați în continuare lucruri noi, învățați mai multe informații și aflați, bucată cu bucată, cum să vă construiți proiectul. Aveți mult mai multe șanse să găsiți succes în cele din urmă dacă aveți o idee clară de ce învățați să codificați în primul rând.
Dacă tot pui cărămizi una peste alta, s-ar putea să dureze mult, dar în cele din urmă vei avea un perete. Aici este utilă acea credință pe care am menționat-o mai devreme. Dacă credeți că, cu timp și răbdare, vă puteți da seama de tot codificarea, în timp aproape sigur veți reuși.