Programmeercarrière. Hoofdstuk 2. School of zelfstudie

Vervolg van het verhaal "Programmeur carrière".

Het jaar was 2001. Het jaar waarin het coolste besturingssysteem werd uitgebracht: Windows XP. Wanneer verscheen rsdn.ru? Geboortejaar van C# en .NET Framework. Eerste jaar van het millennium. En een jaar van exponentiële groei in de kracht van nieuwe hardware: Pentium IV, 256 mb ram.

Nadat ik de 9e klas had afgerond en mijn onuitputtelijke enthousiasme voor programmeren had gezien, besloten mijn ouders mij over te plaatsen naar de universiteit met een hoofdvak Programmeren. Ze geloofden dat het zo beter zou zijn en dat ze mij daar les zouden geven. Het woord college paste trouwens niet bij deze instelling, aan de rand van een industriestad. Het was een gewone technische school, niet anders dan andere technische scholen die geen etiket met het modieuze woord ‘college’ aan de gevel hadden gehangen.
Goed. Ik heb mijn ouders niet tegengesproken en hun beslissing niet betwist. Hoe dan ook, ik was bezig met zelfstudie en ik dacht dat ze me op deze nieuwe plek wat extra kennis zouden geven.


Die zomer, voordat ik naar de universiteit ging, begon ik alle mogelijke technologieën die in het tijdschrift werden gepubliceerd grondig te bestuderen "Hacker". Ik heb het in stukjes gelezen en herlezen. Ik vond vooral de interviews met echte hackers en hun advies leuk.
De meeste coole hackers gebruikten Linux. En Mazda (Windows) was voor lamers. Iedereen die het tijdschrift heeft gelezen, herinnert zich de stijl van de berichten erin. Daarom vochten in mijn kwetsbare geest twee ideeën met elkaar: Windows verlaten of cool blijven en puur bij Linux blijven.
Elke nieuwe uitgave van Hacker magazine gaf me een nieuwe reden om de schijf te formatteren en Linux Red Hat 7 of Windows Me te installeren. Natuurlijk had ik geen trainingsvector en deed ik wat ik las in tijdschriften of op illegale cd's zoals 'Secrets of Hackers'. De installatie van twee parallelle besturingssystemen werd ook gewist, na een nieuwe vulling in de geest van “Windows XP oftewel papegaai - dit is voor huisvrouwen. En als je serieuze dingen wilt doen, moet je vanaf de Linux-console werken met je ogen dicht.” Natuurlijk wilde ik systemen hacken, begrijpen hoe het netwerk werkt en op dat moment de almachtige Anoniem zijn.

De schijf werd zonder enige spijt geformatteerd en er werd een distributiekit van een Unix-achtig systeem op geïnstalleerd. Ja Ja. Ik heb ooit een interview gelezen met een echte hacker die alleen FreeBSD 4.3 vanaf de console gebruikt. Tegelijkertijd was hij verantwoordelijk voor het hacken van banken en overheidssystemen. Het was een blikseminslag op mijn hoofd en ik heb BSD OS vijf keer als hoofdsysteem geïnstalleerd. Het probleem was dat er na de installatie niets anders was dan de kale console. Zelfs geluid. En om KDE5 te installeren en het geluid aan te zetten, was het nodig om veel met een tamboerijn te dansen en verschillende configuraties te corrigeren.

Programmeercarrière. Hoofdstuk 2. School of zelfstudie
FreeBSD 4.3-distributie is het meest hacker-besturingssysteem

Over literatuur

Zodra ik een computer kreeg, begon ik boeken over programmeren te kopen. De eerste was een gids voor "Turbo Pascal 7.0". Dit is niet verrassend, omdat ik Pascal al een beetje kende van programmeercursussen, en ik zelfstandig verder kon leren. Het probleem was dat hackers niet in Pascal schrijven. Toen was de Perl-taal in de mode, of, voor de coolere jongens, het was C/C++. Dat schreven ze tenminste in het tijdschrift. En het eerste boek dat ik tot het einde las was "The C Programming Language" - van Kernighan en Ritchie. Ik heb trouwens in de Linux-omgeving gestudeerd
en gebruikte gcc en de ingebouwde editor van KDE om de code te schrijven.

