0% encontró este documento útil (0 votos)
99 vistas31 páginas

Cómo Convertirse en Un Programador

Este documento proporciona una guía para convertirse en un programador exitoso. Explica que un programador resuelve problemas utilizando la programación de computadoras como herramienta. Detalla las habilidades básicas necesarias como matemáticas, inglés, y conocimientos de hardware y software. También describe la actitud fundamental de un programador como resolver problemas, evitar reinventar la rueda, y ser creativo. El documento concluye explicando cómo los programadores forman una comunidad dedicada a utilizar la tecnología para automatizar tareas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
99 vistas31 páginas

Cómo Convertirse en Un Programador

Este documento proporciona una guía para convertirse en un programador exitoso. Explica que un programador resuelve problemas utilizando la programación de computadoras como herramienta. Detalla las habilidades básicas necesarias como matemáticas, inglés, y conocimientos de hardware y software. También describe la actitud fundamental de un programador como resolver problemas, evitar reinventar la rueda, y ser creativo. El documento concluye explicando cómo los programadores forman una comunidad dedicada a utilizar la tecnología para automatizar tareas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

Cómo Convertirse en un Programador

Versión 2.0

Por J. F. Díaz ([email protected])


Lic. en Ciencias de la Computación

Inspirado en el documento How To Become a Hacker (Cómo


convertirse en un hacker) 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.

Contenido
1. ¿Por Qué Existe Este Documento?
1.1 ¿Qué es un programador de computadoras?
1.2 Características de los Programadores
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
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
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 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
enhttp://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 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 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


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
deordenador, 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 ysoftware 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 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 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
habilidadclave 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, 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.

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; 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 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, 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

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.

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 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.-

También podría gustarte