No programo en mi tiempo libre. ¿Eso me convierte en un mal desarrollador?


387

Muchos blogs y consejos en la web parecen sugerir que para convertirse en un gran desarrollador, no basta con hacer su trabajo diario. Por ejemplo, debe contribuir a proyectos de código abierto en su tiempo libre, escribir aplicaciones para teléfonos inteligentes, etc. De hecho, muchos de estos consejos parecen sugerir que si no ama la programación lo suficiente como para hacerlo todo el día, entonces está probablemente en la carrera equivocada.

Eso no suena cierto conmigo. Disfruto de mi trabajo, pero cuando llego a casa de la oficina no estoy de humor para saltar directamente a la computadora y comenzar a codificar hasta la hora de dormir. Solo tengo un cierto número de horas de tiempo libre cada día, y prefiero dedicarlas a otros pasatiempos, ver amigos o salir afuera que frente a la computadora.

Me gusta mucho la programación, y ocasionalmente pirateo fuera del trabajo. Estoy comprometido con mi desarrollo personal y paso tiempo leyendo blogs y libros sobre tecnología como una forma de seguir aprendiendo y mejorando. Pero eso no se extiende tanto como para querer usar todo mi tiempo libre para codificar.

¿Esto significa que no soy un desarrollador de software 'verdadero' en el fondo? ¿Es posible convertirse en un buen desarrollador de software sin hacer más fuera de su trabajo? Estaría muy interesado en escuchar lo que piensas.

Actualización: gracias a todos por sus comentarios y respuestas. ¡Muchos buenos pensamientos y consejos!


133
Creo que eso te hace más normal, probablemente tengas más conexión con lo que los geeks llamamos "vida real". Valora eso.
Orbling

146
@Orbling ¿Cómo es esta "vida real" de la que estás hablando? ¿Es similar a WoW? ¿Se ejecuta en un sistema operativo de 64 bits?
biziclop

18
@biziclop: es como WOW con mejores gráficos y juegos que es mucho más tedioso.
ChaosPandion

39
@ChaosPandion: las misiones son r / l, largas, aburridas, y el botín definitivamente no es épico.
Orbling

44
En aras de la eficiencia, recomiendo experimentar con cosas nuevas y trabajar en proyectos personales cuando se supone que debes estar trabajando. De esa manera, todavía tienes tu tiempo libre limitado. :-)
Carson63000

Respuestas:


446

En mi opinión, esta actitud proviene de personas que tienen trabajos horribles y succionadores de almas, combinados con habilidades de gestión del tiempo pobres. Si básicamente está escribiendo formularios web todo el día, salga y obtenga un trabajo más desafiante, o comience el suyo.

Aquí está la cosa. Un músico de concierto (violonchelista / pianista / lo que sea), practicará como máximo 6 horas por día. La mayoría solo practica unas pocas horas por día. en los niveles más altos

La gente dice que programa más porque aprendes más, pero eso es una cortina de humo. 8 horas por día es suficiente .

El progreso NO es lineal. Es logarítmico:

ingrese la descripción de la imagen aquí

La única razón por la que un músico puede practicar más de 3 horas, es porque necesitan exprimir el 1% adicional que esas horas les dan. Si crees que eso se aplica a ti, resuelve un problema que CS resolvió hace 2 décadas, entonces tienes un complejo prima-donna para arrancar.

He trabajado en compañías de ollas a presión antes, y confía en mí, la cantidad real de trabajo que realizan esos tipos no es mejor que una compañía como 37signals que impone restricciones en la cantidad de trabajo: http://37signals.com / svn / posts / 996-why-i-love-working-with-family-people

Lo que termina sucediendo es que, seguro, puede estar frente a una computadora durante 10-12 horas, y en la oficina por 2 más, pero eso no incluye el almuerzo de 90 minutos que tomó, las 2 horas que pasó navegando por la discusión foros, y la hora de descanso que tuvo que jugar uno de los muchos juegos establecidos en la oficina (futbolín, billar, yada ...).

Mire hacia atrás en ese gráfico. Ahora de vuelta a mí.

Su mente realmente tiene la oportunidad de expandirse mucho más si la involucra en alguna otra actividad: aprender a tocar un instrumento . Aprende un idioma extranjero . Mejor aún, sal y haz algo de ejercicio, y conéctate con personas reales en vivo .

Sobre la naturaleza logarítmica de la productividad:

En el reconocido estudio de jóvenes violinistas de 1993, el investigador de rendimiento Anders Ericsson descubrió que los mejores practicaban de la misma manera: en la mañana, en tres incrementos de no más de 90 minutos cada uno, con un descanso entre cada uno. Ericcson encontró el mismo patrón entre otros músicos, atletas, jugadores de ajedrez y escritores.

Para una productividad real, menos es realmente más

Este es en realidad un principio bien conocido en el mundo de los negocios, me sorprende que más programadores no hayan oído hablar de él.

Actualización: más sobre el estudio de Ericsson.

Toda la noción de que tarda 10.000 horas / 10 años en dominarse en realidad proviene de los estudios realizados por Ericsson, no de Malcom Gladwell.

Como todos sabemos, puedes tener 1 año de experiencia repetido 10 veces ... así que solo tener tu trasero en el asiento durante 10 años no califica. Lo que califica es lo que Ericsson llama práctica deliberada .

Ha descubierto que este principio es válido en el atletismo, la música, la escritura, el ajedrez y las matemáticas. Además, define la práctica deliberada como un esfuerzo tan intenso, que incluso en los niveles más altos solo se pueden realizar unas 4 horas por día . De lo contrario, sufrirá sobreentrenamiento o agotamiento. Nuevamente, reconoce que hay rendimientos decrecientes para la práctica deliberada, hasta aproximadamente 4 horas.

