Programmering karriere. Kapitel 3. Universitet

Fortsættelse af historien "Programmer karriere".

Efter at have afsluttet aftenskolen, var det tid til at tage på universitetet. I vores by var der ét teknisk universitet. Det havde også ét fakultet for "Matematik og Datalogi", som havde en afdeling for "Computersystemer", hvor de uddannede fremtidige IT-arbejdere - programmører og administratorer.
Valget var lille, og jeg søgte specialet "Computer Engineering Programming". Der var 2 optagelsesprøver forude. I sprog og matematik.
Forud for eksamenerne var der en samtale, og valget af uddannelsesform - budget eller kontrakt, dvs. gratis eller for penge.

Mine forældre var til stede ved min samtale og var bekymrede for optagelse. De valgte selvfølgelig kontraktformen for uddannelse. Det kostede i øvrigt omkring $500/år, hvilket var mange penge i 2003, især for vores lille by. Jeg husker godt min fars dialog med pigen fra indlæggelseskontoret:
Pigen: Du kan prøve at bestå eksamener på et budget, og hvis det ikke virker, så skift til en kontrakt. Du kan betale i rater.
Fader: Nej, vi har allerede besluttet, at vi vil søge om en kontrakt
Pigen: Jamen hvorfor, du risikerer ikke noget
Fader: Nej, det er stadig en risiko. Sig mig, søger alle om en kontrakt?
Pigen: Ja, det gør alle. Det er nok kun fuldstændige idioter, der ikke kan
Fader: Så har vi en chance... sagde han grinende, og vi skrev under på dokumenterne til optagelse

Selvfølgelig var forestillingerne fra gymnasiet stadig friske i mine forældres erindring, så gennem årene forstår jeg, hvorfor de sagde det.

Om sommeren, før indlæggelsen, fortsatte jeg med at købe bøger for hele de $40, som min bedstemor gav mig fra hendes pension.
Fra det mindeværdige og betydningsfulde:
1. "UML 2.0. Objektorienteret analyse og design". En bog, der lærte mig at designe software af enhver kompleksitet, gennemtænke arkitekturen, opdele alt i komponenter, skrive use-cases og tegne UML-diagrammer. Dette er den viden, som seniorer, ledere og arkitekter har brug for. Dem, der materialiserer et system fra tomrummet, når der kun er en beskrivelse af ideen.
Jeg kender folk, der allerede er over 30, og de kan stadig ikke træffe en beslutning, medmindre der er en ordre fra oven fra en højere rangerende udvikler. I freelancing og fjernarbejde, når du ofte arbejder en-til-en med en klient, er denne viden også uvurderlig.
De er også relevante for indie-udviklere, der skaber nye applikationer og tjenester. Selvom få mennesker gider detaljeret design. Det er derfor, vi har software af en sådan kvalitet, der opsluger al hukommelsen, med en skæv UX.
2. "ANSI C++ 98 Standard". Ikke helt en bog, men den er på over 800 sider med baggrundsinformation. Jeg læste det selvfølgelig ikke afsnit for afsnit, men henviste snarere til specifikke sprogregler, da jeg udviklede min C++ compiler. Dybden af ​​kendskab til sproget, efter at have studeret og implementeret standarden, kan ikke beskrives med nogen vidunderlig epitet. Vi kan sige, at du ved alt om sproget, og endnu mere. Meget langt, omhyggeligt arbejde med at studere standarden. Men jeg havde 5 år på universitetet foran mig, så ingen pressede mig
3. "Delphi 6. Praktisk guide.". Det var et hurtigt spring ind i en verden af ​​GUI og formflatrende. Der var næsten ingen adgangstærskel, og jeg kendte allerede Pascal ret godt. Mens jeg studerede på universitetet, skrev jeg størstedelen af ​​kommercielle programmer i Delphi. Dette var software til universitetsstuderende, der stod for små virksomheder, regeringen. institutioner. Så var der flere freelanceordrer. I midten af ​​XNUMX'erne dominerede Delphi Windows-udviklingsmarkedet. Indtil nu kan du ved kassen i lokale butikker se programmer med velkendte skrifttyper og kontroller, som umiddelbart adskiller en Delphi-applikation fra enhver anden
4. "MFC Tutorial". Efter at have mestret Delphi, var det logisk at fortsætte med at skabe brugergrænseflade i C++. Det var meget sværere, ikke alt fungerede og var forståeligt. Men jeg bragte også denne teknologi til anvendelsesstadiet i kommercielle projekter. Et tysk antivirusfirma distribuerer mit program, skrevet i MFC den dag i dag.
5. "3 diske med MSDN Library 2001". Jeg havde ikke internettet med det samme, og så vidt jeg husker, var MSDN-biblioteket ikke online i 2003. Under alle omstændigheder var det nemmere for mig at installere MSDN-opslagsbogen på min lokale pc og nemt finde dokumentation for enhver WinApi-funktion eller MFC-klasse.
Programmering karriere. Kapitel 3. Universitet
De mest betydningsfulde bøger læst i perioden 2002-2004

