¿Cómo es trabajar como programador? ¿Cómo puedes aprender nuevos idiomas a pesar de la falta de tiempo? ¿Cómo te ven los jefes? ¿Te respetan en la empresa o solo eres una máquina de codificación?

Leyendo de nuevo esta respuesta, recorrí todo el lugar. No tengo idea si responde la pregunta original completamente o no. Parece que la pregunta original está preocupada por quedar atrapado en un trabajo sin salida. Entonces,

TL; DR: en gran medida, usted tiene el control de dónde trabaja, cuánto trabaja, si mantiene sus habilidades actuales o si se especializa en un conjunto de habilidades verticales y se ve obligado a tomar un trabajo de programación deficiente (o trabajar como saludos de Wal-Mart). Esto no es exclusivo de la programación, pero mantenerse actualizado ciertamente requiere un trabajo significativo en este campo (incluso si cava zanjas para ganarse la vida, puede haber una pala mejor). Los malos jefes definitivamente no son exclusivos de la programación, pero siempre puedes buscar un nuevo trabajo.

Respuesta completa:

Los programadores no hacen solo una cosa.

  • Parte de mi día está ocupado respondiendo correos electrónicos y mensajes instantáneos.
  • Parte se toma escribiendo documentación de algún tipo u otro.
  • Parte de esto es investigar tecnologías nuevas (o cambiantes) para estar informados sobre dónde podríamos tener que ir en el futuro.
  • Parte de esto es escribir un nuevo código.
  • Parte de esto es diseñar interfaces de usuario.
  • Parte de esto es diseñar estructuras de datos.
  • Parte de esto es diseñar esquemas de bases de datos.
  • Parte de esto es depurar el nuevo código que acabo de escribir y el código escrito por un tipo que ya ni siquiera trabaja aquí.
  • Parte de esto lo paso discutiendo las partes anteriores con mis compañeros de trabajo.
  • Parte de esto es aprender algo nuevo que no tiene nada que ver con mi carga de trabajo actual (nuevos idiomas, nuevas técnicas, nuevas bibliotecas, etc.).

OK, en realidad no hago todas estas cosas todos los días. Pero podría ser cuál es la parte genial de este trabajo y la parte desagradable de este trabajo. Los programadores novatos en un gran equipo probablemente puedan salirse con la suya haciendo solo dos o tres de los elementos de esta tabla y aún así mantener su trabajo. A medida que se vuelvan más hábiles, comenzarán a agregar elementos a esta lista (rara vez puedes quitarlos). Desafortunadamente, a menudo los programadores novatos omiten elementos en esta lista para ahorrar tiempo (como documentación y aprender cosas nuevas), pero solo están robando a Peter para pagarle a Paul.

La programación es difícil. Simplemente es. No hay forma de seguir siendo empleado a largo plazo en esta industria si no aprende cosas nuevas todo el tiempo. No tiene que ser cosas grandes como un marco completamente nuevo o un nuevo lenguaje, puede ser cosas pequeñas como lo que se agregó entre la versión del marco que estamos usando actualmente y la que acaban de lanzar. Puede estar aprendiendo una nueva forma de resolver un viejo problema.

He trabajado en compañías muy grandes de Fortune 200, y he trabajado en pequeñas empresas de nueva creación, y compañías firmemente en el medio. He tenido grandes jefes y jefes de mierda en todos los niveles. No tengo una forma real de saber si mi experiencia es normal o no, pero de las conversaciones con otros creo que sí. En las grandes compañías es fácil permitirse convertirse en un engranaje en la gran máquina (y puede ser muy tentador ya que a menudo se le pagará lo mismo que el engranaje de estrella de rock mientras hace mucho menos trabajo), y si si permites que eso suceda, puedes ser reemplazado tan fácilmente como ese engranaje. En general, cuanto más pequeña es la empresa, más probable es que tenga que usar más sombreros, pero también es más fácil detectar a los mocasines y mentirosos, ya que no hay otros engranajes para esconderse (es decir, el estrés). Por otro lado, en una empresa grande a menudo hay muchos trabajos laterales a los que puede mudarse, y es raro que un gerente o compañero de trabajo sienta que los está despreciando al pasar lateralmente a un trabajo más interesante o desafiante (son a menudo con la esperanza de hacer eso por sí mismos).

En cuanto a los malos jefes y compañeros de trabajo, rara vez puedes elegir a todas las personas con las que estás trabajando, a menos que estés construyendo tu propia empresa y seas súper rico (e incluso entonces puedes encontrar que tus opciones no están tan bajo control como te gustaría ) El mundo está lleno de imbéciles, pero también hay mucha gente genial allí (a menudo parece que los imbéciles están ganando). Desafortunadamente, a menudo no hay una forma segura de identificarlos sin pasar mucho tiempo con ellos.

