No creo que estés cometiendo un error, sino que deberías preguntarte qué más necesitas aprender para poder hacer una aplicación real.
Por ejemplo, supongamos que debe escribir un programa que elija a una persona al azar de una lista dada como:
persons = [“joe”, “john”, “carla”, “cloe”, “bob”]
Al usar los idiomas que aprendió, debería poder escribir algunas líneas de códigos de manera que cada vez que se inicie el programa, se imprima un nombre en la pantalla.
- ¿Cuántos años tomará aprender completamente todos estos instrumentos?
- ¿Cuál es el proceso de aprendizaje más rápido y efectivo?
- Cómo aprender sistemáticamente la ciencia política.
- ¿Cuál es la mejor y más rápida manera de acceder a la escala de propiedades en el Reino Unido?
- ¿Qué lenguaje natural es el más fácil de aprender?
Si no puedes hacer eso. Vuelve a los libros y busca las piezas que faltan.
Bien, ahora vamos a suponer que la lista es grande, muy grande. Es posible que desee utilizar una base de datos. Entonces, en lugar de usar una lista simple, que generalmente se denomina estructura de datos, se “conecta” a algo como SQLite. Entonces, va a necesitar y usar una “biblioteca” que proporcione conexión a esa base de datos. Intenta hacer eso. (Opcional, es posible que desee escribir otro programa que agregue nombres al azar en dicha base de datos).
Ahora que sabe cómo dividir su programa e introducir una “capa de datos”, puede administrar los datos y la lógica del programa de forma independiente.
Pero desde el punto de vista del “usuario final” no hay diferencia en este punto, si ejecuta el programa desde una consola, obtiene un nombre impreso.
Ahora es posible que desee que sea elegante. Me gusta, muestra el nombre elegido al azar en una página web.
En un “programa real” como ese, empiezas a agregar marcos y bibliotecas a un punto donde las líneas de código que escribes son un porcentaje muy pequeño de tu aplicación. ¿Por qué?, Porque cuando solicita una página a una dirección, un programa debe estar escuchando allí. Sea capaz de manejar la solicitud, aprenda cómo dar la respuesta y un montón de cosas más.
Larga historia corta, usamos marcos que resuelven esos problemas y terminas agregando algunas líneas. ¿Cómo hacemos eso?, Leyendo bibliotecas y documentación de marcos, tutoriales y cómo hacerlo. No hay magia aquí, solo ve al marco de tutorial de elección y comienza con el ejemplo de hello world. Luego aprenda sobre su componente y siga leyendo hasta que aprenda lo suficiente como para resolver su problema.
Por ejemplo, si está usando Python, puede usar Django Web Framework para hacer su aplicación. Si quieres ver qué aspecto tiene una aplicación similar hecha con Django para elegir nombres al azar, puedes echar un vistazo a TEDx-Sorteo, una aplicación que hice hace unos años con Django que hace exactamente eso, elegir nombres al azar y Ya que es una aplicación de la vida real, puedes verla trabajar en este video transmitido.
Intenta aprender Django y escribe el programa que escoge a una persona al azar.
Una vez que hagas eso, podríamos querer hacer el cliente móvil. Dijiste que conoces Java, así que podríamos intentar hacerlo en Android porque, ¿por qué no? :).
En el mundo móvil, normalmente tiene una situación muy particular en la que la pantalla del usuario está en el teléfono y los datos no están en el teléfono. Por ejemplo, en una aplicación meteorológica, el teléfono no tiene idea de los datos meteorológicos, por lo que, de alguna manera, el dispositivo se conecta a una API, que funciona de manera similar al servidor web que te dije antes.
Así que tienes que dividir tu aplicación en diferentes capas que se ejecutan en diferentes máquinas y conectarte entre ellas. La capa que tiene los datos tiene que ser capaz de aceptar solicitudes y dar respuestas. La capa que tiene la Interfaz de usuario, tiene que capturar la interacción del usuario y poder ejecutar los comandos.
No necesita escribir esta capa de datos por sí mismo desde cero, ya que “Los buenos programadores saben qué escribir. Los grandes saben qué reescribir (y reutilizar) ”y aún mejor si lo que necesita hacer ya está construido. Entonces, podría utilizar una herramienta como Firebase que puede almacenar sus datos en la nube y acceder a ellos desde una interfaz estándar que le permite acceder a sus datos almacenados a través de la red.
¿Cuándo fue al último enlace? ¿Es intimidante o no recibe nada? Ok, primero ponte tranquilo y profundo. Segundo, acostúmbrate, eso es parte de aprender a programar. En tercer lugar, busque una guía de introducción y haga lo mismo que hizo con el cliente web. Aprenda la herramienta y juegue con ella hasta que se familiarice lo suficiente como para poder escribir su propio programa usándola.
En este punto, tenemos un programa de consola, un cliente web y si escribes una interfaz de usuario para Android, tenemos el móvil. Entonces, por el poder que me da mi teclado, te declaro un desarrollador web, móvil y en la nube de la vida real. ¡Felicidades!
A lo largo de este camino, tomé algunas decisiones para que usted lo haga más fácil y le dé un camino muy concreto. Pero siempre hay “más de una forma de hacerlo”, así que, por ejemplo, en lugar de usar la pila nativa de Android para hacer su cliente móvil, podría usar Kivy, que es un marco de código abierto para crear aplicaciones móviles con Python.
Pista extra
En internet hay muchos servicios que te permiten acceder a la información. Por ejemplo, Microsoft tiene un servicio llamado Office365 que le permite acceder a información de grupos empresariales, por ejemplo, correos electrónicos, obtener listas de personas en diferentes equipos, etc. Entonces, en lugar de crear su propio repositorio de datos, podría consumir la ‘lista de personas’ para su aplicación desde uno de esos servicios. ¿Y adivinen qué? Hice eso hace unos años en un Hackathon de Android y con ese sencillo programa lo gané.
Aquí está el código de la aplicación para Android, está escrito en Java y si quieres divertirte, aquí está el video que lo muestra.
Una última cosa
No te desanimes. Muchas de las cosas que te dije que hicieras me llevaron muchos años. Hay una gran diferencia entre poder escribir algo y dominarlo, por lo que la programación es un camino de aprendizaje de la vida, ¡asegúrate de disfrutarlo!
Espero que esto te ayude y te deseo una feliz codificación!