¿Como estudiar? ¿Cómo puedo ser bueno en la programación?

¿Cómo ser un mejor programador? Aquí hay doce consejos:

Diciendo # 1: 10,000 horas

Hay un dicho que tarda 10.000 horas en hacer algo para dominarlo.

Por lo tanto, para dominar la programación, puede tardar 10.000 horas en codificar activamente o pensar en la codificación. Eso se traduce en un esfuerzo constante que se extiende a lo largo de varios años.

Diciendo # 2: Sin límite de velocidad

Hay otro dicho que acabo de leer, que me inspiró a escribir esto, que dice “no hay límite de velocidad”.

En ese post, Derek Sivers afirma que un chico talentoso y generoso llamado Kimo Williams le enseñó la teoría musical durante 2 años en cinco lecciones. He estado aprendiendo a programar durante 2 años y, a pesar de que he hecho grandes progresos, mi proceso ha sido lento e ineficiente.

No tuve un kimo williams. Pero ahora que sé un poco, intentaré emularlo y te ayudaré a aprender más rápido compartiendo mis 12 lecciones principales.

Primero daré los consejos, luego, si tienes curiosidad, un poco más de historia sobre mi propio proceso.

Los 12 consejos

  1. Empezar No te sientas mal por no ser un programador experto todavía. En 10.000 horas, estarás. Todo lo que necesitas hacer es comenzar. Dedique algo de tiempo cada día o semana para marcar las cosas de esta lista. Puede tomar todo el tiempo que desee o moverse tan rápido como desee. Si has decidido convertirte en un gran programador, ya has logrado la parte más difícil: plantar la semilla. Ahora solo tienes que agregar tiempo y tus habilidades florecerán. Si necesita ayuda con alguno de estos pasos, no dude en enviarme un correo electrónico y haré todo lo posible para ayudarlo.
  2. No te preocupes No se deje intimidar por lo mucho que no entiende. Las computadoras todavía son en gran parte mágicas incluso para mí. Todos sabemos que las computadoras son fundamentalmente de 1 y 0, pero ¿qué diablos significa eso realmente? Me tomó mucho tiempo entenderlo, tiene algo que ver con voltajes y transistores. Hay un sinfín de temas en informática y términos interminables que no entenderás. Pero si sigues con eso, al final casi todo se desmitificará. Así que no pierdas el tiempo ni te estreses preocupándote por lo que no sabes. Vendrá, confía en mí. Recuerde, todos los grandes programadores a la vez NO tenían IDEA qué era el ensamblaje, ni un compilador, ni un puntero, ni una clase, ni un cierre, ni un transistor. Muchos de ellos todavía no! Eso es parte de la diversión de este tema: siempre estarás aprendiendo.
  3. Silicon Valley . Simplemente al mudarse a Silicon Valley, tiene al menos: 10 veces más programadores con los que hablar, 10 veces más oportunidades de trabajo en programación, 10 veces más reuniones de programación, etc. No tienes que hacer esto, pero te hará moverte mucho más rápido. El primer año de mi carrera de programación fue en Boston. El segundo año fue en san francisco. He aprendido a un ritmo mucho más rápido en mi segundo año.
  4. Leer libros En diciembre de 2007 gasté unos cuantos cientos de dólares en libros de programación. Compré como 20 de ellos porque no tenía idea de por dónde empezar. Me sentí culpable de gastar tanto dinero en libros en ese entonces. Mirando hacia atrás, valió la pena cientos de veces. Leerá y aprenderá más de un buen libro de bolsillo de $ 30 que en docenas de blogs gratuitos. Probablemente podría explicar por qué, pero ni siquiera vale la pena. Según mi experiencia, los datos son tan claros que tratar de explicar por qué es así es como tratar de explicar por qué la pizza sabe mejor que el brócoli: estoy seguro de que hay razones, pero pruebe la pizza y estará de acuerdo conmigo.
  5. Consigue mentores . Solía ​​crear sitios web para pequeñas empresas. A veces mis clientes querían algo que no sabía hacer, cosas simples como las formas. Solía ​​buscar en Google las respuestas, y si no podía encontrarlas, ¡me asustaría! No hagas eso. Cuando te metes en la cabeza, haz ping a los mentores. A ellos no les importa, confía en mí. Algo que pasarás 5 horas entrando en pánico para aprender les tomará 2 minutos explicarte. Si no conoces a ningún buen programador, siéntete libre de usarme como tu primer mentor.
  6. Orientado a objetos . Este es el “idioma” en el que se codifica el mundo. Así como los hombres de negocios se comunican principalmente en inglés, los programadores se comunican principalmente en términos orientados a objetos. Términos como clases e instancias y herencia. Eran completamente, completamente, completamente extraños y aterradores para mí. Me enfermaron el estómago. Luego leí un buen libro (Object Oriented PHP, Peter Lavin), y lentamente practiqué las técnicas, y ahora lo comprendo totalmente. Ahora puedo comunicarme y trabajar con otros programadores.
  7. Publicar código . Si mantienes un diario privado y escribes la frase El auto es verde, puedes seguir escribiendo eso cientos de veces sin darte cuenta de su mala gramática, hasta que encuentres la forma correcta de hacer las cosas. Si escribes eso en un correo electrónico, alguien te corregirá instantáneamente y probablemente no cometas el error nuevamente. Puede acelerar su aprendizaje de 1 a 2 órdenes de magnitud compartiendo su trabajo con otros. Es vergonzoso cometer errores, pero la única manera de volverse grande es andar a través de un pantano de vergüenza que huele asquerosamente.
  8. Utilice github . El término control de versión solía asustarme. Heck, todavía puede ser bastante críptico. Pero el control de versiones es crucial para convertirse en un gran programador. Todos los demás desarrolladores lo usan, y no puedes convertirte en un gran programador codificando solo, así que tendrás que empezar a usarlo. Por suerte, estás aprendiendo en un momento ideal. Github ha facilitado mucho el aprendizaje y el uso del control de versiones. Además, Dropbox es una gran herramienta que tu madre podría usar y, sin embargo, tiene algunas de las potentes funciones de uso compartido y control de versiones de algo como git.
  9. Tratate a ti mismo Construye cosas que crees que son geniales. Construye cosas que quieras usar. Es más divertido trabajar en algo que te interesa. Programar es como cocinar, no sabes si lo que haces es bueno hasta que lo pruebas. Si algo que cocina sabe a comida de perro, ¿cómo lo sabrá a menos que lo pruebe? Construye cosas que vas a consumir por ti mismo y estarás más interesado en hacer que el sabor no sea como la comida para perros.
  10. Escribe ingles El código es sorprendentemente más parecido al inglés que a la matemática. Gran código es fácil de leer. En grandes funciones de código, archivos, clases y variables se denominan bien. Los comentarios, cuando son necesarios, son concisos y útiles. En gran código, el lenguaje y el vocabulario no son elitistas: es fácil de entender para el lego.
  11. Sé prolífico . No pintas la Mona Lisa gastando 5 años trabajando en 1 pieza. Usted crea la Mona Lisa pintando 1000 obras diferentes, una de ellas eventualmente es la Mona Lisa. Escriba aplicaciones web, aplicaciones de iPhone, aplicaciones de Javascript, aplicaciones de escritorio, herramientas de línea de comandos: tantas cosas como desee. Comience un pequeño proyecto nuevo cada semana o incluso todos los días. Eventualmente, tiene que encontrar un equilibrio entre cantidad y calidad, pero cuando es joven, la meta debe ser la cantidad. La calidad vendrá a tiempo.
  12. Aprende Linux . La línea de comandos no es fácil de usar. Tomará tiempo y mucha repetición para aprenderlo. Pero, una vez más, es lo que usa el mundo, necesitarás al menos un conocimiento básico de la línea de comandos para convertirte en un gran programador. Cuando te vuelves bueno en la línea de comandos, es realmente genial. Apreciará cuánto de lo que dependemos hoy se escribió a lo largo de algunas décadas. Y se sorprenderá de lo mucho que puede hacer desde la línea de comandos. Si usas Windows, consigue CYGWIN! Acabo de encontrarlo hace unos meses y es mucho más fácil y rápido que ejecutar instancias de Linux virtualizadas.

En primer lugar, no me considero un programador experto, pero sí puedo responder mejor a esto.

1. Concéntrese en escribir programas simples y limpios, no lo llene con funciones adicionales que lo hagan parecer agitado.

2. Concéntrese en los conceptos básicos (como los algoritmos, etc.) porque si tiene un buen control de los conceptos básicos, puede compensar fácilmente los programas competitivos.

3. Si eres un principiante, comienza con lenguajes de programación como C, C ++ porque es el núcleo de los lenguajes modernos. Te permite acceder a los huesos pelados de tu computadora.

4. El Internet tiene todas las respuestas a su pregunta. Hay sitios web como Code academy, Code Chef, SPOJ, Codeforces, Topcoder, Hacker Rank, Tutorial Points, etc. Eso te ayuda a crecer. Empieza a codificar allí.

Por fin, diría, Maximiza tu tiempo para codificar. Trabaja muy, muy duro.
Sí, sé que a veces es difícil romper tu cerebro cuando recibes errores, pero sigue esforzándote. Código como loco.

Espero que esto ayude.

Saludos.

Ya he escrito una entrada de blog con respecto a esto. Siga este enlace – ¿Cómo sumergirse en la programación?