¿Quién es un programador y qué hace?

Te contamos quién crea programas de computadora, cuánto se puede ganar en esta profesión, qué se necesita saber para ingresar exitosamente en la profesión y dónde comenzar a trabajar.
¿Quién es un programador?
Un programador es un especialista que crea programas de computadora. Los usamos todos los días: por ejemplo, cuando enviamos dinero a través de un banco móvil, hacemos café con una cafetera o usamos una tarjeta de transporte en el metro. Los programas se utilizan en una amplia variedad de áreas, desde sitios web hasta sistemas de cohetes.

El programador crea programas utilizando código. El código es una secuencia ordenada de comandos que inician la ejecución de tareas específicas en una computadora u otro dispositivo técnico.
¿En qué trabaja un programador?
La tarea principal de un programador es escribir código utilizando lenguajes de programación. Estos son lenguajes formales para "comunicarse" con la computadora. Según diferentes fuentes, hay entre 250 y 9000 lenguajes de programación en total. Veamos los principales:
  • Python:
    Según el índice TIOBE, este es el lenguaje de programación más popular. Se utiliza para escribir la parte del servidor de las aplicaciones, juegos y modelos de aprendizaje automático.
  • PHP:
    En PHP se crean programas que se utilizan en servidores. Según W3Techs, en 2023, el 77,2% de todos los sitios web del mundo están escritos en PHP.
  • JavaScript:
    Este es el lenguaje principal para crear y mantener elementos visuales en sitios web e interfaces. A veces también se utiliza para escribir aplicaciones móviles.
  • Java:
    Se utiliza para crear aplicaciones móviles y juegos. Amazon, PayPal, Netflix y muchas otras aplicaciones están escritas en Java.
Responsabilidades de un programador
Escribir código

El programador escribe código para que los usuarios puedan interactuar de manera más cómoda con las aplicaciones y tecnologías en general. Todo código comienza con una especificación técnica, veamos un ejemplo.

Supongamos que un usuario necesita comprar varios artículos en una tienda en línea. Elige dos artículos X (cada uno cuesta 100 dolares) y tres artículos Y (cada uno cuesta 50 dolares) y los agrega al carrito. El total es de 350 dolares, y se aplica un descuento de 100 dolares al total del pedido.

La tarea del programador es escribir un código que aplique este descuento a cada uno de los artículos, en lugar de restarlo del costo total del pedido. Como resultado, el artículo X costaría 75 dolares (dos artículos por 150 dolares) y el artículo Y costaría 33 dolares (tres artículos por 99 dolares). El total de la compra sería casi 250 dolares.

La especificación técnica la proporciona el cliente. En ella, describe cómo el programador realizará su trabajo y qué tarea resolverá al escribir el código.

Pruebas de código

Las pruebas son la verificación de la funcionalidad del programa y su cumplimiento con los requisitos y expectativas de los usuarios. Las pruebas se realizan para identificar y documentar errores en el programa.

El programador prueba la aplicación utilizando código especial, llamado prueba, que verifica el código principal. Un error en el código puede ser único, puede ser "flotante" (aparece y desaparece) o puede acumularse (aparece después de un cierto número de tareas).

El proceso de corregir un error puede llevar una hora o una semana, todo depende del error. En cualquier caso, es necesario analizar las causas de su aparición, corregirlo, probar el programa nuevamente y documentar el resultado.

Documentación

Esto implica registrar el proceso de desarrollo y escritura de código. La documentación es necesaria para que los compañeros comprendan en qué etapa se encuentra la tarea, qué aspectos se han resuelto y qué queda por resolver.

La documentación ayuda a delimitar las áreas de responsabilidad entre los miembros del equipo. Si la tarea es extensa y no solo los programadores están involucrados en ella, la documentación debe estar escrita en un lenguaje sencillo, sin utilizar terminología específica.

