Programador de carrera. Parte 2. Escuela o autoeducación

Continuación de la historia "Programador de carrera" .

En el patio fue 2001. El año en que se lanzó el sistema operativo más genial: Windows XP. Cuando apareció rsdn.ru. El año de nacimiento de C # y .NET Framework. El primer año del milenio. Y un año de crecimiento exponencial en nuevas capacidades de hierro: Pentium IV, 256 mb de ram.

Después de graduarme del noveno grado, tuve un entusiasmo inagotable por seguir estudiando programación. Al ver esto, mis padres decidieron transferirme a la universidad para la especialidad "Programación". Creyeron que sería mejor y me enseñaron allí. Word College, por cierto, no se ajustaba a esta institución, en las afueras de una ciudad industrial. Era una escuela técnica regular, no distinguida de otras escuelas técnicas, que no colgaba una etiqueta con la palabra de moda "universidad" en su fachada.
Pues bien. No discutí con mis padres y no disputé su decisión. En cualquier caso, me dedicaba a la autoeducación y pensé que en este nuevo lugar me darían algunos conocimientos adicionales.

Ese verano, antes de ingresar a la universidad, comencé a estudiar a fondo todas las tecnologías posibles que se publicaron en la revista Hacker . Lo leí y lo releí en los agujeros. Me gustaron especialmente las entrevistas con hackers reales y sus consejos.

La mayoría de los hackers geniales se sentaron en Linuha. Pero "Mazdai" (Windows) era para lamers. Quien lee la revista, recuerda el estilo de las publicaciones en ella. Por lo tanto, en mi frágil mente, dos ideas lucharon entre sí: dejar Windows o ser genial y sentarse puramente en Linux.
Cada nuevo número de la revista Hacker me arrojó una nueva razón para formatear el disco e instalar Linux Red Hat 7 o Windows Me. Por supuesto, no tenía ningún vector de entrenamiento e hice lo que leía en revistas o en CD pirateados como "Secretos de los piratas informáticos". La instalación de dos sistemas operativos en paralelo también se borró, después de un nuevo lanzamiento en el espíritu de "Windows XP, también conocido como un loro es para las amas de casa. Y si quieres hacer cosas serias, tienes que trabajar desde la consola de Linux con los ojos cerrados ". Por supuesto, quería participar en sistemas de piratería, comprender cómo funciona la red y ser el Anónimo omnipotente en ese momento.

El disco se formateó sin remordimientos y se instaló en él la distribución de un sistema similar a Unix. Si si. Una vez leí una entrevista con un hacker real que usa solo FreeBSD 4.3 de la consola. Al mismo tiempo, los hacks de bancos y sistemas estatales se enumeraron detrás de él. Fue un rayo en la cabeza, y puse BSD OS 5 veces como sistema principal. El problema era que después de la instalación, a excepción de la consola desnuda, no había nada allí. Incluso el sonido. Y para poner KDE2 y activar el sonido, había que bailar mucho con una pandereta y arreglar algunas configuraciones.

freebsd
FreeBSD 4.3 - El sistema operativo más hacker

Sobre literatura


Tan pronto como obtuve una computadora, comencé a comprar libros de programación. La primera fue una guía de Turbo Pascal 7.0. Esto no es sorprendente, porque Pascal ya sabía un poco de programación de cursos, y era posible continuar entrenando por mi cuenta. El problema era que los hackers no escriben en Pascal. Entonces el lenguaje Perl estaba de moda, o, para los más geniales, era C / C ++. Al menos eso es lo que escribieron en la revista. Y el primer libro que se leyó hasta el final fue C, el lenguaje de programación Kernigan y Ritchie. Por cierto, estudié en Linux
y usé gcc y el editor KDE incorporado para escribir código.

Después de este libro, se compró la Enciclopedia UNIX. Pesaba 3 kilogramos y estaba impresa en páginas A3.

