Ce trebuie să știe un programator pentru a începe să câștige bani. Învățați programarea de la zero: de unde să începeți să învățați acasă

Ar trebui să vă începeți calea către o carieră ca programator răspunzând la întrebarea, aveți nevoie de programare? Această întrebare nu se aplică celor care studiază sau au studiat într-o specialitate apropiată de programare. Dacă ai fost mai bun la matematică la școală decât la științe umaniste, dacă îți place să petreci mult timp pe computer, dacă vrei să înveți ceva nou, atunci programarea este pentru tine.

Unde sa încep

Există mai multe opțiuni pentru dezvoltarea evenimentelor, în urma cărora o persoană devine programator. Primul este părinții-programatori care și-au învățat copiii totul. Acești copii nici nu au nevoie să meargă la universitate. A doua opțiune este profesia la modă de programator. După școală, a trebuit să alegem unde să mergem să studiem și am ales domeniul la modă al IT-ului, care părea că ne place. Și ultima opțiune este un hobby care s-a transformat în muncă.

Dacă nu ți s-a întâmplat nimic din cele de mai sus, atunci ai de ales dintre patru opțiuni:

  • Autoeducatie. Această opțiune poate fi utilizată fie independent, fie în combinație cu alte metode. Internetul este plin de aplicații care te ajută să înveți diverse limbaje și tehnologii de programare. Dar aceasta este calea cea mai dificilă pentru începători.
  • Universitate. Dacă termini școala și vrei să fii programator, mergi la universitate. Dacă nu pentru cunoaștere, atunci pentru crustă. Poate servi drept bonus atunci când aplici pentru un loc de muncă. Deși vei dobândi și unele cunoștințe. Dar nu uitați să vă educați. 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 bine dacă găsești o persoană care acceptă să te ajute și să te îndrepte în direcția corectă. El vă va sugera cărți și resurse adecvate, vă va verifica codul și vă va oferi sfaturi utile. Apropo, am scris deja despre unde puteți găsi un mentor. Puteți căuta un mentor printre programatorii familiari, la petreceri și conferințe IT, pe forumuri online și așa mai departe.
  • Cursuri practice de specialitate. Încercați să căutați cursuri în orașul dvs. care să vă învețe un limbaj sau tehnologie de programare. Am fost plăcut surprins de numărul de astfel de cursuri la Kiev, inclusiv cele gratuite și cu angajare ulterioară.

Ce limbă, tehnologie și direcție să alegi

Când devii programator, după un an sau doi vei fi liber să alegi orice limbă îți place. Dar atunci când alege un prim limbaj de programare, un începător ar trebui să ia în considerare următoarele criterii:

  • Disponibilitatea posturilor vacante pe piata. Scopul final al acestei căi este de a găsi un loc de muncă ca programator. Și acest lucru va fi dificil de făcut dacă nimeni nu caută dezvoltatori în limbajul tău de programare pe piața muncii. Verificați site-urile de locuri de muncă, vedeți cine este cel mai căutat, scrieți o duzină de limbi. Și treceți la următorul criteriu.
  • Nivel de intrare scăzut. Dacă trebuie să petreceți mult timp învățând o limbă, vă poate descuraja deloc să programați. Citiți despre limbile pe care le-ați selectat mai sus. Revizuiți literatura pe care va trebui să o citiți pentru a învăța aceste limbi. Și alege-le pe cele descrise ca fiind ușoare sau care ți s-au părut ușor. Astfel de limbi pot fi PHP, Ruby, Python.
  • Fiorul procesului. Dacă nu vă place să scrieți cod în limba aleasă, nu vă veți bucura de procesul, munca sau viața. Ai nevoie de el? Faceți alegerile corecte.

De asemenea, va trebui să decideți asupra direcției de programare. Mobil, desktop, jocuri, web, programare de nivel scăzut și așa mai departe. Cele mai populare și relativ ușoare industrii sunt dezvoltarea pentru clienții web, mobil și desktop. O limbă poate fi potrivită pentru fiecare direcție și nu alta deloc. Adică, atunci când alegeți un limbaj de programare, merită să plecați și de la acest factor.

Oricum, învață tehnologii web. Acesta este un limbaj de marcare, stiluri și care vă vor face pagina dinamică. Următorul pas este să înveți un limbaj pe partea de server (Python, PHP, Ruby și altele) și cadre web potrivite pentru acesta. Studiați bazele de date: aproape fiecare post vacant de programator menționează acest lucru.

Cum să obțineți experiența inițială

Fără experiență nu vei obține un loc de muncă. Fără muncă nu vei obține experiență. Un cerc vicios al vieții reale. Dar e în regulă, vom ieși din asta.

În primul rând, nu așteptați până când citiți fiecare carte din limbajul de programare ales. Începeți să scrieți primele rânduri de cod după al doilea capitol al cărții. Completați toate sarcinile din cărți, reintroduceți exemplele, înțelegeți-le. Complicați exemplele și sarcinile din cărți cu propriile idei. Creați-vă propriile sarcini pentru materialul pe care l-ați acoperit. Rezolvați aceste probleme.

În al doilea rând, trebuie să găsești primele proiecte. Aceasta este probabil cea mai dificilă opțiune, dar funcționează. Va trebui să căutați singur comenzile, să le îndepliniți și să vă deranjați cu plata. Pentru un începător, acest lucru este extrem de dificil, dar apoi toate celelalte opțiuni vor părea o bucată de tort. Proiectele finalizate pot fi înregistrate ca experiență și prezentate viitorului dvs. angajator. Proiectele reale sunt un mare plus pe CV-ul tău.

Dacă știți engleza, este mai bine să vă înregistrați la schimburile în limba engleză. Piața este mai mare acolo. Dacă nu știi engleza, învață-o. Între timp, sunt disponibile schimburi de liber profesioniști în limba rusă. Căutați proiecte mici care sunt la nivelul sau chiar peste nivelul dvs. de calificare. Aplicați pentru câteva zeci dintre aceste locuri de muncă. Și pregătiți-vă să primiți o mare de refuzuri. Dar dacă una sau două aplicații apar, vei avea șansa de a câștiga experiență reală.

O altă opțiune bună pentru a obține experiență reală este open source. Astfel de proiecte au întotdeauna nevoie de oameni noi, chiar și de începători. Puteți căuta erori în proiect sau puteți căuta în instrumentul de urmărire a erorilor și puteți sugera metode de rezolvare a acestora. Puteți găsi cu ușurință astfel de proiecte pe GitHub sau . Simțiți-vă liber să puneți întrebări acolo.

A patra opțiune pentru a câștiga experiență este să ajuți colegii programatori. Cereți-le să vă predea sarcini mici și simple. Dacă ceva nu merge, vei avea întotdeauna la cine să apelezi. Și, în același timp, vei participa la un proiect real.

Ultimul mod este propriile proiecte, diverse hackathon-uri sau lucrul într-un spațiu de coworking. Este dificil să-ți începi propriile proiecte pe cont propriu; este mai bine să cauți cunoștințe sau prieteni.

De ce să alegeți Python

Să mai vorbim puțin despre alegerea primului limbaj de programare. Prima limbă ar trebui să fie simplă și populară pe piață. Un astfel de limbaj este Piton. Vă recomand cu căldură să îl alegeți ca prim limbaj de programare.

Codul programului Python este lizibil. Nici măcar nu trebuie să fii programator pentru a obține o înțelegere de bază a ceea ce se întâmplă într-un program. Datorită sintaxei necomplicate a lui Python, îți va lua mai puțin timp pentru a scrie un program decât, de exemplu, în Java. O bază de date uriașă de biblioteci care vă va economisi mult efort, nervi și timp. Python este un limbaj de nivel înalt. Aceasta înseamnă că nu trebuie să vă gândiți prea mult la celulele de memorie și la ce să puneți acolo. Python este un limbaj de uz general. Și este atât de simplu încât chiar și copiii îl pot învăța.

Pentru dreptate, merită menționat alte limbaje de programare. Java ar putea fi o alegere bună pentru un începător. Acest limbaj este mai popular decât Python, dar și puțin mai complex. Dar instrumentele de dezvoltare sunt mult mai bine dezvoltate. Trebuie doar să compari Eclipse și IDLE. După Java, vă va fi mai ușor să treceți la lucrul cu limbaje de programare de nivel scăzut.

