Carreira de programación. Capítulo 2. Escola ou autoeducación

Continuación da historia "Carreira de programador".

Foi o ano 2001. O ano no que se lanzou o sistema operativo máis xenial: Windows XP. Cando apareceu rsdn.ru? Ano de nacemento de C# e .NET Framework. Primeiro ano do milenio. E un ano de crecemento exponencial no poder do novo hardware: Pentium IV, 256 mb de RAM.

Despois de rematar 9o e ver o meu entusiasmo inesgotable pola programación, meus pais decidiron trasladarme á universidade para especializarme en Programación. Crían que así sería mellor e que alí me ensinarían. A palabra facultade, por certo, non lle convenía a esta institución, nas aforas dunha cidade industrial. Era unha escola técnica común, non diferente doutras escolas técnicas que non colgaban na súa fachada unha etiqueta coa palabra de moda "facultade".
Ben. Non contradín aos meus pais e non desafiei a súa decisión. En todo caso, dedicábame á autoeducación, e pensei que neste novo lugar me darían algún coñecemento adicional.


Aquel verán antes de ir á universidade, comecei a estudar a fondo todas as tecnoloxías posibles que se publicaban na revista "Hacker". Lin e volvo a ler en anacos. Gustáronme especialmente as entrevistas con hackers reais e os seus consellos.
A maioría dos hackers interesantes estaban en Linux. E Mazda (Windows) era para lamers. Calquera persoa que leu a revista lembra o estilo das publicacións nela. Polo tanto, na miña fráxil mente, dúas ideas pelexáronse entre elas: deixar Windows ou ser xenial e unirse exclusivamente a Linux.
Cada novo número da revista Hacker dábame un novo motivo para formatear o disco e instalar Linux Red Hat 7 ou Windows Me. Por suposto, non tiña ningún vector de adestramento, e fixen o que lin en revistas ou en CDs pirateados como "Secrets of Hackers". Tamén se eliminou a instalación de dous sistemas operativos en paralelo, despois dun novo recheo no espírito de "Windows XP tamén coñecido como loro - isto é para amas de casa. E se queres facer cousas serias, tes que traballar desde a consola Linux cos ollos pechados". Por suposto, quería piratear sistemas, comprender como funciona a rede e ser o todopoderoso Anónimo nese momento.

Formateouse o disco sen ningún arrepentimento e instalouse nel un kit de distribución dun sistema tipo Unix. Si Si. Unha vez lin unha entrevista cun verdadeiro hacker que só usa FreeBSD 4.3 desde a consola. Ao mesmo tempo, era responsable de piratear bancos e sistemas gobernamentais. Foi un raio na cabeza e instalei BSD OS como sistema principal 5 veces. O problema foi que despois da instalación, non había nada alí excepto a consola espida. Incluso son. E para instalar KDE2 e activar o son, foi necesario bailar moito cunha pandeireta, e corrixir varias configuracións.

Carreira de programación. Capítulo 2. Escola ou autoeducación
A distribución FreeBSD 4.3 é o sistema operativo máis hacker

Sobre Literatura

En canto conseguín un ordenador, comecei a mercar libros de programación. O primeiro foi unha guía de "Turbo Pascal 7.0". Isto non é de estrañar, porque xa coñecía un pouco a Pascal dos cursos de programación, e podía seguir aprendendo pola miña conta. O problema foi que os hackers non escriben en Pascal. Entón a linguaxe Perl estaba de moda, ou, para os mozos máis cool, era C/C++. Polo menos iso é o que escribiron na revista. E o primeiro libro que lin ata o final foi "A linguaxe de programación C", de Kernighan e Ritchie. Por certo, estudei no entorno Linux
e utilizou gcc e o editor integrado de KDE para escribir o código.

