¿Los ingenieros o desarrolladores de software lamentan alguna vez su profesión? Si es así, ¿por qué?

¿Todo el software que escribimos será … tan inútil y olvidado?

Todos lamentarán ser desarrolladores de software en algún momento. Si te arrepientes desde el principio, es una buena señal de que serás un gran desarrollador, porque puedes quitar esas molestas realizaciones filosóficas y seguir pragmáticamente:

  • Un arquitecto puede crear un edificio que dura generaciones y deja una marca en el mundo,
  • Un atleta puede establecer registros que sean recordados e inmortalizados,
  • Cineastas y otros artistas y ganar fama y adulación de la cultura pop,
  • Los científicos pueden hacer descubrimientos con su nombre que cambian nuestra comprensión del mundo,
  • Los ingenieros e inventores “reales” crean nuevas tecnologías que hacen historia, como el circuito integrado en sí …

Pero el software?

El software es efímero; No tiene existencia física. Funciona con productos hechos por el hombre, que se vuelven obsoletos. En el mejor de los casos, el software se convierte en un anarquismo pintoresco después de algunas décadas. En el peor de los casos, lo que una vez fue vanguardista se convierte en una broma obsoleta que nunca querrás mencionar en un currículum, a pesar de pasar todo un año de tu vida ayudando a construirlo. Ese fue mi momento de arrepentimiento.

Te va a pasar a ti. Muchas veces. Algunas cosas no funcionan. No te preocupes por eso.

Comprenda que el software es lo que permite que todas estas profesiones estén donde están ahora. Sin él, no tendríamos el mundo moderno como lo conocemos. Piénsalo:

  • Las estructuras increíbles solo se pueden crear con CAD y análisis estructural avanzado,
  • El atleta está bien pagado porque los partidos son televisados ​​y distribuidos a través de sistemas y dispositivos de comunicación controlados por software,
  • Los cineastas y artistas tienen magia virtual al alcance de la mano donde todo se puede procesar digitalmente,
  • Lo mismo ocurre con el diseño de vehículos, sin mencionar que todos los vehículos actuales son realmente 20 computadoras con software,
  • ¿Y una red eléctrica moderna? Imposible operar sin software,
  • Diseñando los circuitos integrados que alimentan todas estas máquinas y dispositivos,
  • Negocios modernos, contabilidad, finanzas?

Y necesito mencionar:

  • ¿Exploración espacial? ¿Todo el internet? ¡Hola!

Te dan la imagen.

El software está en el corazón de la era de la información. Como tal, hay muchas grandes ventajas de ser un desarrollador de software. Todavía hará que las personas sean las más ricas del mundo por un tiempo. Pero Bill Gates no será recordado por crear un intérprete BASIC en ese Altair-8 que en ese momento fue una hazaña increíble. Ahora, solo una nota al pie.

Estar en el centro de nuestra era moderna se ve compensado en parte por el hecho agridulce de que nuestro trabajo siempre es obsoleto y olvidado al final por el ritmo de la tecnología misma … que el software permite. De alguna manera, nuestra industria tiene la culpa de estigmatizarse al declarar que el software anterior (pero que funciona y funciona perfectamente) es obsoleto, como en: esta nueva versión 10 tiene todas las comodidades que necesita … Una y otra vez hasta donde esto está arraigado en la sociedad de consumo.

Esa es la gran compensación. El desarrollo de software siempre será como una ola que se estrella. Montar, coger el siguiente. Siempre un frente que avanza. Casi siempre vale la pena, a pesar de los remordimientos. Si desea “marcar la diferencia”, la clave es no languidecer allí, suba a las siguientes olas y mantenga el arte avanzando.

Me alegro de que, eventualmente, nuestra industria inevitablemente creará IA, lo que algunos dicen que impulsará la próxima etapa del avance humano, o incluso la singularidad. Como dije en mi primera publicación de Quora, creo que tenemos un camino por recorrer, pero parece estar más cerca cada año. Cuando ocurra, hará que casi todo en la historia humana palidezca en comparación, y será gracias a los desarrolladores de software que han mantenido los avances en tecnología y sociedad, fortaleciéndose.

¡Ahora, volvamos a programar esa utilidad web que estoy seguro de que todos usarán en 10 años!

Me arrepiento casi a diario. Este es el por qué

  1. como en el sorprendente libro Amazon.com: Disrupted: My Misadventure in the Start-Up Bubble eBook: Dan Lyons: Kindle Store. Vemos a un periodista / escritor talentoso y altamente capacitado luchar por comprender la idiotez de la burocracia tecnológica. Esto se aplica a nuevas empresas y grandes empresas. Bueno, los ingenieros no son tan diferentes a los periodistas. Tienen títulos avanzados y / o años de experiencia en campos muy cuantitativos y competitivos. Han sido entrenados para pensar críticamente y resolver problemas de manera eficiente. Sin embargo, luego un grupo de visionarios y gerentes intermedios mentalmente holgazaneados les ordenan que busquen minimizar el riesgo a la baja para que puedan llegar al juego de fútbol de sus hijos a tiempo.
  2. Es un entorno en gran medida anti intelectual. Muchos ingenieros son piratas o falsificaciones o simplemente lo están haciendo por dinero y han desarrollado un pequeño rincón de poder en una base de código bizantino u otro. Están contentos de simplemente descartar cualquier idea nueva como otro script kiddy flash en la sartén, y esencialmente solo tomarán en serio los argumentos que los involucren directamente en su pequeño rincón de experiencia. ¿No me crees? intente usar scala idiomática en una entrevista de google. Le dirán que los algoritmos son importantes y los principios de ingeniería, no el lenguaje, pero luego lo obligarán a programarlo en C en la pizarra. Y cuando se ahoga porque no puede cambiar de marcha instantáneamente al componer una buena serie de funciones que se pliegan a la izquierda en un loop monolítico con ** p, sonreirán, apuntarán “script kiddy” en su pequeño bloc y agradecerán su tiempo. Incluso si por casualidad trabajaste como desarrollador C hace 10 años. Hay muy pocos que alcanzan el nivel de valorar verdaderamente el descubrimiento y la creatividad por encima de todo lo demás, y las hordas que solo quieren proteger y proteger su poca libertad de comprensión. Nunca aprendieron Scala, y ¿por qué deberían hacerlo? Tampoco usan los componentes funcionales de c ++ 11, pero ¿por qué deberían hacerlo? Trabajan en google, lo saben todo. Si fuera valioso, lo sabrían. Ok, Twitter usa Scala, ¿quiénes son? ¿FB está contratando ingenieros de Haskell? lo que sea … Spark fue escrito con Scala. Oh pfff “ordenado” … este chico suena como ese TA matemático molesto que tuve una vez que no podía codificar.
  3. El pago de todas las cosas consideradas no es tan bueno. Creo que mi compensación es mucho más de lo que jamás había soñado ganar, pero simplemente no vale la pena por un papel que irónicamente conlleva muy poco respeto y cantidades interminables de tedio.
  4. La política y la entrega son las únicas formas de escapar del tedio. Requiere absorber y politizar con la capa “visionaria” de bufón. Si logras lograrlo momentáneamente, entonces estarás algo feliz, pero debes saber que en cualquier momento la alfombra se quitará de debajo de ti y se te pedirá que vayas a la prueba de código de mierda. O algo así.
  5. sus “otras personas” trabajan “a quienes se les paga más que a ustedes, para tener reuniones para simplemente decidir quién hace el trabajo real. Sugerencia: ¡siempre deciden que debería ser USTED!
  6. El espacio de la oficina de cine y el espectáculo Silicon Valley son absolutamente precisos. Puede elegir de qué combinación convexa de las dos quiere formar parte.

Actualización: cansarse un poco de responder a comentarios similares, así que lo haré aquí. Aparentemente * algunas * personas sienten que mi arrepentimiento tiene algo que ver con algún tipo de falta de ambición, falla personal o fracaso. Si bien esto es, literalmente, más evidencia del trabajo pesado de la industria. De hecho, algunas personas simplemente no pueden imaginar lo que es para otra persona que no es un subconjunto igual o menor de sí mismas y parece confundir el desarme con algún tipo de debilidad moral u otra. Por favor, antes de hacer tales juicios no calificados, indique algo interesante que haya contribuido realmente.

