Cómo se autoaprende informática (incluyendo algoritmos y bases de datos)?

Empecé a codificar a mediados de los años 70 mientras estaba en el instituto. Escribí programas en un ordenador central de tiempo compartido en la universidad local. No recuerdo el lenguaje, pero probablemente era Fortran. No tomé ningún curso de programación en la universidad, pero una vez que entré en el mundo de los negocios, de vez en cuando escribía programas para ayudarme a hacer mi trabajo. Empecé con Quick Basic y luego con Visual Basic. Hice mis pinitos en C y C++, pero nunca llegué a dominarlos.

Me jubilé hace dos años y decidí ponerme serio. Le pregunté a un amigo programador que había asistido al MIT en qué lenguajes debía centrarme, y me recomendó Python y R. Python es un lenguaje de propósito general con una tonelada de flexibilidad y simplicidad inherente, y R es un lenguaje de programación estadística en muchos aspectos similar a Python. Bueno para el análisis de big data.

Mi primer paso fue hacer un curso online de Coursera llamado "An Intro to Interactive Programming for Python", impartido por profesores de Rice, donde aprendimos a construir videojuegos arcade. Muy divertido. Luego tomé un curso de R de UPenn en Coursera, y luego, recientemente, "An Intro to Computer Science and Programming using Python", impartido en el MIT a través de edX. El último curso fue el mejor. Todos los cursos son gratuitos. Terminé todos los cursos, así que obviamente todos mantuvieron mi interés. Un compromiso de tiempo bastante grande. Harvard ofrece CS50, su curso de introducción a la informática en edX también. Lo empecé, pero es autodidacta, así que me resultó demasiado fácil dejarlo. Los otros tienen exámenes y tareas cada semana así que no puedes dejarlos pasar.

Mi hijo vive en San Francisco. Tiene 26 años. Tenía interés en aprender a codificar. Primero tomó un curso real en una escuela de programación local en los lenguajes Ruby y Ruby on Rails. Le interesaba el desarrollo web y ha trabajado en varios proyectos desde que hizo el curso. Por el camino aprendió Java, Java Script, Coffee Script, HTML, CSS, Scala y Swift (el nuevo lenguaje de programación de Apple para el desarrollo de aplicaciones). Tiene conocimientos básicos de otros lenguajes. Todo esto principalmente por su cuenta y con la ayuda de amigos que son programadores profesionales.

Por último, echa un vistazo a la página web codewars. Es gratis. Una vez que te registres, te darán problemas de programación para que los resuelvas, comenzando por lo fácil y haciéndose cada vez más difíciles a medida que te vuelves más hábil. Los problemas son propuestos al sitio web por programadores serios. El sitio web califica tus soluciones automáticamente cuando las envías. Está disponible para un montón de lenguajes diferentes, incluyendo Python. Es una buena manera de mejorar y mantenerse fresco en un lenguaje.

Espero que esto ayude.