Programerska karijera. Poglavlje 1. Prvi program

Programerska karijera. Poglavlje 1. Prvi programDragi čitatelji Habra, predstavljam vam niz postova koje u budućnosti planiram objediniti u knjigu. Želio sam zaroniti u prošlost i ispričati svoju priču o tome kako sam postao programer i nastavio to biti.

O preduvjetima za ulazak u IT, putu pokušaja i pogrešaka, samoučenja i dječje naivnosti. Svoju ću priču započeti od ranog djetinjstva i završiti je današnjim danom. Nadam se da će ova knjiga biti posebno korisna onima koji tek studiraju za informatičku specijalnost.
A oni koji već rade u IT-u vjerojatno će povući paralele sa svojim putem.

U ovoj knjizi pronaći ćete reference na literaturu koju sam čitao, iskustvo komunikacije s ljudima s kojima su mi se putevi susreli tijekom studija, rada i pokretanja startupa.
Počevši od sveučilišnih nastavnika do velikih venture investitora i vlasnika višemilijunskih tvrtki.
Od danas je spremno 3.5 poglavlja knjige, od mogućih 8-10. Ako prva poglavlja naiđu na pozitivan odjek publike, objavit ću cijelu knjigu.

O meni

Ja nisam John Carmack, Nikolai Durov ili Richard Matthew Stallman. Nisam radio u tvrtkama kao što su Yandex, VKontakte ili Mail.ru.
Iako sam imao iskustva rada u velikoj korporaciji, o čemu ću vam svakako pričati. Ali mislim da stvar nije toliko u velikom imenu, koliko u samoj povijesti puta do postajanja programerom, pa nadalje, u pobjedama i porazima koji su se dogodili tijekom moje 12-godišnje karijere u komercijalnom razvoju. Naravno, neki od vas imaju puno više iskustva u IT-u. Ali vjerujem da su drame i pobjede koje su se događale tijekom moje sadašnje karijere vrijedne opisa. Događanja je bilo puno, a sva su bila raznolika.

Tko sam ja danas kao programer
— Sudjelovao u više od 70 komercijalnih projekata, od kojih je mnoge napisao od nule
— U desetak vlastitih projekata: open-source, startupi
— 12 godina u IT-u. Prije 17 godina - napisao prvi program
- Najvrjednija osoba Microsofta 2016
— Microsoft Certified Professional
— Certificirani Scrum Master
— Dobro vladam C#/C++/Java/Python/JS
— Plaća — 6000-9000 $/mjesečno. ovisno o opterećenju
— Moje glavno mjesto rada danas je freelance burza Upwork. Preko njega radim za tvrtku koja se bavi NLP/AI/ML. Ima bazu od 1 milijun korisnika
— Puštene 3 aplikacije u AppStore i GooglePlay
— Spremam se osnovati vlastitu IT tvrtku 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 fitness klubu i sa svojom obitelji.

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

Priča. Početak.

Prvi put sam naučio što je računalo kada sam imao 7 godina. Tek sam krenuo u prvi razred i na satu likovnog smo dobili zadaću napraviti računalo od kartona, pjenaste gume i flomastera. Naravno da su mi roditelji pomogli. Mama je studirala na tehničkom sveučilištu ranih 80-ih i iz prve je ruke znala što je računalo. Tijekom obuke čak je uspjela bušiti bušene kartice i ubaciti ih u ogromni sovjetski stroj koji je zauzimao lavovski dio dvorane za obuku.

Zadaću smo završili s peticom jer smo sve marljivo radili. Našli smo debeli list A5 kartona. Krugovi su izrezani od starih igračaka od pjenaste gume, a korisničko sučelje iscrtano je flomasterima. Naš uređaj je imao samo nekoliko tipki, ali mama i ja smo im dodijelile potrebnu funkcionalnost, a tijekom sata sam pokazala učitelju kako će pritiskom na tipku “On” zasvijetliti žaruljica u kutu “ekrana, ” dok istovremeno flomasterom crta crveni krug.

