Está en la página 1de 15

NeoProgramadores - Cómo Convertirse en un Programador Página 1 de 15

Descarga Crea tu Revela Bajar


LaBolsa.com Buscar en la Web
MP3 blog fotos Juegos
Cómo Convertirse en un Programador Lecturas Relacionadas
Versión 2.0
Así que quieres ser un
Programador...
Por J. F. Díaz (jfdiaz98@hotmail.com)
Lic. en Ciencias de la Computación
Cómo ser un Programador.
Un Resumen Corto,
Inspirado en el documento How To Become a Hacker (Cómo convertirse en un hacker)
Comprensivo y Personal
de Eric S. Raymond. Actualizado con la revisión 1.30 del 2 de Marzo del 2005 de dicho
documento. Dedicado a mis alumnos pasados, presentes y futuros.
Iniciándose como un
Programador de
Contenido Computadoras
1. ¿Por Qué Existe Este Documento?
1.1 ¿Qué es un programador de computadoras? La Programación de
1.2 Características de los Programadores Computadoras. ¿Cómo es?
2. La Actitud del Programador
2.1 Afuera hay un mundo lleno de problemas que esperan ser resueltos Tips for getting hired as a
2.2 Nadie debería reinventar la rueda programmer (Tips para ser
2.3 Lo aburrido y lo rutinario es malo contratado como
2.4 La creatividad y la originalidad son buenas programador)
2.5 La actitud no es sustituto para la inteligencia
3. Habilidades Básicas en un Programador Como Programador ¿Por
3.1 Aprende informática básica Qué Debo Aprender Inglés?
3.2 Aprende cómo usar aplicaciones y el sistema operativo
3.3 Consigue un inglés funcional
3.4 Aprende matemáticas
3.5 Aprende teoría de programación y a desarrollar algoritmos
3.6 Obtén el compilador de un lenguaje y aprende a programar en él
3.7 Aprende otros lenguajes de programación
3.8 Aprende cómo usar la Web y a escribir en HTML
3.9 Obtén conocimientos básicos sobre hardware
4. Estatus en la Comunidad de Programadores
4.1 Escribe buenos programas
4.2 Ayudar a probar y depurar software
4.3 Publicar información útil
4.4 Ayudar a mantener en funcionamiento la infraestructura
4.5 Hacer algo por la comunidad informática
5. La conexión Programador/Nerd
6. Cuestiones de estilo
7. Otros recursos
8. Preguntas frecuentes (PF)

1. ¿Por Qué Existe Este Documento?


1.1 ¿Qué es un programador de computadoras?
1.2 Características de los Programadores

En mi labor como docente de Informática a diario tengo que lidiar con una dolorosa
realidad: los estudiantes de las carreras relacionadas con esta ciencia con frecuencia no
cuentan con una base sólida de conocimientos sobre aspectos claves que les ayuden a
convertirse en buenos profesionales. Los estudiantes de cursos de programación, en
particular, carecen además de una guía confiable que les señale la ruta a seguir para
dominar un Arte tan fascinante pero a la vez tan complejo como es la programación de
computadoras.

Aunque pueden mencionarse diversos factores que contribuyen a este problema tan
arraigado en la actual generación de informáticos de nuestros países en desarrollo, entre
los que podemos mencionar el económico, el cultural y el académico, no es ése el
objetivo primordial de este documento. Su objetivo principal es delinear lo que a mi
entender son los requisitos fundamentales para llegar a ser un buen programador.

Antes de iniciar su redacción, a finales de 1998, noté que habían pocos documentos en la

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 2 de 15

Web que dieran una respuesta aceptable a esta cuestión vital. Los pocos que encontré
eran muy superficiales o demasiado profundos como para que un principiantes pudiera
usarlos en su provecho --una lista de ellos se encuentra al final de este escrito. Pero
cuando descubrí el documento de Eric (cuya versión en español está aquí), además de
conocer de la existencia de estos enigmáticos seres del ciberespacio, me di cuenta de la
gran similaridad (salvando distancias, por supuesto) entre ellos y los programadores. De
hecho, los hackers informáticos son ante todo programadores pero con mayores y más
profundos conocimientos sobre la manera en que funcionan las computadoras y todo lo
relacionado a ellas, lo que los hace misteriosos y admirables a la vez.

Al leer ese documento aprendí más acerca de la personalidad, conocimientos y


habilidades que los hackers (y los programadores) debían poseer. Era todo un mundo
que se abría a mis ojos, por lo que decidí escribir el que tienes ante ti, una especie de
ensayo que tratara de reflejar con precisión lo que se necesitaba para ser un
programador, desde una óptica docente y práctica. No pretende ser la última palabra al
respecto sino más bien una opinión muy personal. Si no te gusta lo que leerás aquí,
puedes escribir el tuyo propio.

Si estás leyendo una versión impresa o fuera de línea de este documento, la versión más
actual se encuentra en http://www.galeon.com/neoprogramadores/proghow2.htm. Hay
una lista de Preguntas Frecuentes al final de este documento. Por favor, léelas (dos
veces) antes de enviarme un e-mail con preguntas sobre el mismo.

1.1 ¿Qué es un programador de computadoras?

Existen muchas definiciones para los programadores de computadoras, la mayoría de las


cuales tienen que ver con conocimientos técnicos para diseñar, escribir, probar y
documentar programas de software orientados a resolver problemas usando un lenguaje
de programación y una computadora como herramientas. Pero además, él o ella poseen
la capacidad de resolver problemas y se deleitan al buscar soluciones particulares y
toman como reto o juego intelectual el hacerlo. Explotan al máximo las capacidades de
las computadoras, convirtiéndose en agentes de cambio en sus ambientes de trabajo al
automatizar tareas manuales, repetitivas, tediosas, lentas o complejas.

Si quieres convertirse en un programador pregúntate si te identificas con lo que


mencionan esas definiciones y si puedes cultivar o posees ya esas actitudes, y si
realmente quieres convertirse en uno.

Los programadores forman una comunidad cuya historia se puede rastrear décadas
atrás, hasta las primeras computadoras y los primigenios experimentos de
automatización de tareas, y han estado presentes en todas las actividades vinculadas
con la computadoras y la automatización de procesos. Ellos hicieron de la computación lo
que es en la actualidad, inclusive Internet. Los programadores hacen andar las
infraestructuras organizacionales al utilizar la informática como medio para alcanzar sus
objetivos. Si quieres ser parte de esta comunidad, si deseas convertirse en un
programador, entonces sigue leyendo.

La mentalidad de programador no está confinada al software de computadoras. Hay


personas que aplican la actitud de programador a otras cosas, como electrónica o música
--de hecho, puedes encontrarla en los más altos niveles de cualquier ciencia o arte, y se
les reconoce como "programadores" también por el nivel de dominio que tienen en su
campo de trabajo. Muchos sostienen que la naturaleza del programador es en realidad
independiente del medio particular en el cual éste trabaja. Pero en el resto de este
documento nos enfocaremos en las habilidades y actitudes de los programadores de
software, y en las características y conocimientos de esta comunidad.

Si deseas ser un programador, termina de leer este documento. Si no aceptas el reto o


no tiene interés en aprender en crear software, sólo utilizarlo, inscríbete en algunos
cursos o lee unos cuantos manuales para aprender a usar ordenadores, pero prepárate
para soportar la dura realidad cuando después de un tiempo y mucho esfuerzo en
aprender aplicaciones "enlatados" descubras las limitaciones que ellas imponen para
realizar tareas que impliquen acciones que no están incluidas en sus menúes.

1.2 Características de los Programadores

En la programación, el programador es el elemento más importante para la obtención de