PHP- o altă limbă foarte populară. Și cred că 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. Acest lucru se datorează faptului că există un număr mare de programatori PHP de diferite niveluri în lume. Nu există un import normal în PHP; există multe opțiuni pentru a rezolva aceeași problemă. Și asta complică învățarea. Și PHP este conceput exclusiv pentru web.

Limbi CȘi C# foarte greu pentru un incepator. Rubin- o alegere bună ca a doua limbă, dar nu prima. JavaScript- un limbaj foarte simplu, dar care nu te va învăța nimic bun. Dar sarcina primului limbaj de programare este încă să te învețe ceva corect, să stabilești un fel de logică.

Este engleza importanta?

Important! Nu stiu? A preda. Știi? Îmbunătăţi. Învață să citești, să scrii, să asculți și să vorbești engleză. Concentrați-vă pe literatura tehnică. Ascultați podcasturi în limba engleză. Citiți manuale de programare în limba engleză.

Ce trebuie să știți în afară de limbajul de programare

Desigur, pe lângă limbajul de programare și limba engleză, trebuie să știi și altceva. Dar ce depinde de direcția pe care o alegi. Un programator web trebuie să cunoască HTML, CSS, JavaScript. Un programator desktop predă API-urile sistemului de operare și diverse cadre. Un dezvoltator de aplicații mobile învață cadre Android, iOS sau Windows Phone.

Toată lumea trebuie să învețe algoritmi. Încercați să urmați un curs despre Coursera sau să găsiți o carte despre algoritmi care vi se potrivește. În plus, trebuie să cunoașteți una dintre bazele de date, modelele de programare și structurile de date. De asemenea, merită să verificați depozitele de cod. Măcar cu unul. Este necesară cunoașterea sistemelor de control al versiunilor. 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 principala abilitate a unui programator este să poată folosi Google. Nu vei trăi fără asta.

Ultimii pași

Trebuie să pregătiți un CV. Nu doar un CV, ci un . Nu ar trebui să scrii acolo, dar nici nu trebuie să taci în legătură cu abilitățile tale. Odată ce sunteți invitat la un interviu, trebuie să vă pregătiți pentru el. Parcurgeți materialul care este listat în CV-ul dvs. Trebuie să ai încredere în cunoștințele tale. Priviți proiectele la care ați lucrat, gândiți-vă la tehnologiile pe care le-ați folosit. Și înainte - către un viitor luminos cu o nouă profesie de programator.

Poate dintr-un motiv oarecare ai vrut brusc să devii programator. Vestea bună este că, odată ce ați înțeles sistemul, puteți învăța cum să reușiți la interviuri și să supraviețuiți primelor luni la serviciu.

Vestea proastă este că încă nu există nicio scăpare de la ABC-ul programării și, pentru a te simți confortabil în noua ta poziție, va trebui să termini urgent de învățat tot ceea ce ar trebui să știi deja ca dosul mâinii.

Desigur, articolul se va concentra exclusiv pe experiența mea personală, care mi-a permis să trec interviuri chiar și la astfel de companii de top precum Luxoft.

Cum am devenit programator

M-am familiarizat pentru prima dată cu un computer la vârsta de 6 ani. La 13 ani aveam deja propriul meu site personal. Am mers prost la școală și la universitate. În al doilea an, prietenul meu și-a găsit un loc de muncă ca programator Java și mi-a recomandat cu fermitate să fac același lucru. M-a intrigat ideea. Era nevoie de un plan.

Primul pas - relua

Prima și principala problemă cu care se confruntă începătorii este CV-ul lor. Fără un CV adecvat, captivant, nu vei fi invitat la interviuri. Dar cum rămâne cu cei care nu au deloc experiență de muncă? Pentru a nu merge la HR cu mâinile goale, eu și prietenul meu am scris în CV-ul meu un an întreg de experiență de lucru la proiectul lui, la care se presupune că am lucrat împreună.

Politica salariala

Următorul punct important din CV după tehnologiile la cerere și limba engleză a fost salariul dorit. Fără să ne gândim de două ori, eu și prietenul meu am decis să jucăm mare și am scris o sumă exorbitantă de o mie de dolari la acel moment, care trebuia să elimine „companiile necinstite”.

Rușine și rușine

Primele interviuri au fost un eșec. Au râs literalmente de mine. La primul interviu tehnic, în care mi s-au dat câteva probleme pe hârtie, m-am dat seama în cel mai scurt timp. Cineva a dat chiar o recomandare părintească pentru cartea Thinking in Java.

Primul loc de muncă

La final, am fost invitat la un interviu la o sucursală a unei companii daneze, unde am răspuns la întrebări fundamentale și i-am surprins plăcut pe toată lumea cu engleza mea. Am fost angajat ca dezvoltator Junior Java cu o condiție - în primele trei luni să urmez cursul SCJP (Sun Certified Java Programmer), care să-mi umple golurile și să mă facă un specialist mai pregătit. Ce poate fi mai bun decât un stagiu plătit fără a fi nevoit să lucrezi ( să-ți trădezi incompetența)? Am lucrat în această companie timp de șase luni, pentru ca după câteva luni să pot promova într-o companie mai mare.