Si las responsabilidades del programador fueran un algoritmo, entonces la ejecución de su tarea se vería así:
La rutina del programador depende en gran medida de lo que el especialista esté programando. Por supuesto, todos escribimos código, documentación y realizamos pruebas. Pero también hay ciertas acciones que generalmente realiza cualquier programador. ¡Hablar con un patito de goma cuando algo no funciona, por ejemplo! :)
Niveles de programadores
Hay una división básica de programadores según su nivel de preparación y experiencia acumulada: Junior, Middle y Senior.
Junior

Un junior es un trabajador que aprende de sus compañeros experimentados. Se le asignan tareas simples y se espera que haga preguntas y siga las prácticas de ingeniería.

Middle

Un desarrollador de nivel medio es un desarrollador independiente que realiza la mayoría de las tareas laborales. Estas tareas son un poco más complejas y tienen varios niveles dentro del código, lo que le da al especialista mucha más "libertad".

Senior

Un especialista senior tiene suficiente experiencia para delegar tareas a otros desarrolladores. Es responsable de todo el proyecto y el trabajo del equipo: la arquitectura, la velocidad y la eficiencia del código.

La gradación de los programadores siempre ha sido un tema controvertido, ya que no hay una división clara en niveles. Cada empresa establece sus propias reglas y, en una empresa, un programador puede ser junior, mientras que en otra, su experiencia es suficiente para ser considerado de nivel medio. Si le preguntas a los propios programadores, fuera del contexto de un lugar de trabajo específico, cada uno tendrá su propia opinión al respecto.

Podríamos basarnos en la "antigüedad", pero también es algo individual. Por un lado, unos pocos años son suficientes para mejorar tus habilidades hasta los criterios generales que se ajustan a la definición de nivel medio. Pero, por otro lado, puedes pasar dos años sin dedicarte al desarrollo profesional y seguir siendo un junior.

Lo único en lo que todos están de acuerdo es quién es un junior, un desarrollador principiante. En programación, los juniors a menudo conocen todos los principios básicos del desarrollo, pueden conocer algunas técnicas avanzadas, pero aún no tienen una comprensión completa de cómo utilizar su conocimiento acumulado.
Cuando un especialista comienza a utilizar libremente su conocimiento acumulado, se vuelve más atento a los detalles y deja de ser un junior. Cuanto más experiencia adquiere, más fácil y legible se vuelve el código. Y más puede trabajar con sistemas complejos en general.
Tipos de programadores
Los programadores se pueden dividir en dos grandes grupos: programadores web y programadores de aplicaciones. Esta división es muy aproximada y en realidad hay muchos más especialistas, pero consideraremos los más básicos.
Programador web

Desarrollador frontend

El desarrollador frontend crea la apariencia de los sitios web y aplicaciones. Sus principales tareas están relacionadas con la interfaz.

El lenguaje de programación JavaScript se utiliza principalmente. Es fácil ver el resultado del trabajo de un desarrollador frontend: cualquier botón, panel, integración o imagen incrustada en un sitio web.

Desarrollador backend

El desarrollador backend es responsable de la parte interna de un sitio web o aplicación. Todos los datos que un usuario deja en un sitio web se distribuyen en bases de datos y servidores. Y esto es lo que el desarrollador backend debe controlar.

Desarrollador fullstack

El desarrollador fullstack realiza las tareas tanto del frontend como del backend, y también configura servidores y mantiene aplicaciones. Estos son especialistas de amplio perfil que a menudo se dedican al desarrollo de sitios web o aplicaciones desde la parte interna hasta la parte externa.
¿Qué elegir: frontend o backend? Depende de lo que te guste y te atraiga. Algunos quieren ver los resultados de su código de inmediato, y esto se puede hacer en el frontend. Y a otros no les gusta el diseño y quieren "lanzar funciones" y construir clases. En términos de remuneración y complejidad, estas áreas son aproximadamente iguales, pero cada una tiene su propia especificidad. Si no tienes preferencias en la etapa inicial, te recomendaría que inviertas tiempo en tomar diferentes cursos para entender qué se siente "más cerca" para ti.
Programador de aplicaciones

Desarrollador de aplicaciones móviles