Det er bøger, der er læst i perioden 2002-2004. Selvfølgelig er dette nu en lurvet arv, som bliver omskrevet i batches ved hjælp af .NET- og webteknologier. Men dette er min vej, måske nogle af jer havde en lignende.

Første semester

I slutningen af ​​sommeren er det tid til at tage optagelsesprøverne til universitetet. Alt gik glat. Jeg bestod sprog- og matematikeksamenen og blev indskrevet på det første år af specialet Computer Systems Programmering.
Den første september gik jeg som forventet til de første timer i mit liv. "Studenternes tid er den lyseste tid i livet," fortalte min mor mig. Jeg troede gerne på det.
Den første dag bestod 3 par almenpædagogiske fag, alle lærte hinanden at kende i gruppen, og universitetet efterlod i det hele taget et behageligt indtryk.
Endelig begyndte de at lære os ægte programmering i C! Og derudover underviste de i datalogiens historie, digital teknologi og meget anden information, som var relevant for mig. Selv bande. analysen var nyttig, da den gav mig mulighed for dybere at forstå, hvad den dybt respekterede Donald Knuth skrev.

Programmeringstimerne foregik i en kørende atmosfære for mig. Endelig kom folk til mig for at få hjælp. Jeg følte mig tiltrængt. I starten af ​​timen fik vi til opgave at skrive et program. Opgaven var designet til halvandet par, derefter en halv time til test. Jeg nåede at skrive opgaven på 3-5 minutter, og resten af ​​tiden gik jeg rundt på kontoret og hjalp andre med at finde ud af problemet.
Der var ikke nok computere til hele gruppen, så oftest sad vi to ad gangen ved én pc. Da jeg så mine evner, satte tre, fire, nogle gange endda 5-6 personer sig ned ved mit skrivebord og tøvede ikke med at sætte sig ned for at lære, hvad jeg lærte for et par år siden fra bogen af ​​Kernighan og Ritchie.
Mine klassekammerater så mine evner og kom selv med spørgsmål eller tilbød bare at hænge ud efter timerne. Sådan fik jeg mange venner, som vi stadig er venner med i dag.

Om vinteren var det tid til den første session. I alt var det nødvendigt at tage 4 fag: 2 typer højere matematik, historie og programmering. Alt bestod, nogle 4 point, nogle 3. Og jeg blev automatisk tildelt programmering. Lærerne kendte allerede mine færdigheder, så de så ingen mening i at teste mig. Jeg mødte glad op til sessionen med min rekordbog for straks at få en underskrift på den og skulle til at vende hjem, da mine klassekammerater bad mig blive og stå uden for døren. Godt. Efter at have placeret mig i vindueskarmen, ved udgangen fra kontoret, begyndte jeg at vente. Der hang en anden fyr ved siden af ​​mig, som også bestod eksamen automatisk.
"Hvorfor bliver du her," spurgte jeg
— “Jeg vil tjene penge ved at løse problemer. Hvorfor er du her?
- "Også mig. Jeg vil bare ikke tjene penge. Hvis du har brug for hjælp, så beslutter jeg af mit hjertes venlighed."
Min modstander tøvede og mumlede noget som svar.

Efter et stykke tid begyndte klassekammeraterne at forlade publikum og tog foldede stykker papir med sig, der indeholdt problemer fra eksamen.
"Hjælp mig med at bestemme," spurgte den første vovehals. "Okay, jeg beslutter mig nu," svarede jeg. Der var ikke engang gået 5 minutter, før jeg skrev en opløsning på et krøllet stykke papir med en kuglepen og gav det tilbage. Da de så, at ordningen virkede, begyndte folk at forlade publikum meget oftere, og nogle gange endda to eller tre ad gangen.
Der var tre stakke blade i min arbejdsvindueskarm. En pakke indeholder nyankomne TODO-ark. Foran mig lå et ark In Progress, og ved siden af ​​lå en pakke "Done".
Dette var min bedste time. Hele gruppen, som var næsten 20 personer, henvendte sig til mig for at få hjælp. Og jeg hjalp alle.
Og fyren, der ville tjene penge, gik hastigt efter et par minutter, idet han indså, at der ikke var noget at fange her, var al opmærksomhed fokuseret på altruisten.
Hele gruppen bestod eksamen med karaktererne 4 og 5, og jeg har nu 20 venner og urokkelig autoritet i programmeringsspørgsmål.

