¿Cómo aprendiste a codificar cuál era tu estructura para aprender y qué te ayudó?

Podría responder a esta pregunta de una manera muy breve y precisa, pero creo que no pintaría una imagen completa sin proporcionar información de fondo, de modo que pueda poner en contexto mi “consejo”. Mi primera experiencia con instrucciones de computadora fue … ¡Archivos por lotes! Debo haber tenido alrededor de 6 años cuando me di cuenta de que podía hacer que la computadora ejecutara varios comandos posteriormente varias veces, simplemente escribiendo las instrucciones en un archivo .bat. Lo sé, no es una codificación real, pero hey, a mi pequeña me pareció genial.

Mi siguiente paso fueron las macros de Visual Basic dentro de los documentos de Office. Al principio, me encantaba crear interfaces de usuario “sofisticadas” con botones y casillas de verificación y botones de radio, y todo eso. Entonces empecé a jugar con el código VB subyacente. Estuve feliz durante algún tiempo experimentando con eso, pero pronto comencé a enfrentar las limitaciones de ese enfoque. Quería hacer mis propios programas. (Tuve obsesiones .exe, ¿qué tan nerdy es eso?) Ingresa MSDN. Mi padre, que sabía lo apasionado que era con ese tipo de cosas, logró conseguirme un paquete de cuatro CD de documentación y ejemplos de MSDN. Eso sí, estamos hablando de Albania, hace aproximadamente 12 años. Internet de banda ancha no sería una cosa hasta cinco años después. Los discos me introdujeron a C ++, J ++, VB 6, por lo que puedo recordar. Me interesé en J ++. No entendía completamente los ejemplos, aún no tenía 10 años y con muy poco conocimiento de las API y demás.

“Desafortunadamente”, Microsoft decidió desconectar J ++ y, por lo tanto, tuve que buscar alternativas. ¿Qué podría haber sido mejor que J #, tengo razón? Hice que mi padre me permitiera descargar Visual J # Express 2005 en nuestra conexión de acceso telefónico. Recuerdo hasta la fecha que el paquete completo pesaba 36 MB y nuestra conexión tenía un límite de 32 Kbps. (Esos eran los viejos tiempos). Después de pasar unos tres años de mi vida con J # y sin haber hecho ningún progreso real, pasé a Visual Basic 2008 Express y creo que encontré mi primer “amor” en términos de lenguajes de programación. . Descubrí que VB es bastante fácil de entender sintácticamente, mientras que lenguajes como C ++ y C # me asustaban con esas llaves y puntos y comas molestos … Al estar también en la red segura de .NET , comencé a experimentar más. Ahora tenía acceso a una banda ancha de 512 kbps . Eso significaba que podía ver tutoriales en video de baja resolución y buscar material en sitios y foros de referencia. Incluso me metí en LINQ y SQL, pero rápidamente retrocedí porque me aburrieron un poco a los 13-14 años. Estaba buscando un IDE y un lenguaje que hiciera mi trabajo lo más fácil posible porque era, y todavía soy, hasta cierto punto, perezoso. Luego, entre 2010 y 2013, me metí con REALbasic, Python, Delphi, C #, F #. Falta total de enfoque. Todo lo que aprendí fueron algunos trucos de codificación baratos y algunos algoritmos fáciles de implementar (Fibonacci, principalmente). Luego llegó el último año de preparatoria y nos enseñaron a Pascal en la clase de informática. Seguí las notas de la conferencia y lo hice muy bien allí. Todavía recuerdo la mayoría de las cosas sobre Pascal, pero en retrospectiva, no entiendo por qué mi escuela había elegido ese lenguaje moribundo.

