Cariera de programare. Capitolul 3. Universitatea

Continuarea povestirii „Cariera de programator”.

După ce a terminat școala de seară, era timpul să merg la universitate. În orașul nostru exista o singură universitate tehnică. Avea, de asemenea, o facultate de „Matematică și Informatică”, care avea un departament de „Sisteme informatice”, unde formau viitori lucrători IT - programatori și administratori.
Alegerea a fost mică și am aplicat la specialitatea „Programare Inginerie Calculatoare”. Erau 2 examene de admitere înainte. În limbaj și matematică.
Examenele au fost precedate de un interviu, iar alegerea formei de formare - buget sau contract, i.e. gratuit sau pe bani.

Părinții mei au fost prezenți la interviul meu și erau îngrijorați de admitere. Desigur, au ales forma contractuală de formare. Apropo, a costat aproximativ 500 de dolari/an, ceea ce a fost o mulțime de bani în 2003, mai ales pentru micul nostru oraș. Îmi amintesc bine dialogul tatălui meu cu fata de la biroul de admitere:
Fata: Puteți încerca să promovați examene cu un buget, iar dacă nu funcționează, atunci treceți la un contract. Puteți plăti în rate.
Tatăl: Nu, am decis deja că vom aplica pentru un contract
Fata: Ei bine, de ce, nu riști nimic
Tatăl: Nu, tot e un risc. Spune-mi, toată lumea aplică pentru un contract?
Fata: Da, toată lumea o face. Probabil numai proștii completi nu pot
Tatăl: Atunci avem o șansă... a spus el rânjind și am semnat actele de admitere

Desigur, spectacolele de la liceu erau încă proaspete în amintirile părinților mei, așa că de-a lungul anilor înțeleg de ce au spus asta.

Vara, înainte de admitere, am continuat să cumpăr cărți pentru toți 40 de dolari pe care mi-a dat bunica din pensia ei.
Din cele memorabile și semnificative:
1. „UML 2.0. Analiză și proiectare orientate pe obiecte”. O carte care m-a învățat cum să proiectez software de orice complexitate, să mă gândesc la arhitectură, să descompun totul în componente, să scriu cazuri de utilizare și să desenez diagrame UML. Acestea sunt cunoștințele de care au nevoie seniorii, liderii și arhitecții. Cei care materializează un sistem din vid, când există doar o descriere a ideii.
Cunosc oameni care au deja peste 30 de ani și încă nu pot lua o decizie decât dacă există o comandă de sus, de la un dezvoltator de rang superior. În munca independentă și la distanță, atunci când lucrați deseori unul la unu cu un client, aceste cunoștințe sunt, de asemenea, neprețuite.
Sunt relevante și pentru dezvoltatorii indie care creează aplicații și servicii noi. Deși puțini oameni se deranjează cu designul detaliat. De aceea avem software de o asemenea calitate, înghițind toată memoria, cu un UX strâmb.
2. „Standard ANSI C++ 98”. Nu chiar o carte, dar are peste 800 de pagini de informații de fundal. Desigur, nu l-am citit secțiune cu secțiune, ci mai degrabă m-am referit la regulile specifice ale limbajului atunci când am dezvoltat compilatorul meu C++. Profunzimea cunoașterii limbii, după studierea și implementarea standardului, nu poate fi descrisă prin niciun epitet minunat. Putem spune că știi totul despre limbă și chiar mai mult. Muncă foarte lungă și minuțioasă pentru a studia standardul. Dar aveam 5 ani de universitate înainte, așa că nimeni nu mă împingea
3. „Delphi 6. Ghid practic”.. A fost un salt rapid în lumea GUI și a măgulitoarei forme. Aproape că nu era prag de intrare și îl cunoșteam deja destul de bine pe Pascal. În timp ce studiam la universitate, am scris cea mai mare parte a programelor comerciale din Delphi. Acesta a fost software pentru studenții absolvenți, contabilitate pentru întreprinderile mici, guvern. instituţiilor. Apoi au fost mai multe comenzi pentru freelance. La mijlocul anilor 2000, Delphi domina piața de dezvoltare Windows. Până acum, la ghișeul de casă din magazinele locale puteți vedea programe cu fonturi și controale familiare, care distinge imediat o aplicație Delphi de orice alta
4. „Tutorial MFC”. După ce a stăpânit Delphi, era logic să continuăm crearea interfeței de utilizare în C++. A fost mult mai dificil, nu totul a funcționat și a fost de înțeles. Am adus însă și această tehnologie la stadiul de aplicare în proiecte comerciale. O companie germană de antivirus îmi distribuie programul, scris în MFC până astăzi.
5. „3 discuri cu MSDN Library 2001”. Nu am avut Internet imediat și, din câte îmi amintesc, MSDN Library nu era online în 2003. În orice caz, mi-a fost mai ușor să instalez cartea de referință MSDN pe computerul meu local și să găsesc cu ușurință documentația pentru orice funcție WinApi sau clasă MFC.
Cariera de programare. Capitolul 3. Universitatea
Cele mai semnificative cărți citite în perioada 2002-2004

