Día de la protección infantil contra el código deficiente

Día de la protección infantil contra el código deficiente

Esta publicación está dedicada al Día Internacional de la Infancia. Cualquier coincidencia es pura casualidad.

A los 10 años, tuve mi primera computadora y un disco con Visual Studio 6. Desde entonces, me he planteado pequeñas tareas: automatizar cosas, crear un servicio web para tres personas o escribir un juego que luego sería eliminado de la Play Store por su antigüedad. Por supuesto, perdí los archivos fuente y escribí código que me da vergüenza mostrar. A los 10 años, definitivamente me hubiera gustado recibir un archivo del futuro con todos mis errores, para nunca cometerlos de nuevo.

Hace un par de semanas, le pregunté a colegas de Yandex.Money qué aconsejarían a un niño que quiere ser programador, y luego recordé algo sobre mí mismo. Así es como nació este texto. Propongo hablar de ello.

No recomiendo gastar mucha energía en la agonía de la elección; es mejor probarlo todo y hacer de todo. Una vez que te hagas una idea general de las cosas, podrás decidir por ti mismo en qué dirección avanzar y de cuál es mejor alejarse.

Sergei, programador junior

Infancia

¿Cuál es la actividad más divertida en la infancia de un programador, cuando aún no existe Internet?

Tuve dos: descomponer todos los juegos del disco '800 juegos en ruso' con todos los programas del disco 'Todo lo que necesita un hacker', y luego volver a escribir todos los juegos en los que pasé más de 10 horas desde cero en Basic. No hay diferencia en lo que obtendrás, incluso si sale algo así.

Día de la protección infantil contra el código deficiente

Simplemente pruebas, mueves bloques de lugar, experimentas y alcanzas todo lo que puedes alcanzar. Desinstalas Windows, pasas 10 horas reinstalándolo. Intentas recuperar los controladores. Te das cuenta de cómo funciona DOS. Descubres cómo deben estar conectados los puentes para que tu disco duro arranque en la computadora de un amigo (¡ahí hay 200 megabytes de nuevos juegos!). Manejas el software, manejas el hardware, desarmas y ensamblas computadoras. Escribes un simulador de fútbol durante 13 años, al final.

Cuando no hay nada, te vuelves feliz con eso.

No se debe subestimar la importancia de la autoevaluación. Creo que los principiantes en TI subestiman lo estrictamente que tendrán que controlar su producto (y en analítica también) y cuánto tiempo ocupa en comparación con la parte puramente creativa. Y cuanto más interesante sea lo que haces, más difícil y más largo será el proceso de verificación.

Este es, por supuesto, un consejo un tanto abstracto, pero si lo hubiera sabido desde el principio.

Y no recomiendo quedarse estancado en una sola dirección en TI. Aquí también la amplitud de miras tiene importancia.

Anna, analista de sistemas senior

Escuela secundaria

En algún momento, en el foro de la ciudad del distrito P, se discutió programación y apareció un hilo con el título "Se buscan programadores PHP para una gran empresa". El texto del anuncio era el siguiente:

Se buscan programadores PHP para una gran empresa:

Para entender si vale la pena que asistas a la entrevista, realiza una tarea sencilla: escribe un programa en PHP que encuentre enteros positivos x, y, z tales que x^5 + y^5 = z^5. (^ - es la potencia).

Puedes responder aquí.

En este hilo solo escribieron unas pocas personas, y yo fui uno de ellos. Con toda mi ingenuidad de dieciséis años, respondí:

Realmente es algo raro. Además, necesitas una computadora potente para encontrar esto...
Porque de x, y, z <= 1000 no hay tales números, eso es lo primero (lo intenté en VB, hasta ahora no he dado más), y lo segundo, la computadora se queda colgada.

No es cuestión de que no haya nada, IMHO.

Sí, un engaño, una trampa para principiantes, sí, con un tono burlón, ¿y qué? Es obvio que pasé un tiempo en un simple script, pero completamente olvidé la existencia del teorema de Fermat, que el autor del hilo, el respetable The_Kid, aclaró al final.

El resultado es triste: en P prácticamente no hay personas que conozcan matemáticas, pero uno de cada dos se considera un gran programador. En tres horas, en todos los foros en los que publiqué el mensaje, hubo unas doscientas visualizaciones... y solo dos respuestas correctas. Y el teorema de Fermat es parte del programa escolar, y sus condiciones son tan simples que deberían saltar a la vista. Por cierto, al mismo tiempo, en una encuesta en Skype, 6 de 6 estudiantes de Novosibirsk respondieron "Ese es el teorema de Fermat".
¿Y a quién se va a contratar después de esto?

