Este glosario de términos de programación para reclutadores es una herramienta básica para entender los tecnisismos de los perfiles TI.

En Hireline sabemos que una de las partes más difíciles de ser reclutador de tecnología es entender los términos de programación que existen en la industria. Y es que los reclutadores suelen tener una formación en administración de empresas, psicología o recursos humanos, pero no tienen una formación técnica.

Te compartimos este glosario en formato un E-Book para descargar. Lo único que te pedimos es que nos ayudes a compartirlo en tu LinkedIn para que llegue a más reclutadores de tecnología.

Descargar E-Book

Te recomendamos leer: ¿Qué hace un reclutador TI?

Términos básicos de programación

Si quieres saber de qué se trata, aquí te dejamos una muestra de los conceptos que podrás aprender con esta herramienta. Además te recomendamos ver nuestro Curso de Reclutamiento TI creado por el equipo de Hireline.

Lenguaje de programación

Para que una computadora ejecute una instrucción necesitas decirle dicha instrucción en un lenguaje que entienda. A estos lenguajes que la computadora es capaz de entender, se le llaman lenguajes de programación.

Es la herramienta principal que usa un programador para construir programas de computadora como: aplicaciones de celular/tablet, páginas web o programas de escritorio.

Código

Son las instrucciones que escribe un programador en un lenguaje de programación. El código es la etapa donde un programador puede leer y modificar un programa de computadora. 

En la siguiente imagen podrás ver un código escrito en el lenguaje de programación Java que le solicita a la computadora mostrar “Hola mundo” en la pantalla. 

 

Framework

Un framework proporciona una manera estándar de crear aplicaciones. Consiste de muchas soluciones predefinidas para funcionalidades comunes que son utilizadas para ayudar a crear aplicaciones de software de manera más rápida y estandarizada. 

Utilizando un framework, los desarrolladores no tienen que escribir desde cero todas las funcionalidades del software en el que están trabajando porque ya están implementadas en el framework y listas para ser utilizadas con un solo comando. 

Un ejemplo muy sencillo de las herramientas que puede ofrecer un framework, son los formularios de inicio de sesión en una página web.

Desarrollar un código desde cero para validar que el correo y contraseña que puso un usuario son correctos, toma tiempo. Un framework puede ayudar a los desarrolladores a no escribir este código y seguir avanzando en otras partes del proyecto de software.

Imagínate los frameworks como una plantilla de excel que ya tiene fórmulas predeterminadas y solo tienes que ingresar algunos datos para obtener el resultado deseado. 

Librería

Una librería es una colección de funciones prediseñadas para realizar tareas en específico. Por ejemplo, escribir un código que exporte una base de datos a un excel, le tomaría bastante tiempo a un programador. Por lo que se puede apoyar de librerías que ya tengan esta función ya desarrollada. 

Bug

Un bug es un error en el código de un programa. 

Alguna vez haz hecho clic en el botón de una página y no pasa nada, o haz entrado a un sitio web y empieza a parpadear, o el programa simplemente se cierra sin causa aparente.

Estos problemas son causados por errores en el código de un programa, o como le llaman usualmente los desarrolladores: “bugs”.

 

Dominio

Básicamente es el texto que ingresa una persona en un navegador para ingresar a un sitio web en específico. Por ejemplo el dominio de EmpleosTI es “empleosti.com.mx”.

 

Hosting

Es el servicio que provee almacenamiento de información,imágenes, vídeo, o cualquier contenido accesible vía Web. 

Las empresas usan un servicio de Hosting para tener su sitio web en línea y que los usuarios puedan acceder a él. 

 

Software

En el mundo de la programación se le conoce como software a cualquier programa de computadora. Una aplicación móvil, un sistema operativo, una página web, un programa de escritorio, todo eso se le conoce como software. 

 

Cultura

Desarrollo Ágil de Software

Hace referencia a las metodologías que promueven procesos disciplinados en el desarrollo de software. Estos procesos fomentan el trabajo en equipo, la organización, responsabilidad y mejores prácticas de desarrollo de software. Esto con la finalidad de desarrollar aplicaciones de mayor calidad en el menor tiempo posible. 

Algunas de las metodologías de desarrollo ágil de software son: DevOps, Scrum y Kanban.

 