Sunt cărți care au fost citite în perioada 2002-2004. Desigur, acum aceasta este o moștenire ponosită, care este rescrisă în loturi folosind tehnologii .NET și Web. Dar acesta este drumul meu, poate unii dintre voi au avut unul similar.

Primul semestru

La sfârșitul verii, este timpul să susțin examenele de admitere la universitate. Totul a mers fără probleme. Am promovat examenul de limbă și matematică și am fost înscrisă în anul I la specialitatea Programare sisteme informatice.
Pe 1 septembrie, așa cum era de așteptat, am fost la primele cursuri din viața mea. „Timpul studenților este cel mai strălucitor moment din viață”, mi-a spus mama. Am crezut de bunăvoie.
În prima zi au promovat 3 perechi de discipline de învățământ general, toți s-au cunoscut în grup, iar per total universitatea a lăsat o impresie plăcută.
În cele din urmă, au început să ne învețe programarea adevărată în C! Și, în plus, au predat istoria informaticii, tehnologiei digitale și multe alte informații care erau relevante pentru mine. Chiar și înjurături. analiza a fost utilă, deoarece mi-a permis să înțeleg mai profund ceea ce a scris profund respectatul Donald Knuth.

Cursurile de programare au avut loc într-o atmosferă de șofer pentru mine. În cele din urmă, oamenii au venit la mine pentru ajutor. M-am simțit necesar. La începutul orei, ni s-a dat sarcina de a scrie un program. Sarcina a fost concepută pentru o pereche și jumătate, apoi o jumătate de oră pentru testare. Am reușit să scriu tema în 3-5 minute, iar în restul timpului m-am plimbat prin birou și i-am ajutat pe alții să-și dea seama de problema.
Nu erau suficiente computere pentru întregul grup, așa că cel mai adesea stăteam câte două la un singur computer. Văzându-mi abilitățile, trei, patru, uneori chiar și 5-6 persoane s-au așezat lângă biroul meu și nu au ezitat să mă așez să învețe ce am învățat acum câțiva ani din cartea lui Kernighan și Ritchie.
Colegii mei de clasă mi-au văzut abilitățile și au venit ei înșiși cu întrebări sau s-au oferit să iasă doar după cursuri. Așa mi-am făcut mulți prieteni, dintre care majoritatea suntem prieteni și astăzi.