Despois deste libro, mercou a Enciclopedia UNIX. Pesaba 3 quilos e estaba impreso en páxinas A3.
Na parte frontal do libro había unha representación completa dun diaño de debuxos animados cun forco, e logo custou 125 hryvnias en Ucraína (é dicir, uns 25 dólares en 2001). Para mercar o libro, pedín diñeiro prestado a un amigo da escola e meus pais engadiron o resto. Entón, comecei a estudar con entusiasmo os comandos de Unix, o editor vim e emacs, a estrutura do sistema de ficheiros e o interior dos ficheiros de configuración. Case 700 páxinas da enciclopedia foron devoradas e fun un paso máis preto do meu soño: converterme nun Kul-Hatzker.

Carreira de programación. Capítulo 2. Escola ou autoeducación
Enciclopedia UNIX - Un dos primeiros libros que lin

Gastei todo o diñeiro que me regalaron os meus avós e pais queridos en libros. O seguinte libro foi C++ en 21 días. O título era moi atractivo, e por iso non mirei outros libros de maior calidade. A pesar diso, todas as fontes foron copiadas do libro en aproximadamente este período de 3 semanas, e xa entendín algo en C++. Aínda que probablemente non entendín máis do que estaba escrito nestes listados. Pero houbo progreso.

Se me preguntases cal foi o libro que máis influíu na túa carreira, respondería sen dubidalo: "A arte da programación" - D. Knuth. Foi un recableado do cerebro. Non podo dicirche exactamente como chegou este libro ás miñas mans, pero tivo a influencia máis profunda na miña futura carreira.

Carreira de programación. Capítulo 2. Escola ou autoeducación
A arte da programación - debe ler

Compraba libros principalmente no mercado da radio, que só abría os domingos. Despois de gardar outras decenas de Hryvnia no almorzo, fun por un novo libro sobre C++ ou quizais Perl. A elección foi bastante grande, pero non tiña un mentor, así que estudei todo. Pedinlle ao vendedor que me recomendase algo sobre programación. E polo que recordo, sacou "A arte da programación" do estante. Primeiro volume". É evidente que o libro xa fora usado. As esquinas da portada estaban dobradas, e había un gran rasguño visible na parte traseira, exactamente onde Bill Gates deixara a súa crítica: "Se les este libro, definitivamente debería enviarme o seu currículo", asinado por el. Sabía de Gates polas revistas e pensei que sería bo enviarlle un currículo, aínda que todos os hackers o criticaban. O libro custou 72 UAH. (15 dólares) e axiña fun a casa en tranvía para estudar material novo.

Que cousas profundas e básicas lin, por suposto, non podía entender con 15 anos. Pero tentei con dilixencia completar todos os exercicios. Unha vez incluso conseguín resolver correctamente un problema cunha puntuación de dificultade de 25 ou 30. Era un capítulo sobre indución matemática. Aínda que non me gustaban as matemáticas da escola e non as entendía ben, estaba por riba do tapete. Análise de Knuth - Sentei horas.
A continuación, no segundo capítulo houbo estruturas de datos. Estas imaxes e imaxes de listas enlazadas, árbores binarias, pilas e filas aínda están ante os meus ollos. Nos meus 12 anos de carreira no desenvolvemento comercial, usei a maioría das linguaxes de propósito xeral.
Estes son C/C++, C#, Java, Python, JavaScript, Delphi. E sen importar como se chamase a linguaxe, a súa biblioteca estándar contiña estruturas de datos e algoritmos descritos por Donald Knuth no seu libro de tres volumes. Polo tanto, aprender algo novo non leva moito tempo.

