Respuesta a una consulta recibida, que es extensa, pero que hemos resumido en el título ¿Son importantes los fundamentos de programación? ¿Por qué? ¿Por dónde empezar? y que pensamos puede ser de interés para muchas personas que se plantean formarse como programadores.
Gracias por escribirnos y por tus comentarios. Lo que nos cuentas sobre tu web de clasificados para tu ciudad y una persona que supuestamente es experta y luego no lo es es más común de lo que te imaginas. La realidad es que ser experto en desarrollo web requiere muchos años de dedicación y una capacidad innata para la programación y análisis de problemas que muy poca gente llega a conseguir. La consecuencia es que mucha gente dice ser experta pero luego hay muy pocos verdaderos expertos. También hay que tener en cuenta la complejidad de los desarrollos web. Esta complejidad es tal que las grandes empresas dividen el trabajo: diseñadores, maquetadores, programadores, analistas, consultores de bases de datos, etc. crean los desarrollos web. Es difícil conseguir una persona que sepa de todas estas materias al mismo tiempo (por eso no se encuentran a los supuestos expertos).
Las oportunidades de negocio en internet son muchas, pero tienes que tener en cuenta que al igual que tú hay miles de personas que lo intentan o han intentado montar sitios web con éxito y la realidad es que sólo 1 de cada mil lo consigue, y no sólo debido a que la idea sea buena o mala o que se disponga de un programador bueno o malo, influyen muchos factores.
Aprender programación como reconoces requiere mucho tiempo.
La pregunta de si es adecuado empezar con fundamentos de programación te voy a dar una idea para que la respondas tú mismo. Imagina que te apasionan los rascacielos (la programación web) pero no sabes nada de construcción (fundamentos de programación). Te planteas aprender a construir rascacielos, pero no sabes lo que es el hormigón, ni un cimiento, ni un pilar, ni el momento en sentido físico, ni la torsión, ni la esbeltez, ni el pandeo... Empezarás a estudiar cómo construir un rascacielos y cuando te hablen del pandeo no sabrás bien a qué se refiere. Podrás resolver un problema concreto, pero no entenderás del todo bien qué es lo que hay detrás: el por qué, el cuándo es adecuado aplicar un método u otro. No tendrás una visión de conjunto. Podrás aprender a construir rascacielos, quizás lo consigas y seas muy bueno, pero lo más probable es que la falta de base haga que no tengas una comprensión global de lo que haces, y esto probablemente te lleve a ser un profesional normal o mediocre, no un experto reconocido. A todo esto le ponemos el <<probablemente>>. Mark Zuckerberg, el fundador de Facebook, abandonó los estudios y se dedicó a hacer lo que quería hacer y punto. El quizás no dedicó demasiado tiempo a los fundamentos y fue al grano. Pero estas historias <<probablemente>> no son aplicables a la mayoría de la gente. En la vida diaria son raros casos de este tipo.
Nuestra opinión es que para ser eficientes en programación web hacen falta fundamentos, o al menos a la mayor parte de la gente nos hacen falta fundamentos. Es verdad que no hay que entretenerse en conocer el origen del universo y los fundamentos físicos de la electricidad porque eso nos puede quitar mucho tiempo y tener poca aplicación práctica. Pero los fundamentos básicos... son básicos. Sin cimientos no hay edificios.
Nos planteas <<son mas de 6 meses que debo pasar leyendo cosas para recién ahí, entrar en el tema que me gusta...>> Aquí quizás te equivoques: el conocimiento en programación es acumulativo. Desde que empieces a trabajar con programación y sus fundamentos estarás adquiriendo conocimientos que te serán útiles para los desarrollos web. Y llegar a tener un nivel de experto en desarrollos web no se mide en meses, sino en años (para la mayoría de las personas).
Has hecho una consulta extensa y bien escrita y hemos tratado de responder de la misma manera.
Ahora la recomendación. Nosotros recomendamos nuestros libros y nuestros cursos (de la misma manera que cualquier web, centro educativo, etc.).
Para aquellas personas que puedan costeárselo recomendamos empezar con el curso tutorizado on-line "Fundamentos de programación nivel I". Con un curso de este tipo tienes la ventaja de estar tutorizado por un profesor experto (o quizás no experto como Marck Zuckerberg, digamos simplemente con muchos años de experiencia) y esto supone que alguien te coge de la mano cuando vas ciego y te dice por dónde debes ir. Para empezar pensamos que va muy bien, pero es un curso de pago y mucha gente piensa que no resultará una inversión con retorno (sin referirnos a este curso en concreto, nuestra opinión va en sentido contrario, la formación de calidad es la inversión con mejor retorno). La inscripción e información sobre ese curso está disponible aquí:
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=64&Itemid=87Para quien prefiera ir por libre puede optar por empezar con un libro físico o ebook (
https://aprenderaprogramar.com/index.php?option=com_content&view=article&id=693:libro-y-ebook-qaprende-a-programar-con-pseudocodigo-diagramas-de-flujo-y-ejercicios-de-ejemplo-resueltos-en-cq&catid=25&Itemid=211) ó seguir el curso disponible en
http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59. En estos casos recomendamos utilizar los foros (
http://aprenderaprogramar.com/foros) para obtener orientación y ayuda.
Y como es normal, también recomendamos oír más opiniones, tomar en consideración la posibilidad de tomar estudios reglados (que por desgracia muchas veces no tienen la suficiente orientación práctica, pero pueden ser una buena opción para muchas personas) y tener en cuenta que nadie tiene la verdad absoluta (ni Marck Zuckerberg, ni Bill Gates, ni lo aquí expuesto, ni...)
Esperamos que lo aquí escrito ayude a quienes se plantean formarse como programadores.