DevOps

DevOps promueve una colaboración fluida entre el equipo de desarrollo (programadores) y el equipo de operaciones(administradores de servidores, base de datos, testers,etc)para producir productos mejores y más confiables. 

Al adoptar una cultura de DevOps junto con prácticas y herramientas de DevOps, los equipos adquieren la capacidad de responder mejor a las necesidades de los clientes, aumentar la confianza en las aplicaciones que crean y alcanzar los objetivos empresariales en menos tiempo.

 

Scrum

Scrum es una metodología de desarrollo ágil. Durante un sprint (o iteración), los miembros del equipo se auto-organizan para realizar las tareas que les corresponde. Al finalizar el sprint, los miembros del equipo revisan las tareas finalizadas y definen las tareas que se deben de hacer en la siguiente iteración. 

A cada tarea de un sprint se le asigna un puntaje para después poder evaluar el rendimiento de los miembros del equipo. De esta manera los managers pueden detectar un bajo rendimiento o predecir un contratiempo antes de que sea demasiado tarde. 

 

Perfiles

Desarrollador Front-End

El desarrollador Front-End hace todo lo que el usuario ve en la página.

Le da el diseño a las páginas web a través de herramientas como HTML y CSS. Con estas herramientas ellos pueden modificar el color de fondo, los tipos de fuente, el color de las letras o la estructura de texto en una página.

También hacen que las páginas sean dinámicas, o sea que el usuario pueda interactuar con el sitio web. Por ejemplo, cuando estás comprando en línea y agregas a tu carrito un producto, a lado del carrito vas a salir un “1” mostrando que tienes un producto en tu carrito para después comprarlo.

Para lograr que la página sea dinámica los desarrolladores Front-End usan lenguajes de programación como JavaScript. Suelen apoyarse en frameworks como AngularJS, Express, React o Vue.js.

 

Desarrollador Back-End

A diferencia del Front-End, el desarrollador Back-End crea todos los procesos de código de una página que el usuario no puede ver.

Los desarrolladores Back-End manejan la base de datos de las páginas y la lógica de una página web. 

Sigamos con nuestro ejemplo de la tienda en línea. Para que una tienda en línea funcione, el desarrollador Back-End tiene que pensar en toda la lógica del negocio. Tiene que pensar paso por paso cuál va a ser el proceso del usuario. Un usuario necesita crear una cuenta, poder agregar productos en su carrito para después visualizarlos, y debe de ser capaz de realizar un pago con tarjeta de crédito. 

Cuando un usuario ingresa los datos de su tarjeta para pagar los productos que seleccionó, la página está corriendo un código que le pide al banco realizar un cobro en la tarjeta. Proceso que el usuario no es capaz de ver y se está ejecutando por medio de un lenguaje de programación, eso es el back-end de una página.

Algunas de los lenguajes más usados por los desarrolladores Back-End son Java, PHP, Python y C#.

 

Desarrollador Full-Stack

Los desarrolladores Full-Stack son perfiles híbridos que conocen las herramientas que usa el programador Front-End y Back-End.

Pueden hacer desde el diseño de una página web hasta manejar la base de datos y procesos de la página.

 

Desarrollador Móvil

Los desarrolladores móviles crean apps para celulares o tablets para sistemas operativos como Android o iOS. 

Los desarrolladores de aplicaciones para iOS trabajan con el lenguaje de programación Swift. Mientras que los desarrolladores móviles para Android trabajan con Kotlin o Java.

Actualmente se están desarrollando nuevos frameworks para crear aplicaciones que funcionen en ambos sistemas operativos (Android y iOS) como ReactNative. De esta manera los desarrolladores móviles sólo tienen que construir un sólo código.

 

Diseñador UI/UX

Para entender este perfil, primero debemos de entender qué significan sus acrónimos. 

UI significa User Interface (o Interfaz de usuario), es lo que el usuario puede ver en una aplicación. Mientras que UX es User Experience (o Experiencia de Usuario) y es lo que el usuario siente cuando usa una aplicación. 

