Ir al contenido

Diferencia entre revisiones de «Programador»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Sin resumen de edición
m Revertidos los cambios de 200.47.157.244 (disc.) a la última edición de Isha
Línea 7: Línea 7:
== Breve reseña histórica ==
== Breve reseña histórica ==


[[Ada Lovelace]], hija del prestigioso poeta [[Lord Byron]], es considerada la primera programadora de la historia. Su contribución consistió en un método para calc
[[Ada Lovelace]], hija del prestigioso poeta [[Lord Byron]], es considerada la primera programadora de la historia. Su contribución consistió en un método para calcular los [[números de Bernoulli]] en la ''máquina analítica'' de [[Charles Babbage]], matemático con el que colaboraba en [[1842]].


[[Imagen:Ada Lovelace 1838.jpg|thumbnail|Retrato de Ada Lovelace]]
[[Imagen:Ada Lovelace 1838.jpg|thumbnail|Retrato de Ada Lovelace]]

Revisión del 14:34 4 nov 2009

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.

Breve reseña histórica

Ada Lovelace, hija del prestigioso poeta Lord Byron, es considerada la primera programadora de la historia. Su contribución consistió en un método para calcular los números de Bernoulli en la máquina analítica de Charles Babbage, matemático con el que colaboraba en 1842.

Retrato de Ada Lovelace

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 EEUU 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, La 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.
  • Programadores de "Nuevas Tecnologías". Rama que gira en torno a Internet y los negocios por medios electrónicos. 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, CSS, Javascript ó AJAX(Conjunto de tecnologías existentes).
  • Programadores de Firmware y videojuegos. Destacan sus conocimientos de hardware, Microprocesadores, ensamblador y C.
  • Programadores de sistemas abiertos. Rama asociada a la Arquitectura Cliente-Servidor. Requiere conocimientos de C, Pascal, etc.

Véase también