Sobre el tema de no tener un trabajo bueno / desafiante:

Bazofia. O consigue un mejor trabajo, o aquí tienes una idea: convierte tu trabajo actual en algo que no sea , al menos en este momento.

Uno de los mejores programadores que conocí entró en un trabajo como programador de mantenimiento en un sistema heredado que consistía en docenas de programas y cientos de miles de líneas de código. La mayoría de los cuales habían sido pirateados a lo largo de los años tanto que tendrías que decir que ya no tenía ningún diseño coherente.

Este era prácticamente un trabajo sin salida, sin fin. La gerencia quería que mantuvieras la cabeza baja y solo arreglaras los malditos errores. Los buenos desarrolladores estaban trabajando en el proyecto greenfield. La gente vino aquí para sentarse los días restantes hasta que se jubilaron, o ganó algunos años de experiencia antes de pasar al desarrollo de nuevas aplicaciones. Mientras que la mayoría de los programadores se quejarían de la falta de desarrollo profesional, o de la oportunidad de aprender cosas nuevas, o de no tener proyectos interesantes en los que trabajar o, en general, simplemente quejarse de que nadie los habilita , este tipo simplemente se sentó y comenzó a hacer El trabajo que había que hacer.

Y a lo largo de 2 años, había transformado ese sistema de un código de espagueti con errores a algo que era una belleza y funcionaba como un reloj suizo. Tan completa fue la transformación, que el vicepresidente de la división comenzó a prestar más y más atención al proyecto existente y comenzó a cuestionar el valor del proyecto greenfield. Aunque no tenía título, la gente de operaciones acudió a él como el líder de facto del grupo. Cuando me fui, el vicepresidente estaba hablando de crear un nuevo rol para él como arquitecto de sistemas ...

No estoy seguro de lo que le sucedió después de eso, pero él me enseñó un par de lecciones muy importantes:

  1. Tu trabajo es lo que haces, y hay problemas interesantes que resolver en todas partes . Si odia escribir pantallas CRUD, resuelva el problema al generarlas automáticamente.

  2. No te quedes esperando a que te lleguen oportunidades. Lo más probable es que nunca lo harán.


Comentaristas: los comentarios están destinados a buscar aclaraciones, no para una discusión prolongada. Si tiene una solución, deje una respuesta. Si su solución ya está publicada, favor de votarla. Si desea discutir esta pregunta con otras personas, utilice el chat . Consulte las preguntas frecuentes para obtener más información.

30
Esta y muchas otras respuestas ponen demasiado énfasis en la programación como "práctica". Para continuar con la comparación de músicos, lo creas o no, pero en realidad también tocan por placer. Lo que buscan los entrevistadores que buscan a alguien que programe en su tiempo libre no es alguien que siente la necesidad constante de practicar todo el tiempo. Buscan a alguien apasionado y que realmente disfrute lo que hace. Si te apasiona tu trabajo, a menudo también lo conviertes en un pasatiempo, y es difícil alejarte de él. No es diferente de elegir cualquier otro pasatiempo.

77
El ejemplo del músico no es realmente bueno. Cuando un músico alcanza un alto nivel de habilidad, cuando ha aprendido toda la teoría, cuando puede componer canciones con los ojos cerrados, cuando puede tocar más de 9000 instrumentos al mismo tiempo, no tiene nada más que hacer. El programador o ingeniero informático necesita aprender sobre nuevas tecnologías TODA la vida. Siempre hay algo nuevo que aprender. Entonces, respondiendo a la pregunta, un chico que programa todo el día y no tiene vida social es mucho mejor que un chico que no programa en su tiempo libre.

2
@GabrielLlamas Las teorías musicales son cosas básicas como los fundamentos de los algoritmos, la informática distribuida y los sistemas operativos que aprendemos en la universidad. Estos conceptos básicos no cambian tanto el tiempo extra. En unos 20 años ya teníamos el modelo de cliente y servidor, y ahora todavía tenemos el modelo de cliente y servidor. Por lo tanto, lo básico del cliente y el servidor aún se aplica, es solo que las cosas de alto nivel están cambiando rápidamente. Puede pensar en diferentes instrumentos como diferentes tecnologías como HTML, Javascript. Pero si puede aplicar los fundamentos, entonces las cosas serán similares.
David Gao

1
Otro ejemplo es que una vez que sepa cómo programar en c, aprender c ++ no será difícil. Recuerdo que resolví las preguntas de programación de mi compañero de cuarto usando Scheme sin conocer ningún Scheme. El esquema de aprendizaje no fue difícil para mí porque sé, en un nivel alto, qué lenguaje funcional era.
David Gao

150

Hay más oculto en este mensaje.

A muchos programadores entusiastas les gusta explorar cosas, experimentar, seguir sus ideas, así es como aprendemos y obtenemos nuestras habilidades y visión.

Por lo general, no puede seguir sus intereses durante las horas de trabajo. Simplemente haces las cosas que te dicen y eso es todo. Solo algunos de nosotros tenemos la suerte de hacer en el trabajo lo que haríamos personalmente, incluso si no estuviéramos pagados.

Por lo tanto, si no está haciendo nada extra, no está desarrollando su potencial. Y ese es exactamente el problema.


2
wow, eso es un gran alivio, ya que a veces siento que estoy interesado en aprender sobre otros aspectos de la programación, pero el trabajo simplemente hace que todo parezca una rutina.
melaos

