Programerska karijera. Poglavlje 1. Prvi program

Programerska karijera. Poglavlje 1. Prvi programDragi čitaoci Habra, predstavljam vam seriju postova koje u budućnosti planiram objediniti u knjigu. Želeo sam da zaronim u prošlost i ispričam svoju priču o tome kako sam postao programer i kako sam to nastavio da budem.

O preduvjetima za ulazak u IT, putu pokušaja i grešaka, samoučenju i dječjoj naivnosti. Počeću svoju priču od ranog detinjstva i završiti je danas. Nadam se da će ova knjiga biti posebno korisna onima koji se tek školuju za IT specijalnost.
A oni koji već rade u IT-u vjerovatno će povući paralele sa svojim vlastitim putem.

U ovoj knjizi ćete pronaći reference na literaturu koju sam pročitao, iskustvo komunikacije sa ljudima s kojima sam se ukrstio dok sam studirao, radio i pokretao startup.
Počevši od univerzitetskih nastavnika do velikih investitora i vlasnika višemilionskih kompanija.
Do danas je spremno 3.5 poglavlja knjige, od mogućih 8-10. Ako prva poglavlja nađu pozitivan odjek kod publike, objavit ću cijelu knjigu.

O meni

Ja nisam John Carmack, Nikolai Durov ili Richard Matthew Stallman. Nisam radio u kompanijama kao što su Yandex, VKontakte ili Mail.ru.
Iako sam imao iskustvo rada u velikoj korporaciji, o čemu ću vam svakako reći. Ali mislim da poenta nije toliko u velikom imenu, već u samoj istoriji puta da postanem programer, i dalje, u pobedama i porazima koji su se desili tokom moje 12-godišnje karijere u komercijalnom razvoju. Naravno, neki od vas imaju mnogo više iskustva u IT-u. Ali vjerujem da su drame i pobjede koje su se dogodile tokom moje trenutne karijere vrijedne opisa. Događaja je bilo mnogo, i svi su bili raznovrsni.

Ko sam ja danas kao programer
— Učestvovao u više od 70 komercijalnih projekata, od kojih je mnoge napisao od nule
— U desetak vlastitih projekata: open-source, startupovi
— 12 godina u IT-u. Prije 17 godina - napisao prvi program
- Microsoft najvrednija osoba 2016
— Microsoft Certified Professional
— Certificirani Scrum Master
— Dobro vladam C#/C++/Java/Python/JS
— Plata — 6000-9000 $/mjesečno. zavisno od opterećenja
— Moje glavno mjesto rada danas je berza slobodnih zanimanja Upwork. Preko njega radim za kompaniju koja se bavi NLP/AI/ML. Ima bazu od milion korisnika
— Objavljene 3 aplikacije u AppStore i GooglePlay
— Pripremam se za osnivanje vlastite IT kompanije oko projekta koji trenutno razvijam

Osim razvoja, pišem članke za popularne blogove, podučavam nove tehnologije i govorim na konferencijama. Opuštam se u fitnes klubu i sa porodicom.

To je vjerovatno sve o meni što se teme knjige tiče. Sljedeća je moja priča.

Priča. Počni.

Prvi put sam naučio šta je kompjuter kada sam imao 7 godina. Tek sam krenuo u prvi razred i na času likovne kulture dobili smo domaći da napravimo kompjuter od kartona, penaste gume i flomastera. Naravno da su mi roditelji pomogli. Mama je studirala na tehničkom fakultetu ranih 80-ih i znala je iz prve ruke šta je kompjuter. Tokom treninga, čak je uspjela da buši bušene kartice i ubaci ih u džinovsku sovjetsku mašinu koja je zauzimala lavovski dio sobe za trening.

Zadaću smo završili sa petkom jer smo sve marljivo radili. Pronašli smo debeli list A5 kartona. Od starih igračaka iz pjene smo izrezali krugove, a flomasterima nacrtali korisnički interfejs. Naš uređaj je imao samo nekoliko tastera, ali smo im mama i ja dodelili neophodnu funkcionalnost, a na času sam nastavniku pokazao kako pritiskom na dugme „Uključeno“ u uglu „ekrana“ zasvetli sijalica, ” dok istovremeno flomasterom crtate crveni krug.