Pe baza experienței mele amare, dar încă neprețuite, voi oferi o listă de recomandări care îi vor ajuta pe colegii aventurieri să-și găsească relativ repede un loc de muncă ca programator.

  1. Rezumat. Trebuie să fie formatat corespunzător și scris exclusiv în limba engleză. Dacă nu ai suficientă experiență, atunci poți (și ar trebui) să o inventezi, dar ar trebui să te pregătești să fii responsabil pentru fiecare cuvânt scris în CV-ul tău. De exemplu, dacă aveți JMS (Java Message Service) scris acolo, atunci cel puțin ar trebui să parcurgeți cel puțin un tutorial și să vă jucați cu JMS, să faceți câteva exemple, chiar dacă este un banal „Bună ziua, lume!” Acum va fi mai convenabil să te arăți, chiar ai „lucrat cu JMS”.
  • Învață ABC-urile programării. Dacă încă vă puteți permite să „înoți” la nivelurile profunde ale unor tehnologii complexe precum Struts și Spring, atunci răspunsurile incorecte la întrebările de bază nu vor fi niciodată iertate. Dacă te trezesc noaptea, ar trebui să poți vorbi despre POO, moștenire, încapsulare, polimorfism și alte concepte de bază și, de asemenea, să poți explica totul cu exemple.
  • Practică. Puteți învăța să programați doar prin programare. Acest lucru este dureros și neplăcut (dacă nu sunteți programator), dar nu există altă cale. Singura modalitate de a nu-ți mai fi frică de problemele cu interviul este să le rezolvi tu acasă.
  • Citiți cărți și luați tutoriale despre Java doar in engleza Absolut toți termenii de programare sunt mai ușor de înțeles în limba originală, adică în engleză. A citi literatură tehnică despre Java în limba rusă înseamnă a te lipsi de respect. De ce? Pentru că pentru a înțelege ceva de genul „...modulul tabelului este în multe privințe o opțiune intermediară, un compromis între scriptul tranzacției și modelul de domeniu”, trebuie să fii cu adevărat un geniu, ceea ce este puțin probabil să fii.
  • In sfarsit invata engleza!În primul rând, este vorba despre limba engleză vorbită. Este greu de numărat numărul imens de programatori inteligenți care, în memoria mea, au fost respinși dintr-un singur motiv - un nivel nesatisfăcător de limba engleză vorbită. Nu, dacă, desigur, vei lucra ca programator undeva într-o companie autohtonă, atunci nivelul tău de limbă nu va juca un rol important. Dar dacă vrei să obții un loc de muncă într-o companie internațională, atunci Dumnezeu însuși ți-a ordonat să înveți limba. Nivelul tău de engleză se va traduce în sute de dolari în plus în creșteri salariale.
  • Cunoașteți piața. Căutați în jur posturi vacante, citiți cerințele, întrebați-vă prietenii programatori cât câștigă. Utilizați servicii care vă vor permite să obțineți o imagine mai completă a pieței IT. Ai fi surprins să știi cât de mare este numărul de programatori talentați care câștigă jumătate din cât ar putea, pur și simplu din cauza lenei și nedorinței lor de a ține nasul la vânt.
  • Afacere. Nu este nimic în neregulă să-ți tocmești salariul. Argumentul tău într-o dispută poate fi fie engleză bună, fie o ofertă de muncă într-o altă companie. Ultimul argument funcționează deosebit de bine: „Da, dar Luxoft îmi oferă 300 de dolari în plus, de ce să fiu de acord cu termenii tăi? Poate am putea găsi un compromis?” La un moment dat, am reușit să negociez o sută de dolari în plus la salariul meu de câteva ori, iar după un an, această sută de dolari mi-a oferit din senin un venit suplimentar de 1.800 de dolari. Trebuie să înțelegeți că, chiar și pentru companiile IT străine mici, o sută de dolari în plus este ca o picătură în ocean.
  • Găsește-te un mentor. Este bine dacă ai un prieten mai experimentat care te poate ajuta cu sfaturi și poate răspunde chiar și la cele mai stupide întrebări. Datorită experienței și sprijinului său moral, vei progresa în programare mai repede decât pe cont propriu. Dacă nu aveți un mentor, atunci este o idee bună să urmați niște cursuri de programare care nu numai că vă vor oferi o imagine mai completă a ceea ce face un programator, dar vă vor permite și să întâlniți oameni mai experimentați. Cine știe, poate unul dintre ei va dori să devină mentorul tău.
  • Începeți-vă proiectul. Chiar dacă este un exemplu de cele mai proaste practici de codare și nu îl termini niciodată, măcar vei avea ceva de făcut care te va face să vrei să înțelegi programarea și să înveți noi tehnologii. În plus, veți avea un subiect suplimentar pentru conversații intime în timpul interviurilor.
  • Caută-ți un loc de muncă vara.În primul rând, atunci când toată lumea este în vacanță, companiile au mai multe șanse să aibă personal scurt și sunt mai probabil să fie chemate la un interviu. În al doilea rând, deoarece concurenții-solicitanți sunt și ei în vacanță, șansele tale de a fi remarcat de HR cresc din nou.
  • Nu cedati niciodata. Chiar dacă simți că nu reușești la interviu, este important să perseverezi și să încerci în continuare să rezolvi problema, oricât de dificilă ar părea. Cine știe, poate chiar în acest moment ești testat pentru diligență în munca ta!
  • Evitați sarcinile pe computer. Nu există nicio modalitate de a vedea printr-un neprofesionist mai repede decât să-l arunci imediat în căldura de programare. Sarcina ta este să încerci să duci toate conversațiile la un nivel înalt, unde abordările și conceptele generale sunt discutate, dar nu implementarea specifică în rezolvarea unei anumite probleme. Dacă vi se oferă hârtie și stilou și vi se cere să notați soluția, atunci cereți posibilitatea de a o desena schematic. Astfel, îndepărtându-vă de sintaxa unui anumit limbaj, nu numai că vă veți salva de unele erori enervante, ci veți și arăta că sunteți capabil să gândiți abstract fără a intra în atât de multe detalii.
  • Fii primul care vorbește. Evitați situațiile în care există o pauză în aer, în timpul căreia o altă întrebare insidioasă ar putea să se afle în mintea intervievatorului. De îndată ce există vreo problemă, începe să spui ceva pe care îl știi bine. Încercați să vă impuneți jocul intervievatorului.
  • Încearcă să spui adevărul. Dacă nu ați scris niciodată proceduri PL/SQL, atunci este mai bine să spuneți acest lucru direct. Acest lucru poate fi un dezavantaj pentru tine, dar te vei scuti de a fi nevoit să ieși din drumul tău răspunzând la o întrebare despre care nu înțelegi nimic. Un intervievator cu experiență va simți lipsa cunoștințelor tale la o milă distanță.
  • Atenție la companiile mici. Companiile mici tind să aibă echipe mici. Cu cât sunt mai puțini oameni în echipă, cu atât te vor da seama mai repede. Scopul tău este o corporație mare și neîndemânatică, în care să-ți faci ceva timp.
  • Urmați codul vestimentar. Dacă te prezinți la un interviu pentru o poziție de programator într-un costum inteligent, va trezi mai multe suspiciuni decât dacă ai apărea în pantaloni scurți sau un pulover răi. De asemenea, ar fi o idee bună să vă puneți ochelari, spunând: „Sunt așa un râme de carte”.
  • Desigur, cineva care știe ar putea sublinia că rețeta de mai sus este mai mult o modalitate de a deveni un programator decât un programator și ar fi chiar undeva. Cu toate acestea, lucrul este că nu veți găsi niciodată un post vacant cu titlul „Se caută codificator rău”. Toată lumea are nevoie de programatori. Preferabil senior. Cei care au mai mult de cinci ani de experiență de lucru pe proiecte corporative și care sunt la fel de fluenți în mai multe limbaje de programare, în același timp au o înțelegere aprofundată a DBMS, pot scrie scripturi bash, proceduri stocate, vorbesc fluent Linux, TCP/IP , au calități de lider și rezistență la stres, abilități de comunicare și o serie de alte abilități, „fără de care este imposibil”.

    Astfel de oameni există, eu însumi i-am văzut. Dar sunt prea puține dintre ele pentru a acoperi pe deplin nevoile pieței mereu înfometate de specialiști IT. Și asta înseamnă că ai mereu o șansă, așa de aventurier ești.

Aproape în fiecare zi, în timp ce suntem la computer sau laptop, folosim diverse evoluții în domeniul IT. Când lansăm programul, îi vedem interfața frumoasă și partea logică bine gândită; pe Internet vedem multe site-uri interesante cu diverse completări la ele sau folosim utilități pentru gadget-uri moderne care ne permit să extindem capacitățile noastre. dispozitiv. Și mulți, din copilărie sau de la vârsta adultă, au interes să știe cum funcționează totul din interior. Și pentru mulți, aceasta devine o motivație serioasă pentru alegerea unei viitoare profesii.

Într-adevăr, astăzi cererea pentru serviciile programatorilor din diverse spectre este atât de mare încât este cu mult înaintea altor profesii populare anterior. În acest articol vom încerca să vorbim destul de popular despre ce fel de programatori există, ce abilități trebuie să aibă pentru a fi solicitați pe piață și cum să învețe programarea în domeniul ales.

Tipuri de programare

Deci, punându-ți întrebarea: „Cum să devii programator”, trebuie să decizi singur următoarele: ce vom dezvolta, exact? La urma urmei, nu există programatori universali; fiecare dintre ei lucrează în propria sa industrie și își face treaba lui.

De exemplu…

  1. Programatori web. Oameni care creează diverse site-uri web și pagini de vânzări. Datorită acestei categorii de dezvoltatori, în rețea apar multe resurse utile diferite, cu diverse informații utile sau distractive. Magazinele online, panourile de mesaje, rețelele sociale sunt opera acestei categorii de programatori.
  2. Dezvoltatori de sisteme de operare și aplicații fără referire la nicio platformă specifică. Acești oameni fac ceva fără de care nici un singur computer sau gadget din lume nu va funcționa. „Windows”, „Linux”, „Android” și alte sisteme se nasc datorită acestei categorii de cetățeni.
  3. Dezvoltarea și programarea sistemelor distribuite aplicate și SGBD. Un exemplu de acest tip de programare îl constituie toate informațiile afișate la plecarea și sosirea trenurilor în gară, precum și datele privind check-in-ul pentru un zbor la aeroport și disponibilitatea locurilor disponibile.
  4. Programarea cadrelor, dll-urilor, platformelor și nucleelor. Mai simplu spus, crearea de instrumente auxiliare pentru dezvoltarea ulterioară a diferitelor programe, software, jocuri etc.
  5. O altă direcție pentru dezvoltarea software-ului auxiliar este programarea sistemului. Programatorii din această industrie creează software legat de un anumit sistem de operare. Drivere pentru hardware de computer, jocuri, diverse compilatoare, nuclee de sistem de programare și multe altele și nu mai puțin interesante.
  6. Dacă toate cele de mai sus nu vă interesează, puteți merge cu capul înainte în domeniul programării științifice și puteți dezvolta inteligență artificială, sisteme de realitate virtuală într-o înțelegere mai profundă decât jocurile pe calculator; Dezvoltarea de interfețe și sisteme de automatizare pentru biologi, astronauți și oameni de știință vă va umple viața cu noi culori.