Este especialista crea aplicaciones móviles, juegos y programas que se muestran en teléfonos, tabletas y cualquier otro dispositivo móvil. Podemos distinguir dos especialidades principales:
  • 1
    Desarrollador de Android: especialista que se dedica al desarrollo y mantenimiento de aplicaciones en el sistema operativo Android.
  • 2
    Desarrollador de iOS: especialista que escribe programas y los mantiene para dispositivos Apple y su sistema operativo.
Desarrollador de aplicaciones de escritorio

El desarrollador de aplicaciones de escritorio crea programas que se encuentran en computadoras de escritorio y portátiles. Estos pueden ser, por ejemplo, programas de Adobe.
Ventajas y desventajas de la profesión de programador

Ventajas
  • 1
    La programación implica un desarrollo constante. La comunicación con compañeros, el estudio de documentación técnica, las actualizaciones: todo esto forma parte de la rutina de un programador.
  • 2
    Los programadores son demandados en el mercado laboral. Si eres un buen especialista, siempre podrás encontrar un trabajo adecuado para tu nivel de conocimientos.
  • 3
    Altos salarios y condiciones de trabajo cómodas. Los programadores tienen salarios altos y pueden trabajar de forma remota, gestionar su propio horario.
  • 4
    Estabilidad en las tareas. Con una gran experiencia y habilidades adquiridas, algunas tareas se pueden resolver bastante rápido, lo que te permite ganar tiempo para tareas más complejas e interesantes.
  • 5
    Amplias oportunidades de crecimiento. Si te desarrollas constantemente, un programador puede crecer tanto dentro de la profesión como en áreas relacionadas.
Desventajas
  • 1
    Puede haber demasiada información. A los programadores les resulta difícil adaptarse al flujo interminable de información.
  • 2
    Alta competencia en el mercado laboral. A los desarrolladores principiantes les resulta difícil encontrar trabajo en la actualidad, ya que la competencia en el mercado laboral es bastante fuerte.
  • 3
    Funcionalidad
    Estilo de vida sedentario. Los programadores pasan la mayor parte de su día frente a una computadora, lo que afecta negativamente su salud.
  • 4
    Diferencias salariales. No todos los especialistas pueden esperar salarios altos: todo depende de la experiencia laboral y la región de residencia.
  • 5
    Tareas monótonas. Los programadores a menudo tienen tareas monótonas y rutinarias que pueden cansar fácilmente.
  • 6
    Alta responsabilidad y agotamiento. El rápido crecimiento profesional conlleva un aumento de la responsabilidad y la carga de trabajo, lo que puede llevar fácilmente al agotamiento.
Cualidades personales de los programadores
  • Fuerza de voluntad. La programación no es un campo en el que todo salga bien a la primera. Tendrás que repetir lo mismo una y otra vez para encontrar dónde se esconde el error.
  • Persistencia. El código requiere concentración: debes estar preparado para mantener la atención en una tarea específica durante mucho tiempo para no perder nada.
  • Metodología. No puedes pasar por alto los detalles, incluso si parece que todo está claro. Es mejor repetir los conceptos básicos varias veces que arrepentirse más tarde de haber pasado por alto algo.
  • Pensamiento crítico. Siempre debes tener en cuenta que existe la posibilidad de un error. Y evaluar lógicamente las interrelaciones dentro de la tarea establecida.
  • Autogestión. Debes encontrar tu propia forma de entender las cosas técnicas, ya que cada persona aprende y asimila el material de manera diferente.
  • Capacidad de aprendizaje. Cada día aparece nueva información y no se puede perder.
  • Responsabilidad. No puedes estudiar y trabajar sin esforzarte, ya que el resultado del programa depende de tus acciones.
