Програмерска каријера. Поглавље 2. Школа или самообразовање

Наставак приче „Програмерска каријера“.

Година је била 2001. Година у којој је изашао најкул оперативни систем - Виндовс КСП. Када се појавио рсдн.ру? Година рођења Ц# и .НЕТ Фрамеворк-а. Прва година миленијума. И година експоненцијалног раста снаге новог хардвера: Пентиум ИВ, 256 мб рам.

Након што сам завршио 9. разред и увидевши мој неисцрпни ентузијазам за програмирање, моји родитељи су одлучили да ме пребаце на факултет на смер програмирање. Веровали су да ће овако бити боље и да ће ме тамо научити. Реч факултет, иначе, није пристајала овој установи, на периферији индустријског града. Била је то обична техничка школа, која се не разликује од осталих техничких школа које на фасади нису окачили етикету са модерном речју „факултет“.
Добро. Нисам противречио родитељима и нисам оспорио њихову одлуку. У сваком случају, бавио сам се самообразовањем и мислио сам да ће ми на овом новом месту дати нека додатна знања.


Тог лета пре одласка на факултет, почео сам темељно да проучавам све могуће технологије које су објављене у часопису "хакер". Читам и поново читам на комаде. Посебно су ми се допали интервјуи са правим хакерима и њихови савети.
Већина кул хакера била је на Линуку. А Мазда (Виндовс) је била за ламере. Свако ко је читао часопис сећа се стила постова у њему. Стога су се у мом крхком уму сукобиле две идеје - да напустим Виндовс или да будем кул и да се држим чисто Линукса.
Сваки нови број часописа Хацкер давао ми је нови разлог да форматирам диск и инсталирам или Линук Ред Хат 7 или Виндовс Ме. Наравно, нисам имао никакав вектор за обуку и радио сам оно што сам читао у часописима или на пиратским ЦД-овима попут „Тајне хакера“. Такође је избрисана инсталација два оперативна система паралелно, након новог пуњења у духу „Виндовс КСП ака папагај - ово је за домаћице. А ако желите да радите озбиљне ствари, морате да радите са Линук конзоле затворених очију.” Наравно, желео сам да хакујем системе, разумем како мрежа функционише и да будем свемоћни Анонимус у то време.

Диск је форматиран без икаквог жаљења, а на њега је инсталиран дистрибутивни комплет Уник система. Да да. Једном сам прочитао интервју са правим хакером који користи само ФрееБСД 4.3 са конзоле. Истовремено, био је одговоран за хаковање банака и државних система. Био је то удар грома у главу, а БСД ОС сам инсталирао као главни систем 5 пута. Проблем је био у томе што након инсталације није било ничега осим голе конзоле. Чак и звук. А да би се инсталирао КДЕ2 и укључио звук, било је потребно доста плесати уз тамбуру и исправити неколико конфигурација.

Програмерска каријера. Поглавље 2. Школа или самообразовање
ФрееБСД 4.3 дистрибуција је најхакерскији ОС

О књижевности

Чим сам добио компјутер, почео сам да купујем књиге о програмирању. Први је био водич за "Турбо Пасцал 7.0". Ово није изненађујуће, јер сам већ знао мало Паскала са курсева програмирања, и могао сам да наставим да учим сам. Проблем је био у томе што хакери не пишу на Пасцал-у. Тада је Перл језик био у моди, или, за хладније момке, то је био Ц/Ц++. Тако су бар писали у часопису. И прва књига коју сам прочитао до краја била је „Програмски језик Ц“ – од Кернигана и Ричија. Иначе, студирао сам у Линук окружењу
и користио гцц и КДЕ-ов уграђени уређивач за писање кода.

Након ове књиге, купљена је УНИКС енциклопедија. Био је тежак 3 килограма и штампан је на А3 страницама.
На предњој страни књиге био је приказ цртаног ђавола са вилама у целој дужини, који је тада коштао 125 гривна у Украјини (то је око 25 долара 2001.). Да бих купио књигу, позајмио сам новац од школског друга, а остали су додали моји родитељи. Затим сам са ентузијазмом почео да проучавам Уник команде, вим и емацс едитор, структуру система датотека и унутрашњост конфигурационих датотека. Скоро 700 страница енциклопедије је прогутано и постао сам корак ближе свом сну – да постанем Кул-Хацкер.

Програмерска каријера. Поглавље 2. Школа или самообразовање
УНИКС енциклопедија – Једна од првих књига које сам прочитао

Потрошио сам сав новац који су ми драги бака и деда и родитељи дали на књиге. Следећа књига је била Ц++ за 21 дан. Наслов је био веома привлачан, и зато нисам гледао друге књиге већег квалитета. Упркос томе, сав изворни код је копиран из књиге за отприлике овај период од 3 недеље, а ја сам већ разумео нешто у Ц++. Иако вероватно нисам разумео више ништа од онога што је написано у овим огласима. Али било је напретка.