Hay otro tipo de argumentos populares en torno a “bueno, ¿por qué no hacer algo más?”. Si bien esto es comprensible, también me parece un poco de nieve. Asume que no he hecho cosas como trabajar en aprendizaje automático y en bases de datos y en otras áreas de la industria, en grandes y pequeñas empresas. El hecho es que he pasado años y años buscando una manera de hacer esta profesión interesante. Francamente en este punto, después de tantos años, la línea de meta está más cerca del comienzo. Esto no significa que si volviera no haría las cosas de manera diferente. Ese es el significado del arrepentimiento. Se trata del pasado más que del presente.

Finalmente, esto no tiene nada que ver con Google ni con el resultado de una entrevista en particular. Lo usé como un ejemplo de cómo la industria no es satisfactoria intelectualmente. Google es un lugar que se presenta como un palacio filósofo de los reyes en las nubes. La triste realidad es que no es nada de eso. Tampoco ninguna de las principales compañías tecnológicas. Si crees lo contrario, solo estás bebiendo el koolaid corporativo barato …

Como mujer, si. Frecuentemente.

Cuando decidí hace casi 20 años seguir mi licenciatura en tecnología informática, fue el resultado de una actitud de “puedo hacer cualquier cosa”, pero después de años de estar en ella, me siento agotado y fuera de lugar. Pequeñas cosas han sucedido a lo largo de los años que me hacen sentir que no me toman en serio. Cosas como:

* Ser la única persona (y una mujer) con un título de Ingeniero de Software Sr. en mi departamento no invitado a reuniones de arquitectura

* Siendo la única persona con un título de Ingeniero de Software Sr. puesto en un seminario web “Cómo hablar con personas técnicas” todo el día (junto con todas las otras mujeres de tipo PM)

* Dar ideas durante las reuniones para ser ignoradas, para que un compañero de trabajo las repita textualmente, con éxito

Para ser justos, esto le sucede a todos. Pero con cosas como estas suceden con frecuencia, se hace muy difícil evaluar objetivamente estas situaciones. Estos son los momentos en que me arrepiento.

Hay otras razones por las que me arrepiento. A veces es difícil dejar de pensar en resolver un problema. Tener que estar sentado todo el día es un peligro para su salud, y tener que sentarse en un cubículo beige tampoco puede ser bueno para la salud mental. Tengo ansiedad social y odio los scrums diarios (y el mal uso general de ágil). Es difícil hacer un trabajo bueno y creativo cuando no está de acuerdo con la misión de su empresa o su gerente.

Pero, obviamente, los arrepentimientos no son lo suficientemente fuertes como para que yo deje la industria. Lo que me mantiene es el tiempo que he tenido grandes gerentes y he creado software que los usuarios adoran. Amo resolver problemas. He intentado realizar más trabajos de tipo BA y he intentado un trabajo de servicio en el lateral. Pero siempre tenía ganas de seguir programando.

Entonces, yo diría que si tienes ganas de programar, no valdrá la pena dejar los remordimientos.

Los desarrolladores de software, como cualquier otro profesional , pueden encontrarse en una situación en la que lamentan haber elegido esta profesión.

En el desarrollo de software, hay dos grupos de personas: los que están por el dinero y los que están por diversión .

Su motivación principal determinará sus sentimientos en el futuro, especialmente cuando las cosas no funcionan como se esperaba. Cuando no puedes encontrar un trabajo. Cuando el ambiente de trabajo se vuelve demasiado dinámico para su gusto. Y todo lo demás que puede ser molesto para ti.

Estoy en el desarrollo de software por diversión , luego dinero más tarde. Sé que necesito ganar con mis esfuerzos, lo cual hago muy bien, pero no es mi principal motivación.

Desde que empecé a desarrollar el software, he conocido a muchos desarrolladores que no están contentos con la decisión que tomaron de incursionar en la ingeniería del software.

En 5 de cada 10 casos, su frustración se debió al hecho de que no lograron conseguir el trabajo de sus sueños, después de luchar muy duro para adelantarse a la competencia.

Posiblemente su motivación aquí era sobre el dinero. Pero creo que esto puede suceder incluso a personas cuya verdadera pasión es el desarrollo de software.

Cuando tiene necesidades y sus habilidades no pueden abrir puertas para un trabajo remunerado relevante, comienza a sentirse estresado. Empiezas a cuestionar tus decisiones pasadas que tomaste.

A veces, los sentimientos de resentimiento pueden estar relacionados con entornos de trabajo deficientes.

Nunca me he arrepentido de ser un desarrollador de software. Siempre puede convertir una mala situación en un momento de alegría si responde de la manera correcta.

Todo lo mejor en tu carrera.

Puedo tener una perspectiva diferente sobre esto ya que la ingeniería de software no es mi primera profesión. Puedo compararlo con algunas de mis otras profesiones …

Estuve en la USAF durante varios años, activo y reservado, y no estoy seguro de que esto pueda considerarse una carrera típica. Mi trabajo era principalmente el mantenimiento de aeronaves con un trabajo secundario de las fuerzas de seguridad. Las horas fueron largas, el sueldo apestaba, pero pude ver el mundo y tuve un vínculo con los chicos de mi unidad que es imposible en el mundo civil. La aventura fue la mejor parte de este trabajo. Sentarme en la pantalla de una computadora escribiendo código durante los últimos 15 años me hace extrañar la aventura. Los trabajos de alta aventura como este son el dominio de una persona joven, por lo que, en comparación con el cubículo seguro, diría que la ingeniería de software es una mejor profesión a largo plazo. En algún momento, todos tenemos que colgar el uniforme y hacer otra cosa.

Me gradué con una licenciatura en Ingeniería Industrial, por lo que este campo profesional fue el primer “cuello blanco” con el que me pude comparar. Trabajé un poco en ingeniería industrial verdadera y realmente me gustó. Trabajé como ingeniero mecánico durante un par de años y eso también me gustó porque pude poner en mis manos las cosas reales que estaba diseñando. La desventaja es que estos ME e IE tienen muchos menos empleos disponibles porque están vinculados principalmente a la fabricación. Este tipo de trabajos también se encuentran principalmente en el “cinturón de óxido” u otros lugares industriales. Otro inconveniente es que, dado que este no es un trabajo de cubículo y un entorno industrial, existe la posibilidad de lesiones. Tuve algunas lesiones en el trabajo y el cubículo comenzó a sonar como un buen lugar para estar … jajaja. Pasé de la ingeniería mecánica a la ingeniería de software al final de mi último trabajo de ME. Estaba escribiendo software (SCADA) para ejecutar algunas de las cosas que había construido y realmente disfruté este tipo de trabajo. En un par de años y un puñado más de cursos universitarios de CS, estuve en la tierra de la ingeniería de software y no he mirado hacia atrás desde entonces.

Avance rápido 16 años y aquí están las cosas que veo como desventajas de esta profesión:

  1. Visa H-1B. Esta es una maldición de todo ingeniero de software estadounidense. Las empresas con baja ética presionarán para reemplazar a los ingenieros estadounidenses por un “esclavo” H-1B extranjero más barato en caso de que tengan la oportunidad.
  2. No ingeniero “sello”. Deseo que esta profesión requiera una licencia de ingeniero estatal como otras profesiones de ingeniería. Esto “limpiaría a todos los tontos” como dicen y dificultaría la competencia extranjera.
  3. Exento / salario. La ingeniería de software es más un trabajo de tipo “producción” que un trabajo de “gestión / profesional” que generalmente requiere el pago del tipo de salario. En mi experiencia, el pago del salario en ingeniería de software significa trabajar más de 45 horas, cobrar 40. Es solo un medio para que una empresa se aproveche de alguien. Una empresa para la que trabajé tuvo un año difícil, por lo que me redujeron a 30 horas a la semana (promedio), pero si trabajaba más de 40 en una semana dada debido a un aumento, todavía me pagaban 40 horas. Si la semana siguiente fue lenta, digamos 20 horas, solo me pagaban las 20 horas.
  4. Entrevistas dolorosas. Trabajo principalmente en contratos, así que entrevisto con bastante frecuencia y algunas veces los entrevistadores hacen cosas extrañas que me dan ganas de arrancarme el pelo. La mayoría de las veces me estoy cansando de las preguntas de “informática 101”, pero supongo que tienen que preguntar porque hay bastantes solicitantes que envían currículums de mierda. También he tenido entrevistas telefónicas en las que la persona pregunta un párrafo valioso sobre algún escenario de codificación que requeriría al menos unas pocas horas para trabajar, pero necesita la respuesta en 5 minutos … y el tipo está hablando con un fuerte acento hindi y Habla muy rápido. Si la persona para la que estaría trabajando tiene un fuerte acento que es difícil de entender, generalmente paso el trabajo allí mismo. A menos que pueda comprender claramente los requisitos, etc. de la cadena de mando, está condenado.
  5. Ego / actitud de algunos nerds. En este campo, te encontrarás con algunos desarrolladores que piensan que su mierda no apesta. Estarán tan enamorados de sí mismos que es imposible trabajar con ellos. Me he encontrado con algunos de estos imbéciles. Es posible que escriban un código correcto, pero lo hacen para no mejorar el producto, lo hacen para estimular su ego. Pueden tomar un problema 2 + 2 y hacer la solución más complicada para mostrar cuán buenos son para abstraer, usar delegados o cuántos hilos pueden generar. Entonces, por supuesto, tendrás que mantener y trabajar con el código que produjo este imbécil y será mejor que no lo critiques porque ha estado besando el culo de la gerencia desde el primer día y todos piensan que es lo mejor desde el pan rebanado. Cuando las cosas salen mal o aparecen errores, este imbécil hará todo lo posible para culpar a los demás.
  6. Poco en común con los compañeros de trabajo. No encajo con este grupo. No soy un hipster, no me siento y juego videojuegos en mis horas libres, y simplemente no encajo con esta cultura. He trabajado en contratos para varias compañías diferentes y todavía tengo que encontrar un compañero de trabajo que tenga algo en común con otro que no sea el trabajo que hacemos. Si veo chicos en la oficina con chanclas, colas de caballo y barbas brillantes, sé por qué realmente quiero trabajar desde casa. Si no son de este tipo, son de la India y tienen aún menos en común, incluso hablar inglés. Desearía que hubiera más mujeres en este campo para equilibrar las cosas. La típica compañía de software es un festival de salchichas. Quizás esto se deba a mi experiencia militar o algo así, pero realmente soy un pez fuera del agua en cuanto a cultura.