Un UI Designer diseña cómo se va a ver la página web o app en todos los dispositivos como computadora, celular y tablet. Son perfiles con bases fuertes en diseño, hacen que la aplicación se vea bien. Ellos deciden dónde va a ir la barra de búsqueda, donde van a estar los botones, el color de fondo de una sección, los iconos que se van a usar en la página, el color de los enlaces, entre otros elementos de diseño.

Por otro lado, el UX Designer se encarga de crear una buena experiencia para el usuario a través del diseño de la aplicación. 

Para explicar mejor cuál es el trabajo de un UX, pondremos de ejemplo la siguiente imagen con dos versiones de una app. 

En la primera versión  tenemos el diseño de una app que se ve atractiva y cumple con su propósito. El usuario puede seleccionar el tamaño de su café y decidir cuántos quiere comprar. Este sería el trabajo de un UI.  

En la segunda versión podemos ver la misma app pero con un diseño que aporta más valor al usuario y mejora su experiencia usando la plataforma. En esta versión, el usuario puede leer la descripción del producto y agregarlo a favoritos para encontrarlo más rápido en el futuro. Este es el trabajo del UX. 

Aunque el UI y UX Design son diferentes, la mayoría de las empresas lo tratan como un mismo rol. Basta con meterte a un portal de empleo para encontrar decenas de vacantes con el título UI/UX. 

El UI/UX  le pasa al Front-End un mockup o diseño de cómo se tiene que ver la aplicación. El Front-End, se encarga de poner el diseño del UI/UX en código. Sin embargo, algunas empresas pueden buscar un perfil híbrido que complemente las dos posiciones, alguien que cree el diseño visual de la página y que también pueda pasarlo a código a través de HTML, CSS y JavaScript. 

Los UI/UX usan herramientas de prototipado para hacer mockups del diseño de una app o página web, como: Invision, Adobe Experience Design, Origami Studio o Sketch.

 

Tester

El Tester o QA (Quality Assurance) planifica y lleva a cabo pruebas de software para comprobar si un programa de computadora funciona correctamente. Buscan riesgos de sufrir errores de un software, detectan incidencias y los comunican al equipo de programadores. Evalúan el funcionamiento general del software y sugieren formas de mejorarlo.

Todo esto con el objetivo de reducir las posibilidades de errores en el funcionamiento de un programa cuando el usuario final lo utilice. 

 

SysAdmin

Son responsables del mantenimiento, la configuración y el funcionamiento confiable de los sistemas y servidores informáticos. Instalan hardware y software y participan en la investigación y el desarrollo para mejorar continuamente y mantenerse al día con las necesidades comerciales de TI de su organización. L

Los administradores de sistemas también resuelven activamente problemas y problemas con los sistemas informáticos y de servidores para limitar las interrupciones del trabajo dentro de la empresa.

 

Ingeniero DevOps

Debido a la necesidad de las empresas de mejorar sus procesos de desarrollo de software y operaciones de TI, se creó una nueva posición que su labor sea asegurar la implementación de la metodología DevOps dentro de las empresas. 

A estos profesionales se les conoce normalmente como “Ingeniero DevOps” o a veces simplemente “DevOps”.

El ingeniero de DevOps trabaja en conjunto a los desarrolladores de software, y los miembros de operaciones para facilitar desde el desarrollo de software hasta su implementación dentro del sistema. 

Por lo cual su principal trabajo será supervisar la integración continua y distribución continua del software. 

 

Administrador de base de datos o DBA (Database Administrator)

Hoy en día las empresas grandes generan millones de datos. Una empresa puede generar información de sus productos vendidos, productos comprados, proveedores y clientes. Otro ejemplo serían las páginas web que pueden guardar información de sus usuarios como nombre, apellido, género, edad, correo, etc. 

El Administrador de Base de Datos es el encargado de crear una base de datos en la que las empresas puedan guardar toda la información que generan. Los DBA son perfiles solicitados mayormente por empresas que ya generan millones de datos al mes y requieren más estabilidad e integridad en la información que guardan. En empresas pequeñas o startups que apenas generan miles de datos al mes, la base de datos es generalmente manejada por un desarrollador de software. 

Para manejar una base de datos efectivamente, los DBA necesitan poder ingresar nueva información, borrar datos ya no necesarios, consultar los datos en cualquier momento, crear respaldos y dar acceso a otros usuarios para manejar la base de datos. 

 

