¿Cómo equilibra un programador la codificación y el estudio para la superación personal?

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.

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.

Me gusta la respuesta de Stephens, y creo que haría algo similar si tuviera el poder para hacerlo. Sin embargo, también agregaría que las habilidades pueden no estar directamente relacionadas con su trabajo ni necesariamente necesitarlas, llamémoslas capacitación / conocimiento amplio.

Por lo tanto, estas habilidades de amplitud podrían ser sobre cómo mejorar la comprensión del software, las habilidades gerenciales, la comunicación (por ejemplo, maestros de brindis), las ventas o los requisitos. El hecho de que esté fuera de alcance no significa que no sea beneficioso. Diablos, no puedo contar cuántas veces mi sólida formación artística ha ahorrado miles de dólares a mis empleadores anteriores o mejorado las presentaciones de última hora / he podido explicar ideas complejas a través de imágenes.

Ahora, para mejorar mis habilidades, a menudo tomé la educación en mis propias manos … Leyendo en mis descansos, cuando tenía tiempo libre, educación continua, asistiendo a reuniones, etc. Si algo era pertinente para la empresa, le preguntaría a la gerencia, si veían valor, me animarían / ​​me financiarían o dirían que no … Y a quién le importa si dijeron que no porque tú lo preguntaste

Manténgase en la pelota y no confíe en los demás. La pelota puede fallar y, a menos que tengas una unión que te proteja … No tienes suerte.

¡Pero! La verdadera pregunta es si la programación es tu trabajo, cómo lo equilibras con tu vida personal, tus relaciones, etc.

Los programadores de mi tienda generalmente tienen tiempo en el trabajo para participar en actividades de aprendizaje. Esto incluye nuestro patrocinio de educación formal en colegios y universidades locales, campamentos de codificación o la compra de libros y cursos de video. Esto, por supuesto, depende de asignaciones de trabajo y si la educación satisface nuestras necesidades. No pagamos por habilidad o extensión de habilidad fuera de nuestros requisitos.

Cuando estaba programando, me dedicaba al autoaprendizaje. De nuevo, principalmente lo que se necesitaba para el trabajo. Lo hice después de horas en mi propio tiempo. Dediqué un día de fin de semana a estudiar y trabajar los ejemplos. No puedes creer cuántos errores de codificación hay en los libros.

¿Puedo sugerir algunos cursos en línea en MIT Ingeniería Eléctrica y Ciencias de la Computación para mejorar sus antecedentes y habilidades de codificación?

Cuando estudias para cualquier materia, puedes convertir muchos ejercicios en Asignaciones de programación.

More Interesting

¿Cómo es la vida de una persona que tiene dos o tres trabajos?

SimCity (franquicia de juegos): ¿Cómo equilibran la vida los jugadores?

¿Cómo tener un equilibrio entre la vida laboral y personal cuando estoy trabajando en una startup de alto ritmo? ¿Qué es lo mejor que puedo hacer para manejar esta situación?

¿Cómo pueden las madres solteras que trabajan equilibrar entre el trabajo y sus hijos?

¿Nos volvemos más productivos sin tecnología?

Como padre y trabajador a tiempo completo, ¿cómo puedo encontrar tiempo para mí?

¿Es mejor disfrutar de la vida y trabajar moderadamente en lugar de trabajar extremadamente duro para tener éxito y perderse algunos momentos únicos en la vida?

Equilibrio entre la vida laboral y personal: ¿Qué es mejor para un ingeniero Java experimentado de nivel medio en Bangalore, Goldman Sachs o ThoughtWorks?

¿Cómo es la presión en una startup menor que en una MNC?

Estoy planeando un viaje por carretera para visitar los cuatro rincones de la India. En el camino, me gustaría difundir la conciencia sobre alguna causa social. ¿Cómo puedo hacer eso?

¿Cómo es el equilibrio trabajo-vida para un ingeniero mecánico en ONGC e IOCL?

¿Cómo ha influido tu escuela en tu vida y te ha preparado para un mundo laboral?

¿Qué principios básicos de economía, juego, equilibrio y aspecto social hicieron de World of Warcraft y League of Legends éxitos internacionales como juegos masivos en línea?

¿Vale la pena trabajar en un bufete de abogados de primer nivel, dado el terrible equilibrio trabajo / vida? ¿Cuáles son los pros y los contras? ¿Cuántas horas a la semana estamos hablando?

¿Cómo tengo una vida equilibrada? Por ejemplo, para tener una vida sana, mental, social y genuina, ¿cómo encuentro esa línea?