Moj sljedeći susret sa kompjuterskom tehnologijom dogodio se otprilike u istoj dobi. Vikendom sam često posjećivao baku i djeda, koji su, pak, prodavali razno smeće i rado ga kupovali za novčiće. Stari satovi, samovari, kotlovi, značke, mačevi ratnika iz 13. vijeka i drugo. Među svim tim raznovrsnim stvarima, neko mu je doneo kompjuter koji je pokretao TV i audio snimač. Na sreću, moja baka je imala oboje. Sovjetske proizvodnje, naravno. TV Electron sa osam dugmadi za promjenu kanala. I Vega magnetofon s dvije kasete, koji bi čak mogao ponovo snimati audio kasete.
Programerska karijera. Poglavlje 1. Prvi program
Sovjetski kompjuter “Poisk” i periferni uređaji: TV “Electron”, kasetofon “Vega” i audio kaseta sa BASIC jezikom

Počeli smo da otkrivamo kako ceo ovaj sistem funkcioniše. Uz računar je bilo i nekoliko audio kaseta, veoma pohabano uputstvo za upotrebu i još jedna brošura pod naslovom “BASIC Programming Language”. Unatoč svom djetinjstvu, pokušao sam aktivno sudjelovati u procesu povezivanja kablova na kasetofon i TV. Zatim smo jednu od kaseta ubacili u pretinac kasetofona, pritisnuli dugme „Naprijed“ (tj. početak reprodukcije), a na TV ekranu se pojavila nerazumljiva pseudografika teksta i crtica.

Sama glavna jedinica izgledala je kao pisaća mašina, samo prilično požutjela i primjetne težine. Uz uzbuđenje djeteta, pritisnuo sam sve tipke, nisam vidio nikakve opipljive rezultate, potrčao sam i otišao u šetnju. Iako sam i tada pred sobom imao priručnik na BASIC jeziku sa primjerima programa koje zbog godina jednostavno nisam mogao prepisati.

Iz sjećanja iz djetinjstva sigurno se sjećam svih sprava koje su mi roditelji kupili, vježbajući s drugim rođacima. Prva zvečka bila je poznata igra “Vuk hvata jaja”. Završio sam ga prilično brzo, na kraju sam vidio dugoočekivani crtić i poželio nešto više. Zatim je bio Tetris. U to vrijeme vrijedio je 1,000,000 kupona. Da, bilo je to u Ukrajini ranih 90-ih i dobio sam milion za moj akademski uspjeh. Osjećajući se zasluženo kao milioner, naručio sam ovu složeniju igru ​​za svoje roditelje, gdje su morali pravilno rasporediti figure različitih oblika koje padaju odozgo. Na dan kupovine Tetris su mi nekontrolisano oduzeli moji roditelji, koji sami dva dana nisu mogli da ga se otarase.

Programerska karijera. Poglavlje 1. Prvi program
Čuveni "Vuk hvata jaja i tetris"

Zatim su postojale igraće konzole. Naša porodica je živjela u maloj kući, u kojoj su u susjednoj sobi živjeli i moji ujak i tetka. Moj ujak je bio vojni pilot, prolazio je kroz žarišta, pa je i pored skromnosti bio veoma uporan i plašio se malo čega, posle stvarnog
vojne operacije. Baš kao i mnogi ljudi 90-ih, moj ujak se bavio biznisom i imao prilično dobre prihode. Tako se u njegovoj sobi pojavio uvozni TV, videorekorder, a zatim i Suborov set-top box (analogno Dendyju). Oduzeo mi je dah gledajući ga kako igra Super Mario, TopGun, Terminator i druge igre. A kada mi je dao džojstik u ruke, mojoj sreći nije bilo granica.

Programerska karijera. Poglavlje 1. Prvi program
Osmobitna konzola "Syubor" i legendarni "Super Mario"

