Programarea este grea?
Aceasta este o întrebare pe care mi-o pun mulți neprogramatori. Acest lucru face ca ea să se claseze acolo sus, alături de întrebări precum „programatorii lucrează de acasă” și „de ce fel de educație ai nevoie pentru a fi programator?”. Mințile curioase vor să știe.
Dar, spre deosebire de unele dintre aceste întrebări, aceasta este de fapt destul de dificilă. Este o întrebare simplă, dar răspunsul este foarte nuanțat.
Așa că haideți să ne scufundăm în ea, în detaliu, și să vă ajutăm să înțelegeți dacă programarea este dificilă sau nu.
Este programarea dificilă? Răspunsul scurt
Așa că, mai întâi, să abordăm întrebarea cu un răspuns scurt și direct. Acest lucru va pregăti terenul pentru restul postării.
Este programarea grea?
Păi, așa cum le place consultanților să spună, „depinde”. Dacă programarea este grea sau nu depinde de mulți factori, cum ar fi tipul specific de programare și modul în care gândiți dumneavoastră, ca individ. Așadar, răspunsul scurt este că programarea variază într-adevăr de la surprinzător de ușor până la nebunește de dificil.
Gândiți-vă în felul următor. Încercați să răspundeți la unele dintre aceste întrebări pe baza experienței dumneavoastră:
- Este dificil să joci baschet?
- Este greu să vorbești portugheză?
- Ce ziceți de a conduce o mașină? Este greu?
Înțelegeți de ce mă feresc și spun „ehhh… depinde.”
Oamenii au tendința de a fi prea intimidați de programare
Voi oferi, totuși, o opinie puțin mai calificată. Mai exact, cred că cei care nu sunt programatori tind să supraestimeze dramatic cât de grea este programarea.
Ai auzit vreodată pe cineva spunând ceva de genul:
Oh, eu chiar nu sunt o persoană care se pricepe la matematică!
Ei bine, aud asta foarte des. Dar aud același lucru și despre programare mai mult. Și consider acest lucru ironic pentru că, deși unele domenii ale programării necesită cu adevărat matematică, multe nu. Programarea, după părerea mea, este un set de preocupări mult mai diverse decât „matematica.”
Cred cu adevărat că mulți oameni presupun că nu vor reuși niciodată ca programatori, dar se înșeală complet. Este un subiect mult mai ușor de abordat decât pare să creadă lumea largă.
Să spulberăm câteva mituri despre programare, dincolo de cel al matematicii
Pentru a ne convinge cu adevărat, să analizăm câteva concepții greșite suplimentare despre programare, dincolo de mitul conform căruia programatorii trebuie să fie foarte buni la matematică.
Concepția greșită 1: Programatorii sunt hackeri de elită, ca tipul din Mr. Robot
Indiferent de vârsta dumneavoastră, există un film din perioada de glorie care îi prezintă pe programatori ca fiind hackeri de tip Bond (sau Bond-villain). În copilărie, pentru mine, a fost filmul Sneakers. Dacă ai crescut puțin mai târziu decât mine, s-ar putea să fi fost suficient de nefericit pentru a întâlni Hackers sau Swordfish. În zilele noastre, genul s-a îmbunătățit și s-ar putea să vă placă Mr. Robot.
Dar indiferent dacă filmul este grozav, ca Sneakers, sau teribil, ca Hackers, aveți în continuare protagoniști hackeri și antagoniști hackeri care par a fi atât cvasi-sociopate cât și programatori incredibil de geniali.
Aceasta nu este viața reală. Nu este nici măcar hacking real, ca să nu mai vorbim de programarea obișnuită. Așa că nu presupuneți că programarea presupune să muți cuburi pe un ecran, sau orice altceva face Hugh Jackman în Swordfish. De obicei, necesită doar o mulțime de căutări pe Google.
Imprejurarea 2: Aveți nevoie de o diplomă în informatică
Am acoperit acest lucru în multe detalii, așa că nu voi insista asupra acestui aspect aici. Dar nu, nu aveți nevoie de o diplomă în informatică pentru a programa. Nu aveți nevoie de o diplomă de meserie și s-ar putea să nu aveți nevoie nici măcar să participați la un bootcamp.
Toate aceste lucruri vă vor ușura obținerea primului loc de muncă, dar nu sunt necesare. Așadar, atunci când vă întrebați „este greu să programezi”, probabil că faceți o confuzie între cercurile pe care trebuie să le parcurgeți și activitate. Nu există nici o condiție prealabilă pentru programare în afară de un Notepad și descărcarea unui singur interpretor sau compilator.
Misconcepția 3: Programatorii au abilități sociale teribile
Aceasta s-ar putea să vă facă să vă scărpinați puțin în cap. Probabil că vă gândiți: „Ce legătură are ideea că programatorii au abilități sociale teribile cu mine, sau cu motivul pentru care programarea este dificilă?”
Ei bine, este subtilă, dar reală. Lumea se uită la emisiuni TV și filme în care poți identifica programatorii pricepuți prin tendința lor de a fi „tocilari.”
Așa că logica inversă se strecoară și te gândești: „Dacă nu sunt nebunește de stângaci din punct de vedere social, aș putea fi vreodată un programator „adevărat”?”
Da. Da, poți. Programatorii participă la o mulțime de conferințe și întâlniri, țin discursuri, formează comunități și au vieți sociale grozave și normale.
Imprejurarea 4: Programatorii sunt imediat buni la toate lucrurile legate de calculatoare
Personal, am obținut o diplomă în informatică și apoi o slujbă de programator. Și, când am făcut asta, toată lumea a presupus imediat că sunt un expert în toate lucrurile legate de calculatoare.
- Erik, computerul meu scoate un sunet ciudat – ce crezi că este în neregulă?
- Ei, primesc eroarea #90314 când încerc să închid MS Word. Ce înseamnă asta?
- Care dintre aceste plăci video este cea mai bună?
Toate acestea erau genul de întrebări pe care le auzeam. Și, practic, căutam răspunsul pe Google (dacă nu spuneam „wow, chiar nu știu.”). Îmi câștigam existența scriind software, dar asta nu însemna că știam totul și orice despre computere.
Menționez acest lucru pentru că nu ar trebui să credeți că trebuie să știți totul și orice despre computere pentru a fi programator.
Există multă varietate în programare
După ce am spulberat câteva mituri, haideți să ne uităm la realitatea programării. Iar realitatea este că este de fapt destul de diversă. Iată doar o mică mostră a lucrurilor pe care oamenii le fac sub umbrela generală de „programare”:
- Proiectarea aspectului și a proprietăților vizuale ale unei pagini web.
- Crearea de algoritmi de inteligență artificială.
- Scripting de sarcini manuale pentru a le automatiza.
- Modelare statistică complexă.
- Crearea de aplicații mobile simple și repetabile.
Și aceasta este doar o mică mostră a diferitelor tipuri de programare. Nici măcar nu abordează toate rolurile diferite pe care le-ați putea ocupa și care contribuie la aceste eforturi.
Există la fel de multă varietate în „a fi programator” ca și în „a fi om de afaceri”.”
Câteva roluri de programator sunt mai ușor de abordat
Datorită acestei varietăți, aș vrea să sap puțin în ceea ce privește rolurile care ar putea părea mai ușor de abordat.
Vreau să mă îndepărtez puțin de spectrul „de la ușor la greu”, doar pentru că acesta depinde atât de mult de ceea ce tu, ca individ, găsești dificil. De exemplu, m-am descurcat întotdeauna foarte bine cu matematica și algoritmii, dar sunt sincer groaznic la design și layout. S-ar putea să aveți înclinații opuse și să credeți că sunt ridicol să spun „programarea unui algoritm de sortare este ușoară” și să contraziceți cu ceva ce mi s-ar părea la fel de ridicol: „realizarea unei pagini web frumoase este ușoară.”
Așa că înțelegeți că nu numesc lucrurile în mod categoric ușor sau greu. În schimb, subliniez lucruri pe care s-ar putea să nu le fi luat în considerare, dacă v-ați gândit vreodată doar la programare ca fiind foarte matematică.
- Câteva persoane cu roluri de programare se concentrează în mare parte pe aspectul și experiența utilizatorului. Acest lucru înseamnă că se preocupă foarte mult de estetica aplicației, precum și de modul în care utilizatorii interacționează cu ea.
- Alți programatori se concentrează în mare parte pe date și baze de date. În loc să construiască bucăți mari de software folosind instrucțiuni complexe, ei se concentrează mult mai mult pe datele reale și pe raționamentul cu privire la aceste date.
- Încă o altă disciplină este mai aproape de operațiuni și suport. Unii oameni lucrează o bună parte din timp cu computerele ca „utilizatori de putere” și învață să programeze învățând pe ici pe colo cum să automatizeze și să facă mai eficient ceea ce fac manual.
Și acestea sunt doar câteva exemple. Așa că înțelegeți că, chiar dacă programarea vi se pare grea, s-ar putea să existe roluri în cadrul ei care par de fapt mai ușor de abordat.
Programarea este, totuși, extraterestră, ceea ce poate însemna că programarea este grea
În acest moment, aș vrea să schimbăm puțin viteza. Am impresia că am petrecut o bună parte din timp pe tema „hei, programarea nu este atât de grea pe cât crezi”. Și asta este adevărat. Cred că o mulțime de oameni ar răspunde la întrebarea „este greu să programezi” cu un „da” pur și simplu pentru că nu știu ce presupune programarea.
Dar am de gând să temperez puțin acest lucru aici. Programarea este grea în sensul că vă cere să gândiți într-un mod cu care nu sunteți obișnuiți.
Pentru a înțelege ce vreau să spun, gândiți-vă că aveți de-a face cu Alexa.
Alexa poate răspunde la o mulțime de întrebări tactice, iar uneori vă va încânta și vă va surprinde. Dar ea este, de asemenea, foarte frustrantă. Caracterul ei computerizat transpare uneori, deoarece înțelege greșit în mod comic interacțiunea umană de bază.
Acum, gândiți-vă că, în ceea ce privește programele de calculator, Alexa este complet optimizată pentru a face tot posibilul să vă înțeleagă. Trebuie să fiți extrem de precis, literal și obtuz în timp ce vorbiți cu ea, iar ea este acolo pentru a vă înțelege.
Compilatorul (lucrul care vă traduce codul în acțiune) este ca Alexa, dar nu este conceput pentru a vă face viața mai ușoară. Este conceput pentru a maximiza utilitatea. Deci, dacă trebuie să fii precis în relația cu Alexa, precis nici măcar nu începe să descrie ceea ce vrea compilatorul. Confundați un punct și virgulă cu două puncte și puteți să prăbușiți un computer.
Așa că programarea este grea? Da, în sensul că îți cere să gândești într-un mod în care majoritatea oamenilor nu gândesc în mod normal.
Programarea de ultimă oră este legitim de grea
Pentru a continua cu tema „da, programarea este grea”, să ne gândim că există buzunare ale lumii programării care necesită multă îndemânare și practică pentru a intra. Nu vă gândiți prea mult la asta. Uneori, programarea este cu adevărat dificilă.
Facerea de lucruri avansate cu robotică, lanț de blocuri, inteligență artificială, algoritmi de tranzacționare etc. necesită multă îndemânare, practică, talent și spirit competitiv. Unele dintre marile firme din Silicon Valley plătesc salarii masive dezvoltatorilor de software și nu vor face acest lucru pentru oricine care se întâmplă să treacă pe acolo.
Există specialități în lumea programării care necesită un fulger în sticlă, în sensul că ai nevoie de practică, talent, inteligență și noroc. Și, dincolo de asta, există roluri, poziții, provocări și situații pe care nu o mulțime de oameni le pot îndeplini în mod adecvat. Programarea poate fi destul de grea.
Ca orice altceva, variază
Dar, în cele din urmă, chiar variază. Gândiți-vă la ceea ce am spus la început.
Este baschetul greu? Nu, dacă vă referiți la „poate oricine să ridice o minge și să o arunce spre un coș?”. Da, dacă vă referiți la „care sunt șansele ca Golden State să mă semneze pentru a juca alături de Steph Curry?”
Este greu să vorbești portugheză? Ei bine, probabil că nu, dacă te-ai născut în Brazilia sau Portugalia. Dar probabil că da dacă ai 70 de ani și nu ai vorbit niciodată altceva decât japoneză.
Deci, este greu să programezi? Da și nu. Da, este greu să o faci la un nivel de elită sau într-un domeniu foarte specializat și competitiv. Dar nu, nu este greu să începi. Și cu siguranță nu este dincolo de tine.
Acest articol a fost scris de Erik Dietrich. Erik este un veteran al lumii software și a ocupat aproape toate pozițiile din această lume: dezvoltator, arhitect, manager, CIO și, în cele din urmă, consultant independent în management și strategie. Această experiență vastă i-a permis să se adreseze tuturor persoanelor din industrie și să scrie mai multe cărți și nenumărate articole de blog pe zeci de site-uri.