blog logo

Qué hace un programador informático

Artículo publicado en 2020 y revisado en 2023

Me interesaba comprender qué puede hacer un programador informático, la diferencia entre los diversos tipos de lenguajes de programación y el significado de ciertas palabras relacionadas que veo por la red, así que he recopilado alguna información. Además, es un sector en crecimiento y donde el teletrabajo es casi la modalidad por defecto.

Diseño azul con rayas y un círculo de ceros y unos para representar al código binario de las máquinas

A qué se dedica un programador informático o web

Un programador o programadora (programmer) conoce al menos un lenguaje en el que dar instrucciones a un sistema informático (ordenador/servidor, teléfono móvil) para que realice determinadas tareas para los usuarios (por ejemplo, una operación o mostrar o almacenar datos).

El cerebro del equipo solo entiende el código binario, por lo que cualquier mensaje deberá traducirse desde el correspondiente lenguaje formal de nivel alto (código fuente o source) o lenguaje ensamblador (assembler, intermedio) al lenguaje de nivel bajo o lenguaje máquina. Dependiendo del lenguaje simbólico, se traducirá todo por adelantado (a través de un compilador), línea a línea (mediante un intérprete) o mediante un sistema híbrido.

El profesional en programación puede escribir órdenes siendo específico y considerando posibilidades, así como anticipar o percibir errores (bugs) y testear las soluciones. El código evoluciona (iteration).

Varias líneas de código de programación

Con líneas de código se construirá el primer nexo con lo físico (firmware), el sistema operativo de base o bien una colección concreta de instrucciones para un tipo de tarea, conocida como script (si es muy simple) o software. Los programadores también elaboran las interfaces lógicas para que otros programas puedan conectarse a sus creaciones (API).

El software se denomina programa en ordenadores o servidores, aplicación nativa (app) en dispositivos móviles o aplicación web en los navegadores de Internet.

Especialidades de programación informática

Se podría decir que hay diversos tipos de programadores según los criterios de los que se parta. Por ejemplo:

Abordemos ahora los roles de programadores de software o web y los otros puestos que se relacionan con ellos.

Diferencia entre programador, desarrollador, arquitecto e ingeniero

Para desarrollar software o un sitio web no solo hay que escribir código, sino que existen otras fases previas, paralelas y posteriores como el diseño, análisis, implementación (deployment), optimización, documentación o mantenimiento.

Todo empieza con una hoja de requerimientos, lo que quiere el cliente. Según el proyecto del que se trate, las diversas tareas podrían desempeñarlas diferentes figuras. Los conceptos a menudo se intercambian, aunque para muchos poseen matices relevantes.

  1. Por lo que he deducido, todo aquello que tenga que ver con adaptar el programa lo mejor posible al dispositivo lo dominará el ingeniero de software (engineer), por sus conocimientos técnicos.
  2. Más concretamente, un arquitecto de software (architect) está especializado en determinar qué bloques son mejores (tecnologías, lenguajes, bases de datos) y las conexiones entre ellos para lograr una estructura del sistema que permita cambios en el futuro sin perder calidad.
  3. Un diseñador o desarrollador web o de software (developer) o el analista-programador suele responsabilizarse de que se materialicen los bloques elegidos y sean efectivos. Organiza datos y supervisa el testeo.
  4. Alguien con conocimientos de programación, un programador, escribirá por lo menos parte del código.

A medida que un profesional adquiera más competencias subirá su nivel de título: junior, middle/mid-level, senior, lead. En general, tener una figura que ejerza de mentor contribuirá a avanzar más rápido en ese camino de aprendizaje.

Programador web: front-end, back-end y full-stack

Para que una página web se muestre, ha tenido que haber programación en varios puntos: en el software del servidor, su base de datos y el sitio web, más en el navegador web del ordenador del usuario/cliente.

Hoy se distinguen dos clases de especialización de la programación web en función de si se centra o no en lo que percibe el usuario:

Últimamente están muy demandados los perfiles que abarcan los dos ámbitos (moverse tanto en frontend como en backend): el programador full-stack para esa determinada empresa.

El concepto de stack se refiere al grupo de tecnologías con los que trabaja un entidad concreta, pues entre varias posibilidades cada una ha elegido sistema operativo, servidor, base de datos, frameworks, librerías o lenguaje/s de programación. Por ejemplo, habrá negocios que implementen LAMP (Linux/Apache/MySQL/PHP) como stack tecnológico y desearán que sus empleados estén familiarizados con al menos parte de estas.

Otros roles del equipo informático

Por su parte, los administradores de sistemas se encargan de que los equipos informáticos rindan y operen lo mejor posible con su información a salvo. Existen a su vez varios roles específicos como el de administrador de redes, administrador de bases de datos o administrador de seguridad.