Fiecare dintre aceste zone este interesantă și solicitată în felul său, pe care să o alegi depinde de tine. Și alegerea de a studia fiecare dintre aceste domenii oferă, de asemenea, opțiuni diferite. Fie te înscrii la o universitate, fie te înscrii la cursuri de programare, fie studiezi pe cont propriu, obținând informații de pe internet.

Cum să devii programator. Unde sa încep?

Niciodată nu este prea târziu pentru a începe. După cum am menționat mai sus, astăzi există destul de multe moduri de a învăța programarea; este important doar să alegeți o direcție și să începeți să o studiați. Dar vorbind despre autoformare, acest tip nu este potrivit pentru fiecare domeniu de activitate. Să presupunem că auto-studiul vă va ajuta să deveniți un dezvoltator de site-uri web sau să obțineți cunoștințe superficiale în alte domenii. Una dintre cele mai profitabile decizii este să vă înscrieți cel puțin la cursuri, datorită cărora veți avea o înțelegere mai completă a logicii funcționării diferitelor sisteme și aplicații, să învățați limbajul de programare de care aveți nevoie (de exemplu, C++, Java, Perl, Core, etc.) și va fi capabil să-l aplice în practică și, de asemenea, să dobândească cunoștințe în matematică discretă.

Aflați diverse tabele, conceptele de interogare a acestora și algoritmul pentru executarea lor. Excel, MySQL, Paradox sunt exemple bune.

Programare web

Ce este programarea web? În general, asta este tot ce vedem în browserele noastre. Toate site-urile, toate aplicațiile pentru descărcarea ceva, modulele de plată pentru magazinele online, pluginurile care completează funcționalitatea site-ului, stocarea în cloud, formularele de comandă, sistemele de management al personalului care funcționează pe partea clientului și pe partea serverului - toate acestea sunt doar un mic parte a întregii industriei web.

În termeni științifici, programarea web reprezintă toate aplicațiile și componentele programului care sunt construite pe structura internetului global, iar accesul la acestea este asigurat numai cu ajutorul browserelor web. Mai mult, conectarea browserului la Internet nu este o condiție prealabilă, ci doar dacă aplicația trebuie deschisă local (în linii mari, de pe computerul pe care se află sau este în curs de dezvoltare). De exemplu, marcarea paginii HTML sau un server local (Denver) vă permite să lucrați cu aplicații fără o conexiune la rețea.

Toate documentele web funcționează pe baza unor tehnologii simple, cum ar fi:

  • HTTP - protocol de transfer hipertext;
  • HTML - limbaj de marcare hipertext;
  • PHP este unul dintre principalele limbaje de programare;
  • SMTP - server de mail pentru schimbul de mesaje text intre alte servere si clienti, inclusiv programe de birou de la Microsoft;
  • diverse protocoale IP;
  • FTP este un client pentru schimbul de date între un server local și hosting.

Pentru a avea o înțelegere inițială a programării web, puteți deschide marcajul HTML al site-ului făcând clic dreapta pe pagină. Și veți vedea marcajul hipertext cu stiluri conectate la acesta. Încercați să examinați elementele site-ului uitându-vă la codul sursă și la aspectul site-ului. Pentru un studiu mai aprofundat, explorați sursele mai multor site-uri pe diverse subiecte, adică orice rețea socială, stocare în cloud și site de e-mail. În unele privințe, acestea vor fi similare la prima vedere, dar după un studiu suplimentar, veți vedea că fiecare dintre componentele site-ului își îndeplinește propria sarcină specifică și, în general, logica de funcționare diferă de site-ul anterior.

Înainte de a deveni programator web, urmați acești pași:

  • Învață cel puțin un program de lucru cu imagini și grafică (Photoshop va fi suficient). Pentru ca in procesul de proiectare a proiectului va trebui sa procesezi si sa optimizezi greutatea pozelor pentru o prezentare cat mai avantajoasa a acestora, plus crearea unor imagini proprii, logo-uri si infografice suplimentare.

  • Studiați algoritmul de creare a site-ului web. Ce instrumente și instrumente auxiliare sunt folosite pentru a le crea, ce este o hartă a site-ului și de ce este necesară, ce este navigarea și ce este o diagramă web.
  • Familiarizați-vă cu infrastructura de internet în detaliu. Dobândiți cunoștințe de bază și abilități inițiale în utilizarea protocoalelor web (HTTP, SSL, POP3, FTP) ale platformei pe care veți lucra pentru cea mai mare parte a activităților dvs., familiarizați-vă cu serverele de e-mail.
  • Înțelegeți cum funcționează principalele browsere (IE, Opera, Chrome, Mozilla).

  • În primul rând, învățați limbajul de marcare hipertext HTML și foaia de stil în cascadă CSS (acordați atenție pachetului WYSIWYG).
  • Este necesar să înțelegeți XSL și tehnologiile conexe.
  • Odată ce ai dobândit abilitățile de a lucra cu hipertextul, începe să-l pui în practică puțin câte puțin, complicând treptat sarcina.
  • Veți avea nevoie, de asemenea, de limbaje de scripting care să funcționeze atât pe partea client, cât și pe server (Java Script, JQuery). Nu acordați atenție VBScript, pe care tuturor le place să-l sfătuiască pe începători din cauza simplității sale; versiunile moderne ale tuturor browserelor nu îl pot vedea. Apropo, acordați o atenție deosebită acestor limbi. Cu ajutorul lor, sunt create toate efectele 3D moderne neobișnuite care funcționează pe site-uri web. Dar atenție, acest limbaj este destul de complex, așa că începeți cu ceva foarte simplu și, ca în alte cazuri, urmați treptat la proceduri mai complexe.
  • Aflați cum să implementați module terță parte pe un site web, de exemplu, un agregator de plăți într-un magazin online.

  • Învață logica site-ului web și limbajul de programare a aplicațiilor PHP. Cu ajutorul acestuia, vei putea crea proiecte mai complexe și mai profitabile.

Dezvoltare de programe pentru PC

Înainte de a începe să dezvoltați software, trebuie să vă dați seama în ce direcție va trebui să lucrați. Aceasta este în principal o activitate comercială, așa că va fi necesar să înțelegem cum funcționează afacerile în acest domeniu și principiile componentei sale financiare.

Înainte de a învăța programarea în sine, nu este ultimul lucru să înțelegeți elementele de bază ale circuitelor digitale și cunoștințele despre arhitectura computerelor.

Nu ezitați niciodată să luați nivelul de intrare, care este predat la orele de informatică de la școală. Da, ați ieșit din asta cu mult timp în urmă, dar este puțin probabil să vă amintiți toate acestea și, cu siguranță, după mulți ani (cu excepția cazului în care, desigur, a existat o practică adecvată) nu o veți putea aplica în practică. Începeți cu limbile elementare Stratch sau Basic. Această acțiune nu este atât obligatorie, cât este de dorit pentru a facilita procesul de învățare ulterioară. Îți amintești cum un mic păianjen alerga pe monitor în clasa ta după ce am scris algoritmul necesar de acțiuni în editor? Așa că amintește-ți asta încă o dată. Repetiția este mama învățării!

Următorul pas pe calea victoriei va fi stăpânirea paradigmelor de programare orientată pe obiecte, procedurale și funcționale. Pentru o înțelegere mai clară a acestor funcții, este, desigur, mai bine să urmați cursurile necesare. De asemenea, potrivit experților, studiul programării procedurale este unul dintre fundamentele fundamentale ale educației ulterioare.

Continuați-vă practica studiind sisteme avansate de modelare (UML, ORM).

După toate acestea, puteți încerca deja să scrieți aplicații de consolă și similare, folosind exemple metodologice și exerciții. Decideți ce instrumente de codare sunt cele mai potrivite pentru limba dvs.

Urmați cursuri avansate pentru limba cu care veți lucra. Pentru a înțelege cum să scrieți codul în limba dvs., trebuie să cunoașteți și să înțelegeți următoarele:

  • cum și prin mijloace clientul introduce și scoate datele;
  • fire logice și executabile în limbaj procedural și cum se întâmplă acest lucru;
  • modul în care variabilele sunt selectate, atribuite și comparate în toate etapele de acțiune;
  • cum sunt create și redate în buclă constructele cheie;
  • ce sintaxă este aleasă pentru procedurile de scriere și denumire;
  • tipurile de date existente și modul în care sunt prelucrate;
  • aplicarea tipurilor de date definite de utilizator;
  • o înțelegere aprofundată a funcțiilor de supraîncărcare acceptate de limba dvs.;
  • tehnici de analiză a memoriei;
  • să poată înțelege indicatorii de funcție.

