¿Cómo podría aprender el desarrollo de software (por favor lea la descripción)?

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.

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!

Usted no está cometiendo un error al aprender a programarse, pero al mismo tiempo, está cometiendo un error al confiar únicamente en el autoestudio. El autoestudio es bueno pero solo el autoaprendizaje no es suficiente? Casi 3 de cada 4 programadores son autodidactas, pero al mismo tiempo, les faltan muchas cosas como usted.

Programar no es solo aprender la sintaxis, sino que es una técnica completa para resolver problemas. Por lo tanto, el aprendizaje en línea puede enseñarle cómo codificar, pero no puede enseñarle qué codificar. Tiene 17 años y está interesado en la programación, por lo que le sugiero que no pierda el tiempo pensando que es un error o no, sino que se le admite en algún instituto de programación de ingeniería de software. La Escuela de Ingeniería de Software Holberton en San Francisco ofrece la mejor oportunidad para estudiantes interesados ​​como usted. Todos los cursos de ingeniería de software se imparten. Comienzan desde la creación de conceptos básicos, lo que lo hace perfecto para resolver problemas y luego lo llevan a aprender técnicas de codificación de lenguaje de bajo nivel a idiomas de alto nivel.

Comparando el estudio en la escuela de programación con el aprendizaje en línea, la escuela de programación es mejor. En las clases regulares, le enseñan en serie y hay expertos que lo guiarán y le darán una visión. Entonces, para tener una mejor carrera en la programación, ser admitido en el instituto de programación.

¡A esta edad te va muy bien!
Hay tantos videos y conferencias disponibles en you tube sobre el desarrollo de software, así que empiece a aprender de él. Y también empezar a desarrollar pequeñas aplicaciones como el sistema de gestión de bibliotecas, etc. Si tiene alguna duda, búsquelo en Google o solicite ayuda de stackoverflow.

A partir de la descripción, parece que has tratado de concentrarte en demasiados idiomas, ¡y demasiado pronto! ¡Y, lo que podría haber ocurrido es que podría estar enfocándose más en los elementos sintácticos y en el lenguaje en lugar de resolver problemas ! (Para qué son las aplicaciones del mundo real )

Lo que puedes intentar es elegir uno de los 3 idiomas y comenzar a resolver problemas. Star con aplicaciones pequeñas y sencillas y aumenta lentamente la complejidad. Escribe diferentes tipos de aplicaciones, herramientas y utilidades. Por ejemplo, intente aplicaciones basadas en GUI, programas basados ​​en línea de comandos, apppication que involucre DB o interacción web. Todos estos, y más variedades con el mismo idioma. Piense detenidamente cómo modularizar, cómo hacer que la solución sea lo más clara posible.

No se sumerja en la codificación hasta que esté un poco claro (alrededor del 70%, por ejemplo) cómo deben distribuirse los flujos / submódulos. La razón por la que hago hincapié en no quedarme atascado por el idioma / código, es porque una vez que haya pensado lo suficiente sobre el problema y el enfoque correcto para resolverlo, el código debería aparecer automáticamente (para que eso ocurra, debe tener una Para empezar, hay un dominio sólido de un idioma, de modo que su cerebro se concentre más en la solución que en la sintaxis y la compilación.

No estoy seguro de si todo esto tiene sentido, pero a menos que esté realizando un desarrollo a tiempo completo en el día a día, tratar de trabajar con 3 idiomas [para mí] ¡parece que está arruinando!

Tienes las herramientas. Lo que necesita es un plan, un plan que comience con un problema y le ayude a aplicar la herramienta correcta o una combinación de herramientas para resolverlo.

Únase a hackerrank ( https: // www .hackerrank.com / ) y pase por los desafíos de codificación para mejorar sus habilidades.

Cree un github y manténgalo actualizado con sus soluciones de desafío de código con explicaciones simples en inglés.

A los 17 años, tienes edad en tus manos. Continúe haciendo esto, y dentro de media década podría obtener buenas entrevistas con empresas de productos.