Ingeniero en Ciberseguridad

Un Ingeniero en Ciberseguridad se encarga de la privacidad y protección de datos de las empresas y las organizaciones para hacer frente a los ciberataques. Por lo que su principal labor es detectar fallas de seguridad y habilitar mecanismos para evitar posibles ataques a los puntos vulnerables.

El Especialista en Ciberseguridad es un profesional experto en la seguridad informática, ya que lidian con la protección de la información en redes informáticas, servidores en línea o cloud servers, software de pago, dispositivos móviles, entre otros.

 

Analista de Sistemas o Business Analyst

El Analista de Sistemas es la conexión entre el cliente que solicita un programa y el equipo de tecnología que lo va a desarrollar. 

Analiza el programa que el cliente solicita, determina si el proyecto es viable con las tecnologías disponibles y le comunica al equipo de desarrollo los requerimientos con los que debe cumplir el programa. Además se asegura que el programa alcance las expectativas del cliente. 

Los Analistas de Sistemas tienen conocimientos fuertes en software para evaluar la viabilidad de un proyecto y comunicar de manera fácil a los desarrolladores lo que debe de hacer el programa. Sin embargo, su rol no involucra escribir código. Debe de conocer las tecnologías, lenguajes de programación y frameworks con los que trabaja su equipo, para comprender el alcance que pueden tener en los proyectos, pero él no las usa.

Básicamente las habilidades de los Analistas de Sistemas radican en sus soft skills para escuchar lo que quiere el cliente y comunicárselo de manera efectiva al equipo de desarrolladores. 

 

Project Manager

Un Project Manager se dedica a una de las funciones más críticas de las organizaciones, ya que es el responsable de asegurar que los proyectos se realicen en tiempo y forma sin salirse del presupuesto asignado. Son aquellos que monitorean las actividades, asignan tareas, recursos y presupuesto a cada uno de los proyectos de la organización. En lo anterior, se denota con facilidad la importancia de tener un Project Manager para que las actividades de la organización sigan los objetivos y visión de la misma.

Descargar E-Book

Lenguajes de programación y tecnologías

Java

Lenguaje de programación compilado orientado a objetos, similar en sintaxis a C++. Está concebido para dejar a los desarrolladores de aplicaciones “Escribir una vez, ejecutar en todas partes” (write once, run anywhere) lo que significa que un código compilado de Java puede ser ejecutado en todas las plataformas que son compatibles Java sin la necesidad de recopilación. 

Java es el rey de los lenguajes de programación. Es un lenguaje multiplataforma que se puede encontrar en miles de programas que usamos día a día.  Se utiliza para hacer: programas de escritorio, páginas web y aplicaciones móviles. 

 

C

Lenguaje de programación informático imperativo de uso general que soporta programación estructurada, alcance léxico variable y recursión, mientras que un sistema de tipo estático previene muchas operaciones accidentales.

C fue desarrollado originalmente por Dennis Ritchie entre 1969 y 1973 en Bell Labs, y utilizado para reimplementar el sistema operativo Unix. Desde entonces se ha convertido en uno de los lenguajes de programación más ampliamente utilizados de todos los tiempos. 

 

C++

Lenguaje de programación de uso general. Tiene características de programación genéricas, orientadas al objeto e imperativas y proporciona a las instalaciones una manipulación de memoria de bajo nivel.

 

C#

Lenguaje de programación que está diseñado para crear una variedad de aplicaciones que corren en el Framework .NET. C# es simple, poderoso, seguro de escribir y orientado a objetos. 

 

Python

Lenguaje de programación que está entre los más populares. (top 3 según un estudio de IEEE Spectrum). Fue lanzado inicialmente en 1991 y ganó popularidad por ser fácil de aprender pero poderoso para resolver problemas. La sintaxis es similar a la familia C++ pero está equipado con una variedad de soluciones modernas. 

Es un lenguaje especialmente utilizado en el ambiente de  ciencia de datos e inteligencia artificial. 

 

Visual Basic [.NET]