3
Cierto. Una cosa a tener en cuenta es cualquier Acuerdo de invención que haya firmado durante la admisión. No los usamos, pero tenía un acuerdo verbal con mis programadores: si es fuera del horario laboral y no compite directamente con la empresa, entonces diviértanse. Ni siquiera me importó si usaban equipos de la compañía, aunque hubo un acuerdo general de que era "más limpio" mantenerlos en casa.
Peter Rowell

3
Está bien seguir tu curiosidad fuera de horario. Eso podría estar en cómo implementar la próxima versión de Windows de forma automática en toda su empresa durante la noche (Mwah hah hah). O puede ser fotografía, cerveza o remo. Los intereses externos te hacen una persona más completa. No tiene que estar relacionado con su trabajo diario.
rapid_now

55
-1 Como otros han señalado en otras respuestas y comentarios, esto implica que no puedes conseguir un trabajo bueno, divertido y desafiante. En mi experiencia personal esto no es cierto. Hasta ahora he aprendido muchas cosas nuevas en la mayoría de mis trabajos. En mi humilde opinión, es una cuestión de actitud personal, al menos tanto como la de la cultura de la empresa.
Péter Török

26
Si le gusta la programación y no disfruta de su trabajo, debe pasar su tiempo libre buscando un trabajo mejor.
nikie

70

No lo convierte en un mal desarrollador, pero desafortunadamente, todavía tiene que competir con los que lo hacen.

Lea esto, del blog de Seth Godin :


Irrazonable

No es razonable levantarse de la cama en un día de nieve, cuando la escuela ha sido cancelada, y convertir el tiempo de inactividad en seis horas de trabajo en un laboratorio de física de crédito adicional.

No es razonable lanzar un producto tecnológico que salte la curva de desarrollo en nueve meses, sacando a la próxima generación mucho antes que competidores más razonables.

No es razonable que una compañía de camiones conteste el teléfono al primer timbre.

No es razonable comenzar una nueva compañía sin la tranquilidad que el dinero de riesgo puede aportar.

No es razonable esperar que el consultorio de un médico tenga un personal de recepción agradable y servicial.

No es razonable alejarse de un buen concierto en la economía actual, incluso si desea hacer algo valiente y original.

No es razonable que los maestros esperen que podamos permitir que los niños desfavorecidos del centro de la ciudad tengan un buen desempeño en la escuela secundaria.

No es razonable tratar a sus colegas y competidores con respeto dada la presión bajo la que se encuentra.

No es razonable esperar que cualquier persona que no sea una gran mujer, alguien con impulso y ventajas, pueda hacer algo importante en un mundo donde la baraja está en contra de la gente común.

No es razonable dedicar años de su vida a hacer un producto que la mayoría de la gente nunca apreciará.

Afortunadamente, el mundo está lleno de personas irracionales. Desafortunadamente, necesitas competir con ellos.


13
Sí, tampoco es razonable trabajar 8 horas al día y luego ir a casa a trabajar un poco más. ¿Para quién estás trabajando? ¿Y por qué? Debe responder esas preguntas (¿quién paga? ¿Por qué? ¿Para obtener qué?) Si está mentalmente agotado al final de un día, lo mejor que puede hacer por usted mismo es otra cosa.
rapid_now

37
Asume que los desarrolladores no son desafiados en el trabajo y no disfrutan de su trabajo. No es verdad. Las personas que solo programan en el trabajo no programan en casa porque ya están completamente satisfechas
Nadie