La programación es frustración. Línea de fondo. Si no puede manejar la frustración, está en el negocio equivocado. Las computadoras están construidas a partir de capas, capas sobre capas (son tortugas hasta el fondo), y puede haber errores en cualquier capa. Los errores son la razón por la que la programación es lucrativa. Resolver acertijos es la razón por la que la programación es divertida.

Nunca tomaría un trabajo que se anunciara como diez horas diarias. Eso no quiere decir que no haya trabajado, en ráfagas cortas, diez horas diarias, pero si no tienes una vida que acompañe ese trabajo, ¿qué estás haciendo? El agotamiento es algo real y la única persona que puede evitar el agotamiento eres tú. Si toma un trabajo que supuestamente debía ser de ocho horas al día, cinco días a la semana y resulta ser 10 horas al día, seis días a la semana, busque un nuevo trabajo. Si permanece en el trabajo, no tiene a nadie a quien culpar sino a usted mismo (ya sea por dejar que el empleador se aproveche de usted o por no planificar el futuro manteniendo sus habilidades actualizadas).

La respuesta a esta pregunta se basa en gran medida en lo apasionado que eres por lo que haces. Si no te apasiona la programación, me imagino que es como cualquier escenario de ‘carrera de velocidad’ en el que trabajas para ganar un cheque de pago. Tendrás días buenos y días malos. Probablemente trabajes para algunos imbéciles y tengas el jefe ocasional que te guste. Ser programador no es una clave mágica para la felicidad ni nada. Es posible que tenga esa impresión en Quora, pero la razón de esto es porque está haciendo preguntas a las personas que SON apasionados por la programación.

La programación es una de esas habilidades que ciertas personas están dispuestas a pasar innumerables horas aprendiendo solo porque les interesa. Puede compararlo con aprender el piano en su tiempo libre o algo así. A muchas personas les apasiona la música, pero pocas se ganan la vida. La programación, por otro lado, es algo a lo que las personas tienden a acudir y en realidad se puede vivir bien. Eche un vistazo a algunos salarios de tendencia:

Salario Java en Estados Unidos – $ 97k / año

Salario PHP en Estados Unidos – $ 92k / año

Salario rápido en Estados Unidos – $ 100.7k / año

La programación puede ser una forma muy lucrativa de ganarse la vida. Además, los programadores tienden a tener muchos proyectos propios o paralelos en los que están trabajando. Hay muchas bromas sobre cómo los programadores piensan en nada más que código de día y de noche.

Me preguntaste si es duro. Yo diría que depende de cuánto te guste hacerlo. 10 horas al día? ¡DECIR AH! Muchos programadores trabajan un poco más que eso, pero como aman lo que están haciendo, no lo parece. Si está buscando un trabajo de 8-5 / MF, la programación puede no ser adecuada para usted. Sin embargo, si le apasiona y le encanta hacerlo, tendrá tiempo para aprender todo lo que necesita para tener éxito.

La información salarial anterior es de YouWorth. YouWorth es una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales del programador. No solo soy un campeón del producto, sino que lo uso yo mismo. La aplicación permite a cualquier persona importar habilidades de LinkedIn y rastrear su valor en el mercado laboral a lo largo del tiempo. También me notifican si hay un cambio en las habilidades que se están viendo.

¿Has visto el día de la marmota? Mira la cara del actor. Así es exactamente como se ven y sienten los desarrolladores.

Depende del país en el que vivas y de las habilidades que tengas, pero he tenido varias novias y cuando te preguntan cómo estuvo tu día, tengo que decir cosas divertidas como:

1. Hubo una interrupción de construcción.

2. Los requisitos estaban equivocados.

3. Alguien decidió que era el tipo de proyecto equivocado. Teníamos que empezar de nuevo.

4. Todos en la compañía odian a los chicos de TI.

5. Las personas dentro de la compañía tratan a los desarrolladores como basura o leprosa, y el lenguaje que usan para referirse a las cosas que hacemos es ofensivo … Y si luchas, entonces te dicen que no tienes inteligencia emocional … Pero carecen de modales.

En general, las personas en TI son bastante INTELIGENTES, pero no usan su inteligencia para tratar con las personas.

La mayoría de las personas que no están en TI no saben nada, y quiero decir que pueden decirle una cosa hoy, otra mañana y así sucesivamente, inventando cosas continuamente, pidiéndoles que le den una respuesta por escrito, y lo harán. lucha por días, señala inconsistencias y te darán 3 respuestas diferentes.

El problema es que la gente de negocios piensa “Soy el jefe” y no tienen ni idea, pero creen que los jefes deben saberlo todo el tiempo, y eso significa que las personas deben ocultar su ignorancia y negar cuando están equivocados.

Si no crees que es un escenario de pesadilla, estás completamente equivocado.

Por supuesto, se le paga por todo el tiempo que pasa trabajando, ya sea bueno o malo, pero de todos modos, los sentimientos de hacer y rehacer algo irrelevante, aburrido y completamente incorrecto que necesita volver a trabajar, puede matar su alma.

