Programmeerija karjäär. 3. peatükk. Ülikool

Loo jätk "Programmeerija karjäär".

Olles õhtukooli lõpetanud, oli aeg ülikooli minna. Meie linnas oli üks tehnikaülikool. Sellel oli ka üks "matemaatika ja arvutiteaduse" teaduskond, millel oli üks "arvutisüsteemide" osakond, kus nad koolitasid tulevasi IT-töötajaid - programmeerijaid ja administraatoreid.
Valik oli väike ja kandideerisin erialale “Arvutitehnika programmeerimine”. Ees ootas 2 sisseastumiskatset. Keeles ja matemaatikas.
Eksamitele eelnes vestlus ning koolituse vormi valik - eelarve või leping, s.o. tasuta või raha eest.

Mu vanemad olid minu vestlusel kohal ja tundsid muret sissepääsu pärast. Loomulikult valisid nad koolituse lepingulise vormi. Muide, see maksis umbes 500 dollarit aastas, mis oli 2003. aastal suur raha, eriti meie väikelinna kohta. Mäletan hästi oma isa dialoogi vastuvõtukabinetti tüdrukuga:
Tüdruk: võite proovida sooritada eksameid eelarve piires ja kui see ei õnnestu, lülitage üle lepingule. Tasuda saab osamaksetena.
Isa: Ei, me oleme juba otsustanud, et taotleme lepingut
Tüdruk: No miks, sa ei riski millegagi
Isa: Ei, see on ikkagi risk. Ütle mulle, kas kõik taotlevad lepingut?
Tüdruk: Jah, kõik teevad. Ilmselt ainult täielikud debiilikud ei saa
Isa: Siis on meil võimalus... ütles ta muiates ja kirjutasime alla sisseastumisdokumentidele

Muidugi olid keskkooli esinemised mu vanematel veel värskelt meeles, nii et aastate jooksul saan aru, miks nad seda ütlesid.

Suvel, enne sisseastumist, jätkasin raamatute ostmist kogu selle 40 dollari eest, mille vanaema mulle pensionist kinkis.
Meeldejäävast ja olulisest:
1. "UML 2.0. Objektorienteeritud analüüs ja disain". Raamat, mis õpetas mulle kujundama mis tahes keerukusega tarkvara, mõtlema läbi arhitektuuri, jagama kõike komponentideks, kirjutama kasutusjuhtumeid ja joonistama UML-skeeme. See on teadmine, mida pensionärid, juhid ja arhitektid vajavad. Need, kes materialiseerivad süsteemi tühjusest, kui on vaid idee kirjeldus.
Tean inimesi, kes on juba üle 30-aastased ja nad ei saa ikka veel otsust langetada, kui just ülevalt, kõrgema järguga arendaja korraldust ei tule. Vabakutselises ja kaugtöös, kui töötate sageli kliendiga üksi, on need teadmised samuti hindamatu väärtusega.
Need on olulised ka indie-arendajatele, kes loovad uusi rakendusi ja teenuseid. Kuigi vähesed inimesed vaevavad end üksikasjaliku disainiga. Sellepärast on meil sellise kvaliteediga tarkvara, mis neelab kogu mälu ja kõvera UX-iga.
2. "ANSI C++ 98 standard". Mitte päris raamat, aga see on üle 800 lehekülje taustainfot. Muidugi ei lugenud ma seda jaotiste kaupa, vaid viitasin oma C++ kompilaatori arendamisel konkreetsetele keelereeglitele. Keeleoskuse sügavust pärast standardi õppimist ja rakendamist ei saa kirjeldada ühegi imelise epiteediga. Võime öelda, et teate keelest kõike ja isegi rohkem. Väga pikk ja vaevarikas töö standardi uurimiseks. Aga mul oli ees 5 aastat ülikooli, nii et keegi ei trüginud
3. "Delfi 6. Praktiline juhend.". See oli kiire hüpe GUI ja vormi meelitava maailma. Sisseastumiskünnist peaaegu polnud ja Pascalit tundsin ma juba päris hästi. Ülikoolis õppides kirjutasin lõviosa kommertsprogrammidest Delfis. See oli tarkvara ülikooli magistrantidele, väikeettevõtete raamatupidamisele ja valitsusele. institutsioonid. Siis tuli mitu vabakutselist tellimust. XNUMX. aastate keskel domineeris Delphi Windowsi arendusturgu. Siiani on kohalike kaupluste kassa juures näha tuttavate fontide ja juhtnuppudega programme, mis eristab Delphi rakendust kohe kõigist teistest
4. "MFC õpetus". Olles omandanud Delphi, oli loogiline jätkata kasutajaliidese loomist C++ keeles. See oli palju raskem, kõik ei õnnestunud ja oli arusaadav. Kuid ma viisin selle tehnoloogia ka kommertsprojektide rakendusfaasi. Üks Saksa viirusetõrjefirma levitab minu programmi, mis on tänaseni MFC-s kirjutatud.
5. "3 ketast MSDN raamatukoguga 2001". Mul polnud kohe Internetti ja nii palju kui ma mäletan, polnud MSDN-i raamatukogu 2003. aastal võrgus. Igal juhul oli mul lihtsam installida MSDN-i teatmik oma kohalikku arvutisse ja leida hõlpsasti dokumentatsiooni mis tahes WinApi funktsiooni või MFC-klassi jaoks.
Programmeerija karjäär. 3. peatükk. Ülikool
Märkimisväärseimad loetud raamatud perioodil 2002-2004

