Profesia de dezvoltator de software de astăzi este una dintre cele mai mari plătite. Cu toate acestea, pentru a deveni un specialist de clasă, trebuie să vă îmbunătățiți și să învățați. Puteți ajunge la partea de sus a programării în moduri diferite.
Cineva înțelege totul singur, beneficiul internetului este o mulțime de literatură utilă și cursuri gratuite (astfel de cursuri sunt predate de către profesorii ITMO - unii dintre aceștia am publicat în materialele noastre anterioare: aici și aici). O altă opțiune este de a merge la universitate și de a obține o diplomă în tehnologia informației.
În materialul de astăzi, vom vorbi despre caracteristicile și complexitatea procesului de învățare în domeniul IT și despre modul în care sunt gestionate pe ambele "rute".
Niciunul dintre procesele de învățare nu este ușor, inclusiv studiul limbajelor de programare și al tehnologiilor informaționale în general. Știința informatică, precum tehnologia, evoluează în mod constant. Având în vedere acest lucru, dezvoltatorii de software trebuie să monitorizeze în mod constant ultimele actualizări ale sistemelor și cadrelor. În același timp, în procesul de învățare, trebuie să țineți cont de o mulțime de nuanțe care trebuie combinate competent într-o singură imagine.
Educație la domiciliu: ceea ce trebuie să fii pregătit
S-ar părea că toate cele de mai sus menționat nu este în mod clar în favoarea școlarizării acasă - pentru a studia orice nou în zonă nu este ușor, iar dacă este nevoie de diligență specială, auto-disciplina, și noi cunoștințe nu oferă întotdeauna un progres imediat, apoi să învețe pe cont propriu devine foarte dificilă. Cu toate acestea, în programare veniți adesea în acest fel - va trebui să acordați mai multă atenție următoarelor aspecte:
Citiți mai multe cărți pe această temă decât studenții-programatori
Într-adevăr, nu toți elevii citesc literatura recomandată pentru fiecare curs - și încă dobândesc cunoștințele necesare din cauza prelegerilor, repetarea materialului în clasele practice și comunicarea cu colegii. O singură persoană novice nu are această ocazie, așa că va trebui să te întorci la cărți. În special, Greg Neustetter recomandă în primul rând să citească cărți despre matematică discretă. modele de design și algoritmi de proiectare.
Căutați în mod activ colegii și colegii să împărtășiți cunoștințele
O astfel de comunicare este importantă nu numai pentru a dobândi noi cunoștințe, ci și pentru a nu abandona antrenamentul în ansamblu. Un singur începător, confruntat cu dificultăți, are șanse mult mai mari să-și abandoneze formarea decât colegul său. Sprijinul pentru alți programatori și, uneori, dorința de a nu-i lăsa jos, nu ar trebui să fie înlăturate atunci când sunt auto-predate - sunt extrem de importante. Habr și comunitatea de dezvoltatori, precum și alte resurse și forumuri pe care începătorul are posibilitatea de a găsi răspunsul la o întrebare și de a-și împărtăși opinia, pot să ajute la ajutor în acest caz.
Independent de a gândi prin munca practică: atât gravă cât și jucăușă
Mai mult efort trebuie investit în practică. Aici programatorii sunt sfătuiți să înceapă imediat să lucreze la un proiect semnificativ și nu acordă o prea mare importanță „exercițiu de dragul de exercițiu“ (din păcate, nu sunt încă în toți studenții sunt orientate spre proiecte interesante practice - acest programator stagiar el însuși, poate fi evitat). Plus - acest lucru va avea un efect pozitiv asupra motivației: capacitatea de a vedea cum se dezvoltă propria aplicație nu se va plictisi.
Pentru începători (de toate vârstele), auto-învățarea în format de joc va ajuta, de asemenea, să păstrați atenția. Reprezentanți buni ai genului său sunt CodinGame și Code Combat. în care jucătorul gestionează caracterele, prescriind linii de cod cu comenzi. Mai multe resurse interesante pot fi găsite la link.
Ce poate fi predat la universitate
Educația în universitate are și propriile caracteristici - desigur, este nevoie de mai mult timp și efort. Indiferent de forma de formare de liceu pe care o alegeți pentru a începe cu va trebui să reziste competiției pentru a trece testul de intrare și (în cazul studiu full-time) aproape în fiecare zi pentru a participa la o universitate care nu este întotdeauna convenabil, mai ales pentru cei care doresc să schimbe profesia și activitatea lor în paralel.
Adăugați la acest program un program strâns, sesiuni, nu întotdeauna elemente interesante și multe alte sarcini care sunt obligatorii pentru realizare - s-ar părea că jocul nu merită lumânarea. Cu toate acestea, în universități cu un profil IT puternic, există multe oportunități care nu sunt disponibile celor care studiază independent:
Informațiile sunt prezentate într-un mod mai structurat
În învățământul superior, elevii încep să ofere cunoștințe fundamentale în domeniul ales din primele zile și "insuflă" o înțelegere a structurii disciplinei (de exemplu, viitorii programatori de la Universitatea ITMO au predat disciplina "Paradigme de programare"). Această abordare este practicată în multe universități din lume, inclusiv în MIT american.
Nu este posibil ca fiecare nou-venit în programare să elaboreze în mod independent un program de formare profesională - în consecință, unele secțiuni importante sunt ratate deoarece sunt prea plictisitoare sau (în acest stadiu de pregătire) inaplicabile în practică. O prezentare clară și structurată a materialelor, inclusiv a celor care nu sunt orientate spre practică, poate să nu pară suficient de interesantă, dar dă un "efect cumulativ" - cunoștințele fundamentale dintr-un complex ajută mai târziu să stăpânească noi discipline practice.
Este posibil să se stabilească mai rapid contactul cu specialiștii practicieni
Mai mult, atunci când baza este învățată, profesorii care sunt invitați din diverse companii încep să lucreze cu studenții. Ei efectuează exerciții practice, rezolvând problemele întâlnite în activitățile lor zilnice profesionale. În special, Universitatea ITMO colaborează cu firme precum Mail.ru, Yandex, JetBrains, VisualSVN și altele. Începând cu o anumită etapă de pregătire, studenții pot practica în aceste companii, unde efectuează "sarcini de luptă" reale.
Acest lucru ajută la obținerea celei mai complete idei despre specificul muncii și tehnologiile moderne folosite "în producție". Conform studiilor efectuate. elevii care frecventează doar cursuri de cursuri clasice, de unul și jumătate ori mai des eșec examenele. Strategiile pentru învățarea activă sunt foarte eficiente. deoarece abordarea vizează interacțiunea constantă a cursanților și profesorilor prin intermediul direct și feedback-ul și creșterea gradului de motivație și emoționalitate a cursanților.
Sunt disponibile modele complexe de învățare colectivă
O altă tehnică populară folosită în universități este învățarea în rețea, bazată pe ideile activităților de învățare descentralizate. În acest caz, este vorba despre o comunicare controlată prin folosirea unor tehnici care necesită studii active de sine și interacțiunea elevilor.
Un exemplu al unei astfel de abordări poate fi tehnica de studiu a fizicii utilizată de Eric Mazur. Se numește "Instrucțiune de la egal la egal" și implică participarea studenților la cercetarea activă a conceptelor și teoriilor, apoi explicarea lor în fața colegilor lor.
Practica și teoria se completează efectiv reciproc
După cum sa menționat mai sus, știința informaticii este un domeniu în continuă evoluție, iar domeniul este mai practic decât teoretic. În acest sens, o simplă citire a materialelor de curs nu este suficientă. Și dacă acasă școlarizarea novice veni cu problema pe cont propriu, astfel încât să nu piardă motivația și să nu se scufunde pentru a copia terminat exercițiile, apoi la Universitatea din munca (formarea nu numai util, dar, de asemenea, o parte practică interesantă) se află pe umerii profesorilor.
Desigur, mult în acest caz depinde de cine conduce cursul, dar profesioniștii au suficiente avantaje - dacă este necesar, pot schimba o parte din lucrarea practică la cererea elevului (astfel încât el să poată realiza un proiect interesant pentru el) fără a pierde detalii importante. Apropo, oricine poate aprecia posibilitățile unei astfel de instruiri cu un profesor. Un exemplu al unui astfel de program de formare orientat este cursul Universității ITMO "Programarea și dezvoltarea aplicațiilor web", care este disponibil online.
Desigur, odată cu dezvoltarea educației online deschise, astfel de cursuri și proiecte devin din ce în ce mai accesibile tuturor celor care veneau. Dar, în timp ce numărul de Mooc este relativ mic, și nu acoperă toate disciplinele disponibile în universități, trece complet la Mooc-învățare este puțin probabil să reușească - mai degrabă, este o oportunitate de a actualiza unele cunoștințe sau să învețe noi competențe „pe partea de sus“ a educației fundamentale.
Ce în final
Deci, pentru a primi abilitățile de programare necesare și cunoștințele posibile și „acasă“ -, dar va trebui să arate puterea minții și să aibă o motivație serioasă, în plus, va fi necesar să se formeze în mod independent, curriculum-ului și echilibrul dintre abilitățile pur practice care pot ajuta chiar acum, și cunoștințe fundamentale , util în formarea în general.
studenti de la Universitatea, cu o componentă IT puternică mai ușor: ei vor trebui să învețe să sacrifice libertatea „atunci când este convenabil și în cazul în care este convenabil“, dar, în schimb, ei dobândi cunoștințe de bază mai structurat, poate înrola sprijinul profesioniștilor și zilele universitare pentru a merge la cele mai mari companii de IT statului.
Există anumite sarcini, în soluționarea cunoștințelor universitare care sunt foarte utile. "De câteva ori în cariera mea, am fost confruntat cu probleme care nu puteau fi rezolvate fără cunoștințele obținute la universitate", spune programatorul Nathan Marz. - Una din astfel de situații este compilarea algoritmilor pentru operarea sistemelor distribuite. Trebuia să înregistrez o dovadă formală pentru a confirma performanța lor. " Algoritmii înșiși. despre care spune Nathan, au format baza sistemului Storm.
Cu toate acestea, nu este necesar să se creadă că, chiar și după intrarea în universitate, puteți lăsa deoparte auto-educația. Aceste abilități sunt incredibil de importante pentru viitorii programatori, cel puțin datorită faptului că tehnologia informației se dezvoltă foarte rapid.
În același timp, în ciuda faptului că ideile moderne despre educație se schimbă, mulți angajatori și specialiști (inclusiv în sfera IT) continuă să acorde o atenție deosebită diplomei - într-un fel sau altul. De exemplu, Mark Zuckerberg a decis recent să obțină o diplomă. Și în companiile IT (în special în Google) este mai ușor să ajungeți la un interviu cu o diplomă de învățământ superior în domeniul informaticii. Cu toate acestea, la interviul în sine, trebuie să-ți arătați în continuare cunoștințele la egalitate cu ceilalți solicitanți - nu va fi nicio indulgență.