Programerska karijera. Poglavlje 3. Sveučilište

Nastavak priče "Karijera programera".

Nakon završene večernje škole, došlo je vrijeme za odlazak na fakultet. U našem gradu postojalo je jedno tehničko sveučilište. Imao je i jedan fakultet “Matematike i računarstva” koji je imao jedan smjer “Računalni sustavi” na kojem su se školovali budući informatičari – programeri i administratori.
Izbor je bio mali i prijavio sam se za specijalnost “Programiranje računalnog inženjerstva”. Pred nama su bila 2 prijemna ispita. U jeziku i matematici.
Ispitu je prethodio razgovor, a izbor oblika izobrazbe – budžet ili ugovor, tj. besplatno ili za novac.

Moji roditelji su bili prisutni na mom intervjuu i bili su zabrinuti oko prijema. Naravno, odabrali su ugovorni oblik školovanja. Inače, koštao je oko 500 dolara godišnje, što je 2003. godine bio veliki novac, pogotovo za naše malo mjesto. Dobro se sjećam očevog dijaloga s djevojkom iz prijemnog ureda:
Djevojčica: Možete pokušati položiti ispite na budžetu, a ako ne uspije, prijeđite na ugovor. Možete platiti na rate.
Otac: Ne, već smo odlučili da ćemo se prijaviti za ugovor
Djevojčica: Pa zašto, ne riskirate ništa
Otac: Ne, još uvijek postoji rizik. Reci mi, da li se svi prijavljuju za ugovor?
Djevojčica: Da, svi to rade. Vjerojatno samo potpuni debili ne mogu
Otac: Onda imamo priliku... rekao je cereći se i potpisali smo dokumente za prijem

Naravno, nastupi iz srednje škole još su bili svježi u sjećanju mojih roditelja, pa s godinama razumijem zašto su to rekli.

U ljeto, prije prijemnog, nastavio sam kupovati knjige za cijelih 40 dolara koje mi je baka dala od svoje mirovine.
Od nezaboravnog i značajnog:
1. "UML 2.0. Objektno orijentirana analiza i dizajn". Knjiga koja me naučila kako dizajnirati softver bilo koje složenosti, razmišljati o arhitekturi, rastaviti sve na komponente, napisati slučajeve upotrebe i nacrtati UML dijagrame. Ovo je znanje koje je potrebno starijim osobama, voditeljima i arhitektima. Oni koji materijaliziraju sustav iz praznine, kada postoji samo opis ideje.
Poznajem ljude koji već imaju preko 30 godina, a još uvijek ne mogu donijeti odluku osim ako nema naredbe odozgo, od nekog višeg programera. U freelancingu i radu na daljinu, kada često radite jedan na jedan s klijentom, ovo je znanje također neprocjenjivo.
Također su relevantni za indie programere koji stvaraju nove aplikacije i usluge. Iako se malo ljudi zamara detaljnim dizajnom. Zato imamo tako kvalitetan softver, koji guta svu memoriju, s krivim UX-om.
2. "ANSI C++ 98 standard". Nije baš knjiga, ali ima više od 800 stranica pozadinskih informacija. Naravno, nisam ga čitao odjeljak po odjeljak, već sam se radije pozivao na određena jezična pravila kada sam razvijao svoj C++ prevodilac. Dubina poznavanja jezika, nakon proučavanja i implementacije standarda, ne može se opisati nekim divnim epitetom. Možemo reći da znate sve o jeziku, pa čak i više. Vrlo dug, mukotrpan rad na proučavanju standarda. Ali čekalo me 5 godina fakulteta pa me nitko nije tjerao
3. "Delphi 6. Praktični vodič.". Bio je to brz skok u svijet GUI-a i laskanja obliku. Ulaznog praga gotovo da i nije bilo, a Pascala sam već dobro poznavao. Dok sam studirao na sveučilištu, napisao sam lavovski dio komercijalnih programa u Delphiju. Ovo je bio softver za studente sveučilišnog diplomskog studija, računovodstvo za mala poduzeća, vladu. institucija. Zatim je bilo nekoliko slobodnih naloga. Sredinom XNUMX-ih Delphi je dominirao razvojnim tržištem Windowsa. Do sada, na kasama u lokalnim trgovinama možete vidjeti programe s poznatim fontovima i kontrolama, što odmah razlikuje Delphi aplikaciju od bilo koje druge
4. "MFC Vodič". Nakon što smo svladali Delphi, bilo je logično nastaviti kreirati UI u C++. Bilo je puno teže, nije sve išlo i bilo je razumljivo. No, tu sam tehnologiju doveo i do faze primjene u komercijalnim projektima. Jedna njemačka antivirusna tvrtka do danas distribuira moj program napisan u MFC-u.
5. "3 diska s MSDN bibliotekom 2001". Nisam odmah imao internet, a koliko se sjećam, MSDN Library nije bio online 2003. godine. U svakom slučaju, bilo mi je lakše instalirati MSDN priručnik na svoje lokalno računalo i lako pronaći dokumentaciju za bilo koju WinApi funkciju ili MFC klasu.
Programerska karijera. Poglavlje 3. Sveučilište
Najznačajnije knjige pročitane u razdoblju 2002.-2004