la solución correcta y satisfactoria de los problemas que se desean resolver mediante
computadoras. Es el ingrediente catalizador y determinante, cuyo esfuerzo es más
importante que el conjunto de herramientas y equipos que se empleen. El éxito de esta
empresa depende en gran medida de un conjunto de características propias del

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 3 de 15

programador, las cuales, entre más desarrolladas y completas se posean, mejor será la
solución automatizada que se obtenga. Estas características distinguen a los
programadores del resto de usuarios de computadoras y de muchas otras clases de
personas.

Entre las características más importantes de los programadores podemos mencionar:

 Capacidad analítica para comprender los problemas que se le planteen.


 Lógica y buen sentido común.
 Capacidad de observación.
 Espíritu autodidacta e investigativo.
 Habilidad para estructurar una serie de pasos que conduzcan a la solución de los
problemas tomando en cuenta las capacidades y limitantes de la computadora.

Podemos mencionar además de las anteriores otras características adicionales


igualmente importantes que un programador debe poseer, tales como la constancia, la
dedicación, la disciplina y el deseo de superación.

2. La Actitud del Programador


2.1 Afuera hay un mundo lleno de problemas que esperan ser resueltos
2.2 Nadie debería reinventar la rueda
2.3 Lo aburrido y lo rutinario es malo
2.4 La creatividad y la originalidad son buenas
2.5 La actitud no es sustituto para la inteligencia

Los programadores resuelven problemas y construyen cosas, y creen en el uso de la


computadora como herramienta y medio para deshacerse de los formas arcaicas de
trabajo. Para ser un programador, deberás comportarse como si tuvieras esta clase de
actitud en tu interior. Y para comportarse como si tuvieras esta actitud, debes realmente
creer en dicha actitud.

Pero si piensas que cultivar las actitudes de programador como una forma de ganar
aceptación en la sociedad, malinterpretas el tema. Convertirte en la clase de persona que
cree en esas cosas es importante para ayudarte a ti -- para ayudarte a aprender y
mantenerte motivado. Como en las artes creativas, el modo más efectivo de
transformarse en un maestro es imitar la mentalidad de los maestros -- no sólo
intelectualmente, sino emocionalmente tan bien.

Por tanto, si quieres ser un programador, repite las siguientes cosas hasta que lo creas:

2.1 Afuera hay un mundo lleno de problemas que esperan ser


resueltos

Ser un programador es muy divertido, pero es una clase de diversión que requiere
bastante esfuerzo. El esfuerzo requiere motivación. Los atletas exitosos obtienen su
motivación a partir una clase de placer físico que surge de trabajar su cuerpo, al forzarse
a sí mismos más allá de sus propios límites físicos. De manera similar, para ser un
programador deberás sentir un estremecimiento de tipo primitivo cuando estés frente a
un problema, o la resolver uno con la ayuda de la computadora, afinando tus habilidades,
y ejercitando tu inteligencia.

Si no eres la clase de persona que siente naturalmente las cosas de esta manera,
necesitarás aprender a experimentarlas a fin de lograr ser un programador. De otra
manera, encontrarás que tu energía de programación será absorbida por otras
distracciones como calificaciones, dinero y/o aprobación social.

(También deberás desarrollar cierta clase de fe en tu propia capacidad de aprendizaje --


la creencia de que aún cuando puedas no saber todo lo que se necesita para resolver un
problema, si investigas un poco e intentas una primera solución, tendrás la base
suficiente para aprender de tus errores y hacer una versión mejor de tu solución, o
podrás enfrentarte a otros problemas semejantes, adquiriendo así más experiencia y
conocimientos.)

2.2 Nadie debería reinventar la rueda

Los cerebros creativos son un recurso valioso y limitado. No deberían desperdiciarse

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 4 de 15

reinventando la rueda cuando hay tantos y tan fascinantes problemas nuevos esperando
ahí afuera.

Para comportarse como programador, debes creer que el tiempo para pensar de otros
programadores es precioso -- tanto que es casi una obligación moral para ti compartir
información con ellos o ayudarles a resolver problemas. Deberás resolver los problemas
y luego exponer la solución o implementarla en la práctica de manera que los demás se
beneficien y los otros programadores puedan resolver nuevos problemas, en lugar de
enfrentarse perpetuamente con los viejos. Esto significa que no debes ser egoísta con tus
conocimientos. Las personas egoístas no desean que los demás se superen... o le
superen.

(No tienes que pensar que estás obligado a regalar todo tu producto creativo. Los
programadores que lo hacen son los que obtienen más respeto de los demás, incluyendo
los otros programadores. Sin embargo, se considera consistente con los valores de un
programador que se regale lo suficiente como para ayudar o enseñar a otros, y al mismo
tiempo ganar dinero con tu trabajo. Incluso pueden utilizarse las habilidades de
programador para enriquecerse, siempre que no olvides que eres un programador y que
te debes a tu comunidad.)

2.3 Lo aburrido y lo rutinario es malo

Los programadores (y las personas creativas en general) nunca debieran ser sometidas a
trabajos rutinarios, porque cuando esto sucede significa que no están haciendo lo único
que pueden hacer: resolver problemas. Este desperdicio de talento daña a todo el
mundo. Por lo tanto, las tareas rutinarias, repetitivas y aburridas no solo son
displacenteras, sino intrínsecamente malas.

Para comportarte como programador, debes creer en esto lo suficiente como para
sentirte obligado a automatizar aquellas tareas (o partes de ellas) aburridas o rutinarias lo
más que se pueda, no solamente para tu beneficio, sino para el de todos los demás,
especialmente el de otros programadores.

(Existe una aparente excepción a esta regla. Los programadores hacen cosas a veces
que pueden parecer repetitivas o aburridas pero como ejercicio para lograr claridad
mental, o para obtener cierta habilidad, cierto conocimiento o cierta clase de experiencia
que no podría adquirirse de otro modo, como el realizar repetitivas pruebas de un
programa para depurarlo de errores. Pero aunque esto es una elección, ninguna persona
pensante debiera ser forzada a hacer cosas que le aburra.)

2.4 La creatividad y la originalidad son buenas

Los programadores son naturalmente creativos, inteligentes, prácticos, y a menudo


originales. Mezclan sus ideas con métodos y procedimientos que les ayudan a hacer su
trabajo, pero gustan de hacer las cosas a su modo usando su creatividad y
conocimientos y experiencias propias y ajenas. Cualquiera que les pueda limitar su
creatividad y libertad al programar, o forzarles a cambiar su manera de pensar y de
resolver problemas, puede desmotivarlos y evitar que sean eficientes -- y, debido a la
manera en la que funcionan las mentes arcaicas, encontrarán alguna razón
espantosamente estúpida para hacerlo. Por eso, las formas de trabajo anticuadas deben
ser combatidas donde sea que se las encuentre con ideas y tecnología, exponiendo las
razones que consideres apropiadas para hacer más eficiente el trabajo. Si se las deja te
asfixiará, tanto a ti como a los otros programadores y a toda la gente creativa en general,
impidiéndoles implementar sus ideas y soluciones propias y novedosas.

(Esto no es lo mismo que combatir la autoridad, ni dejar de seguir procedimientos de


trabajo. La gente se salva por seguir procedimientos de seguridad, los niños necesitan
guía y los criminales restricciones. Un programador debe aceptar la autoridad de su jefe o
superior, así como las normas de trabajo existentes, apegarse a ellas y aún tener espacio
suficiente para desplegar su creatividad e implementar sus ideas. Éste es un pacto tácito
que beneficiará a ambas partes, un acuerdo conciente; la clase de sumisión que desean
los arcaicos no está en oferta. Así que para comportarse como programador, deberás
luchar mediante el diálogo contra quienes utilizan su posición y poder para obligar a los
demás a hacer las cosas de una forma que restrinja la creatividad, la libertad y las ideas
inteligentes que mejoren los métodos de trabajo. Y deberás estar preparado para actuar
en consecuencia... o te quitarán tu propia forma de hacer las cosas y te harán realmente
infeliz.)

