11 tipos de desarrolladores (¿cuál serás?)
Publicado: 2022-10-05Di la palabra "desarrollador" y nosotros en Kinsta pensamos en "software". No, digamos, "bienes inmuebles". Sin embargo, incluso el enfoque en las computadoras y el código deja mucha libertad para describir los tipos de desarrolladores.
Podríamos categorizar a los desarrolladores por el lenguaje de programación que usan, como "desarrollador de JavaScript" o "desarrollador de Python", pero eso no revelaría lo que están creando o su papel en el proceso. Además, es común que los desarrolladores sepan varios idiomas.
Por lo tanto, usaremos algunas etiquetas ampliamente aceptadas (y más descriptivas) para los tipos de desarrolladores y veremos las tareas y herramientas detrás de ellos.
¿Qué es un desarrollador?
Hemos establecido que el software es clave para la historia de nuestros desarrolladores. Eso puede tomar muchas formas.
Un miembro del equipo de programación detrás del software de base de datos SQL Server de Microsoft es un desarrollador. Alguien que usa lenguaje de consulta estructurado para trabajar con información almacenada en dicha base de datos también puede ser un desarrollador.
Un desarrollador crea un sistema operativo de computadora integrado en una placa de circuito. Otro escribe scripts de Bash para automatizar las interacciones entre muchos otros programas de software.
Todos estos tipos de desarrolladores han creado algo con código.
¿Cuántos tipos de desarrolladores hay?
No hay una lista "oficial" de descripciones de trabajo de desarrollador. Vamos a ver lo que hacen los desarrolladores usando una terminología común, e incluso vamos a dividir la amplia categoría de "desarrollador web" en tres roles distintos. (Lo admitimos: tenemos una debilidad en nuestros corazones por las personas que crean sitios web).
En total, revisaremos 11 tipos de desarrolladores aquí.
1. Desarrollador web front-end
Un desarrollador frontend se enfoca en la interfaz de usuario de un sitio web. Usan sus habilidades de HTML y CSS para controlar la apariencia de un sitio, a menudo acomodando varios tamaños de pantalla en navegadores móviles y de escritorio.
Los desarrolladores frontend suelen confiar en JavaScript para crear una experiencia receptiva para los usuarios. Estos desarrolladores suelen estar familiarizados con las bibliotecas y los marcos de JavaScript que pueden acelerar la creación de aplicaciones dinámicas orientadas al cliente.
El desarrollador frontend trabaja para mejorar el rendimiento del sitio web, optimizando imágenes, JavaScript y marcado para acelerar el tiempo de carga en los navegadores. La mayoría de los desarrolladores frontend también se enfocan en la optimización de motores de búsqueda y la accesibilidad del sitio web.
Todo esto requiere muchas habilidades, y el salario de un desarrollador frontend puede reflejar eso.
¿Los desarrolladores frontend son diseñadores web?
Muchos desarrolladores de frontend también son diseñadores, pero eso no es un requisito para el título de "frontend". Del mismo modo, muchos diseñadores web conocen bien HTML y CSS, y pueden usarlos en maquetas, pero no se consideran desarrolladores.
Para muchas organizaciones, el diseño es parte de la marca que abarca los medios más allá de la web.
No importa quién cree un diseño, es el trabajo del desarrollador frontend darle vida en una página web y convertir la visión de una experiencia de usuario en una aplicación funcional.
2. Desarrollador web back-end
Un desarrollador de back-end crea aplicaciones del lado del servidor que generalmente requieren experiencia en software de servidor web, bases de datos y los sistemas operativos en los que se ejecutan. Un ejemplo de código totalmente abierto sería el sistema operativo Linux, un servidor web Nginx o Apache y una base de datos MariaDB o PostgreSQL.
La línea entre el desarrollo de back-end y front-end es borrosa por tecnología como PHP, solo un lenguaje de secuencias de comandos del lado del servidor que envía HTML a los navegadores en el front-end.
PHP, que impulsa WordPress y otros CMS populares, así como marcos de desarrollo como Laravel, es el lenguaje de secuencias de comandos del lado del servidor más común de la web. Aún así, los desarrolladores de back-end pueden usar tecnologías como C# y el marco .NET de Microsoft, Python, Java, Ruby on Rails o Node.js.
Los desarrolladores de back-end pueden esperar trabajar en colaboración con los miembros del equipo que se ocupan del lado del cliente de un sitio web. El desarrollo del lado del servidor también puede incluir la creación de interfaces de programación de aplicaciones (API) que admitan servicios front-end con menos necesidad de un acoplamiento estrecho de los dos lados.
Si todo eso suena como su tipo de trabajo, es posible que le interesen los salarios típicos de los desarrolladores de back-end.
3. Desarrollador web de pila completa
Es posible que haya adivinado que un desarrollador de pila completa hace el trabajo de los desarrolladores de frontend y backend. (Desafortunadamente, eso no significa que el salario típico de un desarrollador full-stack sea el doble que el de los demás).
Aún así, dominar todos los niveles de desarrollo web parece tener sus recompensas. Una encuesta de desarrolladores de 2022 realizada por StackOverflow encontró que "desarrollador de pila completa" fue la respuesta principal (casi el 47 %) cuando se les pidió a los encuestados que describieran sus roles.
¿Los desarrolladores de WordPress son desarrolladores de pila completa?
Las características del alojamiento administrado de WordPress aquí en Kinsta permiten que cualquier persona competente en PHP realice un desarrollo serio sin profundizar en el lado del servidor.
WordPress instalado en cualquier lugar es amigable para los desarrolladores y ofrece una gran biblioteca de sus propias funciones/métodos de PHP que son una capa de abstracción sobre algunas tareas comunes del lado del servidor. Por ejemplo, los desarrolladores de WordPress pueden almacenar y recuperar registros en bases de datos relacionales sin escribir SQL. Pueden guardar las cargas de medios en el sistema de archivos de un servidor sin conocer la funcionalidad principal de PHP que hace que todo suceda.
“Desarrollador de WordPress” podría haber sido una categoría propia aquí, pero tendríamos que hacer lo mismo para los desarrolladores que usan productos CMS como Drupal, Joomla y DNN y marcos como Laravel, .NET y Django.
Muchos desarrolladores de WordPress, particularmente algunos que crean temas y complementos de WordPress, tienen habilidades inspiradoras de pila completa. Entonces, la respuesta a la pregunta "¿Son los desarrolladores de WordPress desarrolladores de pila completa?" es: Depende.
4. Desarrollador de aplicaciones móviles
El término "aplicación" cubre mucho terreno en el desarrollo de software. Desde el escritorio hasta la web, las aplicaciones son las herramientas que hacen las cosas para los usuarios finales.
Cuando se reduce a solo "aplicación", como en "¡Hay una aplicación para eso!" — tendemos a pensar primero en las aplicaciones que se ejecutan en teléfonos inteligentes, tabletas y otros dispositivos móviles. Y la creación de aplicaciones móviles requiere un tipo de desarrollador especializado.
Los desarrolladores de aplicaciones móviles están familiarizados con los kits de desarrollo de software (SDK) y las herramientas relacionadas que se utilizan para crear aplicaciones para el sistema operativo de un dispositivo, como iOS de Apple o Android de Google.
Swift es el lenguaje de programación nativo para iOS, mientras que Java y Kotlin son los más utilizados para Android. Además, un gran ecosistema de herramientas de creación de aplicaciones, como Apache Cordova y NativeScript, puede convertir el código basado en JavaScript, HTML y CSS compatibles con la web en software móvil nativo.
Cuando observamos los salarios promedio de los desarrolladores de aplicaciones, descubrimos que aquellos que creaban para plataformas móviles ganaban un poco más que aquellos que se enfocaban en el escritorio o la web.
5. Desarrollador de software de escritorio
Los desarrolladores de escritorio crean aplicaciones de software que se ejecutan en computadoras personales y estaciones de trabajo.
Los desarrolladores generalmente crean aplicaciones de escritorio para sistemas operativos específicos, por lo que la actividad en este campo refleja las cuotas de mercado relativas de plataformas como Windows de Microsoft, macOS de Apple, Chrome OS de Google y el sistema operativo de código abierto Linux.
Usando datos recopilados de visitas a sitios web en todo el mundo, Statcounter estimó en agosto de 2022 que Windows tenía una participación de mercado del 74% entre los sistemas operativos de escritorio.
Es probable que los desarrolladores programen utilizando herramientas de entorno de desarrollo integrado (IDE) para editar, depurar y compilar rápidamente el código fuente.
Los lenguajes populares para la programación de aplicaciones de escritorio incluyen C#, C++, Swift y Java.
El software de escritorio se ejecuta localmente, pero las aplicaciones modernas pueden usar la conectividad a Internet para tareas que van desde actualizaciones de productos hasta compartir datos a través del almacenamiento en la nube.
6. Científico de datos (desarrollador de Big Data)
Los seres humanos ayudan a generar una gran cantidad de datos al realizar su vida cotidiana: pagar en la tienda de comestibles, navegar por la web, pasar frente a las cámaras de tráfico, usar teléfonos celulares, incluso votar. Hemos construido sistemas para registrar datos de fenómenos naturales como el clima, terremotos y señales electromagnéticas del espacio.
Un científico de datos es un mago de las matemáticas con una computadora que puede descubrir patrones en toda esa información.
Es muy probable que estos desarrolladores estén usando el lenguaje de programación Python o algo más especializado, como R, Scala o Julia.
Los "grandes datos" generalmente terminan en una base de datos relacional, por lo que es probable que un científico de datos tenga SQL en su caja de herramientas de programación.
7. Desarrollador de inteligencia artificial/aprendizaje automático
Los desarrolladores de software de inteligencia artificial (IA) buscan imitar comportamientos humanos como la toma de decisiones. Agregue aprendizaje automático (ML) y una aplicación puede volverse más inteligente con el tiempo.
Las aplicaciones de AI/ML suelen procesar una gran cantidad de datos mediante algoritmos complejos, por lo que los desarrolladores en el campo suelen ser científicos de datos.
La firma de investigación de mercado IDC descubrió que los ingresos mundiales por aplicaciones, hardware y servicios relacionados con la IA superaron los 383.000 millones de dólares en 2021, un aumento de casi el 21 % con respecto a 2020.
El software de gestión de relaciones con los clientes y el software de gestión de recursos empresariales representaron alrededor del 65 % de los ingresos de las aplicaciones mejoradas con IA.
8. Desarrollador de juegos
Los desarrolladores de juegos de computadora representan una amplia gama de habilidades.
Su software puede ejecutarse en computadoras de escritorio, dispositivos móviles, consolas o navegadores web. Las historias se adaptan a diferentes géneros de juegos, como simulación militar o deportiva, juegos de disparos en primera persona, estrategia o juegos de rol. Luego, probablemente haya gráficos en 3D, música y efectos de sonido.
En un mundo de juegos conectados a Internet, los desarrolladores de juegos multijugador masivos enfrentan requisitos de bases de datos y servidores back-end tan exigentes como los sitios de comercio electrónico más concurridos.
Los desarrolladores de juegos suelen tener experiencia en herramientas de renderizado 3D y otro software relacionado con la animación.
Y, centrándose en la tecnología de vanguardia, las encuestas recientes para desarrolladores realizadas por Developer Nation de SlashData mostraron que poco más del 37 % de las aplicaciones de realidad aumentada (AR) o realidad virtual (VR) eran juegos AR/VR. Otro 27,9% de los proyectos implicaba la construcción de mundos virtuales, algunos para juegos.
9. Desarrollador de sistemas operativos
Si bien miles de desarrolladores trabajan en los sistemas operativos más populares, contribuyendo a Linux o empleados por Microsoft, Apple o Google, sigue siendo un grupo exclusivo. Después de todo, SlashData dice que sus encuestas sugieren que la población total de desarrolladores en todo el mundo es de más de 24 millones.
Es muy probable que su refrigerador tenga un sistema operativo, pero los sistemas operativos de computadora populares son esfuerzos que requieren grandes equipos de desarrolladores, la mayoría de los cuales están trabajando en componentes más pequeños del proyecto general.
El núcleo de la mayoría de los sistemas operativos es el kernel, que administra el acceso a la CPU, la memoria, los sistemas de archivos y los dispositivos de E/S. C es el lenguaje de codificación principal para los núcleos detrás de Microsoft Windows, macOS de Apple y Linux. También se utiliza algún código de bajo nivel escrito en ensamblador.
Y el kernel de Android evolucionó del kernel de Linux.
Además del kernel, un sistema operativo tiene controladores para administrar varios dispositivos de hardware y aplicaciones para el mantenimiento del sistema. Y luego está la interfaz gráfica de usuario del sistema. Los desarrolladores pueden usar C, C++, Objective C (macOS) e incluso Python (Linux) para estos componentes.
10. Ingeniero DevOps
Un ingeniero de DevOps administra herramientas y flujos de trabajo que llevan el software desde la etapa de desarrollo hasta su lanzamiento público de manera rápida y confiable.
"DevOps" es una amalgama de las palabras "desarrollo" y "operaciones", y los profesionales automatizan las tareas repetitivas de desarrollo de software, desde la gestión del código hasta las pruebas, la implementación, la supervisión, el mantenimiento y la resolución de problemas.
Estos ingenieros emplean un conjunto de herramientas DevOps para ayudar a acelerar los ciclos de lanzamiento de software, administrar las diversas versiones del código base del proyecto y confirmar que el producto final funciona como se esperaba.
Cuando se utiliza para el desarrollo web, el proceso DevOps también puede garantizar que los recursos requeridos por la aplicación estén disponibles y configurados correctamente en el servidor web.
DevOps requiere habilidades avanzadas, y el salario de un ingeniero de DevOps generalmente refleja eso.
11. Desarrollador de seguridad (SecDevOps)
Un desarrollador de seguridad crea herramientas y administra procesos que prueban el software y la seguridad del sistema informático.
En el desarrollo de software, la seguridad suele ser un componente del proceso DevOps. Alguien que se centre en la seguridad en ese entorno podría llamarse ingeniero SecDevOps.
Los desarrolladores de seguridad trabajan para proteger el software y los sistemas informáticos de los ataques y amenazas de ciberseguridad. Usan varias herramientas, incluidos lenguajes de secuencias de comandos como Python, Bash y Ruby, para automatizar tareas repetitivas.
Un desarrollador de seguridad debe tener un conocimiento profundo del software y los sistemas que intenta proteger.
¿Qué tipo de desarrollador quieres ser?
Si está pensando en convertirse en desarrollador, tenemos información para ayudarlo a dar los siguientes pasos. Puede leer sobre los mejores lenguajes de programación para aprender o profundizar en el aprendizaje de PHP y descubrir tutoriales de JavaScript.
Tal vez le interese saber qué se necesita para ser un desarrollador de Laravel o concentrarse en aprender WordPress, el CMS más popular del mundo.
Entonces, tal vez algún día, te unas a nosotros con una carrera en Kinsta.
Resumen
Ese es un vistazo a 11 tipos de desarrolladores con roles lo suficientemente distintos como para resaltar las diversas tareas disponibles en sus campos.
Aún así, muchos desarrolladores cumplen más de un rol y la mayoría están familiarizados con múltiples lenguajes de programación o secuencias de comandos. Tal vez por eso nunca estaremos todos de acuerdo en una lista "oficial" de tipos de desarrolladores.
Mientras tanto, si tiene un proyecto basado en la web que le gustaría lanzar, es posible que desee explorar las soluciones de Alojamiento de aplicaciones y Alojamiento de bases de datos de Kinsta.