¿Qué te gustaría saber antes de convertirte en ingeniero de software?

Dudo que pueda poner una lista completa, pero eso es lo que me viene a la mente en este momento.

  1. No es en absoluto el paraíso nerd representado en esas películas de los 90 ( y algunos documentales pagados de 2000 ).
  2. La política es frecuente como en cualquier otra área.
  3. La buena comunicación verbal es a menudo un requisito mayor que las buenas habilidades de escritura (aunque me gustaría que la gente pasara un poco más de tiempo puliendo sus correos electrónicos antes de presionar el botón Enviar).
  4. Las habilidades de trabajo en equipo son tan valoradas como su capacidad de concentración. La preferencia por el aislamiento se percibe cada vez más como un rasgo negativo.
  5. La mayoría de los trabajos disponibles son en realidad algún tipo de desarrollo de software empresarial , CRM, formularios + base de datos + informes . Sin embargo, si quiere estar al borde, [los conceptos más abstractos de] arquitecturas distribuidas y gestión de configuración lo colocarán en una buena pista: hoy, encontrará bolsas de trabajo llenas de “Git”, “DevOps”, ” Microservicios “,” Docker “,” Inyección de dependencia “…
  6. La mayoría de las decisiones de codificación, entonces, se refieren a la arquitectura de la aplicación (organización del código, patrones, simplicidad, extensibilidad), en lugar de algoritmos y optimización. Y SQL.
  7. Nunca dejarás de aprender, y nunca aprenderás todo en el campo y eso está bien, siempre y cuando nunca dejes de aprender.
  8. No te resistas a revisar las tendencias actuales. Simplemente no acepte ninguna nueva moda sin cierto nivel de pensamiento crítico.
  9. No te etiquetes después de un lenguaje o marco específico. Los desarrolladores de Java pueden ser una cosa hoy, pero ¿qué pasaría si su proyecto pudiera beneficiarse de las características de las pilas Ruby o Go ? ¿Qué sucede si está en una empresa de consultoría y ese nuevo gran cliente exige algo que sea más maduro para el tiempo de ejecución de Python o esté integrado en R ? Concéntrese en fortalecer sus fundamentos y conceptos sobre CS, pero no tanto que no pueda hacer el # 8 de vez en cuando.
  10. OTOH, los “especialistas” aún pueden encontrar mayores ganancias. El truco es que si realmente disfrutas de una pila y esa está en la colmena, puedes profundizar en ella mientras descubres cómo sus características se relacionan con conceptos más básicos o generales. Luego, tendrá algo con lo que comparar e incluso aprender nuevas pilas más rápidamente (y con una mejor comprensión del contexto). La sintaxis es muy fácil de aprender cuando conoces los fundamentos.
  11. Las diferentes codificaciones de texto siguen siendo una cuestión décadas después.

Bueno, ¡parece que se me ocurrió mucho, en realidad!


Ah, y gracias por el A2A!

Esta es una gran pregunta. Algunas cosas me vienen a la mente.

1. No es como las películas : después de la glamour de la programación en Hollywood, comenzaste a ver a muchas personas tratando de convertirse en programadores. Ser ingeniero de software generalmente no se parece en nada a lo que ves en programas como Silicon Valley o algún documental de Steve Jobs. Suele ser mucho trabajo duro. No hay nada de malo en eso. Muchos trabajos requieren mucho trabajo, pero es difícil no tener una noción preconcebida de cómo será su vida cuando dé este paso en su carrera.

2. No necesariamente será rico : es un campo que paga bien (actualmente está en tendencia en YouWorth a $ 153k / año ) pero cada programador no es millonario. La ingeniería de software es un gran campo para entrar en un futuro muy lucrativo, pero definitivamente hay un estigma de que todos seremos el próximo Microsoft o Facebook. Solo desearía haber tenido un enfoque más realista de la programación como carrera.

Salario de Ingeniería de Software en San Francisco, CA – $ 153k / año

La programación es una gran carrera, pero creo que las personas podrían beneficiarse de tener un enfoque mucho más práctico. De nuevo, ¡gran pregunta!

Extraje los números anteriores de YouWorth , una aplicación móvil gratuita para iOS y Android que rastrea los datos salariales de ingeniería de software. 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.

A2A. La “política de la oficina” y las habilidades de las personas que carecen de la mayoría de los ingenieros de software introvertidos.

Traté de capturar eso en mi charla que di a los ingenieros de software recién graduados, ¡mira las reglas de Megan! O cómo evitar fallar como ingeniero en un nuevo trabajo.

Desearía saber que no hay límites para lo que puedes desarrollar. Todos los problemas actuales tienen una solución o una parte de la solución en el desarrollo de software. ¡Literalmente! El día que me di cuenta de esto, algo cambió en mí. Era un desarrollador mucho más seguro que en ese momento. Desearía poder decir esto desde el primer día.

Qué increíblemente fácil e interesante iba a ser, seguido de cuánto te pagan por hacer algo tan fácil.

Sé que tengo suerte de que me resulte tan fácil y, por el contrario, muchos luchan. Como principiante tardío en trabajar en TI, creí tontamente que la gente era difícil y difícil y eso me disuadió durante demasiado tiempo.

En resumen, ten cuidado con los detractores. Existe una posibilidad razonable de que sea su vocación.

Ojalá supiera lo gratificante que sería y cuánto me encantaría. Probablemente habría trabajado aún más duro.

Desearía saber cuánto me gustaría, y que tengo talento para ello. Hubiera comenzado mucho antes.

More Interesting

¿Cuáles son los beneficios del desarrollo de software CRM?

¿Debo reescribir un componente de software libre de errores pero hinchado en nuestro producto por ninguna otra razón que no sea para hacerlo más elegante?

¿Es posible verificar formalmente todos los tipos de software?

¿Por qué algunas compañías de desarrollo de software prefieren usar TDD en lugar de BDD?

Si tiene que crear objetos para cada número de enrutador en un archivo, ¿cuál es la mejor manera si no sabe cuántas líneas obtendrá para cada enrutador?

¿La popularidad del lenguaje de programación depende en gran medida del apoyo de su comunidad o de la facilidad de uso?

¿Por qué el software beta tiene errores?

Mi supervisor quería hablar conmigo sobre el desarrollo profesional, con una promoción insinuada, pero quería ir a otro lugar, ¿cómo debería responder?

¿Cuál es el proyecto de software más grande en el que participó, cuáles eran sus expectativas y cómo resultó?

Para el desarrollo de software, ¿en qué circunstancias se debe utilizar el pensamiento funcional y en qué situación se debe utilizar el pensamiento orientado a objetos?

¿Debo continuar con la ingeniería de software o cambiarme a ingeniería mecánica?

¿Cuál es mejor para ser utilizado como máquina de desarrollo, Fedora o Arch?

¿Qué porcentaje de tiempo deberían dedicar los desarrolladores de software a la refactorización con el tiempo?

Cómo crear una aplicación de prueba gratuita menos pirateable

¿Los nuevos desarrolladores eligen entre programar en Windows 7 o Mac OS X 10.7? ¿Cuáles son los beneficios y las limitaciones de cada alternativa?