Programmeer carrière. Hoofdstuk 3. Universiteit

Vervolg van het verhaal "Programmeur carrière".

Nadat ik de avondschool had afgerond, was het tijd om naar de universiteit te gaan. In onze stad was er één technische universiteit. Het had ook een faculteit “Wiskunde en Informatica”, die een afdeling “Computersystemen” had, waar ze toekomstige IT-werknemers opleidden - programmeurs en beheerders.
De keuze was klein en ik solliciteerde voor het specialisme “Computer Engineering Programming”. Er stonden nog 2 toelatingsexamens in het verschiet. In taal en wiskunde.
De examens werden voorafgegaan door een interview en de keuze van de opleidingsvorm - budget of contract, d.w.z. gratis of voor geld.

Mijn ouders waren bij mijn sollicitatiegesprek aanwezig en maakten zich zorgen over de toelating. Uiteraard kozen zij voor de contractvorm van de opleiding. Het kostte trouwens ongeveer $500/jaar, wat in 2003 veel geld was, vooral voor ons kleine stadje. Ik herinner me nog goed de dialoog van mijn vader met het meisje van het opnamekantoor:
Het meisje: Je kunt proberen examens met een beperkt budget te halen, en als het niet lukt, dan overstappen op een contract. U kunt in termijnen betalen.
Vader: Nee, we hebben al besloten dat we een contract gaan aanvragen
Het meisje: Welnu, je riskeert niets
Vader: Nee, het is nog steeds een risico. Vertel eens, vraagt ​​iedereen een contract aan?
Het meisje: Ja, dat doet iedereen. Waarschijnlijk kunnen alleen complete idioten dat niet
Vader: Dan hebben we een kans... zei hij grijnzend, en we tekenden de documenten voor toelating

Natuurlijk lagen de optredens van de middelbare school nog vers in het geheugen van mijn ouders, dus door de jaren heen begrijp ik waarom ze dat zeiden.

In de zomer, vóór de toelating, bleef ik boeken kopen voor de volledige $ 40 die mijn grootmoeder mij van haar pensioen gaf.
Van de gedenkwaardige en belangrijke:
1. "UML 2.0. Objectgeoriënteerde analyse en ontwerp". Een boek dat me leerde hoe ik software van welke complexiteit dan ook kon ontwerpen, hoe ik de architectuur moest doordenken, alles in componenten kon opsplitsen, use-cases kon schrijven en UML-diagrammen kon tekenen. Dit is de kennis die senioren, leidinggevenden en architecten nodig hebben. Degenen die een systeem materialiseren vanuit de leegte, terwijl er alleen maar een beschrijving van het idee is.
Ik ken mensen die al ouder zijn dan 30, en die nog steeds geen beslissing kunnen nemen tenzij er een bevel van bovenaf is, van een hogergeplaatste ontwikkelaar. Bij freelancen en werken op afstand, wanneer je vaak één-op-één met een klant werkt, is deze kennis ook van onschatbare waarde.
Ze zijn ook relevant voor indie-ontwikkelaars die nieuwe applicaties en services maken. Hoewel weinig mensen zich bezighouden met gedetailleerd ontwerp. Daarom hebben we software van zo’n kwaliteit, die al het geheugen opslokt, met een kromme UX.
2. "ANSI C++ 98-standaard". Niet echt een boek, maar het bevat meer dan 800 pagina's achtergrondinformatie. Natuurlijk heb ik het niet sectie voor sectie gelezen, maar verwees ik naar specifieke taalregels bij het ontwikkelen van mijn C++-compiler. De diepte van de kennis van de taal, na het bestuderen en implementeren van de standaard, kan niet door een prachtig epitheton worden beschreven. We kunnen zeggen dat je alles over de taal weet, en zelfs meer. Zeer lang, nauwgezet werk om de standaard te bestuderen. Maar ik had nog vijf jaar universiteit voor de boeg, dus niemand duwde mij
3. "Delphi 6. Praktische gids.". Het was een snelle sprong in de wereld van GUI en vormflatterend. Er was bijna geen instapdrempel en ik kende Pascal al vrij goed. Tijdens mijn studie aan de universiteit schreef ik het leeuwendeel van de commerciële programma's in Delphi. Dit was software voor universitair afgestudeerde studenten, kleine bedrijven en de overheid. instellingen. Vervolgens waren er verschillende freelance-opdrachten. Halverwege de jaren XNUMX domineerde Delphi de Windows-ontwikkelingsmarkt. Tot nu toe zie je aan de kassa in lokale winkels programma's met bekende lettertypen en bedieningselementen, wat een Delphi-applicatie meteen onderscheidt van alle andere
4. "MFC-zelfstudie". Nadat ik Delphi onder de knie had, was het logisch om door te gaan met het creëren van een gebruikersinterface in C++. Het was veel moeilijker, niet alles lukte en was begrijpelijk. Ik heb deze technologie echter ook naar het stadium van toepassing in commerciële projecten gebracht. Een Duits antivirusbedrijf distribueert mijn programma, dat tot op de dag van vandaag in MFC is geschreven.
5. "3 schijven met MSDN-bibliotheek 2001". Ik had niet meteen internet en voor zover ik me herinner was de MSDN-bibliotheek in 2003 niet online. In ieder geval was het voor mij gemakkelijker om het MSDN-referentieboek op mijn lokale pc te installeren en gemakkelijk documentatie te vinden voor elke WinApi-functie of MFC-klasse.
Programmeer carrière. Hoofdstuk 3. Universiteit
De belangrijkste boeken gelezen in de periode 2002-2004

