Para llegar a tener un nivel alto en el desarrollo de software, tú debes de desarrollar proyectos.

No uno.

No dos.

¡Un montón de proyectos!

Para llegar a ese nivel, debes de empezar haciendo las cosas bien. Si nos lanzamos a cualquier proyecto de manera aleatoria teniendo un nivel de desarrollador inicial o junior, aparte de sentirte fuera de lugar, tendrás dudas sobre si la programación está hecha para ti. Por lo tanto, vamos a trabajar de manera inteligente paso a paso.

Empieza con cosas pequeñas.

Primero, comenzamos desarrollando nuestra confianza desarrollando pequeños proyectos. Luego a continuación otro proyecto pequeño. Después de trabajar en múltiples proyectos pequeños, empezaremos el proceso hacía proyectos algo más grandes, subiendo el nivel poco a poco a medida que nuestra imaginación nos lo permita.

Antes de crear cualquier proyecto, aprende las bases

Si no tienes conocimientos de base, lo único que vas a conseguir es no avanzar mucho por tener una limitación de conocimientos que son útiles en el día a día en cualquier proyecto.

python2

Independientemente del nivel objetivo que tengamos en el lenguaje de Python, es imprescindible que obtengas correctamente las bases del lenguaje antes de lanzarte a cualquier proyecto.

Debes de tener conocimientos en estos apartados:

  • Declaración de variables
  • Obtener información de entrada del usuario
  • Almacenar información
  • Repetir una acción haciendo uso de bucles
  • Escribir funciones para no repetir fragmentos de código con el mismo funcionamiento

Eso es todo lo que se necesita para iniciarse.

Está claro que hay más conceptos que debes de ir aprendiendo dentro de Python, pero estas que menciono son las fundamentales y serán suficientes como para que puedas lanzarte a desarrollar tus primeros proyectos para principiantes.

Hay una sensación equivocada entre mucha gente de que hacer muchos tutoriales le da esa seguridad necesaria para trabajar en cualquier proyecto. La verdad que no es así, los conceptos mencionados arriba son más importantes y con eso tendremos la certeza de ir con buena base.

No lo hagas.

Muchos caen en la trampa de aprender tutoriales de Python consecutivos esperando sentirse súper preparados. En su lugar, debes de aprender los conceptos básicos primero. A continuación, debes de crear algunos proyectos pequeños. Luego, vuelves a aprender con más tutoriales..

Créeme, puedes estar completando 100 tutoriales de Python y no sentirte con la seguridad necesaria para trabajar en cualquier proyecto.

Estudiar únicamente no es la solución.

Necesitas construir.

Cómo utilizar estos proyectos

  • En primer lugar, lea las instrucciones y asegúrate de comprender lo que has leido. Trate de decir lo que has leído con tus propias palabras.
  • Intenta resolverlo por tu cuenta sin pasar por el tutorial de YouTube o el código de ejemplo en Github. Lo más probable es que te cueste y tengas que esforzarte. Eso está bien. Hay que esforzarse. Es la idea principal de la Psicología del comportamiento.
  • Si no has hecho ningún progreso en absoluto, mira el tutorial de YouTube donde esté disponible y luego mira el código de ejemplo. Otra opción útil es buscar en línea para ver más tutoriales de ejemplo y código Python para el mismo problema.
  • Después de revisar lo mencionado, regresa e intenta escribir el código tu mismo sin mirar el tutorial. De nuevo, haz un esfuerzo. Esto también proviene de la psicología conductual. Es algo que se necesita.
  • Hagas lo que hagas, haz el esfuerzo por no copiar carácter a carácter el código del tutorial y luego darte una palmada en la espalda, como si hubieses usado tu imaginación y esfuerzo en crear algo tuyo. Con esto terminaremos antes, pero no habremos aprendido nada de nada. Es mejor dedicarle más tiempo, añadir variantes con nuestra idea y tardar un poco más, aprendiendo bastante más.
  • Si tiene la sensación estar completamente atascado después de muchos intentos, tómese un descanso. Cuando se descansa sobre una tarea, sabemos por la investigación de la neurociencia que su subconsciente continuará aprendiendo. Esto se debe a que su mente ha pasado del modo enfocado al modo difuso.
  • Siempre que resuelvas algo, ¡celébralo! Necesitas aplicar ese refuerzo positivo para construir referencias internas de que lo hiciste. En el futuro, cuando tu mente susurra “no puedes hacerlo” durante un momento de duda, responderás con esta frase: “eso no es cierto, aquí tienes una prueba de lo que he sido capaz de hacer para que ahora también lo pueda hacer”.
  • Repite, repite, repite.

