Programmeringskarriär. Kapitel 2. Skola eller egenutbildning

Fortsättning på berättelsen "Programmerkarriär".

Året var 2001. Året då det coolaste operativsystemet släpptes - Windows XP. När dök rsdn.ru upp? Födelseår för C# och .NET Framework. Första året på millenniet. Och ett år av exponentiell tillväxt i kraften hos ny hårdvara: Pentium IV, 256 mb ram.

Efter att ha avslutat 9:e klass och sett min outtömliga entusiasm för programmering, bestämde mina föräldrar att flytta över mig till college till huvudämne i programmering. De trodde att det skulle bli bättre på det här sättet och att de skulle lära mig där. Ordet college passade för övrigt inte på denna institution, i utkanten av en industristad. Det var en vanlig teknisk skola, inte annorlunda än andra tekniska skolor som inte hängde en etikett med det fashionabla ordet "college" på sin fasad.
Väl. Jag sa inte emot mina föräldrar och ifrågasatte inte deras beslut. Jag ägnade mig i alla fall åt självutbildning och jag tänkte att på denna nya plats skulle de ge mig lite ytterligare kunskap.


Den sommaren innan jag gick på college började jag noggrant studera alla möjliga tekniker som publicerades i tidningen "Hacker". Jag läser och läser den i bitar igen. Jag gillade särskilt intervjuerna med riktiga hackare och deras råd.
De flesta av de coola hackarna var på Linux. Och Mazda (Windows) var för lamare. Alla som har läst tidningen minns stilen på inläggen i den. Därför, i mitt bräckliga sinne, kämpade två idéer sinsemellan - att lämna Windows eller att vara cool och hålla sig rent till Linux.
Varje nytt nummer av Hacker magazine gav mig en ny anledning att formatera disken och installera antingen Linux Red Hat 7 eller Windows Me. Naturligtvis hade jag ingen träningsvektor, och jag gjorde det jag läste i tidningar eller på piratkopierade CD-skivor som "Hackers Secrets." Installationen av två operativsystem parallellt raderades också, efter en ny fyllning i andan av "Windows XP aka papegoja - det här är för hemmafruar. Och om du vill göra seriösa saker måste du arbeta från Linux-konsolen med slutna ögon.” Självklart ville jag hacka system, förstå hur nätverket fungerar och vara den allsmäktige Anonymous på den tiden.

Disken formaterades utan att ångra det, och ett distributionskit av ett Unix-liknande system installerades på den. Jaja. Jag läste en gång en intervju med en riktig hacker som bara använder FreeBSD 4.3 från konsolen. Samtidigt var han ansvarig för att hacka banker och statliga system. Det var ett blixtnedslag i huvudet, och jag installerade BSD OS som huvudsystem 5 gånger. Problemet var att efter installationen fanns det ingenting där förutom den kala konsolen. Jämnt ljud. Och för att installera KDE2 och slå på ljudet var det nödvändigt att dansa mycket med en tamburin och korrigera flera konfigurationer.

Programmeringskarriär. Kapitel 2. Skola eller egenutbildning
FreeBSD 4.3-distributionen är det mest hackaroperativa operativsystemet

Om litteratur

Så fort jag skaffade en dator började jag köpa böcker om programmering. Den första var en guide till "Turbo Pascal 7.0". Detta är inte förvånande, eftersom jag redan kände till lite Pascal från programmeringskurser, och jag kunde fortsätta lära mig på egen hand. Problemet var att hackare inte skriver i Pascal. Då var Perl-språket på modet, eller, för de coolare killarna, det var C/C++. Det är åtminstone vad de skrev i tidningen. Och den första boken jag läste till slutet var "The C Programming Language" - av Kernighan och Ritchie. Jag studerade förresten i Linux-miljön
och använde gcc och KDE:s inbyggda editor för att skriva koden.

