¿Cuáles son los mejores recursos para aprender conceptos de programación?

Coursera demostró una gran cantidad de conocimientos de fácil acceso (y de libre acceso) para mí, por lo que puede usar su motor de búsqueda con palabras clave específicas (no sé, como “algoritmo” o “programación”) y encontrar clases muy buenas para asistir .

Por supuesto, nada es perfecto, pero aún así funcionó de maravilla para un autodidacta como yo.

Me atrevo a decir, por ejemplo, que la clase de algo de Tim Roughgarden puede ser incluso mucho mejor que muchos libros muy famosos: tiene un alcance mucho menor que, por ejemplo, el CLRS (la biblia del diseño de algo), pero se puede seguir muy maestro capacitado, practique lo que aprendió con exámenes y pruebas y, si lo desea, también hay un foro muy completo para discutir temas y buscar consejos.

Ah, y sí: es un lenguaje agnóstico como lo deseabas.

Y definitivamente necesitas las 4P: práctica (recomiendo CodeWars para eso), perseverancia (a veces puede ser frustrante), paciencia (CS es difícil, no aprenderás ni siquiera sus conceptos centrales de la noche a la mañana) y pasión (hace que todo otra cosa mucho más fácil).

Espero que esto ayude, feliz codificación 🙂

He estado luchando con exactamente el mismo problema, y ​​me formé como ingeniero eléctrico con una especialización en ciencias de la computación. (Bueno, mi universidad realmente no tenía el concepto de “menor” para la ingeniería, pero me acerqué tanto como permitían las reglas).

Me parece que siempre aprendí un aspecto complejo de la mejor programación cuando tuve que usarlo en un proyecto serio del mundo real. Como ejemplo principal, en un proyecto reciente, terminé usando Python en lugar de C porque simplemente no podía justificar el tiempo que había necesitado para ejecutar las herramientas C multiplataforma. En el proceso, obtuve una competencia más que razonable con Python, pero con muchos conceptos “Pythonic”.

Trabajar en múltiples lenguajes de programación es una buena manera de aprender nuevos conceptos, especialmente si esos lenguajes de programación son significativamente diferentes, como C y Python. Originalmente elaboré mi proyecto con la mirada puesta en C. Comencé a codificarlo en Python con sabor C distintivo. Fue solo cuando me acostumbré a los conceptos subyacentes de Python que comencé a hacer un buen progreso.

Por ejemplo, mencionaste funciones lambda. Lo había leído por primera vez hace muchos años, pero nunca vi el punto, aparte del análisis abstracto. Aparecieron en una reciente revisión de C ++, pero todavía no les veía un punto y, por lo tanto, no los entendía realmente. Una vez que comencé a trabajar en Python, las funciones lambda se convirtieron en herramientas muy útiles. Ahora, no estoy seguro de lo que parecía tan extraño acerca de ellos.

Como otro ejemplo, cuando estaba en la universidad, tomé un curso con el vago nombre de “Lenguajes de programación II”. Lo que debería haberse llamado era “Lenguajes de programación comparativos”. Tuvimos un problema asignado para todo el término, un tipo de programa de análisis de datos simplista. El problema fue: tuvimos que programarlo en Fortran, COBOL, PL / X (un dialecto de PL / 1) y APL. Simplemente expresar el problema en términos del idioma de destino fue un ejercicio de aprendizaje. Claro, podría escribir un pseudocódigo (odio los diagramas de flujo) que era independiente del lenguaje, pero hasta que miraba la implementación con un ojo en diferentes objetivos, pasaba por alto muchos aspectos sutiles para resolver el problema. Sé que para cada vuelta en otro idioma, quería regresar y volver a examinar los anteriores.

En cuanto a los recursos específicos, es tan difícil recomendar uno sobre otro, es algo muy personal. Una cosa que podría hacer es encontrar algunas posibilidades de búsqueda en Amazon (o lo que sea). Luego, visite el sitio web del libro y vea cómo es el código de ejemplo. Podría darle una idea de si desea o no leer el libro.

Yo recomiendo:

  • Llegar tan lejos como puedas en Project Euler, para aprender sobre algoritmos y resolución de problemas.
  • Leyendo el libro “Patrones de diseño” por la cuadrilla de cuatro, vea Patrones de diseño.
  • Escoger uno de los cursos de Coursera que utilizan la programación como una herramienta para aprender sobre varios temas, como https://www.coursera.org/course/… , algebra + programación
  • Lectura de la programación funcional en Swift como introducción a la programación funcional.

¡Buena suerte!

Reinder, LearnAppMaking.com

Bueno, todo lo que quieres ya se ofrece en forma de cursos y libros. Diríjase a @edX para aprender este Diseño de Programa Sistemático – Parte 1: El Método Central. Hay muchos otros cursos también. También puede obtener estos cursos sobre udacia, coursera y udemy. Si ninguno de ellos te atrae, trata de obtener un libro y apégate a él.

Es posible que desee seguir el plan de estudios de un programa de informática y utilizarlo como una hoja de ruta. Luego, usa Wikipedia para las vistas generales.

Una vez que sepa qué buscar, use Google para buscar artículos detallados. También puede restringir sus búsquedas al TLD “edu”. Por ejemplo,

sitio de cálculo lambda: edu