¿Debo aprender a codificar para crear solo un gran proyecto y no volver a preocuparme de codificar después?

Eso no es como funciona, me temo.

Aclaremos: este error en particular es muy común y comprensible, así que lo aclararé un poco aquí. Piensas que aprender a codificar significa que tomas un libro o dos, o algunos tutoriales de Internet, y haces los ejercicios para … puedes estar pensando en una semana o unos meses. Luego, para su proyecto, simplemente planifica toda la lógica que desea hacer y cómo encaja todo, y luego se sienta y lo codifica.

Si esto fuera cierto, habría mucha más tecnología por ahí. Desafortunadamente, no lo es, pero la idea es prominente entre los no codificadores de todas las franjas (y algunos codificadores novatos también).

Lo que estás sugiriendo se vería así.

Recoges tu primer libro y repasas todos sus ejercicios en un par de semanas. Felicidades, ahora sabes Python! (O, si no has hecho tu investigación, Java).

… Algo así. Conoces la sintaxis de Python . Eso es como memorizar un diccionario de francés y un libro de texto lleno de oraciones en francés, y nunca hablarlo.

Ahora te sientes bastante confiado, por lo que podrías tratar de profundizar en tu gran proyecto, pero digamos que no te parece fácil. En este punto, la mayoría de las personas comienzan a buscar otro libro, pero por casualidad o juicio, ya has descubierto que eso tampoco será suficiente. Así que intenta escribir algunos programas más simples. ¡Hombre! ¡Es más difícil de lo que parecía! Las cosas no funcionan … olvidas los grandes trozos de la sintaxis que aprendiste y tienes que buscarlos nuevamente … utilizas un único signo de igual donde debería haber un doble y te cuesta encontrar el error durante doce horas seguidas.

Cuando finalmente se ejecuta, no hace lo que quieres. Así que vuelves y lo arreglas. Y luego lo arreglas de nuevo. Y otra vez. Eventualmente, funciona como querías, pero ahora te sientes bastante desmoralizado: si esta cosa tan simple fue tan difícil de trabajar, está empezando a hacer que ese gran proyecto se parezca al Monte Everest.

Pero piensas que has llegado demasiado lejos para detenerte ahora, así que intentas escribir cosas más pequeñas de nuevo. Lo mejora, puede hacer que haga lo que quiera en un espacio de tiempo más corto ahora y se siente bien hasta que se lo muestra a un programador más experimentado. Él le dice que sus diseños son ineficientes y que necesita pensar mejor en la estructura de su programa, o será terriblemente lento, con errores y difícil de mantener. También le informa acerca de todas estas mejores prácticas para escribir código, pautas de estilo, todo esto que no ha escuchado pero que es crucial para que el código sea más fácil de leer. Él sugiere que lea un código de GitHub para encontrar ejemplos, intente modificarlo y ver si los proyectos de código abierto aceptarán sus cambios.

El hecho es que usted tampoco podría aprender el idioma metafóricamente francés al hablarlo solo con usted mismo. Debes hablar con otras personas y dejar que te digan lo que estás haciendo mal, y escucharles hablar francés y aprender con el ejemplo.

A estas alturas, ¿qué, seis meses en? Podrías renunciar; se ve como un proyecto mucho más largo de lo que esperabas. Pero supongamos que el proyecto le ha dado algún tipo de Síndrome de Estocolmo deformado, o incluso, tal vez, está disfrutando de escribir código. De cualquier manera, sigues adelante. Y te mejoras. Y te mejoras.

Finalmente, sientes que estás listo para asumir tu proyecto. Se siente como un recuerdo lejano, pero todavía quieres ir por él, así que te arremangas, amontonas tus libros de referencia y empiezas.

Usted codifica un prototipo. Funciona, y te hace sentir bien tener una prueba de concepto, pero también lo estás mirando y viendo cómo apesta en todas las formas imaginables. Ni siquiera entendiste bien el problema, ¡estás resolviendo algo incorrecto!

Comienzas de nuevo. Esta vez es mejor, pero todavía te hace temblar con todas las formas en que podría mejorarse. Te pones a trabajar en arreglarlo.

Ha pasado casi un año desde que compró su primer libro, y desde entonces ha trabajado en sus habilidades de codificación casi constantemente. Estás listo para lanzar tu programa al público.