Efter den här boken köptes UNIX Encyclopedia. Den vägde 3 kilo och trycktes på A3-sidor.
På framsidan av boken fanns en helfigur av en tecknad djävul med en höggaffel, och den kostade då 125 hryvnia i Ukraina (det är ungefär 25 dollar 2001). För att köpa boken lånade jag pengar av en skolkamrat och mina föräldrar lade till resten. Sedan började jag entusiastiskt studera Unix-kommandon, vim- och emacs-redigeraren, strukturen på filsystemet och insidan av konfigurationsfiler. Nästan 700 sidor av uppslagsverket slukades och jag kom ett steg närmare min dröm – att bli Kul-Hatzker.

Programmeringskarriär. Kapitel 2. Skola eller egenutbildning
UNIX Encyclopedia - En av de första böckerna jag läste

Jag spenderade alla pengar som mina kärleksfulla morföräldrar och föräldrar gav mig på böcker. Nästa bok var C++ på 21 dagar. Titeln var väldigt tilltalande, och det var därför jag inte tittade på andra böcker av högre kvalitet. Trots detta kopierades alla källor från boken på ungefär den här perioden på 3 veckor, och jag förstod redan något i C++. Även om jag förmodligen inte förstod mer av vad som stod i dessa listor. Men det var framsteg.

Om du frågade mig vilken bok som påverkade din karriär mest skulle jag svara utan att tveka - "Konsten att programmera" - D. Knuth. Det var en omkoppling av hjärnan. Jag kan inte berätta exakt hur den här boken kom i mina händer, men den hade det största inflytandet på min framtida karriär.

Programmeringskarriär. Kapitel 2. Skola eller egenutbildning
Konsten att programmera - måste läsas

Jag köpte böcker främst på radiomarknaden som bara var öppen på söndagar. Efter att ha sparat ytterligare några tiotals hryvnia på frukost, gick jag efter en ny bok om C++ eller kanske Perl. Valet var ganska stort, men jag hade ingen mentor, så jag studerade allt. Jag bad säljaren att rekommendera mig något om programmering. Och så vitt jag minns tog han "Konsten att programmera" från hyllan. Första volymen". Boken hade tydligen redan använts. Hörnen på omslaget var böjda och det fanns en stor repa synlig på baksidan, precis där Bill Gates hade lämnat sin recension: "Om du läser den här boken, bör du definitivt skicka mig ditt CV", signerat av honom. Jag kände till Gates från tidningar, och jag tänkte att det skulle vara trevligt att skicka honom ett CV, även om alla hackare kritiserade honom. Boken kostade 72 UAH. ($15), och jag rusade snabbt hem med spårvagn för att studera nytt material.

Hur djupa och grundläggande saker jag läste kunde jag förstås inte förstå vid 15 års ålder. Men jag försökte flitigt att genomföra varje övning. En gång lyckades jag till och med lösa ett problem med svårighetsgraden 25 eller 30 korrekt. Det var ett kapitel om matematisk induktion. Även om jag inte gillade skolmatematik och inte fattade det bra, var jag över mattan. Knuths analys – jag satt i timmar.
Därefter, i det andra kapitlet, fanns det datastrukturer. Dessa bilder och bilder av länkade listor, binära träd, stackar och köer är fortfarande framför mina ögon. Under min 12-åriga karriär inom kommersiell utveckling har jag använt de flesta allmänna språk.
Dessa är C/C++, C#, Java, Python, JavaScript, Delphi. Och oavsett vad språket hette så innehöll dess standardbibliotek datastrukturer och algoritmer som beskrevs av Donald Knuth i sin trevolymsbok. Att lära sig något nytt tar därför inte mycket tid.

Den första volymen slukades ganska snabbt. Jag skrev om algoritmerna i Knuths bok till språket C. Det fungerade inte alltid, men ju mer jag övade desto större klarhet kom. Det saknades ingen iver. Efter att ha avslutat den första volymen sprang jag utan att tveka för att köpa den andra och tredje. Jag lade den andra åt sidan för nu, men jag tog upp den tredje (Sortering och Sök) noggrant.
Jag minns mycket väl hur jag fyllde på en hel anteckningsbok, "tolkade" sorterings- och sökalgoritmer. Precis som med datastrukturer visualiseras binär sökning och quicksort blixtsnabbt i min hjärna, och minns hur de ser ut schematiskt i den tredje volymen av Knuth.
Piskan lästes överallt. Och även när jag gick till sjöss, utan en dator i närheten, skrev jag fortfarande ner algoritmer i en anteckningsbok och körde siffersekvenser genom dem. Jag minns fortfarande hur mycket smärta det tog mig att bemästra heapsort, men det var värt det.