De todos modos, en septiembre de 2014, comencé mis estudios de licenciatura en mi universidad actual. Y para sorpresa de mis padres y de casi todos los que me conocieron, decidí irme con Ingeniería Eléctrica e Informática, no Informática. Sin entrar en detalles sobre lo que me hizo tomar una decisión, permítame decirle que ECE también implica mucha programación. En mi primer año, aprendimos C, C ++, ensamblaje MIPS y lenguaje ensamblador x86. En mi segundo año, en el que estoy actualmente, hemos estado haciendo un montón de Matlab y algo de Python (especialmente utilizando SymPy). ¿Cómo llegué a aprender realmente? Te puedo dar algunos consejos (juego de palabras no destinado):

  • Revisé el material de la conferencia y leí los libros recomendados por el profesor antes de la clase. Esto me facilitó seguir la conferencia y saber cuándo hacer las preguntas (correctas). (Especialmente cierto para los lenguajes ensambladores).
  • Si tuviera dificultades para entender un concepto o resolver un ejercicio, vería muchos tutoriales en línea y pasaría por innumerables páginas de StackExchange.
  • No puedo enfatizar esto lo suficiente: experimenté mucho, especialmente con Matlab, porque era lo más inusual para mí. Ya sabes lo que dicen: ¡la práctica hace perfecto ! Solo trata de ser entusiasta y no perezoso al respecto.
  • Finalmente, pensaría en problemas en otras áreas y luego trataría de averiguar cómo codificaría una solución para ese problema. Pero tal vez eso es sólo el nerd en mí. 🙂

Lo anterior funcionó muy bien para mí, porque ya había jugado mucho antes con la codificación, la razón por la que escribí el largo preludio. No conozco tu historia, entonces … sabes lo que es mejor para ti.

Esto no te va a ayudar mucho porque hay formas mucho mejores de aprender hoy en día.

Tomé un curso escolar nocturno en Fortran en 1969. En la medida en que recuerdo el curso, solo hubo unas ocho sesiones. El maestro introdujo declaraciones individuales una a la vez. Pudimos codificar lo que viniera a nuestra mente, enviar los programas a las tarjetas perforadas y luego ejecutarlas en un pequeño IBM del tamaño de una mesa de cocina durante las horas de clase.

Que me ayudo Me sorprendieron las posibilidades y comencé a inventar problemas simples para “resolver”. Compré un clásico de McCracken, Una guía de Fortran, e intenté realizar todos los ejercicios que pude, no necesariamente ejecutándolos todos.

A2A:

Soy de la generación “Commodore 64”. Teníamos una computadora doméstica TI-99 / 4a, que ejecutaba TI-BASIC. Aprendí a codificar al escribir programas de revistas inicialmente y luego escribir el mío. Primero gráficos simples, rebotes de sprites en una pantalla, luego juegos simples. Luego obtuve los catálogos de juegos de Atari y Nintendo y traté de hacer remakes de los juegos que tenían, hice mi propio Frogger / Donkey Kong. BASIC no fue lo suficientemente rápido, así que un poco de ensamblador entró después de eso.

A partir de ahí, PC, primero GW-Basic, luego QuickBasic, luego MASM / assembler. Toqué TurboPascal pero no lo usé demasiado. Llegó Quick-C, usé eso, me frustré con la segmentación. Llegó Linux, GCC y la memoria plana fueron una ilustración.

Principalmente, siempre tuve un proyecto personal en segundo plano. Fractales, simuladores del sistema solar / movimiento planetario, una biblioteca de gráficos para dibujar líneas, círculos, pintar polígonos, un BBS, un juego de tanques multijugador, el juego de la vida de Conway, cosas de redes.

Aprendo haciendo. Ir a la universidad y estudiar CS también ayudó, pero los proyectos personales te enseñan cosas que el curso no. Obtendrá un proyecto más grande para jugar y no solo un pequeño laboratorio de un trimestre.

Para mi fueron problemas geniales, primero fui al Proyecto Euler. Hay un problema allí que tendrás que escribir pequeños programas para resolverlo. Comienzan bastante fácil y luego progresivamente más difícil. Después de pasar los primeros 100, realmente comenzaron a entrar en el rango “casi imposible”. Entonces pensé que haría algo de lo que pudiera beneficiarme.

A partir de ahí entré en el comercio algorítmico de acciones / divisas ¡Oye! ¿Si puedo hacer que un programa cuente cosas que no compran y venden? Así que he estado haciendo eso por un tiempo. El siguiente puede ser algún tipo de interfaz de usuario para un juego para que la gente pueda hacer lo que he estado haciendo fácilmente.

El mundo del código tiene infinitas posibilidades, puedes hacer cualquier cosa que puedas imaginar en línea. ¿Has jugado a Monument Valley? Todo el código! Bueno, tal vez no todos los códigos, tal vez muchas ilustraciones y gráficos y videojuegos, sino también muchos códigos.

Solo recuerde que está aprendiendo cosas que algún día podrían implementarse para cambiar las vidas de las personas que lo rodean.