Terminaré esto diciendo que realmente no me arrepiento de este campo, parece que hay suficiente trabajo para mantenernos a todos ocupados y creo que ese será el caso por varios años más. ¿Es el mejor trabajo del planeta? Absolutamente no.

  • Realmente apesta no poder relacionar lo que haces y cómo lo haces con alguien que no está en el 1% de la población que son desarrolladores profesionales. La alegría de encontrar una solución mágica a un problema difícil, la frustración de encontrar un error en el código que olvidó que escribió, bien podría estar hablando en lenguas
  • No hay nada tan transitorio como el software, para el 99% de los desarrolladores. Del código que he escrito en los últimos 30 años, estimaría que ninguno de los que tiene más de 7 años se volverá a ejecutar. Eso significa 23 años de producir básicamente nada de valor duradero. Nadie dijo que el software duraría, pero es algo profundo si * realmente * lo piensas. Es un poco diferente en Open Source, pero el 95% de las empresas no lo alientan en absoluto, no si está cerca de su negocio principal, que es a lo que se dedica su tiempo.
  • A menos que esté haciendo Open Source, no hay forma de “mantener” lo que hace. Debe firmar los Acuerdos de confidencialidad, así como los derechos de propiedad intelectual que declaran que todo lo que hace es “trabajar por cuenta ajena” y pertenece al 100% del empleador. La excepción es, por supuesto, si usted es su propio jefe y autoriza su propio código. Más poder para ti si estás en el 1% de las personas que hacen esto. Sin embargo, cuanto más exitoso sea su código, menos tiempo pasará codificando y más tiempo preocupándose por problemas comerciales, ventas, marketing, impuestos, etc.
  • No importa lo que diga la gente, hay un techo “duro” si no desea cambiar de carrera por completo y convertirse en un gerente de ingeniería de software. Solo entonces puede realmente ganar mucho dinero y avanzar a una posición superior que paga un 50% más de lo que gana. Todos los años piensas: “¿Soy un imbécil por no entrar en la administración?”
  • La persecución sin fin hacia la “próxima gran cosa”, generalmente una plataforma y / o lenguaje. Se supone que la próxima gran cosa es hacer que todo lo que hiciste antes sea obsoleto e irrelevante. Unos meses más tarde, verá que solo está resolviendo los mismos viejos problemas, las mismas viejas formas, tal vez con una sintaxis ligeramente diferente o una pantalla diferente. Un algoritmo de clasificación es un algoritmo de clasificación, ya sea en un mainframe de 1970 o en un reloj inteligente 2017.
  • A nadie le importa cuando su software está funcionando . Cuando aparece un problema, hardware, software, firmware, nube, lo que sea, de repente eres importante pero no en el buen sentido. En la mayoría de los casos, se eliminan de dos a tres niveles del cliente (“persona”) que realmente utiliza su código. Por lo tanto, es raro ver de primera mano si su código está haciendo una diferencia en la vida de una persona real.

Encontrar remordimientos por un trabajo que paga 6 cifras con una inversión educativa modesta, que tiene una de las tasas de desempleo más bajas y que ofrece muchos beneficios, como trabajar bajo A / C, teletrabajo, generosos beneficios de salud y jubilación, es ciertamente un ” problema del primer mundo “.

Lo único que lamento es no comenzar antes. Me tomó algunas muestras profesionales diferentes – comida rápida, mecánica, etc. – antes de que decidiera ir a la universidad para estudiar programación a mediados de mis 20 años.

En comparación con los otros trabajos que he tenido, el desarrollo de software es un sueño. ¿Hay cosas que apestan de la carrera? Por supuesto que los hay. Pero, por eso se llama “trabajo”.

No hay una carrera en el planeta que se considere “perfecta”. Y es natural que el hombre encuentre fallas en algo una vez que uno lo ha experimentado durante el tiempo suficiente. Incluso una comida favorita se vuelve mundana si se come con demasiada frecuencia. Y, irónicamente, no trabajar en absoluto / estar retirado puede ser una experiencia muy negativa para muchas personas. La clave es comprender que lidiar con la imperfección / cosas que apestan es parte integral de la vida cotidiana: no hay escapatoria a largo plazo.

Cosas de las que no me arrepiento:

  • Ser capaz de encontrar un trabajo dentro de una semana o dos de buscar.
  • Ser contactado por reclutadores que quieran contratarme.
  • Ganar lo suficiente para pagar mi hipoteca a principios de los 40, estar completamente libre de deudas y tener un sólido paquete de jubilación.
  • Ser constantemente desafiado.
  • Ser capaz de teletrabajar.
  • Poder trabajar en interiores bajo A / C y sin esfuerzo físico ni ensuciarse.
  • Ganar lo suficiente para no tener que preocuparme por el dinero y permitir que mi esposa no trabaje.
  • Que me otorguen un capital significativo en mi empresa que crece en valor.
  • No tener que ir a la universidad por más de 4 años (aunque finalmente decidí comprar un MS / CS).
  • No tener que trabajar más de 40 horas por semana (a diferencia de la mayoría de los abogados).
  • No tener que estar de guardia.
  • Obteniendo fuertes paquetes de beneficios.
  • No tener que preocuparse por el cuidado de la salud.

Cosas que pueden ser engorrosas a veces, pero que palidecen en comparación con todos los aspectos positivos:

  • Tener que “desempeñarse constantemente”. El salario / puesto / capacidad para encontrar empleo dependen de que uno sea capaz de desempeñarse consistentemente.
  • Estrés antes de un lanzamiento programado.
  • Estar atrapado en un problema difícil y que me persiga mientras no estoy trabajando y tratando de relajarme.
  • Tener que resolver constantemente problemas difíciles y estar mentalmente “activo”.
  • Sesgo hacia los trabajadores más jóvenes.
  • Continuar con los cambios de paradigma y tener que volver a aprender nuevas tecnologías cada 8-10 años. (Sin embargo, esto también puede ser positivo, me evita aburrirme).

La clave es la perspectiva. Tuve la suerte de haber trabajado en varios trabajos antes de convertirme en un desarrollador y puedo apreciar completamente el trabajo en relación con el resto.

Sin embargo, el trabajo no es para todos. Uno debe tener una propensión natural a disfrutar de la resolución de problemas, y es muy difícil ser un ingeniero competente sin un grado de inteligencia que se incline hacia el extremo superior de la distribución del coeficiente intelectual.

En muchos sentidos, lamento haberme convertido y seguir siendo un profesional de ingeniería de software durante gran parte de mi carrera. Mi carrera comenzó cuando Apple Computer, Inc. acababa de ser fundada. Permanecí en puestos de alta tecnología relacionados con el software hasta hace muy poco (ingeniero de software, gerente de ingeniería de software, gerente de programas de software, profesor de ingeniería y gestión de software, director de operaciones para un inicio intensivo en software).