En el anverso del libro, se representaba un demonio de dibujos animados con una horca en toda su altura, y luego costó en Ucrania 125 hryvnias (esto es alrededor de $ 25 en 2001). Para comprar un libro, pedí un préstamo a un amigo de la escuela, el resto fue agregado por los padres. Luego, con entusiasmo comencé a estudiar los comandos de Unix, el editor vim y emacs, la estructura del sistema de archivos y el interior de la configuración del archivo. Se tragaron casi 700 páginas de la enciclopedia y me acerqué un paso más al sueño: convertirme en un sombrerero genial.

unix
Enciclopedia UNIX - Uno de los primeros libros leídos

Todo el dinero que ese amoroso abuelo, abuela y padres me dieron lo gasté en libros. El siguiente libro fue C ++ en 21 días. El título era muy atractivo y, por lo tanto, no miré otros libros de mayor calidad. A pesar de esto, todas las fuentes se copiaron del libro durante aproximadamente este período de 3 semanas, y ya entendí algo en C ++. Aunque probablemente ya no entendí lo que estaba escrito en estos listados. Pero ha habido progreso.

Si alguien me preguntara qué libro influyó más en su carrera, habría respondido sin dudarlo - "El arte de la programación" - D. Knut. Fue un destello cerebral. No puedo decir exactamente cómo cayó este libro exactamente en mis manos, pero ha tenido la mayor influencia en mi futura carrera.

imagen
El arte de la programación: debe leer

Compré libros principalmente en el mercado de la radio, que funcionaba solo los domingos. Después de guardar las siguientes docenas de hryvnias para el desayuno, fui por un nuevo libro sobre C ++ o tal vez Perl. La elección fue lo suficientemente grande, pero no tenía un mentor, por lo que todo se estudió en una fila. Le pedí al vendedor que me recomendara algo para la programación. Y hasta donde recuerdo, tomó del estante "El arte de la programación. Primero Tom ". El libro claramente ya estaba en uso. Las esquinas de la cubierta estaban dobladas y había un gran rasguño en la parte posterior, justo en el lugar donde Bill Gates dejó su comentario: "Si lees este libro, definitivamente deberías enviarme un currículum" fue firmado por él. Sabía sobre Gates por revistas, y pensé que sería bueno enviarle un currículum, a pesar de que todos los Hackers lo tenían. El libro valía 72 UAH. ($ 15), y rápidamente corrí a casa en un tranvía para estudiar material nuevo.

Qué cosas tan profundas y básicas leo, por supuesto que no podía entender a los 15. Pero trató diligentemente de completar cada ejercicio. Una vez incluso logré resolver correctamente el problema con una calificación de complejidad de 25 o 30. Este fue un capítulo sobre inducción matemática. Aunque no me gustaban las matemáticas de la escuela y las agarraba mal, pero sobre el tapete. Análisis de Knut: me senté durante horas.

Luego, el segundo capítulo fue sobre estructuras de datos. Estas imágenes e imágenes de listas vinculadas, árboles binarios, pilas y colas todavía están ante mis ojos. Durante los 12 años de mi carrera en desarrollo comercial, he usado la mayoría de los idiomas generales.

Estos son C / C ++, C #, Java, Python, JavaScript, Delphi. Y no importa cómo se llame el lenguaje, su biblioteca estándar tenía estructuras de datos y algoritmos descritos por Donald Knuth en su libro de tres volúmenes. Por lo tanto, aprender algo nuevo no lleva mucho tiempo.

El primer volumen se tragó lo suficientemente rápido. Copié los algoritmos dados en el libro de Knuth en C. No siempre funcionó, pero cuanto más practicaba, más claridad llegaba. El celo no debía sostenerse. Habiendo terminado con el primer volumen, no dudé en correr y comprar el segundo y el tercero. He puesto el segundo a un lado, pero para el tercero (Ordenar y buscar), lo he tomado a fondo.