Need on raamatud, mida loeti perioodil 2002-2004. Muidugi on see nüüd räbal pärand, mida .NET-i ja veebitehnoloogiate abil partiidena ümber kirjutatakse. Aga see on minu tee, võib-olla oli mõnel teist samasugune.

Esimene semester

Suve lõpus on aeg teha ülikooli sisseastumiseksamid. Kõik läks libedalt. Sooritasin keele- ja matemaatikaeksami ning sain kirja arvutisüsteemide programmeerimise eriala esimesele kursusele.
Esimesel septembril läksin ootuspäraselt oma elu esimestesse tundidesse. "Tudengiaeg on elu helgeim aeg," ütles ema mulle. Uskusin seda meelsasti.
Esimesel päeval läbis 3 paari üldhariduslikke aineid, kõik said grupis tuttavaks ja üldiselt jättis ülikool meeldiva mulje.
Lõpuks hakkasid nad meile C-keeles tõelist programmeerimist õpetama! Ja lisaks õpetasid nad arvutiteaduse ajalugu, digitehnoloogiat ja palju muud minu jaoks olulist teavet. Isegi sõimu. analüüs oli kasulik, kuna see võimaldas mul sügavamalt austatud Donald Knuthi kirjutatut sügavamalt mõista.

Programmeerimistunnid toimusid minu jaoks sõiduõhkkonnas. Lõpuks tulid inimesed minu juurde abi paluma. Tundsin end vajalikuna. Tunni alguses saime ülesande kirjutada programm. Ülesanne oli mõeldud pooleteisele paarile, seejärel pool tundi testimiseks. Jõudsin ülesande kirjutada 3-5 minutiga ja ülejäänud aja jalutasin kontoris ringi ja aitasin teistel probleemist aru saada.
Kogu rühma jaoks ei jätkunud arvuteid, nii et enamasti istusime kahekesi ühe arvuti taga. Minu võimeid nähes istus kolm, neli, vahel isegi 5-6 inimest mu töölaua lähedale ja ei kõhelnud istumast, et õppida seda, mida ma paar aastat tagasi Kernighani ja Ritchie raamatust õppisin.
Klassikaaslased nägid mu võimeid ja mõtlesid ise välja küsimusi või pakkusid end pärast tunde lihtsalt hängida. Nii sain endale palju sõpru, kellest enamikuga oleme sõbrad tänaseni.

