Leer libros, mirar videos y revisar tutoriales es muy fácil. Tomar notas y aprender el material puede ser un poco más difícil, pero aun así, cualquier persona con un cerebro decente y bastante interés, es bastante fácil (sin mencionar que es divertido).
La cuestión es que realmente no te prepara para escribir un programa completo o sitio web. Digamos que son esos adolescentes (solo en la escuela secundaria, no hay cursos de informática o programación verdaderos (nivel universitario) y no tienen experiencia en el mundo real), y salen con Groupon. O incluso Mark Zuckerburg, seguro de que era un genio, y que era un programador muy capaz ... ¿pero cómo?
¿Cómo recomienda que las personas que no son necesariamente nuevas en la programación, pero nuevas en la programación de aplicaciones reales y programadores reales se encarguen de desarrollarla? ¿Cuál es el "proceso de desarrollo", especialmente para programadores individuales (o tal vez 2-3 adolescentes)?
Además, en lo que respecta al desarrollo web, ¿cuál es el proceso? ¿Se escribió algo como Facebook o Groupon con un marco (como CodeIgniter o Zend para PHP)? ¿O desarrollan sus propios marcos? No estoy preguntando cómo llegar a una gran idea, sino cómo implementar grandes ideas de manera efectiva. ¿Alguien tiene consejos?
He leído un par de libros sobre C y C ++ (principalmente el lenguaje de programación C y el lenguaje de programación C ++) y he tomado AP Computer Science (además de leer algunos libros adicionales sobre Java y OOP). También he leído algunos tutoriales sobre PHP (y CodeIgniter) y Python. Pero todavía estoy en la escuela secundaria, y técnicamente ni siquiera tengo la edad suficiente para trabajar en una pasantía durante unos meses más.
Reading books, watching videos, and reviewing tutorials is all very easy
. Sí, leerlos es fácil, comprenderlos es la parte difícil.Respuestas:
Hay una diferencia entre simplemente saber programar y saber estructurar un programa (arquitectura de software).
Un libro simple sobre un lenguaje de programación específico solo le enseñará las herramientas que puede usar para configurar la arquitectura de un programa.
También hay libros que lo ayudan con la arquitectura de software. Los temas que debe buscar son patrones de diseño , abstracción de software , arquitectura / diseño de software y muchos más ... ( Head First Design Patterns fue una verdadera revelación para mí).
Para un conjunto más amplio de recursos, esta pregunta puede interesarle.
Aún así, la mejor manera de aprender cómo estructurar adecuadamente un programa completo es tener experiencia práctica al hacerlo, estar muy abierto a sugerencias y nuevas técnicas mientras lo hace.
fuente
Es el mismo problema muy común con el desarrollo de juegos (indie): cómo terminar.
Aparte de asegurarse de que puede hacerlo, ya sea porque tiene todo el conocimiento requerido o está dispuesto a aprender, y verificó que otras personas verificaron que no era imposible ...
... lo principal que hace posible el "acabado" es establecer objetivos .
Los objetivos son el objetivo a alcanzar, no deben describir cómo llegar allí, solo cuáles son los requisitos / características básicos que necesita para considerar una primera versión de su aplicación como "terminada". Además, no establezca objetivos demasiado lejos en el tiempo.
Escribe tus objetivos en alguna parte. Escribelo.
Una vez que haya establecido los objetivos, tendrá que encontrar formas de alcanzarlos. Ese es el famoso "camino" que es más interesante que la llegada. No te preocupes por llegar a las paredes y descubrir cuán equivocado estarás. La mayoría de las veces, si el tema es nuevo, se equivocará y aprenderá por qué y podrá hacerlo bien y se habrá preparado para acercarse a los objetivos.
Incluso en el diseño del juego, sabemos que debes proporcionar objetivos para asegurarte de que el jugador sepa, incluso de manera abstracta, lo que necesita lograr, sea cual sea la forma en que lo hace.
fuente
Leer mucho sobre la natación no lo convierte en un nadador. Por supuesto, prepara uno con el conocimiento requerido, para convertirse en un nadador tienes que saltar al agua.
Veo que muchas personas que simplemente lo hicieron antes de pensar / leer acerca de hacerlo son las que tienen éxito.
Si quieres ser un nadador simplemente salta al agua y aprende a nadar, si quieres ser un programador solo comienza a programar con una idea y aprende a programar.
Creo que el ensayo de Peter Norvig es relevante aquí: enséñate a programar en 10 años
fuente
Parece que te enfocas demasiado en los aspectos de implementación del software, que es solo una fracción de todo el proceso de desarrollo de software (ver SDLC). Es posible que deba mirar algunas metodologías de software y aprender a usar una que le guste. Aparte de eso, lea los estudios de casos, descubra las ventajas y desventajas de cada herramienta que consideraría usar también en su software, evalúe y avance desde allí. Después de una lectura rápida de su pregunta, es posible que deba centrarse en las áreas de Análisis y Diseño del software, y aprender sobre UML, descomposición y quizás algunos patrones de diseño ... tal vez ...
Espero que esto ayude..
fuente
Respuesta corta, establece tus objetivos y comienza.
No hay ningún libro o forma de enseñarte esto, sino experiencia práctica.
Cometerás muchos errores y gradualmente ganarás experiencia. Entonces, si se encuentra con un problema, piénselo, intente encontrar una solución y, si falla, vaya a stackoverflow y obtenga ayuda. También tenga revisiones de código tan pronto como sea posible.
Después de terminar su primer proyecto y tener una buena comprensión de los problemas técnicos, comience a buscar temas más abstractos y de mayor nivel de ingeniería de software.
Con su conocimiento recién adquirido de problemas comunes, obtendrá los conceptos abstractos de los libros de tener código limpio y desacoplado, porque su primer proyecto será un desastre imposible de mantener.
Libros (sospechosos habituales):
fuente
En este punto, debe dejar de leer sobre programación y comenzar a programar. Si desea crear un sitio web, siga un tutorial para el marco de su elección. Solo elige uno que te atraiga. Siga el tutorial para aprender a usar el marco, luego comience a construir su propia aplicación web.
Después de escribir un código, los libros sobre técnicas de programación tendrán mucho más significado.
fuente
Cuando salgas y trates de escribir algunos programas que quieras vender, te recomiendo que leas este ensayo de Joel Spolsky sobre "La capa de abstracción de desarrollo".
http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html
fuente