También puede utilizar estos puntos para cualquier proyecto más allá de los que se enumeran a continuación independientemente de la tecnología o reto. Vayamos a los proyectos de Python.

Proyectos para niveles Junior

Aquí hay algunos proyectos para principiantes en los que podremos trabajar:

  1. Par o impar
  2. Juego Mad Libs
  3. Contador de palabras
  4. Información de la biografía
  5. ¿Cuál es el acrónimo?
  6. Piedra, Papel y tijera
  7. Adivina el número
  8. ¿Es palíndromo?
  9. Calculador de propinas
  10. Extractor de correos electrónicos
  11. Generador de letras

Par o impar

Lo primero que vamos a realizar es dar la bienvenida preguntando un número entre 1 y 1000

Cuando el usuario proporciona el número, comprobaremos si es par o impar y después imprimimos el mensaje con el resultado.

Ejemplo:

  • Mensaje que se muestra: ¿En qué número estás pensando?
  • Entrada: 25
  • Salida: ¡Es un número impar! ¿Puedes añadir otro?

Juego del Mad Lib

Pedimos al usuario que introduzca varias entradas con varias preguntas.

Puede ser cualquier cosa, como un nombre, un adjetivo, un pronombre o incluso una acción. Una vez que se obtiene la entrada, se puede reorganizar para construir su propia historia.

Contador de palabras

Preguntamos al usuario en que está pensando. Cuando se introduce la respuesta, realizará el conteo de palabras en la sentencia e imprimimos en la salida el resultado.

Ejemplo:

  • Pregunta: ¿En qué estás pensando?
  • Entrada: Bien, hoy es el día en el que me voy a crear un desarrollador experto
  • Salida: ¡Muy bien, tu me has mostrado tu pensamiento en 15 palabras!

Para llevar esto a cabo, vamos a crear un fichero de texto y añadimos una unas frases, y contamos cuántas palabras tiene y lo imprimimos.

Aquí tenéis código fuente en Github.

Información de la biografía

Pregunte a un usuario su información personal en una sola ronda de preguntas. Luego hay que verificar que la información que se ha ingresado sea válida. Finalmente, se imprime un resumen de toda la información que ha sido ingresada.

Por ejemplo: ¿Cuál es su nombre? Si el usuario ingresa *, hay que indicar que la entrada es incorrecta y se pide que se ingrese correctamente un nombre válido.

Cuando se introduce todo correctamente, se muestra un resumen como el que aparece a continuación:

- Nombre: John Doe
- Fecha de nacimiento: Jan 1, 1954
- Dirección: 24 fifth Ave, NY
- Metas personales: To be the best programmer there ever was.

¿Cuál es mi acrónimo?

Vamos a pedir al usuario que ingrese el significado completo de una organización o concepto y con ello como resultado obtendremos el acrónimo. Por ejemplo:

  • Entrada -> As Soon As Possible. Salida -> ASAP.
  • Entrada -> World Health Organization. Salida -> WHO.
  • Entrada -> Absent Without Leave. Salida -> AWOL.

Rock, Paper, Tijeras

Es un popular juego para dos jugadores. Cualquier jugador puede ejecutar una jugada con sus manos con estas opciones que tenemos disponible  a continuación:

  • piedra (puño cerrado)
  • papel (mano plana)
  • tijeras (un puño con el dedo índice y el dedo medio extendidos, formando una V)

Aquí tenéis disponible un video de youtube donde se crea este juego en Python.

Adivina el número oculto

Debemos de preguntar al usuario un número entre 1 y 50.

Si añaden un número fuera de ese rango, vamos a indicar con un error que anime a elegir un número dentro del rango adecuado..

Si no acertamos el número oculto, preguntaremos al usuario si queremos seguir jugando, introduciendo un nuevo número o queremos dejar de jugar.

Finalmente, cuando el usuario acierta correctamente el número oculto, mostramos un mensaje de enhorabuena y mostramos el número de intentos que hemos utilizado para llegar a esta situación.

A continuación os dejo el enlace a este video en Youtube de como crear un programa en Python con la mecánica de este juego.

Es palíndromo

Animamos a los usuarios a introducir cinco palabras. Después comprobamos cuáles son palabras palíndromas o no.

¿Qué es un palíndromo? Es una palabra que podemos leer de la misma manera desde la izquierda a la derecha y viceversa.