2.5 La actitud no es sustituto para la inteligencia

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 5 de 15

Para ser un programador, deberás desarrollar algunas de esas actitudes. Pero copiar
solamente una actitud no te transformará en programador, como tampoco te puede
transformar en un atleta campeón o en una estrella de rock. Para transformarse en
programador necesitarás inteligencia, estudio, disciplina, práctica, dedicación y trabajo
duro. Todas estas son cualidades de un programador.

Por lo tanto, debes aprender a desconfiar de la actitud y respetar la inteligencia de todo


tipo. A ningún programador le gusta perder el tiempo con quienes adoptan la pose de
programadores, sino que veneran la inteligencia y la competencia consigo mismo y con
los demás al programar para superarse y tratar de hacer cada vez mejor y más
eficientemente las cosas. Si lo deseas, puedes competir en cualquier ámbito y contra
otros, y eso está bien. En especial, la competencia en habilidades exigentes que pocos
pueden dominar como la programación es mejor, y la competencia en habilidades
exigentes y tareas que involucran agudeza mental, experiencia y concentración es
especialmente mejor.

Si respetas la inteligencia y la competencia, disfrutarás desarrollándolas en ti y contigo


mismo. El trabajo pesado y la dedicación se transformarán en una especie de juego
intenso, y no una rutina. Esa actitud es vital para transformarte en un programador.

3. Habilidades Básicas en un Programador


3.1 Aprende informática básica
3.2 Aprende cómo usar aplicaciones y el sistema operativo
3.3 Consigue un inglés funcional
3.4 Aprende matemáticas
3.5 Aprende teoría de programación y a desarrollar algoritmos
3.6 Obtén el compilador de un lenguaje y aprende a programar en él
3.7 Aprende otros lenguajes de programación
3.8 Aprende cómo usar la Web y a escribir en HTML
3.9 Obtén conocimientos básicos sobre hardware

La actitud del programador es vital, pero las habilidades o son más. Tener la actitud no es
lo mismo que ser competente, y existe un cierto conjunto de herramientas básicas que
debes dominar antes de convertirte en programador o que cualquiera pueda llamarte así.
Este conjunto de herramientas cambia lentamente con el tiempo a medida que la
tecnología crea nuevas habilidades y descarta otras por obsoletas. Por ejemplo, antes se
programaba en COBOL, Clipper y Ensamblador, y no se hablaba de C++, Visual Basic ni
de Java hasta hace poco. Pero hasta inicios del 2005, es claro que debe incluirse lo
siguiente:

3.1 Aprende informática básica

Aunque parezca obvio mencionarlo, debes conocer y dominar conceptos básicos de


informática. Si no conoces las partes del ordenador, cómo funciona, sus capacidades y
limitaciones físicas y lo que puedes y no puedes (o debes) hacer con él, no deberías
empezar con la programación. Si no se conocen los conceptos de ordenador, hardware,
software y su clasificaciones, datos, información, sus unidades de medida y los diferentes
medios de almacenamiento de datos entre otros conceptos, es muy difícil comprender en
qué se fundamenta la programación. Es como querer conducir un auto sin haber tomado
un curso básico de manejo.

Debería exigirse en las carreras y cursos relacionados con la computación un nivel de


aprendizaje bastante completo de Informática Básica antes de permitir a los estudiantes
promover a cursos superiores. Un mínimo de 90% de la nota necesaria para aprobar la
asignatura sería una cifra aceptable dado que estos conocimientos son de suma
importancia para los profesionales de hoy en día. Aunque 90 puede parecer un
porcentaje alto, te sorprenderías por el número de veces que he interrumpido una clase
de programación debido a que los estudiantes no recuerdan con claridad la diferencia
entre conceptos fundamentales como kilobyte y megabyte, hardware y software o entre
RAM y ROM.

Si no has tomado un curso formal de Informática o estás débil en esta materia te sugiero
que leas un buen libro sobre introducción a la informática, o busques en la Red un buen
tutorial sobre el tema. Si después deseas leer un libro que relacione la informática con la
programación, léete éste.

Se incluye además en este apartado el saber usar el teclado. No pasarás gran parte del
tiempo codificando (generalmente es un 10-15% del tiempo total de programación) pero

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 6 de 15

sí escribiendo documentación, tanto interna (en el código) como externa (manuales de


usuario por ejemplo.) Aunque no se necesita ser rápido con el teclado, al menos debes
poder tipiar de 15 a 20 palabras por minuto.

3.2 Aprende cómo usar aplicaciones y el sistema operativo

Esta es otra habilidad importante de los programadores. El saber emplear el sistema


operativo y las aplicaciones de oficina es de muchísima utilidad. Los programadores
dominan ampliamente estos tipos de software y los utilizan como herramientas en su
trabajo y como componentes dentro de sus soluciones. Como parte de tu aprendizaje de
la programación debes conocer las facilidades y limitaciones del software básico de la PC
para explotar al máximo sus capacidades en tu propio beneficio y de los demás. Si no
sabes cómo usarlo te verás seriamente limitado en tu aprendizaje de la programación y
en la creación de soluciones.

Aprende cómo usar el software base. En el caso de las PC compatibles con IBM este
software es el Windows y las aplicaciones de la suite Microsoft Office por ser los más
ampliamente difundidos en esta plataforma. Si tu plataforma es otra, debes aprender sus
equivalentes. Si ya dominas estos programas tienes mucho camino andado, si no toma
un curso express de operador o sé autodidacta estudiando por tu cuenta libros y
manuales que puedes descargar gratis de la Web. Esto es más económico y mejor pues
aprenderás a tu ritmo, en tu tiempo y te permitirá ir más allá de los conocimientos básicos
que enseñan en los lugares de pago.

Estudia primero sobre tu sistema operativo para aprender cómo aprovechar al máximo
sus capacidades y las del ordenador, en particular cómo administrar archivos, cómo
ejecutar programas y utilizar los periféricos; debes además conocer cómo utilizar sus
herramientas (utilerías de discos, editores de texto, calculadoras, programas de gráficos,
administradores de impresión, etc.) y las facilidades que ofrece (multitarea, modos
gráficos y modo texto, uso de ventanas, etc.) Estos conocimientos son muy importantes.
No los tomes a la ligera pues te servirán durante toda tu vida como programador y
usuario de computadoras.

Continúa después con la suite ofimática que tengas instalada. Si es Office, debes
dominar Word, Excel y Access cuyas funcionalidades son de suma utilidad en cualquier
entorno. En especial aprende a importar/exportar datos de y hacia ellos, cómo pasar
información entre estas aplicaciones mediante procedimientos de copiar/cortar y pegar, y
a recuperar de o guardar en los diferentes formatos que estas aplicaciones soportan. En
especial debes aprender Access puesto que permite crear y administrar bases de datos,
y extraer información rápida y eficientemente en forma de reportes y consultas. Debes
conocerlo lo suficiente de él como para resolver problemas de administración de
información y automatizar operaciones rutinarias, lentas o aburridas como el registro y
procesamiento de datos. El dominio de Access representa un excelente punto de partida
en tu aprendizaje de la programación, además de que a largo plazo te será de utilidad:
sus bases de datos son necesarias para la programación en Visual Basic y pueden ser
accedidas usando otros lenguajes de programación como el SQL.