O primeiro volume foi devorado con bastante rapidez. Reescribín os algoritmos dados no libro de Knuth na linguaxe C. Non sempre funcionou, pero canto máis practicaba, maior claridade viña. O celo non faltou. Despois de rematar co primeiro volume, fun sen dubidalo a mercar o segundo e o terceiro. Deixei o segundo a un lado polo momento, pero o terceiro (Clasificación e Busca) fíxeno a fondo.
Lembro moi ben como enchei un caderno enteiro, “interpretando” algoritmos de ordenación e busca. Do mesmo xeito que coas estruturas de datos, a busca binaria e a clasificación rápida visualízanse no meu cerebro á velocidade do lóstrego, recordando como se ven esquemáticamente no terceiro volume de Knuth.
O látego líase por todas partes. E mesmo cando fun ao mar, sen PC preto, aínda escribía algoritmos nun caderno e pasaba por eles secuencias de números. Aínda recordo a cantidade de dor que me levou dominar Heapsort, pero pagou a pena.

O seguinte libro que tivo unha forte influencia en min foi "O libro do dragón". Tamén é "Compiladores: principios, tecnoloxías, ferramentas" - A. Aho, R. Seti. Foi precedida por Herbert Schiltd, con tarefas avanzadas en C++. Aquí é onde se xuntaron os puntos.
Grazas a Schildt, aprendín a escribir analizadores e intérpretes lingüísticos. E entón o Libro do Dragón pediume a escribir o meu propio compilador C++.

Carreira de programación. Capítulo 2. Escola ou autoeducación
Libro do dragón

Nese momento, tiña unha conexión a Internet de moenda de módem e pasei moito tempo no sitio máis popular para programadores: rsdn.ru. C++ dominaba alí e todos os profesionais podían responder preguntas que eu non puiden resolver. Doeume, e entendín
que estou lonxe destes barbudos, polo que teño que estudar o interior das vantaxes de "From and To". Esta motivación levoume ao meu primeiro proxecto serio: o meu propio compilador do estándar C++ de 1998. Podes atopar unha historia e fontes máis detalladas nesta publicación habr.com/en/post/322656.

Escola ou autoeducación

Pero volvamos á realidade fóra do IDE. Aínda que, por aquel entón, me afastaba cada vez máis da vida real e me mergullaba na virtual, aínda así a miña idade e as normas xeralmente aceptadas obrigábanme a ir á universidade. Foi unha verdadeira tortura. Non tiña nin idea do que facía neste establecemento nin por que escoitaba esta información. Tiña prioridades completamente diferentes na miña cabeza. Aprendendo Visual Studio 6.0, probando con WinApi e Delphi 6.
Un sitio marabilloso, firststeps.ru, que me permitiu alegrarme con cada paso que daba, aínda que non entendía a imaxe xeral. Por exemplo, na mesma tecnoloxía MFC ou ActiveX.
Que pasa coa universidade? Foi unha perda de tempo. En xeral, se tocamos o tema dos estudos, estudei mal. Ata 6o de primaria fun un estudante excelente, e despois saquei C, e de 8o a 9o, moitas veces saltaba as clases, polo que recibía cintos ilusorios dos meus pais.
Por iso, cando cheguei á universidade, tamén había pouca ilusión.
- Onde está a programación? Fíxome unha pregunta. Pero non estivo alí no primeiro semestre do ano. Pero houbo informática con MS-DOS e Office, así como materias de educación xeral.

Ademais, tiña unha personalidade introvertida e era moi modesto. Esta nova tripulación abigarrada claramente non inspiraba confianza. E foi mutuo. Polo tanto, varios tipos de burlas non tardaron en chegar. Aguanteino durante moito tempo, ata que non puiden aguantar e peguei na cara a un dos infractores xusto na clase. Si, entón voou cara á súa mesa. Grazas ao meu pai, ensinoume a loitar dende neno e, se realmente quixera, podía usar a forza física. Pero isto ocorreu moi poucas veces; máis veces sufría o ridículo, esperando o punto de ebulición máximo.
Por certo, o delincuente, moi sorprendido polo que estaba a suceder, pero aínda sentindo a súa superioridade, retoume a unha loita de represalia. Xa no solar baleiro detrás da institución educativa.
Non era un aceno de puño dos nenos, como era o caso da escola. Había un makhach nobre co nariz roto e moito sangue. O tipo tampouco era un tipo tímido e entregaba habilmente ganchos e uppercuts. Todos seguían vivos, e desde entón xa ninguén me acosou.
nesta "facultade para programadores". Pronto perdín as ganas de ir alí por completo. Por iso, deixei de ir alí, e ningunha ameaza dos meus pais tivo ningún efecto sobre min. Por algún milagre, a miña estadía na facultade contabilizouse para o 10º curso, e tiña dereito a ir ao 11º.