Dónde trabajan los programadores
Un buen especialista puede elegir dónde trabajar. A algunos les gusta ser parte de una gran empresa, a otros les gusta una empresa pequeña pero prometedora. Y otros desarrollan proyectos a medida según las solicitudes individuales. Cada opción tiene sus ventajas, solo tienes que decidir cuál es la más adecuada para ti.
  • Trabajo independiente. Al principio será bastante difícil, ya que necesitarás un portafolio de calidad para destacar entre la competencia. Pero una vez que hayas establecido una base, podrás elegir proyectos interesantes en lugar de lidiar con la rutina.
  • Trabajo en una empresa. Muchas empresas de todos los tamaños tienen un departamento de TI que regula el funcionamiento del software, se ocupa de su mantenimiento y desarrollo de nuevas funciones.
Si te parece difícil encontrar algo para ti, aquí tienes algunos ejemplos de lo variadas que pueden ser las vacantes.

Sector bancario

Tareas que pueden haber:

  • Creación de aplicaciones móviles
  • Creación de microservicios para ampliar el alcance de los servicios
  • Creación y mantenimiento de un sitio web para usuarios
  • Creación y administración de un sitio web para empleados.

Especialistas que pueden ser demandados:

  • Desarrollador Java Senior
  • Desarrollador fullstack líder
  • Desarrollador de iOS
  • Ingeniero DevOps
  • Desarrollador Java.
Empresas de transporte, comerciales o gubernamentales

Tareas que pueden haber:

  • Soporte y depuración de programas especializados
  • Creación y mantenimiento de un sitio web para usuarios
  • Creación y administración de un sitio web para empleados
  • Programación de sistemas
  • Análisis de datos
  • Desarrollo de aplicaciones.

Especialistas que pueden ser demandados:

  • Programador 1C
  • Programador web
  • Ingeniero de datos
  • Ingeniero de integraciones
  • Desarrollador fullstack.
Estudios web

Tareas que pueden haber:

  • Creación de sitios web, interfaz de usuario
  • Creación de la parte del servidor de aplicaciones web
  • Mejora de la velocidad de carga del sitio web, optimización del código para un funcionamiento más rápido
  • Integración y gestión de contenido de texto y multimedia en el sitio web.

Especialistas que pueden ser demandados:

  • Desarrollador frontend
  • Desarrollador backend
  • Diseñador web
  • Desarrollador HTML
  • Arquitecto de software.
Estudios de juegos

Tareas que pueden haber:

  • Creación de código que define las reglas y el comportamiento de los objetos del juego
  • Trabajo con aspectos visuales del juego
  • Creación de juegos multijugador y en línea
  • Mejora del rendimiento del juego, optimización del código y los recursos para una experiencia de juego suave y estable.
  • Integración de efectos de sonido y música en el proceso de juego.

Especialistas que pueden ser demandados:

  • Desarrollador Unity
  • Desarrollador de motores de juegos
  • Programador de gráficos
  • Desarrollador de GUI
  • Desarrollador frontend y backend
  • Desarrollador de IA
  • Scripter.
Grandes empresas de TI

Las tareas de los programadores en grandes empresas de TI no se limitan a mantener el negocio de terceros, sino que se centran en el desarrollo de tecnologías innovadoras. Esto incluye, por ejemplo, el desarrollo de IA, como el asistente de voz Alice, o el avance de las redes neuronales.
La TI es un campo muy versátil. Cualquier persona puede encontrar su lugar en esta profesión.
Dónde aprender a ser programador
Hoy en día hay mucha información disponible, una amplia variedad de cursos, una amplia selección de especialidades en instituciones educativas. Veamos algunas opciones de aprendizaje.

Autoaprendizaje

Tienes a tu disposición libros, YouTube, artículos, webinars que te dirán por dónde empezar. Aquí radica la dificultad: definir un objetivo, recopilar materiales y no perderse en el proceso. Si continúas aprendiendo programación por tu cuenta, debes estar preparado para un período de estudio más largo y para ingresar a la profesión.

Universidad

Ahora muchas empresas están dejando de exigir un título universitario al contratar personal. Sin embargo, la universidad proporciona una inmersión más profunda en la especialidad. El estudiante está rodeado de docentes especializados, y en los primeros cursos tiene la oportunidad de determinar con mayor precisión lo que le gusta y hacia qué tiene inclinación para el aprendizaje.

