¿Puedes ver tu producto terminado cuando cierras los ojos? Estoy seguro que sí. Bien, que ves? ¿Alguien está usando tu aplicación en su teléfono? ¿Niños que usan su sitio web en las computadoras de su escuela? ¿Oficinas que utilizan su producto basado en la nube para realizar el trabajo?
Su visión del producto terminado debe guiarlo con respecto a muchas decisiones técnicas. ¿Cómo es eso?
- ¿Ves una aplicación? Es posible que deba aprender sobre programación para Android / iOS / Windows. Java para Android, Swift para iOS, C # / C ++ / Javascript para Windows.
- ¿Ves un sitio web (y un backend de soporte)? Es posible que desee ver Javascript, HTML / CSS, Node.js, AWS, bases de datos no relacionales, entre otras cosas.
- ¿Ve el sistema procesando una gran cantidad de datos? Es posible que desee ver Hadoop, entre otras cosas.
- ¿Su aplicación / sitio web / servicio funciona con otras aplicaciones o servicios? Echa un vistazo a sus API de desarrollador. Ejemplo: Bienvenido a la API de Uber
Puede aprender el idioma / tecnología requerida de varias fuentes, como Coursera, Udemy o Codeacademy, por nombrar algunas.
- ¿Qué desafíos enfrentan los equipos de desarrollo de software al escalar?
- ¿Las aplicaciones de Facebook, Twitter, Skype, Quora, Instagram, etc. son solo un conjunto de programas?
- ¿Qué tecnologías necesito saber para DevOps?
- ¿Cómo es trabajar en OPOWER?
- ¿Qué software de monitoreo de empleados de código abierto es gratuito (o realmente barato)?
Hay dos cosas en las que debe centrarse aquí:
- Aprendiendo sobre Desarrollo de Software / Programación
- Diseñando y construyendo tu idea
Afortunadamente, el proceso de aprendizaje para ambos tiene cierta superposición.
Echa un vistazo ¿Cómo puede un principiante aprender a desarrollar software? también.
En algunos casos, la plataforma o el entorno en el que se desarrolle le enseñará el diseño para esa plataforma. Ejemplo: si crea una aplicación para iOS / Mac, se verá obligado (principalmente) a usar el patrón de diseño Modelo-Vista-Controlador (MVC). Por supuesto, también puede aprender sobre los procesos de desarrollo de software formalmente, como han mencionado otros.
A medida que aprenda la tecnología, estará en una mejor posición para comprender y decidir cómo proceder con la implementación de su idea. No tengas miedo de intentar y fallar; hacer tutoriales de codificación, crear una aplicación (¿Cuáles son algunos ejemplos de buenos proyectos iniciales para un programador universitario?) o un sitio web en la plataforma de su elección; leer libros sobre patrones de diseño; y seguir aprendiendo