¿Cuáles (si las hay) son las desventajas de codificar / desarrollar profesionalmente?

  • La gente asume que porque haces cosas con las computadoras también puedes ayudar con sus problemas de TI.
  • Si su empresa tiene un nombre familiar (Intel, Google), las personas suponen que de alguna manera tiene una idea de todas las operaciones de esa empresa.
  • La gente le hará preguntas sobre el software y cuando responda, sus ojos se desvanecerán o se pondrán a la defensiva porque menosprecia su inteligencia.
  • La gente en el trabajo le hará preguntas sobre el software y cuando responda, sus ojos pasarán desapercibidos y luego asentirán y fingirán que lo entendieron de todos modos.
  • Cuando dices “Estoy pirateando un proyecto”, las personas tienden a suponer que te estás infiltrando en la NSA con la intención de liberarnos de la vigilancia masiva y parecen menos agradecidos con tu aplicación Quora-for-cats.
  • Su lugar de trabajo será amigable con los perros y, por lo tanto, de alguna manera se vuelve socialmente inaceptable preferir gatos a perros, de lo contrario, puede ser excluido de su grupo de pares y buscar promociones.
  • Aprenderá sobre trucos geniales que mejoran la legibilidad del código y el rendimiento de la aplicación, pero no importa porque a nadie le gusta leer código ni usan sus aplicaciones.
  • Tendrá ideas fenomenales sobre cómo hacer algo grandioso hasta que se dé cuenta de que otras compañías tienen economías de escala, inercia, ejércitos de abogados y fondos de capital de riesgo diseñados específicamente para invertir su existencia.
  • Te das cuenta de que, en la mayoría de las aplicaciones, los usuarios son en realidad los productos cuyos datos se empaquetan y venden a agencias de publicidad o cuya presencia se utiliza para racionalizar otra ronda de financiación de capital riesgo.
  • Entonces te das cuenta de que las personas probablemente estén de acuerdo con esto porque la única otra alternativa sostenible sería que realmente tengan que pagar por un servicio.
  • Te das cuenta de que todavía hay muchas vías inexploradas de la informática que tienen el potencial de tener un impacto positivo y significativo, pero en cambio se gasta dinero en aplicaciones que envían la palabra “yo” de un lado a otro.
  • Cuando te das cuenta (en diversos grados de horror, vergüenza y desconcierto) tu existencia puede resumirse en diferentes niveles de los personajes que aparecen en el programa Silicon Valley.
  • Cuando una gran mayoría de tus historias ya han sido capturadas sucintamente en un cómic de XKCD, lo que es peor, Randal lo cuenta significativamente mejor de lo que podrías haberlo hecho.
  • El temor inminente de tener que considerar cualquier forma de seguridad de la aplicación en la que se encuentre en un estado eterno de equilibrio contra adversarios que tienen un acceso cada vez mejor a vectores de ataque más fuertes y usuarios que odian ese acceso completo a todos sus datos, lleva más de 0.7 segundos .
  • Tratar con las redes en absoluto porque puede hacer todo lo que esté a su alcance para llevar sus datos a sus usuarios más rápido, pero es realmente la burocracia y la intromisión corporativa lo que nos impide tener un cable de fibra óptica que va directo a nuestras casas.
  • Ser parte de cualquier equipo que se considere como un “centro de costos” en lugar de un generador de dinero (a menos que exista una adopción significativa de dichos fabricantes de dinero).
  • La amenaza potencial para su existencia humana cuando está rodeado de otros en tecnología que tiende hacia sus conversaciones, grupos de amigos, personas importantes, charlas de almohadas y sueños comienzan a expresarse en código.

