Quiero saber, ¿qué tan importante es programar en tu tiempo libre? ¿Es necesario trabajar su 9-5 como programador y luego llegar a casa y trabajar en su pasatiempo para convertirse en un mejor programador?
Dicho esto, sé que solo se mejora en la programación, bueno, programando.
¿Los posibles empleadores tienen en cuenta la programación de pasatiempos en una entrevista o preguntan esto solo por curiosidad?
Me siento culpable por no tener un proyecto de pasatiempo, pero todo lo que puedo pensar en hacer ya está hecho. Entonces, ¿tengo algo en mente sobre esto, comenzar algo que ya se ha hecho o dejarlo hasta que se me ocurra algo original?
Respuestas:
Sentirse culpable es una razón loca para embarcarse en un proyecto de programación. Probablemente también sea una buena manera de comenzar a odiar la programación. Trabajar en algo porque usted quiere , no porque usted piensa que estás supone que .
¡Bah! ¿A quién le importa si ya se ha hecho? ¡Hazlo otra vez! ¡Hacerlo mejor! O bien, acepte que es posible que no pueda hacerlo mejor y hágalo de todos modos. ¿Dónde estaría Microsoft si dijera "bueno, alguien ya ha creado una base de datos / hoja de cálculo / procesador de textos / sistema operativo / IDE / administrador de proyectos / administrador de dinero / Lenguaje orientado a objetos dinámico de herencia única basado en C / navegador web / servidor web / reproductor de música / plataforma móvil / motor de búsqueda, así que buscaremos algo más que hacer ... "?
En serio, si escribes un servidor web, probablemente no superará a Apache, pero definitivamente aprenderás lecciones valiosas en el proceso. Es poco probable que supere a Angry Birds, pero escribir un pequeño videojuego simple también le enseñará mucho.
fuente
Creo que los proyectos de hobby son importantes.
Utilizo proyectos de pasatiempos para probar teorías, prácticas de diseño, nuevos marcos que no puedo hacer en mi 9-5. es decir, programación funcional, algoritmos, patrones de diseño, nuevos marcos, nuevos lenguajes, etc.
Esto puede significar la diferencia en la rapidez y la eficiencia con la que puedo abordar un nuevo proyecto en el trabajo, o incluso puede significar la diferencia al elegir un nuevo proyecto de un cliente o perderlo porque no sabía lo suficiente sobre el dominio del problema.
Solo haciendo su rutina diaria de 9-5 puede estancarse como desarrollador si no está introduciendo cosas nuevas o ideas nuevas. Para mí, hacer proyectos de hobby es un medio para convertirme en un desarrollador mejor, más inteligente y más eficiente.
Los posibles entrevistadores tienen en cuenta los proyectos de pasatiempo
En mi experiencia, si ha realizado un proyecto de pasatiempo en una tecnología relacionada que su empleador está usando o "mirando" actualmente. Obtiene felicitaciones adicionales por haberse familiarizado con la tecnología en cuestión. Esto es especialmente pertinente para las nuevas tecnologías que acaban de llegar a la corriente principal donde el campo de juego está nivelado en lo que respecta a la experiencia tecnológica.
fuente
El problema con su trabajo actual es que probablemente solo necesite un conjunto limitado de habilidades para realizar su función laboral. El mundo de la programación es tan vasto que es fácil quedar atrapado en una rutina año tras año. Mediante la programación de pasatiempos, puede diversificarse y estar listo para otras tecnologías antes de que surja la oportunidad, ya sea en su posición actual o en otro lugar.
Pero es importante darse cuenta de que los programadores aficionados no solo programan.
Pero a veces se inspiran para escribir un programa para satisfacer sus propias necesidades específicas; el placer culpable de un programador porque tiene exactamente las características que desea. Y luego se cansan y lo tiran. ¡Ese es el lujo de un hobby!
fuente
En mi humilde opinión, no son necesariamente proyectos de pasatiempos per se los que te hacen mejorar (aunque no están seguros), sino permanecer abierto y pasar tiempo aprendiendo cosas nuevas en general. Como señaló @Rick, puede tomar muchas formas diferentes aparte de la codificación real. Por ejemplo, puede leer libros, pero si tiene una computadora portátil, incluso código, mientras viaja al trabajo.
Tenga en cuenta también que uno absolutamente necesita mantener un equilibrio .
Una cosa más: es fácil (sugerir) trabajar en proyectos de hobby mientras uno es joven y soltero. En etapas posteriores, es posible que tenga una familia, y eso eliminará la mayor parte de su tiempo libre durante muchos años (al menos si quiere hacerlo bien, ¿y cuál es el punto de lo contrario?). Por lo tanto, se verá obligado a administrar su tiempo de manera más eficiente, a fin de ahorrar un tiempo precioso para aprender.
fuente
¡Haz proyectos paralelos! No piense en ello como algo nuevo en la web, piense en ello como practicar sus habilidades, sandbox para aprender / dominar tecnologías y enfoques.
Como empleador, siempre he estado preguntando a mis posibles compañeros de trabajo si están haciendo proyectos secundarios interesantes. E incluso en caso de que no fueran ideas espectaculares, pero sus autores mostraron entusiasmo al respecto, siempre fue un gran profesional.
fuente
Los programadores que conozco que tienen dificultades para mantenerse al día con las nuevas tecnologías son los que lo tratan como un trabajo. Sus contrapartes - los que no mantienen al día con el nuevo material son los que hacen que las cosas en casa.
fuente
Dices que todo lo que puedes pensar ya se ha hecho, pero ¿todas las herramientas que utilizas funcionan de la manera que quieres? Frecuentemente encuentro que las herramientas hacen casi, pero no del todo, todo lo que quiero, y mis proyectos de pasatiempo surgen al tratar de llenar el vacío. No siempre tengo éxito, pero disfruto intentarlo, y como usuario final no tengo problemas con la motivación o las especificaciones
fuente
Si realmente tiene el interés y la energía para esos proyectos, hágalos por todos los medios. Pero no iría tan lejos como para decir que es imprescindible para cualquier programador serio. Si trabaja a tiempo completo con la programación, hacerlo también en su tiempo libre no necesariamente aumentará su interés en él, puede muy bien tener el efecto contrario. Personalmente solía hacer proyectos de pasatiempo, pero me he detenido. Ya estaba programando 5 días a la semana y me pareció más saludable hacer algo completamente diferente en mi tiempo libre.
Además, si su empleador no le da espacio para probar cosas nuevas en el trabajo, estudiar y mejorar continuamente, entonces probablemente debería buscar un nuevo trabajo en lugar de hacer esas cosas en su tiempo libre. Un buen empleador se dará cuenta de que es de su interés mantener sus habilidades actualizadas, mejoradas y ampliadas.
Desde el punto de vista del empleador (yo soy uno de esos), los proyectos de pasatiempo serán un mérito si no tienes experiencia laboral real. Todos los proyectos de pasatiempos y escuelas serán muy importantes como referencia durante la entrevista.
Pero si tiene experiencia, son menos relevantes: si bien pueden indicar una pasión por su oficio, al mismo tiempo pueden indicar que es un poco nerd. Desde mi experiencia personal, realmente no puedo encontrar ninguna conexión entre los proyectos de pasatiempo y los candidatos buenos / malos, no creo que sean particularmente relevantes a menos que esté recién salido de la escuela solicitando su primer trabajo.
fuente
Estoy más en cuestionarios y pequeños fragmentos de código similares que los proyectos a escala completa (aunque intento trabajar en algunos proyectos de OSS si tengo tiempo). Entonces, para mí no hay mucha excusa para decir que no tengo una gran idea para un proyecto. Simplemente escriba un solucionador de Sudoku e intente implementar algo como Dancing Links para hacerlo más rápido.
Lo importante que sean para que usted se convierta en un mejor desarrollador puede depender de su trabajo. Si esto ya es muy exigente, puede obtener toda la capacitación que necesita. De lo contrario, elegir el proyecto adecuado (o cuestionario para resolver) le enseñará cualquier cantidad de cosas nuevas y lo mantendrá en contacto con una amplia área de experiencia que muchos trabajos no ofrecen, ya que a menudo está limitado a usar un pequeño conjunto de herramientas para un dominio claramente definido.
Y sí, algunas empresas están seriamente interesadas en sus proyectos. Por lo menos, te dan muchas oportunidades para hablar sobre algo que sabes muy bien durante una entrevista.
fuente
Los proyectos de pasatiempos en sí mismos no serán importantes en la mayoría de las entrevistas. Hay algunas personas a las que les importa que hagas codificación como pasatiempo, pero a la mayoría no. ¡SIN EMBARGO, las habilidades que adquieres de la programación de pasatiempos pueden ser importantes en una entrevista!
La programación adicional en el lado definitivamente será ventajosa en la programación, hasta el punto de agotarse ... Sin embargo, incluso más allá del problema de agotamiento, también debe tener en cuenta que los empleadores a menudo buscan otras habilidades más allá de la programación. Si está programando 24/7, ¡no está desarrollando esas OTRAS habilidades! Balance ... :-)
fuente
Por un lado, creo que los proyectos de pasatiempo son importantes, porque de lo contrario se estancará y perderá la diversión.
Mi sugerencia para encontrar un nuevo proyecto de pasatiempo:
Aprende un nuevo lenguaje de programación para hacer tu proyecto de pasatiempo. Por ejemplo, un buen objetivo es tratar de aprender un nuevo idioma por año (se hace mucho más fácil cuanto más sabes)
Lo mejor sería uno que te parezca totalmente extraño. Porque cuanto más extraño te parezca, más expandirá tu horizonte.
Además, conocer muchos idiomas con diferentes sintaxis le permite centrarse en la sintaxis como algo importante al programar. Es solo una representación secuencial de árboles de sintaxis y no es muy importante. Esto mejora su enfoque en la semántica, que es mucho más útil en la práctica.
¿Has probado un lenguaje de programación funcional? ¿Has probado los lenguajes de programación distribuidos? ¿Idiomas de coincidencia de patrones?
Para encontrar pequeños proyectos para trabajar en el Proyecto Euler es muy recomendable.
fuente
Soy un desarrollador web aficionado sin educación universitaria (todavía) trabajando en mi propio proyecto personal. Me invitaron a mi primera entrevista para un trabajo de programación hace un par de semanas porque estaba trabajando en mi propio proyecto personal.
Tener en cuenta esta evidencia anecdótica, trabajar en mi proyecto personal de "pasatiempo" ha sido lo mejor que he hecho para avanzar en mi carrera en el desarrollo ... después de inscribirme en la universidad.
Entonces, sí, los entrevistadores ciertamente tienen en cuenta sus proyectos personales, de lo contrario, ni siquiera se habrían molestado en hablar conmigo.
fuente
Otros han cubierto mucho, pero quiero centrarme en esta parte:
Me parece que esto pierde el punto de un "proyecto de pasatiempo". Es cierto que muchos proyectos de pasatiempos se crean para otros, o al menos teniendo en cuenta el consumo público: estos proyectos requieren una cierta cantidad de trabajo constante a lo largo del tiempo y pueden ser desalentadores por ese motivo. Después de todo, ¿quién quiere hacer otra cosa u otra con poco apoyo y de baja calidad que finalmente se abandona después de un par de meses?
Pero , no hay razón para que su proyecto de pasatiempo tenga que hacer algo útil para nadie. Por ejemplo, recientemente comencé a aprender Haskell , simplemente porque es tan drásticamente diferente de los idiomas imperativos a los que estoy acostumbrado, y es realmente fácil de configurar. También empecé a aprender el lenguaje ensamblador Redcode , usado en el juego de programación Core War , nuevamente por curiosidad.
Esto, a su vez, me ha llevado a considerar la creación de un complemento Notepad ++ para proporcionar mejores características de resaltado de sintaxis para Redcode, lo que me ha llevado a considerar aprender un poco de C ++ . Basándome en mi familiaridad comparativa con .NET, ahora estoy pensando en configurarme con Visual C ++ .
Y la cuestión es que nada de esto realmente "importa", al menos no como un proyecto. Demonios, no estoy seguro de que incluso puedas llamarlo un proyecto per se , tanto como un montón de cosas con las que estoy jugando porque me llamó la atención. Quiero decir, necesitarás un poco de tiempo y organización para asegurarte de obtener algo, pero a nadie le importará si dejo de tener tiempo para Haskell una vez que comience la escuela.
Y a nadie le importará si resulta que el desarrollo del complemento para Notepad ++ es más difícil de lo que esperaba, y me doy por vencido; de hecho, miré a Perl antes de sumergirme en Redcode, y lo abandoné bastante rápido porque tuve dificultades para obtener el entorno configurado correctamente. ¿Esto mostró una falta de persistencia? Sí. Pero a nadie le importa, porque es mi hobby , y eso significa que puedo jugar con lo que quiera.
Por lo tanto, no sienta que necesita elegir algún proyecto de pasatiempo que le enseñe Habilidades Comercializables, eso es solo convertir su tiempo libre en más tiempo de trabajo no remunerado. Las habilidades vienen como resultado de lo que haces, pero no son la razón . Ahora entiendo mejor la programación declarativa, y cómo funcionan los lenguajes ensambladores, y cómo los programas usan DLL. Y he aprendido muchas cosas sobre el símbolo del sistema de Windows, y otras cosas que no habrías pensado que estaban conectadas a nada de lo que he mencionado hasta ahora.
El punto es encontrar algo completamente nuevo y ver si es tan interesante como parece. Si es así, genial, y si no lo es, sigue adelante. ¿Alguna vez has tenido la más mínima curiosidad sobre compiladores o intérpretes? Ve a ver LOLCODE . Si te hace tan feliz como a mí, entonces es hora de comenzar a aprender sobre compiladores . Y oye, tal vez deberías volver y pensar en resaltar la sintaxis nuevamente. De hecho, este será probablemente el próximo proyecto que comience.
Si eso no es lo tuyo, prueba algo de nivel inferior al que estás acostumbrado. O de nivel superior. No importa. La única cosa que hace asunto es que cuando se mire, usted piensa "Fun!"
fuente
Estos proyectos son imprescindibles para un programador serio, especialmente si trabajas como freelance.
En lugar de trabajar 6 días a la semana, 1 día de descanso, puede trabajar 5 días a la semana, 1 día para probar nuevas teorías y características y 1 día de descanso.
Puede parecer que el día de la prueba es una pérdida de tiempo, pero reconocerá sus beneficios cuando se le dé la posibilidad de implementar una nueva característica en su lenguaje de programación que ya había probado durante uno de esos días.
fuente
Participo en entrevistas y contrataciones en mi tienda. Un 'proyecto de pasatiempo' siempre es una ventaja para nosotros.
Tener un proyecto personal más o menos terminado muestra que realmente disfrutas creando software y muestra que estás motivado para aprender cosas nuevas y mejorar tus habilidades.
Si desea causar una impresión realmente positiva en una entrevista, traiga una computadora portátil con su proyecto personal. Muéstrelo al entrevistador, cuéntele sobre los desafíos que encontró mientras lo construía, déjelos ver su código. Dígales por adelantado dónde están los bordes ásperos y cuáles podrían ser sus planes futuros para el proyecto.
Serás recordado, en el buen sentido.
fuente
Encuentro que la programación en mi tiempo libre tiene dos propósitos:
1) Me permite lograr algo personalmente gratificante, sin las restricciones de los proyectos de trabajo. Esto es especialmente importante cuando he estado lidiando con problemas difíciles y frustrantes con mis proyectos de trabajo.
2) Me da la oportunidad de ampliar y agudizar mis habilidades de programación, ya que soy libre de crear lo que desee.
De todos modos, creo que también es importante equilibrar esto con algunos pasatiempos no relacionados con la computadora. Para mí, es mantener el arroyo y los senderos detrás de mi casa.
fuente
Tener una aplicación para mascotas es una excelente manera de forzarse a aprender partes de su plataforma actual que quizás no haya pensado. Por ejemplo, puede ser un gran desarrollador de C # trabajando en una aplicación ASP.Net en el trabajo. Pero si tienes un chico en tu equipo dedicado al CSS, es posible que nunca lo aprendas correctamente. Sin embargo, si tiene un proyecto web para mascotas, tendrá que aprender a hacer CSS. Esto es cierto para una gran cantidad de tecnologías con las que se encontrará si tiene su propio proyecto donde es el único desarrollador.
Para una excelente redacción sobre todos los beneficios de las aplicaciones para mascotas, consulte esta publicación .
fuente