Het gaat om boeken die in de periode 2002-2004 zijn gelezen. Natuurlijk is dit nu een armoedige erfenis, die in batches wordt herschreven met behulp van .NET- en webtechnologieën. Maar dit is mijn pad, misschien hadden sommigen van jullie een soortgelijk pad.

Eerste semester

Aan het einde van de zomer is het tijd om de toelatingsexamens voor de universiteit af te leggen. Alles verliep vlot. Ik slaagde voor het taal- en wiskundeexamen en werd ingeschreven voor het eerste jaar van de specialiteit Computersysteemprogrammering.
Op XNUMX september ging ik, zoals verwacht, naar de eerste lessen van mijn leven. ‘Studententijd is de mooiste tijd in het leven’, vertelde mijn moeder me. Ik geloofde het graag.
Op de eerste dag zijn 3 koppels algemeen vormende vakken geslaagd, iedereen heeft elkaar in de groep leren kennen en over het algemeen heeft de universiteit een prettige indruk achtergelaten.
Eindelijk begonnen ze ons het echte programmeren in C te leren! En daarnaast leerden ze de geschiedenis van de informatica, digitale technologie en veel andere informatie die voor mij relevant was. Zelfs vloeken. de analyse was nuttig, omdat ik hierdoor dieper kon begrijpen wat de zeer gerespecteerde Donald Knuth schreef.

De programmeerlessen vonden voor mij plaats in een stimulerende sfeer. Uiteindelijk kwamen mensen naar mij toe voor hulp. Ik voelde me nodig. Aan het begin van de les kregen we de opdracht een programma te schrijven. De taak was bedoeld voor anderhalf paar, daarna een half uur om te testen. Het lukte me om de opdracht in 3-5 minuten te schrijven, en de rest van de tijd liep ik door het kantoor en hielp anderen het probleem te achterhalen.
Er waren niet genoeg computers voor de hele groep, dus meestal zaten we met twee tegelijk aan één pc. Toen ze mijn capaciteiten zagen, gingen drie, vier, soms zelfs vijf tot zes mensen naast mijn bureau zitten en aarzelden niet om te gaan zitten om te leren wat ik een paar jaar geleden leerde uit het boek van Kernighan en Ritchie.
Mijn klasgenoten zagen mijn capaciteiten en kwamen zelf met vragen, of boden aan om na de les gewoon wat rond te hangen. Zo heb ik veel vrienden gemaakt, met wie we met de meesten nog steeds bevriend zijn.