De lo contrario, no es tan malo.

  1. Estrés y presión: cuando se trata del desarrollo, a menudo tenemos que lidiar con plazos ajustados o problemas con los que quizás no sepamos cómo lidiar. Las aplicaciones personalizadas significan soluciones personalizadas, lo que significa descubrir cosas nuevas todo el tiempo, lo que puede significar un estrés potencial por estar atascado y perder tiempo en resolverlo;
  2. Mantenerse constantemente al día con el aprendizaje y las cosas nuevas: ¿ quiere olvidarse de su trabajo después de salir de la oficina? Claro, si quieres perder el atractivo de los reclutadores después de unos años. Porque si no se mantiene al día con lo que está de moda en el mercado, es probable que tenga dificultades para encontrar nuevos trabajos cuando lo que sabe se vuelve obsoleto.
  3. Trabajo ingrato y capacidad subestimada : su trabajo puede verse como “solo un botón” y los simples mortales no técnicos pueden no ver cuán complejo es su trabajo. También es posible que se te pida que codifiques HTML y CSS o que hagas un diseño, incluso si eres un desarrollador de back-end porque, de nuevo, “es solo un botón”. Ah, y ¿por qué no puedes hacer esas estimaciones, después de todo, no puede tomar 2 semanas hacer una nueva página correctamente? Espere hasta que lo reemplacen con algunos internos.
  4. Sus opiniones técnicas pueden ser ignoradas , las ha advertido. Todo el tiempo. Como Cassandra y sus premoniciones. Y, sin embargo, se ríen o podrían descartarlo como el pesimismo típico de la gente de tecnología.
  5. El culpable a veces : dado que usted es quien lo implementa, es el culpable, incluso si la especificación funcional y técnica es abstracta y nunca antes había experimentado con el conjunto de tecnologías elegido.
  1. Darse cuenta (a menudo después de muchos años) de que escribir un programa perfecto no es un objetivo alcanzable. Una especie de decepción del ego.
  2. Algunas tareas se vuelven aburridamente repetitivas en algún momento. La automatización ayuda, pero cada proyecto es diferente y lo más probable es que repita algunas cosas que ya ha hecho de una manera ligeramente diferente.
  3. Llegar al punto en que desea lograr mucho más de lo que físicamente puede hacer puede ser frustrante. Puede acelerar su productividad con herramientas como marcos, pero hasta un límite. No conozco ninguna herramienta que pueda ejecutar el comando. Saca el código de creación de usuario a una fábrica, también proporciona una interfaz para quien quiera traer su propia fábrica. Solo otro desarrollador de software como usted puede ejecutar esa instrucción. Desafortunadamente para algunos, el acceso a esos recursos a menudo viene con algunas o muchas actividades relacionadas con la gestión. O tener suficiente poder financiero para pagarlos, pero este no es el caso más común.
  4. Escribir algo que sabes nunca se ejecutará para hacer visible un progreso .
  5. Trabajando en un proceso de ingeniería administrativo. Cosas como imprimir códigos difieren en papel y firmarlos para obtener la aprobación de lanzamiento .
  6. Trabajando con un superior incompetente que cree que es competente.

En primer lugar, la industria se está convirtiendo en una “economía de conciertos”, donde las empresas se centran en traer contratistas temporales para un concierto corto, para terminar un proyecto, y luego dejar que el contratista se vaya cuando el proyecto esté terminado o cancelado. No hay beneficio médico, no hay un beneficio 401k: corresponde al desarrollador pagar el 100% de los costos. Trabajar en conciertos también hace que sea más difícil obtener un conocimiento profundo de las nuevas tecnologías, porque no estás allí el tiempo suficiente para trabajar con ellas.

En segundo lugar, el conocimiento requerido sigue cambiando. Rápido. Si no te gusta estudiar, probablemente no te gustará el desarrollo, porque siempre estás en una cinta de aprendizaje. Esto ha sido cierto durante mucho tiempo: mi padre fue una maravilla en la programación de paneles de parcheo en su día. Estuvo dos años en el ejército, y cuando salió, la tecnología lo había pasado por alto. En estos días, es la proliferación de bibliotecas javascript, formas de administrar esas bibliotecas, nuevos lenguajes de programación, diferentes plataformas con oh, tan pequeñas diferencias y el patrón de diseño del mes. Y ni siquiera voy a entrar en la cantidad de siglas con las que necesita estar familiarizado.

En tercer lugar, la globalización significa que es probable que se esté comunicando con “recursos offshore”. Las diferencias de zona horaria significan que estas comunicaciones sucederán antes de su primera taza de café, o en la tarde cuando prefiera estar listo para partir (suponiendo que no lo haga). t trabajar en un taller de software de 12 horas). Si tienes suerte, tu acento y su acento serán mutuamente comprensibles.