Lenguaje de programación orientado a objetos multi-paradigma implementado sobre el Framework .NET. Microsoft lanzó VB.NET en 2002 como el sucesor de su lenguaje Visual Basic original. A pesar de que la parte “.NET” del nombre fue abandonado en 2005, “Visual Basic [.NET]” es utilizado para referirse a todos los lenguajes Visual Basic lanzados desde 2002 para distinguirlos del Visual Basic clásico. Junto con el Visual C#, es uno de los dos lenguajes principales que se enfocan en el Framework .NET. 

 

PHP

Lenguaje de script ampliamente utilizado de código abierto de uso general que es especialmente adecuado para desarrollo web y puede ser embebido en HTML. 

 

JavaScript

Lenguaje dinámico, sin tipo, basado en un prototipo de alto nivel. Dependiendo del ambiente, JavaScript puede ser interpretado o compilado. Es un lenguaje de programación multi-paradigma, soportando estilos de programación funcionales, imperativos y orientados al objeto. skiller

 

Perl

Desarrollado originalmente por Larry Wall en 1987 como un lenguaje de script de uso general para Unix para hacer más fácil el procesamiento de reportes. Desde entonces, ha sufrido muchos cambios y revisiones.

Perl 6, que comenzó como un rediseño de Perl 5 en 2000, eventualmente evolucionó a un lenguaje separado. Ambos lenguajes continuaron siendo desarrollados de manera independiente por diferentes equipos de desarrollo y generosamente tomaron prestadas ideas uno del otro. 

 

Ruby

Lenguaje de programación dinámico, reflexivo, orientado a objetos de uso general. Fue diseñado y desarrollado a mediados de los 90’s por Yukihiro “Matz” Matsumoto en Japón. 

 

Swift

Es un lenguaje de programación compilado, multi-paradigma y de uso general desarrollado por Apple Inc. para iOS, macOS, watchOS, tvOS, y Linux. 

 

R

Lenguaje de programación de código abierto y un ambiente de software para computación estadística y gráfica. Es ampliamente utilizado entre estadísticos y mineros de datos para desarrollar software estadístico y análisis de datos. 

 

Go

Lenguaje de programación gratuito y de código abierto creado por Google.

 

Objective-C

Lenguaje de programación orientado a objetos de uso general que añade la mensajería estilo Smalltalk al lenguaje de programación C. Fue el principal lenguaje de programación utilizado por Apple para los sistemas operativos OS X e iOS, y sus respectivas interfaces de programación (APIs) Cocoa y Cocoa Touch antes de la introducción de Swift. 

 

SQL

Lenguaje de programación para manejo base de datos más popular. Históricamente, este paradigma de programación declarativo ha sido la característica principal para preguntas ad-hoc operadas para introspección de datos ejecutado por usuarios humanos directamente con SQL (en lugar de con un UI). Hoy en día, SQL está también embebido en otros lenguajes de programación de uso más general como Java para acceder a los datos desde bases de datos centrales. 

 

Scala

Lenguaje de programación de uso general que proporciona soporte general para programación funcional y un sistema de escritura estática fuerte. Diseñado para ser conciso, muchas de las decisiones de diseño de Scala apuntan a tratar las críticas de Java. 

 

Android

Sistema operativo más popular del mundo dedicado principalmente a dispositivos móviles. El código fuente es desarrollado por Google bajo el Proyecto de Código Abierto Android (AOSP, Android Open Source Project). Usualmente las versiones superiores son lanzadas anualmente y son anunciadas en las conferencias de Google I/O. skiller

 

Bases de Datos

Base de Datos

Base de información almacenada y utilizada por un programa. Las bases de datos tradicionales están organizadas por campos, registros y archivos. 

Las bases de datos resguardan información clave para el negocio. Por ejemplo, las grandes tiendas de autoservicio necesitan y utilizan una base de datos para saber cuántos productos tienen en almacén, cuáles son los más vendidos, los horarios con más flujo de ventas, etcétera.

 

Base de Datos Relacional

Una base de datos relacional es un tipo de base de datos que almacena y proporciona acceso a datos relacionados entre sí. Las bases de datos relacionales se basan en el modelo relacional, una forma intuitiva y directa de representar datos en tablas. 

Por ejemplo supongamos que en una tabla tenemos la información de nuestros clientes. Cada cliente tiene su propio nombre, teléfono, correo y dirección. Y cada cliente tiene un vendedor. Todos los vendedores tienen un nombre, teléfono, email, edad etc. 