Iarna, era timpul pentru prima ședință. În total, a fost necesar să se susțină 4 materii: 2 tipuri de matematică superioară, istorie și programare. Totul a trecut, vreo 4 puncte, ceva 3. Și mi s-a atribuit automat programarea. Profesorii îmi cunoșteau deja aptitudinile, așa că n-au văzut nici un rost să mă testeze. M-am prezentat bucuros la sesiune cu carnetul de înregistrare pentru a primi imediat o semnătură pe ea și era pe cale să mă întorc acasă când colegii mei mi-au cerut să stau și să stau în fața ușii. Bine. După ce m-am așezat pe pervazul ferestrei, la ieșirea din birou, am început să aștept. Lângă mine era un alt tip care a trecut și el examenul automat.
„De ce stai aici”, am întrebat
— „Vreau să câștig bani rezolvând probleme. De ce esti aici?
- "Şi eu. Doar că nu voi face bani. Dacă ai nevoie de ajutor, atunci din bunătatea inimii mele, voi decide.”
Adversarul meu a ezitat și a mormăit ceva ca răspuns.

După un timp, colegii au început să părăsească publicul, luând cu ei bucăți de hârtie împăturite care conțineau probleme de la examen.
„Ajută-mă să decid”, a întrebat primul temerar. „Bine, mă voi decide acum”, am răspuns. Nu trecuseră nici măcar 5 minute până când am mâzgălit o soluție pe o bucată de hârtie mototolită cu un pix și i-am dat înapoi. Văzând că schema funcționează, oamenii au început să părăsească publicul mult mai des și, uneori, chiar două sau trei o dată.
Pe pervazul meu de lucru erau trei stive de frunze. Un pachet conține foi TODO nou sosite. În fața mea era o foaie de În curs, iar lângă ea se afla un pachet de „Terminat”.
Acesta a fost cea mai bună oră a mea. Întregul grup, care era de aproape 20 de persoane, a apelat la mine pentru ajutor. Și i-am ajutat pe toată lumea.
Iar tipul care voia să facă bani a plecat în grabă după câteva minute, realizând că nu e nimic de prins aici, toată atenția s-a concentrat pe altruist.
Întreaga grupă a promovat examenul cu clasele a 4-a și a 5-a, iar acum am 20 de prieteni și autoritate de neclintit în materie de programare.

Primii bani

După sesiunea de iarnă, zvonurile s-au răspândit în toată facultatea că ar exista un tip care ar putea rezolva orice problemă de programare, din care eram repartizați acasă sau în timpul sesiunii. Și gura în gură s-a răspândit nu numai printre boboci, ci și printre studenții seniori.
După cum am scris deja, am dezvoltat relații de prietenie cu toată lumea din grup după „cea mai bună oră” de la examen și am început să comunicăm foarte strâns cu câțiva băieți. Am devenit prieteni adevărați și am petrecut mult timp în afara universității. Pentru simplitatea prezentării, să le numim Elon și Alen (poreclele sunt apropiate de cele reale).
L-am numit pe Elon pe nume, dar Alain a fost poreclit în onoarea lui Alain Delon, pentru capacitatea lui de a seduce orice frumusețe. Fetele se învârteau literalmente în jurul lui, în număr variat. În ceea ce privește întâlnirea cu oameni și începerea de relații pentru noapte, Alain Delon nu avea egal. Era un adevărat bărbat alfa pentru sexul feminin, ceea ce este complet neobișnuit pentru majoritatea specialiștilor IT. Pe lângă aventurile amoroase, Alain a fost designer de vocație. Și dacă avea nevoie să deseneze ceva, de exemplu, bannerele intermitente pe atunci populare ale formatului Web 1.0, atunci a făcut-o cu ușurință.