Første penge

Efter vintersessionen spredte rygter sig over hele fakultetet om, at der var en fyr, der kunne løse ethvert programmeringsproblem, som vi fik tildelt derhjemme eller under sessionen. Og mund til mund spredte sig ikke kun blandt nybegyndere, men også blandt seniorstuderende.
Som jeg allerede skrev, udviklede jeg venskabelige relationer med alle i gruppen efter den "fineste time" i eksamen, og vi begyndte at kommunikere meget tæt med et par af fyrene. Vi blev rigtige venner og brugte meget tid uden for universitetet. For nemheds skyld, lad os kalde dem Elon og Alen (kælenavnene er tæt på de rigtige).
Vi kaldte Elon ved navn, men Alain fik tilnavnet til ære for Alain Delon, for hans evne til at forføre enhver skønhed. Piger kredsede bogstaveligt talt omkring ham i varieret antal. Med hensyn til at møde mennesker og starte forhold for natten, havde Alain Delon ingen side. Han var en rigtig alfahan for kvindekønnet, hvilket er helt usædvanligt for de fleste it-specialister. Ud over amorøse affærer var Alain designer af kald. Og hvis han skulle tegne noget, for eksempel de dengang populære blinkende bannere i Web 1.0-formatet, så gjorde han det med lethed.

Der kan siges meget mere om Elon. Vi mødes stadig med ham den dag i dag, ti år efter universitetet. I sine første år var han en tynd, ret tavs fyr. (Det samme kan ikke siges om nutidens store fyr i en jeep). Jeg var dog den samme – tynd og fåmælt. Derfor tror jeg, vi hurtigt fandt et fælles sprog.
Ofte efter undervisningen samledes jeg, Elon og Alen i en ølhal, dækket af en presenning. For det første var det på den anden side af gaden fra universitetet, og for det andet kunne man for en "rubel" og 50 kopek få noget godt til 2 timers brandfest. Som fadøl og kiks. Men pointen var en anden.
Elon og Alen var fra andre byer og boede i et lejet værelse. De manglede konstant penge, og der var tidspunkter, hvor de måtte sulte. Glade øjeblikke, hvor de modtog et stipendium på 10 $ på deres kort, blev fejret samme dag, og så var det tid til at "spænde livremmen" og leve af det, Gud sender.

Selvfølgelig motiverede denne situation besøgende studerende til at lede efter måder at tjene ekstra penge på. Og foran dem, i armslængde, sad et "lyst hoved" i form af mig. Som også er bøjelig og sjældent nægter at hjælpe folk.
Jeg ved ikke, om jeg beskrev den situation rigtigt, men i sidste ende førte disse sammenkomster på værtshuset til oprettelsen af ​​det første it-firma i min karriere kaldet SKS. Navnet bestod simpelthen af ​​de første bogstaver i vores efternavne. Vores unge virksomhed, repræsenteret af tre stiftere, rev konkurrenterne og hele universitetet fra hinanden i løbet af de næste fire år.

Elon var en ROP. Det vil sige lederen af ​​salgsafdelingen. Hans ansvar omfattede nemlig at finde nye kunder til vores outsourcing-forretning. Salgskanalen var vandret trykte A4-foldere med en simpel inskription: "Løser programmeringsproblemer." Og nedenfor er Elons telefonnummer.
Denne form for udendørs reklame blev placeret på hver etage, hvor studerende, der studerede programmering, kunne dukke op.
En yderligere, stærkere med hensyn til kundeloyalitet, var salgskanalen gennem mund til mund.