¿Cuáles fueron los buenos aspectos de una carrera de ingeniería de software?

  • El salario atractivo significaba poder comprar una casa cómoda y al mismo tiempo ahorrar para la jubilación y para aquellas emergencias inesperadas que inevitablemente ocurren.
  • Vivir en Silicon Valley significaba estar en medio de avances emocionantes en alta tecnología, inventar e innovar en cada proyecto, y estar rodeado de colegas altamente inteligentes.
  • La ingeniería de software puede proporcionar mucha estimulación intelectual. Esto es especialmente cierto si tiene la responsabilidad de la adquisición y análisis de requisitos, el desarrollo de la arquitectura y otros diseños de alto nivel. (La programación no es más que una tarea en el proceso total de ingeniería de software, afortunadamente. Realmente no disfruté escribir código y depurarlo después de los primeros dos años).
  • Todo el conocimiento / experiencia en ingeniería y las habilidades interdisciplinarias que adquirí durante mi carrera condujeron a una carrera post-jubilación muy gratificante como mentor para emprendedores.

¿Cuáles fueron los aspectos desafortunados de una carrera de ingeniería de software?

  • El estereotipo de los ingenieros de software que no tienen ni idea social se ha convertido en un estereotipo por una razón. Por supuesto, hay muchas personas “normales” que trabajan en una organización de I + D de software. Pero muchos (no la mayoría) no solo son socialmente incómodos, sino que en realidad no pueden desarrollar relaciones colegiadas maduras en equipos. Perdí la paciencia con la inmadurez cuando cumplí 30 años.
  • Muchos ingenieros de software tienen dificultades para comunicarse cara a cara porque muchos no son tan buenos para leer el lenguaje corporal. (Ha habido al menos un estudio que demostró que el Síndrome de Asperger es más frecuente entre los ingenieros de software que en la población general. Estos ingenieros se describen como “de alto funcionamiento” pero aún “socialmente desafiados”). El tacto es una habilidad que está en escasez en organizaciones de ingeniería de software. Debido a que muchas compañías de alta tecnología promueven a sus principales ingenieros de software y gerentes de proyectos en puestos de gerencia completa, esa falta de tacto y falta de idea social eventualmente impregna la organización. No diría que soy particularmente conocedor de la sociedad, pero estar dentro de este tipo de entorno con problemas de comunicación fue desagradable y frustrante.
  • Las mujeres aún no son bienvenidas en la mayoría de las organizaciones de I + D de alta tecnología en 2016. Son contratadas pero a menudo son tratadas como extrañas. Esto fue bastante cierto en la década de 1980. Desafortunadamente, sigue siendo cierto en demasiados lugares con demasiados colegas masculinos en 2016. Esta situación frustra el impulso de las mujeres para convertirse en contribuyentes importantes a los logros del equipo, lo que a su vez frustra sus aspiraciones de crecimiento profesional. Encontré estas situaciones muy frustrantes e irritantes. Si bien la teoría es que las mujeres deben empoderarse a sí mismas, si los colegas masculinos no reconocen la capacidad y la determinación de sus colegas femeninas, es peor que una lucha cuesta arriba para que una mujer alcance su potencial.
  • A riesgo de simplificar demasiado, las formas de trabajo de las mujeres en alta tecnología no solo se descartan. A las mujeres se les dice que necesitamos acostumbrarnos a trabajar en “el mundo de un hombre”. Esto es similar a decirle a una persona zurda que solo puede usar su mano derecha para hacer su trabajo. Creo que las personas que decidieron que la alta tecnología es un dominio de hombres son los descendientes de las personas que decidieron que los médicos deberían ser hombres y las enfermeras deberían ser mujeres.
  • Noticia de última hora: las mujeres aún enfrentan discriminación, algunas de ellas inconscientes. Esta no es una situación específica de alta tecnología, pero es extremadamente característica de la cultura de alta tecnología en los Estados Unidos. De hecho, la alta tecnología de Silicon Valley se considera el paradigma de esta cultura discriminatoria. Debido a que la discriminación de género puede ser tan inconsciente / arraigada, es muy difícil lograr un cambio auténtico y persistente. En muchas organizaciones de alta tecnología, es demostrablemente más difícil para una mujer obtener reconocimiento por sus logros, recibir promociones basadas en calificaciones y experiencia, y ser incluida en las discusiones de toma de decisiones donde tienen conocimientos importantes para contribuir. A lo largo de mi carrera, lidiar con esto drenó mucha de mi energía cuando quería dedicar toda mi energía a crecer continuamente en mi carrera.
  • Las mujeres enfrentan muchas formas de acoso específico de género en muchos entornos de trabajo; La alta tecnología no es la excepción. Desde ataques sexuales directos al principio de mi carrera hasta comentarios audaces sexistas 40 años después, descubrí que el lugar de trabajo de alta tecnología es resistente a la iluminación sobre el respeto por los demás.
  • La alta tecnología no solo está dominada por los hombres; Tampoco es acogedor para los afroamericanos (y otras personas negras) y los hispanos. Esto comienza mucho antes de que una persona elija una carrera, con los prejuicios de STEM en las escuelas y universidades. Con una fuerte afluencia de ingenieros asiáticos e indios del Lejano Oriente en las últimas décadas, existe una mayor diversidad de un tipo. Pero cuando miré alrededor del lugar de trabajo en 2010 o 2015, la cultura de alta tecnología no había cambiado mucho. Creo que a la alta tecnología le falta mucho más que talento de ingeniería al tener tan pocas personas negras y latinas en el lugar de trabajo.

Mirando hacia atrás, me di cuenta de que tenía muchos talentos e intereses que no se desarrollaron durante mi carrera de alta tecnología. Afortunadamente, ahora tengo la oportunidad de explorarlos y desarrollarlos.

No, me encanta Aparentemente estaba destinado a codificar. Por ahora me define. ¿Por qué si no estaría sentado frente a un monitor en un soleado domingo por la tarde? Me encanta cristalizar el conocimiento en forma ejecutable solo con el poder de mi mente. ¿Hay cosas que desearía que fueran diferentes? Seguro.

  • Lamento que el desarrollo de software sea trabajo de proyecto, por lo que soy vulnerable a los despidos cada vez que finaliza un proyecto.
  • Lamento que las habilidades de software sean tan poco comunes que los salarios sean altos, de modo que los gerentes superiores nos vean como recursos caros para ser racionados y explotados, por lo que hay más dinero para el rico CEO y sus ricos accionistas.
  • Lamento que la estimación del costo del desarrollo de software no se tome en serio en las organizaciones de la misma manera que la estimación de los ingresos y los costos, con un personal experto dedicado para este propósito. Debido a que las estimaciones casuales y no expertas siempre son demasiado optimistas, y crean expectativas poco realistas que luego se azotan para satisfacer a la gente del software.
  • Lamento haber vivido una época de cambios tan grandes en el software, por lo que estoy en una cinta sin fin de entrenamiento. Muchas otras disciplinas de ingeniería son mucho más estables. ¿Ha cambiado algo en la ingeniería civil desde la estática? :-).
  • Lamento tener que competir con desarrolladores en el tercer mundo que pueden vivir bien por el veinte por ciento de lo que yo hago, así como tú puedes vivir en el tercer mundo. ¿Mencioné las habilidades caminadora?
  • Lamento que mi profesión me quite tantos trabajos; redactores y operadores telefónicos, gerentes de línea y técnicos. Y a continuación, un millón de camioneros solo en los Estados Unidos. Y, en última instancia, todos, si los chicos que intentan construir robots Android no lo enfrían.

¿Es esto peor que otras carreras? Lo dudo. Mejor, creo, porque al menos estoy empleado. Puedo elegir hacer el bien y seguir trabajando. No tengo que construir armas. No tengo que invadir la privacidad. No tengo que acumular dinero para mis jefes escogiendo el bolsillo de todos los demás un centavo a la vez. Y todavía puedo ser empleado. Si yo fuera un físico de alta energía, los únicos trabajos son unos pocos puestos académicos y la construcción de armas nucleares. Si fuera maestra, me sentiría satisfecho, pero no podría comer carne.

El mundo es un lugar de compromiso. El software no es tan malo. Excepto para construir robots androides. Eso, deberíamos dejar de hacerlo.