Despre Elon se pot spune mai multe. Ne întâlnim și astăzi cu el, la zece ani de la facultate. În primii săi ani a fost un tip slab, destul de tăcut. (Nu același lucru se poate spune despre tipul cu fața mare de astăzi într-un jeep). Totuși, eram la fel - slab și taciturn. Prin urmare, cred că am găsit rapid un limbaj comun.
Adesea, după cursuri, eu, Elon și Alen ne adunam într-o berărie, acoperită cu o prelată. În primul rând, era peste drum de universitate, iar în al doilea rând, pentru o „rulă” și 50 de copeici, puteai să iei niște bunătăți pentru 2 ore de petrecere incendiară. Ca berea la halbă și biscuiții. Dar ideea era alta.
Elon și Alen erau din alte orașe și locuiau într-o cameră închiriată. Erau în mod constant lipsiți de bani și erau momente în care trebuiau să le fie foame. Momente fericite, când au primit o bursă de 10 dolari pe card, au fost sărbătorite în aceeași zi și apoi a venit timpul să „strângă cureaua” și să trăiască din ceea ce a trimis Dumnezeu.

Desigur, această situație a motivat studenții vizitatori să caute modalități de a câștiga bani în plus. Și în fața lor, la distanță de braț, stătea un „cap strălucitor” în forma mea. Care este, de asemenea, flexibil și rareori refuză să ajute oamenii.
Nu știu dacă am descris corect această situație, dar în cele din urmă aceste adunări în pub au dus la crearea primei companii de IT din cariera mea numită SKS. Numele era alcătuit pur și simplu din primele litere ale numelui nostru de familie. Tânăra noastră companie, reprezentată de trei fondatori, a sfărâmat concurenții și întreaga universitate în următorii patru ani.

Elon era un ROP. Adică șeful departamentului de vânzări. Și anume, responsabilitățile sale au inclus găsirea de noi clienți pentru afacerea noastră de outsourcing. Canalul de vânzare a fost tipărit orizontal pliante A4, cu o inscripție simplă: „Rezolvarea problemelor de programare”. Și mai jos este numărul de telefon al lui Elon.
Acest tip de publicitate exterioară a fost plasat la fiecare etaj unde puteau apărea studenții care studiau programare.
Un în plus, mai puternic în ceea ce privește fidelizarea clienților, a fost canalul de vânzare prin gura în gură.

Modelul de afaceri era simplu. Fie printr-o recomandare, fie printr-o reclamă, ne-a contactat un student universitar. A dat o descriere a unei probleme de programare care trebuia rezolvată până la un anumit termen limită, iar eu am rezolvat-o pentru prețul de student. Elon a fost implicat în vânzări și a primit procentul său. Alain Delon a participat mai rar la afacerea noastră, dar dacă aveam nevoie să facem un design, o poză sau să atragem clienți suplimentari, a fost întotdeauna de ajutor. Cu farmecul lui, ne-a adus destul de mulți oameni noi. Tot ce trebuia să fac a fost să procesez această conductă cu o viteză de 5-10 sarcini pe zi. Termenele au fost stricte - nu mai mult de o săptămână. Și, de cele mai multe ori, trebuia făcut ieri. Prin urmare, astfel de circumstanțe m-au învățat rapid să scriu programe în „flux”, fără a fi distras de orice lucru mic, cum ar fi un cutremur cu magnitudinea de 5,9 sau un accident major în afara ferestrei.

În cel mai tare sezon, înainte de sesiune, adică în decembrie și mai, părea că aveam sarcinile întregii universități pe computer. Din fericire, majoritatea erau de același tip, mai ales când am fost contactați de un angrosist reprezentat de un reprezentant al unui întreg grup. Apoi a fost posibil să se facă 20 de sarcini, de exemplu în asamblator, schimbând doar 2-3 linii. Într-un asemenea anotimp, plumburile curgeau ca un râu. Singurul lucru care ne lipsea erau dischetele. În 2003-2005, studenții săraci din orașul nostru nu aveau așa ceva ca să transfere bani prin internet. Mai mult, nu existau garanții de plată, care acum se numește escrow. Prin urmare, compania SKS, în calitate de îndeplinitor de comenzi, a făcut o programare pe teritoriul universității și am dat floppy disk cu o solutie. Aproape că nu a existat nicio rambursare (din engleză refund - returnarea plății la cererea clientului). Toți au fost fericiți și au primit 4-5 puncte dacă ar putea afla ce am adăugat la fișierul readme.txt de pe dischetă. Deși, o simplă demonstrație a unui program complet funcțional a provocat adesea un efect uimitor în rândul profesorilor.