Talvel oli aeg esimeseks seansiks. Kokku oli vaja läbida 4 ainet: 2 tüüpi kõrgemat matemaatikat, ajalugu ja programmeerimist. Kõik läks mööda, mõni 4 punkti, mõni 3. Ja mulle määrati programmeerimine automaatselt. Õpetajad teadsid mu oskusi juba varem, nii et nad ei näinud mõtet mind proovile panna. Ilmusin rõõmsalt sessioonile oma rekordiraamatuga, et kohe sellele allkiri saada, ja olin juba koju naasmas, kui klassikaaslased palusid mul jääda ukse taha seisma. Noh. Olles asetanud end aknalauale, kontorist väljapääsu juurde, hakkasin ootama. Minu kõrval hängis veel üks tüüp, kes sooritas ka automaatselt eksami.
"Miks sa siia jääd," küsisin
— „Ma tahan probleeme lahendades raha teenida. Miks sa siin oled?
- "Mina ka. Ma lihtsalt ei kavatse raha teenida. Kui vajate abi, siis ma lihtsalt otsustan oma südamest."
Mu vastane kõhkles ja pomises midagi vastuseks.

Mõne aja pärast hakkasid klassikaaslased publikust lahkuma, võttes kaasa volditud paberitükid, mis sisaldasid eksamiprobleeme.
"Aidake mul otsustada," palus esimene hulljulge. "Olgu, ma otsustan kohe," vastasin. Ei möödunud 5 minutitki, enne kui pastapliiatsiga kortsunud paberile lahenduse kritseldasin ja tagasi andsin. Nähes, et skeem töötab, hakkasid inimesed palju sagedamini publiku hulgast lahkuma ja mõnikord isegi kaks-kolm korraga.
Minu tööaknal oli kolm virna lehti. Üks pakk sisaldab äsja saabunud TODO lehti. Minu ees oli leht In Progress ja selle kõrval lebas pakk "Done".
See oli minu parim tund. Kogu grupp, kuhu kuulus peaaegu 20 inimest, pöördus minu poole abi saamiseks. Ja ma aitasin kõiki.
Ja tüüp, kes tahtis raha teenida, lahkus mõne minuti pärast kiiruga, saades aru, et siin pole midagi püüda, kogu tähelepanu oli suunatud altruistile.
Terve grupp sooritas eksami hinnetega 4 ja 5 ning mul on nüüdseks 20 sõpra ja vankumatu autoriteet programmeerimisasjades.

Esimene raha

Talvise sessiooni järel levisid üle terve teaduskonna kuuldused, et seal on tüüp, kes suudab lahendada mis tahes programmeerimisprobleemi, mis meile koju või sessiooni ajal määrati. Ja suust suhu ei levinud mitte ainult esmakursuslaste, vaid ka abiturientide seas.
Nagu ma juba kirjutasin, tekkisid mul pärast eksami “parimat tundi” sõbralikud suhted kõigi rühmaliikmetega ja me hakkasime paari kutiga väga tihedalt suhtlema. Saime tõelisteks sõpradeks ja veetsime palju aega väljaspool ülikooli. Esitamise lihtsuse huvides nimetagem neid Eloniks ja Aleniks (hüüdnimed on lähedased tegelikele).
Me kutsusime Elonit nimepidi, kuid Alain sai hüüdnime Alain Deloni auks, kuna ta oli võimeline võrgutama igasugust ilu. Tüdrukud tiirlesid sõna otseses mõttes tema ümber, erineval hulgal. Inimestega kohtumise ja ööseks suhete loomise osas polnud Alain Delonil võrdset. Ta oli naissoo jaoks tõeline alfaisane, mis on enamiku IT-spetsialistide jaoks täiesti harjumatu. Lisaks armusuhetele oli Alain kutsumuse järgi disainer. Ja kui tal oli vaja midagi joonistada, näiteks tol ajal populaarseid Web 1.0 formaadi vilkuvaid bännereid, siis ta tegi seda lihtsalt.