Lo lamento inmensamente, pero sigo entendiendo su atractivo. Tal vez solo tuve una pésima carrera y me odio por no encontrar o construir un lugar que me hiciera una abeja feliz y en crecimiento. Probablemente podrías descartar mi historia como la del chico frustrado en la parte de atrás. Aún así, estoy seguro de que esta historia no es tan infrecuente. Al igual que muchas otras personas, me atrapó el error del software y quedé atrapado. Entré en la tecnología con ganas de construir cosas maravillosas y ser útil al mismo tiempo, vivir de ello. Terminé haciendo matemáticas o mapeando sistemas en la escuela y sumergiéndome en oscuras bases de códigos para producir rápidamente resultados en el trabajo.

Después de dos décadas en la industria web, todavía no me siento profesional. Y no estoy particularmente orgulloso de las pocas cosas que he logrado. Creo que la tecnología me limitó más de lo que me permitió. Como desarrolladores de software, se espera que nos enfoquemos en lo que se interpone en el camino de habilitar a las personas. Aprendemos a preocuparnos por los detalles que a la mayoría de las personas no les importan menos, detalles de los que queremos deshacernos. Nos atascamos en los pequeños trozos que podemos olvidar mañana. Somos un medio para un fin hasta que aparezca algo mejor. Somos los operadores de ascensores del siglo XXI. Lo peor de todo: a menudo estamos orgullosos de ello. Nos identifican las tecnologías que usamos e incluso terminamos identificándonos con ellas. Absorber esas tecnologías que cambian rápidamente requiere tanta dedicación que perdemos la perspectiva de lo que se supone que es nuestra experiencia. Hablamos de pasión y dedicación por nuestro oficio, pero no nos lleva a ninguna parte.

Mientras estamos ocupados, en el mundo exterior, los medios nos bombardean con historias de éxito de software. En la red, los desarrolladores siguen exponiendo sus fabulosos descubrimientos y proyectos favoritos. Comparamos nuestras vidas mediocres con toda esa brillantez. Somos testigos de personas en Quora preguntando sobre la vida de los ricos e ingeniosos y discutiendo si los ingenieros de software de 150k $ están mal pagados o no. Nos preguntamos cuán loco es compartir esas expectativas de carrera tan infladas en una adorable ciudad de América del Norte donde el salario promedio está más cerca de los 60 mil dólares. La tecnología no se mueve mucho más lentamente fuera de Silicon Valley, pero las ventajas no están ahí y la mentalidad no es la misma. Cuando el sistema de soporte no está allí, una carrera en software puede no merecer los esfuerzos para mantenerlo. A medida que envejecemos, nos damos cuenta de lo poco que importan nuestros esfuerzos y cuán cruciales pueden ser las habilidades no técnicas.

Es difícil construir una carrera en un campo interrumpido. En más del 99% de los casos, no provocamos el cambio; lo sufrimos y lo llevamos. Aunque la novedad puede ser emocionante, también puede ser agotadora. Debido a que queremos y necesitamos ser estimulados en el trabajo, la falta de estimulación puede ser doblemente desconcertante, ya que también pone en peligro nuestra seguridad a largo plazo. La mayoría del trabajo tecnológico es transitorio, y es difícil encontrar una estructura de soporte para algo que no estará allí mañana, que no estaba allí ayer. Mantenerse al día con las tendencias a menudo hace más para los reclutadores que para los desarrolladores: el desarrollador toma todos los riesgos mientras el reclutador selecciona al desarrollador que eligió las tendencias correctas. Muy pocas organizaciones son lo suficientemente maduras como para no depender de los esfuerzos heroicos de algunas personas que también tienen la programación como un pasatiempo. Hacer crecer una carrera en software es demasiado esfuerzo individual y muy poco profesional.

Esto no es algo de lo que alardear. Es un terrible estado de cosas. Debe haber algo malo en una industria cuando sus profesionales son constantemente derrotados por los recién llegados que incursionaron con una nueva pila más intensamente que un desarrollador experimentado. Definitivamente hay una fuerza alienante en juego cuando se espera que las personas vuelvan a trabajar en proyectos favoritos y experimenten con la tecnología después de trabajar 40-50 horas a la semana a riesgo de ser acusados ​​de mediocridad. Aplaudo a cualquiera que también sea aficionado a su profesión, pero la presión para hacerlo me pone mal. No es correcto dejar que la tecnología ocupe una gran parte de nuestro tiempo y cerebro.

Lamento no haber invertido mi tiempo, dinero y esfuerzos en algo que dure y me haya convertido en un experto y una mejor persona.