Apoi, începeți să exersați în paradigmele orientate pe obiecte. Urmați cursuri introductive în programare în diferite paradigme. Sfatuiesc expertii sa cunoasca cel putin o limba in paradigme diferite. După ce ați acumulat suficientă experiență în acest moment, priviți separat paradigmele de programare logică și funcțională.

Știi deja două limbi? Minunat! Acum încearcă să le compari pentru a identifica avantajele și dezavantajele pentru tine, pentru a-l alege pe cel mai practic. De obicei se face asa...

  • Scriem un program într-una dintre limbi. Noi am verificat. Lucrări? O scriem la fel, dar într-o altă limbă. La urma urmei, ne uităm la ce limbaj a fost mai eficient în ceea ce privește viteza de scriere a codului și rezultatul obținut.
  • Începeți să scrieți cod nou, dar folosiți ambele limbi. Se poate întâmpla ca un algoritm să nu poată fi executat într-o singură limbă, apoi un al doilea va veni în ajutor.
  • Faceți un tabel rezumat și utilizați o foaie de cheat pentru a compara construcțiile ambelor limbi.
  • Încercați să repetați unul dintre blocurile programului folosind diferite limbi.

Acum învățăm cum să programăm vizual într-una dintre limbile alese de dvs. Aproape toate limbajele de programare au versiuni sau suplimente care permit programarea vizuală și pe consolă. Aici vă vor ajuta:

  • cursuri de programare pentru managementul evenimentelor, care stă la baza programării vizuale;
  • lucrează cu diverse programe de calculator. Pentru a înțelege funcționarea și a urmări modificările efectuate, este mai bine să utilizați diferite versiuni de programe;
  • citește materiale didactice de pe acest profil și urmărește videoclipuri de instruire.

Este o practică bună să creați diferite programe pentru computerul dvs. de acasă care îndeplinesc diferite funcții și acțiuni. Sau faceți-vă teza virtuală folosind tehnicile de programare vizuală pe care le-ați învățat.

Perfecționați-vă treptat abilitățile studiind bibliotecile și pachetele în detaliu, acordând din ce în ce mai multă atenție acelor lucruri pe care le considerați anterior nesemnificative sau neimportante la momentul respectiv. Învață diferite metode de utilizare a cadrelor. Găsiți și explorați alte pachete de componente vizuale pentru limba dvs.

Dacă intenționați să creați o interfață de utilizator frumoasă, urmați un curs de grafică. Doar nu confunda acest lucru cu designul grafic. Ești programator.

Ca urmare, vei începe să creezi programe și jocuri din ce în ce mai complexe și vei putea ajunge treptat la un nivel comercial.

Dezvoltarea și programarea sistemelor distribuite aplicate și SGBD

Acest tip de programare este unul dintre cele mai complexe tipuri; stăpânirea ei necesită cunoștințe excelente în domeniul dezvoltării informatice și informatice. De asemenea, pentru a-l studia, trebuie să urmați un curs de telefonie și echipamente aferente pentru cunoștințe mai extinse ale topologiilor de rețea.

În primul rând, acordați atenție mediului de rețea de acasă. Cum este conectat computerul la rețea? Aceasta poate fi o conexiune directă printr-o placă de rețea, modem, comutator sau router Wi-Fi. Ce protocol de rețea este folosit pentru conectare?

Aflați ce este Open System Interconnection (vă vom oferi un indiciu - este un format internațional pentru standardizarea schimbului de date între diferite dispozitive. Așa-numitul OSI). Apoi, familiarizați-vă cu termenii TCP, IP, Ethernet, LAN, WAN, UDP și continuați.

Aflați ce este XML, de ce este necesar, ce funcții îndeplinește, aflați cum să îl utilizați. Apropo, va fi util și pentru programatorii web.

Și ne-am dus să studiem un limbaj de programare distribuit. Dacă intenționați să scrieți cod în sistemul de operare Windows, orice limbă care acceptă WSH va funcționa. Sub Linux folosesc Perl și Bash.

Veți avea nevoie și de JavaScript pentru a funcționa. De ce? Există mai multe motive pentru aceasta.

  1. Este acceptat de toate gazdele de script ale tuturor sistemelor de operare. Windows acceptă pachete în mod implicit, iar modificările Linux au suplimente pentru a accepta JavaScript.
  2. Acest script este cel mai simplu dintre toate cele existente.
  3. Java se bazează pe sintaxa ALGOL, care vă va permite să studiați în continuare alte limbi și să alegeți o a doua limbă pentru a vă simplifica munca.
  4. Folosind JavaScript, puteți vedea mai îndeaproape programarea pe partea client a documentelor web.

Pentru a începe, utilizați un singur limbaj pentru a scrie cod, crescând treptat complexitatea sarcinii și folosind tehnici și paradigme din ce în ce mai complexe pe care le acceptă scriptul dvs. Notă: Majoritatea limbajelor de programare pentru scripturi acceptă diverse programare procedurală.

Încercați să creați un sistem de schimb de date folosind scriptul dvs. Scrieți un program pentru a interfața diverse dispozitive staționare și portabile cu diferite sisteme de operare și diferite configurații.

Treceți la limbaje de programare pentru computere desktop. Alegeți un limbaj care vă permite să lucrați cu diferite paradigme (de exemplu, Python), învățați-i elementele de bază. Recent, combinația de JavaScript + C# a fost populară. Potrivit acelorași experți, această combinație are următoarele avantaje.

  • Aceste limbi eliberează performanții care lucrează în echipe mari de nevoia de a implementa cod din limbi uneori dificil de compatibil. Combinația Java + C are blocuri de cod gata făcute, deja combinate, care vă permit să finalizați sarcinile atribuite în alte programe.
  • Aceștia acceptă metode de programare bazate pe evenimente, orientate pe obiecte și procedurale.
  • Supliment de cadru distribuit implicit.
  • Puteți utiliza pachete gata făcute de cod sursă deschis și cadre încorporate, ceea ce face posibilă utilizarea codului „boilerplate”.

Când vine vorba de mediul de rețea și configurația acestuia, acordați o atenție deosebită punctelor cheie ale limbajului. În acest caz, puteți „salva” pe interfețele utilizator, inclusiv intrarea/ieșirea datelor, designul vizual etc.

Un punct important va fi studiul arhitecturilor aplicate ale sistemelor de distribuție. Pentru această etapă, este suficient să citiți materialul relevant, să vizionați videoclipuri de antrenament sau să căutați ajutor de la camarazi mai experimentați.

Aflați cum să dezvoltați servicii și componente în limba dvs.

Începeți să practicați mai multe tehnologii. În general, vă recomandăm să cunoașteți 2-3 dintre ele destul de bine și să aveți o înțelegere cel puțin superficială a restului. Mulți dintre viitorii tăi concurenți nu se limitează la a cunoaște una sau două limbi. Cunoștințele lor sunt cel puțin o limbă pentru fiecare sistem de operare. Programatorii mai avansați au în arsenalul lor mai multe limbi pentru fiecare sistem de operare. Și, da, știu să le folosească, așa este!

DLL-uri, platforme și nuclee

Aceasta este o castă de programatori care au depășit deja programarea aplicațiilor și au trecut la un format de dezvoltare mai complex. Ei creează toate platformele, inclusiv web, și diverse biblioteci de sprijin. Cu siguranță, atunci când instalați software pe computer, ați observat instalarea unor aplicații precum Microsoft Visual C++ Redistributable, MS Framework și altele asemenea. Tocmai acești programatori sunt cei care dezvoltă aceste aplicații; ei sunt, de asemenea, implicați în programarea diferitelor sisteme CMS și de găzduire a site-urilor web.

De ce ai nevoie pentru a te alătura acestei categorii de dezvoltatori?


Veți obține un succes mai mare dacă învățați modurile de lucru ale colegilor mai experimentați. Acordați întotdeauna o atenție deosebită comentariilor de cod.

