He realizado revisiones significativas a esta respuesta para atender a las tecnologías más nuevas, así como a caminos más potentes para el aprendizaje de la programación y el desarrollo. Está disponible en Medium como una serie de tres partes. Encuéntrelo aquí:
Enseñe a usted mismo la programación y el desarrollo web: Parte 1
Me introdujeron por primera vez a la codificación en mi noveno grado.
Nos enseñaron el lenguaje de programación C
Y lo odiaba absolutamente.
Simplemente no pude entender la sintaxis. Todo era griego y latín para mí. Los puntos y coma, las palabras clave extrañas (int, char, etc.) me lastiman los ojos. No tenía sentido. Tanto es así que solía memorizar todo el código en mi libro de texto para aprobar mis exámenes.
Había desarrollado una aversión hacia la informática.
Luego, en el 11º grado, me dieron la opción de elegir entre Ciencias de la computación y Dibujo de ingeniería como mi quinto tema.
En ese punto del tiempo, este último parecía ser el pan comido. Pero al ver a todos mis amigos elegir CS, no sabía lo que me había pasado y elegí CS también,
A pesar de mi profundo odio hacia el tema.
Y entonces, todo cambió. Me gustaría compartir lo que pasé y sentí que era perjudicial cambiar completamente mis puntos de vista hacia la codificación.
General
1. Consigue un buen maestro.
Sí, hay muchos libros increíbles por ahí que cubren todo lo que podrías querer saber como programador.
Pero no hay sustituto para un buen maestro.
En mi noveno grado, mi maestra nos dijo que #include tenía que ser la primera línea de cada programa de C Tenía que haber un punto y coma después de cada asignación.
¿Por qué? Porque ella lo dijo.
Mi maestra de 11º grado profundizó en el meollo de la cuestión de por qué C y C ++ emplean su sintaxis aparentemente extraña.
¿Por qué los archivos de encabezado tenían que ser ‘incluidos’? Por qué las variables tenían que ser prefijadas con un tipo de datos. ¿Por qué se requieren puntos y comas?
Yo estudio en DCE, y francamente, la forma en que se enseña la programación aquí es muy decepcionante (como mi maestra de noveno grado).
Esperan que capten el patrón de cómo se escribe el código y lo dupliquen y manipulen de acuerdo con las necesidades del programa.
Estoy seguro de que este debe haber sido el caso con usted.
Porque si realmente hubieras entendido por qué y cómo C ++ hace las cosas, no habría parecido tan difícil. Al menos, no en un curso de nivel introductorio de CS.
Si no puedes conseguir un buen tutor personal, te sugiero que te registres en el curso CS50 de Harvard en la plataforma edX.
El instructor del curso, David Malan, es simplemente el mejor maestro que he conocido. La forma en que enseña Ciencias de la Computación es alucinante.
Terminé 12 semanas de material de curso en una semana. Fue adictivo. Y probablemente he aprendido más en ese período de tiempo que en todos los cursos de CS a los que he asistido en la universidad juntos.
2. practica
Has visto el programa ‘Hola Mundo’.
Lo encuentras muy simple. También puede pasar a la siguiente parte del curso.
Incorrecto.
Te detienes justo ahí. Y escribe el código en tu editor de texto. Cambia el texto de salida. Preguntar al usuario y saludar en consecuencia. Tinker con cada pieza de código que escriba.
¿Aprendió cómo sumar dos números?
Bueno. Ahora réstalos. Multiplícalos. Divídelos.
Bucles aprendidos?
Practica la salida de patrones de fantasía. Calcular factorial de un número.
¿Matrices aprendidas?
Imprime la suma de los primeros mil números. Implementar la multiplicación de matrices.
La única manera de ser un gran programador es mediante la práctica.
No estoy de acuerdo con la idea que tienen las personas de que algunas personas son simplemente ‘dotadas para la codificación’. Simplemente no es verdad. Al principio, algunos de los programadores más increíbles que conozco tuvieron dificultades con el código. Pero la práctica incesante los convirtió en virtuosos del arte.
Una plataforma realmente buena para practicar la codificación y familiarizarse con la programación competitiva es CodeChef (Concurso de programación, Concurso de programación, Programación de computadoras en línea). Inténtalo 🙂
Desarrollo web
Lea esto solo si está interesado en el desarrollo y diseño web.
Si está bien versado en un lenguaje de programación como C, C ++ o Java, el desarrollo web es realmente un pedazo de pastel.
Ni siquiera sabía HTML cuando me uní a la universidad el año pasado. Y en un lapso de un semestre, logré aprender todas las tecnologías web necesarias para construir un sitio de redes sociales en pleno funcionamiento.
Así es como me fui enseñando desarrollo web. Por supuesto, diferentes personas lo han abordado de diferentes maneras. Sin embargo, este enfoque, si elige seguirlo, tiene una curva de aprendizaje muy suave y es quizás el menos desalentador.
1. Aprender HTML y CSS
Son lenguajes utilizados para estructurar y diseñar tus páginas. Y como no son lenguajes de programación en sí, los encontrará extremadamente fáciles de entender.
Dos recursos que recomiendo ampliamente son el libro ‘Head First HTML & CSS’ y el curso en línea ‘HTML & CSS’ ofrecido por Udacity.
El libro -> Head First HTML y CSS: Elisabeth Robson, Eric Freeman: 9780596159900: Amazon.com: Libros
El curso -> Aula – Udacity
2. Aprende JavaScript y jQuery
Ahora que sabe cómo crear páginas web estáticas, es hora de aprender cómo agregarle algo de interactividad. Ingrese JavaScript y su biblioteca más popular, jQuery.
Una vez más, sugiero encarecidamente los títulos de Head First y los cursos de Udacity.
Además, puede probar los proyectos en Codecademy (Aprenda a codificar).
Libros -> Programación en JavaScript de Head First: Eric T. Freeman, Elisabeth Robson: 9781449340131: Amazon.com: Libros
Head First jQuery (Guías amigables con el cerebro): Ryan Benedetti, Ronan Cranley: 9781449393212: Amazon.com: Libros
Cursos -> Curso básico de JavaScript para principiantes
Introducción a jQuery
Aprender los idiomas mencionados no es realmente tan difícil.
Me tomó alrededor de 2 meses comprenderlos bien y, una vez que terminé, usando solo lo que había aprendido de los recursos enumerados, pude construir esto: Sección de Dramática
Lo que me lleva a mi tercer punto …
3. Construye un sitio web
No puedes llamarte exactamente un “desarrollador web” si no has creado un sitio web desde cero.
Entonces, con su nuevo conocimiento, siga adelante y cree el sitio web que desee. Podría ser su sitio web personal, un blog o un sitio web relacionado con una causa o un grupo (como el que construí).
Una vez que hayas terminado con esto, ¡felicidades! Ahora puedes llamarte un desarrollador de front-end.
4. Aprender SQL y un lenguaje de scripting de servidor backend
Ahora, está listo para pasar a la construcción de sitios web mucho más complicados, como los sitios de redes sociales como Facebook, sitios de microblogging como Twitter o sitios de comercio electrónico como Amazon y eBay.
Ahora tiene la opción de elegir un lenguaje de script del lado del servidor. Casi todos los desarrolladores en mi universidad saben más de uno.
Los idiomas más populares en este momento son Python, Ruby, PHP y Node.js
i) Python
Python es uno de los idiomas más fáciles de aprender. Se asemeja mucho a la lengua inglesa. Y es probablemente el lenguaje más poderoso en este momento. Tiene bibliotecas para casi todo lo que pueda desear, una comunidad extremadamente fuerte y marcos web probados y comprobados como Django y Pylons.
Udacity es un excelente sitio para aprender programación de back-end en Python y Django. En lo que se refiere a los libros, sugeriría Head First Title, el libro en línea de Django y la “Programación de aplicaciones Core Python” de Wesley Chun.
Echa un vistazo a los siguientes enlaces para obtener más información:
Desarrollador Web Full Stack Nanodegree
http://www.amazon.in/Head-First-…
ii) Rubí
Ruby fue construido con la intención de hacer la programación divertida. Ruby es extremadamente flexible y fácil de usar. El framework Rails construido en Ruby es posiblemente el mejor framework web que existe. De hecho, una de las razones principales de la creciente popularidad del lenguaje Ruby se debe a Rails.
El mejor recurso para aprender Ruby on Rails es el tutorial de Michael Hartl (En realidad, construyes un sitio de microblogging como Twitter en todo el libro. ¡Qué bueno!). Lo puedes encontrar aquí:
Tutorial de Ruby on Rails (3ª ed.)
iii) PHP
PHP es el lenguaje de scripting del lado del servidor más popular del mundo. Más de la mitad de la web se ejecuta en PHP.
Pero eso no lo hace realmente un gran lenguaje. PHP se vuelve muy desordenado cuando lo usas en grandes proyectos. Mi consejo sería dar preferencia a Python y Ruby sobre esto.
Sin embargo, si planeas aprender PHP, ‘Head First PHP and MySQL’ sería un buen comienzo (construyes un sitio web de citas en el libro. Bastante bien).
iv) Node.js
Desafortunadamente, no sé mucho sobre Node.js. Es Javascript en el back-end. Es una tecnología relativamente reciente (creada en 2008) y aún se encuentra en una etapa incipiente.
5. Construye otro sitio web
Ahora que ha dominado las secuencias de comandos del lado del servidor, ¡adelante, cree el sitio web que siempre quiso! El cielo es el límite aquí. Hay muy pocas cosas que no puedes hacer con tus nuevas habilidades de Desarrollador Full Stack.
Construí un sitio de redes sociales llamado Retronetonce. Terminé de aprender PHP. Tenía características que siempre quise en Facebook: confesiones anónimas (solo conocerías el sexo del confesor), el número de visitas de hombres y mujeres que obtuviste y un cuestionario que coincidía con la persona más similar del contrario. Género en el sitio.
Desarrollo de aplicaciones
Desarrollar aplicaciones para dispositivos móviles es ligeramente diferente a codificar aplicaciones de navegador.
Sin embargo, Udacity tiene fantásticos programas de desarrollo de Android y iOS de Nanodegree que lo llevan paso a paso para convertirse en un desarrollador profesional.
Puedes encontrar los recursos requeridos aquí:
Desarrollador de Android Nanodegree
Desarrollador iOS Programa Nanodegree
En lo que respecta al desarrollo de Android, el “Desarrollo profesional de Android” de Reto Meier es un recurso bastante completo.
Sin embargo, el desarrollo en este libro se demuestra en el IDE de Eclipse. Los desarrolladores de Android están emigrando cada vez más hacia Android Studio. Por lo tanto, sugiero esperar la última versión del libro, ‘Professional Android’, que creo que saldrá en noviembre de 2015.
Conclusión
¡Uf! Esta es la respuesta más larga que he escrito en Quora. Y es solo apto que tenía que ver con una pregunta sobre codificación.
Mi especialidad en la universidad es en realidad Biotecnología. A pesar de ello, dedico la mayor parte de mi tiempo a escribir software. Y ahí es donde sale la calidad más importante de un codificador.
Sé apasionado por la programación.
Y todo lo demás caerá en su lugar. Tienes que enamorarte del código. Necesitas comer, respirar y dormir código. Solo cuando desarrolles una obsesión con ella, te convertirás en el increíble desarrollador que siempre quisiste verte a ti mismo.
La mejor de las suertes. 🙂
Enviado desde mi teléfono inteligente BlackBerry 10.