8
-1 porque a) las citas no están directamente relacionadas con esta pregunta, b) OMI (la mayoría de) estas cosas no son irracionales en absoluto. Mucha gente razonable puede pensar a largo plazo y a corto plazo. OTOH, la mayoría de nosotros tenemos experiencia en inventar explicaciones racionales agradables (y falsas) para nuestra pereza / incompetencia / descuido :-(
Péter Török

13
-1 No es razonable decir que muchas cosas razonables no son razonables. No agrega nada a la pregunta y suena bien, principalmente como muchas cosas que escribe Seth Godin.
Vitor Py

55
"No es razonable esperar que el consultorio de un médico tenga un personal de recepción agradable y servicial". No, no es. Lo que no es razonable es que los médicos cobren lo que hacen y luego nos sometan a personal grosero de la oficina, largas esperas en las salas de espera de sus oficinas y sean irrespetuosos personalmente.
GreenMatt

57

Para responder a la pregunta planteada: No programar en tu tiempo libre no te convierte en un mal desarrollador, sin embargo, programar en tu tiempo libre puede hacerte un mejor desarrollador.

La programación en su tiempo libre ciertamente no dañará sus habilidades, pero no debe sentirse obligado a hacerlo. La programación parece ser un campo relativamente único porque para muchas personas es tanto su trabajo como su pasatiempo, por lo que disfrutan de la programación en su tiempo libre.


8
La programación no es única en tenerla como una carrera y un pasatiempo. Un par de ejemplos: una vez supe que varios pilotos de aerolíneas tienen sus propios aviones pequeños que vuelan por diversión. Conozco astrónomos profesionales que miran las estrellas de lado.
GreenMatt

44
Por " relativamente único" quise decir que es uno de los pocos, pero ciertamente no es el único. Conozco a muchas más personas que, si bien podrían disfrutar de su trabajo, no pasarían el tiempo haciendo cuando no se les paga. A menudo es difícil conseguir un trabajo haciendo lo que te apasiona.
shortkaik

1: La tecnología, los lenguajes y las técnicas cambian con tanta frecuencia y tan rápidamente. Los programadores deben pasar un tiempo libre perfeccionando su oficio. // Pregunta relacionada: ¿Te sentirías cómodo con un PCP que no leyó revistas médicas?
Jim G.

Creo que esta respuesta resume mejor la situación. Pero depende completamente de la situación de uno. Si su trabajo satisface todas sus necesidades de programación, en términos de esforzarse, mantenerse al día con la tecnología, etc., hay mucha menos necesidad de trabajar en su propio tiempo. Sin embargo, si su trabajo es bastante fácil, utilizando tecnología más antigua, entonces debería dedicar algún tiempo a mejorar sus habilidades y conocimientos en su propio tiempo.
Nellius

@shortkaik "programar en tu tiempo libre puede convertirte en un mejor desarrollador" - Eso no siempre es cierto. Si tienes problemas en tu trabajo, entonces si también estás programando en casa, eso contribuirá a tu agotamiento y agotamiento más que a tus habilidades, también esto puede dañar tu productividad en el trabajo. Por otro lado, si no está satisfecho con lo que su trabajo le brinda (y le quita), una codificación adicional puede ser una buena decisión.

23

No, no te hace un mal programador. Dependiendo de lo que haga, puede ser un mejor programador a largo plazo. Al principio de su carrera, puede influir en la rapidez con la que aprende la variedad de habilidades que necesita. Sin embargo, es posible que esté adquiriendo habilidades e información que lo ayudarán a largo plazo. Hacer algo de ejercicio tampoco estaría de más.

Hay una buena cantidad de investigación que muestra que el rendimiento alcanza alrededor de una semana laboral de 40. Si bien podemos ser productores por un período de tiempo trabajando más horas, a la larga perdemos eficiencia. La investigación que he visto muestra que las personas que trabajan 80 semanas son tan productivas como las que trabajan 40 horas a la semana.

Hay algunas cosas en las que puede reflexionar sobre las horas de descanso (o encendido) que pueden ayudarlo a desempeñarse mejor:

  • ¿Qué estás haciendo? ¿Puedes hacerlo mejor? ¿Necesitas estar haciéndolo?
  • ¿Que estas aprendiendo? ¿Qué necesitas aprender?
  • ¿Con qué problemas te encuentras? ¿Quién es el mejor para resolverlos? ¿Qué puedes hacer?

La programación como un pasatiempo no significa trabajar después de horas en el trabajo de negocios, esto definitivamente no escala. Pero programar un juego en iPhone en ObjC como hobby puede mejorar sus habilidades y productividad total en el trabajo (si el trabajo es, por ejemplo, escribir aplicaciones financieras en Java EE).
Heiko Rupp

@Heiko True, pero hay muchas otras habilidades además de la programación que pueden hacerte un mejor programador. Un buen desarrollador tiene muchas habilidades además de la programación.
BillThor

Por supuesto :) Me estaba refiriendo especialmente a la "productividad máxima a las 40h", que sonaba como si hicieras una programación de hobby de 5h, solo puedes hacer 35h en el trabajo. Lo que no creo que sea correcto
Heiko Rupp

1
@Heiko Si el trabajo es lo suficientemente diferente, entonces puedes hacer ambas cosas. Mis primeros años después de graduarme, regularmente superaba las 40 horas a la semana, pero aplicaba una amplia variedad de habilidades. Aprendí mucho y no pareció golpear el muro de la actuación. Afortunadamente, tenía un amigo que me arrastraría fuera de la oficina en algún momento de la noche. En otro proyecto, me fui a casa a las 2 p.m. cuando me di cuenta de que no había logrado nada desde las 10 a.m. Todavía facturado las 4 horas.
BillThor

15

¿Es posible convertirse en un buen desarrollador de software sin hacer más fuera de su trabajo?

Seguro.

Puede tomar más tiempo que si pasara horas adicionales perfeccionando su habilidad. También me ha resultado difícil dedicar suficiente tiempo a la superación personal si estoy empleado a tiempo completo y hago poca programación fuera del horario laboral.

Cuando era más joven, dedicaba mucho más tiempo al aprendizaje que ahora. Los conceptos que uso día a día están profundamente arraigados en este punto, y parece más fácil adquirir conocimiento adicional con esta experiencia en mi haber.

Los programadores "buenos" parecen dedicar más horas extra porque son obsesivos por naturaleza, tienden al extremo antisocial del espectro y disfrutan genuinamente de la programación y del ciclo completo de resolución de problemas.


13

En el gran esquema de las cosas, se trata de encontrar el equilibrio adecuado en la vida.

Lo importante es si te gusta la programación y si sigues aprendiendo sin importar en qué nivel estés. El hecho de que usted programe o no fuera del trabajo no lo convierte automáticamente en un programador "bueno" o "malo".

Para dar una perspectiva personal, he estado programando durante unos 25 años (primero de niño, luego profesionalmente). Me encanta

Sin embargo, casi nunca programo fuera del trabajo. Esto tiene que ver con varias cosas:

  • Tengo mucha suerte en que en el trabajo puedo hacer lo que amo, todos los días, todo el día.
  • En pocas palabras, hay otras cosas en la vida y solo hay tantas horas en el día.

-1: Sí, hay otras cosas en la vida, pero eso no responde la pregunta; simplemente estás tratando de convencerte de que estás eligiendo el mejor camino.
Jim G.

9

Puedes convertirte en un buen programador simplemente codificando durante el trabajo, especialmente si manejas bien tu carrera. Sin embargo, los mejores programadores también codifican durante sus horas libres. Dicho esto, una persona que elige buenos trabajos con muchas oportunidades de aprendizaje, usa bien su tiempo en el trabajo, y así será un mejor programador que alguien que codifica en casa porque no puede encontrar trabajos que ofrezcan desafíos interesantes durante el trabajo. día de trabajo