Programarea sistemului


  1. În primul rând, trebuie să înțelegeți clar ce include exact programarea sistemului. Programatorii de sistem se ocupă în primul rând nu de sarcini specifice, ci de domeniul științific al programării, așa că nu ar trebui să fii blocat de o anumită platformă.
  2. Ar fi indicat să urmați recomandările din primele trei puncte pentru programatorii de aplicații desktop.
  3. De asemenea, are sens să urmați cel puțin un curs de bază în algebră liniară.
  4. Cu siguranță merită să urmați un curs despre metode de calcul.

  5. În plus, urmați un curs de matematică și/sau logică discretă.
  6. Familiarizați-vă cu diferite sisteme de operare fără suplimente. O astfel de cunoștință se poate face în acest fel:
  7. Citiți literatură educațională care conține elementele de bază ale arhitecturii hardware a computerelor sau urmați un curs tematic adecvat.
  8. Analizați diferențele dintre diferitele platforme hardware.
  9. Aflați elementele de bază ale limbajului de asamblare al platformei hardware sau al sistemului de operare preferat. După ceva timp, va trebui să înveți limbajul de asamblare al altor sisteme și platforme.
  10. Urmați un curs pentru a învăța limbajele ANSI C și C++, împreună cu acesta, stăpâniți principiile de bază ale programării procedurale.
  11. Explorați bibliotecile de bază C și C++ și începeți să le utilizați pe platforma dorită. O atenție deosebită ar trebui acordată Bibliotecii de șabloane active (ATL) și Bibliotecii de șabloane standard (STL).
  12. Pentru a înțelege exact cum vor funcționa C și C++ pe platforma aleasă, ar trebui să apelați la surse de internet, literatură și cursuri tematice relevante pentru informațiile necesare.
  13. Începeți să creați cod de complexitate mai mare în C/C++.
  14. Cunoașteți nuanțele Assembly la un nivel mai complex.
  15. Urmează un curs de dezvoltare a sistemelor de operare.
  16. Găsiți și examinați documentația specifică platformei alese. Vă va fi mult mai ușor să utilizați un sistem de operare bazat pe Unix. Dar pentru aceasta trebuie să înțelegeți suficient de bine acest sistem.
  17. Începeți să utilizați cunoștințele pe care le-ați dobândit. Mai întâi, creați câteva utilitare de sistem mici. Pentru a face acest lucru, ar fi recomandabil să faceți următoarele:
  18. Învață limbi străine în cea mai logică ordine. Numai în acest caz va conta care limbaj de programare este primul tău. Pentru început, este recomandabil să stăpânești ANSI C, și nu C#, Java sau D. După aceea, poți porni C++. Un programator de sistem trebuie să aibă următoarele abilități:

Programare stiintifica


Programatorii devin solicitați și populari nu pentru că știu să scrie cod bun, ci pentru că au anumite cunoștințe, abilități suplimentare și unele trăsături de caracter. Există multe modalități de a atinge acest nivel de abilitate, de exemplu, puteți folosi următoarele.

  1. Nu vă fie teamă să cereți sfaturi de la colegii mai experimentați. Daca cautarea independenta a unei solutii la o problema nu aduce rezultatele asteptate si nu te poti muta mult timp din aceasta cauza, este indicat sa apelezi la ajutorul colegilor mai experimentati. Oportunitatea de a învăța de la colegii tăi nu poate fi supraestimată. Cel mai important lucru: formulați întrebarea cât mai clar posibil; se întâmplă adesea să conțină indiciu necesar.
  2. Apreciază-ți propria muncă. Nu ar trebui să tratați sarcina la îndemână ca pe o favoare sau o necesitate neplăcută, dar inevitabilă; nu va fi niciun beneficiu din aceasta. Abordați cu atenție designul codului, structurați-l, făcându-l ușor de înțeles și de citit nu numai pentru dvs., fără a uita să-l coordonați cu standardele acceptate în echipă sau companie. Curățați cu atenție rezultatul, corectând chiar și cele mai mici defecte, care nu sunt deosebit de vizibile. De exemplu, dacă în timpul lucrului interfața s-a deplasat cu câțiva pixeli la stânga dincolo de normă, fă-ți timp pentru a o readuce la locul potrivit. Asigurați-vă că efectuați o verificare completă a rezultatului final al lucrării. Drept urmare, eforturile dumneavoastră vor fi cu siguranță remarcate și apreciate.
  3. Dezvoltați-vă în mod constant. Pentru a deveni un specialist cu adevărat căutat în acest domeniu, va trebui să te dezvolți constant, să urmărești ultimele tehnologii inovatoare și să analizezi constant noile tendințe. Deoarece generația tânără se dezvoltă destul de repede și creează o concurență semnificativă, este necesar să-și perfecționeze constant propriile abilități pentru a stăpâni rapid și eficient tehnologia.
  4. Învață să-ți formulezi clar gândurile și să-ți transmiți corect ideile. Potrivit fondatorului Fog Greek Software, celebrul programator Joel Spolsky, principala diferență dintre programatorii relativ buni și cu adevărat remarcabili nu este numărul de limbaje de programare pe care le-au studiat sau pe care le preferă, ci capacitatea de a-i convinge pe alții și să-și comunice în mod competent propriile idei. Aceasta este principala lor abilitate. Programatorii de la acest nivel scriu comentarii și specificații tehnice ușor de înțeles, astfel încât codul pe care îl creează este suficient de clar pentru ca alți programatori să-l folosească și să îl dezvolte mai târziu fără prea multe dificultăți.

Acesta este cel mai pesimist răspuns la o întrebare pusă de un student în doi ani pe Quora.com și chiar se bazează pe o teză foarte inspirată - „Nu există limită pentru perfecțiune”.

Î: — Cum să devii un programator de clasă mondială în 3 ani?

R: — Și aceasta este o întrebare destul de interesantă, mai ales dacă ținești să fii un programator „de clasă mondială”, în loc să întrebi cum să devii un programator foarte bun.
Ce considerați în general a fi de clasă mondială? Si cum il masori?

Să luăm în considerare această situație: capacitatea de a rezolva probleme de neînțeles la scară mică nu te face un bun programator. Asta te face un programator inteligent, fără îndoială, dar nu înseamnă că poți rezolva o mare problemă pe care a creat-o altcineva.

În realitate, trebuie să ai o viziune foarte largă și să lucrezi cu sisteme care există deja și, oricât de complexe sunt acestea, trebuie să le înțelegi; nu ai contribuit cu o singură linie și deja trebuie să faci față cu mari dificultăți, sau cel puțin să le găsești.

Și cu cât rezolvi mai multe dintre aceste probleme, cu atât devii mai bun. Asta cred eu:

1. Programarea este rezolvarea de probleme.Înconjoară-te de probleme. Cu cât mai mare cu atât mai bine. Vor părea descurajanți la început, dar odată ce începeți să vă ocupați de ei, lucrurile vor începe să devină mai ușoare.

2. Înconjoară-te de oameni inteligenți – și nu neapărat programatori.În primul rând, vor folosi tehnici și soluții la care nu te-ai fi gândit niciodată, iar în al doilea rând, te vor forța să înveți și să te dezvolți. Când lucrezi singur, este ușor să pretinzi cu aroganță că ai toate răspunsurile.

3. Extindeți numărul de limbi utilizate: a spune „C++ sau Java este cel mai bun, îl voi folosi exclusiv” este destul de stupid; fiecare are propriile sale subtilități care pot fi folosite în avantajul tău, iar stăpânirea lor este foarte utilă.

4. Nu vă relaxați dacă ați găsit o soluție excelentă la o problemă. Fii sigur: ai o singură soluție din multe, așa că nu totul este atât de cool. Fiți deschis la noi metode și idei.

5. Lucrați în echipă. Este ca punctul 2, doar puțin diferit: fiecare programator are un punct de vedere unic care vă ajută să vă extindeți al dvs.

R: Permiteți altor persoane să caute codul dvs.?Încercați să utilizați servicii precum StackExcange: este gratuit și oamenii oferă o mulțime de sfaturi utile despre cum să vă îmbunătățiți codul. Am început să fac progrese semnificative în programare după ce am început să arăt codul meu altor oameni.

Un profesor MIT a spus: „Lucrează în fiecare zi timp de doi ani și vei fi un programator grozav. Lucrează în fiecare zi timp de doi ani și învață cum să lucrezi cu algoritmi și vei deveni un programator de talie mondială”.

Voi parafraza: „Lucrește în fiecare zi timp de doi ani și folosește ajutorul colegilor tăi pentru a obține opinii ale experților și vei deveni un programator de talie mondială”.