El público encuentra errores. También piden características nuevas y diferentes. Esperemos que lo hayas codificado lo suficientemente bien como para que sea fácil de cambiar, y simplemente lo suficiente como para poder detectar todos los nuevos errores que no encontraste.

Pensaste que tu trabajo había terminado, pero ahora tienes una base de usuarios y ellos quieren cosas de ti. Debe mantener su programa seguro frente a los crackers que desean robar los datos de sus usuarios. Tienes que mantenerlo actualizado y los errores parcheados. Exige tu atención, como un cachorro quejándose de salir. Y si no dejas salir al cachorro, lo más probable es que se orine en tu alfombra.

Este es el camino a la programación.

Su pregunta implica que subestima la habilidad y el esfuerzo que implica aprender a programar bien, no intencionalmente, pero hasta que lea esto, parece que no entendió todo lo que un buen programador debe hacer para convertirse en un buen programador. La mayoría de las personas no lo hacen, porque es un mundo tan extraño para muchas personas.

Si necesita que se haga este proyecto, contrate a alguien que ya haya aprendido y que le guste hacer este tipo de cosas. Pero ten cuidado de no infravalorarlos. No sabes por lo que han pasado para llegar allí.

Edit: Bueno, está bien, ahora que has actualizado los detalles …

Aquí está el trato.

La codificación es difícil y frustrante y no a mucha gente le gusta o (en consecuencia) es buena en eso. Es difícil y frustrante incluso si te gusta. Sin embargo, si te gusta, también es muy divertido entre lo difícil y lo frustrante. Sin esa diversión, es casi imposible ser bueno en la codificación. Con esto, la codificación se vuelve adictiva y no se detiene. Así es como se convierte en un pasatiempo de toda la vida.

Seis meses a un año para aprender solo es una línea de tiempo razonable si realmente disfrutas de la codificación. Mi línea de tiempo era optimista, una situación ideal. Implicaba que estabas lo suficientemente dedicado a la práctica todos los días, que tomabas todos los giros correctos en tu curva de aprendizaje, que no pasaba nada importante en tu vida (enfermedad, nuevo trabajo, universidad, etc.) y que te gustaba lo que estabas haciendo. o fueron decididos / lo suficientemente tercos para verlo a través.

Si no te gusta la codificación, olvídalo.

Si lo hace, espere de seis meses a dos años. Por que dos Porque tal vez no aprendes la tecnología correcta al principio. Tal vez la tecnología correcta cambie mientras aprendes. Tal vez tu vida se encuentre con un gran obstáculo. Tal vez caigas en la trampa de saltar de un libro a otro y no salir a codificar cosas por su cuenta. (Hice eso por un tiempo; todavía lo estoy superando).

Si no cree que solo el APRENDIZAJE puede tomar de seis meses a dos años, incluso para aquellos de nosotros que disfrutamos de la programación, no me la quiten. Tómelo de Eric S. Raymond, un programador experimentado que ha estado haciendo esto durante décadas. etapa larvaria

Y eso es solo aprender. Eso no es (necesariamente) en realidad la codificación de su proyecto. Lo que también llevará más tiempo de lo que piensas. Pero en ese caso, ciertamente no te detendrías después de tu One Big Thing. Querrías seguir, porque disfrutas lo que estás haciendo. Si no lo disfrutas, no aprenderás en absoluto; Te quemarás intentando.

Sin embargo, puedes comenzar tu gran proyecto mientras aún estás aprendiendo. Es una gran manera de aprender. Pero si te topas con grandes paredes (por ejemplo, no has progresado en una semana o dos), eso significa que no has aprendido lo suficiente.

Intenta codificar. Si te gusta, ve por ello. Pero no creas que puedes parar después; es adictivo Si no te gusta, aprende diseño gráfico o algo que necesite tu proyecto, y hazte amigo de algunos programadores. Tal vez puedas inspirarlos a unirse a ti.

Buena suerte.

¿Aprendería a pintar para que puedas crear una gran obra maestra enorme y no pintar nunca más?

¿Aprenderías a tocar la guitarra para tocar en el Hollywood Bowl y nunca volverás a tocar?

Se trata de la misma analogía.