Focos de atención
Ingeniero de software, desarrollador de aplicaciones, arquitecto de software, programador informático, programador de juegos, desarrollador de software para juegos
Los desarrolladores de software son las mentes creativas que están detrás de los programas informáticos. Algunos desarrollan las aplicaciones que permiten a las personas realizar tareas específicas en un ordenador u otro dispositivo. Otros desarrollan los sistemas subyacentes que hacen funcionar los dispositivos o que controlan las redes.
- Posibilidad de crecer en la empresa elegida
- Capacidad para hacerse cargo de proyectos e influir en los demás
- Ampliar los conocimientos tecnológicos cada día
- Capacidad de influir directamente en el crecimiento de una empresa
- Analizar las necesidades de los usuarios y, a continuación, diseñar, probar y desarrollar programas informáticos para satisfacer esas necesidades
- Recomendar actualizaciones de software para los programas y sistemas existentes de los clientes
- Diseñar cada pieza de una aplicación o sistema y planificar el funcionamiento conjunto de las piezas
- Crear una variedad de modelos y diagramas (como diagramas de flujo) que muestren a los programadores el código de software necesario para una aplicación
- Garantizar que un programa siga funcionando con normalidad mediante el mantenimiento y las pruebas del software
- Documentar todos los aspectos de una aplicación o sistema como referencia para futuros mantenimientos y actualizaciones
- Colaborar con otros especialistas en informática para crear un software óptimo
Diferentes tipos de promotores
- Desarrolladores de back-end - responsables de la construcción técnica general del sitio web
- Desarrolladores de front-end: responsables del aspecto de un sitio web (diseño y gráficos)
- Webmasters: mantener los sitios web y mantenerlos actualizados
- Concentración
- Creatividad
- Habilidades de servicio al cliente
- Orientado al detalle
- Conocimiento profundo de HTML, herramientas de publicación multimedia y lenguajes de programación
- Flexibilidad
- Aprendizaje rápido
- Capacidad de adaptación rápida al cambio
- Expectativas: capacidad de aprender sobre la marcha y entregar código de calidad y mantenible
- Sacrificios: tener que rellenar los huecos y ayudar a otros miembros del equipo, además de las propias responsabilidades, especialmente cuando se trabaja con requisitos poco claros de las empresas de productos
- Empresa tecnológica (no importa si es una gran empresa o una startup): por ejemplo, Google, Facebook
- Organizaciones que se ocupan de operaciones que pueden realizarse de forma programada (cada vez hay más organizaciones que se ajustan a esta descripción)
- Posibilidad de crear su propia empresa
- Puede desarrollar por cuenta propia para múltiples empresas
- Taller de desarrollo
- Inteligencia artificial que hace que el software/aplicación/sistema sea más inteligente cada día
- Aprendizaje automático integrado para que las máquinas piensen como los humanos
- Ejemplos de este software: Google Assistant, Siri, Alexa
- Datos masivos
- Desarrollo de software de código abierto: El código fuente original del código abierto está disponible y puede ser redistribuido y modificado, lo que lo convierte en la clave de la innovación en una variedad de esferas. La publicación del código abierto no sólo nutre a las empresas individuales, sino que hace evolucionar, crea y a veces destruye industrias enteras. Utilizar el código abierto, hacer que sus proyectos sean de código abierto y ser parte activa de la comunidad de código abierto es una forma necesaria de mantenerse al día con la tecnología y formar parte de una comunidad más amplia.[www.oreilly.com]
- Interrupción y remontaje de la infraestructura: Estos nuevos programas permiten a los ingenieros de software centrarse en el crecimiento del negocio en lugar de preocuparse por si los "órganos internos" funcionan correctamente: XaaS, arquitectura sin servidor, sistemas distribuidos, contenedores y microservicios. Utilizar servicios de terceros como OpenStack por su potencia de cálculo, construir microservicios reactivos para compartimentar y enfocar segmentos de su arquitectura para crear un entorno mucho más resistente y escalable, y desplegar software de forma continua con herramientas nativas de la nube como Docker y Kubernetes.[www.oreilly.com]
- Aprendizaje automático: OpenAI (Elon Musk), Watson (IBM), TensorFlow (Google) y CNTK (Microsoft) han creado nuevos productos (Alexa) y paradigmas interesantes (aplicaciones basadas en la voz), así como la automatización de la infraestructura, lo que ha provocado que el aprendizaje automático vuelva a calentarse oficialmente y de forma definitiva esta vez.[www.oreilly.com]
- El diseño que da prioridad al cliente: "Poner al cliente en primer lugar conduce al éxito en todo momento"[www.oreilly.com]
- Disfrutar de los juegos y de la resolución de problemas
- Interesado en la ciencia
- Pasión por la programación
- Deseo de descubrir nuevas ideas y adquirir el máximo de conocimientos posibles
- Bibliotecas frecuentadas
- Disfrutaba hablando con amigos durante horas sobre ideas, descubrimientos, libros
- Interés por el desarrollo de habilidades, la lluvia de ideas, la lectura y la conciencia ambiental
"Me gustaban bastante los juegos, y estoy seguro de que eso también fue un factor al final, pero en realidad me gustaban más las ciencias cuando era más joven. Fui a la universidad a estudiar ingeniería química antes de cambiarme. La chispa y la pasión por la programación probablemente vinieron de mi curso de programación en el instituto, donde disfruté mucho de los problemas que se presentaban, así como de desglosarlos de forma lógica, como las complejidades de crear una pecera simulada." Leon Ho, ingeniero de software en OpenX
- Los ingenieros de software pueden empezar con una licenciatura en informática o un campo de estudio relacionado
- Los puestos avanzados pueden requerir un máster
- Las prácticas de ingeniero de software son muy útiles para aprender mientras se adquiere experiencia práctica
- Existen numerosos certificados relacionados con la ingeniería de software, entre ellos:
- Springboard Software Engineering Bootcamp
- Profesional certificado del ciclo de vida del software seguro
- Certificación de desarrollador de software profesional
- Profesional de Desarrollo Web CIW
- Maestro certificado por Oracle
- Arquitecto de soluciones Azure certificado por Microsoft
- O*Net enumera una amplia gama de habilidades tecnológicas necesarias, incluyendo varios tipos de software como acceso, analítica, servidor de aplicaciones, copias de seguridad, inteligencia empresarial, acceso a datos basados en la nube, servidor de comunicaciones, gestión de la configuración, flujo de trabajo de contenidos, gestión de bases de datos, minería de datos, entorno de desarrollo, planificación de recursos empresariales, y muchos más
- Resuelve rompecabezas, juega al ajedrez y otros juegos de estrategia y lee
- Analizar cómo funcionan las cosas en la vida cotidiana; ejemplo: la gravedad
- Empezar a explorar cómo abordar los problemas y resolverlos de forma lógica, junto con las estructuras de datos y los algoritmos
- Los proyectos de código paralelo son siempre una ventaja.
- Los temas más comunes de las clases incluyen matemáticas avanzadas, cálculo AP, estadística AP, física AP, ingeniería, física y un montón de cursos de ciencias de la computación, tales como los fundamentos de la programación, estructuras de datos, introducción a los algoritmos, sistemas operativos, arquitectura de computadoras, interacción entre humanos y computadoras, y matemáticas discretas.
- Estudiar frameworks como React, Angular, Express y Rails
- Los lenguajes de programación más populares para los ingenieros de software son Java, Python, JavaScript, C++ y Scala
- Decide si quieres detenerte en una licenciatura y luego solicitar empleo, o seguir adelante con un máster primero
- Trabaja en las certificaciones relevantes que quieres completar antes de buscar trabajo
- Construir un sitio web de la cartera para mostrar su trabajo con estudios de casos
- Únase a los clubes informáticos de la escuela, donde podrá intercambiar información y mantenerse motivado
- Aprende en tu tiempo libre con vídeos, libros y proyectos paralelos
- Solicite puestos de trabajo de becario en ingeniería de software para adquirir experiencia en el mundo real
- Trabaja en el borrador de tu currículum a medida que vas superando hitos académicos y laborales
- Pedir recomendaciones a los profesores
- Aprovechar las oportunidades de los autónomos
- Solicite puestos de trabajo en empresas tecnológicas
- Experimentar con diferentes sectores
- Empezar una startup propia con una visión clara y un plan de negocio (puede usar Kickstarter para financiarse)
- Utilizar las redes sociales para establecer contactos en el sector
- Construye perfiles en portales de empleo como Monster, Indeed, Glassdoor, Zippia, así como en sitios relacionados con las TI como Machine Hack, MLconf Job Board, Stack Overflow, AngelList y DataJobs. No olvides utilizar también LinkedIn.
- Solicita puestos de trabajo junior hasta que consigas la experiencia suficiente para optar a puestos avanzados
- Fíjate en las palabras clave utilizadas en los anuncios de empleo. Incorpórelas a su currículum.
- Consulta las plantillas de currículum para ingenieros de software para obtener ideas sobre la redacción
- Pregunte a las posibles referencias por adelantado antes de dar su información de contacto
- Prepárese para las entrevistas leyendo las preguntas de las entrevistas a los ingenieros de software
- Sé tú mismo durante las entrevistas y deja que tu personalidad brille. La competencia técnica es importante, pero también lo es el ajuste cultural. Debes asegurarte de que tú y la empresa a la que te presentas encajáis bien.
- Lea sobre la nueva tecnología
- No tiene por qué limitarse a su trabajo, puede ser cualquier cosa que agudice sus habilidades para resolver problemas
- La capacidad de adaptación es realmente importante
- Mentes brillantes que pueden pivotar rápidamente
Requisitos:
- Formación en escuelas de formación profesional, experiencia en el puesto de trabajo o un título de grado medio
- Habilidades, conocimientos o experiencia previos relacionados con el trabajo ne o dos años de formación que incluyan tanto experiencia en el trabajo como formación informal con trabajadores experimentados, es decir, un programa de aprendizaje reconocido
- Gran capacidad de comunicación y organización para coordinar, supervisar, gestionar o formar a otras personas para que cumplan sus objetivos, por ejemplo, directores de producción hidroeléctrica, guías de viaje, electricistas, técnicos agrícolas, barberos, niñeras y asistentes médicos.
Páginas web
- Association for Computing Machinery
- Asociación de Pruebas de Software
- Sociedad de Informática del IEEE
- Asociación de Investigación Informática
- CompTIA
- Centro Nacional de Mujeres y Tecnología de la Información
Libros
- Conviértase en un director de ingeniería de software eficaz: Cómo ser el líder que su equipo de desarrollo necesita, por el Dr. Stanier, James
- Beginning Software Engineering, por Rod Stephens
- Ingeniería de software en Google: Lessons Learned from Programming Over Time, por Titus Winters y Tom Manshreck
- Analistas de seguridad de la información
- Fundador de una empresa tecnológica
- Agente de patentes
- Abogado de patentes