Riječ je o knjigama koje su čitane u razdoblju 2002.-2004. Naravno, sada je ovo otrcano nasljeđe, koje se prepisuje u serijama koristeći .NET i Web tehnologije. Ali ovo je moj put, možda je netko od vas imao sličan.

Prvi semestar

Krajem ljeta vrijeme je za polaganje prijemnih ispita na fakultetu. Sve je išlo glatko. Položio sam ispit iz jezika i matematike i upisao sam prvu godinu smjera Programiranje računalnih sustava.
Prvog rujna, očekivano, krenula sam na prve sate u životu. “Vrijeme studiranja najsjajnije je razdoblje u životu”, rekla mi je majka. Svojevoljno sam povjerovao.
Prvog dana prošla su 3 para općeobrazovnih predmeta, upoznali su se svi u grupi, a fakultet je sveukupno ostavio ugodan dojam.
Napokon su nas počeli učiti pravom programiranju u C-u! A, osim toga, predavali su povijest informatike, digitalne tehnologije i mnoge druge informacije koje su bile relevantne za mene. Čak i psovanje. analiza je bila korisna, jer mi je omogućila da dublje razumijem ono što je duboko poštovani Donald Knuth napisao.

Satovi programiranja za mene su protekli u atmosferi vožnje. Napokon su ljudi došli k meni za pomoć. Osjećao sam se potrebnim. Na početku sata dobili smo zadatak napisati program. Zadatak je osmišljen za jedan i pol par, zatim pola sata za testiranje. Zadaću sam uspio napisati za 3-5 minuta, a ostatak vremena šetao sam po uredu i pomagao drugima da shvate problem.
Nije bilo dovoljno računala za cijelu grupu, pa smo najčešće sjedili po dvoje za jednim računalom. Vidjevši moje sposobnosti, troje, četvero, ponekad i 5-6 ljudi sjelo je kraj mog stola i bez oklijevanja sjesti kako bi naučili ono što sam ja naučio prije par godina iz knjige Kernighana i Ritchieja.
Moji kolege iz razreda vidjeli su moje sposobnosti i sami su smišljali pitanja ili su se ponudili da se samo družimo nakon nastave. Tako sam stekao mnogo prijatelja, s većinom smo prijatelji i danas.

Zimi je došlo vrijeme za prvu sesiju. Ukupno je bilo potrebno polagati 4 predmeta: 2 vrste više matematike, povijest i programiranje. Sve je prošlo, neki 4 boda, neki 3. I automatski mi je dodijeljeno programiranje. Učitelji su već znali moje vještine, pa nisu vidjeli smisla testirati me. Sretno sam se pojavio na sjednici sa svojom knjižicom kako bih odmah dobio potpis na nju i htio sam se vratiti kući kada su me kolege iz razreda zamolili da ostanem i stanem ispred vrata. Dobro. Smjestivši se na prozorsku dasku, na izlazu iz ureda, počeo sam čekati. Pored mene se motao još jedan tip, koji je također automatski položio ispit.
"Zašto ostaješ ovdje", upitao sam
— „Želim zaraditi rješavajući probleme. Zašto si ovdje?
- "Ja isto. Samo neću zaraditi. Ako vam treba pomoć, onda ću iz dobrote srca odlučiti.”
Moj protivnik je oklijevao i promrmljao nešto kao odgovor.