Ако бисте ме питали која је књига највише утицала на вашу каријеру, без оклевања бих одговорио – „Уметност програмирања” – Д. Кнут. То је било поновно ожичење мозга. Не могу вам тачно рећи како је ова књига дошла у моје руке, али је имала најдубљи утицај на моју будућу каријеру.

Програмерска каријера. Поглавље 2. Школа или самообразовање
Уметност програмирања - обавезно прочитати

Књиге сам куповао углавном на радио-пијаци, која је била отворена само недељом. Пошто сам уштедео још неколико десетина гривна на доручку, отишао сам по нову књигу о Ц++ или можда Перлу. Избор је био прилично велики, али нисам имао ментора, па сам све проучавао. Замолио сам продавца да ми препоручи нешто о програмирању. И колико се сећам, узео је „Уметност програмирања“ са полице. Први том". Књига је очигледно већ била коришћена. Углови корица су били савијени, а на полеђини је била видљива велика огреботина, тачно на месту где је Бил Гејтс оставио своју рецензију: „Ако прочитате ову књигу, свакако би требало да ми пошаљете своју биографију“, коју је он потписао. За Гејтса сам знао из часописа и мислио сам да би било лепо да му пошаљем биографију, иако су га сви Хакери критиковали. Књига кошта 72 УАХ. (15 долара), а ја сам брзо одјурио кући трамвајем да учим нови материјал.

Колико сам дубоких и основних ствари читао, наравно, нисам могао да разумем са 15 година. Али сам се марљиво трудио да завршим сваку вежбу. Једном сам чак успео да тачно решим задатак са оценом тежине 25 или 30. Било је то поглавље о математичкој индукцији. Иако нисам волео школску математику и нисам је добро разумео, био сам преко струњаче. Кнутова анализа - Седео сам сатима.
Затим, у другом поглављу биле су структуре података. Ове слике и слике повезаних листа, бинарних стабала, стекова и редова су још увек пред мојим очима. У својој 12-годишњој каријери у комерцијалном развоју, користио сам већину језика опште намене.
То су Ц/Ц++, Ц#, Јава, Питхон, ЈаваСцрипт, Делпхи. И без обзира како се језик звао, његова стандардна библиотека је садржавала структуре података и алгоритме које је описао Доналд Кнут у својој тротомној књизи. Дакле, учење нечег новог не одузима много времена.

Први том је прилично брзо потрошен. Преписао сам алгоритме дате у Кнутовој књизи у језик Ц. Није увек успело, али што сам више вежбао, то је била већа јасноћа. Ревности није недостајало. Пошто сам завршио са првим томом, без оклевања сам потрчао да купим други и трећи. Други сам за сада оставио по страни, али сам се темељно позабавио трећим (Сортирање и претраживање).
Добро се сећам како сам попунио целу бележницу, „тумачећи“ алгоритме за сортирање и претрагу. Баш као и код структура података, бинарно претраживање и брзо сортирање се визуелизују у мом мозгу муњевитом брзином, сећајући се како изгледају шематски у трећем тому Кнута.
Бич се свуда читао. Чак и када сам отишао на море, без рачунара у близини, и даље сам записивао алгоритме у свеску и провлачио низове бројева кроз њих. Још увек се сећам колико ми је бола требало да савладам хеапсорт, али вредело је.

Следећа књига која је имала снажан утицај на мене била је „Књига о змају“. То је такође „Компајлери: Принципи, технологије, алати” - А. Ахо, Р. Сети. Претходио јој је Херберт Шилт, са напредним задацима у Ц++. Овде су се тачке спојиле.
Захваљујући Шилдту, научио сам да пишем парсере и тумаче језика. А онда ме је Књига о змају подстакла да напишем свој Ц++ компајлер.

Програмерска каријера. Поглавље 2. Школа или самообразовање
Књига о змају

До тада сам добио интернет везу за брушење модема и провео сам доста времена на најпопуларнијем сајту за програмере - рсдн.ру. Ц++ је тамо доминирао и сваки професионалац је могао да одговори на питања која ја нисам могао да решим. Заболело ме је и разумео сам
да сам далеко од ових брадатих момака, па морам да проучим унутрашњост предности „Од и до“. Ова мотивација ме је довела до мог првог озбиљног пројекта - сопственог компајлера Ц++ стандарда из 1998. године. Детаљнију историју и изворе можете пронаћи у овом посту һабр.цом/ру/пост/322656.

Школа или самообразовање

Али вратимо се стварности ван ИДЕ-а. Иако сам се до тада све више удаљавао од стварног живота и урањао у виртуелни, ипак су ме године и општеприхваћене норме натерале да идем на факултет. Било је то право мучење. Апсолутно нисам имао појма шта радим у овој установи и зашто слушам те информације. Имао сам потпуно другачије приоритете у глави. Учење Висуал Студио 6.0, покушај са ВинАпи и Делпхи 6.
Диван сајт, фирстстепс.ру, који ми је омогућио да се радујем сваком кораку који сам направио, иако нисам разумео целокупну слику. На пример, у истој технологији МФЦ или АцтивеКс.
Шта је са факултетом? То је било губљење времена. Генерално, ако се дотакнемо теме студија, слабо сам студирао. До 6. разреда сам био одличан ђак, а онда сам добио Ц оцене, а од 8. до 9. разреда сам често прескакао часове, за шта сам од родитеља добијао илузорне појасеве.
Стога, када сам дошао на факултет, такође је било мало ентузијазма.
- Где је програмирање? Поставио сам себи питање. Али он није био тамо у првој половини године. Али било је рачунарства са МС-ДОС-ом и Оффицеом, као и општеобразовних предмета.