Forretningsmodellen var enkel. Enten gennem en anbefaling eller en annonce kontaktede en universitetsstuderende os. Han gav en beskrivelse af et programmeringsproblem, der skulle løses inden for en bestemt deadline, og jeg løste det til elevprisen. Elon var involveret i salg og fik sin procentdel. Alain Delon deltog sjældnere i vores forretning, men hvis vi skulle lave et design, et billede eller tiltrække flere kunder, var han altid hjælpsom. Med sin charme bragte han en hel del nye mennesker til os. Alt jeg skulle gøre var at behandle denne pipeline med en hastighed på 5-10 opgaver om dagen. Deadlines var stramme – ikke mere end en uge. Og som oftest skulle det gøres i går. Derfor lærte sådanne omstændigheder mig hurtigt at skrive programmer i et “flow”, uden at blive distraheret af hver eneste lille ting som et jordskælv med en styrke på 5,9 eller et større uheld uden for vinduet.

I den varmeste sæson, før sessionen, altså i december og maj, så det ud til, at jeg havde hele universitetets opgaver på min computer. Heldigvis var de fleste af dem af samme type, især når vi blev kontaktet af en grossist repræsenteret af en repræsentant for en hel gruppe. Derefter var det muligt at lave 20 opgaver, for eksempel i assembler, der kun skiftede 2-3 linjer. I sådan en årstid flød bly som en flod. Det eneste vi manglede var disketter. I 2003-2005 havde fattige studerende i vores by ikke noget som at overføre penge via internettet. Desuden var der ingen garantier for betaling, som nu kaldes escrow. Derfor foretog SKS-virksomheden som ordreudfylder en aftale på universitetets territorium, og vi gav diskette med en løsning. Der var næsten ingen refusion (fra den engelske refundering - returnering af betaling efter anmodning fra klienten). Alle var glade og fik deres 4-5 point, hvis de kunne lære, hvad jeg tilføjede til readme.txt-filen på disketten. Selvom en simpel demo af et fuldt fungerende program også ofte forårsagede en wow-effekt blandt lærere.

Prisen var selvfølgelig latterlig, men vi tog den i mængde. For eksempel koster en typisk hjemmeopgave 2-3 dollars. Kursusopgave 10$. Jackpotten i form af et program for en kandidats arbejde faldt én gang, og det var hele 20 dollars for en ansøgning til en kandidatstuderende, der forbereder sit forsvar. I den varme sæson kan denne indkomst ganges med 100 kunder, hvilket i sidste ende var mere end gennemsnitslønnen i byen. Vi følte os seje. De havde råd til natklubber og hyggede sig der, i stedet for at kvæle i cheburek for deres sidste øre.

Ud fra mine kompetencer blev de mangedoblet med hver ny elevopgave. Vi begyndte at modtage ansøgninger fra andre fakulteter med et andet uddannelsesprogram. Nogle seniorstuderende brugte allerede Java og XML til deres fulde potentiale, da vi lænede os ind i C++/MFC. Nogle havde brug for Assembler, andre PHP. Jeg lærte en hel zoologisk have af teknologier, biblioteker, datalagringsformater og algoritmer for mig selv, når jeg skulle løse problemer.
Denne universalisme er blevet hos mig den dag i dag. En række forskellige teknologier og platforme bruges også, når man arbejder på projekter. Nu kan jeg skrive software eller en applikation til enhver platform, OS eller enhed. Kvaliteten vil selvfølgelig variere, men for den virksomhed, som jeg primært beskæftiger mig med, er budgettet som regel vigtigt. Og et enkeltmandsorkester for dem betyder at skære i budgettet præcis lige så meget som antallet af udviklere, jeg kan erstatte med mine færdigheder.

Hvis vi taler om det største udbytte, som at studere på universitetet gav mig, ville det ikke være forelæsninger om algoritmer eller filosofi. Og det vil ikke "lære at lære", som det er på mode at sige om universiteter. For det første vil det være mennesker, som vi forblev på venskabelige vilkår med efter træning. Og for det andet er det det samme SKS-firma, der har smedet mig til en professionel udvikler, med rigtige og forskelligartede ordrer.
Jeg vil gerne huske en sætning, der er meget velegnet til denne del af historien: En person bliver programmør, når andre mennesker begynder at bruge hans programmer og betaler penge for det..

Således var SKS virksomhedsmærke bredt kendt ikke kun i elevkredse, men også blandt lærere. Der var endda et tilfælde, hvor en af ​​lærerne kom hjem til mig, for at jeg kunne hjælpe ham med at skrive et program til hans videnskabelige behov. Han hjalp mig til gengæld i hans specialisering. Vi blev begge så opslugt af vores arbejde, at vi begge faldt i søvn ved daggry. Han ligger på sofaen, og jeg sidder på en stol foran computeren. Men de udførte deres opgaver, og begge var tilfredse med hinandens arbejde.

