Criza îi obligă pe mulți să își schimbe locul de muncă sau chiar să-și schimbe complet specialitatea. Trebuie să învăț noi abilități și profesii. O alegere excelentă în acest caz poate fi profesia de programator. Este interesant, confortabil și profitabil. În acest articol, vom încerca să răspundem la întrebarea cum să construim cariera unui programator de la zero.
Începeți calea spre cariera unui programator cu răspunsul la întrebare, aveți nevoie de programare? Această întrebare nu se aplică celor care studiază sau studiază într-o specialitate aproape de programare. Dacă ați fi mai bine la matematică decât în domeniul științelor umaniste, dacă doriți să petreceți mult timp la computer, dacă doriți să învățați ceva nou, atunci programarea este potrivită pentru dvs.
De unde să încep
Există mai multe opțiuni pentru dezvoltarea evenimentelor, ca urmare a faptului că o persoană devine programator. Primii - programatorii părinților, care le-au învățat pe copiii lor totul. Acești copii nu trebuie nici măcar să meargă la universitate. A doua opțiune este profesia la modă a programatorului. După școală era necesar să alegi unde să mergi să studiezi și să alegi direcția trendy a IT-ului, cum mi-a plăcut. Și ultima opțiune este un hobby care sa transformat în muncă.
Dacă nu vi se întâmplă nimic din cele de mai sus, aveți la dispoziție patru opțiuni:
- Autoeducație. Această opțiune poate fi utilizată singură sau în combinație cu alte metode. Internetul este plin de site-uri. cărți și aplicații. care ajută la învățarea diferitelor limbi de programare și a tehnologiilor. Dar aceasta este cea mai grea cale pentru începători.
- Universitatea. Dacă absolvi școala și vrei să fii programator, atunci mergi la universitate. Dacă nu pentru cunoaștere, atunci pentru crustă. Acesta poate servi ca un bonus pentru un loc de muncă. Deși veți obține și câteva cunoștințe. Dar nu uitați să vă angajați în studiul de sine. Alegerea unei universități ar trebui abordată foarte responsabil. Studiați cu atenție programele de formare și alegeți cele mai bune universități tehnice.
- Mentor. Va fi foarte bun dacă găsiți o persoană care va fi de acord să vă ajute și să vă călăuzească în direcția cea bună. El vă va spune cărțile și resursele potrivite, vă va verifica codul și veți da sfaturi utile. Apropo, am scris deja despre o resursă utilă. unde puteți găsi un mentor. Mentorul poate fi căutat printre programatori familiari, la IT-hangouts și conferințe, pe forumuri on-line și așa mai departe.
- Cursuri practice specializate. Încercați să căutați în cursurile de oraș, unde veți fi învățat un limbaj de programare sau o tehnologie. Am fost plăcut surprins de numărul de astfel de cursuri de la Kiev, inclusiv gratuit și cu angajare ulterioară.
Ce limbă, tehnologie și direcție ar trebui să aleg?
Când devii programator, într-un an sau două veți fi liberi să alegeți orice limbă care vă place. Dar atunci când alegeți primul limbaj de programare, un începător ar trebui să ia în considerare următoarele criterii:
De asemenea, va trebui să decideți cu privire la direcția de programare. Mobil, desktop, jocuri, web, programare la nivel scăzut și așa mai departe. Cele mai populare și relativ ușoare sunt industria de dezvoltare web, clienți mobili și desktop. Sub fiecare direcție, o limbă se poate apropia, iar cealaltă nu poate aborda deloc. Adică, atunci când alegeți un limbaj de programare, merită, de asemenea, să pornim de la acest factor.
Cum să obțineți o experiență inițială
Fără experiență, nu veți obține un loc de muncă. Fără muncă, nu vei avea experiență. Un cerc vicios al vieții reale. Dar e în regulă, vom ieși din ea.
În primul rând, nu așteptați până când citiți toate cărțile în limba de programare aleasă. Începeți să scrieți primele linii de cod după al doilea capitol al cărții. Faceți toate sarcinile din cărți, exemple de reprint, să le înțelegeți. Completați exemple și sarcini din cărți cu ideile dvs. Creați-vă sarcinile pentru materialele pe care le-ați acoperit. Rezolvați aceste probleme.
În al doilea rând, trebuie să găsiți primele proiecte. Aceasta este probabil cea mai dificilă opțiune, dar de lucru. Va trebui să căutați ordine, să le îndepliniți, să vă deranjezi cu plata. Pentru un începător, acest lucru este foarte dificil, dar toate celelalte opțiuni vor părea o afacere ploditoare. Proiectele finalizate pot fi înregistrate în experiența dvs. și vă pot arăta viitorul angajator. Proiectele reale reprezintă un mare plus în CV-ul tău.
Dacă cunoașteți limba engleză, înregistrați-vă mai bine pe schimburile în limba engleză. Piața este mai mult. Dacă nu cunoașteți limba engleză, învățați-o. Între timp, puteți utiliza schimburi de limbi ruse independente. Căutați proiecte mici care se potrivesc nivelului dvs. de cunoștințe sau chiar deasupra acestuia. Aplică pentru câteva zeci de locuri de muncă. Și pregătiți-vă pentru a obține o mare de eșecuri. Dar dacă una sau două aplicații sunt împușcate, veți avea șansa de a obține o experiență reală.
O altă opțiune bună pentru obținerea experienței reale este sursa open source. Astfel de proiecte au întotdeauna nevoie de oameni noi, chiar și de novici. Puteți căuta bug-uri în proiect sau căutați bug-tracker și sugerați metode pentru rezolvarea lor. Găsiți astfel de proiecte cu ușurință pe GitHub sau alte servicii pentru găzduirea codului. Nu ezitați să puneți întrebări acolo.
A patra opțiune pentru obținerea de experiență este de a ajuta programatorii familiari. Cereți-le să vă dea mici sarcini simple. Dacă ceva nu funcționează, întotdeauna vei avea pe cineva să se întoarcă. În același timp, veți participa la un proiect real.
Cea de-a doua cale - propriile lor proiecte, diverse hakatoni sau munca în coworking. Este greu să începi propriile proiecte, e mai bine să cauți cunoștințe sau prieteni.
De ce să alegeți Python
Să vorbim mai mult despre alegerea primului limbaj de programare. Prima limbă ar trebui să fie simplă și populară pe piață. Această limbă este Python. Vă sfătuiesc foarte mult să o alegeți ca primul dvs. limbaj de programare.
Codul din Python poate fi citit. Nici măcar nu trebuie să fii un programator care să înțeleagă în termeni generali ce se întâmplă în program. Din cauza sintaxei simple a Python, veți avea nevoie de mai puțin timp pentru a scrie un program decât, de exemplu, Java. O bază imensă de bibliotecă care vă va economisi multă putere, nervi și timp. Python este un limbaj de nivel înalt. Deci, nu trebuie să vă gândiți prea mult la celulele de memorie și la ce să plasați acolo. Python este o limbă de largă utilizare. Și este atât de simplu încât chiar și copiii o pot învăța.
În mod corect, merită menționat și alte limbi de programare. Java poate fi o alegere bună pentru un începător. Această limbă este mai populară decât Python, dar și mai complicată. Dar instrumentele de dezvoltare sunt mult mai bine elaborate. Comparați Eclipse și IDLE. După Java, va fi mai ușor să treceți la lucrul cu limbi de programare de nivel scăzut.
PHP este un alt limbaj foarte popular. Și, mi se pare, este chiar mai simplu decât Python. Este foarte ușor să găsești un mentor sau o soluție la o problemă pe forum. Toate pentru că în lume există un număr imens de programatori PHP de diferite nivele. În PHP, nu există nici un import normal, există multe modalități de a rezolva aceeași problemă. Și acest lucru complică antrenamentul. Și PHP este doar pentru web.
Este engleza importanta?
Ce trebuie să știți, cu excepția limbajului de programare
Toată lumea trebuie să învețe algoritmii. Încercați să treceți cursul pe Coursera sau găsiți o carte potrivită pentru dvs. pe algoritmi. În plus, trebuie să cunoașteți una dintre bazele de date, modele de programare, structuri de date. De asemenea, merită să fiți familiarizați cu registrele de coduri. Cel puțin una. Cunoașterea sistemelor de control al versiunilor este obligatorie. Alegeți Git, este cel mai popular. Trebuie să cunoașteți instrumentele cu care lucrați, sistemul de operare și mediul de dezvoltare. Iar abilitatea principală a programatorului este să fie capabilă să găzduiască Google. Fără asta nu vei trăi.
Pași recenți
Și apoi veniți la munca mea pentru a aranja o astfel de programatori durere care nu știu ce este un hash și ceea ce este o etichetă, dar care știu perfect despre hashtag
În ceea ce privește IDLE - multe manuale sunt sfătuiți să-l folosească, dar cei de la JetBrains oferă IDE excelent - PyCharm Edition educaționale, o interfață de frumos, discret obisnuind novice coder la mass-media, cum ar fi VisualStudio. Succesul oricui studiază Python este un început bun pentru a învăța programarea și nu asculta persoanele care încearcă să transfere la adevărate-C și alte limbi. Limbajul nu contează, este doar un instrument. Dar ceea ce îmi place în Python - datorită sintaxa multor profesori pe Coursera populare și EDX au timp în cursul lor să-și petreacă mai multe algoritmi de timp, activități distractive și aplicații practice, care vă permite să nu-și piardă interesul în programarea complexității dezvoltării sintaxei. De la mine Vreau să adaug o programare curs pentru toată lumea de pe Coursera, cursul este un carismatic Charles Severance, care într-un mod ușor de a face cunoștință nu numai cu Python, dar cu principalele modele de programare. Mulțumită lui, am reușit în cele din urmă să stăpânească astfel de concepte de bază ca "ciclu", "funcții", "matrice de date", iar mai târziu, când le-am confruntat, aș putea să-mi amintesc deja un exemplu practic. Care este cel mai bun mod de a ajuta la învățare? Căutați cu succes sarcini care pot fi simplificate prin programare. Asta este ceea ce își propune să fie un programator - un profesionist care este un algoritm pentru rezolvarea acestei probleme, în caz contrar părtinire merge în direcția codificator - este, de asemenea, o abilitate importantă, dar nu la fel de mult în cerere ca un programator, care dă direcția codorului, și care este adecvat în temeiul codul algoritmului (corect, vă rog, dacă mă înșel). Experiență personală - a scris un program de consolă pentru un prieten care se pregătea pentru examen în limba engleză și la ajutat să se ocupe de el însuși, alegând o întrebare aleatorie. În timp ce m-am gândit cum să rezolv această problemă pentru el - tot ce a fost dat de piese separate a fost combinat într-unul și a ajutat la aplicarea aproape a întregului material teoretic în practică. Sper că elevii vor inspira această metodă și poate vă poate ajuta prietenii să-și automatizeze activitatea;) Cine poate să-și spună materialele bune despre algoritmi în Python? Aș fi recunoscător :)
Da, cunoștințe și competențe relevante pentru toate profesiile, există doar o diferență este că, pentru toate inginerie sale, de programare este o profesie destul de creativ, în cazul în care, în plus față de cunoștințele simplu nevoie de creativitate, inventivitate si ingeniozitate. Și pentru a deveni un programator, este bine să aibă calitățile înnăscute adecvate: inteligență, gândire logică, curiozitate și un cursant rapid, de învățare nouă va avea viață. Desigur, toate acestea nu se aplică în cazul formoshlepstvu web obișnuite sau „programare în HTML“ (c) - orice student aici, în vigoare, problema este că acești studenți se văd ca programatori.
Mă întreb mereu unde există în lume numeroase codificatoare de rahat. Dar se pare unde, a scris un idiot, ceilalți au luat-o. Cod de citit în Python. Și în șine sau în 1C, se pare că nu poate fi citit deloc. Sfaturile ar trebui să sune așa: 1. Primul lucru de care trebuie să începeți este să vă familiarizați cu zona. Vedeți locurile de muncă, consultați comenzile, vedeți tehnologiile existente și ce sarcini pot fi abordate cu ajutorul lor. Care sunt argumentele pro și contra? Înțelegeți că există limbi de diferite nivele, există cadre diferite, etc. 2. În al doilea rând, acesta este studiul algoritmilor de bază, al logicii, al elementelor de bază ale matematicii superioare, că în capul meu totul se află pe rafturi. 3. Să studieze conceptele de programare structurată, să citească corect, ca incorect și de ce este așa. 4. Selectați o tehnologie arbitrară, cel puțin pascal și implementați algoritmii logici de bază pe ea. 5. Să vă gândiți la mai multe sarcini pe care ați vrea să le faceți personal sau la cele care vă vor ajuta în viață și veți începe să le implementați în ordinea crescândă a complexității. 6. Amintiți-vă odată pentru totdeauna că limba de programare nu este importantă! Cunoscând algoritmii și elementele de bază, puteți învăța orice limbă prin ajutor, forumuri etc. De fapt, trebuie doar să înveți sintaxa. 7. Treceți de la limbi de nivel înalt la nivel scăzut. De exemplu, ați decis să faceți un serviciu web fără complicații. Luați Ruby on Rails (cadru Ruby) și faceți-o. Când sunteți confortabil în cadrul cadru, puteți merge la Ruby foarte. Sau în cazul lui Phyton, lanțul arată astfel: Django - Phyton. În cazul Java. Play - Java. Cu alte cuvinte, atâta timp cât vă lipsesc capacitățile cadrului, nu puteți merge mai departe. 7. Începeți să căutați proiecte, fără a vă supraestima puterea. Sau spuneți imediat că sunteți începător, dar sunteți dispuși să nu faceți prea scump. Pentru ca cineva să învețe. Ei bine, mai departe pe listă pentru a stăpâni noile tehnologii.
Mi se pare că mulți pur și simplu nu înțeleg problema programatorilor novici până la sfârșit. Ei nu se gândesc la astfel de întrebări ca, „am comandat aproape matrice și ceea ce este pentru mine pentru a sorta - QSort sau BubleSort“. Sau „Ar trebui să fie posibil să se atribuie un handler de buton personalizat Ce modelul meu de Gang de patru, cea mai bună potrivire aici?“. Cei mai mulți programatori novice este dificil de înțeles exact unde un punct și virgulă de ce x = x + 3 - un cod normal etc. Contra, precum și plusuri pot fi găsite în orice limbă modernă. JS este un limbaj foarte interesant, din cauza tiparului de rață, iartă foarte mult. Nu există nimic în obiect - adăugați-l acolo. Ai uitat un punct și virgulă? Nu contează, interpretul îl va adăuga. Și puteți programa oriunde aveți un browser. Cu toate acestea, se poate pune un porc, iar în locul cel mai neașteptat, și depanare ei devine un iad viu. PHP - limbaj destul de popular cu o comunitate mare, dar există atât de multe contradicții interne și lipsă de logică. Există o mulțime de articole pe Internet pe această temă. Și puteți scrie numai scripturi de server. C ++ - Nu voi spune nimic. Dacă nu știi ce „violare de acces“ sau „scurgere de memorie“ - și trăiască în lumea lui fericit puțin! Serios, nu. C # este destul de la modă și populară. Limba foarte convenabilă pentru dezvoltare. Cu toate acestea, în ciuda disponibilității Mono, mi-ar lua încă limbi, ascutiti sub Windows. Java este un limbaj foarte popular. O comunitate uriașă, o mulțime de componente. Cu toate acestea, mediul său de dezvoltare pierde în continuare la Visual Studio. Python - despre aceleași observații ca despre Java + dificultate cu trecerea 2.7-3, pentru care majoritatea bibliotecilor și rămâne la versiunea 2.7. Deci, ce să învățați? Daca nu se tem de programare este, în principal pentru Windows - C #, în opinia mea, este alegerea potrivită. Versiunea comunitară a Visual Studio vă va salva o mulțime de timp - depanare ușor, sfaturi comenzi inteligente (IntelliScence), un număr foarte mare de componente și modalitate ușoară de a le livra - NuGet - pe scurt, într-adevăr merită.
Băieți, salut! Ajuta un ceainic incepator :) a absolvit direcția CAD University vine de la un gând naiv că voi deveni un programator, în loc de învățat util numai Visual C ++, dar nu vreau să-l dezvolte. Și orice altceva este foarte mega superficial. După Universitatea am lucrat ca tester pe web. Vreau să merg acolo, doar obosit de a verifica greșelile altora, vreau să fac propriile lor. HTML, CSS într-un sens foarte larg studiat prin diferite resurse, este acum de auto-studiu de JS. O mulțime de informații, toate de la diferite resurse (dar diferite persoane se vedea și se referă la diferite limbi și prezentate, respectiv) - obține terci în cap. Aș dori să obțin o imagine holistică. În general, pentru mine am ales PHP, JS, HTML + CSS, MySQL. Sfătuiește, plz cea mai bună modalitate de a structura de formare, cum să înceapă și cum să procedeze? Cine a folosit ce cărți, resurse, care merită să le studieze? Ce software utilizați atunci când lucrați și care au fost instrucțiunile dvs. pentru alegere? Vă mulțumim anticipat pentru răspuns! P.S. Dacă unele dintre întrebările stupide de sunet și amuzant, nu judeca strict: Kettle - au ceai :)
Vladimir, eu sunt energic prin educație! Programarea unui hobby. Și timp de 20 de ani am lucrat în industria IT (Sunt 40) din momentul în care a întors din armată, a început chiar și fără IT educație, ei bine, am luat-o ca să spunem între delom.V în prezent șef de automatizare interne care deține o într-unul dintre cele mai mari în Moscova. Ie Nu servesc vânzători, profesioniști IT. Și acesta este cel mai pretențios client. De ce sunt eu, bine, în primul rând, este auto-educație a condus la astfel de înălțimi, și faptului că universitatea nu oferă nimic, program de universități este întârziată timp de cel puțin 5 ani. Ramura IT și programarea nu diferă deloc de celelalte specialități. Unitățile până la 17 ani sunt mai încrezători decât doresc să facă în viață. ȘI IT Schnick sunt totul, mai ales după ce a văzut locuri de muncă, Zuckerberg și altele de care ilk. De aici răspunsul evident, trebuie să faceți ceea ce sufletul este pentru. Și dacă (conform articolului) Munca omului prodalzhay de nicăieri, și el nu a devenit un programator, atunci el nu a ajutat. Nu vorbesc despre excepții de la 1 la mai multe milioane de mentalitate care algoritmică nu a fost cazul, iar oamenii pur și simplu nu știu ce este în mintea lui și modul în care se aplică.