Además del software antes mencionado debes conocer el uso de aplicaciones antivirus,
paquetes de utilerías (como Norton SystemWorks), software de grabación de CDs, uso
práctico de redes y de todas aquellas aplicaciones que puedan serte de utilidad, como el
Acrobat Reader y las utilerías varias.

3.3 Consigue un inglés funcional

La mayoría de los lenguajes de programación incorporan en su sintaxis una gran


cantidad de palabras inglesas. Más de la mitad del contenido de la Red se encuentra
también en este idioma. Un gran porcentaje de documentos y artículos técnicos, libros de
texto, la ayuda y la interfaz de muchos programas no tienen una versión traducida al
español, y una gran cantidad de foros técnicos, páginas web y recursos de la Internet en
general usan o tienen el inglés como idioma de trabajo. Y es que el inglés, aparte de ser
la lengua oficial de grandes potencias en informática como Estados Unidos, Inglaterra y
Canadá donde se habla en un alto porcentaje, tiene el vocabulario técnico más rico que
cualquier otro idioma. Esto tiene implicancias para nosotros, los de habla no inglesa: la
traducción de libros técnicos y de interfaces de programas originalmente escritos/creados
en inglés son a menudo insatisfactorios por la falta de términos equivalentes en nuestra
lengua (si se llegan a realizar).

Por esas y muchas otras razones que tienen que ver con tu preparación y tu futuro como
profesional, debes poseer al menos un inglés básico funcional, con un buen dominio del
vocabulario técnico informático. Por lo menos debes saber lo suficiente como para

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 7 de 15

poderlo comprender y expresarte en él apropiadamente. Obtener un nivel intermedio o


superior en un buen curso de inglés servirá, y si lo completas es mejor ya que con un
inglés más fluido podrás realizar mejores consultas en la Web, expresar con más claridad
tus dudas en los foros y traducir mejor los manuales técnicos.

Quizá pienses que un buen programa traductor y/o un diccionario o glosario técnico
(electrónico o de papel) te ayudarán a resolver cualquier problema relacionado con el
inglés al utilizarlo como herramienta de apoyo durante tu aprendizaje o trabajo de
programación. Y tienes razón. Esas herramientas son muy útiles y pueden convertirse en
tus grandes aliados. Pero no debes atenerte a ellas puesto que el tiempo que se invierte
en comprender o traducir un mensaje, un documento, una opción de menú o un
procedimiento de un manual puede hacer la diferencia entre un programador bueno y uno
mediocre.

Personalmente el conocer inglés me ha ayudado mucho en mi trabajo, la docencia y mis


proyectos personales. Francamente no sé si hubiese podido realizar muchas de esas
cosas sabiendo únicamente mi idioma natal, el español. Creo firmemente en la
importancia del inglés en el proceso de conversión que persigues para llegar a ser un
programador. De otro modo no lo hubiese incluido en este escrito.

He escrito un artículo que aborda más ampliamente este tópico es este. Quizá te interese
leerlo.

3.4 Aprende matemáticas

No necesitas ser un genio en matemáticas para ser un programador. De hecho, esto es


un tabú para quienes desean aprender a programar pero temen toparse con demasiados
números y la necesidad de grandes conocimientos sobre esta ciencia.

Sí, es importante conocer matemática para aprender a programar, pero no significa que
debas conocer matemática avanzada como el cálculo, el análisis, las series de Fourier o
la matemática cuántica. A menos que estés interesado en los gráficos, los videojuegos y
las aplicaciones científicas donde el tener habilidades especiales con los números
definitivamente es muy importante, en general lo único que necesitas saber es aritmética
básica, álgebra, geometría y lógica y teoría de conjuntos. Lo importante es que debes
sentirte cómodo con los conceptos, las operaciones básicas, las fórmulas y el
razonamiento deductivo que implican estas materias. Eso es todo. El dominio y aplicación
de estos conocimientos a la programación es casi automática y decisiva en tu proceso de
transformación en programador. Generalmente los alumnos que son buenos con las
matemáticas sienten fácil el aprendizaje de la programación ya que el tipo de
razonamiento emlpeado para resolver problemas es muy similar al empleado con los
números. De hecho, los mejores alumnos programadores que he tenido eran buenos con
las matemáticas.

Pero esto no es un dogma. Muchos se han convertido en excelentes programadores sin


ser hábiles matemáticos, en entornos que no requieren grandes habilidades con los
números como las bases de datos o la programación de páginas web. Pero el estar
familiarizados con las fórmulas, saber cómo traducirlas a la sintaxis de algún lenguaje de
programación, tener lógica y poder jugar con los números y las incógnitas usando el
álgebra son elementos muy importantes para cualquier programador.

3.5 Aprende teoría de programación y a desarrollar algoritmos

Aprender a programar es, por supuesto, la habilidad fundamental del programador. Pero
aprender a programar no significa únicamente conocer lenguajes de programación, sino
que antes de eso se debe conocer y dominar conceptos teóricos fundamentales de
la programación tales como variables, constantes, tipos de datos, algoritmo, sentencias
de control, flujogramación, programa, lenguajes de programación, estructuras de datos,
compilación, traducción, además de tópicos relacionados tales como el ciclo de vida de
los programas, estrategias de diseño y métodos de prueba de programas.

El dominio de la teoría es fundamental en cualquier campo, más aún si ese campo


implica mucha teoría aplicada como lo es el de la programación. Pero además de ello,
para aprender a programar es sumamente importante el saber estructurar soluciones a
problemas mediante el diseño y la escritura de algoritmos. Esta es una habilidad clave
para el aprendizaje de la programación. Si no eres capaz de estructurar una secuencia
lógica de acciones que constituya una propuesta de solución a un problema planteado,
no deberías empezar el estudio de ningún lenguaje de programación. La esencia de la
programación radica en esta habilidad y aunque conozcas la sintaxis y la semántica de
decenas de lenguajes de programación no podrás desarrollar soluciones a problemas,

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 8 de 15

menos que sean representen alguna utilidad práctica o que resulten interesantes para
otros programadores.

Si no tienes bien afianzados estos conocimientos, el siguiente libro puede serte de


extrema utilidad: Fundamentos de Informática y Programación (también para descarga
completa en formato ZIP); este otro libro, Fundamentos de Informática y Programación
Científica - Resolución en C y Matlab en formato PDF puede servirte también si ya tienes
algo de experiencia.

Doy por sentado de aquí en adelante que conoces suficiente teoría de programación, que
ya sabes estructurar algoritmos y que tienes acceso a un ordenador. Pasemos a la
acción.

3.6 Obtén el compilador de un lenguaje y aprende a programar


en él

El paso más importante que cualquier novato puede dar, camino a adquirir las
habilidades de un programador es obtener una copia de un compilador de algún lenguaje
de programación, instalarlo en una PC y aprender a programar en él. Te recomiendo
empezar con Python. Está limpiamente diseñado, bien documentado, es gratuito y
relativamente sencillo para los principiantes. A pesar de lo anterior no deja de ser un
lenguaje poderoso, flexible y apropiado para grandes proyectos.

Pascal es también un buen lenguaje para aprender a programar. Casi tan fácil como
Python, se suele utilizar también en la enseñanza. Existe mucha bibliografía sobre Pascal
en las librerías y la Web por lo que no será un problema para ti obtener documentación
sobre este popular lenguaje. Tanto Python como Pascal son muy simples, didácticos,
fáciles de aprender, e implementan los conceptos más importantes de la programación.
Desde este sitio puedes descargar versiones de sus compiladores aparte de recursos
adicionales como manuales y guías de instalación para ellos.