Naar aanleiding van dit boek werd de UNIX Encyclopedia aangeschaft. Het woog 3 kilogram en was gedrukt op A3-pagina's.
Op de voorkant van het boek stond een volledige afbeelding van een cartoonduivel met een hooivork, en het kostte toen 125 hryvnia in Oekraïne (dat is ongeveer $ 25 in 2001). Om het boek te kopen, leende ik geld van een schoolvriend, en mijn ouders voegden de rest toe. Vervolgens begon ik enthousiast Unix-commando's, de vim- en emacs-editor, de structuur van het bestandssysteem en de binnenkant van configuratiebestanden te bestuderen. Bijna 700 pagina's van de encyclopedie werden verslonden en ik kwam een ​​stap dichter bij mijn droom: een Kul-Hatzker worden.

Programmeercarrière. Hoofdstuk 2. School of zelfstudie
UNIX Encyclopedie - Een van de eerste boeken die ik las

Al het geld dat mijn liefhebbende grootouders en ouders mij gaven, heb ik aan boeken uitgegeven. Het volgende boek was C++ in 21 Days. De titel was erg aantrekkelijk en daarom heb ik niet naar andere boeken van hogere kwaliteit gekeken. Desondanks waren in ongeveer deze periode van 3 weken alle bronnen uit het boek gekopieerd en begreep ik al iets in C++. Hoewel ik waarschijnlijk niets meer begreep van wat er in deze lijsten stond. Maar er was vooruitgang.

Als je me zou vragen welk boek je carrière het meest heeft beïnvloed, zou ik zonder aarzeling antwoorden: "The Art of Programming" - D. Knuth. Het was een herbedrading van de hersenen. Ik kan je niet precies vertellen hoe dit boek in mijn handen kwam, maar het had de meest diepgaande invloed op mijn toekomstige carrière.

Programmeercarrière. Hoofdstuk 2. School of zelfstudie
De kunst van het programmeren - moet lezen

Boeken kocht ik vooral op de radiomarkt, die alleen op zondag open was. Nadat ik bij het ontbijt nog een paar tientallen hryvnia's had gespaard, ging ik voor een nieuw boek over C++ of misschien Perl. De keuze was vrij groot, maar ik had geen mentor, dus ik heb alles bestudeerd. Ik vroeg de verkoper om mij iets over programmeren aan te bevelen. En voor zover ik me herinner, pakte hij ‘The Art of Programming’ van de plank. Eerste deel". Het boek was duidelijk al gebruikt. De hoeken van de omslag waren verbogen en er was een grote kras zichtbaar op de achterkant, precies waar Bill Gates zijn recensie had achtergelaten: “Als je dit boek leest, moet je me zeker je CV sturen”, door hem ondertekend. Ik kende Gates uit tijdschriften en het leek me leuk om hem een ​​cv te sturen, ook al hadden alle hackers kritiek op hem. Het boek kostte 72 UAH. ($15), en ik snelde snel met de tram naar huis om nieuw materiaal te bestuderen.

Hoe diepgaand en fundamenteel de dingen die ik las, kon ik op 15-jarige leeftijd natuurlijk niet begrijpen. Maar ik probeerde ijverig elke oefening uit te voeren. Eén keer slaagde ik er zelfs in een probleem met een moeilijkheidsgraad van 25 of 30 correct op te lossen. Het was een hoofdstuk over wiskundige inductie. Hoewel ik de schoolwiskunde niet leuk vond en het niet goed begreep, was ik over de mat heen. Knuth's analyse - Ik heb uren gezeten.
Vervolgens waren er in het tweede hoofdstuk datastructuren. Deze afbeeldingen en afbeeldingen van gekoppelde lijsten, binaire bomen, stapels en wachtrijen liggen nog steeds voor mijn ogen. In mijn twaalfjarige carrière in de commerciële ontwikkeling heb ik de meeste talen voor algemene doeleinden gebruikt.
Dit zijn C/C++, C#, Java, Python, JavaScript, Delphi. En hoe de taal ook heette, de standaardbibliotheek bevatte datastructuren en algoritmen die door Donald Knuth in zijn driedelige boek werden beschreven. Daarom kost het leren van iets nieuws niet veel tijd.

