Tipos de desarrolladores
¿cuántos tipos de desarrolladores ¿sabes? Y, si eres desarrollador, ¿a qué tipo te refieres? En el mundo real, los límites entre los diferentes tipos de desarrolladores son borrosos. Cuanto más profesional sea, más tipos encajará. Así que vamos a ver, cuántos tipos de desarrolladores están disponibles en la industria de desarrollo de software.
Antes de empezar, queremos dar las gracias a Lorenzo Pasqualis, cuyo artículo nos inspiró a crear este material.
Para ser honesto, la mayoría de nosotros reconocemos solo tres tipos de desarrolladores de software: frontend, backend y fullstack. Eso es obvio, pero esto es solo la mitad de la verdad. Hoy en día, es poco probable que diferentes desarrolladores con las mismas pilas tecnológicas puedan aplicar sus habilidades y conocimientos a las diferentes áreas. Es como pedirle a tu desarrollador móvil que trabaje en la creación de un juego. Podría conocer las herramientas, pero no es un desarrollador de juegos. Y eso hace una gran diferenciación en los tipos de desarrolladores.
Comenzaremos con los tipos principales:
Frontend
Ayer escribimos el artículo más grande con cheatsheet para frontenders. Entonces, ¿quiénes son? Este es un tipo de desarrolladores que se especializan en interfaces de usuario visuales, estética y diseños. Su código se ejecuta en un navegador web en el ordenador del usuario del sitio. Trabajan en la creación de aplicaciones web y sitios web. El hardware no es lo que suelen pensar los especialistas en frontend.
Su trabajo requiere una comprensión de la interacción hombre-máquina y los principios de diseño más que la teoría de la informática.
Habilidades de desarrollo de Frontend:
- diseño de interfaz de usuario (UI)
- diseño de experiencia de usuario (UX)
- CSS
- JavaScript
- HTML
- interfaz de usuario marcos.
Los desarrolladores de Frontend deben estar familiarizados con frameworks como Bootstrap, Foundation, Backbone, AngularJS y EmberJS, que garantizan un contenido de gran apariencia sin importar el dispositivo, y bibliotecas como jQuery y LESS, que empaquetan el código en una forma más útil y que ahorra tiempo. Muchos listados de trabajo de desarrollador front-end también requieren experiencia con Ajax, una técnica ampliamente utilizada para usar Javascript que permite que las páginas se carguen dinámicamente descargando datos del servidor en segundo plano.
Backend
El segundo tipo de desarrolladores más populares. El desarrollador de backend se especializa en el diseño, la implementación, la lógica central funcional, el rendimiento y la escalabilidad de una pieza de software o sistema que se ejecuta en máquinas que están remotas del usuario final. Integran una amplia gama de servicios, como bases de datos, almacenamiento en caché, registro, sistemas de correo electrónico, etc.
¿Qué hace posible el front-end de un sitio web? ¿Dónde se almacenan todos esos datos? Estas son las preguntas para el desarrollo de backend. El motor de un sitio web consiste en un servidor, una aplicación y una base de datos. Un desarrollador de backend construye y mantiene la tecnología que impulsa esos componentes que, en conjunto, permiten que el lado orientado al usuario del sitio web incluso exista en primer lugar.
Backend de desarrollo de habilidades:
- Java
- C, C++
- Ruby
- Python
- Scala
- Ir, etc.
También utilizan herramientas como MySQL, Oracle y SQL Server para buscar, guardar o cambiar datos y volver a enviarlos al usuario en código front-end. Las ofertas de trabajo para desarrolladores de backend a menudo también requieren experiencia con frameworks PHP como Zend, Symfony y CakePHP; experiencia con software de control de versiones como SVN, CVS o Git; y experiencia con Linux como sistema de desarrollo e implementación.
Fullstack
Llame a este desarrollador un asistente, pero él (o ella) hace el trabajo tanto en el frontend como en el backend. El desarrollador de fullstack tiene las habilidades necesarias para crear una aplicación web completamente funcional. Se considera que trabajar tanto en el lado del servidor como en el lado del cliente profesionalmente abre más oportunidades. Son jugadores de todos los oficios.
La complejidad del desarrollo de pila completa se puede ilustrar con esta imagen (por supuesto, hay más tecnologías):
Imagen a través de TechCrunch
El desarrollador de fullstack debería poder:
- para configurar y configurar servidores Linux
- para escribir API del lado del servidor
- para sumergirse en el JavaScript del lado del cliente que alimenta una aplicación
- para convertir un «ojo de diseño» en CSS
Desarrollador móvil
Este es un desarrollador que escribe código para aplicaciones que se ejecutan de forma nativa en dispositivos móviles de consumo, como teléfonos inteligentes y tabletas. Este tipo apareció después del auge de los dispositivos móviles a principios de la década de 2000 y la explosión del mercado de teléfonos inteligentes. Antes de eso, el desarrollo móvil se consideraba un subconjunto del desarrollo embebido (también escribiremos sobre los desarrolladores embebidos en este artículo).
Un desarrollador móvil comprende las complejidades de los sistemas operativos móviles, como iOS y Android, y el entorno de desarrollo y los marcos utilizados para escribir software en esos sistemas operativos.
Habilidades de desarrollador móvil:
- Java
- Swift
- Objective-C
- C, C++ y Java
- Interfaces de programación de aplicaciones (API) como Apple iOS, Android, Windows Mobile y Symbian
- Lenguajes de desarrollo web como HTML 5 y CSS
- Suites móviles multiplataforma como Antenna y AMP ( Contabilidad-Gestión-Promoción)
Desarrollador de juegos
Todos los niños adictos a los juegos quieren convertirse en desarrolladores de juegos en el futuro. Pero esta ocupación es tan romántica y divertida como complicada y exigente.
Desarrollador de juegos se especializa en escribir juegos y puede pertenecer a una de las otras categorías de desarrolladores, pero a menudo tienen conocimientos y habilidades específicos para diseñar e implementar experiencias de juego atractivas e interactivas.
Habilidades para desarrolladores de juegos:
- DirectX, OpenGL, Unity 3D, WebGL frameworks
- lenguajes como C, C++ y Java
- JavaScript y HTML5
- Swift y Java para dispositivos móviles.
Data Scientist
Este tipo de desarrollador escribe programas de software para analizar conjuntos de datos. A menudo se encargan del análisis estadístico, el aprendizaje automático, la visualización de datos y el modelado predictivo. Muy romántico, ¿verdad? Pero la lista de habilidades que un científico de datos debe tener cubre muchas cosas relacionadas con la ciencia:
- Lenguajes de programación estadística, como R o Python, y lenguajes de consulta de bases de datos como SQL
- Comprender las estadísticas y las diferentes técnicas que son (o no son) un enfoque válido
- Familiaridad con los métodos de aprendizaje automático
- Conocer los principios de Cálculo Multivariable y Álgebra Lineal
- Saber cómo lidiar con las imperfecciones en los datos (incluyendo valores faltantes, formato de cadena inconsistente, etc.)
- Visualizar y comunicar datos es increíblemente importante
- Tener una sólida experiencia en ingeniería de software
- Capacidad para resolver problemas de alto nivel
Desarrollador DevOps
Este es un tipo de desarrollador familiarizado con las tecnologías para construir, implementar e integrar el sistema y administrar software de back-end y sistemas distribuidos.
Para explicar la forma:
- Un desarrollador (programador) crea aplicaciones
- Ops implementa, administra y supervisa aplicaciones
- DevOps crea aplicaciones y las implementa/administra/supervisa.
DevOps fue posible gracias a la nube y las herramientas/plataformas para facilitar la implementación y la administración. Habilidades necesarias para devops:
- Kubernetes
- Docker
- Apache Mesos
- la pila de HashiCorp (Terraform, Vagrant, Packer, Vault, Consul, Nomad)
- Jenkins, etc.
Ingeniero de Desarrollo de software en Prueba
Este tipo de desarrollador es responsable de escribir software para validar la calidad de los sistemas de software. Crean pruebas, herramientas y sistemas automatizados para asegurarse de que los productos y procesos se ejecutan según lo esperado. Habilidades necesarias para ingenieros de prueba:
- Python
- Ruby
- Selenio.
Desarrollador incrustado
El desarrollador incrustado funciona con hardware que no se clasifica comúnmente como equipos. Por ejemplo, los microcontroladores, los sistemas en tiempo real, las interfaces electrónicas, los decodificadores, los dispositivos de consumo, los dispositivos IoT, los controladores de hardware y la transmisión de datos en serie entran en esta categoría.
Los desarrolladores integrados a menudo trabajan con lenguajes como:
- C, C++
- Assembly
- Java o tecnologías, frameworks y kits de herramientas patentados
Con la definición de desarrollador integrada, nos gustaría terminar la lista de tipos de desarrollador. Nombramos para usted los principales tipos de desarrolladores que son fundamentalmente diferentes. Pero también se podía escuchar sobre:
– desarrollador web (el propósito del desarrollo web es obvio)
– desarrollador de aplicaciones (que es competente en la creación de diferentes tipos de aplicaciones)
– desarrollador de seguridad (que crea sistemas, métodos y procedimientos para probar la seguridad de un sistema de software)
– Desarrollador de CRM (pasan el rato con SAP, Salesforce, Sharepoint y Planificación de Recursos Empresariales)
– Desarrollador de Big data (rara vez conocido, este tipo de desarrolladores utilizan sistemas para el almacenamiento distribuido y el procesamiento de grandes cantidades de datos, como MapReduce, Hadoop y Spark)
– Desarrolladores de gráficos (se especializan en software de escritura para renderizado, iluminación, sombreado, sombreado, selección y administración de escenas)
¡Suscríbase a nuestro boletín semanal para encontrar más cosas interesantes sobre el desarrollo de software!