Si bien codificar en casa es valioso, diría que maximizar el valor de su entorno de trabajo (aprendiendo de los compañeros de trabajo, eligiendo buenos trabajos, administrando su carrera agresivamente) a menudo es aún más valioso. Los mejores programadores hacen ambas cosas, además tienen grandes actitudes hacia el aprendizaje y la tutoría de otros.


"Sin embargo, los mejores programadores también codifican durante sus horas libres". No tienes evidencia de esto en absoluto.
djechlin

7

El verdadero problema es si un nuevo desarrollador está codificando lo suficiente (en problemas lo suficientemente desafiantes) para superar unos cientos de miles de líneas de código de práctica y convertirse en un programador decente.

En teoría, esto se puede hacer en el trabajo, o en su propio tiempo, o en ambos. La práctica tiene que ser algo autodirigida, para que pueda aprender lo que necesita aprender. Eso significa trabajo que es un poco flexible.

Muchas veces los trabajos de nivel de entrada son un montón de corrección de errores u otro trabajo que no te va a enseñar a ser bueno. Lo que debe hacer es escribir mucho código desde cero, y ese código probablemente será malo. Es difícil para los empleadores pagar por esto. Es por eso que las personas terminan haciendo un proyecto de código abierto en forma paralela o lanzando una startup o lo que sea.

Cuando la gente dice que tienes que programar en tu tiempo libre, creo que realmente significa que tienes que poder pasar años de práctica significativa desde el principio. Tienes que hacer lo que sea necesario para practicar y aprender a escribir y mantener una gran base de código desde cero. Si nadie le paga por escribir una serie de proyectos probablemente desastrosos desde cero, entonces el tiempo libre es la única opción.

Si ya hiciste la práctica cuando eras joven y te convertiste en un buen programador, no creo que vayas a perder las habilidades básicas si la mantienes de 9 a 5 más adelante. Más tarde, se trata más bien de mantenerse al día con la nueva tecnología que no consume mucho tiempo.

Sin embargo, es un trabajo de nivel de entrada raro que le daría la cantidad y calidad de la práctica por sí solo para convertirse en un buen programador en primer lugar. Un nuevo desarrollador necesita tomar la iniciativa para aprender, no solo pasar el rato en un trabajo de nivel de entrada haciendo tareas de nivel de entrada.

Sería realmente difícil convertirse en un buen programador desde cero si ya tuvieras una familia y estuvieras haciendo mucho hincapié en el equilibrio entre el trabajo y la vida. Del mismo modo que sería realmente difícil convertirse en médico o ser un músico virtuoso o cualquier otra cosa en esa situación. Hay una razón por la cual las personas tienden a completar sus miles de horas de práctica cuando son más jóvenes que cuando son mayores.


5

Si pasara tiempo en los próximos seis meses desarrollando un juego básico en mi tiempo libre y usted no, y suponiendo que todas las demás cosas sean iguales (nunca lo son), ¿quién de nosotros sabría más? ¿Cuál de nosotros tendría más habilidades y experiencia?

Este efecto sería acumulativo, ya que el conocimiento anterior fuera del horario laboral se incorporaría al nuevo trabajo y al nuevo conocimiento fuera del horario laboral.

Y es por eso que la gente aconseja programar en su tiempo libre, por lo que puedo decir.


5

Entre lo bueno y lo malo hay muchos niveles intermedios. No puede convertirse en un gran desarrollador haciéndolo solo 8 horas más o menos al día, posiblemente trabajando en problemas desde un campo muy limitado.

Si su trabajo es lo suficientemente variado, puede volverse "decente" o "realizado" o cualquier adjetivo que prefiera, pero para ser un gran desarrollador, tendría que ser un poco mental, me temo.

Otra razón para hacer programación de pasatiempos es que en un trabajo a menudo tiene que cumplir con estándares subóptimos y hacer compromisos en general e incluso cuando aprende algo nuevo, es posible que no se le permita usarlo.

Y otro más, aún más prosaico, es que cualquier código que escriba en el trabajo es propiedad de su empleador. No puedes volver y aprender de tus viejos errores años después, cuando trabajas para otra persona.


5

Se necesitan 10.000 horas de esfuerzo para convertirse en un experto en cualquier cosa. [Michael Gladwell, "Outliers"]

Por lo tanto, hacer un trabajo adicional antes de llegar a ese nivel lo acelerará en el camino hacia el estado de experto real.

Una vez que haya pasado ese nivel, pasar más tiempo tendrá rendimientos pequeños / decrecientes.


3
Pero, ¿qué es una "cosa" en algo? ¿Es "programación" una sola "cosa", o son las cosas "haskell", "lisp", "java", "python", etc.? ¿O "programación funcional", "programación GUI", "programación de bajo nivel", etc.? Por sí mismo, eso no nos dice nada.
André Paramés

4

No deberías verlo como "¿Me hace un mal programador" porque, como cada habilidad, más práctica solo hace que uno sea mejor.

Entonces, si desea ser mejor de lo que es actualmente y aprender nuevas tecnologías y dominios que su trabajo no permite, ahí es donde el esfuerzo extra y el tiempo invertido son útiles.

Pero pasar más tiempo codificando (solo para demostrarle a alguien que codifica extra) no necesariamente significa que se convierta en un buen programador a menos que aprenda lo que hace y haga algo diferente o mejore lo que ya sabe, en lugar de cortar / copiar / pegar a ciegas y armar hacks. Dedicar horas extra y hacer lo mismo una y otra vez de ninguna manera creo que te ayudará a mejorar.


