Programador. Persona que diseña, escribe y/o depura programas de ordenador o computadora, es decir, quien diseña la estrategia a seguir, propone las secuencias de instrucciones y/o escribe el código correspondiente en un determinado lenguaje de programación.

Un programador es aquel que escribe, depura y mantiene el código fuente de un programa informático, es decir, el conjunto de instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. La Programación es una de las principales áreas dentro de la informática. En la mayoría de los países, programador es también una Categoría profesional reconocida. Los programadores también reciben el nombre de desarrolladores de Software

 

Descripción. El programador se encarga de la implementación de Prototipos mediante un Lenguaje de Programación que pueda entender la Computadora.

Inicialmente, la profesión se formalizó desde el enfoque Tayloriano de la especialización de funciones en la empresa. Así, el proceso de producción de software se concibe como un conjunto de tareas altamente especializadas donde está claramente definido el papel de cada categoría profesional:

 

  • El analista tiene como cometido analizar un problema y describirlo con el propósito de ser solucionado mediante un Sistema de información.
  •  
  • El programador cuya única función consistía en trasladar las especificaciones del analista en Código ejecutable por la computadora. Dichas especificaciones se recogen en un documento denominado Cuaderno de carga, medio de comunicación entre ambos. Obsérvese que esto se consideraba un trabajo mecánico y de baja cualificación.
  •  

Hoy día se reconoce que este enfoque no es válido para organizar tareas de tipo intelectual, como es la producción de software. De manera que la profesión de programador ha ido evolucionando. Las dificultades de comunicación entre analistas y programadores (un mero documento no basta para describir lo que se quiere hacer) dio origen a una categoría profesional intermedia, denominada analista-programador. La concepción original del programador ha desaparecido siendo sustituida por esta: la de un profesional mucho más formado y con unas funciones menos «mecánicas».

 

La profesión de analista también ha evolucionado, surgiendo el concepto diseñador (de software). Esto se debe a los avances de la Ingeniería del software donde se reconoce que el análisis es una actividad distinta del diseño. El análisis describe el problema (el qué hacer) mientras que el diseño describe la solución (el cómo hacerlo). En la mayoría de países industrializados esto ha dado lugar a la categoría profesional del diseñador o arquitecto del software.

 

Situación de la profesión. Como conclusión de lo anterior, cabe inferir que, hoy por hoy, un programador requiere profundos conocimientos que incluyen: Matemáticas, Electrónica, Algorítmica, ingeniería del software, teoría de la computación, interacción persona-ordenador, etc.

Por tanto, se trata de una profesión de alta calificación.

 

No obstante, la mayoría de las empresas del Siglo XXI aún siguen el enfoque Tayloriano en su gestión, de manera que siguen considerando la profesión de programador como un trabajo de baja calificación. A este hecho se añade el Intrusismo profesional, ya que, bajo este enfoque Tayloriano, el simple conocimiento de un Lenguaje de Programación habilita para el ejercicio de la programación. Esto atrae fácilmente a profesionales de otros mercados laborales menos favorecidos.

 

Ambos factores contribuyen a que la profesión cuente con bajos salarios, inestabilidad laboral (es «fácil» cambiar un programador por otro) y un alto Estrés. Por ejemplo, en Estados Unidos se calcula que aproximadamente la mitad de los programadores abandonan la profesión.

 

Tanto en EE. UU. como en otros países, se está experimentando un proceso de Deslocalización de programadores desde principios de los Años 2000. Siendo el trabajo desplazado a países asiáticos (por ejemplo, India) donde los costes laborales son mucho menores. Incluso existen casos de programadores que son llevados a alta mar para trabajar en aguas internacionales. Para algunos esto conducirá a un mayor impulso de estas tecnologías en los países en desarrollo, y a su incorporación a los circuitos globales de la sociedad de la información.

 

Especialidades. Estrictamente hablando, la profesión de programador no conoce especialidades. No obstante, existen diversas ramas por las que se decantan los propios profesionales y que se ven reflejadas en la oferta de empleo.