En una base de datos relacional, podemos establecer que hay una relación entre los clientes y vendedores. 

Abajo podrás ver una representación visual de cómo funcionan las bases de datos relacionales. 

 

Base de Datos NoSQL

Las bases de datos NoSQL están diseñadas específicamente para modelos de datos específicos y tienen esquemas flexibles para crear aplicaciones modernas. Las bases de datos NoSQL son ampliamente reconocidas porque son fáciles de desarrollar, por su funcionalidad y el rendimiento a escala.

 

Motor de Base de Datos

Las bases de datos no son como un excel que un usuario puede manejar de manera sencilla para modificarla.  Para acceder a la información de una base de datos y modificarlo como sea necesario se usan los motores de base de datos. Con los motores de base de datos se pueden crear, consultar, actualizar y borrar información de una base de datos. 

Algunos ejemplos de motores de base de datos son: MySQL, PostgreSQL o SQLite. 

 

Interfaz de Usuario

User Interface

Es la parte visual de un programa. Es lo que ve el usuario, y con lo que interactúa

 

Responsive design

Es la filosofía de diseño y desarrollo web que indica que una página o aplicación web se debe de adaptar al dispositivo que usa el usuario. De tal manera que no importa si estás viendo una páginas web en laptop, PC, tablet o smartphone, en todos se ve bien la página web.

 

Usabilidad

Básicamente es qué tan fácil es usar una aplicación. Por ejemplo, si una aplicación es fácil de usar y no se necesita de un manual para poderla usar, sino que intuitivamente el usuario sabe cómo debería de manejar la aplicación, entonces se diría que esta aplicación tiene una buena usabilidad. 

 

HTML

Es la herramienta que le ayuda a los desarrolladores web a dar estructura al texto de una página. Con esta herramienta los programadores pueden decidir qué texto va en negritas, itálica o subrayado, crear listados o tablas, insertar vínculos en un texto, entre varias cosas más.

No es un lenguaje de programación, porque no sirve para dar una serie de instrucciones a una computadora. Simplemente da formato a los textos y su estructura.

 

CSS

CSS es una herramienta para darle estilo y diseño a una página web. Con CSS los programadores pueden definir el color o tamaño de letra, el margen de separación de una sección con otra, el tipo de fuente, el color de fondo o crear botones con diseño. 

Como es un una herramienta que solo da estilo al texto de una página, tampoco es considerado lenguaje de programación.

 

Material Design

Es la filosofía de diseño conceptual de Google que describe cómo es que las aplicaciones deben verse y trabajar. Analiza todo desde animación y estilo hasta diseño gráfico y da orientación sobre patrones, componentes y usabilidad. 

 

Bootstrap

Es un framework web front-end de código abierto gratuito para diseñar sitios web y aplicaciones web. Hace que crear sitios web sea muy fácil, empodera a los diseñadores para seleccionar de una gran colección de elementos pre-creados, comportamientos y atajos. El objetivo es unificar el diseño y permitirles a los diseñadores no técnicos y técnicos mejorar la calidad de su diseño. 

 

Cookies

Las cookies permiten a los sitios web trackear las acciones de sus usuarios. De esta manera los desarrolladores web pueden saber si un usuario ya visitó anteriormente un sitio, en que navegador (Chrome o Microsoft Edge) está viendo el sitio, o también desde qué tipo de dispositivo (pc,celular o tablet) el usuario está viendo la página.

 

Testing

Pruebas de software

Las pruebas de software son un conjunto de procesos con los que se pretende probar un sistema o aplicación en diferentes momentos para comprobar su correcto funcionamiento. Este tipo de pruebas abarca cualquier estadio del desarrollo del sistema, desde su creación hasta su puesta en producción.  Existen varios tipos de prueba que podría implementar un tester para comprobar el correcto funcionamiento de un programa, a continuación vas a encontrar algunas de las pruebas que existen. 

 

Pruebaautomatizada

Las pruebas automatizadas son pruebas que se han automatizado a través de herramientas de software y que se pueden ejecutar sin intervención humana. 

Descargar E-Book

plataforma de reclutamiento de perfiles ti