Skift af skæbnen

Det 4. år på universitetet begyndte. Det sidste kursus, hvoraf der tildeles en bachelorgrad. Der var praktisk talt ingen almendannende fag, men kun dem, der var relateret til computere og netværk. Nu, nogle gange fortryder jeg, at jeg ikke havde tid eller ikke viste interesse for den samme elektronik eller den interne struktur af netværk. Nu afslutter jeg dette af nød, men jeg er sikker på, at denne grundlæggende viden er nødvendig for enhver udvikler. På den anden side kan man ikke vide alt.
Jeg var ved at færdiggøre min egen C++-compiler, som allerede var i stand til at kontrollere kode for fejl i henhold til standarden og generere montagevejledninger. Jeg drømte, at jeg var ved at være i stand til at sælge min compiler for $100 pr. licens. Jeg gangede dette med tusinde kunder og mentalt
transporteret til en Hammer, med 50 Cents bas fra højttalerne og hotties på bagsædet. Hvad kan man gøre som 19-årig - sådan er prioriteterne. Tricket med min hjemmelavede compiler var, at den producerede fejl på russisk i stedet for det engelske fra Visual C++ og gcc, hvilket ikke er forståeligt for alle. Jeg så dette som en dræberfunktion, som ingen i verden endnu havde opfundet. Jeg synes ikke, det nytter at fortælle videre. Det kom ikke til salg. Jeg opnåede dog et dybt kendskab til C++-sproget, som nærer mig den dag i dag.

På mit fjerde år gik jeg mindre og mindre på universitetet, fordi jeg kunne det meste af uddannelsen. Og hvad jeg ikke vidste, løste jeg ved at bytte med en elev, der forstod for eksempel elektronik eller sandsynlighedsteori. Hvad vi ikke fandt på dengang. Og usynlige hovedtelefoner på en ledning, hvori svaret blev dikteret. Og løbe ud af klasseværelset, så en guru inden for sit speciale kan skrive løsningen på hele eksamen for dig på 2 minutter. Det var en fantastisk tid.
I løbet af samme kursus begyndte jeg at tænke på et rigtigt job. Med et kontor, rigtige kommercielle applikationer og en anstændig løn.
Men på det tidspunkt kunne man i vores by kun finde et job som programmør
“1C: Regnskab”, som slet ikke passede mig. Selvom jeg af håbløshed var allerede klar til dette. På det tidspunkt lagde min kæreste pres på mig for at flytte til en separat lejlighed.
Ellers er det slet ikke comme il faut at sove med dine forældre gennem væggen. Ja, og jeg var allerede træt af at løse elevernes problemer, og jeg ville have noget mere.

Problemer kom ud af ingenting. Jeg tænkte på at annoncere på mail.ru, at jeg søgte et job med en løn på $300 til stillingen som C++/Java/Delphi-programmør. Dette er i 2006. Hvortil de grundlæggende svarede noget i retning af: "Måske skulle du skrive til Bill Gates med sådanne lønanmodninger?" Dette gjorde mig ked af det, men blandt en masse lignende svar var der en person, der bragte mig ind i freelancen. Dette var den eneste mulighed i vores fattige Las Vegas for at tjene gode penge på det, jeg vidste, hvordan man skulle gøre.
Så studierne på universitetet flød glat ind i arbejdet på freelancebørsen. Afslutning af emnet universitet kan vi sige følgende: Jeg gik ikke på 5. år. Der var en programmering og sådan et koncept som "gratis fremmøde", som jeg brugte 146%.
Det eneste, der skulle gøres, var at forsvare et specialistdiplom. Hvilket jeg med succes gjorde med hjælp fra mine venner. Det er værd at sige, at på dette kursus var jeg allerede flyttet fra mine forældre til en lejet lejlighed og købte en ny bil. Sådan begyndte min karriere som professionel udvikler.

De følgende kapitler vil blive viet til individuelle projekter, de mest alvorlige fejl og de mest utilstrækkelige kunder. En karriere inden for freelance fra 5 til 40 $/time, lancering af min egen startup, hvordan jeg blev udelukket fra Upwork freelancebørsen, og hvordan jeg fra freelance blev teamleder hos det næststørste olieselskab i verden. Hvordan jeg vendte tilbage til fjernarbejde efter kontoret og opstart, og hvordan jeg løste interne problemer med socialisering og dårlige vaner.

Fortsættes ...

Kilde: www.habr.com

Tilføj en kommentar