In de winter was het tijd voor de eerste sessie. In totaal was het nodig om 4 vakken te volgen: 2 soorten hogere wiskunde, geschiedenis en programmeren. Alles is geslaagd, sommige 4 punten, sommige 3. En ik kreeg automatisch de programmering toegewezen. De leraren kenden mijn vaardigheden al, dus ze zagen er geen nut in om mij te testen. Ik kwam vrolijk naar de sessie met mijn platenboekje om er meteen een handtekening op te zetten en stond op het punt naar huis terug te keren toen mijn klasgenoten me vroegen om buiten de deur te blijven staan. Goed. Nadat ik mezelf bij de vensterbank had geplaatst, bij de uitgang van het kantoor, begon ik te wachten. Naast mij hing nog een jongen, die ook automatisch slaagde voor het examen.
‘Waarom blijf je hier,’ vroeg ik
– “Ik wil geld verdienen door problemen op te lossen. Waarom ben je hier?
- "Ik ook. Ik ga gewoon geen geld verdienen. Als je hulp nodig hebt, dan zal ik, uit de goedheid van mijn hart, gewoon beslissen.
Mijn tegenstander aarzelde en mompelde iets als antwoord.

Na een tijdje begonnen klasgenoten het publiek te verlaten en namen gevouwen stukjes papier mee met de problemen van het examen.
‘Help mij beslissen,’ vroeg de eerste waaghals. ‘Oké, ik beslis nu’, antwoordde ik. Nog geen 5 minuten waren verstreken voordat ik met een balpen een oplossing op een verfrommeld vel papier krabbelde en het teruggaf. Toen ze zagen dat het plan werkte, begonnen mensen het publiek veel vaker te verlaten, en soms zelfs twee of drie tegelijk.
Er lagen drie stapels bladeren op mijn werkvensterbank. Eén verpakking bevat nieuw binnengekomen TODO-vellen. Voor mij lag een vel In Progress, en daarnaast lag een pakje “Done”.
Dit was mijn mooiste uur. De hele groep, die uit bijna twintig mensen bestond, wendde zich tot mij voor hulp. En ik heb iedereen geholpen.
En de man die geld wilde verdienen, vertrok na een paar minuten haastig, zich realiserend dat hier niets te vangen viel, alle aandacht was gericht op de altruïst.
De hele groep slaagde voor het examen met groep 4 en 5, en ik heb nu 20 vrienden en een onwrikbare autoriteit op het gebied van programmeren.

Eerste geld

Na de wintersessie verspreidden de geruchten zich door de hele faculteit dat er een man was die elk programmeerprobleem kon oplossen, dat we thuis of tijdens de sessie kregen toegewezen. En mond-tot-mondreclame verspreidde zich niet alleen onder eerstejaarsstudenten, maar ook onder ouderejaarsstudenten.
Zoals ik al schreef, ontwikkelde ik na het 'fijnste uur' van het examen vriendschappelijke relaties met iedereen in de groep, en we begonnen heel nauw te communiceren met een paar jongens. We werden echte vrienden en brachten veel tijd buiten de universiteit door. Laten we ze voor de eenvoud van presentatie Elon en Alen noemen (de bijnamen komen dicht bij de echte).
We noemden Elon bij naam, maar Alain kreeg de bijnaam ter ere van Alain Delon, vanwege zijn vermogen om elke schoonheid te verleiden. Meisjes cirkelden letterlijk om hem heen, in uiteenlopende aantallen. Op het gebied van het ontmoeten van mensen en het aangaan van relaties voor de avond had Alain Delon geen gelijke. Hij was een echte alfamannetje voor het vrouwelijke geslacht, wat voor de meeste IT-specialisten volkomen ongebruikelijk is. Naast amoureuze zaken was Alain ontwerper van beroep. En als hij iets moest tekenen, bijvoorbeeld de toen populaire knipperende banners van het Web 1.0-formaat, dan deed hij dat met gemak.