Moj sljedeći susret s računalnom tehnologijom dogodio se otprilike u istoj dobi. Vikendom sam često posjećivao baku i djeda, koji su zauzvrat prodavali razne smeće i također ih spremno kupovali za novčić. Stari satovi, samovari, kotlovi, značke, mačevi ratnika iz 13. stoljeća i drugo. Među svom tom raznolikošću, netko mu je donio računalo koje je pokretalo TV i audio rekorder. Srećom, moja baka je imala oboje. Sovjetske proizvodnje, naravno. TV Electron s osam tipki za promjenu kanala. I magnetofon Vega s dvije kasete, koji je mogao čak i presnimiti audio vrpce.
Programerska karijera. Poglavlje 1. Prvi program
Sovjetsko računalo “Poisk” i periferija: TV “Electron”, magnetofon “Vega” i audio kaseta s jezikom BASIC

Počeli smo shvaćati kako cijeli ovaj sustav funkcionira. Uz računalo je bilo nekoliko audio kazeta, vrlo istrošen priručnik s uputama i još jedna brošura s naslovom “OSNOVNI programski jezik”. Unatoč djetinjstvu, pokušao sam aktivno sudjelovati u procesu spajanja kabela na magnetofon i TV. Zatim smo ubacili jednu od kaseta u pretinac magnetofona, pritisnuli tipku “Naprijed” (tj. početak reprodukcije), a na TV ekranu se pojavila nerazumljiva pseudografika teksta i crtica.

Sama glavna jedinica izgledala je poput pisaćeg stroja, samo prilično požutjela i primjetne težine. S dječjim uzbuđenjem pritiskala sam sve tipke, nisam vidjela nikakve opipljive rezultate, trčala sam i šetala. Iako sam i tada pred sobom imao priručnik o jeziku BASIC s primjerima programa koji jednostavno zbog godina nisam mogao prepisati.

Iz sjećanja iz djetinjstva sigurno se sjećam svih naprava 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 dosta brzo, vidio dugo očekivani crtić na kraju i poželio nešto više. Zatim je tu bio Tetris. U to vrijeme vrijedio je 1,000,000 kupona. Da, bilo je to u Ukrajini ranih 90-ih, i dobio sam milijun za moj akademski uspjeh. Osjećajući se zasluženo kao milijunaš, naručio sam ovu složeniju igru ​​za svoje roditelje, gdje su morali pravilno posložiti figure različitih oblika koje padaju odozgo. Na dan kupnje, Tetris su mi nekontrolirano oduzeli roditelji, koji ga se sami nisu mogli riješiti dva dana.

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

Zatim su bile igraće konzole. Naša obitelj je živjela u maloj kući, gdje su moji stric i teta također živjeli u susjednoj sobi. Moj stric je bio vojni pilot, prošao je žarišta, pa je unatoč svojoj skromnosti bio vrlo uporan i malo se čega bojao, nakon stvarnog
vojne operacije. Baš kao i mnogi ljudi 90-ih, moj se ujak počeo baviti biznisom i imao prilično dobre prihode. Tako su se u njegovoj sobi pojavili uvozni televizor, videorekorder, a potom i Subor set-top box (analogno Dendyju). Oduzimao mi je dah gledajući ga kako igra Super Mario, TopGun, Terminator i druge igrice. A kad mi je predao joystick u ruke, mojoj sreći nije bilo kraja.

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

Da, kao i sva obična djeca koja su odrastala devedesetih, po cijele dane sam provodio u dvorištu. Ili igranje pionir balla, ili badmintona, ili penjanje po drveću u vrtu, gdje je raslo mnogo raznog voća.
Ali ovaj novi proizvod, kada možete kontrolirati Maria, preskakati prepreke i spasiti princezu, bio je višestruko zanimljiviji od bilo kojeg slijepca, laduške i klasike. Stoga su mi roditelji, vidjevši moje istinsko zanimanje za prefikse, dali zadatak da naučim tablicu množenja. Tada će oni ispuniti moj san. Uče joj u drugom razredu, a ja sam tek završila prvi. Ali, rečeno i učinjeno.

