Programmeringskarriere. Kapittel 3. Universitetet

Fortsettelse av historien "Programmerkarriere".

Etter å ha fullført kveldsskolen, var det på tide å gå på universitetet. I byen vår var det ett teknisk universitet. Det hadde også ett fakultet for "Matematikk og informatikk", som hadde en avdeling for "Datasystemer", hvor de trente fremtidige IT-arbeidere - programmerere og administratorer.
Valget var lite og jeg søkte på spesialiteten "Computer Engineering Programming". Det var 2 opptaksprøver foran. I språk og matematikk.
Eksamenene ble innledet med et intervju, og valg av opplæringsform - budsjett eller kontrakt, d.v.s. gratis eller for penger.

Foreldrene mine var til stede på intervjuet mitt og var bekymret for innleggelse. De valgte selvfølgelig kontraktsformen for opplæring. Det kostet forresten ca $500/år, som var mye penger i 2003, spesielt for den lille byen vår. Jeg husker godt min fars dialog med jenta fra inntakskontoret:
Jenta: Du kan prøve å bestå eksamener på et budsjett, og hvis det ikke fungerer, så bytt til en kontrakt. Du kan betale i avdrag.
Far: Nei, vi har allerede bestemt at vi skal søke om kontrakt
Jenta: Vel hvorfor, du risikerer ikke noe
Far: Nei, det er fortsatt en risiko. Si meg, søker alle om en kontrakt?
Jenta: Ja, det gjør alle. Sannsynligvis er det bare komplette idioter som ikke kan det
Far: Da har vi en sjanse... sa han og gliste, og vi signerte dokumentene for opptak

Selvfølgelig var forestillingene fra videregående fortsatt ferske i mine foreldres minner, så med årene forstår jeg hvorfor de sa det.

Om sommeren, før innleggelsen, fortsatte jeg å kjøpe bøker for hele $40 som bestemor ga meg fra pensjonen hennes.
Fra det minneverdige og betydningsfulle:
1. "UML 2.0. Objektorientert analyse og design". En bok som lærte meg å designe programvare av enhver kompleksitet, tenke gjennom arkitekturen, bryte alt ned i komponenter, skrive brukssaker og tegne UML-diagrammer. Dette er kunnskapen seniorer, ledere og arkitekter trenger. De som materialiserer et system fra tomrommet, når det bare er en beskrivelse av ideen.
Jeg kjenner folk som allerede er over 30, og de kan fortsatt ikke ta en avgjørelse med mindre det er en ordre ovenfra, fra en høyere rangert utvikler. I freelancing og fjernarbeid, når du ofte jobber en-til-en med en klient, er denne kunnskapen også uvurderlig.
De er også relevante for uavhengige utviklere som lager nye applikasjoner og tjenester. Selv om få mennesker bryr seg med detaljdesign. Det er derfor vi har programvare av slik kvalitet, som sluker opp alt minnet, med en skjev UX.
2. "ANSI C++ 98 Standard". Ikke helt en bok, men den er på over 800 sider med bakgrunnsinformasjon. Jeg leste det selvfølgelig ikke seksjon for seksjon, men henviste heller til spesifikke språkregler når jeg utviklet min C++ kompilator. Dybden av kunnskap om språket, etter å ha studert og implementert standarden, kan ikke beskrives med noen fantastisk epitet. Vi kan si at du kan alt om språket, og enda mer. Veldig langt, møysommelig arbeid med å studere standarden. Men jeg hadde 5 år på universitetet foran meg, så ingen presset meg
3. "Delphi 6. Praktisk veiledning.". Det var et raskt sprang inn i verden av GUI og formflatrende. Det var nesten ingen inngangsterskel, og jeg kjente Pascal ganske godt fra før. Mens jeg studerte på universitetet, skrev jeg brorparten av kommersielle programmer i Delphi. Dette var programvare for universitetsstudenter, regnskap for små bedrifter, myndigheter. institusjoner. Så ble det flere frilansbestillinger. På midten av XNUMX-tallet dominerte Delphi Windows-utviklingsmarkedet. Til nå, i kassen i lokale butikker kan du se programmer med kjente fonter og kontroller, som umiddelbart skiller en Delphi-applikasjon fra alle andre
4. "MFC-opplæring". Etter å ha mestret Delphi, var det logisk å fortsette å lage brukergrensesnitt i C++. Det var mye vanskeligere, ikke alt fungerte og var forståelig. Imidlertid brakte jeg også denne teknologien til bruksstadiet i kommersielle prosjekter. Et tysk antivirusselskap distribuerer programmet mitt, skrevet i MFC den dag i dag.
5. "3 disker med MSDN Library 2001". Jeg hadde ikke Internett med en gang, og så vidt jeg husker, var ikke MSDN-biblioteket online i 2003. I alle fall var det lettere for meg å installere MSDN-referanseboken på min lokale PC, og enkelt finne dokumentasjon for enhver WinApi-funksjon eller MFC-klasse.
Programmeringskarriere. Kapittel 3. Universitetet
De mest betydningsfulle bøkene lest i perioden 2002-2004