Eloni kohta saab veel palju rääkida. Kohtume temaga tänaseni, kümme aastat pärast ülikooli. Oma esimestel eluaastatel oli ta kõhn, üsna vaikne tüüp. (Sama ei saa öelda tänapäeva suure näoga džiibis oleva mehe kohta). Samas olin samasugune – kõhn ja vaikiv. Seetõttu arvan, et leidsime kiiresti ühise keele.
Sageli pärast tunde kogunesime mina, Elon ja Alen presendiga kaetud õllesaali. Esiteks asus see ülikoolist üle tee ja teiseks sai “rubla” ja 50 kopika eest 2-tunnise sütitava peo jaoks head-paremat. Nagu vaadiõlu ja kreekerid. Aga point oli hoopis teine.
Elon ja Alen olid pärit teistest linnadest ja elasid üüritoas. Neil oli pidevalt rahapuudus ja oli aegu, mil nad pidid nälga jääma. Rõõmsaid hetki, mil nad said kaardile 10 dollari suuruse stipendiumi, tähistati samal päeval ja siis oli aeg “rihma pingutada” ja elada selle järgi, mida Jumal saadab.

Muidugi ajendas selline olukord külalistudengeid otsima võimalusi lisaraha teenimiseks. Ja nende ees, käe-jala ulatuses, istus "helge pea" minu kujul. Mis on ka painduv ja harva keeldub inimesi aitamast.
Ma ei tea, kas kirjeldasin seda olukorda õigesti, kuid lõpuks viisid need pubis kokkutulekud minu karjääri esimese IT-ettevõtte SKS loomiseni. Nimi koosnes lihtsalt meie perekonnanimede esitähtedest. Meie noor ettevõte, mida esindas kolm asutajat, lõhkus järgmise nelja aasta jooksul konkurendid ja kogu ülikooli.

Elon oli ROP. Ehk siis müügiosakonna juhataja. Nimelt kuulus tema kohustuste hulka meie allhankeärile uute klientide leidmine. Müügikanaliks olid horisontaalselt trükitud A4 voldikud, millel oli lihtne kiri: “Programmeerimisprobleemide lahendamine”. Ja all on Eloni telefoninumber.
Selline välireklaam oli paigutatud igale korrusele, kuhu said ilmuda programmeerimist õppivad tudengid.
Täiendav, klientide lojaalsuse poolest tugevam, oli müügikanal suust suhu.

Ärimudel oli lihtne. Kas soovituse või kuulutuse kaudu võttis meiega ühendust üks ülikooli tudeng. Ta kirjeldas programmeerimisprobleemi, mis vajas teatud tähtajaks lahendamist ja mina lahendasin selle tudengihinna eest. Elon tegeles müügiga ja sai oma protsendi kätte. Alain Delon osales meie äris harvemini, kuid kui oli vaja teha kujundust, pilti või meelitada lisakliente, oli ta alati abiks. Oma sarmiga tõi ta meie juurde päris palju uusi inimesi. Pidin vaid seda torujuhtme töötlema kiirusega 5-10 ülesannet päevas. Tähtajad olid ranged – mitte rohkem kui nädal. Ja sagedamini kui eile tuli seda teha. Seetõttu õpetasid sellised asjaolud mind kiiresti kirjutama programme "vooluna", ilma et mind segaks iga pisiasi, näiteks maavärin magnituudiga 5,9 või suur õnnetus väljaspool akent.

Kõige kuumemal hooajal enne sessiooni ehk siis detsembris ja mais tundus, et mul on kogu ülikooli ülesanded arvutis. Õnneks oli enamik neist sama tüüpi, eriti kui meiega võttis ühendust hulgimüüja, keda esindas terve kontserni esindaja. Siis oli võimalik teha 20 ülesannet, näiteks assembleris, muutes vaid 2-3 rida. Sellisel hooajal voolasid pliid nagu jõgi. Ainus, mis meil puudu oli, olid disketid. Aastatel 2003-2005 ei olnud meie linna vaestel õpilastel sellist asja, et raha interneti kaudu üle kanda. Pealegi puudusid maksegarantiid, mida nüüd nimetatakse tingdeponeerimiseks. Seetõttu pani SKS firma tellimuste teostajana ülikooli territooriumil aja kokku ja andsime flopiketas lahendusega. Peaaegu ei tagastatud (ingliskeelsest refundist - makse tagastamine kliendi soovil). Kõik olid õnnelikud ja said oma 4-5 punkti, kui nad said teada, mida ma disketil faili readme.txt lisasin. Kuigi ka täiesti töötava programmi lihtne demo tekitas õpetajate seas sageli vau-efekti.

