Mirando hacia atrás en mi carrera y mi vida como programador, había muchas maneras diferentes de mejorar mis habilidades de programación: leer código, escribir código, leer libros, escuchar podcasts, ver screencasts y más.
Video: ¡Eleva tus pensamientos, Eleva tu vida!
Siempre pensé en mí mismo como un programador bastante atractivo. Luego, un nuevo tipo, llamado Aaron, fue contratado en nuestro equipo. Aaron era obviamente mucho mejor que yo en la mayoría de las áreas. También era más joven que yo. Me hizo darme cuenta de que realmente no había mejorado mucho en los últimos años. Era un hacker ad-hoc, y mediocre en eso.
- Cómo equilibrar mi estudio y otras cosas sociales e interesadas en mi vida de ingeniería
- ¿Cómo equilibro mi trabajo y relación?
- ¿Qué es mejor de acuerdo con el salario, el estatus social y el equilibrio entre la vida laboral y personal, un trabajo bien remunerado en multinacionales o profesorado en las mejores universidades como el MIT?
- ¿Cuáles son los horarios de una mujer trabajadora y cómo equilibra su vida familiar y laboral?
- A pesar de que el IRS ofrece un mejor equilibrio entre la vida laboral y personal, ¿por qué las personas buscan trabajos agitados como IAS, IFS o IPS?
Escribir código es extremadamente fácil; cualquier otra persona que conozca puede hacer eso. Pero leer el código de otra persona y descubrir lo que hace fue un mundo completamente nuevo para mí.
En serio, mi cerebro funciona mucho mejor cuando estoy en forma. Los problemas se vuelven más fáciles y menos abrumadores, burlarse es mucho menos una tentación, y trabajar las cosas paso a paso no parece una tarea tan ardua.
Soy un gran admirador del sistema “aprender un lenguaje de programación cada año”. Un año le da suficiente tiempo para superar el sesgo de “está bien, conozco la sintaxis, así que ahora sé el idioma”, y lo obliga a ir un poco más lejos y comprender lo que es beneficioso en ese idioma, y programar en un estilo nativo para ese lenguaje (con lo cual quiero decir, no terminas escribiendo aplicaciones java usando la sintaxis Ruby). Cada lenguaje cambiará su forma de pensar acerca de la programación. Sabía cómo usar la recursividad, pero pensar en la recursión no sucedió hasta que tomé una clase de prólogo (imagino que un lenguaje funcional como ML tendría el mismo efecto).
Comience un proyecto de mascotas. Mi ecuación personal para un buen proyecto de mascota es, algo con lo que tenga experiencia + algo que no = aplicación que le resulte útil. Por ejemplo, Migratr (mi propio proyecto de fin de semana con cafeína convertido en curso) comenzó como “Sé C #, pero nunca he codificado contra una API web”. Y quiero mover todas mis fotos a Zooomr ”. Podría haber sido tan fácilmente como “he codificado contra las API web antes, pero no sé C #”
Publicar su proyecto de mascota es una experiencia educativa increíble en sí misma. De repente, todo lo que prácticamente nadie enseña, pero se supone que todos deben saberlo (para mí fue configurar su propio sistema de prueba, aprovechar al máximo los sistemas de control de versiones, cómo mantener el ritmo cuando nadie más establece sus plazos, cómo interactuar con su usuarios y cómo saber cuándo decir “no” a las solicitudes de funciones), todas esas cosas salen a la superficie y te obligan a auto-educarte en un nivel que no estabas antes, al menos no leyendo distraídamente las llamas en dzone sobre el Pros / contras de la forma de hacer las cosas “foo” vs “bar”.
Hacer estas dos cosas cubre ambos extremos del espectro. Aprender un nuevo idioma te hará un mejor programador. El proyecto favorito te hará un mejor desarrollador: P
Creo que lo más importante que puede hacer es hacer un esfuerzo consciente para mejorar. No hay una sola bala de plata, debe seguir buscando nuevas fuentes de información, nuevas experiencias y más práctica.
Y la segunda cosa más importante, piensa en lo que estás haciendo, por qué lo estás haciendo y cómo puedes hacerlo mejor. Lo mismo con proyectos anteriores. Mire hacia atrás a lo que ha hecho y cómo podría hacerlo de manera diferente ahora. Piense en lo que podría haberse hecho mejor o en dónde podría mejorarlo.