Bilo je nemoguće zamisliti jaču motivaciju od vlastite igraće konzole. I u roku od tjedan dana s lakoćom sam odgovarao na pitanja "sedam devet", "šest tri" i slično. Test je prošao i kupili su mi željeni dar. Kao što ćete dalje saznati, konzole i računalne igre odigrale su značajnu ulogu u tome da me zainteresiraju za programiranje.

Tako je to išlo iz godine u godinu. Pojavljivala se sljedeća generacija igraćih konzola. Prvo Sega 16-bitna, pa Panasonic, pa Sony PlayStation. Igre su bile moja zabava kad sam bio dobar. Kad je bio nekakav problem u školi ili kod kuće, oduzeli su mi joysticke i, naravno, nisam mogao igrati. I naravno, uhvatiti trenutak kada ste se vratili iz škole, a vaš otac se još nije vratio s posla da zauzme televizor, također je bila svojevrsna sreća. Stoga je nemoguće reći da sam bio ovisnik o kockanju ili da sam provodio cijele dane igrajući igrice. Takve prilike nije bilo. Radije sam cijeli dan proveo u dvorištu, gdje sam također mogao nešto pronaći
zanimljiv. Na primjer, potpuno divlja igra - zračna pucanja. Danas ovako nešto nećete vidjeti u dvorištima, ali tada je bio pravi rat. Paintball je samo dječja igra u usporedbi s pokoljem koji smo izazvali. Bilo je zračnih balona
napunjene gustim plastičnim mecima. I upucavši drugog iz neposredne blizine, ostavio mu je masnicu na pola ruke ili trbuha. Tako smo živjeli.

Programerska karijera. Poglavlje 1. Prvi program
Igračka pištolj iz djetinjstva

Ne bi bilo naodmet spomenuti i film “Hakeri”. Objavljen je tek 1995. godine, s 20-godišnjom Angelinom Jolie u glavnoj ulozi. Reći da je film ostavio snažan dojam na mene je ne reći ništa. Na kraju krajeva, dječje mišljenje sve doživljava zdravo za gotovo.
A kako su ti dečki na slavu čistili bankomate, gasili semafore i igrali se strujom po gradu - za mene je to bila magija. Tada mi je pala na pamet da bi bilo cool postati svemoćan kao Hakeri.
Nekoliko godina kasnije kupio sam svaki broj časopisa Hacker i pokušao hakirati 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 PC, s 15-inčnim monitorom lampe i sistemskom jedinicom temeljenom na procesoru Intel Pentium II. Naravno, kupio ju je njegov stric, koji se do kraja devedesetih toliko uzdigao da si je mogao priuštiti
takve igračke. Prvi put kad su mi upalili igricu, nije bilo previše uzbudljivo. Ali jednog dana dođe sudnji dan, zvijezde se poklope i mi dođemo u posjet stricu kojeg nije bilo kod kuće. Pitao sam:
— Mogu li uključiti računalo?
"Da, radi s njim što god želiš", odgovorila je teta puna ljubavi.

Naravno, radila sam s njim što sam htjela. Na radnoj površini sustava Windows 98 bile su različite ikone. WinRar, Word, FAR, Klondike, igre. Nakon klika na sve ikone, moja pažnja se usmjerila na FAR Manager. Izgleda kao nerazumljiv plavi ekran, ali s dugačkim popisom (datoteka) koje je moguće pokrenuti. Kliknuvši na svaki redom, uhvatio sam učinak onoga što se događalo. Neki su radili, neki nisu. Nakon nekog vremena shvatio sam da su najzanimljivije datoteke koje završavaju na “.exe”. Lansiraju različite cool slike na koje također možete kliknuti. Pa sam vjerojatno pokrenuo sve dostupne exe datoteke na stričevom računalu, a onda su me jedva izvukli za uši od super-zanimljive igračke i odnijeli kući.