Dette er bøker som ble lest i perioden 2002-2004. Selvfølgelig, nå er dette shabby arv, som blir omskrevet i grupper ved hjelp av .NET og web-teknologier. Men dette er min vei, kanskje noen av dere hadde en lignende.

Første semester

På slutten av sommeren er det tid for å ta opptaksprøver til universitetet. Alt gikk knirkefritt. Jeg besto språk- og matematikk-eksamenen og ble registrert i det første året av spesialiteten Datasystemprogrammering.
Den første september gikk jeg som forventet på de første timene i mitt liv. «Studentenes tid er den lyseste tiden i livet,» sa moren min til meg. Jeg trodde det villig.
Den første dagen besto 3 par allmennpedagogiske fag, alle ble kjent med hverandre i gruppa, og totalt sett satte universitetet et hyggelig inntrykk.
Endelig begynte de å lære oss ekte programmering i C! Og i tillegg underviste de i datavitenskapens historie, digital teknologi og mye annen informasjon som var relevant for meg. Til og med banning. analysen var nyttig, siden den tillot meg å forstå dypere hva den dypt respekterte Donald Knuth skrev.

Programmeringskurs fant sted i en drivende atmosfære for meg. Til slutt kom folk til meg for å få hjelp. Jeg følte meg nødvendig. I begynnelsen av timen fikk vi i oppgave å skrive et program. Oppgaven ble designet for ett og et halvt par, deretter en halvtime for testing. Jeg klarte å skrive oppgaven på 3-5 minutter, og resten av tiden gikk jeg rundt på kontoret og hjalp andre med å finne ut av problemet.
Det var ikke nok datamaskiner for hele gruppen, så oftest satt vi to om gangen på én PC. Da jeg så mine evner, satte tre, fire, noen ganger til og med 5-6 personer seg ned ved skrivebordet mitt og nølte ikke med å sette seg ned for å lære det jeg lærte for et par år siden fra boken til Kernighan og Ritchie.
Klassekameratene mine så mine evner og kom med spørsmål selv, eller tilbød seg å bare henge etter timene. Slik fikk jeg mange venner, de fleste av dem er vi fortsatt venner med i dag.

Om vinteren var det tid for første økt. Totalt var det nødvendig å ta 4 fag: 2 typer høyere matematikk, historie og programmering. Alt gikk, noen 4 poeng, noen 3. Og jeg ble tildelt programmering automatisk. Lærerne kjente ferdighetene mine allerede, så de så ingen vits i å teste meg. Jeg møtte glad opp til økten med rekordboken min for umiddelbart å få en signatur på den og skulle reise hjem da klassekameratene mine ba meg bli og stå utenfor døren. Vi vil. Etter å ha plassert meg i vinduskarmen, ved utgangen fra kontoret, begynte jeg å vente. Det hang en annen fyr ved siden av meg, som også besto eksamen automatisk.
"Hvorfor blir du her," spurte jeg
— «Jeg vil tjene penger ved å løse problemer. Hvorfor er du her?
- "Jeg også. Jeg kommer bare ikke til å tjene penger. Hvis du trenger hjelp, vil jeg bare bestemme meg av hjertets vennlighet.»
Motstanderen min nølte og mumlet noe som svar.

Etter en stund begynte klassekameratene å forlate publikum, og tok med seg brettede papirlapper som inneholdt problemer fra eksamen.
"Hjelp meg å bestemme," spurte den første våghalsen. "Ok, jeg bestemmer meg nå," svarte jeg. Det hadde ikke engang gått 5 minutter før jeg skriblet en løsning på et sammenkrøllet stykke papir med en kulepenn og ga den tilbake. Da de så at ordningen fungerte, begynte folk å forlate publikum mye oftere, og noen ganger til og med to eller tre om gangen.
Det var tre stabler med løv i arbeidsvinduskarmen min. En pakke inneholder nylig ankomne TODO-ark. Foran meg lå et ark med In Progress, og ved siden av lå en pakke med «Done».
Dette var min fineste time. Hele gruppen, som var nesten 20 personer, henvendte seg til meg for å få hjelp. Og jeg hjalp alle.
Og fyren som ville tjene penger dro raskt etter noen minutter, og innså at det ikke var noe å fange her, all oppmerksomhet var rettet mot altruisten.
Hele gruppen besto eksamen med karakterene 4 og 5, og jeg har nå 20 venner og urokkelig autoritet i programmeringsspørsmål.