Pretul a fost ridicol, desigur, dar l-am luat in cantitate. De exemplu, o sarcină tipică acasă costa 2-3 USD. Cursuri 10$. Jackpot-ul sub forma unui program pentru munca unui candidat a căzut o dată și a fost de până la 20 de dolari pentru o cerere pentru un student absolvent care se pregătea pentru apărarea sa. În sezonul cald, acest venit poate fi înmulțit cu 100 de clienți, ceea ce în cele din urmă a fost mai mult decât salariul mediu din oraș. Ne-am simțit cool. Își puteau permite cluburi de noapte și să se distreze acolo, în loc să se sufoce cu cheburek pentru ultimul lor ban.

Din punct de vedere al aptitudinilor mele, acestea s-au înmulțit cu fiecare nouă sarcină de elev. Am început să primim cereri de la alte facultăți, cu un alt program de pregătire. Unii studenți de la nivel superior foloseau deja Java și XML la întregul lor potențial atunci când ne îndreptam spre C++/MFC. Unii aveau nevoie de Assembler, alții de PHP. Am învățat o întreagă grădină zoologică de tehnologii, biblioteci, formate de stocare a datelor și algoritmi pentru mine atunci când rezolv probleme.
Acest universalism a rămas cu mine până astăzi. O varietate de tehnologii și platforme sunt, de asemenea, utilizate atunci când lucrați la proiecte. Acum pot scrie software sau o aplicație pentru orice platformă, sistem de operare sau dispozitiv. Calitatea, desigur, va varia, dar pentru afacerea de care mă ocup în principal, bugetul este de obicei important. Iar o orchestră cu un singur om pentru ei înseamnă reducerea bugetului exact la fel de mult cât numărul de dezvoltatori pe care îi pot înlocui cu abilitățile mele.

Dacă vorbim despre cel mai mare beneficiu pe care mi l-a adus studiile la universitate, nu ar fi prelegeri despre algoritmi sau filozofie. Și nu va „învăța să învețe”, așa cum este la modă să spui despre universități. În primul rând, aceștia vor fi oameni cu care am rămas în relații amicale după antrenament. Și în al doilea rând, aceasta este aceeași companie SKS care m-a transformat într-un dezvoltator profesionist, cu comenzi reale și diverse.
Aș vrea să-mi amintesc o frază care este foarte potrivită pentru această parte a poveștii: O persoană devine programator atunci când alți oameni încep să-și folosească programele și plătesc bani pentru el..

Astfel, marca companiei SKS a fost cunoscută pe scară largă nu numai în cercurile studențești, ci și în rândul profesorilor. A existat chiar și un caz când unul dintre profesori a venit la mine acasă ca să-l ajut să scrie un program pentru nevoile lui științifice. El, la rândul său, m-a ajutat în specializarea lui. Am devenit amândoi atât de absorbiți de munca noastră, încât am adormit amândoi în zori. El stă pe canapea și eu pe un scaun în fața computerului. Dar și-au îndeplinit sarcinile și amândoi au fost mulțumiți de munca celuilalt.

Twist de soarta