Er valt nog veel meer over Elon te zeggen. We ontmoeten hem nog steeds, tien jaar na de universiteit. In zijn eerste jaren was hij een magere, nogal stille jongen. (Hetzelfde kan niet gezegd worden over de man met het grote gezicht van vandaag in een jeep). Ik was echter hetzelfde: mager en zwijgzaam. Daarom denk ik dat we snel een gemeenschappelijke taal hebben gevonden.
Vaak verzamelden ik, Elon en Alen zich na de lessen in een bierhal, afgedekt met een zeildoek. Ten eerste was het aan de overkant van de universiteit, en ten tweede kon je voor een "roebel" en 50 kopeken wat lekkers krijgen voor een opruiend feest van 2 uur. Zoals bier van de tap en crackers. Maar het punt was anders.
Elon en Alen kwamen uit andere steden en woonden in een gehuurde kamer. Ze hadden voortdurend geldgebrek en er waren momenten dat ze honger moesten lijden. Gelukkige momenten, toen ze een studiebeurs van $ 10 op hun kaart ontvingen, werden op dezelfde dag gevierd en toen was het tijd om “de broekriem aan te halen” en te leven van wat God zendt.

Uiteraard motiveerde deze situatie de bezoekende studenten om op zoek te gaan naar manieren om extra geld te verdienen. En voor hen, op armlengte, zat een ‘helder hoofd’ in de vorm van mij. Die ook buigzaam is en zelden weigert mensen te helpen.
Ik weet niet of ik die situatie goed heb beschreven, maar uiteindelijk leidden deze bijeenkomsten in de kroeg tot de oprichting van het eerste IT-bedrijf in mijn carrière genaamd SKS. De naam bestond simpelweg uit de eerste letters van onze achternaam. Ons jonge bedrijf, vertegenwoordigd door drie oprichters, heeft de komende vier jaar concurrenten en de hele universiteit verscheurd.

Elon was een ROP. Dat wil zeggen, het hoofd van de verkoopafdeling. Zijn verantwoordelijkheden omvatten onder meer het vinden van nieuwe klanten voor onze outsourcingactiviteiten. Het verkoopkanaal bestond uit horizontaal gedrukte A4-folders, met een eenvoudige inscriptie: "Programmeerproblemen oplossen." En hieronder staat het telefoonnummer van Elon.
Op elke verdieping waar studenten programmeren konden verschijnen, werd dit soort buitenreclame geplaatst.
Een ander aspect, dat sterker was in termen van klantenloyaliteit, was het verkoopkanaal via mond-tot-mondreclame.

Het bedrijfsmodel was eenvoudig. Via een aanbeveling of een advertentie nam een ​​universiteitsstudent contact met ons op. Hij gaf een beschrijving van een programmeerprobleem dat binnen een bepaalde deadline opgelost moest zijn, en ik loste het op voor de studentenprijs. Elon was betrokken bij de verkoop en ontving zijn percentage. Alain Delon nam minder vaak deel aan ons bedrijf, maar als we een ontwerp of een foto moesten maken of extra klanten moesten aantrekken, was hij altijd behulpzaam. Met zijn charme heeft hij heel wat nieuwe mensen bij ons gebracht. Het enige dat ik hoefde te doen, was deze pijplijn verwerken met een snelheid van 5-10 taken per dag. De deadlines waren strikt: niet meer dan een week. En vaker wel dan niet, moest het gisteren gebeuren. Daarom leerden dergelijke omstandigheden me snel om programma's in een “flow” te schrijven, zonder afgeleid te worden door elk klein dingetje, zoals een aardbeving met een kracht van 5,9 of een zwaar ongeval buiten het raam.

Tijdens het heetste seizoen, vóór de sessie, dat wil zeggen in december en mei, leek het erop dat ik de hele universiteitstaken op mijn computer had staan. Gelukkig waren de meeste van hetzelfde type, vooral toen we werden gecontacteerd door een groothandel vertegenwoordigd door een vertegenwoordiger van een hele groep. Toen was het mogelijk om 20 taken uit te voeren, bijvoorbeeld in assembler, waarbij slechts 2-3 regels werden gewijzigd. In zo'n seizoen stroomden de leads als een rivier. Het enige wat we misten waren diskettes. In 2003-2005 bestond er voor arme studenten in onze stad niet zoiets als geld overmaken via internet. Bovendien waren er geen betalingsgaranties, wat nu escrow heet. Daarom maakte het bedrijf SKS, als uitvoerder van bestellingen, een afspraak op het grondgebied van de universiteit en die gaven we diskette met een oplossing. Er was vrijwel geen restitutie (van de Engelse restitutie - teruggave van betaling op verzoek van de klant). Iedereen was blij en ontving 4-5 punten als ze konden leren wat ik aan het readme.txt-bestand op de diskette had toegevoegd. Al zorgde een simpele demo van een volledig werkend programma ook vaak voor een wow-effect bij docenten.

