Učenje programiranja od nule: kako početi učiti kod kuće. Kako naučiti programirati od nule kod kuće Šta treba da znate da biste bili programer

Ovaj članak će govoriti o tome kako postati programer od nule. U krizi veliki broj ljudi razmišlja o dodatnoj zaradi. Novac je uvijek potreban, pa vam na pamet padaju različite ideje, uključujući programiranje. Sigurno je neko od vaših prijatelja ili vi sami rekli da danas postoje veoma potrebni programeri, upravo oni zarađuju te iste milione i imaju veliku perspektivu. Zaista, to je upravo područje u kojem se danas profesionalac može u potpunosti realizirati i dostići velike visine. To je zato što ima dosta programera visokog nivoa, što znači da konkurencija nije ozbiljna i da možete sebi postaviti ambiciozne ciljeve. Ako radite u IT polju, tada ćete prije ili kasnije razmišljati o programiranju i pokušati postati profesionalac u ovom poslu.

I tako, kako postati programer od nule, sam? Gdje započeti svoje obrazovanje?

Samoučenje programiranja od nule nije lak posao i može oduzeti mnogo vremena i truda. Stoga, prije svega, morate razumjeti kakav programer postati i čime ćete se baviti u budućnosti. Možete razvijati nove aplikacije za mobilne uređaje, možete pisati punopravne desktop programe, možete postati web programer itd. Izbor je dovoljno velik, tako da u početku morate napraviti izbor i ciljano raditi na rezultatu. Nemojte se plašiti u ovoj fazi, ako postanete dobar programer u jednom pravcu, onda se možete ponovo obučiti i otići u drugu oblast programiranja.

Nakon što odaberete uži opseg, potrebno je da odaberete programski jezik. Nije tako lako, ovdje se morate upustiti u područje programiranja, proučiti sve dostupne jezike i odabrati najbolju opciju za sebe. Neko preferira jednostavniji jezik koji se može naučiti za nekoliko godina i biti profesionalac, neko bira teži put, preferirajući jezik sa velikim mogućnostima i perspektivom.

Nakon toga morate sami odabrati način da krenete na put programiranja. Možete samostalno učiti, čitati literaturu, koristiti razne usluge i pomoć stručnjaka. Možete otići na fakultet i studirati nekoliko godina, zatim steći diplomu specijaliste i početi raditi u ovoj industriji. Obje opcije imaju pravo na život i jednostavno morate postaviti svoje prioritete.

Prednosti i nedostaci samostalnog učenja (kod kuće)

Znate kako postati programer, shvaćate da za to trebate učiti i potrošiti ogromnu količinu svog vremena na posao. Istovremeno, odlučili ste da sve radite sami, bez univerziteta i pomoćnih preduzeća. Ovo je za svaku pohvalu i uvijek isplati očekivanja ako radite u ovom smjeru. Ali u isto vrijeme, takav izbor je vrlo težak.

Danas postoji ogromna količina informacija na Internetu, moguće je koristiti produktivnu opremu za programiranje, moguće je vježbati svoje vještine. Detaljna uputstva na Internetu će vas pokrenuti na putu do profesionalnog programiranja, a posebne razmjene će vam čak omogućiti i posao uz naknadu.

Prednosti samostalnog učenja:

1. Ogromna količina praktičnog znanja.

2. Prilika za zaradu za početnike.

3. Budno gledano i odgovornije učenje.

4. Jeftin način da postanete programer.

Nedostaci samostalnog studija:

1. Veoma je teško postati profesionalac za kratko vreme.

2. Poteškoće u učenju, jer nema ko da podstakne.

3. Mnogo vremena se troši na traženje informacija i njihovu analizu.

Stručno usavršavanje na univerzitetu

Kada se pitate kako postati programer od nule, veliki broj ljudi će razmišljati o fakultetu. Tamo postoje profesionalni nastavnici koji mogu prenijeti dio svog znanja i iskustva onima koji žele da nauče ovaj posao. Nakon školovanja dobijate diplomu, tako da možete raditi u velikim kompanijama kao programer i graditi svoju karijeru. Neki privatni klijenti će biti ozbiljniji u radu sa diplomcima.

Prednosti takve obuke su veoma velike. Radite sa profesionalnim nastavnikom, brzo shvaćate određene nijanse, trošite manje vremena na traženje informacija i njihovu analizu. Već postavljate pitanja nastavniku kako postati web programer, a on vam govori iz stručne tačke gledišta, nudi provjerenu literaturu, daje praktične zadatke i pomaže vam da ih razumijete. Profesionalci razvijaju određenu metodologiju obuke, tako da za nekoliko godina postajete pravi stručnjak koji može računati na visoko plaćen posao.

Nedostaci ovog izbora su također očigledni i leže na površini. Morat ćete platiti školarinu, ovisno o fakultetu, cijena obrazovanja može biti prilično visoka. Moraćete da učite nekoliko godina, nećete uvek moći da kombinujete učenje sa poslom. Ne mogu svi napustiti fakultet kao profesionalci, neko će jednostavno biti lijen i ove godine studija će biti uzaludne. Jedno je tjerati sebe da učiš i radiš sam, postepeno hrabri, a druga je pohađati predavanja na fakultetu gdje te niko ne tjera da učiš.

Koji programski jezik odabrati za početnika