Hind oli muidugi naeruväärne, aga võtsime selle koguse järgi. Näiteks tüüpiline kodutöö maksis 2-3 dollarit. Kursusetöö 10 $. Peavõit kandidaadi tööprogrammi näol langes kord välja ja kaitsmiseks valmistuva kraadiõppuri avalduse eest oli see koguni 20 dollarit. Kuumal hooajal võib selle sissetuleku korrutada 100 kliendiga, mis oli kokkuvõttes suurem kui linna keskmine palk. Tundsime end lahedana. Nad võiksid endale lubada ööklubisid ja seal lõbutseda, selle asemel, et oma viimase sendi pärast tšeburekiga lämbuda.

Minu oskuste seisukohalt need mitmekordistusid iga uue õpilasülesandega. Hakkasime vastu võtma avaldusi teistest teaduskondadest, erineva koolitusprogrammiga. Mõned vanemate klasside õpilased kasutasid Java ja XML-i juba täielikult ära, kui me C++/MFC-le kaldusime. Mõned vajasid Assemblerit, teised PHP-d. Õppisin ülesannete lahendamisel enda jaoks selgeks terve loomaaia tehnoloogiaid, teeke, andmesalvestusformaate ja algoritme.
See universalism on minuga püsinud tänaseni. Projektidega töötades kasutatakse ka mitmesuguseid tehnoloogiaid ja platvorme. Nüüd saan kirjutada tarkvara või rakendusi mis tahes platvormi, OS-i või seadme jaoks. Kvaliteet on muidugi erinev, kuid ettevõtte jaoks, millega ma peamiselt tegelen, on eelarve tavaliselt oluline. Ja ühemeheorkester tähendab nende jaoks eelarve kärpimist täpselt nii palju, kui palju arendajaid saan oma oskustega asendada.

Kui rääkida suurimast kasust, mida ülikoolis õppimine mulle tõi, siis see poleks algoritmide või filosoofia loengud. Ja see ei "õpi õppima", nagu on moes öelda ülikoolide kohta. Esiteks on need inimesed, kellega jäime pärast treeningut sõbralikuks. Ja teiseks, see on seesama SKS-i firma, kes sepistas minust professionaalse arendaja, reaalsete ja mitmekesiste tellimustega.
Tahaksin meelde jätta fraasi, mis selle loo osa jaoks väga sobib: Inimene saab programmeerijaks siis, kui teised inimesed hakkavad tema programme kasutama ja maksavad selle eest raha..

Seega oli SKS-i firmabränd laialt tuntud mitte ainult üliõpilasringkondades, vaid ka õpetajate seas. Oli isegi juhus, kui üks õpetajatest tuli mulle koju, et saaksin aidata tal teaduslike vajaduste jaoks programmi kirjutada. Tema omakorda aitas mind oma erialal. Me mõlemad läksime oma töösse nii sisse, et jäime mõlemad koidikul magama. Tema on diivanil ja mina arvuti ees toolil. Kuid nad täitsid oma ülesanded ja mõlemad jäid üksteise tööga rahule.

Saatuse keerdumine