De prijs was natuurlijk belachelijk, maar we namen het in hoeveelheid. Een typische thuistaak kost bijvoorbeeld €2-3. Cursussen 10$. De jackpot in de vorm van een programma voor het werk van een kandidaat viel een keer uit, en het bedroeg maar liefst $ 20 voor een aanvraag voor een afgestudeerde student die zich voorbereidde op zijn verdediging. Tijdens het hete seizoen kan dit inkomen worden vermenigvuldigd met 100 klanten, wat uiteindelijk meer was dan het gemiddelde salaris in de stad. We voelden ons cool. Ze konden zich nachtclubs veroorloven en zich daar vermaken, in plaats van voor hun laatste cent in cheburek te stikken.

Vanuit het oogpunt van mijn vaardigheden vermenigvuldigden ze zich met elke nieuwe studententaak. We kregen aanmeldingen van andere faculteiten, met een ander opleidingsprogramma. Sommige ouderejaarsstudenten gebruikten Java en XML al ten volle toen we met C++/MFC aan de slag gingen. Sommigen hadden Assembler nodig, anderen PHP. Ik heb voor mezelf een hele dierentuin aan technologieën, bibliotheken, dataopslagformaten en algoritmen geleerd bij het oplossen van problemen.
Dit universalisme is mij tot op de dag van vandaag bijgebleven. Bij het werken aan projecten wordt ook gebruik gemaakt van een verscheidenheid aan technologieën en platforms. Nu kan ik software of een applicatie schrijven voor elk platform, besturingssysteem of apparaat. De kwaliteit zal uiteraard variëren, maar voor het bedrijf waarmee ik voornamelijk te maken heb, is het budget meestal belangrijk. En een eenmansorkest betekent voor hen net zoveel bezuinigen op het budget als op het aantal ontwikkelaars dat ik met mijn vaardigheden kan vervangen.

Als we het hebben over het grootste voordeel dat studeren aan de universiteit mij heeft gebracht, zouden het geen lezingen over algoritmen of filosofie zijn. En het zal niet ‘leren leren’, zoals in de mode is om over universiteiten te zeggen. In de eerste plaats zullen dit mensen zijn met wie we na de training bevriend zijn gebleven. En ten tweede is dit hetzelfde SKS-bedrijf dat mij tot een professionele ontwikkelaar heeft gesmeed, met echte en diverse opdrachten.
Ik wil graag een zin onthouden die zeer geschikt is voor dit deel van het verhaal: Een persoon wordt een programmeur wanneer andere mensen zijn programma's gaan gebruiken en er geld voor betalen..

Zo was het bedrijfsmerk SKS algemeen bekend, niet alleen in studentenkringen, maar ook onder docenten. Er was zelfs een geval waarin een van de leraren bij mij thuis kwam, zodat ik hem kon helpen een programma te schrijven voor zijn wetenschappelijke behoeften. Hij heeft mij op zijn beurt geholpen bij zijn specialisatie. We gingen allebei zo op in ons werk dat we allebei bij zonsopgang in slaap vielen. Hij zit op de bank en ik zit op een stoel achter de computer. Maar ze voltooiden hun taken en beiden waren tevreden met elkaars werk.

Lot van het lot