Se supone que tienes una vida sin trabajo.

Pero imagina que un zombie regresa del trabajo todos los días sin una expresión en su rostro.

Es muy difícil conectarse con otras personas si su trabajo es así durante 20 años de toda su vida.

Por supuesto, puede idear formas de evitar tales calamidades, como encontrar otros trabajos, pasar a la administración, usar métodos ágiles y cosas por el estilo.

Pero los sentimientos generales de desperdiciar tu vida nunca se compensan. No se le puede pagar por envejecer y querer vivir.

La mayoría de los proyectos son tan poco atractivos y se le da tan poco margen de maniobra que hacer algo más, cualquier cosa, debería ser más gratificante.

Depende. Como otros han señalado los trabajos independientes

Máx. (Horas que quiere trabajar, horas que necesita para hacer el trabajo)

Como empleado, usted trabaja las horas dictadas por su contrato. Pero siempre hay presión para que trabajes horas extras no remuneradas. Luego está el síndrome del Real Programador que los empleadores parecen haber adoptado. Es mejor trabajar horas contratadas desde el primer día, ya que de lo contrario podría dañar su salud (Karojisatsu: riesgos de salud mental y suicidio planteados por la cultura de TI para gerentes y desarrolladores) a largo plazo. Como dicen otros, debe dedicar algo de tiempo cada día laboral a aprender.

El último lugar donde trabajé como empleado fue una pesadilla. Una cultura de fuego listo, un administrador confeso de control confeso, revisiones de códigos de festivales geek dedicados a encontrar trivia, servicio de labios a la innovación, posibilidades de moverse hacia los lados pero no hacia arriba o hacia la administración, y el caos causado por los desarrolladores que adoptan nuevas tecnologías para nada buena razón para irse y Agile implementado para destruir la creatividad y hacer cumplir la conformidad mediocre. Luego estaban los despliegues “voluntarios” de la noche a la mañana y los tsunamis diarios por correo electrónico que siempre significaban que algo se perdía. Al final, lo único bueno era el dinero

Por otro lado como contratista:

En Hewlett Packard en Zurich fui respetado, asumí un liderazgo técnico y disfruté de venir por la mañana. En Nokia en Berlín fue una historia similar. En ambos casos tuve que configurar una alarma al final del día en caso de que perdiera la noción del tiempo. En ambos casos fue agradable a pesar del hecho de que habían adoptado Agile (básicamente lo hicieron bien) Fue lo mismo en Novartis, donde tuve un gerente que veía más allá de la tecnología y aplicaba lingüística al proyecto, y en el OPO donde El gerente podría discutir la tecnología y la literatura rusa más la filosofía tan fácilmente como la tecnología.

Otros lugares donde tenía un contrato variaban, pero en general eran agradables y me permitían continuar con el trabajo. La mayoría de los lugares donde implementaron Agile tendían a usarlo de una manera que ralentizaba el desarrollo.

En general, trabajar como programador / desarrollador / ingeniero como empleado puede ser divertido y estimulante en el ambiente corporativo adecuado. Según la experiencia, desconfío de las compañías estadounidenses que, como el último lugar donde fui empleado permanente, parecen, como el gobierno local, adoptar las mejores modas que suenan e implementarlas de una manera que destruye el alma.

Pero me encantó mi tiempo como contratista fuera de mi país de origen, el Reino Unido.

Si bien esto fue escrito como comedia, también es probablemente la descripción más precisa de trabajar como programador: la programación apesta

Los entornos varían mucho y algunos entornos son mucho mejores que otros. Los buenos entornos lo hacen trabajar en horas razonables en condiciones silenciosas con las mejores herramientas y el equipo de soporte para resolver problemas bien definidos con un proceso sensato, y se agradece hacer las cosas bien. Las partes interesadas se comunican y colaboran con usted en el diseño y la implementación, y los plazos son realistas.

Mucho más común, pero de lo que se habla menos, es un entorno caótico donde usted está solo para descubrir cómo nadar: poca o ninguna documentación, personas que no tienen el tiempo o los conocimientos para ayudarlo a ponerse al día cosas, partes interesadas que quieren el mundo y lo quieren ayer, comunicación al estilo de una granja de hongos, presión para trabajar largas horas a pesar de la falta de ganancias de productividad al hacerlo, y tanta deuda técnica aplastante que hace que sea casi imposible agregar nuevos características sin romper el universo. Estos son los tipos de entornos que causan agotamiento y que tantos ingenieros abandonen la industria.

¿Por qué? La creación de software es muy compleja, y administrar un equipo de software es una habilidad MUY difícil de dominar. Muchos gerentes piensan que cosas como la documentación, las pruebas y la capacitación son una pérdida de tiempo y dinero cuando son todo lo contrario. Cuando las cosas comienzan a ser caóticas, es extremadamente difícil revertir la caída en el caos, especialmente si la compañía morirá si no envía su software EN LOS PRÓXIMOS CINCO MINUTOS.

