- Paso 3: Empezar un proyecto para practicar lo aprendido
- Algunos proyectos aptos para principiantes que puedes probar
- Proyectos de nivel 1
- Proyectos de nivel 2
- Proyectos de nivel 3
- No te rindas fácilmente, tienes que superar las luchas iniciales
- Es importante construir una base sólida
- Aprende haciendo. Juega siempre con el código mientras aprendes.
- Parte 2: Hoja de ruta para convertirte en un programador avanzado
- Analítica de Datos
- ¿Cómo puedes aprender analítica de datos gratis?
- Esquema de los módulos de Data Analytics
- Cosas que hay que evitar mientras se aprende Analítica de Datos
- Ingeniería de Software
- ¿Cómo puedes aprender Ingeniería de Software gratis?
- Esquema de los módulos de Ingeniería de Software
- Cursos Prácticos
- Cursos Avanzados
- Opcional
- Conclusión
Paso 3: Empezar un proyecto para practicar lo aprendido
Ver cursos por sí solo no te ayudaría a interiorizar el concepto. Tendrías que poner el concepto en práctica. La mejor manera de hacerlo sería plantear proyectos.
Si tienes una idea para un proyecto o tienes un problema que quieres resolver con la codificación, ¡es genial!
Si no es así, he preparado una lista de proyectos aptos para principiantes en los que puedes inspirarte o probar.
Algunos proyectos aptos para principiantes que puedes probar
Aquí tienes algunas terminologías que pueden resultar confusas
Bibliotecas: Una biblioteca es una colección de piezas de código relacionadas que han sido compiladas y almacenadas juntas en un solo archivo. Ese archivo se puede enlazar con su código para darle acceso al código de la biblioteca.
API: API son las siglas de Application Programming Interface (interfaz de programación de aplicaciones). Una API es un intermediario de software que permite que dos aplicaciones se comuniquen entre sí. En otras palabras, la API te permite solicitar funciones a un proveedor de software para utilizarlas en tu código. Por ejemplo, la API de Spotify te permite solicitar datos como canciones y artistas a Spotify y puedes hacer uso de los datos en tu código o aplicación.
Proyectos de nivel 1
Calculadora
- Lenguaje: Python
- Bibliotecas: Ninguna
- Guía: https://www.programiz.com/python-programming/examples/calculator
Sudoku Solver
- Lenguaje: Python
- Bibliotecas: Ninguna
- Guía: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/
Hangman
- Lenguaje: Python
- Bibliotecas: Ninguna
- Guía: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman
Proyectos de nivel 2
Ajedrez
- Lenguaje: Python o Java
- Bibliotecas: Ninguna
- Guía: https://www.youtube.com/watch?v=ejZqLsQDjuo
Descubrir semanalmente la lista de reproducción de Spotify
- Construir tu propio sistema para hacer algo similar a Descubrir semanalmente la lista de reproducción de Spotify
- Lenguaje: Python
- Bibliotecas: API de Spotify
- Guía: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb
Herramienta de seguimiento automático del tiempo
- Mejora la concentración mediante el seguimiento del tiempo empleado en aplicaciones de escritorio o sitios web en tiempo real.
- Lenguaje: Python
- Bibliotecas: Selenium
- Guía: https://www.youtube.com/watch?v=ZBLYcvPl1MA
Proyectos de nivel 3
Automatización de Instagram
- Automatizar el proceso de publicación en Instagram
- Lenguaje: Python
- Bibliotecas: Flask,Instapy
- Guía: https://www.youtube.com/watch?v=vnfhv1E1dU4
Twitter Bot
- Un bot que tuitea automáticamente a tu feed.
- Lenguaje: Python
- Bibliotecas: Twitter API
- Guía: https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html
Telegram chatbot
- Un chatbot que permite automatizar los mensajes de telegram
- Lenguaje: Python
- Bibliotecas: Python-Telegram-API
- Guía: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/
Esta no es una lista exhaustiva. Si tienes un problema que necesitas resolver, piensa en cómo puedes resolverlo con la programación. Eso también puede ser un proyecto.
No te rindas fácilmente, tienes que superar las luchas iniciales
El mayor error que puedes cometer como aspirante a programador es rendirte porque crees que no eres lo suficientemente inteligente para aprender a programar. Aprender a programar no tiene nada que ver con tu inteligencia.
Aprender a programar es difícil y la mayoría de la gente se enfrentaría a dificultades en algún momento porque hay muchos temas que aprender. Al programar, va a haber muchos temas que no van a tener sentido la primera vez. Así que, abstente de los pensamientos negativos sobre ti mismo.
Yo también me atasco. A menudo tengo que volver a ver la misma conferencia o video tutorial varias veces para poder entender el concepto. No te desanimes si te encuentras en mi lugar.
Es importante construir una base sólida
Por muy elementales que puedan parecer al principio, los fundamentos de la programación siempre tienen que ser lo primero: cuanto mejor los entiendas, más fácil será aprender conceptos más avanzados. Si el tema actual que estás aprendiendo no tiene sentido para ti, quédate donde estás. No pases al siguiente tema. Saltarse el tema es similar a construir una casa sin base, descuidando los cimientos.
Si el tutorial (o el libro) que estás utilizando no explicaba suficientemente el tema, puede que tengas que buscar otros recursos que te convengan. Puedes encontrar casi cualquier cosa que quieras aprender de forma gratuita en Google. Averigua qué buscar (por ejemplo, en + cualquier otra palabra clave útil).
Tómate al menos 20 minutos para resolver algo por tu cuenta antes de buscar ayuda. Es muy probable que la respuesta ya esté delante de ti. Luchar te hace aprender mejor y ser un mejor programador en general.
Stackoverflow y learn programming son minas de oro para la ayuda en programación.
Aprende haciendo. Juega siempre con el código mientras aprendes.
El objetivo es ser consciente de tu propio aprendizaje a medida que avanzas en el camino del aprendizaje. Por lo tanto, no siga ciegamente los cursos y copie a ciegas el código sin entenderlo primero. Comprende los conceptos que se enseñaron en la lección y trata de recrearlo.
A medida que avances, haz un hábito de practicar tu programación. Puedes hacerlo en leetcode, hackerrank, o haciendo un proyecto. Intenta hacer un proyecto después de cada módulo con los conceptos que has aprendido. Cuando hacía cursos online intentaba hacer un proyecto cada semana, aplicando todos los conceptos aprendidos.
Parte 2: Hoja de ruta para convertirte en un programador avanzado
Ahora que has aprendido los fundamentos de la programación, el siguiente paso sería pensar en qué camino de la programación quieres aprender más. Hay muchos caminos que usted puede aventurarse en una vez que haya comprendido los fundamentos de la programación, con las principales y más populares vías de ser Ingeniería de Software & Analítica de Datos.
Analítica de Datos
¿Qué es la analítica de datos?
La analítica de datos es la ciencia de examinar los datos en bruto para concluir nueva información. Implica la aplicación de un proceso algorítmico o mecánico para obtener información. Por ejemplo, examinar varios conjuntos de datos para buscar correlaciones significativas entre ellos.
Entonces, ¿por qué deberías aprender analítica de datos? El Big Data es el futuro. Se está generando a un ritmo exponencial, y muchas empresas están haciendo uso de esos datos para tomar mejores decisiones, así como para verificar y refutar teorías o modelos existentes. Se espera que la demanda de analítica de datos crezca en el futuro, ya que los datos serán el núcleo del proceso de toma de decisiones en muchas empresas.
¿Cómo puedes aprender analítica de datos gratis?
He peinado los planes de estudio de las universidades y he ideado un camino para intentar equiparar los cursos online gratuitos con los cursos universitarios. Sin embargo, todos estos cursos están en Python, si quieres aprender en un lenguaje diferente, no dudes en consultar otros cursos.
Esquema de los módulos de Data Analytics
El esquema se basa en general en los módulos universitarios. Sin embargo, estoy excluyendo algunos de los módulos importantes como Estructura de Datos y Algoritmo que las universidades enseñan, ya que esos son más conceptuales y de nivel superior.
Nota: He puesto el aprendizaje de máquinas más arriba en la prioridad, ya que le permite hacer uso de las habilidades que aprendió en los cursos fundamentales.
Cursos Fundamentales
Módulo 1: Aprendiendo los Fundamentos de Python (1 Mes)
- Aprendiendo la sintaxis de Python
- Aprendiendo Bucles
- Aprendiendo Programación Orientada a Objetos
Módulo 2: Preprocesamiento de datos, visualización de datos, análisis exploratorio de datos (1 Mes)
- Aprender a hacer uso de las librerías de python (matplotlib, numpy y pandas)
- Estas librerías permiten manipular los datos
Cursos Avanzados
Módulo 3: Aprendizaje automático (2 meses)
- Requisito previo: Álgebra Lineal
- El Aprendizaje Automático es un curso bastante técnico de matemáticas
- Python tiene una librería bastante completa para el Aprendizaje Automático llamada Scikit-Learn.
- Si quieres un enfoque más práctico para aprender el aprendizaje automático, puedes consultar Kaggle Learn.
Cursos de herramientas del mundo real
Módulo 4: Bases de datos (SQL) (1 mes)
- El curso de bases de datos básicamente te enseña cómo se almacenan los datos y cómo puedes recuperar esos datos para realizar funciones de programación.
- El conocimiento de las bases de datos y SQL es imprescindible si quieres convertirte en un científico de datos.
Módulo 5: Cursos de herramientas del mundo real
- Hadoop & Map-Reduce + Spark(elige uno) (1.5 meses)
- Estas son herramientas de Big Data que la industria utiliza comúnmente para procesar grandes cantidades de datos.
- El aprendizaje de las tecnologías Hadoop le dará una gran cantidad de conocimientos fundamentales, teoría y habilidades prácticas. Además, usted puede encontrar algo nuevo usándolo.
- Spark es la implementación moderna de Hadoop y está viendo un caso de uso creciente.
Módulo 6: Data Storytelling (1 Semana)
- Presentar la historia con los datos es el eslabón que le falta al profesional de la analítica para entregar la esencia de las señales de los datos y los insights a los ejecutivos, la gerencia y otras partes interesadas.
Cursos opcionales
- Estructura de datos
- Algoritmo
- Aprendizaje profundo
- En cinco cursos, aprenderás los fundamentos del Aprendizaje profundo, entenderás cómo construir redes neuronales y aprenderás a liderar proyectos de aprendizaje automático con éxito. Practicarás todas estas ideas en Python y en TensorFlow, que te enseñarán.
- Es uno de los mejores cursos de deep learning que hay. Actualmente, estoy en medio de hacer este curso y estoy de acuerdo con las críticas ya que se presenta de una manera sencilla y clara a pesar de que el Aprendizaje Profundo es un tema técnico.
- Otro gran recurso gratuito es fast.ai
Cosas que hay que evitar mientras se aprende Analítica de Datos
El escollo es que sólo estás aprendiendo pero no aplicando el conocimiento. Una forma de aplicar mis conocimientos es comenzar un proyecto después de cada módulo que he completado. En el caso de Data Analytics, puedes esforzarte en una competición de tu elección de Kaggle. Utiliza Kaggle Learn como guía útil
Ingeniería de Software
¿Qué es la Ingeniería de Software?
En pocas palabras, la Ingeniería de Software es básicamente utilizar conceptos de programación para construir aplicaciones