Sve više ljudi želi da postane programeri. To je zbog činjenice da mnogi ljudi misle da programeri ne rade ništa i dobijaju mnogo novca. Naravno, nije tako, posao programera je veoma težak, a velike plate treba očekivati ​​tek nakon dužeg vremenskog perioda. Međutim, ako imate želju da postanete programeri, a ne znate koji bi programski jezik trebali početi učiti kao prvi, onda je ovaj članak za vas.

Dakle, želite da postanete programer i pitate se koji bi programski jezik prvo trebalo da naučite. Želim odmah da kažem da ne treba gledati na stranu Pascala, koji toliko voli da predaje u školi i BASIC-a, koji je još ostao iz vremena SSSR-a. Naravno, možete ih proučiti za osnove kako biste razumjeli kako sve funkcionira općenito, ali ovo je gubljenje vremena. Na primjer, ako uzmete jezik Python, onda je on lagan, kao Pascal, ali u isto vrijeme moćan. Općenito, gdje se koristi Python. Ovaj jezik se često koristi u razvoju sajtova, odnosno: serverska strana sajta. I općenito, ne samo web stranice. Uzmite samo aplikaciju Instagram, ili igru ​​World of Tanks, oni također koriste Python! Naravno, o ovom jeziku se malo piše, tako da još nije dobio takvu popularnost. Početnici, na kraju krajeva, misle da što je jezik popularniji, to je bolji. U stvari, nije tako, jer u programiranju sve zavisi od ciljeva. Na primjer, imate cilj: kreirati igru ​​za mobilne platforme. U ovom slučaju, naravno, bolje je početi učiti Javu, ali ovaj jezik je složen i vrijedi početi s nečim jednostavnim, kao što je Python. Python je skriptni jezik i uvijek treba da imate skriptni jezik u svom arsenalu, jer će vam svuda dobro doći! Vrijedi napomenuti da popularnost ovog jezika raste svake godine. Mnoge stranice prelaze sa PHP-a na Python. Pošto Python ima ljepšu sintaksu i lakši je za rad od PHP-a. Takvi divovi kao što su: Yandex, Vkontakte, Google - odavno su prešli na Python. Python će uskoro zauzeti mjesto PHP-a kao najpopularnijeg jezika za web razvoj. PHP opstaje samo zato što su mnogi projekti previše lijeni da bi prepisali tonu koda s jednog jezika na drugi.

U zaključku, želio bih reći da je najbolji jezik za početnika Python. Ovo su sjajni izgledi i lakoća učenja. Python se može savladati za nekoliko sedmica, osnove, naravno. Općenito, sada čak iu školama žele zamijeniti Pascal sa Pythonom. Ali ipak, konačni izbor je pred vama, jer postoje ljudi koji ne vole Python sintaksu.

Ko može postati programer?

Šta je potrebno da naučite da biste savladali ovu profesiju?

Ova i mnoga druga pitanja razmotrit ćemo u ovom članku. Posebna zahvalnost za kreiranje ovog članka ide Fondaciji Galina, koja ih je postavila u takmičenju "Postavite pitanje i osvojite nagradu".

Programer - ko je to?

Popričajmo malo o profesiji programera.

Programer je osoba koja piše programe. Ovo ako je što jednostavnije pojednostaviti ovaj koncept.

Prije svega, vrijedno je napomenuti da profesija programera uključuje ogroman broj različitih specijalnosti. I svaki od njih zahtijeva određenu specifičnost. Međutim, potrebne su određene vještine u bilo kojoj specijalnosti.

Koje osobine treba da imate da biste postali programer?

Najvažnija osobina koja dobrog programera odvaja od amatera je želja za stalnim usavršavanjem i samoobrazovanjem. Dobar programer uči malo više od pisanja programa. Nedostatak navike učenja dovodi do zaostajanja za napretkom i takav programer prestaje biti vrijedan na tržištu rada.

Druga osobina koja karakteriše dobre programere je upornost. Upornost i sposobnost da ono što ste započeli dovedete do kraja je teška potreba. Rijetko je da programer uspije prvi put. Obično morate dugo sjediti, tražiti greške, testirati različite metode implementacije. Stoga istrajnost smatram jednom od najvažnijih osobina programera.

Postoji i mnogo više definišnih osobina programera softvera. Ali nijedan od njih nije ni blizu po važnosti gore opisanim.

Kojim školskim predmetima treba posvetiti posebnu pažnju?

Često čujemo da samo onaj ko je dobro učio matematiku u školi može postati programer. Ne slažem se u potpunosti sa ovim stavom.

Za programera, matematika i informatika su osnovni predmeti, ali ne i jedini koji su programerima potrebni.

Kao što sam gore napisao, programer mora stalno učiti i usavršavati se. A ova navika se može razviti samo proučavanjem svega po redu. Osim toga, izučavanje usmenih predmeta poput književnosti, istorije, geografije i slično uvelike razvija pamćenje i povećava brzinu čitanja. Ove vještine će biti neophodne prilikom učenja novih programskih jezika ili algoritama.

Važnost učenja stranih jezika takođe je teško precijeniti. Ogromna količina dokumentacije, naučne i tehničke literature je objavljena na stranim jezicima. Preferirani jezici su engleski i njemački. U prioritetu, naravno, engleski.

Sport. Naviknite se na vježbe od djetinjstva. Kada birate posao programera, birate sedentarni način života. A ako ne želite da pokvarite svoje zdravlje u mladosti, obavezno odvojite par sati dnevno za sport.