El truco es encontrar un lugar que “lo consiga” y entienda cómo crear un buen ambiente de trabajo. Sugerencia: Agregar una mesa de ping-pong y agua sin azúcar no convierte un infierno caótico en un buen ambiente.

Como la programación es una herramienta tan poderosa y omnipresente, no creo que haya una sola forma de ser programador. Depende de a qué problemas apliques la programación. La programación es, en mi opinión, más una herramienta genérica para implementar soluciones a los problemas, sean lo que sean. Desde la creación de sitios web, herramientas de análisis de datos, videojuegos, herramientas científicas para la simulación numérica, la creación de software integrado para una nevera, etc., hay muchos campos en los que la programación es útil.

Ser un programador es enfrentarse a problemas que resolver, y debes:

    1. Comprende el problema
    2. Comprender las restricciones (contexto, herramientas, etc.)
    3. Elija las herramientas adecuadas para el trabajo.
    4. Piensa en una buena solución
    5. Implemente la solución
    6. Comprueba la solución

    Por supuesto, este es un punto de vista muy simplista, porque el campo de programación es muy amplio.

    En la lista de los 100 mejores trabajos de los EE. UU., El desarrollador de software ocupa el puesto número 13 (fuente: El desarrollador de software se encuentra entre los mejores trabajos de 2016). Y si nos fijamos en las mejores empresas para trabajar, muchas de ellas son empresas tecnológicas. Tienen una actitud moderna y flexible hacia el trabajo y beneficios generosos.

    Entonces, en general, la programación es un gran trabajo, y probablemente te gustaría.

    Sin embargo, los detalles reales de su pregunta dependen de la empresa para la que trabaja. La programación es una tarea realizada en muchas empresas en todo el país. Esas empresas son muy diferentes entre sí en su actitud hacia el trabajo y hacia sus empleados de TI y hacia las horas extraordinarias.

    Entonces, si su jefe no lo respeta o lo trata como una máquina de codificación, son una pequeña minoría. Simplemente pule su currículum y encuentre un trabajo en otro lugar.

    En cuanto a la falta de tiempo para aprender nuevos idiomas, eso no debería ser un problema. Los idiomas que necesita aprender son los que usa en el trabajo todos los días durante esas 8-10 horas. Entonces no deberías tener problemas para dominarlos.

    La diferencia principal o significativa entre diferentes lenguajes de programación es que tienen diferentes conjuntos de palabras clave, diferentes reglas y, a veces, diferentes conjuntos de estándares también. Lo principal es aprender sobre el desarrollo de la lógica de cómo resolver un problema siguiendo una secuencia de pasos. Si ha aprendido a resolver un problema pensando lógicamente en cualquier idioma, puede resolver el mismo problema en cualquier otro idioma muy fácilmente, es solo cuestión de aprender sobre palabras clave específicas de ese nuevo idioma. Creo que si alguien tardó 3 meses en aprender su primer idioma conceptual y lógicamente, solo tomará un promedio de 15 días aprender sobre las palabras clave, su propósito y las reglas de un nuevo idioma. La lógica es siempre tu verdadera compañera. A pesar del hecho, no significa que alguien deba aprender un gran conjunto de idiomas diferentes, ya que aprender un idioma requiere menos tiempo que tener un dominio o dominio real de un idioma. Tener el comando incluso en un solo idioma lleva años resolviendo diferentes problemas en ese lapso usando ese Lang.
    No es que a los programadores se les pida a la vez que trabajen en diferentes proyectos en muchos lenguajes de programación diferentes. Puede haber 2 o 3, por ejemplo. Sí, puede parecer difícil para algunas personas, pero en realidad, es muy interesante aprender varios de ellos, ya que aprender un idioma a veces fortalece su control sobre el otro idioma. Tus conceptos se refinan. Tienes una mejor comprensión. Pero desde el punto de vista de Job, eso puede parecer duro.

    Soy un mono código 🙂 Y me encanta lo que hago. Por supuesto, tengo días en los que solo quiero dejar la empresa y hacer otra cosa, completamente diferente, como convertirme en panadero o barbero, nada que ver con las computadoras. Esos días son pocos y muy separados.

    Prácticamente nunca trabajo 10 horas al día, puede suceder, pero estoy bien compensado con más dinero o vacaciones.

    Tengo el respeto que quiero. Ahora trabajo para una compañía de seguridad antivirus, así que soy yo quien admira a los otros desarrolladores, son tan buenos y solo calculan las tasas de transferencia, las velocidades, los índices y simplemente lo nombran en sus cabezas sin pensarlo, a veces siento que Estoy caminando entre dioses, en serio, estos chicos y chicas son totalmente increíbles y son personas súper amables. Compito contra uno de ellos en Letterpress, ese puntaje es probablemente 35-3, no para mí. Aún así no me importa. He estado trabajando allí durante aproximadamente 4 años, y cada vez que tengo un caso grave de síndrome de impostor (síndrome de Impostor), que sucede, estoy seguro de que no estoy trabajando en esa compañía por mi apariencia, tengo habilidades que ellos no tienen. aparentemente, y tienen razón. Nadie sigue trabajando allí durante años sin tener habilidades, no están en el negocio durante 30 años por nada. Así que supongo que soy bueno, y definitivamente tengo respeto allí. No necesito trabajar allí si no quiero, puedo conseguir fácilmente otro trabajo con un salario más alto, pero me gusta allí y es fantástico tener a alguien a quien admirar que realmente le gustas, ya sabes necesita seguir mejorando y cada vez que necesita ayuda lo consigue. Incluso el tipo que me patea el culo en Letterpress es bastante humilde, aunque no tiene que hacerlo, si esto fuera lo contrario, no estoy seguro de que sería un gran ganador como él.

    Cuando llego a casa, después de 8 horas en el trabajo, me pongo frente a mi computadora y hago la programación. Leo libros, veo screencasts y tutoriales en Youtube.

    Una vez que ha aprendido un idioma o dos, aprender nuevos es bastante fácil. Sabes que declaras funciones, procedimientos, variables, sabes si el lenguaje es funcional u orientado a objetos. Por lo general, nunca lleva más de unos días tener el control de algo nuevo. Me tomó 2-3 días aprender Ruby y Ruby on Rails, me tomó más tiempo aprender JavaScript. Luego, en unas pocas semanas de usar un lenguaje o marco, prácticamente te conviertes en un experto. Las cosas siempre son bastante similares.

    Amo lo que hago y en serio no podría pensar en hacer otra cosa. Si no amara lo que estaba haciendo, sería miserable. Trabajando como programador o administrador del sistema y no me gusta lo que haces, no pude terminar ese pensamiento.

    Te sentirás abrumado por unos años, ¿cómo podrían saber todo esto? Pero es facil. Es solo repetición, y haces algo, lo afinas, luego lo afinas un poco más, es solo iteración, y más iteración, repite hasta el infinito. Cuando superas un obstáculo, en realidad se siente fantástico y te enganchas, al menos ese soy yo. Entonces te sientes estúpido, entonces te sientes como el chico más inteligente del mundo.

    ¿Es duro? Sí a veces. ¿Es increible? Sí a veces.

    Mis días de trabajo varían de 9 a 12 horas (en buenas semanas) y, sinceramente, no tengo ningún problema con esto. La mayoría de los días pasan rápido porque tengo la suerte de estar haciendo algo que disfruto mucho.

    Mis colegas (codificadores y no codificadores) me respetan y mis jefes me ven como inteligente. He conocido a muchos programadores poco inteligentes, pero la mayoría de los no codificadores le dan el beneficio de la duda en lo que respecta a la inteligencia.

    En la mayoría de los casos, los no codificadores en el trabajo realmente no entienden lo que hago, incluso en el nivel más básico. Esto no es un gran problema, solo significa que necesito poder comunicar lo que estoy haciendo de manera clara, sucinta y respetuosa.

    Algunos días no llego a programar en absoluto. Estoy evaluando opciones técnicas, estoy hablando con clientes o gerentes, o estoy en una reunión brindando consultas técnicas. Estos son probablemente los peores días para mí. A menudo son tediosos y no consigo codificar.

    Paso la mayor parte de mi tiempo libre pensando en código, hablando de código o realmente codificando. A veces trato de mantenerme alerta con mis conocimientos teóricos. A veces estoy trabajando en proyectos personales que nunca verán la luz del día. Y a veces estoy aprendiendo un nuevo lenguaje o marco.

    Creo que la mayoría de los programadores que están tan inclinados se toman el tiempo de aprender cosas nuevas porque:

    1) lo disfrutamos

    2) Mejora directamente nuestras perspectivas laborales futuras

    3) es nuestro trabajo

    Así como los médicos necesitan leer las últimas publicaciones médicas, o cualquier artesano se mantiene al tanto de los nuevos materiales y procesos, los programadores deben mantenerse al día con las tecnologías actuales. Si queremos seguir siendo relevantes, debemos mantenernos informados. Hacemos tiempo para ello: es parte del trabajo. Pero sobre todo es porque amamos estas cosas.

    ¿Alguna vez te has resbalado en el hielo? No me refiero solo a un parche, sino que aceleré durante unos segundos sin ningún control.

    Es algo así como eso. Hay un problema. Necesitas resolverlo. Las cosas están sucediendo rápidamente. Hay muchas cosas que sabes que deberías estar haciendo, pero vas a saltarte algunas porque es una emergencia . Y cuando haya terminado, la mayoría de la gente no se dará cuenta y los pocos que lo hagan le dirán lo que hubieran hecho mejor.

    Excepto que, si lo arruinaste, puedes volver a reproducir el proceso y corregir dónde te equivocaste. Y cuando la gente confía en ti, porque han estado observando en secreto cómo te manejas, puedes decidir a dónde va mucho hielo y cómo se forma.

    También hay un aspecto arqueológico o antropológico. Si bien intentamos fingir que todo es coherente y matemático, no es más cierto que la música es “solo reproducir frecuencias”. Todo lo que usa fue creado por alguien (o un grupo de alguien) y codifica sus prejuicios y preferencias, que no escriben, porque eran obvios en ese momento. Entonces te preguntas qué tipo de persona (u otro sustantivo) habría hecho las cosas de esta manera, y usas esa hipótesis para descubrir qué hubieras hecho a continuación, si fueras ellos.

    Y, si eres inteligente, recuerda dejar notas para el próximo Indiana Jones, el tipo que necesita usar lo que escribiste. Pero probablemente no, porque hay una fecha límite …

    Jason Champion también lo explica: cuando un entrevistador habla de lo mucho que la oficina puede ser una casa de fraternidad, educadamente disculpa y aléjate. La comida gratis y cosas similares se traducen en “programamos las cosas tan mal que preferiríamos que nuestros empleados no se fueran hasta que estén demasiado cansados ​​para escribir”.

    Si bien mucho de esto suena cínico y deprimente, vale la pena señalar que muchos de nosotros no lo haríamos de otra manera. Cuando leo sobre personas que se quejan del caos y las compensaciones imposibles, me río, porque esos son algunos de los días más gratificantes en el trabajo. Todos tienen historias de guerra que suenan como cuentos de hadas, donde resuelven (o esquivan) problemas imposibles, crean algo de la nada, forman alianzas entre personas que se odian entre sí y hacen que la vida de alguien que nunca conocerán sea mucho más fácil.

    Más allá de eso, él especifica el cambio. Algunas oficinas lo esperan en su escritorio escribiendo constantemente y quieren saber cuántas líneas de código ha producido. Otros lo mantendrán en reuniones perpetuas de ir a ninguna parte por el simple hecho de leer en voz alta las cosas que ya se dijeron por correo electrónico. Pero luego obtienes lugares donde se te pide que ayudes a diseñar un producto, hablar con el departamento de marketing o de arte, capacitar a los clientes o ir al sitio para ayudar a arreglar las cosas.

    Trabajar durante 10 horas al día no es más común para un programador que para, por ejemplo, un ingeniero estructural o un sacerdote.

    Claro, puede suceder que tenga mucho que hacer en poco tiempo, pero la mayoría de las veces, eso es solo el resultado de una mala planificación o mala suerte.

    Los programadores corporativos trabajan el tiempo corporativo. Los programadores independientes trabajan tanto como quieren (o pueden hacer los arreglos por sí mismos). Parece que tienes una idea equivocada.

    En cualquier caso, cualquiera que sea la cantidad de horas, una buena parte de eso (en promedio, aproximadamente la mitad) debería destinarse a aprender cosas nuevas. De lo contrario, a medida que entren los nuevos tipos, estás en una forma segura de perder tu trabajo para ellos.

    Cómo te ve tu jefe depende de tu jefe, no de tu trabajo. Si tu jefe es un idiota, no importa cuál sea tu trabajo.

    La parte más dura suele ser la relación con el cliente. Ayudarlos a comprender el triángulo de gestión del proyecto puede ser una tarea inquietantemente difícil.

    Hay muchos tipos de trabajos de programación, y todos son diferentes. Parece que estás enfocado en programadores corporativos. Hay muchos de esos, pero definitivamente no todos. Hay incluso más programadores de inicio (que trabajan en empresas relativamente pequeñas), y probablemente la misma cantidad de freelancers.

    También hay subcontratistas, programadores que trabajan en empresas que venden programación como servicio. Por lo general, trabajan en varios proyectos para varios clientes.

    Aunque todos los programadores tienen algunas experiencias laborales compartidas, hay una gran cantidad de diferencias entre los diferentes trabajos de programación.

    He estado programando para ganarme la vida durante casi 40 años, y me ha llevado casi tanto tiempo finalmente descubrir lo que realmente quiero (y no quiero) de mi carrera como programador. La experiencia es, sin duda, el mejor maestro.

    El entorno de trabajo más ideal para la programación es muy parecido a lo que haría si estuviera programando desde casa para su propia empresa bien financiada que desarrolla su propio producto en un horario razonable. He trabajado para docenas de empresas y clientes y ninguno fue tan agradable como desarrollar mi propio software para mi propio producto en mi propia empresa; en este tipo de entorno, la programación es para mí el mejor trabajo en la tierra y realmente tengo mucho de diversión haciéndolo.

    También he tenido experiencias de trabajo excelentes y agradables para otros, pero desafortunadamente este tipo de empresas y / o clientes son minoría.

    El entorno de trabajo menos ideal para la programación tendría las siguientes cualidades (he experimentado todo esto en un momento u otro durante mi carrera, generalmente varias veces):

    • Gestión que no tiene experiencia personal en desarrollo de software.
    • Gestión que “lidera” por dictar. (Cualquier idiota puede dar órdenes, lo que significa que alrededor de la mitad de los administradores de software son idiotas; los buenos han sido los propios desarrolladores, lideran con el ejemplo y no hacen demandas irrazonables)
    • Una empresa que no desarrolla productos tecnológicos, pero que aún necesita desarrollar software (como una empresa de la industria financiera).
    • Quedarse atascado haciendo mantenimiento en el código que alguien más escribió.
    • Una “metodología” estándar de la compañía dentro de la cual se debe desarrollar el software (estos esfuerzos para “mejorar el proceso” fallan más de lo que tienen éxito).
    • Se le exige que trabaje en un plazo establecido por otra persona, y que no estuvo de acuerdo voluntaria y felizmente.
    • Debe adoptar el “estilo de empresa” como su estilo para desarrollar su código, cuando entra en conflicto con su propio estilo personal de desarrollo de código (las mejores empresas para trabajar comprenden que los buenos desarrolladores suelen tener sus propios estilos de desarrollo propio que funcionan mejor para ellos).
    • Tener que trabajar con otros desarrolladores que tienen una agenda secreta que consiste en sabotear su trabajo y / o su reputación de maneras sutiles que su gerencia pasa por alto o ignora, para que se vean mejor y lo hagan ver peor. (Incluyo este, ya que me ha sucedido esto muchas veces durante mi carrera, ten cuidado, ya que hay algunos programadores muy malvados que no dudarán en apuñalarte injustamente por la espalda, son más comunes que tú ‘ d pensar).

    Además, para una carrera agradable en la programación, recomendaría evitar tanto las grandes corporaciones como las pequeñas empresas emergentes. Trabajar para grandes corporaciones a menudo te deja sin alma, y ​​el caos en la mayoría de las pequeñas empresas es casi intolerable. Las empresas pequeñas y medianas exitosas y establecidas han sido las que más he disfrutado trabajando.

    Pero, lo más importante para tener una carrera feliz en la programación es tener un excelente supervisor inmediato que sea cortés, respetuoso, positivo, alentador y entienda el desarrollo de software tan bien como usted (o mejor). Esta única cosa puede marcar la mayor diferencia al hacer que su trabajo de programación sea el mejor trabajo del mundo o una pesadilla de la que no puede esperar para salir.

    Trabajamos como cualquier otro profesional. Lo que ves en la televisión no está muy cerca de la realidad.

    La mayoría de los programadores trabajan 9-5 o horas similares.

    Lo que la mayoría de la gente entiende mal es el “tiempo flexible”. Algunas compañías dan total libertad a los programadores, pueden ir y venir cuando lo deseen, siempre que entreguen a tiempo.

    La mayoría de los programadores no organizados no saben cómo usar esta libertad, por lo que pierden el tiempo al principio y trabajan muchas horas cuando están cerca de los plazos.

    Lo curioso es que ningún programador te dice que tuvieron que trabajar largas horas porque estaban desorganizados al principio, solo dicen “esto es programación para ti”.

    Aprendiendo nuevas cosas:
    Como en cualquier otro campo de trabajo, verá personas con la intención de ir más allá o ganar más invirtiendo muchas horas de su tiempo personal para aprender cosas nuevas.

    Del mismo modo, como en cualquier campo, ve programadores que están contentos con lo que ya saben y continúan sobreviviendo.

    Si trabajas 10 horas al día durante algunos años, puedes ser muy bueno. Muy buenos programadores son como estrellas de rock, literalmente. Y la forma en que las cosas están evolucionando, esto es solo el comienzo.

    Permítanme decirlo de esta manera, si usted es muy bueno y no le gusta su jefe o su empresa o su tecnología, puede cambiarlo en un instante. Habrá de 10 a 20 cazadores de cabezas en cualquier momento listos para ofrecerle algo mejor. Los buenos programadores son raros y buscados.

    Puedes obtener todo el respeto que quieras y, como dije, siempre hay otra compañía dispuesta a respetarte más. Simplemente haz tu mejor esfuerzo y conviértete en un programador superior. La práctica hace la perfección.

    Las habilidades de programador, que no son solo habilidades de programación, como se describe en las otras respuestas, también son aplicables a otros trabajos en tecnología.

    Tengo experiencia en escribir código que no se usa para productos o requisitos del cliente. He trabajado como consultor donde necesitas responder rápidamente al cliente sobre la viabilidad de una idea. El conocimiento de programación, a nivel macro (también conocido como “arquitectura”) le ayuda a hacer esto.

    El conocimiento de programación también es útil en las operaciones y la administración del sistema, donde no es suficiente conocer los pasos para determinar el problema y solucionarlo, pero uno necesita ver la causa subyacente. Una solución más duradera implicaría escribir código para ayudar a solucionar el problema, o hablar con los desarrolladores del sistema, donde ayuda una comprensión común de la programación.

    Los programadores necesitan aprender constantemente, ya sean los desarrolladores de sistemas de negocios típicos o los ingenieros de inicio ahora famosos que necesitan aprovechar un gran cuerpo de conocimiento para construir soluciones.

    Hoy es domingo Acabo de llegar a casa del trabajo. También trabajé ayer. Puse alrededor de 10 horas este fin de semana. Mi peor semana laboral como programador es de 84 horas. Pero he trabajado exactamente 1 fin de semana en el último año. Y mi semana laboral promedio es de 45 horas. Probablemente podría llegar a cerca de 40, pero prefiero tomar un descanso en el medio del día, ya que parece funcionar mejor para mí.

    En cuanto a la parte de aprender nuevos idiomas, esta es una pregunta interesante para mí. He hecho una carrera al tomar trabajos que involucran idiomas que nunca he programado. Tampoco es realmente tan importante. Nunca me preocupo por aprender al azar un nuevo idioma. Si puede programar, puede elegir rápidamente la sintaxis de un nuevo idioma en la mayoría de los casos. La única advertencia importante en eso es elegir un nuevo paradigma. Y con eso quiero decir funcional vs lógico vs procesal vs oo. Eso podría tomar un poco más de tiempo y esfuerzo, pero aún debería ser factible con relativa rapidez.

    Nunca me he sentido irrespetado en ninguna empresa para la que he trabajado. Estoy bien compensado, se me otorgan beneficios muy decentes, rara vez se microgestionan y siempre se me reconoce por mis logros.

    No sé si esto es cierto para toda la industria de la programación, pero sé que el tipo de trabajo que hago es excelente.

    Solía ​​ser el infierno. Una de las cosas más impactantes que he leído fue el escándalo relacionado con la carta “EA Spouse”. Puedes buscarlo en Google, pero en resumen, en las compañías de juegos, los programadores se ejecutarán de forma irregular. El “tiempo de crisis” comenzaría el primer día e iría por todo el proyecto. Las personas trabajarían 80-100 horas a la semana y se esperaría que aparecieran los 7 días de la semana. Dolores de cabeza y dolores de espalda eran comunes, otras enfermedades también. La seguridad laboral era nula y, de hecho, la mayoría de las personas son despedidas después de que se realiza un proyecto. Los patrones no mostraron respeto hacia sus trabajadores. Las “listas negras” se intercambiarían entre las empresas para atornillar a los empleados desobedientes.

    Después de que estalló el escándalo y la gente comenzó a hablar sobre los abusos en el lugar de trabajo, se suponía que habría reformas y mejoras. Leí eso incluso años después, aunque algunos de los mismos abusos permanecieron en la industria.

    Pregunta de seguimiento, ¿estás dedicado a ser programador?

    Lo primero es lo primero. Trabajar como programador es emocionante, intenso (cuando la fecha límite está por delante), divertido y realmente aprenderás mucho de diferentes foros e hilos si olvidaste algunos comandos simples que has aprendido.

    Los aspectos básicos y fundamentales de la programación son los más importantes. Sé que algunos de los lenguajes conocidos también importan, pero también el algoritmo detrás de cada programa lo haremos valioso.

    Pero también trabajar como programador tiene su lado oscuro como cualquier otro trabajo.

    No cumplir con el alto nivel de expectativas de sus gerentes y jefes superiores es una de las angustias que necesita para prepararse.
    Sé quien eres y si crees que te estás divirtiendo para ser un programador, disfrútalo. sentirás que no te estás despertando para trabajar duro.

    Puedes hacer el trabajo que amas, esencialmente, las cosas que harías como tu pasatiempo favorito te traen dinero, y mucho, en el mundo de hoy.

    Las diferentes implementaciones pueden variar: puede que no le guste el tipo de trabajo que debe realizar o que no aprecie lo que está haciendo su empresa. Puede ser difícil en un tipo de entorno incorrecto, como es el caso con cada línea de trabajo. Si trabajas bien y creas valor, serás respetado. Si no lo hace, o si las personas a su alrededor son malas, no lo hará.

    Lo más importante: los días de trabajo de 10 horas son un antipatrón y no son algo que valga la pena hacer. El agotamiento y la falta de sueño pueden parecer buenas ideas a veces, pero son pésimas inversiones a largo plazo. Además, su productividad y concentración comienzan a disminuir rápidamente después de un cierto período de tiempo, por lo que podría terminar pasando mucho tiempo “trabajando”, mientras progresa poco. No creas en el mito de “convertir el café y el azúcar en código”, no es así como funcionan tu cerebro y tu cuerpo.