R: - Hmm, nu sunt sigur că la un moment dat vei putea spune „Realizare deblocată! Acum sunt ultimul codificator de nivel”.

Ce ar putea fi mai tare decât răspunsul la întrebarea „Care este rangul meu?” printre niște dezvoltatori mitici ai Pământului? Bănuiesc că înțeleg că scrii mai bine decât săptămâna trecută, luna sau anul trecut.

Cred că aceste lucruri mă ajută să mă îmbunătățesc:
- dorinta de a invata lucruri noi:Îmi îmbunătățesc programul din 1996 - și mai este loc de îmbunătățire;
- obiceiul de a împărtăși cunoștințe noi: capacitatea de a explica altora este utilă pentru tine (apropo, nu mulți oameni știu să facă asta);
- interes pentru domeniile în afara programării: abilitatea de a înțelege rapid diferite lucruri este extrem de importantă pentru un programator - cui îi explic?

A: — Scrieți codul. Mult cod. Cod de lucru. Creează-ți propriul motor. Scrieți One True CMS (va fi la fel ca alte mii de altele, dar veți avea multe descoperiri în acest proces). Creează-ți propriul tracker de sarcini. Și apoi completați-l cu un client de e-mail. Și, de asemenea, lăsați-l să accepte pluginuri. Mai esti aici? Scrieți propria limbă pentru scrierea pluginurilor și propriul interpret pentru aceasta.

A: - 10: Practică
20: RTFM (Citiți următorul (la naiba) manual)
30: Utilizați instrumentele potrivite
40: Citiți codul altor persoane
50: Dezvoltați abilitățile de comunicare
60: Rezolvați problemele de cod
70: Practică
80: Practică
90: GOTO 10

Acesta este principalul lucru :-)

A: - Oh, am un citat preferat, pe care o recitesc când am nevoie de inspirație. Chris Hasfield (un astronaut care a orbitat în jurul Pământului) răspunde la întrebările de pe Reddit:

Întrebare: Ce sfaturi poți oferi unui tânăr care dorește să intre în acest domeniu?

Răspunsul lui Chris: Află ce ai pe inima ta și provoacă-te să începi să-ți îndrepti viața spre asta. Fiecare decizie pe care o iei astăzi, până la ceea ce vei mânca și ce vei face cu timpul tău astăzi, te transformă în cine vei fi mâine și poimâine. Încearcă să vezi ceea ce vrei să fii și începe să sculptezi acea persoană din sinele tău existent. Nu vei deveni unul într-o oră, dar vei face ceea ce crezi că este potrivit pentru tine. Nu lăsa viața să te lovească accidental în adultul care nu vrei să fii.

Și apoi cineva a făcut un comic din acest răspuns:

R: — Nu vă lăsați la concluzia că sunteți un programator de talie mondială.Îți vei pierde capacitatea de a învăța! Ce fel de programator vei fi atunci?

R: — Citiți mult cod și contribuiți la proiecte Open-Source.

R: — Răspuns scurt: „Nici un caz”; răspuns lung: „Nu sunt sigur că există un „programator de talie mondială”.

Programarea este pur și simplu un mijloc pentru un scop. Sunt sigur că multe proiecte de succes au fost create de programatori medii sau buni, dar nu mari, dar au fost mari succese. Acest lucru se datorează faptului că acest succes este încorporat nu numai în calitatea codului, ci și în multe alte lucruri, cum ar fi viziunea, pasiunea și așa mai departe. Deci, dacă vrei să devii un programator grozav, ai nevoie de multă practică și dezvoltare completă. Poți mânca uneori.

R: - Trei lucruri pe care le știu:

1. Nu ar trebui să cauți niște căi de succes 100% către obiectivul tău. Fiecare e diferit.
2. Aproape toate cele mai bune produse nu sunt scrise singure. Dacă ești un geniu, mai găsește câteva și învață să comunici cu ei.
3. Toate limbile sunt limitate (cum ar fi engleza), dar sunt în continuă evoluție. Nu opriți dezvoltarea produselor dvs., precum și a produselor dvs.

Cum să încep călătoria? Alege o profesie de prestigiu.

Ce poate fi mai dificil decât să alegi o profesie? Ne este mereu teamă să nu greșim și ne punem întrebarea: pot obține succesul în domeniul ales? Abonatul nostru și-a împărtășit îndoielile scriindu-ne:

„De unde știu dacă pot deveni programator?”

Am apelat la experții noștri pentru clarificări și vă prezentăm răspunsurile primite.

Primul lucru de făcut este să verificați nivelul de bază al logicii. Găsiți testul Shmurdiki, treceți-l și obțineți cel puțin 27 de puncte prima dată. A reușit să dea toate răspunsurile corecte la a treia încercare datorită înțelegerii - bravo.

Să trecem la etapa următoare. Instalați un mediu de dezvoltare pentru C++ sau C# sau un alt limbaj. Ai reușit și fiecare pas finalizat cu succes ți-a făcut plăcere - semn bun. Mergi mai departe.

Găsiți o descriere a modului de creare a primei aplicații, Hello World, în mediul dvs. instalat în limba dorită - este un clasic. Făcut? Grozav.

Acum scrie propriul tău calculator care adună, scade, înmulțește, împarte. Dacă ai făcut-o și ți-a plăcut, poți deveni programator.

Promovați retrogradarea

Oricine este dispus să muncească din greu și să se dezvolte, să citească cărți de specialitate și să rezolve probleme dificile, dar interesante, poate deveni programator. Pentru a deveni programator, nu trebuie să treci de examene dificile sau să studiezi mulți ani la universitate. Este suficient să anunți cu voce tare lumii că s-a născut un nou programator și, în același timp, să lucrezi mult și persistent. Pe de altă parte, puteți avea stilul de viață al unui programator: nu amânați editorul de cod când vă întoarceți acasă, continuați să studiați, obțineți materiale rare pe Internet, studiați noi tehnologii, perfecționați matematica și studiați, de exemplu, ML.

Promovați retrogradarea

Ceea ce definește un programator este dorința de a scrie cod cool. Dar este greu să surprinzi pe cineva doar cu un cod de lucru: ar trebui să fie scurt, rapid și de înțeles chiar și pentru un școlar. Ei bine, poți scrie codul perfect doar atunci când îți place cu adevărat această activitate.

De asemenea, trebuie să vă placă să învățați lucruri noi și să vă îmbunătățiți pe cele vechi. Cunoașterea lui Django este, de asemenea, greu de surprins. Tehnologia se schimbă și evoluează zilnic. Nu este suficient doar să știi că un instrument este disponibil. Este important să înțelegeți cum funcționează și de ce este necesar. Pentru a face acest lucru, de multe ori trebuie să vă scufundați în elementele de bază care nu sunt direct legate de programare. Și pentru a face învățarea distractiv, aveți nevoie de o minte curios.

Un programator trebuie să fi dezvoltat gândirea sistemică. Întotdeauna trebuie să ia în considerare mai multe soluții și să aleagă pe cele mai bune, să privească problema din diferite unghiuri, oferind soluții neevidente, dar eficiente. Studiați instrumentele gata făcute pentru a nu reinventa roțile.

Un programator trebuie să fie, de asemenea, moderat încăpățânat și ambițios. Dacă textul pe care l-ați citit nu este clar prima dată, trebuie să îl citiți din nou, sau de zece ori, până când devine clar. Sau dacă există o soluție mai bună, atunci merită să o încerci și să nu renunți, spunând că se va descurca. În orice afacere, ar trebui să te străduiești să devii cel mai bun, să dezvolți, să împărtășești cunoștințe și să argumentezi. Când se confruntă cu o provocare a cunoștințelor sau abilităților, va fi dificil pentru un programator să treacă.

Ei bine, și, desigur, trebuie să fiți capabil să construiți comunicarea cu oamenii și să vă adaptați la diferite circumstanțe. S-au dus vremurile geniilor cu barbă care au spart Pentagonul singuri din subsol și au scris Windows 3.11 și Facebook de la zero. Acum programatorul este un membru al echipei. Succesul întregii echipe depinde de abilitățile de comunicare și flexibilitate.

În cele din urmă, întreabă-te: „Pot deveni programator”? Dacă răspunsul tău este „Da, pot”, atunci nimic nu te va opri.

Promovați retrogradarea