Kako početi učiti programiranje od nule za "čajnik"?
U ovom članku pokušao sam detaljno analizirati da li je moguće samostalno postati programer od nule i koje opcije postoje kako biste sami naučili programirati i počeli zarađivati ​​na tome.
2020. je i odlučio sam da ažuriram jedan od najboljih članaka s recenzijom čitatelja za one koji sami uče da kodiraju. Sada ima i savjete za početak od nule i ažurirane informacije. I sve je besplatno :)

Pokušao sam dati najbolji - po mom mišljenju - način. Upozoravam vas - nije lako! Dalje čitanje može vas koštati mnogo sati zanimljivih studija - na kraju krajeva, to možete postati samo kroz programiranje! :)

Odmah ću reći - ako odlučite da naučite programiranje samo sami, bez ulaganja novca, morat ćete potrošiti više vremena. Puno vremena. Da bismo ga spasili, napisan je ovaj članak.

Očekujte da ćete savladati novu specijalnost za najmanje godinu dana ako studirate programiranje paralelno s drugim poslom.

Ovaj članak je zbirka najboljih praksi zasnovanih na mom iskustvu ako želite sami da naučite programiranje.

Ali odakle počinju početnici?

Savladajte jednostavne algoritme, napravite neke programe za vježbanje. Ako ti se sviđa, nastavi.

Što je logika programa složenija, to bolje za vas. Sada je važno da se upoznate sa stvarima kao što su varijable, petlje i instrukcije.Ali rezultirajući program bi trebao raditi.

Možete koristiti najnoviju verziju Scratch 3, ilihttps://scratch.mit.edu/download/scratch2 - nebitno.

Ako trebate, nemojte se bojati koristiti Google i Youtube da shvatite šta je šta.

U početku morate odlučiti koji smjer programiranja vas zanima. Ako govorimo o učenju razvoja od nule i želite uskoro početi zarađivati ​​na tome, onda po mom mišljenju postoje dvije opcije: razvoj za mobilne uređaje ili web razvoj.

Najbolji izbor u ovoj situaciji, po mom mišljenju, je početi učiti web razvoj. Ovdje je ulazni prag za početnike niži i postoji mogućnost da se jednostavne narudžbe počnu ranije ispunjavati.

Kako sami postati programer od nule

Dodatni materijali za one koji su se već odlučili i imaju osnovno razumijevanje algoritama, varijabli i instrukcija.

Pa idemo! Kada bih sada krenuo od nule da samostalno učim web razvoj (shvateći da je to duži put bez ulaganja novca), onda bih sebi preporučio ovaj put:

1. Razumjeti HTML i CSS

Dobar kurs za osnovno savladavanje HTML-a i CSS-a: https://learn.shayhowe.com/html-css/ (engleski) ili https://webref.ru/layout/ learn-html-css (prevod).

Nakon toga, vrijedi pogledati mogućnosti Bootstrapa, koji je postao de facto standard za ubrzani razvoj web aplikacija: http://getbootstrap.com/

Ovo će biti dovoljno za naredne korake.
U ovom trenutku, možda ćete želeti da stanete i detaljnije proučite CSS. Ovo će vam dati priliku da radite kao layout dizajner - osoba koja od dizajna pravi statičnu HTML stranicu, nakon čega je programer oživljava, implementirajući logiku projekta.

Na ovome možete i zaraditi novac - i slobodnim radom i radom u IT kompaniji koja je specijalizirana za web razvoj.

Ali pošto smo odlučili da postanemo programer, idemo dalje!

2. Upoznajte se sa jQueryjem

Ako vam se sviđa, možete nastaviti raditi sa frontendom i početi učiti Javascript.

Ako slijedi https://angularjs.org/ ili http://backbonejs.org/, onda je ovo put do front-end razvoja. Dobar specijalitet, pogotovo jer će takvo znanje biti korisno svakom programeru koji je odabrao web razvoj.

Moj savjet je da se za sada držite jQueryja i nastavite dalje.

3. Savladajte programski jezik na strani servera

Ovdje postoji veliki izbor. Programski jezici koji najviše obećavaju su Ruby, Java, Python, Node.JS (Javascript za server).

Najlakši programski jezik za početnike je Python. Ako naučite Python, a zatim i Django okvir za web razvoj, imat ćete sve što vam je potrebno da sami implementirate prilično složene projekte.

Dobra opcija: Python programski jezik i Django framework

Plus - Python i Django će vas naučiti "ispravnom" programiranju. Python je konstantno u TOP 5-10 najtraženijih jezika, a dobri stručnjaci za Python spadaju među najbolje plaćene programere. Python je istovremeno jednostavan i razumljiv programski jezik za programere početnike, a istovremeno se koristi u mnogim velikim kompanijama i na velikim projektima.

Možete početi odmah na web stranici:

Između ostalih materijala, preporučujem Learn Python The Hard Way. knjiga Jednostavni Python. Moderan stil programiranja. I naravno Uputstvo za Python 3.

Django je možda najbolji okvir za web razvoj.

Najbolji alat za sve prilike vrlo je teško pronaći. Django ima sve šanse da postane takav alat za web razvoj.

Odakle početi učiti Django:

Počnite sa službenom dokumentacijom, tu je vrlo dobar tutorijal: https://docs.djangoproject.com/en/dev/intro/

Tango s Djangom je dobra prilika da poboljšate svoj engleski i istovremeno steknete razumijevanje o tome kako web projekti funkcioniraju i kako sve funkcionira.

Alternativa - PHP i WordPress