Creo que el punto de OP es que algunos programadores difunden la idea de que si no programa fuera del trabajo, entonces es un mal programador. Perdí la cuenta de la cantidad de veces que he visto publicaciones en SO, aquí y en otros lugares en las que alguien dice que al entrevistar a un posible nuevo empleado, preguntan qué proyectos secundarios tiene el entrevistado y si la respuesta es "Ninguno ", entonces el entrevistado no se ve tan apasionado por la programación como no se considera para el trabajo.
GreenMatt

+1 - No sirve de mucho si todo lo que haces es lo que ya estás haciendo en el trabajo.
Dunk

Solo practicar solo no te hace mejor, tienes que corregir las cosas correctas para que realmente puedas arraigar los malos hábitos aún más y empeorar.
HLGEM

4

Durante el día su programación es de apuestas cortas. Hay dinero que ganar, sabes exactamente cuánto y para qué, y no tienes mucho más que ganar que un cheque de pago.

Por la noche estás trabajando en apuestas largas, ideas locas que principalmente no funcionarán en absoluto. Estos son los proyectos que lo catapultarán fuera del rango y el archivo. Así es como te conviertes en el inventor de PHP en lugar de usar el código mono.

Entrevisto a muchos programadores, y si han hecho cosas extrañas interesantes fuera del horario laboral es una luz verde instantánea. Es sorprendentemente raro.

Aunque diré esto: hubo una vez que un chico que hacía muchas cosas interesantes fuera de las horas de trabajo resultó ser un fracaso total de una contratación. Todavía estoy perplejo por ese tipo.


3

Ser un buen desarrollador de software en el corazón, depende realmente de tu corazón. Puedes intentar ser un gran músico y dedicar mucho tiempo a la música, pero eso no te convierte en un buen músico. Necesitas disfrutar de lo que haces para ser bueno en eso. Inicialmente tenía las mismas preguntas que tú. lo había hecho, pero ahora, debido a mis gustos, he comenzado a hacer cosas adicionales en software que no sea el trabajo normal. Mejoré mi rendimiento en el trabajo normal y también me proporcionó mucho tiempo para involucrarme en otras actividades no relacionadas con el software. Entonces, la línea de base es disfrutar lo que haces y eventualmente harás lo que sea necesario.


3

La verdadera pregunta es qué haces todo el día. Las analogías con atletas y músicos generalmente no se aplican correctamente. Su trabajo diario no es práctica, es rendimiento, a menos que tenga la capacidad explícita de pasar parte de su día laboral en una "práctica" genuina. ¿Cómo lo sabes? Si nunca tiene el tiempo para hacer algo "bien" o aprender un nuevo idioma / tecnología / marco / etc. a fondo, entonces no está practicando, está actuando. Los atletas y músicos profesionales no mejoran durante el juego o el concierto, mejoran durante la práctica enfocada. Entonces, si eres como la mayoría, el único tiempo que tienes para una "práctica" de codificación genuina es fuera del trabajo. Dicho esto, solo vale la pena si está enfocado. Si pirateas todo el día y luego pirateas toda la noche, simplemente te cansas, no mejor.

Por ejemplo, necesita optimizar un fragmento de código en el trabajo y arrojar las herramientas de creación de perfiles habituales y acelerarlo tal vez un 50% y pasar a la siguiente tarea, pero cree que hay otras cosas que podría hacer que ayudarían incluso más pero no tienes el tiempo permitido para probarlos. Si te llevas esa pieza de código a casa y pasas unas horas extra realmente exprimiéndolo, estás aprendiendo técnicas que te harán mejorar la próxima vez que optimices algo. No estás haciendo lo mismo en casa que en el trabajo.

La práctica consiste en agregar habilidades y habilidades de perfeccionamiento y esas actividades se realizan necesariamente de manera artificial (es como aislar un grupo muscular en el gimnasio, nadie lo hace en la actividad física normal). Crear aplicaciones en casa no es una práctica automática. El trabajo en el hogar debe centrarse en las técnicas y el proceso, no en el producto final. Si un producto final es lo que necesita para estar motivado, genial. Simplemente no caigas en la trampa de desarrollarlo de la misma manera que lo haces en el trabajo.

El movimiento de codificación de kata es un ejemplo de lo que se trata la práctica.


3

Para responder a su pregunta: No, no lo convierte en un mal desarrollador.

Sin embargo , podría hacer que su vida profesional en el futuro sea un poco más difícil. Si tienes un trabajo en el que constantemente estás aprendiendo nuevas tecnologías que te ayudarán a avanzar en tu carrera profesional (ya sean promociones en tu trabajo actual o nuevos empleos en diferentes compañías), entonces estás listo.

Pero si actualmente está trabajando en una empresa donde la tecnología utilizada rara vez cambia, entonces en 2 o 5 o 10 años puede que le resulte difícil conseguir ese próximo trabajo. Si está codificando en casa con nuevas tecnologías y tiene algo que mostrar (aplicación, sitio web, proyecto de código abierto, etc.), le resultará mucho más fácil conseguir el siguiente trabajo.

Por supuesto, puede ser completamente feliz haciendo exactamente lo mismo durante los próximos 40 años, y mientras su empresa y las tecnologías continúen existiendo, ¡entonces está listo!


1

Ha habido momentos en mi vida en los que codifiqué mucho fuera del trabajo, y otros en los que no hacía nada porque estaba trabajando en otras cosas. Siempre debe estar aprendiendo, pero eso no significa que siempre tenga que aprender sobre programación en su tiempo libre. Si desea trabajar en alguna otra habilidad, ya sea carpintería, agujas, jardinería, etc., en su tiempo libre le ayudará a crecer como persona.