Ejemplo:

  • madam es palíndromo.
  • También lo es malayalam.
  • En el caso de  geeks no lo es.

Aquí tenéis disponible el código de ejemplo en Github.

Calculador de propinas

En este caso, nuestro objetivo es averiguar exactamente la cantidad de propina que hay que proporcionar después de un servicio. En este caso, hay que solicitar la factura total. Con esto, aplicaremos la propina para el 18%, 20% y 25%.

Ejemplo:

  • Mensaje inicial: ¿Cuál es la factura total de hoy, por favor?
  • Entrada: $55.87
  • Salida: La propina aplicando el 18% is $10.06, que contabiliza un total de $65.93

Recordemos que queremos ser amable, por lo que no olvidemos redondear. Para impulsar esta funcionalidad, vamos a preguntar por la cantidad de personas involucradas, para dividir la propina de manera equitativa y el coste total entre esas personas.

Por darle otro punto de vista, prueba a añadir dividiendo de manera desigual, para poner en práctica estos aspectos (por ejemplo, una persona paga el 70% de la factura mientras que la otra paga el 30%).

Extractor de información del correo electrónico

Recopile una dirección de correo electrónico del usuario y luego averigüe si el usuario tiene un nombre de dominio personalizado o un nombre de dominio popular. Por ejemplo

Recopilamos una dirección de correo electrónico del usuario y luego vamos a averiguar si ese email tiene nombre de dominio personalizado o un nombre de un dominio popular. Por ejemplo:

  • Entrada: mary.jane@gmail.com
  • Salida: Hola Mary, estoy viendo que tu email está registrado con Google. ¡Eso es genial!.
  • Entrada: peter.pan@myfantasy.com
  • Salida: Hola Peter, estoy observando que estás utilizando un dominio personalizado de myfantasy. ¡Impresionante!.

Este es un proyecto de Python que tiene mucho uso en el futuro. El programa le ayuda a obtener el nombre de usuario y el nombre de dominio de una dirección de correo electrónico.
Podemos ampliar esto más, donde podemos personalizar la aplicación y enviar un mensaje al anfitrión con esta afirmación.

A continuación el tutorial en Youtube y el código de ejemplo en Github.

Generador de letras

Pedimos a un usuario que elija una canción de una lista de 10 canciones. Cuando el usuario lo hace, imprime la letra de la canción que seleccionó.

Por ejemplo:

Bienvenido, por favor, selecciona una canción de este top de 10 canciones:

1. Baby by Bieber
2. Hotline Bling by Drake
3. Flawless by Beyonce
4. Fall by Eminem...
Has seleccionado "Flawless by Beyonce". Te mostramos la letra a continuación:

------- Flawless by Beyonce ------------
I'm out that H, town coming coming down
I'm coming down, drippin' candy on the ground
H, Town, Town, I'm coming down, coming down
Drippin' candy on the ground...

Pulsa * para hacer una nuva selección.

Para llevarlo más lejos, y darle más complejidad, tenga al menos 3 canciones del mismo artista.
A continuación, pide al usuario que ponga el nombre del artista para que pueda mostrarle solo las opciones de ese artista. Luego, el usuario puede seleccionar una canción específica de esa lista.

Para finalizar

Al trabajar en estos proyectos, es posible que se te encuentres con algún obstáculo y que te desanimes. Está bien. Lo superarás.

Tenlo presente, tómate un descanso y vuelve a hacerlo más tarde. También puede leer estas historias de desarrolladores de todo tipo de orígenes que lo lograron para motivarse y seguir adelante.
El desarrollo de software es un campo desafiante. Eso si, con esfuerzo, con muchas recompensas.
Si tantos otros lo han hecho, tú también puedes hacerlo.

Gracias por leerme

Si te ha gustado este artículo, hay más.

  • Accede a mi email de la comunidad: Comparto técnicas para que los nuevos programadores y desarrolladores junior crezcan más rápido y dupliquen su confianza. Si estás interesado, accede a la comunidad.
  • Sígueme en Twitter: ¿Quieres más consejos rápidos? ¿O tienes una pregunta? Soy más activo en Twitter, así que no dudes en comunicarte conmigo. Mi bandeja de entrada siempre está abierta para mensajes directos.

Atención: me encanta la investigación, así que tiendo a respaldar mis consejos y mi enfoque con conceptos de la psicología del comportamiento y la neurociencia.

Traducido del artículo de Endy Austin - 11 Python Projects Junior Developers Can Build for Coding Practice