Drugi način je da počnete sa PHP-om i radite sa popularnim CMS-om. Ako sami učite programiranje i želite da počnete brzo, počnite sa PHP-om.

Mnogi smatraju da je PHP "ne baš" programski jezik, i to s dobrim razlogom. PHP se rijetko koristi u velikim web aplikacijama i izoštren je samo za web - neće raditi u drugim područjima.

S druge strane, PHP prednjači po broju pokrenutih stranica u svijetu. Na njemu se baziraju najpopularniji CMS (sistemi za upravljanje sadržajem).

Nakon toga, shvatite kako da kreirate WordPress teme - ovo je najpopularniji CMS na svijetu, ako se mjeri brojem pokrenutih stranica.

Pošto ste se dobro pozabavili ovim, već možete naći posao. Postoji mnogo sajtova koji koriste PHP i WordPress, tako da posla ima dovoljno za sve.

Kako početi zarađivati ​​novac kao programer

Mnogi ljudi zamišljaju rad slobodnog programera ovako:

Zapravo izgleda otprilike ovako:

Ako ste spremni da radite kao programer i tražite način da zaradite novac, dobrodošli u freelancing! Razmjene slobodnih zanimanja vam omogućavaju da pronađete jednostavne poslove (možda u početku gotovo besplatno) - da biste stekli praksu. Po pravilu, rad u IT kompaniji može biti isplativiji ako samo tražite posao programera.

Već nakon tačke 2 - nakon što ste savladali HTML, CSS i jQuery - možete ići na freelance berze i primati jednostavne narudžbe, stvarajući profil.

Znaš li engleski? https://www.upwork.com/

Nikako, čak ni sa rječnikom? http://freelance.ru/

Dok budete mogli sami da pravite web stranice, lakše ćete naći klijente - bit će recenzija i iskustva.

Brzi put do web programera

Na osnovu mog iskustva, učenje kodiranja od nule će trajati u najboljem slučaju 6 do 12 mjeseci, sa 6 mjeseci ako vam neko pomogne.

Da biste ubrzali proces ulaska u IT – potražite priliku da odete na obuku (možda će vam trebati više od jedne) ili – bolje – pronađite osobu koja će raditi sa vama. Bez mentora koji će vam prenijeti svoje znanje, jako je teško, možete provesti godinu dana čitajući knjige i nikako ne početi. A sa obrazovanom osobom koja zna da jednostavno priča o složenim stvarima, mnogo je lakše.

Svojevremeno sam kupio obuku za savladavanje web razvoja i uštedio mi je dosta vremena. Uprkos činjenici da sam znala dosta o razvoju, to mi je omogućilo da za 2 mjeseca savladam ono što je moglo trajati šest mjeseci. Traži svoj put.

Početnicima može izgledati dosadno ili teško - ovo je najbolje od onoga što jeste.

Kombinirajte to sa savjetima iz ovog članka i bit ćete sretni! :)

Verzija za 2019. je u prijevodu: https://courses.prometheus.org.ua/courses/course-v1:Prometheus+CS50+2019_T1/about

Kurs će potrajati, ali će dati prilično potpuno razumijevanje, koje je inače teško postići sami.

Ako su vam se svidjeli i drugi kursevi za programere početnike, ili možda ozbiljniji, pišite u komentarima.
Za svaki slučaj: linkovi ka plaćenim kursevima bit će objavljeni tek nakon lične provjere radi isključivanja neželjene pošte.

Kako dalje naučiti programirati

Čim budete sigurni da možete nešto stvoriti, potražite kompaniju u kojoj možete dalje razvijati ili klijente. Za ljude koji žele da postanu programeri, praksa je veoma važna.

Prihvatite bilo koji posao koji vam se ponudi. Programiranje se može savladati samo kroz praksu.

HTML, CSS, Python i Javascript su samo osnove, prvi korak. Takođe je važno proučavati algoritme i poznavanje savremenih razvojnih alata.

Ako će biti zanimljivo i na kanalima u Telegramu i na Youtube kanal ITMAN Biće ukucano 1000 pretplatnika, trudiću se da organizujem redovno objavljivanje korisnih materijala, a nastaviću da snimam i video zapise o učenju programiranja.

Imam san da programiranje učinim dostupnim svima. Možda ćemo jednog dana to zajedno i ostvariti.

Dakle, ako želite da mi dodate motivaciju, da budete od koristi sebi i drugima - pretplatite se i svi će biti sretni :)

PS

Ako imate pitanja - pitajte u komentarima! Nadam se da će vam ovaj članak pomoći da napravite prvi korak. Sretno!

Također napišite u komentarima ako nađete kako dopuniti ovaj članak da bi bio korisniji za ljude. Učinimo učenje programiranja dostupnim svima zajedno)

Svoj put do karijere programera trebali biste započeti odgovorom na pitanje da li vam je programiranje uopće potrebno? Ovo pitanje se ne odnosi na one koji studiraju ili su studirali u specijalnosti bliskoj programiranju. Ako ste u školi bili bolji u matematici od humanističkih nauka, ako volite da provodite puno vremena za kompjuterom, ako želite da naučite nešto novo, onda će vam programiranje odgovarati.

Gdje početi

Postoji nekoliko opcija za razvoj događaja, zbog čega osoba postaje programer. Prvi su roditelji programeri koji su svoju djecu svemu naučili. Ova djeca čak i ne moraju ići na fakultet. Druga opcija je moderna profesija programera. Nakon škole, morao sam da biram gde ću ići da učim, a oni su izabrali moderan smer IT, činilo se da im se sviđa. I posljednja opcija je hobi koji je prerastao u posao.