Y las ofertas de trabajo casi siempre mencionan un ambiente acelerado y estresante con un sentido de urgencia. Si puede manejar eso, está bien, pero a menudo veo emergencias artificiales creadas por una mala gestión, especificaciones incompletas o incorrectas o plazos poco realistas. No es inusual ver días largos y agotadores para los “impulsos de liberación” cuando se alcanza un hito del proyecto.

Finalmente, si no tiene un cónyuge comprensivo / pareja, el frente doméstico será un desafío.

En total, sin embargo, he sido desarrollador de software durante más de 20 años y realmente lo disfruto. Mi esposa y mis gatos toleran mis horas cuando las horas se salen de control (una vez tuve dos días de 24 horas en un proyecto “urgente”). No estoy del todo al punto de buscar un trabajo como recibidor de Walmart. Todavía.

  • Estrés: presión para cumplir con plazos irrazonables, presión para desempeñarse a un alto nivel, altos riesgos de fracaso (para su inicio, no necesariamente para usted personalmente).
  • Cinta de correr de entrenamiento: constantemente se inventan nuevos lenguajes de programación, API y disciplinas completas (big data, IA). Es difícil saber qué es una tendencia real y qué es exageración. Pero si no te mantienes al día, te conviertes en un dinosaurio, y en paro.
  • Ser administrado por personas que se enfocan en enriquecerse personalmente. Trabajar para una empresa que quiere ser comprada, en lugar de producir un producto que sea memorable por su utilidad. Trabajar para un jefe tonto de centavo y libra que te critica pensando que hará que sus opciones valgan más.
  • Sentado todo el día sin mover nada más que tus dedos y tus globos oculares.
  • Ageismo Tengo 55 años y soy mucho más productivo y conocedor que las personas mojadas detrás de las orejas que se hacen llamar “Desarrollador Senior” con 5 años de experiencia en programación, 15 hojas de vida que enumeran cada lenguaje de programación, cada biblioteca y palabra clave CSS han usado alguna vez, y que nunca han visto un proyecto que duró más de 6 meses, pero son más buscados que yo.
  • Sexismo Nunca he visto a un gerente decir “no contrates a la mujer” ni a nadie que se llame a sí mismo “programador”, pero seguro que no hay muchas mujeres en la programación, y debes preguntarte por qué.
  • Es casi todos los trabajos por contrato. No creo que podría haber sobrevivido en los EE. UU. Si mi esposa no tuviera un seguro de salud a prueba de balas porque la mayoría de los lugares en los que he trabajado no lo ofrecen ni cobran más que los Intercambios de ACA. Del mismo modo, tendrá que hacer sus propios arreglos para ahorrar dinero para la jubilación, porque muchos trabajos no le ofrecerán un 401 (k) y los límites lamentables de las IRA no le permitirán ahorrar lo suficiente para jubilarse hasta que esté 102
  • Los gerentes piensan que la forma de obtener resultados rápidamente es alentarlo / obligarlo a trabajar largas horas. Somos una profesión pensante, y las cosas tomarán más tiempo si solo te sientas en tu pantalla trabajando el código 80 horas a la semana. Sin mencionar que las cosas que produce en ese estado de falta de sueño serán una basura imposible de mantener.
  • Si sabe algo sobre el diseño de UI / UX, se sentirá continuamente frustrado por los gerentes que piensan que saben más que usted y que quieren cambios de UI feos e inutilizables.
  • En realidad, si sabes algo sobre algo, te sentirás frustrado continuamente por los gerentes que piensan que saben más que tú.
  1. Es más agotador que el trabajo físico pero de una manera diferente.
  2. Hay riesgos para la salud, por ejemplo
  1. Karojisatsu: riesgos de salud mental y suicidio planteados por la cultura de TI para gerentes y desarrolladores
  2. Riesgos para la salud de TI para gerentes y trabajadores.
  • La gente piensa que es un trabajo fácil: al menos un político se ha referido a los programadores como mecanógrafos glorificados o ha usado términos similares
  • Le quita creatividad: intente escribir o fotografiar después de un día duro de codificación
  • Estás rodeado de imbéciles: entonces te das cuenta de que tú también eres uno 🙂
  • Sentarse en una pantalla todo el día puede provocar Aspergers o Autismo.
  • El trabajo puede ser tan intenso que pierdes la capacidad de hablar con los humanos sobre otras cosas además de la tecnología.
  • Los desarrolladores pueden ser arrogantes y obstinados. (Mírate aquí)
  • Ágil, mal implementado
  • Mirando el código que escribiste hace 6 semanas y palmeando la cara
  • Presión constante para trabajar más que sus horas contratadas: de sus pares y / o gerencia
  • El creador de Dilbert tiene derechos de autor sobre su vida laboral: pero lo atenúa para que sea más creíble.
  • Es un trabajo duro. Debes tener alguna aptitud para comenzar, o estarás nadando cuesta arriba durante toda tu carrera y el trabajo real puede ser difícil con largas horas. Además de eso, debe tomarse el tiempo para mantenerse al día con los principios de codificación y arquitectura o los más jóvenes lo pasarán de largo. También puede ser estresante si su código se está agotando en el mundo y podría romperse en cualquier momento. Más aún si su código es “de misión crítica” (grandes cantidades de dinero o incluso vidas humanas dependen de que su código no falle).

    Puede afectar su cuerpo. Mirar fijamente una pantalla todo el día es duro para tus ojos. Sentarse todo el día es difícil para su espalda y escribir todo el día es difícil para sus manos (aunque es mucho mejor que pasar el mouse todo el día).

    También hay un factor de agotamiento. Después de hacer el mismo tipo de trabajo durante años, es difícil mantener el interés. Para combatir esto, algunos programadores pasan a la gerencia (pero no es para todos), otros cambian de especialidad y otros (incluido yo mismo) dejan el trabajo por un tiempo para intentar otras cosas (finalmente regresé, pero con mucho más entusiasmo que yo). tuve cuando me fui).

    Además, a pesar de lo que The Social Network intentó retratar, no es un trabajo glamoroso.

    ¿Cuáles (si las hay) son las desventajas de codificar / desarrollar profesionalmente?

    Algunas que me vienen a la mente:

    • Es un trabajo sedentario. La mayor parte del tiempo de los desarrolladores se pasa sentado y cada vez hay más pruebas de que eso no es nada bueno para su salud.
    • No te harás rico haciéndolo. El desarrollo generalmente paga razonablemente bien, pero tiende a terminar más bajo que algunas otras carreras: administración, algunas otras profesiones como medicina o derecho, etc. Al igual que con cualquier otro puesto asalariado, nunca se volverá realmente rico si es su cosa.
    • Hay una cultura bastante fuerte de tiempo extra en la industria; las largas horas ciertamente no son universales, pero tampoco son infrecuentes. Este es particularmente el caso en ciertos rincones de la industria; startups, desarrollo de juegos, etc.
    • Hay algunas otras personas poco seguras que arriesgan la cabeza de vez en cuando: el desprecio por los usuarios finales y el elitismo general no están demasiado extendidos, pero definitivamente surgen.
    • El campo tiene algunos datos demográficos dudosos: el hecho de que esté muy desequilibrado en cuanto a género es uno de los mayores problemas.
    • Los detalles de la profesión son oscuros y algo incomprensibles para el laico. La tecnología y el software pueden ser populares, pero los aspectos prácticos de lo que realmente hace un desarrollador de software son un completo misterio para la mayoría de los laicos.
    1. Es posible que se lo coloque en un código de reparación de proyecto que se escribió, diseñó, organizó, mantuvo y administró mal.
    2. Es posible que lo coloquen en un proyecto que utiliza tecnología realmente antigua que tiene un entorno de desarrollo complicado y utiliza una gran cantidad de detalles y / o detalles solo para hacer una tarea simple que la tecnología actual puede hacer en solo unas pocas líneas de código usando un simple editor de texto (* respira hondo *).
    3. Es posible que esté trabajando con personas que realmente no entienden el proceso de desarrollo de software, pero que al mismo tiempo son parte de la toma de decisiones que afecta sus responsabilidades diarias. Por ejemplo, los requisitos poco claros realmente pueden dañar un proyecto.
    4. Es posible que te coloquen en un proyecto con demasiados desarrolladores trabajando en la misma base de código con muy poca separación modular. “Demasiados cocineros estropean el caldo” se aplica absolutamente a los proyectos de software. Hay muchos gerentes que creen que si arrojas a más personas a un proyecto, se hará más rápido. Esto no es cierto en absoluto.
    5. Es posible que esté trabajando para una empresa que no puede justificar la obtención de recursos adicionales, lo que le permite realizar la cantidad de trabajo que normalmente requeriría 3 desarrolladores.

    Podría seguir y seguir, pero esas son algunas de las cosas que se me ocurrieron después de leer la pregunta.

    Desarrollo de tipo Business As Usual (BAU). En algún momento de su carrera, se detendrá repentinamente y se dará cuenta de que ha estado con su nueva empresa durante unos 6 meses y todo lo que ha hecho es agregar una expresión regular a una validación de entrada de correo electrónico, un nuevo campo para la captura de algunos datos, refactorizó un código horrible y corrigió millones de errores.

    Estuve en una empresa donde hice este tipo de trabajo durante 18 meses. Es paralizante. Desafortunadamente, es un problema en particular en negocios donde los desarrolladores apoyan el negocio, por ejemplo, escribir sistemas comerciales para un fabricante de alimentos o sistemas de fondo para un negocio de comercio electrónico. El código que escribe no es el negocio, está apoyando el negocio escribiendo código. Por lo tanto, lo que el negocio quiere, lo consiguen. A menudo, se realiza poca o ninguna inversión en tecnología y solo hay que seguir poniéndose al día y decir “sí señor” nuevamente.

    Obviamente, esto no se aplica a todas las empresas de esta naturaleza, pero creo que una empresa donde el producto es el software que usted escribe es mucho más divertido, ya que usted es el punto central de toda la empresa.

    La mayoría de las veces, las personas menos inteligentes estarán a cargo de las cosas, y es la normalidad ya que si fueran lo suficientemente inteligentes como para hacerlo ellos mismos, no te habrían contratado. Los requisitos del proyecto seguirán cambiando a medida que avanza, de manera inesperada / irracional, a veces los clientes le pedirán características contradictorias (cosas que no pueden coexistir), etc.

    Las desventajas son que puede haber mucho estrés y muchas horas en tu trabajo. Especialmente si estás en una nueva empresa.

    La seguridad laboral puede ser dudosa.

    Necesitas estar aprendiendo constantemente (aunque lo veo como un beneficio)

    Lo más importante es que la tecnología cambia rápidamente y debes mantenerte al tanto.

    Creo que es lo mismo que ser un fotógrafo profesional.

    Las fotografías que desea hacer y que siente que son buenas e importantes probablemente no sean las mismas fotografías que la gente le pagará por tomar. Es posible que desee viajar a través del Pacífico Sur documentando culturas que se desvanecen, pero la mayoría de las revistas prefieren pagarle para tomar una foto de un Kardashian saliendo de un club nocturno.

    Es lo mismo para la programación profesional. Es fácil encontrar proyectos fascinantes en informática, pero no se correlacionarán bien con los proyectos que pagarán un salario digno.

    La mayoría de nosotros en la industria de la computación no crecimos aprendiendo a programar entusiasmados con todas las formas en que pondríamos anuncios en un sitio web.

    Encontrar tu próximo concierto puede ser difícil si no estás atrapado en la última tecnología y no tienes una gran cartera de palabras de moda. Dependiendo de los mercados, la permutación es infinita 🙁

    Para tener una buena selección de trabajos, debe residir en una ciudad con un alto número de trabajos tecnológicos. Desafortunadamente, esas áreas generalmente son $$$ y están limitadas a quizás 10 ciudades.

    Vivo en una playa tropical y trabajo desde casa, así que es difícil nombrar un inconveniente. Quizás el único problema que he enfrentado es que es una ocupación tan sedentaria que su salud realmente puede deslizarse, pero estoy siguiendo un riguroso programa de ejercicios en el gimnasio de mi casa para tratar de aliviar ese problema.

    La desventaja es que probablemente ya no tendrás tiempo suficiente para escribir cosas por diversión.