Поврх тога, имао сам интровертну личност и био сам веома скроман. Ова нова шаролика посада очигледно није уливала поверење. И било је обострано. Стога се разне врсте спрдње нису дуго чекале. Издржао сам то дуго, док нисам могао да издржим и ударио једног од преступника у лице право на часу. Да, па је одлетео до свог стола. Хвала мом оцу – од детињства ме је учио да се борим, а да сам заиста желео, могао сам да употребим физичку силу. Али то се дешавало веома ретко; чешће сам трпео исмевање, чекајући максималну тачку кључања.
Иначе, преступник, веома затечен оним што се дешавало, али и даље осећајући своју супериорност, изазвао ме је на узвратну борбу. Већ на празном месту иза образовне установе.
Ово није било дечје махање шакама, као што је то био случај у школи. Био је један племенити махач са поломљеним носовима и пуно крви. Момак такође није био плашљив момак и вешто је испоручивао хукове и аперкате. Сви су остали живи и од тада ме нико више није малтретирао.
на овом „колеџу за програмере“. Убрзо сам потпуно изгубио жељу да одем тамо. Због тога сам престао да идем тамо и никакве претње мојих родитеља нису деловале на мене. Неким чудом ми је боравак на факултету урачунат у 10. разред школе, а ја сам имао право да идем у 11.

Све би било у реду, али 11. разред није био много бољи од факултета. Вратио сам се у матичну школу, упознао момке које сам познавао са којима сам учио од првог разреда и надао се да ће у мом родном граду све бити добро. Постојала је само једна нијанса: момци су више личили на бандите из ТВ серија него на дечаке са којима сам се дружио у основној школи. Сви су хрлили у теретану да добију мишићну масу. Личио сам на бамбус. Мршав и веома мршав. Наравно, такав насилник из разреда могао би да ме веже једном левом руком.
То је оно што је почело да се дешава током времена. Овде моје борбене вештине више нису имале ефекта. Тежинске категорије су биле веома различите за мене и остале дечаке из мог некада родног разреда. Такође, посебности мог размишљања дале су се осетити.

Не пуштајући мисли да одлутају, и ја сам напустио школу. Тамо где сам се осећао пријатно било је испред компјутерског монитора, са затвореним вратима моје собе. Имало је смисла и интуитивно сам осећао да радим праву ствар. А ова школа је бескорисна активност, па чак и издржати ове спрдње, које су сваким даном постајале све софистицираније... То је то, доста ми је.
После још једног сукоба на часу, са мном у главној улози, напустио сам школу и никада више тамо нисам отишао.
Око 3 месеца сам седео код куће и проводио слободно време учећи Ц++/ВинАПИ/МФЦ и рсдн.ру.
На крају, директор школе није издржао и позвао је кући.
- „Денис, размишљаш ли да учиш? Или ћеш отићи? Одлучити. Нико вас неће оставити у лимбу.” – рекао је директор
„Отићи ћу“, одговорио сам самоуверено.

И опет иста прича. Остало ми је још пола године да завршим студије до завршетка школе. Не остављај ме без коре. Родитељи су одустали од мене и рекли ми да се сама преговарам са директором. Дошао сам код директора школе. Викала ми је да скинем капу када сам ушао. Онда је строго упитала: „Шта да радим с тобом?“ Искрено, ни сам нисам знао шта да радим. Био сам прилично задовољан тренутним стањем ствари. Коначно је узела реч:
– „Онда хајде да урадимо ово. Договорићу се са директором наше вечерње школе и ти ћеш отићи тамо.”
- "Да"

А вечерња школа је била прави рај за слободњаке попут мене. Иди ако желиш или не иди. У одељењу је било 45 људи, од којих се само 6-7 појавило на часовима. Нисам сигуран да су сви на листи били живи и такође слободни. Јер само у мом присуству другови из разреда су украли туђи мотоцикл. Али чињеница је остала чињеница. Могао сам неограничено да унапређујем своје вештине програмирања и да идем у школу када ми је то заиста било потребно. На крају сам га завршио и положио завршне испите. Нису захтевали много, а имали смо чак и церемонију дипломирања. Матура сама по себи је посебна бајка. Сећам се да су ми локални разбојници и другови узели сат. И чим сам чуо своје презиме, приликом уручења сведочанстава, јурнуо сам у касу да узмем документ и излетео из школе као метак, да не бих више налетео на невоље.

Лето је било пред нама. Са Доналдом Кнутом испод руке на плажи, море, сунце и судбоносна одлука да напише свој велики пројекат (компајлер).
Наставиће се ...

Извор: ввв.хабр.цом

Додај коментар