Ako vam se ništa od gore navedenog nije dogodilo, onda imate izbor između četiri opcije:

  • samoobrazovanje. Ova opcija se može koristiti samostalno ili u kombinaciji s drugim metodama. Internet je pun aplikacija koje vam pomažu da naučite različite programske jezike i tehnologije. Ali ovo je najteži način za početnike.
  • univerzitet. Ako završavaš školu i želiš da budeš programer, onda idi na fakultet. Ako ne zbog znanja, onda zbog kore. Može poslužiti kao bonus prilikom prijave za posao. Mada ćete steći i neko znanje. Ali ne zaboravite da se obrazujete. Izboru univerziteta treba pristupiti vrlo odgovorno. Pažljivo proučite programe obuke i odaberite najbolje tehničke univerzitete.
  • Mentor. Bit će jako dobro ako nađete osobu koja će pristati da vam pomogne i uputi vas u pravom smjeru. On će predložiti odgovarajuće knjige i resurse, provjeriti vaš kod i dati korisne savjete. Inače, već smo pisali o tome gdje možete pronaći mentora. Mentora možete potražiti među poznatim programerima, na IT zabavama i konferencijama, na online forumima i tako dalje.
  • Specijalizovani praktični kursevi. Pokušajte potražiti kurseve u svom gradu na kojima ćete naučiti neki programski jezik ili tehnologiju. Bio sam prijatno iznenađen brojem takvih kurseva u Kijevu, uključujući i besplatne i sa naknadnim zapošljavanjem.

Koji jezik, tehnologiju i smjer odabrati

Kada postanete programer, za godinu ili dvije bićete slobodni da birate jezik koji želite. Ali pri odabiru prvog programskog jezika, početnik bi trebao uzeti u obzir sljedeće kriterije:

  • Dostupnost na tržištu rada. Krajnji cilj ovog puta je pronaći posao programera. A to će biti teško učiniti ako niko ne traži programere u vašem programskom jeziku na tržištu rada. Provjerite sajtove za zapošljavanje, vidite ko najviše traži, napišite desetak jezika. I prijeđite na sljedeći kriterij.
  • Low Entry. Ako morate provesti dugo vremena učeći jezik, to vas može obeshrabriti od programiranja općenito. Pročitajte o jezicima koje ste odabrali iznad. Pregledajte literaturu koju ćete morati pročitati da biste naučili ove jezike. I odaberite one za koje se piše da su svjetlost, ili za koje ste mislili da su svjetlost. Takvi jezici mogu biti PHP, Ruby, Python.
  • Uzbuđenje procesa. Ako ne uživate u pisanju koda na odabranom jeziku, nećete uživati ​​u procesu, poslu ili životu. Da li ti treba? Napravite pravi izbor.

Također ćete morati odlučiti o smjeru programiranja. Mobilni, desktop, igre, web, programiranje niskog nivoa i tako dalje. Najpopularnije i relativno jednostavne industrije su razvoj za web, mobilne i desktop klijente. Jedan jezik može biti prikladan za svaki smjer, a drugi uopće ne odgovara. Odnosno, pri odabiru programskog jezika također vrijedi poći od ovog faktora.

U svakom slučaju, naučite web tehnologije. Ovo su HTML markup jezik, CSS stilovi i koji će vašu stranicu učiniti dinamičnom. Sljedeći korak je učenje jezika na strani servera (Python, PHP, Ruby i više) i web okvira koji su za to prikladni. Istražite baze podataka: skoro svaki posao programera navodi ovo.

Kako steći početno iskustvo

Bez iskustva nećete dobiti posao. Bez posla nećete steći iskustvo. Začarani krug stvarnog života. Ali ne brinite, izvući ćemo se iz toga.

Prvo, nemojte čekati da pročitate sve knjige na odabranom programskom jeziku. Počnite pisati svoje prve linije koda nakon drugog poglavlja knjige. Dovršite sve zadatke iz knjiga, preštampajte primjere, razumite ih. Komplikujte primjere i zadatke iz knjiga vlastitim idejama. Kreirajte vlastite zadatke za obrađeni materijal. Riješite ove probleme.

Drugo, morate pronaći svoje prve projekte. Ovo je vjerovatno najteža opcija, ali funkcionira. Morat ćete sami tražiti narudžbe, ispunjavati ih, mučiti se s plaćanjem. Za početnika je ovo zastrašujuće, ali tada će se sve druge opcije činiti beznačajnim. Završeni projekti se mogu zabilježiti u iskustvu i pokazati budućem poslodavcu. Pravi projekti su veliki plus u vašem životopisu.

Ako znate engleski, registrujte se bolje na berzi na engleskom. Tržište je veće. Ako ne znate engleski, naučite ga. U međuvremenu, dostupne su vam berze slobodnih radnika na ruskom jeziku. Potražite male projekte koji su na ili iznad vašeg nivoa znanja. Prijavite se za nekoliko desetina ovih poslova. I pripremite se da dobijete mnogo odbijanja. Ali ako jedna ili dvije aplikacije rade, imat ćete priliku steći pravo iskustvo.

Još jedna dobra opcija za stjecanje stvarnog iskustva je open source. Takvi projekti uvijek trebaju nove ljude, čak i početnike. Možete tražiti greške u projektu ili pogledati u program za praćenje grešaka i predložiti metode za njihovo rješavanje. Pronalaženje takvih projekata je jednostavno na GitHubu ili . Slobodno postavljajte pitanja tamo.