Nakon nekog vremena kolege iz razreda počeli su napuštati publiku noseći sa sobom presavijene papiriće na kojima su bili zadaci s ispita.
“Pomozi mi da se odlučim”, zamoli prvi smionik. “Dobro, sad ću odlučiti”, odgovorio sam. Nije prošlo ni 5 minuta kad sam kemijskom olovkom naškrabao rješenje na zgužvanom papiru i vratio ga. Vidjevši da shema funkcionira, ljudi su počeli napuštati publiku puno češće, a ponekad čak i po dva ili tri odjednom.
Na mojoj radnoj prozorskoj dasci bila su tri hrpe lišća. Jedno pakiranje sadrži novopristigle TODO listove. Ispred mene je bio list In Progress, a pokraj njega je ležalo pakiranje “Done”.
Ovo je bio moj najljepši sat. Cijela grupa, koja je brojala skoro 20 ljudi, obratila mi se za pomoć. I svima sam pomogao.
A tip koji je želio zaraditi žurno je otišao nakon nekoliko minuta, shvativši da se ovdje nema što uhvatiti, sva je pažnja bila usmjerena na altruista.
Cijela grupa položila je ispit s četvorkom i peticom, a ja sada imam 4 prijatelja i nepokolebljiv autoritet u programiranju.

Prvi novac

Nakon zimske sesije cijelim fakultetom pročulo se da postoji tip koji može riješiti bilo koji programerski problem koji nam se zada kod kuće ili za vrijeme sesije. A priča se širila ne samo među brucošima, nego i među studentima viših godina.
Kao što sam već napisao, razvio sam prijateljske odnose sa svima u grupi nakon “najfinijeg sata” na ispitu, a s par momaka smo počeli vrlo blisko komunicirati. Postali smo pravi prijatelji i provodili smo puno vremena izvan fakulteta. Radi jednostavnosti prezentacije, nazovimo ih Elon i Alen (nadimci su bliski pravim).
Zvali smo Elona po imenu, ali Alain je dobio nadimak u čast Alaina Delona, ​​zbog njegove sposobnosti da zavede svaku ljepoticu. Djevojke su doslovno kružile oko njega, u raznim brojevima. U pogledu upoznavanja ljudi i započinjanja veza za noć, Alain Delon nije imao ravnog. Bio je pravi alfa mužjak ženskog spola, što je većini informatičara potpuno neobično. Osim ljubavnih afera, Alain je po vokaciji bio dizajner. A ako je trebao nešto nacrtati, primjerice tada popularne treptajuće bannere formata Web 1.0, onda je to s lakoćom radio.

Mnogo se više može reći o Elonu. I danas se s njim susrećemo, deset godina nakon studija. U svojim prvim godinama bio je mršav, prilično šutljiv tip. (Isto se ne može reći za današnjeg tipa s velikim licem u džipu). Međutim, ja sam bio isti - mršav i šutljiv. Stoga mislim da smo brzo našli zajednički jezik.
Često smo se nakon nastave ja, Elon i Alen okupljali u pivnici, prekrivenoj ceradom. Prvo, bilo je preko puta sveučilišta, a drugo, za "rublju" i 50 kopejki mogli ste dobiti neke stvari za 2 sata zapaljive zabave. Kao točeno pivo i krekeri. Ali poanta je bila drugačija.
Elon i Alen bili su iz drugih gradova i živjeli su u iznajmljenoj sobi. Stalno im je nedostajalo novca, a bilo je i trenutaka kada su morali gladovati. Sretni trenuci, kada su na karticu dobili stipendiju od 10 dolara, slavili su isti dan i tada je došlo vrijeme da se “stegne remen” i živi od onoga što Bog pošalje.

Naravno, ova situacija motivirala je gostujuće studente da traže načine za dodatnu zaradu. A ispred njih, na dohvat ruke, sjedila je "bistra glava" u mom obliku. Koja je također povodljiva i rijetko odbija pomoći ljudima.
Ne znam jesam li dobro opisao tu situaciju, ali na kraju su ta druženja u pubu dovela do stvaranja prve informatičke tvrtke u mojoj karijeri pod nazivom SKS. Ime je jednostavno sastavljeno od prvih slova naših prezimena. Naša mlada tvrtka, koju predstavljaju tri osnivača, u sljedeće četiri godine razdvojila je konkurenciju i cijelo sveučilište.

Elon je bio ROP. Odnosno voditelj odjela prodaje. Naime, njegove su odgovornosti uključivale pronalaženje novih klijenata za naš outsourcing posao. Kanal prodaje bili su vodoravno tiskani leci formata A4, s jednostavnim natpisom: “Rješavanje programskih problema”. A ispod je Elonov broj telefona.
Ovakva vanjska reklama postavljena je na svakom katu gdje su se mogli pojaviti studenti programiranja.
Dodatni, jači u smislu lojalnosti kupaca, bio je kanal prodaje usmenom predajom.

