Comencé a programar a la edad de 6 años en un Commodore 64. Ahora tengo 28 años y tengo que completar 4 cursos de un primer grado en Ciencias de la Computación.
Estoy empezando a aburrirme con escribir código después de todos estos años. He tomado un curso de Ciencias de la Computación en lenguajes de computación teóricos y 10 años de codificación de sistemas C en el campo de la seguridad de red y simplemente no recibo ningún estímulo al escribir código.
Puedo escribir código en C, C ++, Python o el lenguaje que desee, pero no puedo entusiasmarme con lo que estoy haciendo. No puedo sentir ningún desafío. He escrito código multiproceso, proxy HTTPS MITM y una aplicación WSGI sin la necesidad de ninguna habilidad de algoritmos específicos.
Siento que todas estas cosas nuevas son todas iguales, con abstracciones o automatización más simples (o más), pero todo me suena igual. Una y otra vez. El lenguaje computable es todo computable de Turing, por lo que la codificación es solo una replicación de un patrón similar en este subconjunto de una función parcial.
En mi trabajo diario, me siento aburrido incluso buscando errores, haciendo pruebas de referencia en el código o solucionando el problema con la biblioteca X, Y, Z.
Soy una persona muy curiosa Siempre me estimula algo. Pero no puedo ni siquiera cuando veo un gran código. Me siento más cómodo en cómo funcionan las cosas.
¿Es hora de avanzar en mi carrera? ¿O para obtener cosas más desafiantes en informática? Tal vez obtener un título importante en CS?
Empecé a leer mi primer libro sobre gestión de proyectos "Peopleware" y me estoy interesando más en el ciclo de vida del desarrollo de software. ¿Qué sugieres hacer?
Tal vez tratando de entrar en Google o Microsoft o Apple como lo han hecho algunos amigos míos. O tal vez una carrera profesional más gerencial. También he tratado de encontrar un buen libro sobre reglas de comunicación y "personalidad de las personas" para prepararme para la posibilidad de ingresar a la gerencia.
¿Alguna sugerencia?
PD: Tengo mucho interés, no estoy deprimido :) Me encanta la montaña, el senderismo, la sesión de fotos y soy un escalador deportivo, me encanta nadar y hacer deporte en general, a veces corro, en realidad yo ' m leyendo un libro sobre la historia de mi país (Italia) desde AC hasta hoy y me encantan los viajes (este verano hice 4000Km para ver mucho lugar en España y escalarlo, todo en solo 3 semanas, no un día festivo sino un maratón 24 km de trekking me lastimaron la hernia), amo el teatro y la vida en general
Gracias a todos, pensar en todas las respuestas me da la oportunidad de aclarar mi camino.
A modo de resumen, podemos generalizar sobre la respuesta más votada.
En primer lugar, todas las personas votan por la necesidad de hacer de nuestro trabajo un soporte para su vida y no la única razón para permanecer en la vida (este no es mi caso), por lo tanto, si solo tiene una razón de vida si trabaja, viene rápido a una situación realmente depresiva. Como la gente dice, Viena no te espera :)
Después de este recordatorio, la gente sugiere:
- aumentar la complejidad técnica en la que estoy trabajando para aumentar el desafío y aburrirme menos al respecto.
- cambie el campo de experiencia a un campo no técnico tratando de convertirse en gerente o haga avanzar a un cuidador en un campo no técnico relacionado con su trabajo.
- cambiar el campo de especialización en otro tipo de desafío técnico, ¿eres un programador de sistemas? intente aburrirse menos desarrollando aplicaciones para humanos para que pueda sentirse más cómodo viendo a las personas usando su útil software
- avanzar en tu carrera de informática en tu trayectoria académica
Para mi propósito, la respuesta correcta es avanzar en ciencias de la computación, creo que la programación no es la única forma de obtenerlas y creo que puedo sentirme mejor al obtener otro camino en ciencias de la computación diferente del cuidador de ingeniería de software.
Respuestas:
Eso estaba destinado a suceder.
Si su interés principal reside en el código, lo volverá loco, frustrado y deprimido de vez en cuando, algún día de forma permanente.
Interesarse en desarrollar productos y disfrutar viendo a la gente usarlos. Ese es el objetivo final de escribir el código, ¿verdad? El código es simplemente una herramienta para hacer algo más grande.
fuente
Contestaré tu pregunta con una pregunta ...
¿El trabajo de un programador es codificar o resolver problemas?
Dices que estás aburrido porque escribir código parece algo que has hecho antes, como cada fragmento de código ya se ha hecho antes.
Pero, ¿cómo llegó a la conclusión de que ese código es el código que debe escribirse? La mayoría de los problemas tienen cientos de formas de resolverlo, pero solo hay una mejor manera.
Si realmente no encuentra ningún desafío, curiosidad o interés en encontrar soluciones, o en la resolución de problemas, entonces realmente debe cambiar. Aunque no estoy seguro de que sería la gestión del desarrollo de software. No quisiera trabajar para un administrador de software que sintiera tanta apatía por la resolución de problemas. Probablemente debería ser una industria diferente, con un conjunto diferente de problemas.
Si te encanta resolver problemas pero no te gusta la codificación, tal vez no estés encontrando suficientes problemas para resolverlos. Cada vez que mi trabajo comienza a sentirse tedioso, creo que hay un problema que resolver. ¿Por qué estoy haciendo un trabajo ocupado? ¿Qué solución se me ocurre que elimine el trabajo ocupado de mi trabajo? Esa es la belleza de la programación.
fuente
Me parece que has hecho MUCHA programación procesal y te has cansado de ello, lo cual entiendo completamente. Especificar paso a paso es muy similar en todos los lenguajes de procedimiento.
Como parece que tienes muchas actividades que no son laborales, te sugiero que aprendas algunos de los conceptos que no se parecen a lo que sabes ahora y, sí, hay muchas, pero para comenzar, recomendaría Haskell porque es
Aquí hay una función de clasificación completa:
(Ver http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding para una explicación)
Si algo de esto es nuevo para ti, te animo a que comiences a aventurarte.
Buena suerte, diviértete.
fuente
Las computadoras son consumidores aburridos. Cuando codifica interacciones de máquina a máquina todo el día, la máquina reacciona igual siempre. Bueno para terminar el proyecto, pero tedioso después de un tiempo. Realmente ayuda a romper la monotonía con algo que no está directamente relacionado con la máquina.
He encontrado inspiración tanto en la fotografía como en el estudio de la experiencia del usuario. Piénselo, ¿cómo es que Apple puede hacer que mucha gente salve sobre sí misma para que salga lo siguiente de Santa Clara cuando otros vendedores reciban una respuesta tibia? ¿De verdad crees que Android habría tenido una respuesta tan grande si Apple no se hubiera resistido a lanzar iPhone en Verizon durante tanto tiempo? Te daré una gran pista: no es necesariamente que estos productos sean tan avanzados tecnológicamente. Hay un gran componente psicológico en la manía.
Comprender el diseño del producto y la experiencia del usuario es algo de lo que muchos de nosotros tenemos mucho que aprender. ¿Qué hace que alguien funcione? ¿Cómo diseñas algo lo suficientemente genial como para que la gente deje la solución establecida? ¿Cómo creas tu propio culto tecnológico como Apple (no es que aspire a ser un líder de culto)? Todas estas son preguntas muy interesantes y estimulantes. Retroalimentan el desarrollo de software, pero ahora su enfoque es diferente.
fuente
¿Probablemente no tienes suficiente desafío técnico?
Etc. Por supuesto, prepárate para ganar inicialmente menos en un campo donde las cosas son desafiantes para ti, no aburridas.
fuente
Encontré motivación al pasar a un campo que no tiene soluciones "correctas", estoy escribiendo herramientas editoriales y mi trabajo es tan bueno como los usuarios lo encuentran útil. Conozco a muchas personas no técnicas y juntos estamos tratando de idear formas de mejorar el software con el que necesitan trabajar, encuentro que la interacción humana y la necesidad de cambiar constantemente de perspectiva son completamente agradables y de repente la codificación no es tan tedioso ya.
Sin embargo, sé que no es para todos, algunos manejan la inseguridad de no tener una medida objetiva de la calidad de su trabajo más difícil que otros.
Pero es una opción que vale la pena considerar.
fuente
Sí, a veces tengo la sensación de que en realidad se está escribiendo el mismo tipo de código una y otra vez. Pero no, todavía no estoy aburrido. ¿Porqué es eso?
Porque básicamente disfruto descubriendo nuevas formas de codificación y formas nuevas, concisas y elegantes de expresar algo en código. Hay dos formas posibles de hacerlo: aprender nuevos lenguajes de programación o aprender nuevas bibliotecas o marcos.
Aprender un nuevo lenguaje de programación se ha vuelto más fácil para mí con cada idioma que he probado. Y después de un tiempo, dejó de ser muy interesante. Pero luego, hace uno o dos años, sin embargo, finalmente llegué a la programación funcional, que como paradigma de programación es lo suficientemente diferente de OOP como para ser un nuevo desafío. Siento que esto realmente ha enriquecido mis capacidades de programación y me ha dado una nueva perspectiva desde la cual puedo ver un problema de programación. Ahora estoy tratando de descubrir diferentes paradigmas de programación, en lugar de solo diferentes lenguajes de programación. Ese es un desafío mayor.
En segundo lugar, aprender una nueva biblioteca, marco o API: como has dicho correctamente, los nuevos marcos a menudo no resuelven nuevos problemas; simplemente lo resuelven de una manera diferente, por ejemplo, agregando una capa adicional de abstracción. Quizás esto sea posible porque las computadoras de hoy son más poderosas que las máquinas anteriores; o, tal vez, porque en general estamos mejorando en la escritura de software.
Este último bit probablemente necesita alguna explicación. Daré un ejemplo: durante mucho tiempo, mientras practicaba mis habilidades de programación, nunca pensé realmente en el mantenimiento del código que estaba escribiendo. Desde que comencé a programar en un trabajo, mi perspectiva ha cambiado. Escribir código mantenible a menudo es muy importante en un entorno corporativo, porque cada hora que dedica a la codificación cuesta dinero real, por lo que una corporación intentará conservar el código existente si es posible, y es probable que eventualmente tenga que pasar por alto su código a un sucesor
Encuentro que escribir código mantenible es en realidad un gran desafío. A menudo significa que no escribirás un código de ensamblaje súper inteligente y altamente optimizado (recuerda The Story of Mel: ¿un programador real , alguien? ;-) En cambio, es más probable que aproveches la abstracción. Cuanto más cerca pueda obtener su código de algunas reglas comerciales y el dominio del problema, mejor. Ahí es donde entran todas esas nuevas bibliotecas. Si le permiten escribir código para que sea limpio, claro, conciso y fácil de entender, entonces eso es algo bueno.
Lo siento si esta respuesta es algo larga. Traté de mostrar de dónde proviene mi motivación en la programación ... y me interesaría saber si en algún momento sentiste lo mismo, y si (y por qué) tu motivación finalmente se fue, de todos modos.
fuente
Si estás cansado de escribir código, si no te emociona, si te aburre, bien podría ser el momento de un cambio. Podrías considerar pasar a un puesto de administración, y administrar y guiar a otros codificadores con tus años de experiencia. O intente pasar de lado a la arquitectura del sistema, donde podría diseñar y planificar sistemas y otras personas harían la mayor parte de la implementación.
O bien, podría cambiar de carrera por completo, a algo que no tiene absolutamente nada que ver con las computadoras. ¿Te has preguntado cuál sería el trabajo de tus sueños si alguien te lo diera?
fuente
Comienza a jugar con microcontroladores. Es la aplicación de talento de programación más refrescante y emocionante que se me ocurre.
fuente
Parece que los puntos de partida de nuestros antecedentes son similares, ya que ambos comenzamos a programar alrededor de los 6 años en máquinas similares y hemos entrado y salido de la programación por varias razones. Ninguno de mis títulos tiene nada que ver con la programación, tengo todos los títulos de música, aunque he tomado algunos cursos de informática de nivel de posgrado.
Creo que tiene razón al observar que los programadores a menudo resuelven los mismos problemas repetidamente y que lo "nuevo" se basa en lo "viejo". Que te des cuenta de este hecho es para tu crédito; demasiados desarrolladores y empresarios ven las nuevas tecnologías como completamente desconectadas de las antiguas.
Entonces, resolver ese tipo de problemas no es interesante para usted. ¿Qué sería interesante? ¿Te gusta resolver problemas en general? Tal vez una vida como desarrollador de software "comercial" no es para ti.
Sé que he proporcionado más preguntas que respuestas, pero espero que responder estas preguntas proporcione una idea de la dirección que debe tomar.
fuente
Me parece que estás atrapado. Estás en una situación en la que no quieres estar y no sabes cómo salir de ella. Mi consejo es simple: hacer algo diferente solo por hacer algo diferente. Incluso si no resuelve su problema, probablemente lo desatascará.
No tome esto de la manera incorrecta (estos son logros decentes), pero esta no es una lista completa de todos los problemas desafiantes y emocionantes en la programación. Todavía hay muchos problemas difíciles por resolver. Los problemas más desafiantes implican trabajar a escala. Ha escrito una aplicación WSGI, pero ¿ha escrito una que pueda manejar mil millones de visitas al día? Ha escrito código de subprocesos múltiples, pero ¿ha escrito código de varias computadoras (con cientos de computadoras)?
En resumen, si quieres intentar hacer algo no técnico, hazlo. Pero no lo haga porque siente que ha resuelto todos los problemas que hay que resolver porque ese no es el caso.
fuente