Simplemente no caigas en la trampa de pensar que sabes todo lo que necesitas saber sobre programación para que puedas dejar de aprender.


1

Esta es de hecho una publicación interesante. ¡He estado desarrollando software durante los últimos 10 años y amo mi trabajo! Yo también tengo muchos pasatiempos y trato de manejarlos adecuadamente. Pero me encanta probar cosas nuevas pasando una o dos horas frente a la computadora antes de acostarme. En mi caso, soy adicto a estudiar y escribir códigos de juegos. No siempre tengo tiempo para jugar, pero me encanta leer códigos sobre juegos. Para ser sincero, creo que el mejor código que he visto proviene de los juegos y aplico estas habilidades a mi código en el trabajo. Aprendo constantemente CADA DÍA, así que en mi opinión, si eres un desarrollador, nunca alcanzarás tu punto máximo, SIEMPRE hay una mejor manera de hacer algo ...


1

Esta es una gran publicación.

Yo diría que no, no te convierte en un mal programador. Si sus comentarios han sido buenos y completa bien sus tareas a tiempo, es todo lo contrario. Honestamente, te envidio que llenes el código mientras trabajas.

La razón principal por la que programo en mi tiempo libre es que realmente no me importa lo que hago en el trabajo y uso mi tiempo libre para hacer lo que me gusta. Lo que disfruto haciendo es la programación de videojuegos. No hay una compañía de juegos válida para trabajar en el lugar donde vivo (ahora tengo una familia aquí), así que puedo ayudar con los juegos independientes cuando puedo. Es la única forma de curar la picazón. Si hiciera lo que amaba todo el día, sería muy probable que no lo hiciera en mi tiempo libre.


1

Mi consejo será: use su tiempo de viaje para aprender cosas, para mantenerse informado: lea libros de TI, escuche el podcast de Dev, etc. Con respecto a sus actividades posteriores al trabajo: no cambia nada. De lo contrario, te convertirás en una persona aburrida.


1

No te convierte en un mal desarrollador, puede que ni siquiera te convierta en una especie de desarrollador "ok", simplemente te convierte en lo que eres. Sin embargo, creo que encontrarás que la mayoría de las personas que son realmente excelentes hackers tienden a gustarles probar cosas nuevas. En cualquier momento investigaré diferentes idiomas, bases de datos, marcos web, robótica, etc. Tengo dos hijos pequeños y una esposa, una hipoteca, todo eso, pero espero con ansias los tiempos en que pueda obtener 2 o 3 horas para hackear cosas. Claro, C # y .NET están muy bien para ganar un sueldo y realmente disfruto mi trabajo, pero jugar con Scala y Lift ha sido una verdadera maravilla para mí en los últimos meses. Hay desarrolladores que se clasificarían a sí mismos como "apasionados" y aquellos que simplemente se están "arreglando".


1

¿Esto significa que no soy un desarrollador de software 'verdadero' en el fondo?

Absolutamente no. Simplemente significa que te gusta hacer otras cosas además de la codificación. No hay nada de malo en eso, y no te hace mejor o peor que cualquier otra persona, desarrollador o no.

¿Es posible convertirse en un buen desarrollador de software sin hacer más fuera de su trabajo?

Por supuesto. Algo de eso depende de cómo sea su entorno de trabajo. Si tienes un trabajo aburrido, que te chupa el alma, que absorbe todo tu tiempo y luego haces algunos trabajos de mantenimiento aburridos, entonces ser capaz de usar el tiempo de trabajo para desarrollar tus habilidades será muy limitado. Si tiene el tipo de entorno en el que tiene cierta libertad para hacer lo que desea explorar y aprender, aproveche esa oportunidad para desarrollar nuevas habilidades que también ayuden a su empleador o compañeros de trabajo.

Si encuentra algo interesante sobre el que desea aprender más y no tiene el tiempo o la posibilidad de usarlo en el trabajo, debe compararlo con las otras demandas de su tiempo, ya sean familiares, amigos o pasatiempos.


+1. Sí, realmente depende del entorno de trabajo. En un lugar con personas inteligentes ( preferiblemente más inteligentes que uno mismo ) que, como equipo, se preocupan por lo que hacen y se esfuerzan constantemente por mejorar todo (el producto final, el código subyacente, las herramientas, las condiciones del lugar de trabajo, etc.) tiene una buena oportunidad de convertirse en un gran desarrollador, incluso si prefiere pasar su tiempo libre en otro lugar que no sea frente a una computadora.
Jonik

1

He estado en varias entrevistas para contratar programadores recientemente. Descubrí que los candidatos que más me impresionan, tanto como programadores y como personas con las que no me importaría trabajar, son aquellos que pasan una cantidad significativa de tiempo en actividades que NO son de programación (particularmente música, pero también matemática pura, filosofía y literatura). Para estar seguros, la mayoría también hace algo de programación de pasatiempos, pero también tienen intereses equilibrados.


Ahora, si solo puedo convencer a los músicos de eso ... parecen pensar que no puedes ser bueno en más de una cosa. La música y la programación son muy similares.
Michael K

Respondiste una pregunta totalmente diferente. El tipo de personas con las que preferiría trabajar probablemente será bastante diferente del tipo de persona que lo convierte en un gran programador. Si quieres disfrutar de las personas con las que trabajas y pasar un buen rato socialmente, entonces quizás el súper programador no sea el más adecuado. Sin embargo, si su carga de trabajo típica es de 2-3 meses para completar proyectos de 12 meses, entonces la personalidad no importará tanto cuando descubra que el súper programador le permitirá tener una vida fuera del trabajo, incluso si esa vida es haciendo más programación
Dunk