Entonces me causó una gran indignación en el sentido de: "Si no escribí sobre el teorema de Fermat, no significa que no lo sepa", la clásica excusa. ¿Me siento triste ahora? No, también es una lección para toda la vida. Como entonces, cuando mi juego fue destacado en la tienda de Windows Phone de Indonesia, y dos semanas después fue eliminado porque no actualicé algunos términos del EULA.

Y es completamente incomprensible: si en una gran empresa no hay a quién contratar, ¿quién debería ser entonces? ¿En qué trabajar? ¿Hacia dónde crecer?

No debes pensar que, al obtener un título, serás programador/ taxista/ matemático o algo así.

Han llegado tiempos en los que los temas básicos en el diploma (matemáticas, física, informática, filosofía) son mucho más importantes que los aplicados (programación, diseño en áreas específicas, etc.). La educación superior ha comenzado a dividirse en capas: básica (ingeniería) y aplicada. Se debe aprender no habilidades específicas, sino pensamiento, enfoque científico, comprensión de cómo resolver problemas y habilidades blandas.

Esto en lo que respecta a la universidad. Para las habilidades aplicadas, la persona aún tendrá toda la vida por delante.

Oleg, analista de sistemas líder

Universidad

Escribes código en ‘C++’, escribes código en Java. Tocas ensamblador, retiras la mano, te metes en Qt y piensas, ¿por qué es así contigo? Al cuarto curso a todos les da igual en qué escribes las importantes prácticas, — los profesores ven el código de cualquier manera.

Así, por supuesto, no es en todas partes — hay universidades donde es sólido y bueno, pero allí aceptan a chicos que en la escuela resolvían problemas de ACM, en clases adicionales lograban todo de la teoría de grafos y memorizaban cuánta memoria requieren todos los algoritmos existentes en el mundo.

Yo no resolvía, no iba a clases adicionales, simplemente terminé en mi clase de matemáticas, haciendo cosas interesantes al mismo tiempo. Spoiler: en las entrevistas, no serán necesarias.

Primero es mejor determinar qué te gusta de TI. Si te gustan todas las áreas, será complicado. Aprender algún lenguaje — no llevará a nada, solo habrá confusión más adelante.

Yán, especialista en monitoreo financiero

Historia real: por un simulador de Windows hecho con un amigo en clase 10, en la universidad se pueden obtener un par de exámenes y créditos automáticamente. Incluso se puede contar después a todos lo genial que fue. El problema es que no fue genial — era una arquitectura confusa, código horrible y absoluta falta de cualquier estándar de nada.

Cosas así deben hacerse con un solo objetivo — tener un propio catálogo de problemas. Aunque esto no protegerá del síndrome del impostor, cuando te encuentras en una gran empresa con algunos conocimientos superficiales sobre todo y piensas que te descubrirán.

Día de la protección infantil contra el código deficiente

Apoyaré, es más importante ayudar con consejos sobre qué hacer y dónde obtener información, en lugar de lo contrario. Y no es nada aterrador si al principio él hace algo a ciegas. — La comprensión llegará más tarde. Lo importante es que le guste.

Eric, ingeniero de pruebas

Todos escribimos planes de desarrollo: qué necesitamos aprender, en qué debemos trabajar en el futuro cercano y cómo mejorar. Pero parece que a todos nos sería útil escribir una carta a nuestro yo del pasado; aquí está la mía.

  1. Tómate tu tiempo, encuentra un libro y finalmente instala esa distribución de Ubuntu que te enviaron gratis de Canonical. Seguro que hay algún problema sencillo, Ubuntu funciona en todas partes. Y Linux te será muy útil.
  2. No tengas miedo de la consola. Volkov Commander, por supuesto, cabe en un disquete, pero intenta entender por qué necesitas todos esos comandos, hazte amigo de la línea de comandos. Los disquetes se irán. Los discos desaparecerán. Las memorias USB también desaparecerán. No te preocupes demasiado.
  3. Lee sobre algoritmos, entiende sobre ordenamientos, árboles y montones. Lee libros.
  4. Para entender lo básico, no necesitas cursos pagos. Pronto aparecerá YouTube - te sorprenderás.
  5. No te obsesiones con Basic. Hay cientos de tecnologías en el mundo que merecen tu atención, y millones de cosas más interesantes que volver a dibujar formularios de usuario en Excel. Prueba con Python, y después ya verás.
  6. Aprende a usar Git, haz copias de seguridad de todos los códigos fuente. Escribe al menos una aplicación cliente-servidor para entender cómo funcionan. Familiarízate con redes, switches y routers.
  7. Y si estás leyendo esto ahora, significa que todo ha valido la pena.

¿Qué le dirías a tu yo del pasado en los comentarios? Recomienda algo a los actuales estudiantes de secundaria y universitarios que están indecisos y tratando de encontrar su camino. Hablemos de esto.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster