Focos
Ingeniero de software, desarrollador de aplicaciones, arquitecto de software, programador informático, programador de videojuegos, desarrollador de software para videojuegos.
Los desarrolladores de software son las mentes creativas 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.
- Capacidad para crecer dentro de la empresa elegida.
- Capacidad para hacerse cargo de proyectos e influir en los demás.
- Amplía tus conocimientos tecnológicos cada día.
- Capacidad para influir directamente en el crecimiento de una empresa.
- Analizar las necesidades de los usuarios y, a continuación, diseñar, probar y desarrollar software para satisfacer dichas necesidades.
- Recomendar actualizaciones de software para los programas y sistemas existentes de los clientes.
- Diseñar cada parte de una aplicación o sistema y planificar cómo funcionarán juntas las distintas partes.
- 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.
- Asegúrese de 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 futuras tareas de mantenimiento y actualizaciones.
- Colaborar con otros especialistas informáticos para crear un software óptimo.
Diferentes tipos de desarrolladores
- Desarrolladores back-end: responsables de la construcción técnica general del sitio web.
- Desarrolladores front-end: responsables del aspecto de un sitio web (diseño y gráficos).
- Webmasters: mantienen los sitios web y los mantienen actualizados.
- Concentración
- Creatividad
- Habilidades de atención al cliente
- Orientado a los detalles
- Conocimiento profundo de HTML, herramientas de publicación multimedia y lenguajes de programación.
- Flexibilidad
- Aprende rápido
- Capacidad para adaptarse rápidamente a los cambios.
- Expectativas: capacidad para aprender sobre la marcha y entregar código de calidad y fácil de mantener.
- Sacrificios: tener que cubrir las carencias y ayudar a otros miembros del equipo, además de cumplir con las propias responsabilidades, especialmente cuando se trabaja con requisitos poco claros por parte 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 mediante programación (cada vez más organizaciones encajan en esta descripción).
- Opción de crear tu propia startup
- ¿Puede un autónomo desarrollar proyectos para varias empresas?
- Tienda de desarrollo
- Inteligencia artificial que hace que el software, las aplicaciones y los sistemas sean cada día más inteligentes.
- Aprendizaje automático integrado para ayudar a las máquinas a pensar como los humanos.
- Ejemplos de este software: Google Assistant, Siri, Alexa.
- Big Data
- Desarrollo de software de código abierto: el código fuente original del código abierto está fácilmente disponible y puede redistribuirse y modificarse, lo que lo convierte en la clave de la innovación en diversos ámbitos. La publicación de código abierto no solo fomenta los negocios individuales, sino que también hace evolucionar, crea y, en ocasiones, destruye industrias enteras. Utilizar código abierto, convertir sus proyectos en código abierto y formar 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 reestructuración 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. Utilice servicios de terceros como OpenStack por su potencia informática, cree microservicios reactivos para compartimentar y centrar segmentos de su arquitectura con el fin de crear un entorno mucho más resistente y escalable, e implemente 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 y emocionantes productos (Alexa) y paradigmas (aplicaciones controladas por voz), así como automatización de infraestructuras, lo que ha provocado que el aprendizaje automático vuelva a cobrar impulso de forma oficial y, esta vez, para quedarse. [www.oreilly.com]
- Diseño centrado en el cliente: «Poner al cliente en primer lugar conduce siempre al éxito» [www.oreilly.com]
- Disfruta jugando a juegos / resolviendo problemas.
- Interesado en la ciencia
- Pasión por la programación
- Deseo de descubrir nuevas ideas y adquirir tantos conocimientos como sea posible.
- Bibliotecas frecuentadas
- Disfruté hablando con amigos durante horas sobre ideas, descubrimientos, libros...
- Interés por desarrollar habilidades, intercambiar ideas, leer y concienciarse sobre el medio ambiente.
«Me gustaban bastante los videojuegos, y estoy seguro de que eso también influyó al final, pero en realidad cuando era más joven me gustaba más la ciencia. Estudié ingeniería química en la universidad antes de cambiar de carrera. La chispa y la pasión por la programación probablemente surgieron en mi curso de programación del instituto, donde disfrutaba mucho con los problemas que se nos planteaban, así como con desglosarlos de forma lógica, como por ejemplo las complejidades de crear una pecera simulada». Leon Ho, ingeniero de software en OpenX.
- Los ingenieros de software pueden comenzar 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 los que se incluyen:
- Bootcamp de ingeniería de software Springboard
- Profesional certificado en seguridad del ciclo de vida del software
- Certificación profesional de desarrollador de software
- 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, tales como acceso, análisis, 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.
- Empieza a explorar cómo abordar los problemas y resolverlos de forma lógica, junto con las estructuras de datos y los algoritmos.
- Los proyectos paralelos siempre son una ventaja adicional.
- Los temas comunes de las clases incluyen matemáticas avanzadas, cálculo AP, estadística AP, física AP, ingeniería, física y numerosos cursos de informática, como fundamentos de programación, estructuras de datos, introducción a los algoritmos, sistemas operativos, arquitectura informática, interacción persona-ordenador y matemáticas discretas.
- Estudiar marcos de trabajo como React, Angular, Express y Rails.
- Los lenguajes de programación más populares entre los ingenieros de software son Java, Python, JavaScript, C++ y Scala.
- Decida si desea detenerse en una licenciatura y luego solicitar empleos, o continuar primero con una maestría.
- Trabaja en las certificaciones pertinentes que deseas completar antes de buscar empleo.
- Crea un sitio web con tu portafolio para mostrar tu trabajo con casos prácticos.
- Únete a clubes informáticos escolares donde puedas intercambiar información y mantener la motivación.
- Aprende a tu propio ritmo con vídeos, libros y proyectos paralelos.
- Solicita puestos de ingeniero de software en prácticas para adquirir experiencia en el mundo real.
- Trabaja en tu borrador de currículum mientras alcanzas tus metas académicas y laborales.
- Pida recomendaciones a los profesores.
- Aprovecha las oportunidades de trabajo como autónomo.
- Solicita puestos vacantes en empresas tecnológicas.
- Experimenta con diferentes sectores.
- Iniciar tu propia startup con una visión clara y un plan de negocio (puedes utilizar Kickstarter para la financiación).
- Utiliza las redes sociales para establecer contactos en el sector.
- Crea perfiles en portales de empleo como Monster, Indeed, Glassdoor, Zippia, así como en sitios relacionados con las tecnologías de la información como Machine Hack, MLconf Job Board, Stack Overflow, AngelList y DataJobs. ¡No te olvides de usar LinkedIn también!
- Solicita puestos junior hasta que adquieras la experiencia suficiente para optar a puestos más avanzados.
- Presta atención a las palabras clave utilizadas en los anuncios de empleo. Incorpóralas a tu currículum.
- Echa un vistazo a las plantillas de currículum para ingenieros de software para obtener ideas sobre cómo redactarlo.
- Pida permiso a las posibles referencias antes de facilitar su información de contacto.
- Prepárate para las entrevistas leyendo las preguntas de la entrevista para 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 la adecuación cultural. Debes asegurarte de que tú y la empresa a la que solicitas empleo encajáis bien el uno con el otro.
- Lea sobre las nuevas tecnologías.
- No tiene por qué limitarse a tu trabajo, puede ser cualquier cosa que agudice tus habilidades para resolver problemas.
- La capacidad de adaptación es realmente importante.
- Mentes brillantes capaces de adaptarse rápidamente.
Requisitos:
- Formación en escuelas profesionales, experiencia laboral relacionada o título de técnico superior.
- Habilidades, conocimientos o experiencia previa relacionada con el trabajo Uno o dos años de formación que incluya tanto experiencia laboral como formación informal con trabajadores experimentados, es decir, un programa de aprendizaje reconocido.
- Fuertes habilidades comunicativas y organizativas para coordinar, supervisar, gestionar o formar a otras personas con el fin de alcanzar objetivos, por ejemplo, directores de producción hidroeléctrica, guías turísticos, electricistas, técnicos agrícolas, barberos, niñeras y auxiliares médicos.
Páginas web
- Asociación de Maquinaria Informática
- Asociación para las Pruebas de Software
- Sociedad de Informática del IEEE
- Asociación de Investigación Informática
- CompTIA
- Centro Nacional para las Mujeres y la Tecnología de la Información
Libros
- Conviértase en un gestor eficaz de ingeniería de software: cómo ser el líder que su equipo de desarrollo necesita, por el Dr. Stanier, James.
- Introducción a la ingeniería de software, por Rod Stephens
- Ingeniería de software en Google: lecciones aprendidas de la programación a lo largo del tiempo, 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
Noticias
Ofertas de empleo
Cursos y herramientas en línea
Expectativas salariales anuales
Los nuevos trabajadores comienzan con un salario de alrededor de 101 000 dólares. El salario medio es de 132 000 dólares al año. Los trabajadores con mucha experiencia pueden ganar alrededor de 167 000 dólares.