Poslovni model je bio jednostavan. Preporukom ili oglasom javio nam se student. Dao je opis programerskog problema koji je trebalo riješiti do određenog roka, a ja sam ga riješio po studentskoj cijeni. Elon je bio uključen u prodaju i primao je svoj postotak. Alain Delon je rjeđe sudjelovao u našem poslu, ali ako smo trebali napraviti dizajn, sliku ili privući dodatne klijente, uvijek je bio od pomoći. Svojim šarmom doveo nam je dosta novih ljudi. Sve što sam trebao učiniti bilo je obraditi ovaj cjevovod brzinom od 5-10 zadataka dnevno. Rokovi su bili strogi – ne više od tjedan dana. I češće nego ne, to je moralo biti učinjeno jučer. Stoga su me takve okolnosti brzo naučile pisati programe u “flowu”, bez da me ometa svaka sitnica poput potresa magnitude 5,9 ili velike nesreće izvan prozora.

U najtoplijoj sezoni, prije sjednice, dakle u prosincu i svibnju, činilo mi se da na računalu imam sve fakultetske zadatke. Srećom, većina ih je bila iste vrste, pogotovo kada nam se javila veletrgovina koju predstavlja predstavnik cijele grupe. Tada je bilo moguće napraviti 20 zadataka, primjerice u asembleru, mijenjajući samo 2-3 retka. U takvoj sezoni olovo je teklo poput rijeke. Jedino što nam je nedostajalo bile su diskete. U 2003.-2005. godini siromašni studenti u našem gradu nisu imali prijenos novca putem interneta. Štoviše, nije bilo jamstava plaćanja, što se sada zove escrow. Stoga je tvrtka SKS, kao izvođač narudžbi, zakazala termin na području Sveučilišta te smo dali disketa s rješenjem. Gotovo da nije bilo povrata novca (od engleskog refund - povrat plaćanja na zahtjev klijenta). Svi su bili sretni i dobili su svojih 4-5 bodova ako su mogli naučiti što sam dodao u datoteku readme.txt na disketi. Iako je jednostavan demo programa koji radi u potpunosti također često izazivao wow efekt među učiteljima.

Cijena je, naravno, bila smiješna, ali uzeli smo je u količini. Na primjer, tipični kućni zadatak koštao je 2-3 USD. Kurs 10 $. Jednom je ispao i jackpot u obliku programa za kandidatski rad, i to čak 20 dolara za prijavu za apsolventa koji se priprema za obranu. Tijekom vruće sezone taj se prihod može pomnožiti sa 100 klijenata, što je u konačnici bilo više od prosječne plaće u gradu. Osjećali smo se cool. Mogli su si priuštiti noćne klubove i tamo se zabaviti, umjesto da se dave u čebureku za zadnji novčić.

S gledišta mojih vještina, one su se umnožavale sa svakim novim studentskim zadatkom. Počele su nam stizati prijave s drugih fakulteta, s drugačijim programom izobrazbe. Neki studenti viših godina već su koristili Javu i XML u svom punom potencijalu kada smo se mi bavili C++/MFC. Nekima je trebao Assembler, drugima PHP. Naučio sam cijeli zoološki vrt tehnologija, knjižnica, formata za pohranu podataka i algoritama za sebe pri rješavanju problema.
Taj univerzalizam ostao je u meni do danas. U radu na projektima također se koriste različite tehnologije i platforme. Sada mogu napisati softver ili aplikaciju za bilo koju platformu, OS ili uređaj. Kvaliteta će, naravno, varirati, ali za posao kojim se uglavnom bavim budžet je obično bitan. A orkestar jednog čovjeka za njih znači rezanje budžeta točno onoliko koliko programera mogu zamijeniti svojim vještinama.

Ako govorimo o najvećoj koristi koju mi ​​je donio studij na fakultetu, to ne bi bila predavanja iz algoritama ili filozofije. I neće "naučiti učiti", kako je moderno reći o sveučilištima. Prvo, to će biti ljudi s kojima smo ostali u prijateljskim odnosima nakon treninga. I drugo, to je ista tvrtka SKS koja me je iskovala u profesionalnog programera, sa stvarnim i raznolikim narudžbama.
Htio bih zapamtiti frazu koja je vrlo prikladna za ovaj dio priče: Osoba postaje programer kada drugi ljudi počnu koristiti njegove programe i plaćaju za to..

Tako je brend tvrtke SKS bio nadaleko poznat ne samo u studentskim krugovima, već i među nastavnicima. Čak je bio slučaj da je jedan od nastavnika došao k meni doma kako bih mu pomogao napisati program za njegove znanstvene potrebe. On mi je pak pomogao u specijalizaciji. Oboje smo se toliko zadubili u posao da smo oboje zaspali u zoru. On je na kauču, a ja na stolcu ispred kompjutera. Ali izvršili su svoje zadatke i obojica su bili zadovoljni onim što su radili.