Aunque existen muchos otros lenguajes son pocos los que cumplen los requisitos que
Python y Pascal poseen. No intentes iniciar tu aprendizaje de la programación con
lenguajes visuales (léase Visual Basic, Visual FoxPro, Visual C/C++) puesto que distraen
mucho con los aspectos relacioandos con el diseño y dejan en segundo plano la
programación, a la vez que te mal acostumbrarás a sus mecanismos de ejecución.
Tampoco con lenguajes como COBOL, Clipper ni ensamblador. Aunque COBOL y
Clipper aún se usan en entornos empresariales, no son didácticos y enseñan pésimos
hábitos de programación; el ensamblador por su parte requiere conocimientos profundos
del hardware. Puedes empezar incluso con DBase o uno semejante de la familia Fox
anterior a la 3.0, pero cuando trates de aprender lenguajes que requieran declarar
explícitamente localidades de almacenamiento como Pascal o C (variables por ejemplo),
quizá te extrañe o te incomode.

No puedo explicarte en detalle aquí cómo puedes aprender a programar --es una
habilidad compleja y depende de las habilidades y capacidades que cada uno posee.
Pero puedo adelantarte que los libros y cursos no bastarán, sino además el tener tiempo
suficiente para practicar, el hábito de la lectura y un espíritu investigativo (muchos, y tal
vez la mayoría de los mejores programadores son verdaderos autodidactas). Te
recomiendo además dos cosas que te servirán de mucho y son (a) leer código y (b)
escribir código. El código a leer puede ser:

 Programas ejemplos de los libros de programación


 Programas de estudiantes avanzados
 Demos que traen los compiladores (están en las mismas carpetas donde se
instalan sus programas)
 Programas fuentes de aplicaciones que puedas conseguir legalmente
 Programas libres (o sea software no comercial, cuyo código fuente puedes
obtener en la Internet)

Antes era difícil encontrar código de buena calidad para leer porque habían pocos libros y
código fuente disponible de calidad que se pudiera estudiar y con el que se pudiera
experimentar. Esta situación ha cambiado dramáticamente: mejores libros, software libre,
herramientas de programación gratuita, la Internet, etc. todo disponible con su código
fuente y ampliamente disponibles en la actualidad. El aprender a programar es como
aprender a escribir bien en lenguaje natural. La mejor manera de aprender es leer algo
de las cosas escritas por los maestros, luego escribir algunas cosas por ti mismo, leer
mucho más, escribir un poco más... y repetir esto hasta que lo que escribes empiece a
mostrar la clase de fuerza y economía que se aprecia en tus modelos.

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 9 de 15

Estudia un lenguaje de programación. Aprende a programar en él. Usa las herramientas


que ofrece y los conceptos de programación que implementa. Lee los ejemplos que traen
los libros para comprenderlos y practica modificándolos. Comunícate con el sistema
operativo mediante sus librerías. Te aseguro que te divertirás, te sumergirás en un caudal
de conocimientos de gran magnitud, se te desarrollará la lógica de programación y
adquirirás experiencia, hasta que en cierto momento, mirando hacia atrás, te darás
cuenta que ya no eres un simple principiante.

3.7 Aprende otros lenguajes de programación

No creas que ya eres un programador por el hecho de conocer uno o dos lenguajes. Para
ser un verdadero programador debes aprender varios lenguajes más hasta llegar al punto
en que puedas aprender uno nuevo en días, relacionando lo que está en el manual con lo
que ya sabes de antes. Un beneficio adicional y quizá el mayor, es que aprender a
programar en varios lenguajes muy diferentes entre sí te ayudará a pensar en los
problemas de programación de una manera general e independiente de los lenguajes.

Después que aprendas Python y/o Pascal debes estudiar C, el lenguaje oficial de los
sistemas opeeativos tipo Unix y la Internet. C no es un buen lenguaje para iniciar el
aprendizaje de la programación con él puesto que emplea una sintaxis muy escueta, lo
que lo hace muy propenso a errores que pueden requerir mucho tiempo detectar y
eliminar para un principiante. Aunque es un lenguaje muy portátil, flexible, ampliamente
utilizado y encima muy eficiente y económico con el uso de los recursos del computador,
para llegar a dominarlo se requiere mucho tiempo y conocimientos que sólo pueden
adquirirse al aprender a programar en un lenguaje didáctico y sencillo como Python o
Pascal.

Dominar C te ayudará en tu progreso como programador no solo por sus amplios campos
de uso (programación de sistemas operativos, redes, electrónica, aplicaciones y drivers)
sino porque su sintaxis es muy similar a la de otros lenguajes de programación
importantes como C++, Java y JavaScript. C++ es la versión moderna de C enfocado en
la POO (Programación Orientada a Objetos) y es el siguiente lenguaje que debes
dominar. La sintaxis de C es comprendida por los compiladores de C++, por lo que la
transición hacia este lenguaje es suave. Luego que aprendas C++ te resultará fácil
aprender lenguajes visuales como Visual Basic, Delphi o Visual FoxPro dado que estarás
familiarizado con el estilo de programación y los conceptos que C++ emplea. Ésta
constituye otra fuerte razón para aprenderlo.

Otros lenguajes importantes que debes aprender son SQL (Structured Query Languaje,
Lenguaje de Consulta Estructurado) y Visual Basic. El primero para aprender a consultar
bases de datos por su universalidad y potencia, y el segundo por su popularidad, facilidad
y amplia demanda en los entornos empresariales donde se procesan volúmenes de
datos; y puedes continuar después con HTML, el lenguaje de la Internet, y Java por la
demanda actual que existe de aplicaciones para este entorno. HTML sirve para escribir
páginas web y Java para darles dinamismo y hacerlas más interesantes y útiles.

Los lenguajes mencionados son los más importantes y comunes en la actualidad, y


representan enfoques muy diferentes de la programación. Te educarán de distintas y
valiosas maneras pues cada uno de ellos te enseñará a resolver distintos conjuntos de
problemas. Además, si puedes programar en ellos fácilmente puedes aprender otros
lenguajes similares. Si necesitas documentación sobre estos lenguaje busca algún buen
libro para principiantes. Si no puedes conseguir libros, no te preocupes. La web esá
repleta de sitios que ofrecen información y excelentes manuales sobre estos y muchos
otros lenguajes de programación, lo cual nos lleva elegantemente a nuestro próximo
tema...

3.8 Aprende cómo usar la Web y a escribir en HTML

La Web representa el mayor depósito de conocimientos de la actualidad y se considera el


medio de comunicación del futuro. Aprender a usarla no significa aprender únicamente a
manejar un navegador como el Internet Explorer (cualquiera puede hacer eso en una
hora) sino que debes aprender a utilizarla como una fuente valiosa de recursos y
explotarla al máximo. Hablo de usar todos los servicios y recursos que ella ofrece tales
como los motores de búsqueda, los foros, los weblogs, los sitios de descarga de
software y noticias, y el correo basado en web (como Yahoo! y Hotmail) entre otros.
Este conocimiento debería formar parte de tu cultura informática y de tu proceso de
transformación en un auténtico programador.

¿Cómo puede ayudarte la Web a ser un programador? Para empezar está repleta de
manuales y tutoriales sobre lenguajes de programación que puedes descargar o imprimir;

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 10 de 15

cientos de foros donde se dan cita miles de programadores para discutir aspectos
técnicos sobre lenguajes y programación, así como brindar ayuda a quienes la soliciten;
miles de sitios de programas, utilidades y recursos que puedes descargar para ayudarte
en tu aprendizaje, tales como compiladores, editores, herramientas, librerías, código
fuente, trucos técnicos y procedimientos prácticos sobre casi cualquier cosa relacionada
con la programación. En la mayoría de los casos, empero, debes poseer una cuenta de
correo electrónico para comunicarte con los demás, suscribirte gratuitamente a sitios
web, participar en foros o simplemente utilizarlo para descargar recursos.