Răspunsul se află, mai degrabă, în zona calităților și mentalității umane. Desigur, dacă ai inițial un nivel ridicat de pregătire teoretică, de exemplu, o educație matematică fundamentală, atunci învățarea va fi mai ușoară, dar în general este o chestiune de practică.

Pentru a deveni un programator de succes, trebuie să fii capabil să înțelegi principiile de bază ale programării și să gândești în termenii limbajului în care vei scrie cod, dar nu se poate spune că aceasta este un fel de predispoziție. Trebuie să ai răbdare și să muncești din greu, indiferent cât de banal ar suna.

Prin urmare, o persoană care este capabilă de învățare constantă, în primul rând de auto-învățare, poate deveni programator. Un programator învață în fiecare zi și acest lucru este valabil chiar și pentru dezvoltatorii experimentați. Dacă aveți dificultăți cu propria motivație și perseverență, acesta este un semnal de alarmă pentru profesia de programator, care este mai important decât lipsa cunoștințelor de bază.

O altă trăsătură de caracter necesară este rezistența la stres și abilitățile de planificare. Programatorul dobândește treptat o înțelegere a modului de abordare optim a sarcinii; codul devine mai curat și mai clar. Programatorul începe să gândească în viitor și lucrează prin toate opțiunile pentru expirarea evenimentelor, ceea ce generează cod stabil, indiferent de factorii externi.

Dacă aveți dubii, v-aș sfătui să încercați mai întâi profesii conexe, de exemplu, testarea. Nu necesită o bază tehnică profundă, dar, în același timp, necesită o mentalitate și un caracter similar.

Promovați retrogradarea

În primul rând, trebuie să înțelegeți ce este considerată o profesie de programator. Programarea a încetat de mult să fie rezervele unui număr selectat care sunt capabili să gândească în coduri de octeți și să monitorizeze mental memoria alocată. Astăzi există multe limbi moderne în lume a căror sintaxă este cât mai apropiată de engleza simplă. De exemplu, User.find_by(nume: „Vasya”).distruge în Ruby (pe șine). Cunoașterea acestor comenzi este suficientă pentru a scrie site-uri web mici, bloguri și magazine online. Dacă doriți să lucrați la acest nivel, atunci trebuie doar să alegeți limbajul dinamic orientat pe obiecte care vă place (Ruby, Python) și să urmați un curs despre el sau să citiți o carte, există destul de multe pentru fiecare limbă. . De asemenea, puteți încerca și în dezvoltarea front-end, puteți învăța JavaScript și apoi stăpâniți cadre pentru aceasta.

Dacă vrei să scrii sisteme mai complexe, ai nevoie de cunoștințe de logică abstractă; le poți obține studiind matematica superioară la institut (în mod ideal, matematică discretă, dar, de fapt, analiza matematică dezvoltă și creierul destul de bine). Puteți citi cărți despre matematică și algoritmi discreti (Stephen Skiena „Algoritmi. Ghid de proiectare”, Thomas Cormen „Algoritmi. Construcție și analiză”, Rod Haggarty „Matematică discretă pentru programatori”, J. Anderson „Matematică discretă și combinatorică”) și doar practica programarea. De asemenea, ar fi foarte util să înveți un limbaj de nivel scăzut, de exemplu C (Kernighan, Ritchie „The C Programming Language”) - pentru o înțelegere generală a principiilor de funcționare a programului.

Dacă scopul tău este să te angajezi în învățarea automată și în procesarea datelor, va trebui să stăpânești statisticile matematice și algebra liniară. Toate aceste științe au un lucru în comun - pot fi învățate. Prin urmare, ideea principală a înțelegerii propriilor capacități în programare este următoarea: „Dacă poți învăța pe cont propriu, atunci poți deveni programator. Nu trebuie să fii matematician, dar trebuie să poți deveni unul dacă este necesar.”

Există și multe canale în Telegram, mai multe pentru fiecare limbaj de programare, vă sfătuiesc și să căutați.

Dacă vorbim despre cea mai simplă dezvoltare a site-urilor web, atunci nu ar trebui să existe nicio îndoială că toată lumea se poate descurca. Dacă vrei să mergi mai departe, dar în același timp crezi că matematica și logica nu sunt pentru tine, atunci poți încerca site-uri de jocuri pentru dezvoltarea algoritmilor:
https://www.codingame.com/
https://www.codewars.com/
Pe ele trebuie să rezolvi cele mai simple (și nu atât de simple) probleme algoritmice în orice limbaj de programare îți place. Nu pot spune că este foarte util pentru a învăța programarea reală, dar dacă vă plac aceste jocuri, cu siguranță vă veți bucura să faceți o dezvoltare serioasă.

Promovați retrogradarea

Dacă ți-ai pus această întrebare, cu siguranță există o șansă. La urma urmei, principalul lucru este să ai dorința și dorința de a o îndeplini. Dar pentru un succes real în programare, trebuie să gândiți sistematic: să înțelegeți ce este conectat la ce și cum, să vedeți procesele și algoritmii de sistem pentru rezolvarea acestora în lumea din jurul vostru și, de asemenea, să puteți găsi abordări pentru rezolvarea problemelor. Perseverența și capacitatea de a se concentra asupra unei sarcini sunt importante.

Nici răbdarea unui programator nu va strica, pentru că găsirea unei soluții la o problemă și scrierea codului algoritmului este doar jumătate din muncă. Apoi urmează testarea, găsirea și eliminarea erorilor, corecțiile clienților - toate acestea necesită partea leului de răbdare. Dar cu o astfel de încăpățânare înnăscută în atingerea unui scop, este necesar să vă mențineți flexibilitatea minții, să vă puteți privi munca prin ochii utilizatorilor; uneori este foarte dificil să vă abandonați deciziile în favoarea deciziilor clientului.

Nu vă fie teamă să studiați pentru a deveni programator, pentru că, chiar dacă nu vă place programarea, puteți lucra ca analiști, testeri, scriitori tehnici și chiar manageri de proiect, iar educația IT va ajuta doar în acest sens.

Promovați retrogradarea

Astăzi este greu să găsești o profesie mai promițătoare, mai avansată din punct de vedere tehnologic și mai stabilă financiar decât cea de programator. În același timp, chiar și în ciuda salariilor mari (de câteva ori mai mari decât „media regională”), industria se confruntă cu o lipsă de personal. După cum spunea Adam Smith, „cererea creează ofertă” – dar nu este atât de simplu.

Lipsa de personal de pe piață nu mai este ceea ce era acum zece ani. Sectorul IT s-a maturizat foarte mult și a trecut printr-o etapă în care oamenii Enikey au fost angajați pentru posturi serioase. Viitorii programatori se confruntă cu provocări noi și complexe - gama de sarcini „primare” ale acestei profesii devine primitivă, iar odată cu dezvoltarea tehnologiei, aceasta este din ce în ce mai predată inteligenței artificiale și automatizării.

„Foamea” profesională capătă noi caracteristici. Pentru a reuși, trebuie să ai o bază fundamentală: o bază algoritmică de înaltă calitate, matematică puternică, să fii responsabil și gata să înveți constant. Dacă aveți toate acestea, Google, Amazon, Facebook și Attack Killer sunt gata să vă invite la un interviu chiar acum!

Promovați retrogradarea

Permiteți-mi să încep cu faptul că dezvoltarea de software este acum o industrie uriașă, cu o gamă largă de sarcini și abilitățile necesare pentru acestea, care angajează zeci de milioane de oameni. Varietatea de companii și proiecte este atât de mare încât răspunsul poate fi redus la unul simplu - „Da, cu siguranță poți deveni programator”.

Dar este mai bine să reformulăm întrebarea ca „pot deveni un programator bun?” După părerea mea, poți deveni un programator bun dacă:
1. Iubește programarea și simți satisfacție chiar din procesul de gândire și scriere a codului.
2. Îți plac produsele software de înaltă calitate și convenabile și vrei să dezvolți așa ceva.
3. Sunteți interesat de dezvoltarea IT, chiar dacă nu vă plac toate tendințele.
4. Posedă gândire critică și abilități analitice dezvoltate.
5. Puteți lucra într-o stare de flux și vă puteți concentra ore întregi pe o singură sarcină.
6. Îți pasă de ceea ce faci și de oamenii cu care lucrezi.
7. Sunteți gata să lucrați în echipă pentru a atinge un obiectiv comun, chiar dacă nu vă place să comunicați cu oamenii.