Da, kao i sva obična djeca koja su odrasla devedesetih, provodio sam cijeli dan u dvorištu. Ili igranje pionirske lopte, ili badminton, ili penjanje na drveće u bašti, gdje je raslo mnogo različitih voća.
Ali ovaj novi proizvod, kada možete kontrolisati Maria, preskakati prepreke i spasiti princezu, bio je višestruko zanimljiviji od bilo kojeg slijepca, laduške i klasika. Stoga su mi roditelji, uvidjevši moje iskreno interesovanje za prefikse, dali zadatak da naučim tablicu množenja. Tada će ispuniti moj san. Uče je u drugom razredu, a ja sam tek završio prvi. Ali rečeno i urađeno.

Bilo je nemoguće zamisliti jaču motivaciju od posjedovanja vlastite konzole za igru. I za nedelju dana sam lako odgovarao na pitanja „sedam devet“, „šest tri“ i slično. Test je prošao i kupili su mi željeni poklon. Kao što ćete dalje naučiti, konzole i kompjuterske igre su odigrale značajnu ulogu u zainteresovanju za programiranje.

Ovako je to išlo iz godine u godinu. Izlazila je sljedeća generacija igraćih konzola. Prvo Sega 16-bit, zatim Panasonic, pa Sony PlayStation. Igre su mi bile zabava kada sam bio dobar. Kada je bilo nekih problema u školi ili kod kuće, oduzeli su mi džojstike i, naravno, nisam mogao da igram. I naravno, i uhvatiti trenutak kada ste se vratili iz škole, a vaš otac se još nije vratio s posla da zauzme TV, takođe je bila svojevrsna sreća. Dakle, nemoguće je reći da sam bio zavisnik od kockanja ili da sam cijeli dan proveo igrajući igrice. Nije bilo takve prilike. Radije sam cijeli dan proveo u dvorištu, gdje sam i mogao nešto naći
zanimljivo. Na primjer, potpuno divlja igra - zračne pucnjave. Danas ovako nešto nećete vidjeti u dvorištima, ali tada je bio pravi rat. Paintball je samo dječja igra u odnosu na pokolj koji smo izazvali. Bilo je vazdušnih balona
napunjen gustim plastičnim mecima. I nakon što je pucao u drugog tipa iz neposredne blizine, ostavio je modricu na polovini ruke ili stomaka. Tako smo živeli.

Programerska karijera. Poglavlje 1. Prvi program
Pištolj igračka iz djetinjstva

Ne bi bilo loše spomenuti film “Hakeri”. Objavljena je tek 1995. godine, a u glavnoj ulozi 20-godišnja Angelina Jolie. Reći da je film ostavio snažan utisak na mene znači ništa ne reći. Uostalom, dječje razmišljanje percipira sve na pravi način.
A kako su ovi momci famozno čistili bankomate, gasili semafore i igrali se sa strujom po gradu - za mene je to bila magija. Tada mi je pala na pamet misao da bi bilo kul postati svemoćan kao Hakeri.
Nekoliko godina kasnije, kupio sam svaki broj časopisa Hacker i pokušao da hakujem Pentagon, iako još nisam imao internet.

Programerska karijera. Poglavlje 1. Prvi program
Moji junaci iz filma "Hakeri"

Pravo otkriće za mene je bio pravi računar, sa 15-inčnim monitorom sa lampom i sistemskom jedinicom zasnovanom na Intel Pentium II procesoru. Naravno, kupio ju je njegov ujak, koji se do kraja devedesetih popeo dovoljno visoko da si može priuštiti
takve igračke. Prvi put kada su mi uključili igru, nije bilo previše uzbudljivo. Ali jednog dana, došao je sudnji dan, zvezde su se poravnale i došli smo da posetimo našeg strica, koji nije bio kod kuće. Pitao sam:
— Mogu li da uključim računar?
„Da, radi s njim šta god hoćeš“, odgovorila je ljubazna tetka.

Naravno, radio sam s njim šta sam htio. Postojale su različite ikone na radnoj površini Windows 98. WinRar, Word, FAR, Klondike, igre. Nakon klika na sve ikone, moja pažnja se fokusirala na FAR Manager. Izgleda kao nerazumljiv plavi ekran, ali sa dugačkom listom (fajlova) koji se mogu pokrenuti. Klikom na svaki redom, uhvatio sam efekat onoga što se dešava. Neki su radili, neki nisu. Nakon nekog vremena shvatio sam da su fajlovi koji se završavaju na “.exe” najinteresantniji. Pokreću različite cool slike na koje također možete kliknuti. Tako da sam vjerovatno pokrenuo sve dostupne exe fajlove na stričevom kompjuteru, a onda su me jedva izvukli za uši iz superzanimljive igračke i odveli kući.