Četvrta opcija za sticanje iskustva je pomoć poznatim programerima. Zamolite ih da vam daju male i lake zadatke. Ako nešto ne uspije, uvijek ćete imati kome da se obratite. A istovremeno ćete učestvovati u pravom projektu.

Posljednji način je kroz vlastite projekte, razne hakatone ili rad u co-working prostoru. Teško je pokrenuti vlastite projekte, bolje je tražiti poznanike ili prijatelje.

Zašto odabrati Python

Hajde da pričamo malo više o izboru prvog programskog jezika. Prvi jezik bi trebao biti jednostavan i popularan na tržištu. Takav jezik jeste Python. Preporučujem vam da ga odaberete kao svoj prvi programski jezik.

Python kod je čitljiv. Ne morate čak ni biti programer da biste općenito razumjeli šta se dešava u programu. Zbog jednostavne sintakse Pythona, trebat će vam manje vremena za pisanje programa nego, na primjer, u Javi. Ogromna baza biblioteka koja će vam uštedjeti mnogo truda, živaca i vremena. Python je jezik visokog nivoa. To znači da ne morate mnogo razmišljati o memorijskim ćelijama i o tome šta ćete tamo smjestiti. Python je jezik opšte namene. A tako je jednostavno da ga čak i djeca mogu naučiti.

Iskreno rečeno, vrijedno je spomenuti i druge programske jezike. Java Možda je dobar izbor za početnika. Ovaj jezik je popularniji od Pythona, ali i malo komplikovaniji. Ali razvojni alati su mnogo bolje razvijeni. Treba samo uporediti Eclipse i IDLE. Nakon Jave, bit će vam lakše preći na rad sa programskim jezicima niskog nivoa.

PHP je još jedan veoma popularan jezik. I mislim da je čak i lakši od Pythona. Na forumu je vrlo lako pronaći mentora ili rješenje problema. To je zato što u svijetu postoji ogroman broj PHP programera različitih nivoa. U PHP-u nema normalnog uvoza, postoji mnogo opcija za rješavanje istog zadatka. I to otežava učenje. A PHP je izoštren isključivo za web.

Jezici C i C# veoma teško za početnika. ruby je dobar izbor kao drugi jezik, ali ne i prvi. JavaScript- veoma jednostavan jezik, ali vas neće naučiti ničemu dobrom. A zadatak prvog programskog jezika je i dalje da te nauči nečemu ispravnom, da postavi neku vrstu logike.

Je li engleski važan

Bitan! Ne znam? Teach. Znaš li? Poboljšati. Naučite čitati, pisati, slušati i govoriti engleski. Fokusirajte se na tehničku literaturu. Slušajte podcaste na engleskom jeziku. Čitajte udžbenike programiranja na engleskom jeziku.

Šta treba da znate, osim programskog jezika

Naravno, osim programskog jezika i engleskog, potrebno je još nešto znati. Ali šta - ovisi o smjeru koji odaberete. Web programer mora poznavati HTML, CSS, JavaScript. Desktop programer podučava API-je operativnog sistema i različite okvire. Programer mobilnih aplikacija uči Android, iOS ili Windows Phone okvire.

Svako treba da nauči algoritme. Pokušajte pohađati kurs na Courseri ili pronađite knjigu o algoritmima koja vam odgovara. Osim toga, potrebno je poznavati jednu od baza podataka, obrazaca programiranja, strukture podataka. Također je vrijedno upoznati spremišta koda. Barem sa jednim. Potrebno je poznavanje sistema kontrole verzija. Odaberite Git, najpopularniji je. Morate znati alate sa kojima radite, operativni sistem i razvojno okruženje. A glavna vještina programera je da zna guglati. Nećeš živjeti bez toga.

Poslednji koraci

Morate pripremiti životopis. Ne samo životopis, već. Ne treba tu pisati, ali ne treba ni da ćutite o svojim veštinama. Nakon što ste pozvani na intervju, morate se pripremiti za njega. Prođite kroz materijal koji je naveden u vašem životopisu. Morate biti sigurni u svoje znanje. Pregledajte projekte na kojima ste radili, zapamtite tehnologije koje ste koristili. I naprijed - u svijetlu budućnost sa novom profesijom programera.

Šta može biti teže od izbora profesije? Uvek se plašimo greške i pitamo se da li mogu da budem uspešan na polju koje sam izabrao. Naš pretplatnik je podijelio svoje nedoumice pišući nam:

“Kako da znam mogu li postati programer?”

Za pojašnjenja obratili smo se našim stručnjacima, a odgovore koje smo dobili predstavljamo vašoj pažnji.

Prva stvar koju treba učiniti je provjeriti osnovni nivo logike. Pronađite test, položite ga i prvi put osvojite najmanje 27 bodova. Uspeo sam da dam sve tačne odgovore iz trećeg pokušaja zahvaljujući razumevanju - bravo.

Pređimo na sljedeću fazu. Postavite razvojno okruženje za C++ ili C# ili neki drugi jezik. Uspeli ste i svaki uspešno obavljen korak pričinjavao vam je zadovoljstvo - dobar znak. Pomakni se.

Pronađite opis kako kreirati prvu aplikaciju, Hello World, u okruženju koje ste instalirali na odabranom jeziku - ovo je klasik. Jeste li? Odlično.