Estoy en mis veintes, he estado programando desde la adolescencia, he ganado concursos, en general se me ha considerado bueno, recibí ofertas de entrevistas de las principales empresas (lo que rechacé porque en ese momento ya había perdido mi pasión y solo quería un trabajo de baja presión que me dejó con el mayor tiempo libre posible … Y aun así, lamento ser desarrollador de software por múltiples razones.

  1. Tener que volver a aprender constantemente la tecnología (lenguajes, marcos, herramientas …) solo para poder resolver el mismo nivel de problemas. Se dedica mucho tiempo no a mejorar, sino a mantenerse a flote, es decir, poder hacer básicamente lo mismo con una pila de tecnología diferente. Mis amigos en medicina, química, derecho o arquitectura no tienen este problema.
  2. Es difícil encontrar problemas significativos y desafiantes. Lo siento, pero no considero que trabajar en aplicaciones publicitarias, sitios de redes sociales o bloatware corporativo sea personalmente “significativo” y problemas que me interesan legítimamente, por ejemplo, bioinformática, modelado y simulación computacional, software biomédico, robótica, procesamiento de imágenes … Tiendo a requerir un doctorado y un nivel de aptitud matemática que no poseo: desafortunadamente fui tan estúpido en mi juventud que invertí la mayor parte de mi tiempo en la programación (construyendo mis propios proyectos con las tecnologías del día, etc.) y no lo suficiente en fundamentos y teoría, específicamente matemáticas. A pesar de tener un título de CS, no estoy en el nivel en el que pueda contribuir a las áreas / investigación que considero significativas, y por lo tanto estoy permanentemente atrapado en un papel de “técnico glorificado / mono de código”.
  3. Es una cultura a menudo llena de yuppies anti-intelectuales y tipos corporativos que ven a los “ingenieros” como algún tipo de trabajo manual para ser explotados y manipulados como si fueran unos recién graduados ingenuos. La barrera para ingresar al desarrollo de software también es tan baja que la industria está llena de personas incompetentes que a menudo se etiquetan con títulos grandiosos como “ingeniero senior de computación en la nube” después de un par de años de experiencia, a pesar de nunca haber trabajado en nada más allá de CRUD nivel de dron API, y no saber la diferencia entre una matriz y una lista vinculada.
  4. Melé. Sé que se supone que es excelente en el papel, pero en la práctica siempre lo he visto degradarse en microgestión con cero espacio para la creatividad y el tipo de trabajo de I + D. Una vez más, mis amigos en investigación científica y medicina con más de 10 años de experiencia no tienen que lidiar con algún hombre-niño que los obliga a jugar “scrum poker” o participar en otros juegos de terminología estúpida.

Estoy seguro de que casi todas las profesiones tendrán su parte de remordimientos, por lo que los desarrolladores de software no son únicos en ese sentido.

Dicho esto, el desarrollo de software es una combinación muy especial de arte e ingeniería que realmente no tiene un equivalente en ningún otro lado. No somos lo que yo llamaría ingenieros “puros”, porque casi no tenemos restricciones físicas en nuestro trabajo. Las únicas limitaciones reales son la velocidad de E / S, el tamaño de la memoria y la velocidad de la CPU, e históricamente han cambiado con una velocidad aterradora. Esto significa que lo que construimos se basa en gran medida en nuestra imaginación y no en las leyes físicas que nos rigen. Imagínese ser un ingeniero civil construyendo un puente, y la atracción de la gravedad se hace más liviana o más pesada cada año. O si pudieras marcar la fuerza nuclear fuerte a un valor conveniente para ti para una reacción química. Así es el software, un mar de cambios y elecciones constantes, algo extraño para otras disciplinas de ingeniería.

Pero al mismo tiempo, es técnico. No estás escribiendo versos libres o inventando una historia de ciencia ficción o pintando una escena épica de tu mente. Hay algunas limitaciones serias con las que tienes que vivir, y esto es lo que lo hace extraño para las otras artes. Claro, claro, la pintura, la escritura y la música tienen sus propios medios físicos y limitaciones, pero no limitan la libertad de la misma manera que los sistemas de software.

Menciono esto porque esta intersección de lo técnico y lo artístico, mezclado libremente con una sensación de cambio constante, es donde se lamenta mucho el desarrollo de software.

En esencia, el desarrollo de software es un juego fácil de romper, porque casi no hay reglas, y las pocas reglas que existen cambian todo el tiempo. Más que cualquier otro esfuerzo técnico, encontrará muchas personas persiguiéndolo con éxito sin ningún título, o un título en un campo no relacionado. Para algunas personas esto es genial. Pero también significa que hay un rico patio de recreo para charlatanes, falsificadores y tipos de “Johnny no puede codificar”.

Mi mayor decepción con los sistemas de software es que está invadida por muchas personas que no son muy buenas en eso. Y gerentes que a menudo tienen poco o ningún sentido de lo que hace su gente, o qué desafíos enfrentan, o cómo hacer que sus vidas sean más fáciles y productivas. Esto está habilitado por el hecho de que el desarrollo de software es único, y ni los artistas puros ni los ingenieros puros lo conseguirán. Necesitas un tipo especial de mente para sobresalir en él. Y toda esta confusión crea un entorno rico para que consultores de alto precio se acerquen a su equipo y le vendan aceite de serpiente virtual por unos pocos millones de dólares al año (y tiene suerte si es tan barato).

Al entrevistar a los candidatos, tenemos que verificar regularmente si pueden escribir un programa de descarte de 10 líneas, porque resulta que muchos de ellos fracasarán en esta tarea. Es como preguntarle a un doctorado en Ingeniería Eléctrica cuál es la ley de Ohm en una entrevista.

Cuando se enfrentan nuevas aplicaciones, nuestras estimaciones van desde “2 semanas” a “2 años”. Imagine pedirle a alguien que diseñe un circuito, y le dicen que podría tenerlo en octubre, o que podría tenerlo en octubre de 2018. Le informarán una vez que hayan terminado de construirlo.

Imagínese trabajar en un proyecto y ver 3 marcos de interfaz de usuario diferentes y 4 backend en ciclo durante todo el ciclo de vida del proyecto. Y tratando de mantenerse al día con ese cambio. O peor, imagínense si mantuvieran los 7 marcos en varias formas, porque era demasiado difícil deshacerse de ninguno de ellos.

Sería como si tu firma de ingeniería principal te dijera el mes 5 que tu puente colgante que ha estado construyendo ahora será un puente de arco, y que tengas un buen día.

Lamento que no tengamos más restricciones en los sistemas de software. Que no tenemos una base más estable para construir como lo hacen los ingenieros. Desearía que hubiera “leyes de computación” estables como las leyes de la física. Tal vez con el estancamiento (y tal vez la muerte) de la ley de Moore a medida que nos acercamos a los límites físicos del silicio, podríamos establecer algo así.

Paradójicamente, desearía no tener todas estas malditas restricciones. Desearía poder crear algo que fuera puro arte y ver una computadora ejecutarlo. Ojalá tuviéramos un poder informático tan ilimitado que pudiéramos manipular los hologramas en el aire, marcar un día soleado para nuestras vacaciones el próximo martes y contar una presencia invisible que me gustaría “Té, Earl Grey, Hot”.

Sí, solo aquí recientemente.

Principalmente por esto: https://csedweek.org/files/Zucke

Ahora, todos pueden y deben ser programadores. Comencé a programar cuando tenía alrededor de 12 años, ahora tengo 18 pero siento que soy demasiado viejo para programar.

A menudo debate si vale la pena o no. Si Zukerberg tiene razón, (Dios espero que no), habré desperdiciado varios años de mi vida haciendo crecer una carrera en algo inútil. Lo que es aún peor es que por mucho tiempo, he sido principalmente un desarrollador de JavaScript. La mayoría de estos niños ahora toman algún curso sobre JavaScript, entienden conceptos básicos y sintaxis y se hacen llamar piratas informáticos o codificadores. (un término que me da escalofríos) No saben una mierda cuando realmente se trata del diseño y desarrollo de aplicaciones. No digo que sea un buen desarrollador (de hecho, soy bastante malo cuando se trata de todo), pero ya no es divertido para mí.

Como ejemplo, el año pasado, estaba hablando con este chico en la biblioteca de mi escuela secundaria tratando de ayudarlo. Intentaba crear una función global en algún proyecto C en el que estaba trabajando. Durante unos 5 minutos, argumentó conmigo que había que usar alguna palabra clave `global` para marcar la función como global. Unos minutos más tarde se dio cuenta de que no había una palabra clave en C. Ahora yo era un estudiante de último año y él era un estudiante de primer año. Había oído de varios otros estudiantes de primer año que este tipo era un legendario hacker y desarrollador entre ellos. Dirigí un equipo de personas que trabajaban en desarrollo web y móvil independiente, y siempre buscaba gente nueva. Fue una completa decepción. Lo que es peor es que al día siguiente, intentó alardear sobre cómo había escrito una red neuronal en C ++ (fue realmente bueno al mezclar C y C ++). Me encogí de nuevo.

¡Oh, guau todo el tiempo!

Empecé a programar extremadamente joven. Antes de llegar a dos dígitos. A esa edad y durante los siguientes 13 años, en mi opinión, los trabajos y la vida eran meritocráticos. Sobresales en tu trabajo, irás a lugares. El mismo tipo de promesas y modelos mentales que Disney te da acerca del bien contra el mal y de vivir felices para siempre.

Empecé a trabajar comercialmente muy temprano. Incluso durante la universidad, que comencé a la misma edad que todos los demás, trabajé mis años de desarrollo junior.

Después de graduarme, tomé algunas decisiones, recibí muchas ofertas y las cosas comenzaron a verse bien.

Sin embargo, lo que aprendí muy rápidamente fue que la industria en ese momento estaba llena de nadie y aspirantes que frustrantemente tenían una habilidad casi nula. Pude hacer el trabajo de 6 a 20 personas, lo que debido a mi ingenio, no me di cuenta de que era de alguna manera especial en ese momento. A la mayoría de mis jefes les encantaba, pero era vergonzoso que los colegas fueran promovidos por alguien de muy poco más de 20 años.

Recuerdo haber estado en reuniones del equipo de arquitectura en una corporación global, donde me ascendieron a Arquitecto de software. Tenía poco más de 20 años, todos los demás tenían el doble de mi edad al menos. Había comenzado a desarrollar algunas habilidades políticas, ¡pero estaba tan impaciente! No comprometí el rigor o el formalismo y lo que finalmente aprendí fue que alejó a otros. La primera vez que alguien me habló y me dijo que habían pedido salir de mi equipo me tomó por sorpresa. De hecho, ¡eso fue un shock! Estaba tan concentrado en construir cosas interesantes y sorprendentes, que nunca me llamó la atención que haya gente que no tenga absolutamente ningún interés en eso.

Peor aún, resultó que no era una o dos personas. ¡Eran casi todos! ¿Querían un equilibrio entre el trabajo y la vida? ¿Qué fue eso? ¡Simplemente no vi eso en absoluto!

Con el tiempo, la falta de evaluación meritocrática fue horrenda. Me uní a compañías que empujaron a sus desarrolladores hasta el punto de ruptura y luego los arrojaron a la basura. Desde que llegué a la cima de mis 20 años (sin interés en entrar a la gerencia), deambulaba por los contratos, lo que en sí mismo causaba problemas, ya que el sistema de la edad muy inversa aquí en el Reino Unido me rechazó debido a un número en mi CV . “23? ¿Arquitecto? No, ¿cómo puede ser eso? ”Fueron en su mayoría agentes de reclutamiento quienes tomaron esas decisiones.

Dejé la industria brevemente. Ya estaba perdido para cuando tenía 26 años y trabajar con una corriente continua de quienes consideraba idiotas en ese momento, a quienes tenía que cargar, simplemente me abrumaba. La desconexión entre la pasión que tenía por el tema y la forma en que veían el trabajo simplemente no calculó en mi mente.

Cuando regresé, tomé un lenguaje de programación diferente y comencé de nuevo. Me propuse reducir la profundidad de mi conocimiento sobre ese idioma y aumentar la amplitud de habilidades e intereses. Eso duró algunos años, pero luego se quemó como sucedió nuevamente, después de haber llevado a compañías enteras sobre mis hombros por cero recompensa. Ahora penalizamos la idea de los programadores de héroes, pero en aquel entonces, se aprovecharon de antemano.

La realidad es que todavía lo lamento. Nada es realmente un desafío en nada más que tiempo. Estoy harto de ser mejor que todos en casi todos los equipos con los que he trabajado, en todos los aspectos del SDLC, así como en sus jefes. Estoy harto de tener razón. La idea de una carrera simplemente no está en mi marco y no lo ha sido durante 16 años o más. El “mal ágil” que nos perdió diez años tampoco ayudó (donde las personas piensan que son “ágiles” pero no entienden el término), ya que fue un tsunami de ignorancia que arrasó el sector, antes del “bien ágil ”finalmente se apoderó. Perder 10 años no era la forma de hacerlo.

Sí. Trabajé como ingeniero de SW durante 11 años y lamento haber elegido esta profesión.

Por un lado, todavía estoy sentado en un pequeño escritorio en un área abierta, ya que conseguir su propia oficina como ingeniero de software es casi imposible. Así que olvídate de tener tu propio espacio para trabajar en problemas complejos. No sucederá, ya que casi siempre hay un ruido de fondo constante y otras perturbaciones.

Además, a menos que esté listo para convertirse en gerente o arquitecto, y así distanciarse de la producción real de código, su avance profesional, pasado ingeniero sénior de SW, es casi inexistente. A menos que seas muy bueno, lo que la mayoría de las personas no lo son, ya que deciden tener una vida fuera del trabajo. Lo cual me lleva a mi siguiente punto.

A menos que desee seguir siendo un ingeniero promedio / superior al promedio, es más o menos un requisito para que pase una gran parte de sus horas no laborales, estudiando cosas relacionadas con la ingeniería de SW. Esto podría ser cualquier cosa, desde leer artículos hasta desarrollar su propio software y publicarlo en GitHub.

Como tal, como ingeniero de software, la calidad de las personas que desarrollan software es muy variada. Puede tener personas que escriben código excelente y limpio y puede tener personas que escriben código y software terribles, apenas funcionales, siendo la naturaleza, ambos tipos son comunes. Lo peor de todo son los desarrolladores pobres que tienen buenas habilidades interpersonales que se convertirán en la gracia de un gerente y pueden hacer casi lo que quieran.

Luego tienes la ‘revolución’ ágil que ocurrió hace unos años y, aunque es una buena metodología en principio, ha sido muy mal utilizada y abusada. Y eso puede afectar su trabajo diario, en gran medida.

Además, en muchos lugares, se espera que emparejes. Lo que significa que dos adultos adultos deben sentarse cerca uno del otro y turnarse para escribir el código mientras el otro lo juzga, línea por línea, y personalmente lo odio. Entonces, no solo no puede obtener su propia oficina, ahora ni siquiera puede obtener su propio escritorio y computadora. Terrible.

Entonces, aunque la paga es buena y hay muchos trabajos, si pudiera decidir de nuevo qué estudiar, no habría estudiado ingeniería de SW. Y esto a pesar de que realmente me gusta desarrollar software, simplemente no me gusta la forma en que se está haciendo. Más parecido al trabajo de fábrica de cuello blanco en lugar de una profesión de ingeniería. Y he trabajado en un lugar donde literalmente transformaron el edificio de una fábrica en una oficina y bloquearon cientos de codificadores, probadores, etc.

No me arrepiento (casi) de mi elección de carrera: a los 6 años (alrededor de 1982) me unía a mi padre mientras trabajaba / jugueteaba con una computadora TRS-80 en casa, que se compartía con otros 3 amigos (la computadora se quedaría en nuestra casa 1 semana cada mes, cada semana se mudaría a la casa de otro amigo) – Soy brasileño y vivimos en un decadente Estado militarista resultante de un coupe d’état, en el que el proteccionismo fue visto como un significa “mejorar” nuestra industria interna, por lo que una computadora personal simple como esa cuesta tanto como un automóvil. – y a los 10 años (alrededor de 1986, después de la caída de los militares), mi padre finalmente se compró una computadora MSX (poco conocida en los EE. UU., ¡Pero una máquina fantástica!) Y me enseñé a mí mismo programación de computadoras (sin internet) escribir cada programa de muestra en el manual BASIC que vino con la computadora (llamado HOT-BIT, fabricado por SHARP). Todavía recuerdo que el primer comando BÁSICO en el manual fue ABS () y la muestra era un programa de “adivina el número” en el que se usaba la función ABS para saber cuántos números te has perdido la suposición, pero estoy divagando …

Por lo tanto, (casi) no me arrepiento de mi elección de carrera. Sin embargo, tengo una queja y es: ¡ Qué difícil (casi imposible) para otras personas apreciar lo que hago porque simplemente no lo entienden!

Y no me refiero a gente común, o personas sin educación: ¡casi todos, no en el campo, simplemente no lo entiendo! Incluso en el campo, muchos gerentes en realidad no asimilan el desarrollo de software. Partes interesadas? Olvídate de ellos. Ellos tampoco lo entienden. Y esto puede ser una gran fuente de frustración. Y la frustración puede convertirse fácilmente en arrepentimiento.

No puedo contar cuántas veces la gente me pregunta: “¿Qué es lo que haces?” A lo que respondo “Creo programas de computadora”. Su respuesta es, normalmente, una de estas: “Entonces … ¿creas sitios web?”, O “¿Haces juegos de computadora?”, O “¡Oh! ¡Lo entiendo! ¡Ustedes hacen aplicaciones! ”(¡Las hago, pero eso no es lo que hago!)

Es frustrante tratar de explicarle a la gente lo que realmente hago. Toda la gente percibe es la interfaz de usuario de un sistema. Por supuesto, un programa debería funcionar primero para ser utilizable, pero la interfaz de usuario es el único “punto de contacto” que las personas comunes (fuera del campo) tienen con un sistema informático. Eso es lo tangible. Si obtiene un sistema roto, cambie todo en el back-end, haga que funcione más rápido y correctamente, sin cambiar la interfaz de usuario, demasiadas personas preguntarán qué fue lo que hizo. Peor aún, muchas personas susurrarán que no hiciste nada en absoluto. Incluso puede escucharlo de algunas partes interesadas o, en el peor de los casos, su propio gerente puede dudar de que haya hecho algo.

Casi todas las demás profesiones tienen resultados tangibles. Los nuestros tienen pocos resultados tangibles (o entregables) pero la crème de la crème es intangible. Si no le gusta la ingeniería de software por sus desafíos, si no lo encuentra divertido, esta dificultad de no poder mostrarle a la gente lo que hace, de no obtener su aprecio por su trabajo, puede generar mucha frustración , que, con el tiempo, se convertirá en arrepentimiento. Conozco MUCHOS desarrolladores de software que lamentan su elección de carrera principalmente debido a esto (a pesar de no darse cuenta de que esta es la raíz de su arrepentimiento).

Personalmente, he visto otras fuentes de arrepentimiento para los ingenieros de software durante mis 25 años en el campo, pero considero que todas son fuentes comunes de arrepentimiento en cualquier campo, y no únicas como la intangibilidad que he mencionado antes. Estos son algunos:

  • Haciéndolo por ganancias financieras
  • Hacerlo para seguir los pasos de un padre / hacerlo para otros en lugar de usted mismo
  • Haciéndolo debido a la disponibilidad de empleo
  • Hacerlo sin saber realmente qué es
  • Hacerlo sin amarlo / disfrutarlo / gustarlo

Yo mismo me arrepiento de mi elección profesional: preferiría ser artista (pintor o músico) o deportista. No es un arrepentimiento con mi elección de carrera específica per se, sino que me arrepiento de no tener el talento suficiente en estos otros campos, que me llaman cada vez más la atención. Tengo un cinturón negro en judo, un cinturón marrón en jiu-jitsu brasileño (con la esperanza de obtener el cinturón negro pronto), surfeo mucho, y desde que tenía 28 años estoy tratando de aprender el bajo (ahora tengo 40 años, y todavía apesta mucho …). Y estoy muy feliz practicando estas actividades como pasatiempos, pero me encantaría ser un bjjer de clase mundial o un músico profesional.

Lo que he aprendido con mis “remordimientos” es que, como padre, tengo la obligación de exponer a mis hijos a la mayor cantidad posible de actividades diferentes y estar ansioso por obtener lo que realmente los motiva, capta su atención e impulsa su corazón. . ¡Mi padre nunca me obligó a aprender ingeniería de software, pero ciertamente me inspiró! Tengo que tener mucho cuidado de no forzarles nada que me gustaría individualmente. Debo dudar de mis propios motivos y creer en los de ellos. Tengo que apoyar sus elecciones, incluso si no lo “entiendo”. Esta no es una forma segura de evitar sus futuros remordimientos, pero esta es ciertamente la única forma de estar seguro de que hice todo lo posible para asegurar su felicidad futura.

Nota: no hablo inglés de manera nativa, nunca viví fuera de Brasil, y mi inglés fue autodidacta, así que me disculpo por fastidiar el idioma inglés (tiempos gramaticales, casos, ortografía, etc.) 🙂

Sí, lamento absolutamente mis decisiones (más bien, la falta de decisiones).

Soy de la India, donde su primera bifurcación se produce cuando tiene alrededor de 15 años. Se le pide que elija entre Ciencia y Comercio. En ese momento, estaba absolutamente interesado en el comercio, tenía habilidades matemáticas más que decentes y podría haber ingresado en una de las mejores universidades de mi ciudad. Sin embargo, la presión de grupo me ganó y decidí estudiar Ciencia porque eso es lo que hicieron todos los niños inteligentes.

Avanzando rápidamente 6 años, estoy trabajando como desarrollador de software en una de las cuatro grandes empresas del valle, haciendo un asesinato, pero no del todo satisfecho con la vida. Cuando les cuento mi llanto a mis amigos, me dicen que si soy tan bueno en algo, estaba destinado a hacerlo. Estoy cortésmente en desacuerdo. Absolutamente no me encanta la codificación, lo hago por dinero y en algún momento en el futuro (¡pronto!) Planeo dejar este campo por completo y entrar en la banca.

Volveré y editaré esta publicación cuando eso suceda.

  1. Obtuve un túnel carpiano en ambas muñecas debido a Java (muchos tipos de escritura).
  2. Nada de lo tuyo funciona en Prod. Me tomó 20 años antes de que algunos de mis guiones fueran dignos de producción.
  3. Las chicas piensan que soy un nerd.
  4. Los gerentes no técnicos son imbéciles.
  5. Tienes que aprender cosas todo el tiempo. Olvídalo y luego vuelve a aprender. He leído algunos documentos técnicos 20 veces en 20 años para preparar entrevistas.
  6. Odio la pila completa. Quiero hacer lo que me encanta hacer, no codificar HTML porque CTO ama full-stack.
  7. Desarrolladores funcionales. No puedo entender la mayoría de los conceptos de negocios. Odio cuando las empresas solo quieren desarrolladores funcionales.
  8. Todos los compañeros de trabajo son indios. Son muy educados y tímidos. Nunca te invitan a almuerzos. Solo hablan de “comida-India-H1-B” y solo hacen una pregunta: “Alex, ¿cuándo te casas?”
  9. Las entrevistas son brutales. Solía ​​atravesarlo, pero últimamente, en el momento en que me insultan, camino. Me recuerda a la mayoría de mis citas, divertido, pero es una pregunta diferente de Quora.

Respuesta en 1 palabra – No. Pero déjenme dar mi experiencia sobre por qué algunos pueden arrepentirse.

  1. No está claro con lo básico: cualquier desarrollador debería encontrar interesante la programación. Para esto, él / ella no necesita ser un experto en lenguaje, sino que debe comprender los conceptos básicos de los conceptos del lenguaje de programación. Comprender las estructuras de datos y los algoritmos utilizados con él. No es divertido codificar sin comprender cómo funciona realmente el código.
  2. Las personas no están abiertas a aprender nuevas tendencias tecnológicas. Sí, solo unos pocos seleccionados tendrían apetito para seguir aprendiendo. Ejemplo: es posible que haya comenzado como codificador de procedimientos utilizando lenguaje C. Pero debe estar abierto a aprender otras nuevas tendencias en la codificación de software. Las personas a las que no les gusta seguir actualizando, seguramente se arrepentirán de ser Ingenieros / Desarrolladores de Software. Esto también podría llevar a un desarrollador a estar desactualizado en las tendencias tecnológicas actuales.
  3. No son proyectos interesantes o desafíos en el trabajo actual. A los ingenieros les gusta resolver problemas. Por lo tanto, el trabajo debe ser desafiante, lo que generaría el apetito por más motivación.
  4. Este es uno menor: miembros del equipo para trabajar. La colaboración es una parte importante del trabajo de cualquier ingeniero. Por lo tanto, llevarse bien con los miembros del equipo es un aspecto muy importante para no arrepentirse del trabajo, ya sea en el desarrollo de software o en la práctica de la ley.

Finalmente, la vida no será fácil para ninguna profesión. Todo el mundo se arrepiente de su profesión en algún momento. Pero la pasión te mantendría yendo más lejos. La mejor apuesta es seguir tu pasión.

Desearía haber ido a la química. ¿Porque preguntas? bueno, porque al igual que la ingeniería de software, la química es un tema muy complicado, por lo que habría sido muy estimulante aprender todos los aspectos. Sin embargo, la diferencia con la química es que una vez que aprendes lo básico, ¡ya estás listo! no hay que volver a aprender lo básico desde cero nunca más. Todo lo que haces desde allí es construir sobre tu conocimiento y mejorar cada vez más en lo que haces.

Sin embargo, lo mismo no es cierto para el desarrollo de software. Para muchos de nosotros, nos enfocamos en aprender los métodos más frecuentes para realizar nuestro oficio durante muchos años y, si bien es posible que hayamos mejorado cada vez más en nuestra pila de tecnología específica, con el tiempo todavía terminamos en el fondo del montón.

Finalmente, algunas personas más jóvenes y menos experimentadas deciden que lo que hemos estado haciendo para siempre ya no es lo suficientemente bueno y comienzan nuevamente desde cero con un conjunto completamente nuevo de idiomas / marcos, etc., y ahora nosotros, las personas mayores, tenemos que competir en el mismo nivel que los jóvenes.

¿Por qué hacen esto? Es muy simple (en mi mente). ¿Prefieres pasar tu tiempo cavando en el desorden de código de otra persona o prefieres escribir el tuyo? Prefiero escribir el mío también. Además, es bastante fácil convencer a los tipos no expertos en tecnología de que desechar el código base antiguo y reemplazarlo por uno nuevo es lo que hay que hacer porque realmente tampoco entendieron el código anterior, solo quieren que los problemas desaparezcan lejos. Poco saben que simplemente están reemplazando un conjunto de problemas con otro.

Este es un fenómeno que creo que es la causa raíz de lo que muchos llaman el ageismo. Claro que es difícil competir como un programador mayor. Mi cerebro no funciona tan rápido y necesito descansar y ahora valoro mucho más el tiempo con mi familia que cuando comencé mi carrera. Si fuera químico, todo esto no importaría porque mis 20 años de experiencia superarían cualquier graduado recién salido de la universidad cualquier día. Sin embargo, no es así en mi mundo.

More Interesting

Cómo arreglar / mejorar mi currículum para que las grandes compañías tecnológicas como Microsoft y Google me noten

¿Qué perfil requiere más conocimiento, desarrollador de Java o probador de rendimiento?

¿Qué consejo es útil para un ingeniero de software que tiene un plan de rendimiento de 5 semanas y podría ser despedido pronto?

Trabajo en TI, pero quiero profundizar en el desarrollo de software. Cumpliré 45 años en agosto. ¿Soy demasiado tarde para aprender esto?

¿Los ingenieros de DevOps se consideran ingenieros de software o son diferentes?

¿Cuál es la carrera profesional más lucrativa para un ingeniero de software? Actualmente soy ingeniero senior en una compañía Fortune 500.

¿Cuáles son las opiniones o consejos profesionales sobre el desarrollo de .NET y / o las certificaciones de Microsoft para desarrolladores que podrían beneficiar mi aprendizaje?

¿Qué es un desarrollador de software? ¿Qué hacen?

¿Necesitamos hacer un BCA para la ingeniería de software?

¿Cuáles son algunas diferencias importantes que ha observado entre trabajar con un cliente indio versus uno global en el sector de TI?

Si la programación / ingeniería de software es una carrera sin salida, ¿qué debe hacer un programador experimentado?

¿Qué debe saber un ingeniero de software en 2016?

Terminé mi MTech y trabajé temporalmente como facultad universitaria por algunos años. Tenía algunos conocimientos de la industria relacionados con Android en mi Mtech. Me dieron una entrevista en una empresa nueva y ofrecí un puesto de líder de equipo para Android durante mi entrevista. ¿Debo unirme a la empresa?

¿Cuáles son las mejores ideas "sobre mí" para un currículum de un desarrollador web o cualquier programador?

¿Qué hace específicamente para posicionarse para ser ascendido a Tech Lead, dentro de un equipo de ingeniería de software?