Nästa bok som hade ett starkt inflytande på mig var "The Book of the Dragon." Det är också "Compilers: Principles, Technologies, Tools" - A. Aho, R. Seti. Hon föregicks av Herbert Schiltd, med avancerade uppgifter i C++. Det var här prickarna kom ihop.
Tack vare Schildt lärde jag mig att skriva tolkar och språktolkar. Och sedan fick Drakens bok mig att skriva min egen C++-kompilator.

Programmeringskarriär. Kapitel 2. Skola eller egenutbildning
Drakens bok

Vid den tiden hade jag fått en internetanslutning med modem, och jag tillbringade mycket tid på den mest populära webbplatsen för programmerare - rsdn.ru. C++ dominerade där och alla proffs kunde svara på frågor som jag inte kunde hantera. Det gjorde ont i mig och jag förstod
att jag är långt ifrån dessa skäggiga killar, så jag måste studera insidan av fördelarna med "Från och Till". Denna motivering ledde mig till mitt första seriösa projekt - min egen kompilator av 1998 års C++-standard. Du kan hitta mer detaljerad historia och källor i det här inlägget habr.com/en/post/322656.

Skola eller självutbildning

Men låt oss återvända till verkligheten utanför IDE. Även om jag vid den tiden alltmer flyttade bort från det verkliga livet och fördjupade mig i det virtuella, tvingade fortfarande min ålder och allmänt accepterade normer mig att gå på college. Det var verklig tortyr. Jag hade absolut ingen aning om vad jag gjorde i denna anläggning och varför jag lyssnade på denna information. Jag hade helt andra prioriteringar i mitt huvud. Lär dig Visual Studio 6.0, testar med WinApi och Delphi 6.
En underbar sida, firststeps.ru, som gjorde att jag kunde glädjas åt varje steg jag tog, även om jag inte förstod den övergripande bilden. Till exempel i samma teknik MFC eller ActiveX.
Hur är det med college? Det var ett slöseri med tid. I allmänhet, om vi berör ämnet studier, studerade jag dåligt. Fram till 6:e klass var jag en utmärkt elev, och sedan fick jag C-betyg, och i 8:e-9:e klass hoppade jag ofta över klasser, för vilka jag fick illusoriska bälten av mina föräldrar.
Därför, när jag kom till college, var det också liten entusiasm.
- Var är programmeringen? Jag ställde en fråga till mig själv. Men han var inte där under första halvåret. Men det fanns datavetenskap med MS-DOS och Office, samt allmänna pedagogiska ämnen.

Utöver det hade jag en introvert personlighet och var väldigt blygsam. Denna nya brokiga besättning väckte uppenbarligen inte förtroende. Och det var ömsesidigt. Därför lät inte olika slags hån vänta på sig. Jag uthärdade det länge, tills jag inte kunde stå ut och slog en av förövarna i ansiktet direkt i klassen. Ja, så han flög iväg till sitt skrivbord. Tack vare min pappa - han lärde mig att kämpa sedan barnsben, och om jag verkligen ville kunde jag använda fysisk kraft. Men detta hände mycket sällan; oftare utstod jag förlöjligande och väntade på den maximala kokpunkten.
Förresten utmanade gärningsmannen mig till en vedergällningskamp, ​​mycket häpen över vad som hände, men ändå kände sin överlägsenhet. Redan på den lediga tomten bakom läroverket.
Detta var inte barns knytnävsviftande, som fallet var i skolan. Det fanns en ädel makhach med brutna näsor och mycket blod. Killen var inte heller en blyg kille och levererade skickligt krokar och uppercuts. Alla höll sig vid liv, och sedan dess har ingen mobbat mig längre.
vid denna "högskola för programmerare". Jag tappade snart lusten att åka dit helt. Därför slutade jag gå dit, och inga hot från mina föräldrar hade någon effekt på mig. Genom något mirakel räknades min vistelse på college till 10:e klass i skolan, och jag hade rätt att gå i 11:e.

