Cómo hacer un cambio profesional de hardware a software

Según su descripción, ya está haciendo software. Estás hablando de un cambio de software que admite el desarrollo de hardware a software que admite otra cosa. Todavía es un cambio, pero NO es un cambio tan extremo como pasar del hardware puro al software.

Creo que necesitas dos cambios importantes para hacer esta transición. Uno es el reciclaje que espera, pero el otro es un cambio en el marketing. Para la comercialización usted mismo, comenzaría reescribiendo su currículum actual no como un currículum de hardware sino como un currículum de software. Usted es una persona de software con experiencia en la interfaz y soporte de hardware. Resalte los idiomas que conoce, los aspectos de programación de sus trabajos, las herramientas de programación que ha utilizado, etc. Al hacer esto y hablar con empleadores potenciales, recuerde que probablemente ya sepa lo siguiente:

  • Conceptos básicos de programación (bucles, variables, orientados a objetos, etc.)
  • Depuración
  • Trabajando con algunas herramientas de software
  • Desarrollando proyectos en equipo
  • Convertir requisitos en software de trabajo
  • Implementación y prueba de las cosas específicas en las que trabajó

Eso es una gran cantidad de conocimientos prácticos necesarios en cualquier trabajo de programación.

Para la parte de reentrenamiento, es hora de expandir tus horizontes, pero creo que en una dirección diferente a la que estabas pensando. Los algoritmos son geniales, pero ahora hay muchas herramientas y bibliotecas que manejan mucho de eso para las personas. A menos que esté entrando en una programación altamente teórica, no necesita tantos algoritmos de núcleo duro como supone. Si quieres un buen repaso, he oído que este libro es bueno, pero no creo que necesites memorizarlo para un trabajo de programación “regular”:

Manual de diseño del algoritmo: Steven S Skiena: 9781849967204: Amazon.com: Libros

Lo que realmente necesita para su reentrenamiento son dos partes.

  1. Romper la mentalidad de hardware
  2. Amplíe sus áreas de especialización fuera del área de bajo nivel

Romper la mentalidad de hardware

La mentalidad de hardware no es mala cuando trabajas en hardware. Tienes que ir despacio. Tienes que ser metódico. Tienes que medir dos veces porque solo puedes cortar una vez. Tienes que probar, probar, probar porque no hay marcha atrás y actualizar todos los chips. Si no sigue esta mentalidad en el hardware, puede meterse en muchos problemas.

Las cosas son totalmente al revés cuando trabajas en el desarrollo web moderno. Las cosas cambian tan rápido en el espacio de desarrollo web que si planificas cuidadosa y lentamente un proyecto utilizando el método de cascada, tus competidores te dejarían en el polvo. La planificación y la calidad son importantes, pero no en aras de la velocidad. Comenzaría a leer sobre el desarrollo de software ágil. Comience a pensar en compensaciones cuando trabaje en proyectos. A veces es mejor liberar simple y rápido y luego iterar. Asegúrese de que las personas con las que se entreviste vean que comprende la compensación entre un enfoque puro y un enfoque práctico.

Amplíe su experiencia

Les digo a los nuevos programadores que para avanzar hacia un nivel experto realmente necesitan conocer 3 lenguajes de programación diferentes y únicos. Parece que tienes C ++ y Matlab. (No estoy tan familiarizado con Matlab, así que no puedo decir si cuenta como un “lenguaje”). Para esforzarte, volvería a entrenar en algo totalmente diferente. Elija un idioma móvil como dispositivos iOS o un lenguaje de marco web como Ruby on Rails. Puede obtener capacitación básica en línea de forma gratuita. Recoge algunos libros geniales de lugares como The Pragmatic Bookshelf.

Luego, dependiendo de cómo se sienta en sus habilidades, considere uno de los programas de capacitación pagados, encontrar a alguien que le permita contratar a tiempo parcial para la experiencia y capacitación o trabajar en algún código abierto en esa área. Además, busque grupos de desarrollo local en ese idioma. Lo que quiere hacer es ponerse en una posición en la que trabaje con expertos que sepan más sobre eso que usted. De ellos, aprenderá cómo hacerlo, pero también parte de la mentalidad discutida anteriormente.

Una vez que tenga un conjunto sólido de habilidades prácticas, puede comenzar a buscar trabajo. Serás nuevo en ese lenguaje pero viejo en el concepto de programación.

Creo que Rose Wiegley está en el camino correcto. Durante las últimas dos décadas, el hardware realmente se ha centrado en el software: desde el lanzamiento de Magic en el ’83 en adelante, simplemente no hace nada de esto a mano.