Pero no todo es así de fácil de conseguir. Muchas veces tendrás que buscarlo
diligentemente usando uno o varios motores de búsqueda como Google o Yahoo! que
permiten rastrear la Web usando patrones y palabras claves, reportando listas de sitios
web en sus resultados. Quizá tengas que intentar varias veces, de diversas formas y con
diferentes buscadores para hallar lo que buscas. Sin embargo, los motores de búsqueda
actuales son muy eficientes y permiten tener más éxito que hace algunos años.

Aprender a usar la Web también implica aprender HTML, el lenguaje de hipertexto y


marcas de la Web. Si aún no sabes como programar en HTML, el aprendizaje que
implica la escritura de código en este lenguaje de marcas te enseñará algunos de los
hábitos mentales que te ayudarán luego con la programación. Si ya sabes Pascal, por
ejemplo, verás que el HTML es aún más fácil. Así que aprende HTML hasta el grado de
lograr hacer tu propia página personal manualmente, es decir, escribiendo por ti mismo
cada instrucción de la misma. Aunque puedes emplear aplicaciones especiales para
diseñar y generar páginas web como FrontPage, deberás saber cómo escribir en HTML
para llevar a cabo correcciones o incluir elementos y características en tus páginas web
que estas aplicaciones no contemplan, como opciones de etiquetas o código Java y
JavaScript para darles más vida y dinamismo.

Luego de crear una página web puedes publicarla en sitios que ofrecen almacenamiento
gratuito como Galeon o GeoCities. Pero no pienses que por tener una página personal
estás más cerca de ser un programador. La Web está llena de páginas personales,
demasiado cargadas y sin sentido, sólo basura sin contenido -- basura muy vistosa, pero
basura al fin. El infierno del HTML y los enlaces que menciona son documentos que
deberías leer para evitar caer en este frecuente error. La versión en inglés de este
documento está más actualizada y menciona recursos adicionales.

Para que valga la pena, tu página debe tener contenido. Debe ser interesante y/o útil
para los demás usuarios de la Red (en especial para otros programadores) y no
simplemente una demostración de capacidad, un símbolo de estatus o de moda. Debe
ser una responsabilidad hacia la comunidad de usuarios de la Red y hacia ti mismo ya
que no debes dejarla a la deriva, sin actualizarla frecuentemente con más y mejor
información.

3.9 Obtén conocimientos básicos sobre hardware

Si piensas que los programadores tienen que ver únicamente con software, te tengo
noticias: también deben conocer sobre hardware. Como programador debes aprender
sobre aspectos técnicos de tu plataforma particular puesto que es sobre ella en que se
ejecutan los programas que creas. No tienes que ser un erudito en la materia, pero al
menos debes saber cuáles son los requerimientos técnicos mínimos que necesita tu
lenguaje de programación, así como los de tus programas y los de los archivos que ellos
procesarán o utilizarán.

Por ejemplo, si vas a utilizar Visual FoxPro como tu lenguaje de programación y estás en
la plataforma PC, al menos debes saber que este lenguaje sólo puede ejecutarse en
máquinas con procesadores 486 o superiores, con al menos 32 MB en RAM y disponer
como mínimo de 10 MB en disco duro para su instalación, sin mencionar el espacio extra
que necesitarán las bases de datos y los archivos de tus proyectos. Además, dado que
es un lenguaje visual requiere como mínimo de un monitor SVGA y un dispositivo
apuntador como un mouse para poder interactuar eficientemente con su interfaz,
especialmente durante las tareas de diseño de pantallas (formularios), consultas
(queries) e informes (reportes). Por otro lado, puesto que la mayoría del software actual
en inmenso y difícil de obtener en disquetes de 3 1/2", es posible que necesites un lector
de CD para instalar el lenguaje, a menos que poseas una conexión de red u otro
mecanismo práctico para poder acceder a sus archivos de instalación.

Los requerimientos mencionados en el párrafo anterior son mínimos, lo cual significa que
si no cuenta con esos requisitos, Visual FoxPro se ejecutará con dificultades o no lo hará
en lo absoluto -- incluso aún con ellos su desempeño será lento. Lo opuesto, es decir, si
tu equipo excede esos requerimientos, hará que el lenguaje se desempeñe mejor sobre
todo en operaciones de compilación de código, búsqueda de datos, diseño de

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 11 de 15

documentos y ejecución. Este exceso por lo tanto es recomendable, en especial si los


programas que vas a desarrollar se utilizarán en entornos de producción empresariales
(donde el volumen de datos a manejar suele crecer rápidamente) y no como simples
ejercisios académicos de aprendizaje. .

Sin embargo, esto no termina aquí. Los requerimientos mínimos para la instalación de un
lenguaje varían de versión a versión, de un tipo de lenguaje a otro, así como de un
fabricante a otro, por lo que debes adquirir no solo conocimientos sino también
experiencia en el uso de los mismos. En la mayoría de los casos esto implica
investigación y práctica. Los archivos que acompañan a los lenguajes de programación
(README.TXT, LEAME.TXT, README.1ST, etc.) así como la documentación propia de
ellos (los libros incluidos en las cajas originales donde empacan los discos de
instalación), la Internet y los libros de texto son tus mejores fuentes de información.

Además de los requisitos hardware, a menudo existen otros requisitos que son
necesarios para la correcta ejecución de un lenguaje o un proyecto de programación. Por
ejemplo, Visual Basic requiere de Microsoft Windows y Microsoft Access para funcionar,
así como de las librerías DLL apropiadas para poder ejecutarse; Java requiere que se
instalen las applets apropiadas y el intérprete adecuado, el que depende casi siempre del
sistema operativo; SQL Server se instala y configura empleando recursos de una red
local, tales como información sobre servidores, dominios, conectividad, etc.

Si eres un principiante, el no saber mucho sobre requisitos técnicos no debería


preocuparte. Irás adquiriendo esos conocimientos y esta experiencia de forma gradual y
a medida en que los vayas necesitando. No es preciso que lo sepas todo y que lo sepas
ya, así que no te desalientes. Al contrario, esta carencia debería ser otro de tus alicientes
para complementar tu formación como programador, puesto que entre mayores
conocimientos y experiencia poseas serás considerado mucho más valioso como
programador.

4. Estatus en la Comunidad de Programadores


4.1 Escribe buenos programas
4.2 Ayudar a probar y depurar software
4.3 Publicar información útil
4.4 Ayudar a mantener en funcionamiento la infraestructura
4.5 Hacer algo por la comunidad informática

De manera similar a muchas otras comunidades, aquí es importante la reputación. Estás


intentando resolver problemas interesantes, pero cuán interesantes son y cuán buenas
son las soluciones que encuentres, es algo que sólo tus iguales o superiores
técnicamente hablando serán capaces de juzgar.

De acuerdo a esto, cuando juegas el juego de programador, aprendes a puntuarse


principalmente en función de tus soluciones y de la opinión que otros programadores
tienen sobre tus habilidades (éste es el motivo por el cual no puedes ser un programador
de verdad hasta que tengas experiencia y otros programadores te denominen así
consistentemente). Este hecho está empañado por la imagen de la programación como
un trabajo solitario por lo absorbente que es, ya que exige mucha concentración; también
por un tabú social de la gente que ve a los relacionados con las computadoras como
nerds (si bien en la actualidad es menor, aún es fuerte) que impide que se valore social,
laboral y económicamente de manera adecuada nuestro trabajo, en su real magnitud.

Tu ganas estatus y reputación no mediante la dominación de las otras personas, por lo