Het eerste deel werd vrij snel verslonden. Ik herschreef de algoritmen uit Knuths boek in de taal C. Het lukte niet altijd, maar hoe meer ik oefende, hoe meer duidelijkheid er kwam. Aan ijver geen gebrek. Toen ik klaar was met het eerste deel, rende ik zonder aarzeling weg om het tweede en derde te kopen. De tweede heb ik voorlopig terzijde gelegd, maar de derde (Sorteren en Zoeken) heb ik grondig ter hand genomen.
Ik herinner me nog heel goed hoe ik een heel notitieboekje vulde en sorteer- en zoekalgoritmen ‘interpreteerde’. Net als bij datastructuren worden binair zoeken en quicksort razendsnel in mijn hersenen gevisualiseerd, waarbij ik me herinner hoe ze er schematisch uitzien in het derde deel van Knuth.
Overal werd de zweep gelezen. En zelfs als ik de zee op ging, zonder pc in de buurt, schreef ik nog steeds algoritmen op in een notitieboekje en haalde daar reeksen getallen doorheen. Ik herinner me nog hoeveel pijn het me kostte om heapsort onder de knie te krijgen, maar het was het waard.

Het volgende boek dat een sterke invloed op mij had, was ‘Het Boek van de Draak’. Het is ook "Compilers: principes, technologieën, hulpmiddelen" - A. Aho, R. Seti. Ze werd voorafgegaan door Herbert Schiltd, met geavanceerde taken in C++. Hier kwamen de puntjes bij elkaar.
Dankzij Schildt heb ik parsers en taaltolken leren schrijven. En toen vroeg het Boek van de Draak mij om mijn eigen C++-compiler te schrijven.

Programmeercarrière. Hoofdstuk 2. School of zelfstudie
Boek van de Draak

Tegen die tijd had ik een modem-internetverbinding gekregen en bracht ik veel tijd door op de meest populaire site voor programmeurs: rsdn.ru. C++ domineerde daar en elke professional kon vragen beantwoorden die ik niet kon beantwoorden. Het deed me pijn en ik begreep het
dat ik verre van deze bebaarde jongens ben, dus ik moet de binnenkant van de voordelen van "From and To" bestuderen. Deze motivatie leidde mij naar mijn eerste serieuze project: mijn eigen compiler van de C++-standaard uit 1998. Meer gedetailleerde geschiedenis en bronnen vindt u in dit bericht habr.com/en/post/322656.

School of zelfstudie

Maar laten we terugkeren naar de realiteit buiten de IDE. Hoewel ik tegen die tijd steeds meer afstand nam van het echte leven en mezelf onderdompelde in het virtuele leven, dwongen mijn leeftijd en algemeen aanvaarde normen me nog steeds om naar de universiteit te gaan. Het was een echte marteling. Ik had absoluut geen idee wat ik in dit etablissement deed en waarom ik naar deze informatie luisterde. Ik had totaal andere prioriteiten in mijn hoofd. Visual Studio 6.0 leren, proberen met WinApi en Delphi 6.
Een prachtige site, firststeps.ru, waardoor ik me kon verheugen over elke stap die ik zette, hoewel ik het totaalbeeld niet begreep. Bijvoorbeeld in dezelfde technologie MFC of ActiveX.
Hoe zit het met de universiteit? Het was tijdverspilling. Als we het over studies hebben, heb ik over het algemeen slecht gestudeerd. Tot de zesde klas was ik een uitstekende leerling, en daarna kreeg ik C-cijfers, en in de achtste en negende klas sloeg ik vaak lessen over, waarvoor ik illusoire riemen kreeg van mijn ouders.
Toen ik naar de universiteit ging, was er dan ook weinig enthousiasme.
- Waar is de programmering? Ik stelde mezelf een vraag. Maar de eerste helft van het jaar was hij er niet. Maar er was informatica met MS-DOS en Office, maar ook algemene vakken.

Bovendien had ik een introverte persoonlijkheid en was ik heel bescheiden. Deze nieuwe bonte ploeg wekte duidelijk geen vertrouwen. En het was wederzijds. Daarom lieten verschillende soorten spot niet lang op zich wachten. Ik heb het een hele tijd volgehouden, totdat ik er niet meer tegen kon en een van de overtreders midden in de klas in het gezicht sloeg. Ja, dus hij vloog weg naar zijn bureau. Dankzij mijn vader heeft hij me van kinds af aan leren vechten, en als ik dat echt wilde, kon ik fysiek geweld gebruiken. Maar dit gebeurde zeer zelden; vaker werd ik belachelijk gemaakt, wachtend op het maximale kookpunt.
Trouwens, de dader, enorm verrast door wat er gebeurde, maar nog steeds zijn superioriteit voelde, daagde mij uit tot een vergeldingsgevecht. Al op het braakliggende terrein achter de onderwijsinstelling.
Dit was geen kindervuistzwaaien, zoals op school het geval was. Er was een nobele makhach met gebroken neuzen en veel bloed. De man was ook geen timide man en leverde vakkundig hooks en uppercuts. Iedereen bleef in leven en sindsdien heeft niemand mij meer gepest.
aan dit ‘college voor programmeurs’. Al snel verloor ik de wens om er helemaal heen te gaan. Daarom ging ik daar niet meer naartoe, en geen enkele bedreiging van mijn ouders had enig effect op mij. Door een wonder werd mijn verblijf op de universiteit meegeteld voor de 10e klas van de school, en ik had het recht om naar de 11e te gaan.