Has estado íntimamente involucrado en la creación y el soporte de entornos de software complejos, orientados a una función específica. Regrese y lea su declaración original del problema.

¿Amigo, en serio?

Eres un desarrollador de software.

Parece que quieres trabajar en un área diferente. Es un problema completamente diferente de resolver, que “cómo paso de crear arena en las CPU a escribir código”.

Averigua en qué área quieres trabajar. Conoce a las personas que hacen eso. Hable con ellos sobre lo que están haciendo, calcule cuáles son sus déficits y corríjalos.

Recomiendo encarecidamente otras dos cosas: Stack Overflow y proyectos de código abierto.

Ingrese a StackOverflow y vea cuántas preguntas puede responder. Correctamente. 🙂 Construir reputación, esa es la “red social de elección” para los reclutadores de tecnología serios. Si estoy contratando desarrolladores, podría importarme lo que hacen en Facebook o Twitter, pero si son cero en Stack Overflow, bueno … Son un cero.

Los proyectos de código abierto también son importantes. Encuentre proyectos de código abierto que le interesen y comience a participar. Código, comprométase. Corregir errores. Puerto al nuevo sistema operativo. Lo que te venga bien. Lo que estás haciendo es construir una cartera . Al final del día, eso es lo que te va a conseguir un trabajo, no tu título.

Su experiencia previa será de gran ayuda para conseguir conciertos donde aparezcan las palabras “misión crítica”. Si eso le interesa o no es otro asunto.

PD: Yo mismo hice ese cambio, a mitad de la escuela de posgrado. En mi opinión, prefiero tener un desarrollador de software que podría haber construido el hardware trabajando en ciertas clases de proyectos que nadie más. ¡Puedes hacer esto totalmente!

Estoy exactamente en la misma posición. Yo mismo trabajo en Verificación de hardware, haciendo SystemVerilog y C. Me cambio a un trabajo de software este año, acabo de recibir una oferta. Solo cree en ti mismo: sinceramente, una vez que haces el hardware, la mayoría del software es pan comido. Tiene las habilidades, solo tiene problemas de programación, lea las últimas tendencias en la industria y calcule lo que quiere hacer.

Esto es factible, en mi humilde opinión, pero será un desafío. Las clases adicionales en estructuras de datos y algoritmos son casi ciertamente beneficiosas, si no fuera necesario.

Pero más allá de eso, simplemente sumérgete. Tienes una comprensión fundamental de cómo codificar. Ahora necesita aprender cómo convertir eso en ingeniería de software.

More Interesting

Imagina que estás en tu último año de universidad (estudiando CS / EE / matemáticas, etc.) y te gradúas en junio del próximo año. Sabiendo lo que sabe sobre la industria tecnológica ahora, ¿dónde trabajaría y por qué?

¿Debo solicitar pasantías de verano?

Soy titular de un título de MCA (desvanecimiento de 2012) y trabajo como ingeniero de software. Quiero seguir estudiando junto con el trabajo. ¿Qué curso elegiré: un P.hD, una maestría en ingeniería de software o algunas certificaciones como la certificación de Oracle / Microsoft? ¿Por qué?

Cómo encontrar un trabajo como ingeniero de software en Canadá desde India

¿Cuáles son las razones para que un ingeniero de software se traslade de una empresa de tecnología a finanzas?

¿Qué trabajo tiene un futuro mejor: un ingeniero de desarrollo de software en Microsoft o un asociado en Morgan Stanley Advantage Services?

¿Sería extraño comenzar mi educación a los 31 después de tener 11 años de experiencia como desarrollador de software?

Soy ingeniero de software con cuatro años de experiencia y me siento bastante perdido en este momento. ¿Hay alguien más que sienta lo mismo?

Al estar más actualizado en el desarrollo de software, ¿cuál es el conocimiento que obtendrá al trabajar desde un proyecto de soporte en lugar de un proyecto de desarrollo?

Necesito algunas opiniones Soy ingeniero de software y recientemente recibí una oferta de Yahoo y eBay. ¿A qué compañía debo ir?

Soy un ingeniero de RF que trabaja en la industria de las telecomunicaciones durante unos 13 años y estoy considerando una transición profesional en TI / software o gestión de productos / programas. ¿Cómo puedo seguir una carrera en cualquiera de los dos? Más específicamente, ¿qué competencias necesito recoger, cuáles son los posibles obstáculos, etc.?

¿Qué habilidades de ingeniería de software se pagan más?

¿Conseguiré un trabajo de desarrollo de software sin experiencia en pasantías?

¿Qué grado es mejor para un ingeniero de software?

¿Qué habilidades necesitaría para ser desarrollador de software / pasante de programación en Duolingo?