Para que los departamentos de desarrollo (programación), administración de sistemas (operaciones) y calidad (QA) se comuniquen satisfactoriamente y hacia un objetivo común de mejora constante, algunos siguen el método DevOps.

Qué hace un programador

En su trabajo, un programador usará ciertos modelos, elementos y herramientas:

Podría haber otros puntos que considerar, como el protocolo de transferencia de datos o su seguridad (evitar vulnerabilidades).

Clasificación de los lenguajes informáticos

En función de lo que se quiera construir (build), se elegirán unos lenguajes u otros, aunque bastantes se adaptan a distintos fines y plataformas. Hay decenas y varias generaciones de estos idiomas artificiales. No todos son abiertos. Cada uno implica una curva de aprendizaje. En la respectiva documentación se indican sus fundamentos. Algunos son preferidos, otros detestados.

Perfil de una mujer escribiendo código en un ordenador portátil bajo unas burbujas con lenguajes de programación para ilustrar qué hace un programador informático o web

Muy a grandes rasgos, en su particular sintaxis los lenguajes de programación acostumbran a componerse de indicaciones para elegir qué instrucción ejecutar (condicionales, bucles), formas de guardar datos (variables) y tareas para llegar a soluciones (funciones que implementan algoritmos).

Aquí un resumen de los principales lenguajes informáticos:

Habilidades para ser programador

Teniendo en cuenta las tareas que debe desempeñar cada día, fundamentalmente se esperará que al programador le interese la interacción con las máquinas, acepte el reto de resolver problemas para clientes y no le importe pasar horas frente a una pantalla.

Puede haber jornadas maratonianas y empresas con una cultura no acorde a nuestra forma de ser, así que no está de más recordar la importancia de la salud física y mental.

Por dónde empezar a ser programador

Lo primero sería entender la lógica de cómo funciona un ordenador binario y cómo hay que explicarle para que solucione problemas. Después, según lo que nos interese más, habría que decantarse por un entorno (programas vs web), qué aprender (lenguaje/s) y cómo (oferta formativa). En cuanto sea posible, a practicar, por ejemplo comenzando por unos días escribiendo soluciones algorítmicas en papel para asuntos sencillos.

A cada uno le llamará más una cosa u otra. De lo que he leído, a mí por ejemplo me han intrigado dos caminos. Por un lado, para programar web apps básicas tendría que saber HTML, CSS y sobre todo JavaScript. O si quisiese analizar datos sería útil Python; podría necesitar otros como SQL para comunicarme con las bases de datos relacionales.

Además de significar planificación de proyectos en hitos y fases, creo que en este campo existe otra acepción del concepto de hoja de ruta (roadmap): recomendaciones sobre qué lenguajes y en qué orden es mejor ir aprendiendo para hacerse programador o desarrollador de tal o cual cosa. Seguramente cada programador tenga un recorrido ideal que proponer a los demás.

De querer dedicarnos profesionalmente, no tenemos por qué aspirar al rol mejor remunerado y en la mayor empresa. Y programar puede ser una afición sin más objetivo que aprender y entretenerse.

Hacerse programador con 30 años o más

No es fácil, pero hay gente que se plantea cambiar su trayectoria, lo intenta, trabaja muchísimo y con el tiempo lo puede conseguir. En el mundo laboral no hay garantías.

Lo complicado (a cualquier edad) es dar con un campo y propósito que motiven lo suficiente, porque es probable que la promesa de un puesto, trabajo en remoto y/o buen salario no basten en varios momentos.

Qué hay que estudiar para ser programador

Una vez se haya seleccionado el ámbito que más le llama a uno, habría que analizar las distintas ofertas formativas. Estas son algunas de las más comunes:

Algunos puestos se pueden desempeñar sin carrera o título oficial, pero al contratar siempre se pedirá algo para demostrar el conocimiento. Además, es casi una norma que haya pruebas prácticas en las entrevista.

Por cierto, se trata de un ámbito en el que hay que estar actualizado, así que la formación no termina al conseguir un empleo.

¿Para qué programar?

Entre las utilidades de la programación habría varias.

Y estas se pueden concretar en otras inquietudes que tengamos, como ayudar a otros creando el programa de acceso a la mayor base de datos de tal tema favorito o conseguir mediante el análisis de datos que se detecte algo malo antes de que suceda.

Parece un mundo interesante. Espero que la información anterior sirva como punto de partida.

Este artículo puede tener errores. Simplemente he intentado llegar a una definición razonable de algunos conceptos y categorizar para situarme.

No quedan más posts por sugerir.