Programerska karijera. Poglavlje 1. Prvi program
Isti FAR menadžer

Zatim su postojali kompjuterski klubovi. Moj prijatelj i ja smo često odlazili tamo da igramo Counter Strike and Quake na mreži, što nismo mogli kod kuće. Često sam tražio od roditelja kusur da bih mogao pola sata da igram u klubu. Videvši moje oči, kao mačku iz Shreka, ponudili su mi još jedan unosan ugovor. Završim školsku godinu bez C, a oni mi kupe kompjuter. Ugovor je potpisan početkom godine, u septembru, a željeni PC trebalo je da stigne već u junu, uz poštovanje dogovora.
Dao sam sve od sebe. Čak sam i prodao svoj voljeni Sony Playstation iz emocija kako bih se manje odvlačio od učenja. Iako sam bio tako-tako učenik, 9. razred je za mene bio značajan. Krvavi nos, samo sam morao dobiti dobre ocjene.

Već u proleće, iščekujući kupovinu računara, desio se verovatno najznačajniji događaj u mom životu. Pokušavam da razmišljam unapred, i tako sam jednog lepog dana rekao svom ocu:
- Tata, ja ne znam da koristim kompjuter. Prijavite se na kurseve

Ne pre rečeno nego učinjeno. Nakon što je otvorio novine s oglasima, otac je pronašao blok ispisan sitnim slovima sa naslovom "Kompjuterski kursevi". Pozvao sam nastavnike i par dana kasnije već sam bio na ovim kursevima. Kursevi su se održavali na drugom kraju grada, u staroj panelnoj Hruščovskoj zgradi, na trećem spratu. U jednoj prostoriji su bila tri računara u nizu, a oni koji su hteli da uče, zapravo su se na njima obučavali.

Sjećam se svoje prve lekcije. Windows 98 se dugo učitavao, a onda je riječ uzeo nastavnik:
- Pa. Pred vama je Windows radna površina. Sadrži ikone programa. Na dnu se nalazi dugme Start. Zapamtite! Sav rad počinje sa dugmetom Start. Kliknite lijevom tipkom miša.
On je nastavio.
- Ovdje - vidite instalirane programe. Kalkulator, Notepad, Word, Excel. Takođe možete isključiti računar klikom na dugme „Isključi“. Probaj.
Konačno je prešao na teži dio za mene u to vrijeme.
„Na radnoj površini“, rekao je učitelj, možete vidjeti i programe koji se mogu pokrenuti dvostrukim klikom.
- Dvostruko!? - Kako je ovo uopšte?
- Pokusajmo. Pokrenite Notepad tako što ćete dvaput kliknuti na njega levim tasterom miša.

Da, schaass. Najteže je u tom trenutku bilo držati miša na jednom mjestu i istovremeno brzo kliknuti dvaput. Pri drugom kliku miš se malo trznuo i prečica zajedno s njim. Ali ipak sam uspio savladati tako nepremostivi zadatak tokom lekcije.
Zatim je uslijedila obuka za Word i Excel. Jednog dana su me jednostavno pustili da pregledam slike prirode i arhitektonskih spomenika. Bila je to najzanimljivija aktivnost u mom sjećanju. Mnogo zabavnije od učenja kako formatirati tekst u Wordu.

Pored mog računara, učili su drugi studenti. Nekoliko puta sam naišao na momke koji su pisali programe, dok su žestoko raspravljali o ovom procesu. I mene je ovo zanimalo. Sjećajući se filma Hakeri i umora od MS Officea, tražio sam da me prebace na kurseve
programiranje. Kao i svi značajni događaji u životu, i ovo se dogodilo spontano, iz interesa.