Første penger

Etter vinterøkten spredte det seg rykter over hele fakultetet om at det var en fyr som kunne løse ethvert programmeringsproblem, som vi ble tildelt hjemme eller under økten. Og jungeltelegrafen spredte seg ikke bare blant ferskinger, men også blant seniorstudenter.
Som jeg allerede skrev, utviklet jeg vennlige forhold til alle i gruppen etter den "fineste timen" på eksamen, og vi begynte å kommunisere veldig tett med et par av gutta. Vi ble ekte venner og tilbrakte mye tid utenfor universitetet. For enkelhets skyld, la oss kalle dem Elon og Alen (kallenavnene er nær de ekte).
Vi kalte Elon ved navn, men Alain fikk kallenavnet til ære for Alain Delon, for hans evne til å forføre enhver skjønnhet. Jenter bokstavelig talt sirklet rundt ham, i variert antall. Når det gjelder å møte mennesker og starte forhold for natten, hadde Alain Delon ingen like. Han var en ekte alfahann for kvinnekjønnet, noe som er helt uvanlig for de fleste IT-spesialister. I tillegg til amorøse saker, var Alain en designer av yrke. Og hvis han trengte å tegne noe, for eksempel de da populære blinkende bannerne i Web 1.0-formatet, så gjorde han det med letthet.

Mye mer kan sies om Elon. Vi møter ham fortsatt den dag i dag, ti år etter universitetet. De første årene var han en mager, ganske taus fyr. (Det samme kan ikke sies om dagens store mann i en jeep). Jeg var imidlertid den samme - tynn og fåmælt. Derfor tror jeg vi raskt fant et felles språk.
Ofte etter timene samlet jeg, Elon og Alen seg i en ølhall, dekket med en presenning. For det første var det rett over gaten fra universitetet, og for det andre, for en "rubel" og 50 kopek, kunne du få noen godbiter for 2 timer med en brennende fest. Som fatøl og kjeks. Men poenget var et annet.
Elon og Alen var fra andre byer og bodde i et leid rom. De manglet stadig penger, og det var tider da de måtte gå sultne. Lykkelige øyeblikk, da de mottok et stipend på 10 dollar på kortet sitt, ble feiret samme dag, og da var det på tide å "stramme beltet" og leve på det Gud sender.

Selvfølgelig motiverte denne situasjonen besøkende studenter til å se etter måter å tjene ekstra penger på. Og foran dem, på armlengdes avstand, satt et «lyst hode» i form av meg. Som også er bøyelig og sjelden nekter å hjelpe folk.
Jeg vet ikke om jeg beskrev den situasjonen riktig, men til slutt førte disse samlingene på puben til opprettelsen av det første IT-selskapet i min karriere kalt SKS. Navnet var ganske enkelt bygd opp av de første bokstavene i etternavnene våre. Vårt unge selskap, representert ved tre grunnleggere, rev konkurrentene og hele universitetet fra hverandre i løpet av de neste fire årene.

Elon var en ROP. Det vil si sjefen for salgsavdelingen. Hans ansvar inkluderte nemlig å finne nye kunder til vår outsourcingvirksomhet. Salgskanalen ble horisontalt trykt A4-brosjyrer, med en enkel inskripsjon: "Løser programmeringsproblemer." Og nedenfor er Elons telefonnummer.
Denne typen utendørsreklame ble plassert i hver etasje der studenter som studerer programmering kunne dukke opp.
En annen, sterkere når det gjelder kundelojalitet, var salgskanalen gjennom jungeltelegrafen.