Alles zou goed komen, maar de 11e klas bleek niet veel beter dan de universiteit. Ik keerde terug naar mijn thuisschool, ontmoette een paar jongens die ik kende met wie ik sinds de eerste klas had gestudeerd, en hoopte dat alles goed zou gaan in mijn geboortestad. Er was maar één nuance: de jongens leken meer op bandieten uit tv-series dan de jongens met wie ik op de basisschool bevriend was. Iedereen stroomde naar de sportschool om spiermassa op te bouwen. Ik leek op bamboe. Slungelig en heel dun. Natuurlijk zou zo'n pesterige klasgenoot me met één linkerhand kunnen vastbinden.
Dit is wat in de loop van de tijd begon te gebeuren. Hier hadden mijn vechtkunsten geen enkel effect meer. De gewichtscategorieën waren heel verschillend voor mij en de rest van de jongens in mijn ooit inheemse klas. Ook lieten de eigenaardigheden van mijn denken zich voelen.

Zonder mijn gedachten te laten afdwalen, verliet ik ook de school. Waar ik me op mijn gemak voelde, zat ik achter een computerscherm, met de deur naar mijn kamer dicht. Het was logisch en intuïtief had ik het gevoel dat ik het juiste deed. En deze school is een nutteloze activiteit, en zelfs om deze beschimpingen te verdragen, die elke dag steeds geavanceerder werden... Dat is het, ik heb er genoeg van.
Na weer een conflict in de klas, met mij in de hoofdrol, verliet ik de school en ging daar nooit meer heen.
Ongeveer 3 maanden zat ik thuis en besteedde mijn vrije tijd aan het leren van C++/WinAPI/MFC en rsdn.ru.
Uiteindelijk kon de schooldirecteur het niet uithouden en belde naar huis.
- “Denis, denk je erover om te studeren? Of ga je weg? Beslissen. Niemand zal je in het ongewisse laten.” - zei de directeur
‘Ik ga weg,’ antwoordde ik zelfverzekerd.

En weer hetzelfde verhaal. Ik had nog een half jaar om mijn studie af te ronden voordat ik afstudeerde. Laat mij niet zonder korst achter. Mijn ouders gaven het op en zeiden dat ik zelf met de directeur moest gaan onderhandelen. Ik kwam bij de schooldirecteur. Ze schreeuwde tegen mij dat ik mijn hoed moest afzetten toen ik binnenkwam. Toen vroeg ze streng: ‘Wat moet ik met je doen?’ Eerlijk gezegd wist ik zelf niet wat ik moest doen. Ik was best tevreden met de huidige stand van zaken. Tenslotte nam zij het woord:
- “Laten we dit dan doen. Ik maak een afspraak met de directeur van onze avondschool en jij gaat daarheen.’
- "Ja"

En de avondschool was een waar paradijs voor freestylers zoals ik. Ga als je wilt, of ga niet. Er waren 45 mensen in de klas, waarvan er slechts 6-7 opdaagden voor de lessen. Ik weet niet zeker of iedereen op de lijst leefde en ook vrij was. Omdat alleen in mijn aanwezigheid klasgenoten de motor van iemand anders stalen. Maar het feit bleef een feit. Ik kon mijn programmeervaardigheden onbeperkt uitbreiden en naar school gaan als ik het echt nodig had. Uiteindelijk heb ik het afgerond en mijn eindexamen gehaald. Ze stelden niet veel eisen en we hadden zelfs een diploma-uitreiking. Afstuderen op zichzelf is een aparte fabel. Ik herinner me dat plaatselijke bandieten en klasgenoten mijn horloge afpakten. En zodra ik mijn achternaam hoorde, tijdens de uitreiking van de certificaten, haastte ik me in draf om het document te pakken en vloog als een kogel de school uit, om niet nog meer in de problemen te komen.

De zomer stond voor de deur. Met Donald Knuth onder zijn arm op het strand, de zee, de zon en de noodlottige beslissing om zijn eigen grote project (compiler) te schrijven.
Wordt vervolgd ...

Bron: www.habr.com

Voeg een reactie