Algas ülikooli 4. kursus. Viimane kursus, mille läbimisel antakse bakalaureusekraad. Üldhariduslikke aineid praktiliselt polnud, vaid ainult arvutite ja võrkudega seotud aineid. Nüüd vahel kahetsen, et mul polnud aega või ei ilmutanud huvi sama elektroonika või võrkude sisemise struktuuri vastu. Nüüd lõpetan selle vajadusest, kuid olen kindel, et need põhiteadmised on vajalikud iga arendaja jaoks. Teisest küljest ei saa kõike teada.
Olin lõpetamas oma C++ kompilaatori kirjutamist, mis suutis juba standardi järgi koodi vigade suhtes kontrollida ja koostamisjuhiseid genereerida. Unistasin, et saan müüa oma kompilaatorit 100 dollari eest litsentsi kohta. Korrutasin selle tuhande kliendiga ja mõtteliselt
transporditakse Hammerisse, kõlaritest kostavad 50 Centi bassid ja tagaistmel kuumad helid. Mida saate teha 19-aastaselt - sellised on prioriteedid. Minu omatehtud kompilaatori nipp seisnes selles, et see tekitas vead vene keeles, mitte aga Visual C++ ja gcc inglise keeles, mis pole kõigile arusaadav. Ma nägin seda tapja funktsioonina, mida keegi maailmas polnud veel leiutanud. Arvan, et pole mõtet pikemalt rääkida. Müügile see ei tulnud. Küll aga saavutasin sügavad teadmised C++ keelest, mis toidab mind tänaseni.

Neljandal kursusel käisin ülikoolis üha vähem, sest teadsin suuremat osa programmist. Ja mida ma ei teadnud, lahendasin vahetustehingute teel õpilasega, kes sai aru näiteks elektroonikast või tõenäosusteooriast. Mille peale me siis ei tulnud. Ja nähtamatud kõrvaklapid juhtme küljes, millesse vastus dikteeriti. Ja klassiruumist välja jooksmine, et oma eriala guru saaks sulle 2 minutiga kogu eksami lahenduse välja kirjutada. See oli tore aeg.
Samal kursusel hakkasin mõtlema päris töö peale. Kontori, reaalsete kommertsrakenduste ja korraliku palgaga.
Aga tol ajal sai meie linnas tööd vaid programmeerijana
“1C: Raamatupidamine”, mis mulle üldse ei sobinud. Kuigi lootusetusest olin selleks juba valmis. Tol ajal avaldas sõbranna mulle survet, et ma koliks eraldi korterisse.
Muidu pole vanematega läbi seina magamine sugugi comme il faut. Jah, ja ma olin juba väsinud õpilaste probleemide lahendamisest ja tahtsin midagi enamat.

Häda tuli eikusagilt. Mõtlesin mail.ru lehele kuulutada, et otsin 300$ palgaga tööd C++/Java/Delphi programmeerija ametikohale. See on 2006. aastal. Millele nad vastasid põhimõtteliselt umbes nii: "Äkki peaksite selliste palgasoovidega Bill Gatesile kirjutama?" See häiris mind, kuid paljude sarnaste vastuste hulgas oli inimene, kes viis mind vabakutseliseks. See oli meie vaesuses Las Vegase ainus võimalus teenida head raha, tehes seda, mida oskan.
Nii läks ülikoolis õppimine sujuvalt vabakutseliste vahetustega tööks. Ülikooli teema lõpetuseks võib öelda järgmist: ma ei läinud 5. kursusele. Seal oli üks programmeerimine ja selline mõiste nagu “tasuta kohalolek”, mida kasutasin 146%.
Ainus asi, mida oli vaja teha, oli kaitsta spetsialisti diplomit. Mida ma oma sõprade abiga edukalt ka tegin. Tasub öelda, et sellel kursusel olin juba kolinud vanemate juurest üürikorterisse ja ostnud uue auto. Nii sai alguse minu karjäär professionaalse arendajana.

Järgmised peatükid on pühendatud üksikutele projektidele, kõige raskematele riketele ja kõige ebapiisavatele klientidele. Vabakutselise karjäär 5–40 $/tund, oma startupi käivitamine, kuidas mind Upworki vabakutseliste börsil keelati ja kuidas vabakutselisest ametist sai maailma suuruselt teise naftafirma meeskonnajuht. Kuidas ma pärast kontorit ja käivitamist tagasi kaugtöö juurde naasin ning kuidas lahendasin sisemisi probleeme sotsialiseerumise ja halbade harjumustega.

Jätkub ...

Allikas: www.habr.com

Lisa kommentaar