Het 4e jaar van de universiteit begon. De laatste cursus waarvan de graad van bachelor wordt behaald. Er waren vrijwel geen algemene vormen van onderwijs, maar alleen vakken die verband hielden met computers en netwerken. Nu heb ik er soms spijt van dat ik geen tijd had of geen interesse toonde in dezelfde elektronica of de interne structuur van netwerken. Nu rond ik dit uit noodzaak af, maar ik ben er zeker van dat deze basiskennis voor elke ontwikkelaar noodzakelijk is. Aan de andere kant: je kunt niet alles weten.
Ik was bezig met het schrijven van mijn eigen C++-compiler, die de code al volgens de standaard op fouten kon controleren en montage-instructies kon genereren. Ik droomde dat ik op het punt stond mijn compiler voor $ 100 per licentie te verkopen. Ik vermenigvuldigde dit met duizend klanten en mentaal
getransporteerd naar een Hammer, terwijl de bas van 50 Cent uit de luidsprekers knalt en hotties op de achterbank. Wat kun je doen als je 19 bent, dat zijn de prioriteiten. De truc van mijn zelfgemaakte compiler was dat deze fouten in het Russisch produceerde, in plaats van het Engels uit Visual C++ en gcc, wat niet voor iedereen begrijpelijk is. Ik zag dit als een geweldige functie die nog niemand ter wereld had uitgevonden. Ik denk dat het geen zin heeft om verder te vertellen. Het kwam niet tot de verkoop. Ik heb echter een diepgaande kennis van de taal C++ verworven, die mij tot op de dag van vandaag voedt.

In mijn vierde jaar ging ik steeds minder naar de universiteit omdat ik de opleiding grotendeels kende. En wat ik niet wist, loste ik op door te ruilen met een student die bijvoorbeeld verstand had van elektronica of kansrekening. Wat wij toen niet bedacht hadden. En een onzichtbare koptelefoon aan een draadje waarin het antwoord werd gedicteerd. En het klaslokaal uitrennen zodat een goeroe in zijn specialiteit in 2 minuten de oplossing voor het hele examen voor je kan uitschrijven. Het was een leuke tijd.
Tijdens dezelfde cursus begon ik na te denken over een echte baan. Met een kantoor, echte commerciële sollicitaties en een fatsoenlijk salaris.
Maar in die tijd kon je in onze stad alleen een baan vinden als programmeur
“1C: Accounting”, wat helemaal niet bij mij paste. Hoewel ik er uit hopeloosheid al klaar voor was. In die tijd oefende mijn vriendin druk op mij uit om naar een apart appartement te verhuizen.
Anders is het helemaal niet leuk om met je ouders door de muur te slapen. Ja, en ik was het al beu om studentenproblemen op te lossen, en ik wilde iets meer.

De problemen kwamen uit het niets. Ik dacht eraan om op mail.ru te adverteren dat ik op zoek was naar een baan met een salaris van $ 300 voor de functie van C++/Java/Delphi-programmeur. Dit is anno 2006. Waarop ze eigenlijk zoiets antwoordden als: “Misschien moet je met zulke salarisverzoeken naar Bill Gates schrijven?” Dit maakte mij van streek, maar tussen een heleboel vergelijkbare antwoorden was er iemand die mij in het freelancen bracht. Dit was de enige kans in ons verarmde Las Vegas om goed geld te verdienen door te doen wat ik kon.
Studeren aan de universiteit vloeide dus soepel over in werk op de freelance-uitwisseling. Als we het onderwerp universiteit afsluiten, kunnen we het volgende zeggen: ik ging niet naar het 5e jaar. Er was één programmering en zo'n concept als "gratis aanwezigheid", dat ik 146% gebruikte.
Het enige dat nog moest gebeuren was het verdedigen van een specialistisch diploma. Wat ik met succes heb gedaan met de hulp van mijn vrienden. Het is de moeite waard om te zeggen dat ik door deze cursus al van mijn ouders naar een gehuurd appartement was verhuisd en een nieuwe auto had gekocht. Zo begon mijn carrière als professionele ontwikkelaar.

De volgende hoofdstukken zullen worden gewijd aan individuele projecten, de ernstigste mislukkingen en de meest ontoereikende klanten. Een carrière in freelancen van 5 tot 40 $/uur, het lanceren van mijn eigen startup, hoe ik werd verbannen uit de Upwork freelance-uitwisseling en hoe ik vanuit freelancen teamleider werd bij de op een na grootste oliemaatschappij ter wereld. Hoe ik na het kantoor en het opstarten weer op afstand ging werken, en hoe ik interne problemen met socialisatie en slechte gewoonten oploste.

Wordt vervolgd ...

Bron: www.habr.com

Voeg een reactie