Sada napišite svoj vlastiti kalkulator koji zbraja, oduzima, množi, dijeli. Ako ste to radili i uživali, možete postati programer.

Nadogradite na stariju verziju

Programer može postati svako ko je spreman naporno raditi i baviti se vlastitim razvojem, čitati specijalizirane knjige i rješavati teške, ali zanimljive zadatke. Da biste postali programer, uopće nije potrebno polagati teške ispite ili studirati dugi niz godina na fakultetu. Dovoljno je glasno izjaviti svijetu da se u svijetu pojavio novi programer, uz naporan rad. S druge strane, možete imati stil života programera: nemojte odlagati uređivač koda kada se vratite kući, nastavite učiti, nabavite rijetke materijale na internetu, učite nove tehnologije, poboljšajte matematiku i radite, na primjer, ML.

Nadogradite na stariju verziju

Programera definiše želja da napiše cool kod. Ali teško je iznenaditi bilo koga samo funkcionalnim kodom: trebao bi biti kratak, brz i razumljiv čak i školarcu. Pa, možete napisati savršen kod samo kada zaista volite ovu aktivnost.

Također morate voljeti učiti nove stvari i usavršavati se u starim. Poznavanje Djanga je takođe teško iznenaditi. Tehnologija se svakodnevno mijenja i razvija. Nije dovoljno samo znati za prisustvo nekog alata. Važno je razumjeti kako to funkcionira i zašto je potrebno. Da biste to učinili, često morate zaroniti u osnove koje nisu direktno povezane s programiranjem. A da bi učenje bilo zabavno, potreban vam je radoznao um.

Programer mora imati razvijeno sistemsko razmišljanje. Uvijek treba razmotriti nekoliko rješenja i izabrati najbolje, sagledati problem iz različitih uglova, nudeći neočigledna, ali djelotvorna rješenja. Proučite gotove alate kako ne biste ponovo izmislili točak.

A programer mora biti umjereno tvrdoglav i ambiciozan. Ako pročitani tekst nije jasan prvi put, mora se pročitati ponovo, ili deset, dok ne postane jasan. Ili ako postoji bolje rješenje, onda ga vrijedi isprobati, a ne odustati, govoreći da će uspjeti. U svakom poslu treba težiti da postanete najbolji, razvijate se, dijelite znanje, raspravljate. Kada se suoči sa izazovom znanja ili vještina, programeru će biti teško proći.

Pa, i, naravno, mora se znati izgraditi komunikaciju s ljudima i prilagoditi se različitim okolnostima. Prošlo je vrijeme bradatih genija koji su sami hakovali Pentagon iz podruma, napisali Windows 3.11 i Facebook od nule. Sada je programer član tima. Uspjeh cijelog tima ovisi o komunikacijskim vještinama i fleksibilnosti.

Na kraju se zapitajte: "Mogu li postati programer"? Ako je vaš odgovor „Da, mogu“, onda vas ništa neće zaustaviti.

Nadogradite na stariju verziju

Odgovor leži, prije, u polju ljudskih kvaliteta i mentaliteta. Naravno, ako u početku postoji visok nivo teorijske obuke, na primjer, osnovno matematičko obrazovanje, onda će učenje ići lakše, ali općenito je to stvar prakse.

Da biste postali uspješan programer, morate biti sposobni razumjeti osnovne principe programiranja i razmišljati u smislu jezika na kojem ćete pisati kod, ali se ne može reći da je to neka vrsta predispozicije. Morate biti strpljivi i naporno raditi, ma koliko to banalno zvučalo.

Dakle, programer može postati osoba koja je sposobna za stalno učenje, prvenstveno samoučenje. Programer uči svaki dan, a to se odnosi čak i na iskusne programere. Ako imate poteškoća s vlastitom motivacijom i istrajnošću, ovo je poziv na uzbunu za profesiju programera, koja je važnija od nedostatka osnovnog znanja.

Još jedna neophodna karakterna osobina je tolerancija na stres i vještine planiranja. Programer postepeno shvata kako da optimalno pristupi zadatku, kod postaje čišći i jasniji. Programer počinje razmišljati unaprijed i razrađuje sve opcije za istekom događaja, što generiše stabilan kod, bez obzira na vanjske faktore.

Ako ste u nedoumici, savjetovao bih vam da prvo isprobate srodna zanimanja, na primjer, tester. Ne treba im duboka tehnička baza, u isto vrijeme je potreban samo sličan način razmišljanja i karakter.

Nadogradite na stariju verziju

Prvo, morate razumjeti šta se smatra profesijom programera. Programiranje je odavno prestalo da bude deo elite, koja je u stanju da razmišlja u bajt kodovima i da prati dodeljenu memoriju u svojim umovima. Danas u svijetu postoji mnogo modernih jezika čija je sintaksa što je moguće bliža običnom engleskom. Na primjer, User.find_by(name: "Vasya").destroy u Ruby-u (na šinama). Poznavanje ovih naredbi je dovoljno za pisanje malih web stranica, blogova, online trgovina. Ako želite raditi na ovom nivou, onda samo trebate odabrati dinamički objektno orijentirani jezik koji vam se sviđa (Ruby, Python) i pohađati kurs o njemu, ili pročitati knjigu, ima ih dosta za svaki jezik . Također se možete okušati u front-end razvoju, naučiti JavaScript i zatim savladati okvire za to.