bello que eres ni por tener cosas que los demás desean, sino por crear cosas, resolver
problemas y proveer soluciones efectivas. Específicamente, al crear programas, producir
ideas y obtener resultados por tus habilidades como programador. No se permite que el
programador aumente su reputación de manera ilegal o inmoral, u obtenga validación
externa de fuentes no calificadas como elementos involucrados en la propia motivación.

Existen básicamente cinco clases de cosas que puedes hacer para obtener el respeto de
los demás, especialmente de otros programadores:

4.1 Escribe buenos programas

Lo primero (y más importante) es escribir buenos programas, artefactos que los demás
opinen son útiles, interesantes, importantes o divertidos, y dar a conocer y/o implementar
tus trabajos y soluciones. Si lo deseas, y es muy meritorio, puedes donar el código fuente
del programa a la comunidad de programadores para que sean estudiados, ampliados,

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 12 de 15

probados y/o utilizados. Esto es especialmente válido e importante en medios


académicos, pero cuida que sean donados para que otros puedan estudiarlos y aprender
de ellos. Si regalas tus programas, procura que sea lo suficientemente público como para
evitar el robo de tu trabajo y el fraude académico: que no usen tus ideas y trabajos para
obtener créditos o calificaciones inmerecidas. No le hagas la vida fácil a los perezosos y
parásitos, más bien les harás un gran daño.

Los más reverenciados semidioses de la programación no son las personas que saben
más lenguajes de programación (aunque ello es meritorio) sino las que han escrito
programas muy útiles, de gran magnitud, con grandes capacidades que satisfacen
necesidades de largo alcance, y los dan a conocer o los hacen de dominio público, de tal
manera que cualquiera pueda utilizarlos, ya sea como herramienta o como medio de
aprendizaje.

4.2 Ayudar a probar y depurar software

También son reconocidas aquellas personas que depuran los errores del software. Como
programadores inevitablemente pasaremos la mayoría de nuestro tiempo de desarrollo
en la fase de depuración. Éste es el motivo por el cual los desarrolladores de software
libre, comercial o investigativo, piensan que un buen probador-beta (uno que sabe cómo
describir claramente los síntomas de un bug o error, que puede localizar correctamente
los problemas, que tolera los errores en una entrega apurada, y que está dispuesto a
aplicar unas cuantas rutinas sencillas de diagnóstico) vale su peso en oro. Aún contando
con uno solo de estos probadores el proceso de depuración puede pasar de ser una
prolongada pesadilla que lo deja a uno exhausto, a ser sólo una saludable molestia.

Si eres un principiante, trata de encontrar un programa en desarrollo, ya sea de un


amigo, un profesor o un compañero de trabajo en el cual estés interesado (o no), y se un
buen probador beta. Hay una progresión natural a partir de ayudar a probar programas,
luego ayudar a depurarlos, y más adelante ayudar a modificarlos. Aprenderás mucho de
esta forma, y la gente, como agradecimiento, te ayudará de alguna forma, desde
prestarte documentación, computadoras, darte acceso a redes, regalarte software y
apoyarte en tus proyectos, hasta ayudarte con alguna beca o a encontrar trabajo.

4.3 Publicar información útil

Otra buena cosa que puedes hacer es recolectar y filtrar información útil e interesante
(algoritmos, código fuente de programas, problemas de programación, etc.), publicar
documentos técnicos como PF (Preguntas Frecuentes o FAQ, Frecuently Asked
Questions), escribir o traducir artículos sobre programación o sobre algún lenguaje en
particular, y construir páginas Web para ponerlos a disposición de los demás usando
servicios gratuitos como Galeon y Geocities. Sin embargo, a menos que el contenido de
tu sitio sea original o no exista en tu idioma, te sugiero que busques sitios web que
acepten colaboraciones tales como La Web del Programador. De esta manera evitarás
disgregar aún más la información en la Red y mejorarás con tu aporte los sitios
existentes.

Puedes también publicar tu información en revistas o periódicos, distribuirla mediante


fotocopias, discos, e-mail u otro medio, siempre y cuando no violes derechos de autor y
no sea ilegal. La gente que hace alguna de estas cosas, como mantener las PF técnicas
más importantes, centralizar enlaces a recursos de la Web o comparten información
valiosa gozan de casi tanto respeto como los programadores de sistemas y aplicaciones.

4.4 Ayudar a mantener en funcionamiento la infraestructura

El desarrollo y la automatización de las empresas (inclusive de la Internet) funciona


gracias al trabajo arduo de los programadores y las personas involucradas, tales como
los operadores, depuradores, administradores de sistemas, etc. Existe una gran cantidad
de trabajo necesario pero sin glamour que debe hacerse para que esto siga marchando --
depurar programas, mantener sitios web que archivan grandes cantidades de software,
instalar físicamente redes y equipos, desarrollar documentación para programas y
redactar estándares técnicos. La gente que desarrolla estas actividades goza de mucho
respeto, porque todos saben que esos trabajos son grandes consumidores de tiempo y
no tan divertidos como meterse con el código. Los que lo realizan demuestran su
dedicación.

4.5 Hacer algo por la comunidad informática

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 13 de 15

Finalmente, puedes servir, ayudar y propagar la cultura informática (por ejemplo,


haciendo alguna de las cosas que menciono en este texto, o escribiendo un texto acerca
de como convertirse en un programador :)). Esto no es algo en lo cual estarás en
posición de hacer hasta que tengas experiencia o seas conocido en el ambiente por al
menos una de las primeras cuatro cosas.

La comunidad de programadores no tiene líderes, exactamente, pero tiene héroes.


Cuando hayas estado en las trincheras tiempo suficiente, podrás crecer y transformarse
en uno de ellos. Pero ten cuidado: los programadores y el resto de gente detestan el ego
ruidoso en sus homólogos, inclusive entre los principiantes, así que la búsqueda visible
de esa clase de fama es peligrosa. En lugar de esforzarte por ella, debes colocarte en
una posición tal que ella caiga sobre ti: haz buenos programas y se un buen
programador. Luego, compórtate modestamente y con gracia con tu estatus adquirido.

5. La conexión Programador/Nerd
Contrariamente al mito popular, no es necesario ser un nerd para ser programador.
Ayuda, sin embargo, y muchos programadores son nerds. Al ser un marginado social, el
nerd puede mantenerse concentrado en las cosas realmente importantes, como pensar y
programar. Por esta razón o quizá por moda, muchos programadores han adoptado la
etiqueta 'nerd' e incluso lo utilizan como insignia de orgullo. Es su forma de declarar su
propia inteligencia frente a los demás.

Si puedes vértelas con la concentración suficiente en las tareas de programación para


ser bueno en ello, y encima disfrutar de una vida, está bien. Es muchísimo más fácil
ahora que antes; la gente ve con mejores ojos a los tecno-nerds en la actualidad. Hay
además un número creciente de personas que se dan cuenta que los programadores son
un material de alta calidad para novio/novia/marido/esposa por su alto nivel de IQ.

Si te sientes atraído por la actividad de la programación porque no tienes una vida


personal, está bien también. Al menos no tendrás problemas de concentración. A lo
mejor más adelante puedes conseguir una vida como la demás gente.

6. Cuestiones de estilo
De nuevo, para ser un programador, debes desarrollar la mentalidad del programador.
Existen algunas cosas que puedes hacer cuando estés lejos de una computadora que te
pueden ayudar. Estas cosas no son sustituto para la actividad propia de programar (nada
lo es) pero muchos programadores las realizan, y sienten que de alguna manera se
conectan con la esencia de la actividad de la programación.

 Lee libros de programación y/o revistas de computación. Ve a las presentaciones