Forretningsmodellen var enkel. Enten gjennom en anbefaling eller en annonse tok en universitetsstudent kontakt med oss. Han ga en beskrivelse av et programmeringsproblem som måtte løses innen en viss frist, og jeg løste det for studentprisen. Elon var involvert i salg og fikk sin prosentandel. Alain Delon deltok sjeldnere i virksomheten vår, men hvis vi trengte å lage et design, et bilde eller tiltrekke flere kunder, var han alltid hjelpsom. Med sin sjarm brakte han ganske mange nye mennesker til oss. Alt jeg måtte gjøre var å behandle denne rørledningen med en hastighet på 5-10 oppgaver per dag. Fristene var strenge – ikke mer enn en uke. Og oftere enn ikke måtte det gjøres i går. Derfor lærte slike omstendigheter meg raskt å skrive programmer i en "flyt", uten å bli distrahert av hver minste ting som et jordskjelv med en styrke på 5,9 eller en større ulykke utenfor vinduet.

I løpet av den varmeste sesongen, før økten, det vil si i desember og mai, så det ut til at jeg hadde hele universitetets oppgaver på datamaskinen min. Heldigvis var de fleste av samme type, spesielt da vi ble kontaktet av en grossist representert av en representant for en hel gruppe. Da var det mulig å gjøre 20 oppgaver, for eksempel i assembler, bare bytte 2-3 linjer. I en slik årstid rant bly som en elv. Det eneste vi manglet var disketter. I 2003-2005 hadde ikke fattige studenter i byen vår noe slikt som å overføre penger via Internett. Dessuten var det ingen garantier for betaling, som nå kalles escrow. Derfor foretok SKS-selskapet, som oppfyller av ordre, en avtale på universitetets territorium og vi ga diskett med en løsning. Det var nesten ingen refusjon (fra den engelske refusjon - retur av betaling på forespørsel fra klienten). Alle var fornøyde og fikk sine 4-5 poeng hvis de kunne lære hva jeg la til readme.txt-filen på disketten. Selv om en enkel demo av et fullt fungerende program også ofte forårsaket en wow-effekt blant lærere.

Prisen var selvfølgelig latterlig, men vi tok den i mengde. For eksempel koster en typisk hjemmeoppgave $2-3. Kursoppdrag 10$. Jackpotten i form av et program for en kandidats arbeid falt ut en gang, og det var så mye som $20 for en søknad til en doktorgradsstudent som forbereder seg til forsvaret sitt. I løpet av den varme årstiden kan denne inntekten multipliseres med 100 kunder, som til slutt var mer enn gjennomsnittslønnen i byen. Vi følte oss kule. De hadde råd til nattklubber og koste seg der, i stedet for å kvele seg på cheburek for den siste kronen.

Ut fra mine ferdigheter, multipliserte de med hver nye elevoppgave. Vi begynte å motta søknader fra andre fakulteter, med et annet opplæringsprogram. Noen seniorstudenter brukte allerede Java og XML til sitt fulle potensial da vi lenet oss inn i C++/MFC. Noen trengte Assembler, andre PHP. Jeg lærte en hel dyrehage av teknologier, biblioteker, datalagringsformater og algoritmer for meg selv når jeg skulle løse problemer.
Denne universalismen har levd med meg til i dag. En rekke teknologier og plattformer brukes også når man jobber med prosjekter. Nå kan jeg skrive programvare eller en applikasjon for hvilken som helst plattform, operativsystem eller enhet. Kvaliteten vil selvfølgelig variere, men for den virksomheten jeg hovedsakelig driver med er budsjettet som regel viktig. Og et enmannsorkester for dem betyr å kutte budsjettet nøyaktig like mye som antallet utviklere jeg kan erstatte med mine ferdigheter.

Hvis vi snakker om den største fordelen studiet ved universitetet ga meg, ville det ikke være forelesninger om algoritmer eller filosofi. Og det vil ikke "lære å lære", som det er fasjonabelt å si om universiteter. For det første vil dette være folk som vi forble på vennskapsfot med etter trening. Og for det andre er dette det samme SKS-selskapet som smidde meg til en profesjonell utvikler, med ekte og mangfoldige bestillinger.
Jeg vil gjerne huske en setning som er veldig egnet for denne delen av historien: En person blir en programmerer når andre mennesker begynner å bruke programmene hans og betaler penger for det..

Dermed var SKS-bedriftsmerket viden kjent ikke bare i studentkretser, men også blant lærere. Det var til og med et tilfelle da en av lærerne kom hjem til meg slik at jeg kunne hjelpe ham med å skrive et program for hans vitenskapelige behov. Han på sin side hjalp meg i spesialiseringen. Vi ble begge så oppslukt av arbeidet vårt at vi begge sovnet ved daggry. Han ligger på sofaen og jeg sitter på en stol foran datamaskinen. Men de fullførte oppgavene sine, og begge var fornøyde med hverandres arbeid.