Ako želite da pišete složenije sisteme, potrebno vam je znanje apstraktne logike, možete ga steći studiranjem više matematike na institutu (idealno diskretno, ali, u stvari, matematička analiza takođe prilično dobro razvija mozak). Možete čitati knjige o diskretnoj matematici i algoritmima (Stephen Skiena "Algoritmi. Vodič za dizajn", Thomas Kormen "Algoritmi. Konstrukcija i analiza", Rod Haggarty "Diskretna matematika za programere", J. Anderson "Diskretna matematika i kombinatorika") i samo vežbajte programiranje. Takođe bi bilo vrlo korisno naučiti jezik niskog nivoa, kao što je C (Kernighan, Ritchie "Programski jezik C") - za opšte razumevanje kako programi rade.

Ako je vaš cilj da se bavite mašinskim učenjem i obradom podataka, moraćete da savladate matematičku statistiku i linearnu algebru. Sve ove nauke objedinjuje jedna karakteristika - mogu se naučiti. Stoga je glavna ideja razumijevanja vlastitih sposobnosti u programiranju sljedeća: „Ako možete sami učiti, onda možete postati programer. Ne morate biti matematičar, ali morate biti u mogućnosti to postati ako je potrebno.”

Također postoji mnogo kanala u telegramima, nekoliko za svaki programski jezik, također vam savjetujem da pogledate.

Ako govorimo o najjednostavnijem razvoju web stranica, onda ne treba sumnjati da se svi mogu nositi s tim. Ako želite ići dalje, ali u isto vrijeme mislite da matematika i logika uopće nisu za vas, onda možete isprobati web stranice za igre za razvoj algoritama:
https://www.codingame.com/
https://www.codewars.com/
Oni moraju riješiti najjednostavnije (i ne baš tako) algoritamske probleme u bilo kojem programskom jeziku koji vam se sviđa. Ne mogu reći da je jako korisno za učenje pravog programiranja, ali ako uživate u ovim igrama, onda ćete sigurno uživati ​​u ozbiljnom razvoju.

Nadogradite na stariju verziju

Ako ste sebi postavili ovo pitanje, sigurno postoji šansa. Na kraju krajeva, glavna stvar je imati želju i želju da to ispunite. Ali za pravi uspjeh u programiranju potrebno je sistematski razmišljati: razumjeti šta je s čime i kako povezano, vidjeti sistemske procese i algoritme za njihovo rješavanje u svijetu oko nas, kao i moći pronaći pristupe rješavanju problema. . Bitna je upornost, sposobnost fokusiranja na zadatak.

Strpljenje ne škodi programeru, jer je pronalaženje rješenja problema i pisanje koda algoritma samo pola posla. Zatim slijedi testiranje, pronalaženje i otklanjanje grešaka, uređivanje kupca – sve to zahtijeva lavovski udio strpljenja. Ali sa takvom urođenom tvrdoglavošću u postizanju cilja, potrebno je zadržati fleksibilnost uma, moći svoj rad sagledati očima korisnika, ponekad je vrlo teško odustati od svojih odluka u korist odluka kupca. .

Nemojte se bojati naučiti biti programeri, jer čak i ako ne volite programiranje, možete raditi kao analitičari, testeri, tehnički pisci, pa čak i projekt menadžeri, a informatičko obrazovanje će vam samo pomoći u tome.

Nadogradite na stariju verziju

Danas je teško naći profesiju koja je perspektivnija, tehnološki naprednija i finansijski stabilnija od posla programera. Istovremeno, uprkos visokim platama (nekoliko puta većim od „proseka za region“), industrija se suočava sa manjkom kadrova. Kao što je Adam Smith rekao, "potražnja stvara ponudu" - ali to nije tako jednostavno.

Manjak kadrova na tržištu nije isti kao prije deset godina. IT sfera je dosta sazrela, preživjela fazu kada su zaposleni u Enikey-u odvedeni na ozbiljne pozicije. Budući programeri suočeni su s novim, složenim izazovima – raspon „primarnih“ zadataka ove profesije postaje primitivan, a razvojem tehnologije sve više se prepušta na milost i nemilost vještačkoj inteligenciji i automatizaciji.

Profesionalna "glad" dobija nove karakteristike. Da biste uspjeli, morate imati temeljnu osnovu: visokokvalitetne algoritamske osnove, jaku matematiku, biti odgovoran i spreman za stalno učenje. Ako imate sve ovo - Google, Amazon, Facebook i Attack Killer su spremni da vas odmah pozovu na intervju!

Nadogradite na stariju verziju

Za početak, razvoj softvera je sada ogromna industrija sa širokim spektrom zadataka i vještina potrebnih za njih, koja uključuje desetke miliona ljudi. Raznolikost kompanija i projekata je tolika da odgovor možete svesti na jednostavan – „Da, sigurno možete postati programer“.

Ali bolje je preformulisati pitanje u "mogu li postati dobar programer?" Po mom mišljenju, možete postati dobar programer ako:
1. Volite programiranje i uživajte u procesu razmišljanja i pisanja koda.
2. Volite kvalitetne i praktične softverske proizvode i želite da razvijate upravo takve.
3. Zainteresovani za IT razvoj, čak i ako vam se ne sviđaju svi trendovi.
4. Posjeduju razvijeno kritičko mišljenje i analitičke sposobnosti.
5. Može raditi u stanju toka i satima se koncentrirati na jedan zadatak.
6. Stalo vam je šta radite i sa kojim ljudima radite.
7. Spremni da radite u timu za postizanje zajedničkog cilja, čak i ako ne volite da komunicirate sa ljudima.