Solo como una nota al margen: he descubierto que las personas que más me impresionan como personas en una entrevista son las que más me preocupan. Al principio de mi carrera, las únicas personas que recomendé para la contratación que resultaron ser menos capaces técnicamente también resultaron ser las más capaces y convincentes socialmente en la entrevista.
Dunk

1

Si tiene un trabajo que le brinda una experiencia intelectual completamente atractiva, es probable que esa sea su vida mental: el trabajo externo es para desahogarse. Si su trabajo no lo compromete, es mucho más probable que encuentre satisfacción intelectual después de las horas de trabajo. Eso es cierto en cualquier negocio, no solo en la codificación.

Codificar en una oficina agota su creatividad, punto. Al menos 8 horas por día, su mente está haciendo un sprint continuo en nombre de otra persona. Es normal salir de eso y no querer volver a una computadora. Cuando trabajaba desde una oficina, era lo mismo para mí: llegaba a casa y solo quería cocinar, ir a ver una película, pasar el rato con amigos o simplemente estar frente al televisor. Luego, entre 2001 y 2004, más o menos, después de que la compañía para la que trabajé se derrumbara y me desmoronara, me retiré y conduje un taxi y esperé en las mesas. Fue entonces cuando realmente comencé a codificar en mis horas libres.

La verdad es que no creo que nadie tenga más de 8 horas al día de codificación de alta calidad. Muchos codificadores solo tienen 2-3, pero podrían ser las personas más eficientes que existen. Es solo cómo lo usa, cómo lo extiende.


1
Nunca has estado mucho con los desarrolladores de OSS, ¿verdad? Cuando la codificación se convierte en una pasión, a veces quieres estar allí durante 24 horas seguidas.
Martijn Pieters

1

¿Es posible convertirse en un buen desarrollador de software sin hacer más fuera de su trabajo?

Depende de la industria en la que esté trabajando. Algunos son más competitivos que otros.

Si no le gusta aprender cosas nuevas por su cuenta, es probable que se mantenga en su nivel de habilidad actual. Eso puede ser suficiente ... o no.

No se trata del tiempo dedicado, se trata de la curiosidad y la sed de conocimiento y dominio. Obviamente, no tiene nada que ver con mantenerse actualizado , se trata de cosas fundamentales, a menudo difíciles: compiladores, mónadas, arquitecturas de memoria, etc. Cosas que estiran y expanden su cerebro.

Querer codificar en casa es solo un efecto secundario importante. Pero no lo subestimes, sin hacerlo, el aprendizaje es a menudo superficial.

Todos los mejores desarrolladores que conozco tienen rasgos de tesis.


1

No, no te hace menos programador que nadie. Eres más social. Tengo envidia de ser honesto.

No tiene que usar todo su tiempo libre para escribir código. Mi trabajo es bastante simple: administración del servidor. Escribo mucho código porque no tengo que hacer mucho en el trabajo. Eso no me hace mejor o peor que nadie. Si te apasiona la programación, ¿por qué no haces un trabajo independiente? A menudo publico anuncios de Craigslist para mis servicios y gano una buena cantidad de dinero. También es una gran experiencia de aprendizaje, ya que trabajará con startups y, a veces, incluso con sitios web grandes. Espero que esto ayude. :)


La programación de pasatiempos te hace 'más social' inherentemente. Puede programar por su cuenta de forma aislada perfectamente bien.
Mufasa

0

Hice una pregunta similar un par de días antes. Parece que la gente parece que nos apasiona más nuestro trabajo si le dedicamos no solo todo el día, sino también todo el tiempo que tenemos disponible para nuestra vida personal.

Ocasionalmente escribo algo de código en mi tiempo libre, pero lo hago por diversión, no porque tenga la intención de ganar un poco de reconocimiento o crecimiento profesional. Aplaudo a las personas que tienen la energía para hacerlo, pero es más probable que se queme trabajando más horas y en proyectos adicionales que convertirse en un experto en algo.

Al final del día, lo único que importa es su capacidad para aprender cosas nuevas (especialmente en el trabajo), su capacidad para comunicarse bien y tener buenas habilidades de gestión del tiempo. Que te conviertas en un buen profesional.


1
Creo que llegaste al punto clave. Si programar en casa es como hacer un trabajo extra, entonces no va a ayudar mucho y probablemente sea incluso perjudicial. Sin embargo, la mayoría (si no todas) las personas que conozco ese programa en casa lo hacen porque es divertido para ellos. Sucede que esas son las mismas personas que quiero en mis proyectos porque son mucho más hábiles que los que no lo hacen. La programación en casa es la razón por la que son más hábiles, tal vez, tal vez no, pero tendería a pensarlo porque están haciendo lo que les gusta. Además, es bastante difícil mantenerse actualizado en sus habilidades si no dedica el tiempo.
Dunk

0

¿Es posible convertirse en un buen desarrollador de software sin hacer más fuera de su trabajo?

Para mí todo se trata de equilibrio.

Aunque me encanta programar, es solo un lado de mí, tengo otros intereses. Como veo esto si estoy contento (haciendo otras cosas que me gusta hacer) y encuentro mi trabajo interesante y satisfactorio (lo que hago) que, a largo plazo, estoy en camino de convertirme en un mejor desarrollador de software.

PD: Admito que no he leído todas las publicaciones anteriores en esta página.


¿Por qué el -1? Es una respuesta perfectamente razonable. + 1
zzzzz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.