Así, es posible mencionar algunas:

 

  • Programadores de Mainframe. Aunque se cree extinta la actividad en los viejos grandes sistemas informáticos, lo cierto es que aún existen muchos en funcionamiento que requieren mantenimiento. La tecnología que manejan estos programadores es radicalmente distinta a la del resto, motivo por el que se puede considerar ésta como la rama más especializada. Entre sus conocimientos se cuenta COBOL, JCL, base de datos jerárquicas, etc.
  •  
Muchos profesionales de TI no se dan cuenta que pueden ejecutar Java en un mainframe, algo que a menudo se asocia más con lenguajes como Assembler y COBOL.

 

  •                             Programadores de «Nuevas Tecnologías».

     Esta es una rama que gira en torno a Internet, los nuevos servicios como la Web 2.0 y los negocios por medios electrónicos o E-commerce. Entre sus conocimientos destacan lenguajes del lado del servidor como Java, ASP, .NET, JSP, PHP, Ruby, Python o Perl, y lenguajes del lado de cliente como HTML, XHTML, CSS, Javascript ó AJAX (conjunto de tecnologías existentes como XML y Javascript).

  •  
  •  
  • Programadores de Firmware y Videojuegos. Destacan sus conocimientos de Hardware, Microprocesadores, Ensamblador y C.
  • ¿Cuál es el perfil de un programador de videojuegos?                                                                                                                                                               Como en todas las profesiones, para ser un buen programador de firmware y videojuegos hay que contar con una serie de aptitudes y destrezas que permitan cumplir con las metas establecidas en tiempo y forma satisfactorias.                                                                                                                                 En función de cuáles sean los requisitos del puesto a cubrir, cada empresa u organización podrá solicitar un perfil más adaptado a las necesidades del momento. No obstante, algunas de las habilidades más comúnmente requeridas son:

    • Pensamiento lógico y metódico.
    • Perfil creativo, capaz de entender el diseño.
    • Capacidad para trabajar en equipo con proyectos grandes y complejos.
    • Conocer en profundidad el funcionamiento de las diferentes plataformas.
    • Ser paciente y ordenado.
    • Ser capaz de expresar y comunicar sus ideas y la situación del proyecto.
    • Poseer destrezas en informática.
    • Manejo profesional de los diferentes lenguajes de programación.

 

  •  
  •  
  • Programadores de sistemas abiertos. Rama asociada a la Arquitectura Cliente-Servidor. Requiere conocimientos de C, Pascal, etc.

La idea de sistemas abiertos se concibe de un proyecto que demuestra la forma que todos los sistemas empresariales pueden funcionar juntos a tres niveles: mainframes, minicomputadores y estaciones de trabajo, sin importar que esos sistemas usen productos de diferentes proveedores.

Para definir un sistema como abierto es necesario tener en cuenta los siguientes criterios:

Que el sistema cumpla con una especificación bien definida y disponible para la industria.

  • Que esta especificación cumpla con varios productos independientes de diferentes compañías y que haya varias implementaciones diferentes en el mercado.
  • Que estas especificaciones no sean controladas por un grupo pequeño de compañías.
  • Que esta especificación no esté atada a una arquitectura o tecnología específica.
  •  

Las características mas sobresalientes de un sistema abierto son:

  • De gran utilidad en ambiente multiusuario.
  • Poseen procesadores muy poderosos capaces de controlar un gran numero de terminales y capacidades de almacenamiento que sobrepasan los GigaBytes.
  • Obtienen gran integración de susbsistemas de información en una base de datos única.
  • Menos costosos, complejidad mínima y más flexibles.
  • No estan a atados a un solo tipo de hardware propiertario
  • tados a un solo tipo de hardware propietario.

  • Poseen un ambiente integrado de información.
  • Cumplen y/o generan estándares.
  • Sus especificaciones son generales.
  • Los software poseen alto grado de portabilidad.
  • Flexibilidad de los lenguajes de programación.
  • Manejo de ambientes operativos distintos (desarrollo y produccion).
  •  

Para que un estándar de sistema abierto sea evaluable, debe tener:

 

  • Una consistente y bien documentada interfase que exprese claramente todos los tipos de acciones utilizadas en la clase de aplicaciones que direcciona.
  •  
  • Implementación a traves de un amplio rango de hardware.
  •  
  • Patrocinio por parte de un cuerpo de estándares establecidos (compañías, corporación, etc.) que tienen la responsabilidad de mantener la publicación de los requerimientos que los conformen de manera estable.