Allt skulle vara bra, men 11:e klass visade sig inte vara mycket bättre än college. Jag återvände till min hemskola, träffade några killar jag kände som jag hade studerat med sedan första klass och hoppades att allt skulle bli bra i min hemstad. Det fanns bara en nyans: Killarna såg mer ut som banditer från tv-serier än pojkarna som jag var kompis med i grundskolan. Alla strömmade till gymmet för att få muskelmassa. Jag liknade bambu. Långaktig och väldigt tunn. Naturligtvis skulle en sådan mobbar klasskamrat kunna binda mig med ena vänsterhanden.
Detta är vad som började hända med tiden. Här hade mina stridsfärdigheter inte längre någon effekt. Viktkategorierna var väldigt olika för mig och resten av pojkarna i min en gång infödda klass. Dessutom gjorde sig egenheterna i mitt tänkande påtagliga.

Utan att låta tankarna vandra lämnade jag också skolan. Där jag kände mig bekväm var framför en datorskärm, med dörren till mitt rum stängd. Det var vettigt och intuitivt kände jag att jag gjorde rätt. Och den här skolan är en värdelös aktivitet, och till och med att uthärda dessa hån, som för varje dag blev mer och mer sofistikerade... Det är allt, jag har fått nog.
Efter ännu en konflikt i klassen, med mig i huvudrollen, lämnade jag skolan och gick aldrig dit igen.
I ungefär 3 månader satt jag hemma och spenderade min fritid med att lära mig C++/WinAPI/MFC och rsdn.ru.
Till slut kunde skolchefen inte stå ut och ringde hem.
– ”Denis, funderar du på att studera? Eller kommer du att lämna? Besluta. Ingen kommer att lämna dig i limbo.” - sa regissören
"Jag går" svarade jag självsäkert.

Och igen, samma historia. Jag hade ett halvår kvar på mig att slutföra mina studier innan jag gick ut skolan. Lämna mig inte utan skorpa. Mina föräldrar gav upp mig och sa åt mig att själv gå och förhandla med regissören. Jag kom till rektorn. Hon skrek åt mig att ta av mig hatten när jag gick in. Sedan frågade hon strängt: "Vad ska jag göra med dig?" Ärligt talat så visste jag inte vad jag skulle göra. Jag var ganska nöjd med det nuvarande tillståndet. Till slut tog hon ordet:
– "Då gör vi det här. Jag gör en överenskommelse med chefen för vår kvällsskola så åker du dit."
- "Ja"

Och kvällsskolan var ett riktigt paradis för freestylers som jag. Gå om du vill, eller gå inte. Det var 45 personer i klassen, varav endast 6-7 dök upp till klasserna. Jag är inte säker på att alla på listan levde och även var fria. För bara i min närvaro stal klasskamrater någon annans motorcykel. Men faktum förblev ett faktum. Jag kunde uppgradera mina programmeringskunskaper obegränsat och gå i skolan när jag verkligen behövde det. Det slutade med att jag avslutade det och klarade mina sista prov. De krävde inte mycket, och vi hade till och med en examensceremoni. Examen i sig är en separat fabel. Jag minns att lokala banditer och klasskamrater tog min klocka. Och så fort jag hörde mitt efternamn, under överlämnandet av intyg, rusade jag i trav för att hämta dokumentet och flög ut från skolan som en kula, för att inte råka ut för fler problem.

Sommaren låg framför oss. Med Donald Knuth under armen på stranden, havet, solen och det ödesdigra beslutet att skriva sitt eget stora projekt (kompilator).
Fortsättning ...

Källa: will.com

Lägg en kommentar