Recuerdo muy bien cómo escribí un cuaderno completo, "interpretando" los algoritmos de clasificación y búsqueda. Al igual que con las estructuras de datos, la búsqueda binaria y la clasificación rápida se visualizan en mi cerebro a la velocidad del rayo, recordando cómo se ven esquemáticamente en el tercer volumen de Knuth.

El látigo fue leído en todas partes. E incluso yendo al mar, sin tener una PC cerca, todavía prescribí los algoritmos en un cuaderno y pasé una secuencia de números a través de ellos. Todavía recuerdo cuántos tormentos me costó dominar la clasificación piramidal, pero valió la pena.

El siguiente libro que tuvo una fuerte influencia en mí fue The Dragon Book. Ella es "Compiladores: Principios, Tecnologías, Herramientas" - A. Aho, R. Seti. Fue precedido por Herbert Shildd, con tareas avanzadas en C ++. Fue en este punto que los puntos se unieron.
Gracias a Schildt, aprendí a escribir analizadores e intérpretes de idiomas. Y luego, el Libro del Dragón, me impulsó a escribir mi propio compilador de C ++.

imagen
Libro del dragón

Para ese entonces, tenía un módem de Internet, y pasé mucho tiempo en el sitio más popular para programadores: rsdn.ru. C ++ dominaba allí, y cada profesional podía responder preguntas que no podía manejar. Esto me dolió y me di cuenta de que estaba lejos de estos tíos barbudos, así que necesito estudiar el interior de los pros y los contras. Esta motivación me llevó al primer proyecto serio: mi propio compilador de C ++ del estándar de 1998. Puede encontrar un historial más detallado y códigos fuente en esta publicación .

Escuela o autoeducación


Pero volvamos a la realidad más allá del IDE. Aunque, en ese momento, me alejaba cada vez más de la vida real y me sumergía en lo virtual, todas las mismas edades y las normas generalmente aceptadas me obligaron a ir a la universidad. Eso fue una verdadera tortura. No entendí completamente lo que estaba haciendo en esta institución y por qué estaba escuchando esta información. Había prioridades completamente diferentes en mi cabeza. Aprendiendo Visual Studio 6.0, probando con WinApi y Delphi 6.

Un sitio maravilloso firststeps.ru, que permitió a todos disfrutar de los pequeños pasos dados, aunque no entendí la imagen general. Por ejemplo, en la misma tecnología MFC o ActiveX.

¿Qué hay de la universidad? Fue una pérdida de tiempo. En general, si toco el tema de estudio, estudié mal. Hasta el sexto grado era un alumno de honores redondos, y luego volaron tres, y para el octavo-noveno grado, a menudo me saltaba las clases, por las cuales no recibí cinturones ilusorios de mis padres.

Por lo tanto, después de haber venido a la universidad, también había poco entusiasmo.

- ¿Dónde está la programación? Me hice una pregunta. Pero no estaba en la primera mitad del año. Pero había ciencias de la computación con MS-DOS y Office, así como temas generales.

Además de todo, tenía un carácter retraído y era muy modesto. Este nuevo grupo variopinto claramente no era creíble. Y fue mutuo. Por lo tanto, todo tipo de burlas no tardó mucho en esperar. Soporté durante mucho tiempo, hasta que no pude soportarlo y golpeé a uno de los delincuentes en la cara justo en el aula. Sí, así que se fue volando a los escritorios. Gracias a mi padre, él me enseñó a luchar desde la infancia, y con un deseo agudo, podía usar la fuerza física. Pero esto sucedió muy raramente, a menudo soporté burlas, esperando el punto de ebullición máximo.
Por cierto, el delincuente, muy sorprendido por lo que estaba sucediendo, pero aún sintiéndose superior, me llamó a la pelea de regreso. Ya en el páramo detrás de la escuela.