Skift av skjebne

Det 4. året på universitetet begynte. Det siste kurset ved fullført bachelorgrad. Det var praktisk talt ingen allmennpedagogiske fag, men bare de som var knyttet til datamaskiner og nettverk. Noen ganger angrer jeg på at jeg ikke hadde tid eller ikke viste interesse for den samme elektronikken eller den interne strukturen til nettverk. Nå fullfører jeg dette av nødvendighet, men jeg er sikker på at denne grunnleggende kunnskapen er nødvendig for enhver utvikler. På den annen side kan du ikke vite alt.
Jeg var ferdig med å skrive min egen C++ kompilator, som allerede var i stand til å sjekke kode for feil i henhold til standarden og generere monteringsinstruksjoner. Jeg drømte at jeg var i ferd med å selge kompilatoren min for $100 per lisens. Jeg multipliserte dette med tusen kunder og mentalt
transportert til en Hammer, med 50 Cents basssprengning fra høyttalerne og hotties i baksetet. Hva kan du gjøre som 19-åring - slik er prioriteringene. Trikset med min hjemmelagde kompilator var at den produserte feil på russisk, i stedet for engelsk fra Visual C++ og gcc, noe som ikke er forståelig for alle. Jeg så på dette som en morderfunksjon som ingen i verden ennå hadde oppfunnet. Jeg tror det ikke er noen vits i å fortelle videre. Det kom ikke til salg. Imidlertid oppnådde jeg en dyp kunnskap om C++-språket, som mater meg til i dag.

På mitt fjerde år gikk jeg mindre og mindre på universitetet fordi jeg kunne det meste av programmet. Og det jeg ikke visste, løste jeg ved å bytte med en student som forsto for eksempel elektronikk eller sannsynlighetsteori. Det vi ikke kom på da. Og usynlige hodetelefoner på en ledning der svaret ble diktert. Og løper ut av klasserommet slik at en guru i sin spesialitet kan skrive ut løsningen på hele eksamen for deg på 2 minutter. Det var en flott tid.
I løpet av samme kurs begynte jeg å tenke på en skikkelig jobb. Med kontor, ekte kommersielle applikasjoner og anstendig lønn.
Men på den tiden, i byen vår, kunne du bare finne en jobb som programmerer
«1C: Regnskap», som ikke passet meg i det hele tatt. Selv av håpløshet var jeg allerede klar for dette. På den tiden la kjæresten min press på meg for å flytte til en egen leilighet.
Ellers er det ikke comme il faut å sove med foreldrene dine gjennom veggen. Ja, og jeg var allerede lei av å løse studentproblemer, og jeg ville ha noe mer.

Problemer kom ut av ingensteds. Jeg tenkte på å annonsere på mail.ru at jeg var på utkikk etter en jobb med en lønn på $300 for stillingen som C++/Java/Delphi-programmerer. Dette er i 2006. Som de i utgangspunktet svarte noe sånt som: "Kanskje du burde skrive til Bill Gates med slike lønnsforespørsler?" Dette gjorde meg opprørt, men blant en haug med lignende svar var det en person som brakte meg ut i freelancing. Dette var den eneste muligheten i vårt fattige Las Vegas til å tjene gode penger på det jeg visste hvordan jeg skulle gjøre.
Så studier ved universitetet fløt jevnt inn i jobben på frilansutvekslingen. Ved å avslutte emnet universitet kan vi si følgende: Jeg gikk ikke på det 5. året. Det var en programmering og et konsept som "gratis oppmøte", som jeg brukte 146 %.
Det eneste som måtte gjøres var å forsvare et spesialistdiplom. Noe jeg lykkes med ved hjelp av vennene mine. Det er verdt å si at på dette kurset hadde jeg allerede flyttet fra foreldrene mine til en leid leilighet og kjøpt en ny bil. Slik begynte min karriere som profesjonell utvikler.

De følgende kapitlene vil bli viet til enkeltprosjekter, de mest alvorlige feilene og de mest utilstrekkelige kundene. En karriere innen freelancing fra 5 til 40 $/time, lansering av min egen oppstart, hvordan jeg ble utestengt fra Upwork freelance-børsen og hvordan jeg fra freelancing ble teamleder i det nest største oljeselskapet i verden. Hvordan jeg kom tilbake til fjernarbeid etter kontoret og oppstarten, og hvordan jeg løste interne problemer med sosialisering og dårlige vaner.

To be continued ...

Kilde: www.habr.com

Legg til en kommentar