Twist sudbine

Počela je 4. godina sveučilišta. Posljednji tečaj po čijem se završetku stječe diploma prvostupnika. Općeobrazovnih predmeta praktički nije bilo, već samo onih vezanih uz računala i mreže. Sada mi je ponekad žao što nisam imao vremena ili nisam pokazao interes za istu elektroniku ili unutarnju strukturu mreža. Sada ovo završavam iz nužde, ali siguran sam da je ovo osnovno znanje potrebno svakom programeru. S druge strane, ne možete znati sve.
Završavao sam s pisanjem vlastitog C++ prevoditelja, koji je već bio u stanju provjeriti kod za pogreške u skladu sa standardom i generirati upute za sklapanje. Sanjao sam da ću moći prodati svoj prevodilac za 100 dolara po licenci. To sam pomnožio s tisuću kupaca i mentalno
prebačen u Hammer, s basom 50 Cent-a iz zvučnika i zgodnim djevojkama na stražnjem sjedalu. Što možeš, s 19 godina - takvi su prioriteti. Trik mog domaćeg prevoditelja bio je u tome što je proizvodio greške na ruskom, umjesto na engleskom iz Visual C++ i gcc, što nije svima razumljivo. Vidio sam ovo kao ubojitu značajku koju još nitko na svijetu nije izmislio. Mislim da nema smisla dalje pričati. Nije došlo do prodaje. Međutim, postigao sam duboko poznavanje jezika C++, što me hrani i dan danas.

Na četvrtoj sam godini sve manje išao na fakultet jer sam znao većinu programa. A ono što nisam znao, riješio sam trampom sa studentom koji se razumio, primjerice, u elektroniku ili teoriju vjerojatnosti. Što sve nismo smislili tada. I nevidljive slušalice na žici u koje se diktirao odgovor. I trčanje iz učionice kako bi vam guru svoje specijalnosti u 2 minute napisao rješenje cijelog ispita. Bilo je to super vrijeme.
Tijekom istog tečaja počeo sam razmišljati o pravom poslu. S uredom, pravim komercijalnim aplikacijama i pristojnom plaćom.
Ali u to vrijeme u našem gradu posao si mogao naći samo kao programer
“1C: Računovodstvo”, što mi uopće nije odgovaralo. Iako iz beznađa, već sam bio spreman na ovo. U to vrijeme moja djevojka je vršila pritisak na mene da se preselim u poseban stan.
Inače, spavanje s roditeljima kroz zid uopće nije comme il faut. Da, i ja sam već bio umoran od rješavanja studentskih problema, i htio sam nešto više.

Nevolja je došla niotkuda. Sjetio sam se oglasiti na mail.ru da tražim posao s plaćom od 300$ za poziciju C++/Java/Delphi programera. Ovo je 2006. Na što su oni uglavnom odgovorili nešto poput: "Možda biste trebali pisati Billu Gatesu s takvim zahtjevima za plaću?" To me uznemirilo, ali među hrpom sličnih odgovora našla se osoba koja me dovela u freelancing. Ovo je bila jedina prilika u našem siromašnom Las Vegasu da dobro zaradim radeći ono što sam znao raditi.
Tako je studiranje na sveučilištu glatko prešlo u rad na razmjeni slobodnih radnika. Zatvarajući temu fakulteta, možemo reći sljedeće: Nisam išao na 5. godinu. Postojao je jedan program i takav koncept kao što je "besplatno prisustvo", koji sam koristio 146%.
Trebalo je jedino obraniti specijalistički ispit. Što sam uz pomoć prijatelja uspješno i učinio. Vrijedno je reći da sam se do ovog tečaja već preselio od roditelja u unajmljeni stan i kupio novi auto. Tako je započela moja karijera profesionalnog programera.

Sljedeća poglavlja bit će posvećena pojedinačnim projektima, najtežim propustima i najneadekvatnijim naručiteljima. Karijera u freelanceru od 5 do 40 $/sat, pokretanje vlastitog startupa, kako sam bio baniran s burze freelancera Upwork i kako sam od freelancinga postao voditelj tima u drugoj najvećoj naftnoj kompaniji na svijetu. Kako sam se nakon ureda i startupa vratio na daljinski rad te kako sam riješio interne probleme socijalizacijom i lošim navikama.

Da bi se nastavio ...

Izvor: www.habr.com

Dodajte komentar