Entre las desventajas se encuentra la duración más larga de los estudios universitarios: de cuatro a siete años. A veces es difícil combinar el estudio a tiempo completo, el trabajo y la vida personal.

Cursos

Si la programación es un campo completamente nuevo para ti y no tienes tiempo para la universidad, considera tomar cursos. Tener un mentor cerca que te diga qué hacer y cómo hacerlo, responda tus preguntas y te dé una dirección para resolver problemas cuando te encuentres en un callejón sin salida, acelerará significativamente el proceso de aprendizaje.

Los creadores de los cursos recopilan toda la información en varios bloques a gran escala, proporcionan un mentor y presentan todo de manera secuencial y estructurada.

Además, muchos cursos ofrecen la oportunidad de crear un portafolio de proyectos completos. El portafolio es una prueba de tus conocimientos.

Sin embargo, debido a la situación actual en el mercado laboral, es probable que necesites más para destacarte entre otros candidatos. En Códica, por ejemplo, los estudiantes pueden obtener experiencia en desarrollo real en proyectos de código abierto.
El código abierto son proyectos con código abierto. Esto significa que cualquier persona interesada puede ver el código y realizar cambios en él. Participar en proyectos de código abierto es una oportunidad accesible para probarse a sí mismo en la programación real.
La participación en proyectos de código abierto muestra tu deseo de aprender a hacer algo y programar. A los empleadores les importa ver que su posible empleado tiene el deseo de desarrollarse y aprender.
Comencé mi aprendizaje de forma autodidacta, inicialmente a partir de un libro, y luego encontré Códica. Lo que más me gustó fue aprender a través de cursos, ya que me gusta cuando la información está estructurada y organizada por alguien más.
Lo que necesitas saber antes de comenzar a estudiar
En programación, tanto los técnicos como los humanistas pueden encontrar su camino. Es posible que a los técnicos les resulte un poco más fácil al principio, pero hay muchas historias de éxito que muestran que no hay límites para aprender programación.

Para aprender programación, es útil tener conocimientos de algoritmos y lógica. En el código, todo se basa en algoritmos y la lógica de la interconexión entre comandos. Cualquier ciencia exacta te enseñará a ver las tareas desde la perspectiva correcta.

También es útil tener conocimientos de inglés. El inglés utilizado en el código se comprende bastante fácilmente. Pero si estás empezando a aprender a programar, es recomendable aprender el idioma. No por el código, sino porque la mayoría de la información, artículos y material educativo en la industria están en inglés.
Salario promedio de un programador
El salario de un programador varía según la región, la experiencia y la especialización en la que trabaje el profesional.

Los programadores tienen diferentes niveles, por lo que es importante comenzar con una visión general de lo que ganan los especialistas en diferentes etapas. En promedio, los juniors ganan alrededor de 25,000 mxn. Los intermedios (mídls) ganan un promedio de 35,000 mxn. Los seniors ganan en promedio 40,000 mxn.

Los tres niveles se consideran como un concepto general, por lo que al calcular los salarios se tuvieron en cuenta las vacantes para todos los tipos de especializaciones. Para recopilar estadísticas, se tomaron datos del sitio Indeed Career.

A continuación se muestra la estadística salarial para algunas especialidades mencionadas en el artículo:
Cómo saber si la programación es lo tuyo
Solo puedes entenderlo a través de la práctica. Yo, por ejemplo, nunca planeé ser programador. Me di cuenta de que era "lo mío" durante el proceso. No había una pasión desde el principio. Por lo tanto, si de repente no te apasiona lo técnico, no te preocupes, debes intentarlo. Personalmente, soy una persona de práctica. Llevo cinco años programando y cada vez me gusta más. Te sumerges más en el proceso, entiendes y aprendes. Así que simplemente inténtalo, y que todo te salga bien.
Leer otros artículos de Blog
Lee otros artículos relevantes del mundo de la tecnología y el espíritu empresarial.