A început anul 4 de universitate. Ultimul curs la finalizarea căruia se acordă o diplomă de licență. Practic nu existau discipline de învățământ general, ci doar cele legate de calculatoare și rețele. Acum, uneori regret că nu am avut timp sau nu m-am arătat interesat de aceeași electronică sau de structura internă a rețelelor. Acum termin asta din necesitate, dar sunt sigur că aceste cunoștințe de bază sunt necesare oricărui dezvoltator. Pe de altă parte, nu poți ști totul.
Termineam de scris propriul meu compilator C++, care era deja capabil să verifice codul pentru erori conform standardului și să genereze instrucțiuni de asamblare. Am visat că voi putea să-mi vând compilatorul cu 100 USD per licență. Am înmulțit asta cu o mie de clienți și mental
transportat la un ciocan, cu basul lui 50 Cent de la difuzoare și sexy de pe bancheta din spate. Ce poti sa faci, la 19 ani - astea sunt prioritatile. Trucul compilatorului meu de casă a fost că producea erori în rusă, în loc de engleză din Visual C++ și gcc, ceea ce nu este de înțeles de toată lumea. Am văzut asta ca pe o caracteristică ucigașă pe care nimeni în lume nu o inventase încă. Cred că nu are rost să spun mai departe. Nu a venit la vânzări. Cu toate acestea, am dobândit o cunoaștere profundă a limbajului C++, care mă hrănește până astăzi.

În al patrulea an, am mers la universitate din ce în ce mai puțin pentru că știam cea mai mare parte a programului. Și ceea ce nu știam, l-am rezolvat prin troc cu un student care a înțeles, de exemplu, electronica sau teoria probabilității. Ceea ce nu am venit pe atunci. Și căști invizibile pe un fir în care a fost dictat răspunsul. Și să ieși din clasă pentru ca un guru din specialitatea lui să-ți scrie soluția la întregul examen în 2 minute. A fost o perioadă grozavă.
În același curs, am început să mă gândesc la un loc de muncă adevărat. Cu un birou, aplicații comerciale reale și un salariu decent.
Dar pe vremea aceea, în orașul nostru, nu găseai decât un loc de muncă ca programator
„1C: Contabilitate”, care nu mi-a convenit deloc. Deși din lipsă de speranță, eram deja pregătit pentru asta. În acel moment, iubita mea făcea presiuni asupra mea să mă mut într-un apartament separat.
Altfel, a dormi cu părinții tăi prin perete nu este deloc comme il faut. Da, și deja m-am săturat să rezolv problemele studenților și îmi doream ceva mai mult.

Necazurile au apărut de nicăieri. M-am gandit sa fac reclama pe mail.ru ca caut un job cu un salariu de 300$ pentru postul de programator C++/Java/Delphi. Asta în 2006. La care practic au răspuns ceva de genul: „Poate ar trebui să-i scrii lui Bill Gates cu astfel de solicitări de salariu?” Acest lucru m-a supărat, dar printre o grămadă de răspunsuri similare, a existat o persoană care m-a adus la liber profesionist. Aceasta a fost singura oportunitate din Las Vegasul nostru sărac de a câștiga bani buni făcând ceea ce știam eu să fac.
Așa că studiul la universitate s-a transformat fără probleme în munca la schimbul de liber profesioniști. Încheind subiectul universitar, putem spune următoarele: Nu am mers în anul V. A existat o programare și un astfel de concept precum „prezența gratuită”, pe care l-am folosit 5%.
Singurul lucru care trebuia făcut era să susțină o diplomă de specialist. Ceea ce am făcut cu succes cu ajutorul prietenilor mei. Merită spus că prin acest curs m-am mutat deja de la părinții mei într-un apartament închiriat și mi-am cumpărat o mașină nouă. Așa a început cariera mea de dezvoltator profesionist.

Următoarele capitole vor fi dedicate proiectelor individuale, celor mai grave eșecuri și clienților cei mai inadecvați. O carieră în freelancer de la 5 la 40 $/oră, lansarea propriului startup, cum am fost interzis de la bursa de freelance Upwork și cum din freelancing am devenit lider de echipă la a doua cea mai mare companie petrolieră din lume. Cum m-am întors la munca de la distanță după birou și pornire și cum am rezolvat problemele interne legate de socializare și obiceiuri proaste.

Pentru a fi continuat ...

Sursa: www.habr.com

Adauga un comentariu