Programerska karijera. Poglavlje 1. Prvi program
Isti FAR Manager

Zatim su postojali računalni klubovi. Moj prijatelj i ja smo često išli tamo igrati Counter Strike i Quake online, što nismo mogli raditi kod kuće. Često sam tražio sitniš od roditelja kako bih mogao pola sata igrati u klubu. Vidjevši moje oči kao u mačka iz Shreka, ponudili su mi još jedan unosan ugovor. Završim školsku godinu bez trojke, a oni mi kupe računalo. Ugovor je potpisan početkom godine, u rujnu, a željeni PC trebao je stići već u lipnju, uz poštivanje dogovora.
Dao sam sve od sebe. Čak sam prodao svoj voljeni Sony Playstation iz osjećaja kako bih se manje ometao od učenja. Iako sam bila tako-tako učenica, 9. razred mi je bio značajan. Krvavi nos, samo sam morao dobiti dobre ocjene.

Već u proljeće, očekujući kupnju osobnog računala, dogodio se vjerojatno najznačajniji događaj u mom životu. Pokušavam razmišljati unaprijed i tako sam jednog lijepog dana rekao ocu:
- Tata, ja ne znam koristiti računalo. Upišimo se na tečajeve

Rečeno, učinjeno. Otac je, otvorivši novine s oglasima, pronašao blok ispisan sitnim slovima s naslovom "Tečajevi rada na računalu". Zvala sam profesore i par dana kasnije već sam bila na tim tečajevima. Tečajevi su se održavali na drugom kraju grada, u staroj panel hruščovki, na trećem katu. U jednoj prostoriji bila su tri računala u nizu, a oni koji su htjeli učiti zapravo su trenirali na njima.

Sjećam se svoje prve lekcije. Windows 98 se dugo učitavao, a onda je učiteljica preuzela riječ:
- Dakle. Pred vama je Windows radna površina. Sadrži ikone programa. Na dnu je gumb Start. Zapamtiti! Sav rad započinje gumbom Start. Pritisnite ga lijevom tipkom miša.
Nastavio je.
- Ovdje - vidite instalirane programe. Kalkulator, Notepad, Word, Excel. Također možete isključiti svoje računalo klikom na gumb "Isključi". Probaj.
Na kraju je prešao na dio koji je za mene u to vrijeme bio teži.
“Na radnoj površini”, rekao je učitelj, također možete vidjeti programe koji se mogu pokrenuti dvoklikom.
- Dvostruko!? - Kako je ovo općenito?
- Pokušajmo. Pokrenite Notepad dvostrukim klikom lijevom tipkom miša.

Da, schaass. Najteže je u tom trenutku bilo držati miš na jednom mjestu i istovremeno dvaput brzo kliknuti. Na drugi klik, miš se malo trznuo i prečac zajedno s njim. Ali ipak sam uspio prevladati tako nepremostiv zadatak tijekom lekcije.
Zatim je uslijedila obuka u Wordu i Excelu. Jednog dana su me jednostavno pustili da pregledavam slike prirode i arhitektonskih spomenika. Bila je to najzanimljivija aktivnost u mom sjećanju. Mnogo zabavnije od učenja kako oblikovati tekst u Wordu.

Pored mog računala učili su drugi studenti. Nekoliko puta sam naišao na dečke koji su pisali programe, žustro raspravljajući o ovom procesu. Ovo je i mene zanimalo. Sjetivši se filma Hakeri i umorna od MS Officea, tražila sam premještaj na tečajeve
programiranje. Kao i svi značajni događaji u životu, i ovaj se dogodio spontano, iz interesa.