de tecnología sobre computación e informática (es un buen método para
encontrarse con programadores, proto-programadores y gente del ambiente y
estar al tanto de la tecnología)
 Practica deportes. (La disciplina mental se parece en ambos casos.)
 Desarrolla un oído analítico para la música. Aprenda a apreciar música de clases
peculiares. Aprenda a tocar correctamente alguna clase de instrumento musical, o
a cantar.
 Desarrolla inclinación por los juegos de análisis, los dobles sentidos y los juegos
de palabras.
 Aprende a escribir correctamente en tu lengua nativa. (Una cantidad sorprendente
de programadores, incluyendo a los mejores que conozco, son capaces escritores
y buenos redactores, no son solo técnicos en cosas de computación.)

Cuanto más de estas cosas hagas, es más probable que poseas material natural para ser
un programador.

Finalmente, unas pocas cosas que no debes hacer.

 No uses un nombre de usuario grandioso y bobo en Internet.


 No seas egoísta con tus conocimientos.
 No te metas en las discusiones airadas de computación y programación (ni de
ninguna otra cosa) en ningún lado, en especial la Internet.
 No te autodenomines 'cyberpunk' ni 'hacker' ni adoptes título llamativos o
importantes para aparentar estatus, ni desperdicies tu tiempo en nadie que lo
haga.

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 14 de 15

La única reputación que ganarás con esas costumbres es la de un engreído, egoísta y


ruidoso. Los profesores, compañeros de clase y de trabajo, y los mismos programadores
tienen una gran memoria -- puede tomarle años olvidar a los tontos.

7. Otros recursos
How To Become a Hacker de Eric S. Raymond, sobre cómo llegar a ser uno de esos
enigmáticos ciudadanos del ciberespacio. Analiza la actitud y las habilidades básicas de
los hackers, reflexionando sobre una serie de aspectos relativos al tema, que nos
conciernen en gran medida pues los hackers son, ante todo, programadores. De hecho,
sirvió de inspiración para este documento. Una traducción al español de este escrito
está aquí

Cómo ser un Programador. Un Resumen Corto, Comprensivo y Personal de Robert L.


Read, es un excelente complemento de este. Una perspectiva personal de lo que debería
ser un programador, basado en la experiencia personal de su autor y todo lo que una vez
quiso que le dijeran. Incluye gran cantidad de consejos de vital importancia para quienes
realmente desean llegar a ser buenos programadores, pero también se enfoca
principalmente en cómo funcionar dentro de un equipo de programación.

Así que quieres ser un Programador... que apareció en AnalogX. Un entretenido artículo -
-aunque un poco exagerado-- de lo que se requiere para ser programador.

El Arte de la Programación en Unix también de Eric Raymond. El primer capítulo del libro
The Art of Unix Programming. Su contenido es gran importancia para la comunidad de
programadores, y en particular para los principiantes en el arte de la programación.
Aunque el libro se enfoca en la programación en Unix, los principios y reglas que aborda
se aplican fácilmente a la programación en general, independiente de la plataforma.

Rick Moen y Eric Raymond escribieron el documento How To Ask Smart Questions
(Cómo hacer preguntas inteligentes) cuya traducción al español está aquí. Te ayudará a
buscar asistencia en una forma astuta para no ser ignorado, humillado o excluido de los
foros por lo ingenuo de tus dudas.

Por último, revisa de nuevo este documento. Encontrarán muchos enlaces hacia otros
recursos que te pueden servir de mucho.

8. Preguntas frecuentes (PF)


¿Qué necesito para aprender a programar?

 Deseos de aprender y pasión


 Gran motivación e iniciativa
 Gran tenacidad o terquedad
 Practicar y experimentar

¿Me enseñarías cómo programar?


Desafortunadamente no tengo ni el tiempo ni la energía para hacer eso por ahora; mis
propios proyectos, mi trabajo como programador y la docencia consumen el 110% de mi
tiempo.

Aún si pudiera hacerlo, la programación es una actitud y habilidad que debes aprender
por ti mismo. Verás que los programadores de verdad quieren ayudarte, pero no te
respetarán si comienzas a rogarles que te alimenten en la boca con todo lo que saben.
Aprende unas cuantas cosas primero. Muéstrales que estás intentándolo, que eres capaz
de aprender por tu cuenta. Luego ve, habla con los programadores y házles tus
preguntas.

¿Dónde, entonces, pueden enseñarme a programar?


En cualquier centro de computación que imparta cursos de programación para
principiantes. Sin embargo, lo mencionado sobre leer y practicar por tu cuenta para
complementar tus conocimientos y acelerar la curva de aprendizaje sigue siendo válido.
En esos lugares, como en la universidad te enseñarán únicamente lo básico. El resto
corre por tu cuenta, y cobra vital importancia el ser autodidacta. Puedes luego continuar
con otro curso avanzado de programación en esos mismos lugares o seguir por tu cuenta
empleando una PC, manuales y otros lenguajes.

Puedes ir en la Universidad también, excepto que ahí es obligatorio llenar requisitos para

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006
NeoProgramadores - Cómo Convertirse en un Programador Página 15 de 15

inscribirte en una carrera. Sin embargo, estarás en el centro de lo bueno: estudiarás


mucha teoría de programación, varios lenguajes diferentes, técnicas de programación,
tendrás muchos ejercicios y proyectos que hacer, compañeros de un nivel similar o
superior con los cuales trabajar y aprender, etc. Esto, además de las bibliotecas públicas,
los laboratorios y docentes de nivel a los cuales recurrir.

¿Dónde puedo encontrar algunos verdaderos programadores para comunicarme


con ellos?
En las universidades, empresas, convenciones sobre tecnología y foros de la Web. Tener
también amigos de cursos superiores al tuyo o que sean programadores profesionales o
docentes de computación con algo de tiempo libre a quien hacerle preguntas y pedirles
ayuda es una bendición. Es aconsejable también hallar otro programador novato con
quien puedas compartir experiencias y entrarle juntos a la empresa de aprender a
programar.

¿Cuál lenguaje debo aprender primero?


Python o Pascal si no los conoces ya, por ser metodológicos, fáciles de aprender y por
todas las razones expuestas en este documento. Existen muchos sitios y manuales sobre
estos lenguajes en Internet de donde puedes obtener documentació, ejemplos y
ejercicios propuestos. Navega en la Red y verás el caudal de información que existe al
respecto.

Cuando hayas aprendido uno de estos lenguajes y estés listo para continuar con tu
aprendizaje de la programación, te recomiendo que sigas con C, ya que es realmente
importante. Aunque es más eficiente y poderoso, tiene una sintaxis un poco diferente.
Pero si te urge aprender un lenguaje específico, te sugiero que sigas con uno afin. Por
ejemplo, si lo que desea aprender es Visual FoxPro, aprenda primero FoxPro, su
antecesor; si desea aprender Visual Basic, primero aprende Access, ya que VB lo utiliza;
si desea aprender a programar en Internet, primero aprenda HTML, luego JavaScript y
por último Java. Siga esta lógica (aprender lo básico antes de lo complejo) para no
distorsionar ni afectar tu proceso de aprendizaje.

¿Por dónde puedo empezar? ¿Dónde puedo conseguir un lenguaje de


programación?
En este sitio puedes descargar compiladores gratuitos, entre ellos Python y Pascal y por
toda la Red. Para ser un programador necesitas motivación, iniciativa y la capacidad para
educarte a sí mismo. Comienza ahora.-

Ir al inicio de este artículo | Versión imprimible


Ir a la Página Principal de NeoProgramadores

http://www.galeon.com/neoprogramadores/proghow2.htm 24/10/2006