Todo estaría ben, pero o 11o de primaria resultou non ser moito mellor que a universidade. Volvín á escola da miña casa, coñecín a uns rapaces que coñecía cos que estudara dende primeiro de primaria e agardaba que todo fose ben na miña cidade natal. Só había un matiz: os rapaces parecían máis bandidos das series de televisión que os rapaces cos que era amigo na escola primaria. Todos acudiron ao ximnasio para gañar masa muscular. Parecíame ao bambú. Languido e moi delgado. Por suposto, un compañeiro tan matón podería atarme cunha man esquerda.
Isto é o que comezou a suceder co paso do tempo. Aquí as miñas habilidades de loita xa non tiñan ningún efecto. As categorías de peso eran moi diferentes para min e para o resto dos rapaces da miña clase nativa. Ademais, as peculiaridades do meu pensamento fixéronse sentir.

Sen deixar vagar os meus pensamentos, tamén deixei o colexio. Onde me sentín cómodo foi diante do monitor dun ordenador, coa porta do meu cuarto pechada. Tiña sentido e intuitivamente sentín que estaba facendo o correcto. E esta escola é unha actividade inútil, e mesmo para soportar estas burlas, que cada día se facían máis sofisticadas... Xa está, xa me farto.
Despois doutro conflito na clase, comigo no protagonismo, deixei o colexio e nunca máis fun.
Durante uns 3 meses estiven sentado na casa, pasando o meu tempo libre aprendendo C++/WinAPI/MFC e rsdn.ru.
Ao final, o director da escola non o puido soportar e chamou a casa.
- “Denis, estás pensando en estudar? Ou marcharás? Decídete. Ninguén te deixará no limbo". - dixo o director
"Vou marchar", respondín confiado.

E de novo, a mesma historia. Quedaba medio ano para rematar os meus estudos antes de graduarme. Non me deixes sen codia. Os meus pais desistiron de min e dixéronme que fose eu mesmo a negociar co director. Cheguei ao director do colexio. Ela gritoume que me quitase o sombreiro cando entrei. Entón ela preguntou severamente: "Que debo facer contigo?" Sinceramente, eu mesmo non sabía que facer. Estaba bastante contento co estado actual das cousas. Finalmente tomou a palabra:
- "Entón imos facer isto. Farei un acordo co director da nosa escola nocturna e ti irás alí".
- "Si"

E a escola nocturna era un auténtico paraíso para os freestylers coma min. Vaia se queres, ou non vaias. Había 45 persoas na clase, das que só se presentaron 6-7 ás clases. Non estou seguro de que todos os da lista estivesen vivos e tamén libres. Porque só na miña presenza os compañeiros roubaron a motocicleta doutra persoa. Pero o feito seguía sendo un feito. Podería mellorar as miñas habilidades de programación sen límites e ir á escola cando realmente o necesitase. Acabei rematando e superando os meus exames finais. Non esixían moito, e ata tivemos un acto de graduación. A graduación en si mesma é unha fábula separada. Lembro que os bandidos locais e os compañeiros de clase levaron o meu reloxo. E en canto escoitei o meu apelido, durante a entrega dos certificados, premeime ao trote para sacar o documento e saín voando do colexio coma unha bala, para non ter máis problemas.

O verán estaba por diante. Con Donald Knuth debaixo do brazo na praia, o mar, o sol e a fatídica decisión de escribir o seu propio gran proxecto (compilador).
Continuar ...

Fonte: www.habr.com

Engadir un comentario