Na svoj prvi sat programiranja stigao sam s mamom. Ne sjećam se zašto. Očito je morala pregovarati za nove tečajeve i platiti. Vani je bilo proljeće, pao je već mrak. Putovali smo kroz cijeli grad minibusom-Gazela do periferije, stigli do zloglasnog
ploča Hruščov, popeo se na kat i pustio nas unutra.
Posjeli su me za krajnji kompjuter i otvorili program sa potpuno plavim ekranom i žutim slovima.
- Ovo je Turbo Pascal. Učiteljica je komentirala njegov postupak.
- Vidite, evo napisao sam dokumentaciju kako to radi. Pročitajte i pogledajte.
Ispred mene je bilo platno žutog, apsolutno nerazumljivog teksta. Pokušao sam sam nešto saznati, ali nisam uspio. Kineska gramatika i to je to.
Napokon, nakon nekog vremena, voditelj tečaja mi je pružio isprintani A4 papir. Na njemu je pisalo nešto čudno, što sam prije toga vidio na monitorima momaka sa tečajeva programiranja.
- Prepiši što je ovdje napisano. Učitelj zapovjedi i ode.
Počeo sam pisati:
program Summa;

Pisao sam, istovremeno tražeći engleska slova na tipkovnici. U Wordu sam barem trenirao ruski, ali ovdje moram naučiti druga slova. Program je tipkan jednim prstom, ali vrlo pažljivo.
početak, kraj, var, cijeli broj - Što je to? Iako sam učio engleski od prvog razreda i znao značenje mnogih riječi, nisam mogao sve to povezati. Poput dresiranog medvjeda na biciklu nastavio sam vrtjeti pedale. Napokon 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

Fuj, napisala sam. Skinuo sam ruke s tipkovnice i čekao da se guru pojavi za daljnje upute. Napokon je došao, pregledao ekran i rekao mi da pritisnem tipku F9.
"Sada je program sastavljen i provjeren ima li pogrešaka", rekao je guru
Nije bilo grešaka. Zatim je rekao da pritisnem Ctrl+F9, što sam također prvi put morao objasniti korak po korak. Ono što trebate učiniti je držati Ctrl, zatim pritisnuti F9. Zaslon je postao crn i na njemu se konačno pojavila poruka koju sam razumio: “Unesite prvi broj.”
Na zapovijed učiteljice upisala sam 7. Zatim drugi broj. Unesem 3 i pritisnem Enter.

Redak 'Rezultat = 10' pojavljuje se na ekranu brzinom munje. Bila je to euforija i nikad u životu nisam doživio ništa slično. Kao da se cijeli Svemir otvorio preda mnom i našla sam se u nekakvom portalu. Toplina mi je prošla tijelom, osmjeh mi se pojavio na licu, a negdje duboko u podsvijesti shvatio sam - da je ovo moje. Vrlo intuitivno, na emocionalnoj razini, počeo sam osjećati ogroman potencijal u ovoj zujavoj kutiji ispod stola. Ima toliko stvari koje možete učiniti vlastitim rukama, a ona će to učiniti!
Da je ovo nekakva magija. Nije mi bilo jasno kako se taj žuti, nerazumljivi tekst na plavom ekranu pretvorio u zgodan i razumljiv program. Što se također računa! Ono što me iznenadilo nije sam izračun, već činjenica da su se ispisani hijeroglifi pretvorili u kalkulator. Između ta dva događaja tada je postojao jaz. Ali intuitivno sam osjećao da ovaj komad hardvera može učiniti gotovo sve.

Gotovo cijelim putem do kuće u minibusu sam se osjećao kao u svemiru. Ova slika s natpisom “Rezultat” vrtjela mi se u glavi, kako se to dogodilo, što još može ova mašina, mogu li sam nešto napisati bez papira. Tisuću pitanja koja su me zanimala, uzbuđivala i inspirirala u isto vrijeme. Imala sam 14 godina. Taj dan je struka izabrala mene.

Da bi se nastavio ...

Izvor: www.habr.com

Dodajte komentar