Stigla sam na prvu lekciju programiranja sa svojom majkom. Ne sećam se zašto. Očigledno je morala da pregovara o novim kursevima i da plati. Napolju je bilo proleće, već je pao mrak. Putovali smo kroz cijeli grad minibusom-Gazelom do periferije, stigli do ozloglašenog
panel Hruščov, popeo se na pod i pustio nas unutra.
Posjeli su me za krajnji kompjuter i otvorili program sa potpuno plavim ekranom i žutim slovima.
- Ovo je Turbo Pascal. Nastavnik je prokomentarisao njegov postupak.
- Vidite, ovdje sam napisao dokumentaciju kako to funkcionira. Pročitajte i pogledajte.
Ispred mene je bilo platno žutog, apsolutno nerazumljivog teksta. Pokušao sam da saznam nešto za sebe, ali nisam mogao. Kineska gramatika i to je to.
Konačno, nakon nekog vremena, voditelj kursa mi je dao odštampani A4 papir. Na njemu je pisalo nešto čudno, što sam ranije nazirao na monitorima momaka sa kurseva programiranja.
- Prepiši šta je ovde napisano. Učitelj je naredio i otišao.
počeo sam da pišem:
program Summa;

Pisao sam, istovremeno tražeći engleska slova na tastaturi. U Wordu sam barem trenirao ruski, ali ovdje moram naučiti druga slova. Program je kucan jednim prstom, ali vrlo pažljivo.
početak, kraj, var, cijeli broj - Šta je ovo? Iako sam učila engleski od prvog razreda i znala značenje mnogih riječi, nisam mogla sve to povezati. Kao istrenirani medvjed na biciklu, nastavio sam da pedaliram. Konačno nešto poznato:
writeln('Unesite prvi broj');
Onda - writeln('Unesite drugi broj');
Onda - writeln('Rezultat = ',c);
Programerska karijera. Poglavlje 1. Prvi program
Taj prvi Turbo Pascal program

Uf, napisao sam. Skinuo sam ruke s tastature i čekao da se guru pojavi za daljnje upute. Konačno je došao, skenirao ekran i rekao mi da pritisnem tipku F9.
"Sada je program kompajliran i provjeren za greške", rekao je guru
Nije bilo grešaka. Zatim je rekao da pritisnem Ctrl+F9, što sam takođe prvi put morao da objasnim korak po korak. Ono što trebate učiniti je držati Ctrl, a zatim pritisnuti F9. Ekran je postao crn i na njemu se konačno pojavila poruka koju sam razumio: "Unesite prvi broj."
Na komandu nastavnika upisala sam 7. Zatim drugi broj. Unesem 3 i pritisnem Enter.

Na ekranu se brzinom munje pojavljuje linija 'Rezultat = 10'. Bila je to euforija i nikada u životu nisam doživio nešto slično. Kao da se cijeli Univerzum otvorio preda mnom i ja sam se našao u nekakvom portalu. Toplina je prošla mojim telom, osmeh mi se pojavio na licu, a negde duboko u podsvesti shvatio sam - da je ovo moje. Veoma intuitivno, na emotivnom nivou, počeo sam da osećam ogroman potencijal u ovoj kutiji koja zuji ispod stola. Ima toliko stvari koje možete učiniti vlastitim rukama, a ona će to učiniti!
Da je ovo neka magija. Bilo je potpuno izvan mog pojma kako se taj žuti, nerazumljivi tekst na plavom ekranu pretvorio u zgodan i razumljiv program. Što se takođe računa! Ono što me iznenadilo nije sama računica, već činjenica da su se ispisani hijeroglifi pretvorili u kalkulator. Tada je postojao jaz između ova dva događaja. Ali intuitivno sam osjetio da ovaj komad hardvera može učiniti gotovo sve.

Skoro cijelim putem do kuće u minibusu sam se osjećao kao u svemiru. Ova slika sa natpisom “Rezultat” mi se vrtila u glavi, kako se to desilo, šta još ova mašina može da uradi, da li mogu da napišem nešto sam bez papira. Hiljadu pitanja koja su me zanimala, uzbuđivala i inspirisala u isto vrijeme. Imao sam 14 godina. Tog dana me je odabrala struka.

Da se nastavi ...

izvor: www.habr.com

Dodajte komentar