Estos no eran puños de niños, como era el caso en la escuela. Había un noble Mahach, con la nariz rota y mucha sangre. El tipo tampoco era de una tímida docena y pesaba hábilmente ganchos y uppercuts. Todos permanecieron vivos, y desde entonces nadie me ha acosado en esta "universidad para programadores". Tengo ganas de ir allí y desaparecí por completo pronto. Por lo tanto, dejé de hacerlo y no me afectaron las amenazas de mis padres. Por algún milagro, consideraron mi estadía en la universidad para el décimo grado de la escuela, y tenía derecho a ir al undécimo.

Todo estaría bien, pero el 11 ° grado no era una de las mejores universidades. Regresé a mi escuela nativa, conocí a algunos amigos de mis conocidos con quienes había estudiado desde primer grado y esperaba que todo estuviera bien en su lugar natal. Solo había una advertencia: Chicos, eran más como bandidos de la serie que aquellos chicos con los que era amigo en los grados inferiores. Todos fueron a la mecedora para ganar masa muscular. Parecía bambú Lanky y muy delgado. Por supuesto, un compañero de clase tan toro podría torcerme con uno restante.

Entonces comenzó a suceder con el tiempo. Entonces mis habilidades de lucha no tuvieron efecto. Ya había categorías de peso muy diferentes conmigo y con el resto de los niños de mi clase nativa. Además, las características de mi pensamiento se hicieron sentir.

Sin extender mis pensamientos sobre el árbol, también dejé la escuela. Donde me sentía cómodo era frente al monitor de una computadora, con la puerta de mi habitación cerrada. Tenía sentido, e intuitivamente sentí que estaba haciendo lo correcto. E ir a la escuela es un ejercicio inútil, e incluso una burla duradera allí, que cada día se volvió más y más sofisticada ... Eso es suficiente para mí.

Después de otro conflicto en la clase, conmigo en el papel principal, dejé la escuela y ya no fui allí.

Aproximadamente 3 meses estaba sentado en casa, pasando tiempo libre estudiando C ++ / WinAPI / MFC y rsdn.ru.
Al final, el director no pudo soportarlo y llamó a casa.

- "Denis, ¿estás pensando en estudiar?" ¿O te irás? Decidir En el limbo, nadie te dejará. - dijo el director
- "me iré" - respondí con confianza

Y de nuevo, la misma historia. Quedaba por terminar mis estudios durante medio año, hasta la graduación. No me dejes sin costra. Mis padres me saludaron con la mano y me dijeron que fuera a estar de acuerdo con el director. Llegué al director. Ella me gritó que me quitara el sombrero cuando entro. Entonces ella preguntó estrictamente: "¿Qué hacer con usted?" Francamente, yo mismo no sabía qué hacer. Estaba bastante contento con el estado actual de las cosas. Finalmente ella tomó la palabra:

"Entonces, hagamos esto". Estaré de acuerdo con el director de nuestra escuela nocturna y tú irás allí.
- "Sí"

Y la escuela nocturna: era un verdadero paraíso para los freestylers como yo. Si quieres ir, no quieres ir. Había 45 personas en la clase, 6-7 de ellas aparecieron en el aula. No estoy seguro de si todos en la lista estaban vivos y también eran libres. Porque solo conmigo, los compañeros de clase robaron la motocicleta de otra persona. Pero el hecho permaneció. Podía desarrollar habilidades de programación ilimitadamente e ir a la escuela cuando realmente lo necesitara. Al final, lo terminé aprobando los exámenes finales. Muchos no los requerían, e incluso tuvimos una graduación. La graduación, en sí misma, es una fábula separada. Recuerdo que mis bandidos locales me quitaron el reloj. Y apenas escuché mi apellido, al presentar los certificados: troté tras un documento y salí de la escuela con una bala para no tropezar con ningún otro problema.

Por delante estaba el verano. Con Donald Knut bajo el brazo en la playa, el mar, el sol y la fatídica decisión de escribir su propio gran proyecto (compilador).

Parte 3. Universidad >>

Source: https://habr.com/ru/post/449806/


All Articles