2023-10-29 18:24¶
Quiero empezar a programar¶
Bienvenide¶
En las últimas semanas, volviendo a la facultad y en otros eventos terminé conversando sobre mi experiencia de aprender a programar y quiero compartir los recursos que utilicé, y utilizo, para aprender.
Primero un par de aclaraciones.
Como cualquier disciplina la programación toma tiempo en aprender, así que no desistan.
Es una actividad práctica, de manera que solo leer de programación no te va a hacer une experte.
La forma de aprender que tengo es:
-
Si tengo interés en aprender sobre un tema nuevo, leo de muchos lugares sobre el tema, empezando por blogs o libros. Una vez que tengo una minima idea de que consiste busco en un ejemplo para realizar. Normalmente es reconstruir algo que hacen en un blog. Después dejo el tema de lado por un par de días y releo lo que hice.
-
Si tengo mucha urgencia para entender, busco un tutorial que explique paso a paso y lo voy siguiendo. Normalmente son tutoriales escritos, pero muchas veces veo videos en youtube.
Tengo un sesgo muy grande hacia Python, porque me da de comer y además porque me permitió conocer gente muy linda ( PyAr == :green_heart: ).
Para iniciar:¶
mumuki.io¶
Conocí mumuki en Innovar 2016, los chicos estaban presentando el proyecto en el stand de al lado así que estuve un buen tiempo jugando y probando las distintas actividades. Al día de hoy ( octubre 2019 ) la plataforma creció un montón y me parece que va mejorando la calidad.
Si nunca programaste, este es para mí el mejor lugar para empezar. Porque está enfocado, como me decían los chicos, a enseñar los conceptos y a pensar como programador, y no un lenguaje en particular.
HackerRank¶
Este sitio lo empecé a usar en 2017, cuando quise aplicar a la pasantía en Medallia. Ya que la prueba de ingreso la hacen por ahí. El sitio tiene varios proyectos y temas que uno puede realizar en varios lenguajes de programación y además tiene tutoriales en el mismo sitio. Lo único malo, es que está en inglés.
FreeCodeCamp¶
FreeCodeCamp es un gran sitio para aprender desarrollo web. Lo encontré el blog en Medium a mediados de 2017 y después me enteré que había un capítulo/meetup en Bs As. Ahí empecé a asistir a los eventos de freeCodeCampBA y fui aprendiendo lo básico de programación web ( HTML, CSS, JavaScript y sus derivados ) pero nunca fue lo mío (véase este blog), pero siempre me saca de aprietos. La página tiene una plataforma muy linda ya que es interactiva y con un programa bien extenso, y está enfocada a desarrollar proyectos de manera que termines con un portfolio y demuestres tus capacidades. Les chiques de BsAs además tienen una excelente guía para arrancar, más allá de los ejercicios oficiales.
Software Carpentry¶
Esta página no me acuerdo cuándo ni cómo la conocí pero, siempre que entro me dan ganas de hacer más cosas. Tiene muchos una cantidad de cursos bastante variada y lo mejor es que se están traduciendo varios al castellano. Por ahora solo hay tres,
ProjectEuler¶
Esta página la conozco desde principios de 2012 cuando cursé Algoritmos y estructuras de datos I, en el Departamento de Computación de la UBA. La cual cabe decir fue la única y última materia que cursé de esa carrera, dado que no la aprobé por sobre exigirme. Está más enfocada a problemas un poco más académicos y del estilo de una prueba de matemática, pero son un gran desafío y hay que pensar bastante. A la página regreso cada tanto cuando tengo un rato de distensión y me siento con ganas de resolver un desafío, pero puede que termine sin dormir y con mucho mate encima. Así que quedan advertides.
RealPython¶
Este es más específico de Python pero tiene los mejores tutoriales de la web. Lo conocí por Dan Bader un personaje bastante agradable de la comunidad.
PythonTutor¶
No me acuerdo cómo conocí esto, pero me parece que fue a partir de un blog o un podcast. Donde hablaban sobre Philip Guo y el programa que había hecho para explicar el ffuncionamiento interno de CPython en su clase de la Universidadfuncionamiento interno de CPython. En su momento vi todo el curso pero no entendí absolutamente nada, supongo que ahora tampoco ( es bastante avanzado y específico ), pero la herramienta que construyó es increíble. Y ahora tiene soporte para muchos lenguajes más, pero quedó con el nombre de Python Tutor por tradición. Entrevista en TalkPython
Tutorial oficial de Python. En español!¶
Una de las cosas que más me gusta de Python es la cantidad de trabajo que le ponen a la documentación. Y entre esas cosas está el Tutorial Oficial. Que acompañado del Interprete online arman una buena dupla para empezar a aprender lo básico del leguaje sin preocuparse de las instalaciones.
Crash Course Computer Science¶
Este es uno de mis canales favoritos de Youtube y el curso de Ciencias de la Computación es muy bueno para entender un poco la historia y tener una introducción a lo que hace une cientifique de la Computación.
Git¶
Algo que es importante saber es Git, yo lo aprendí a los ponchasos cuando "organicé" la sede de Buenos Aires del Sprint para mejorar la documentación de pandas donde tuve que entender todo el Git flow siguiendo esta guía.
Me parece que en el quick start de freeCodeCamp hay mejores materiales para empezar. O también en el taller de Software Carpentry.
Y también cada tanto ver la charla de Por qué TENÉS que conocer GIT que dió Sofi Denner en la PyConAr2018.
Y para realmente sacarle provecho a git recomiendo este tutorial bastante avanzado de Git in Depth por Nina Zakharenko
Como podrán ver hay muchas lugares para aprender.
Intermedio:¶
Generators
Charlas¶
Acá voy a ir poniendo charlas que creo que me ayudaron a entender bastantes cosas o incluso me motivaron a querer seguir aprendiendo.
Programación Científica:¶
SciPy¶
Análisis de Datos¶
Pandas :panda_face:¶
Charlas¶
SQL¶
Aprendizaje automático ( machine learning )¶
Jupyter¶
Ambientes de trabajo online¶
Gráficos¶
Testing¶
Test and Code
Libros¶
Allen Dowey
Comments¶
Comments powered by Disqus