Con el paso del tiempo  administrando un grupo en facebook de programadores, me he dado cuenta de una serie de actitudes que son característicos de los novatos en el mundo de la programación. Novato no siempre es malo, por ello agregaré una subclasificación a esta lista: NOVATOS NORMIES (o normalones, sin talento ni perspectivas en este mundo). Si coincides con varias descripciones que abajo menciono, por favor, trata de corregirlas y así tomar el camino del bien. 

Preguntar en foros de internet, sin antes haber intentado resolver el problema. 

El peor error para todo novato es no esforzarse por aprender las bases de la programación. ¿Creen acaso que los programadores aprendimos por arte de magia? No. Todos tenemos que esforzarnos a diario para resolver problemas, idear soluciones y aplicar algoritmos existentes, o modificarlos. Pero esto no es posible si no lo intentamos y nos esforzamos antes. Las formas más comúnes de iniciar un hilo donde una persona floja intenta que le resuelvan la tarea comienza con(o contiene):

  • ¿Me pueden ayudar a resolver este ejercicio? (con foto de un trozo de papel con el problema).
  • Mi maestro no nos explica, no le entendía a....
  • He intentado resolver esto pero nada mas no puedo.

Pero ¡ninguno de ellos pone sus avances o demuestra que se ha esforzado para resolver el problema! Si veo una publicación así, inmediatamente pregunto por sus avances. El 90% de las veces prefieren no responder y hacer la misma pregunta en otro foro o grupo. 

¡No usar Google!

EL 95% de las preguntas que tu tienes, seguramente ya se ha hecho por alguien más en internet. Incluso algunas bastante complejas. Google (o cualquier buscador) es una herramienta formidable para apoyarnos a encontrar información y para contestar nuestras inquietudes. Pero muchos noobs ni siquiera lo intentan. Parecería ser que en un tiempo donde la información está al alcance de las manos de cualquiera, las personas se han vuelto más perezosas. Mi recomendación es: primero hagan sus preguntas a google, si no encuentran nada relevante o no entienden la respuesta, usen los foros. Pero no siempre habrá alguien que use su tiempo en ustedes para resolver las dudas que ya se han contestado mil veces en internet. 

Creer que saber muchos lenguajes te hace mejor programador.

Lamento informarles pero: no, saber muchos lenguajes no es saber programar bien. Lo importante en programación es entender la lógica de programación, tener la capacidad de plantear solucones a los problemas a los que nos enfrentamos. Normalmente, al enfrentarnos a diversos problemas, tenemos que usar diversos lenguajes. Pero si sabemos un lenguaje de cada paradigma de programación, sabremos programar en cualquier lenguaje. Nada más requerimos de la referencia del lenguahe cerca de nosotros y listo. 

Claro que hay lenguajes con características muy específicas, los cuales nos tomarán más tiempo dominar. Hablo de C o Perl. Pero estos casos son los menos. Mejor dedique su tiempo en mejorar su lógica y menos en abarcar mucho. 

No saber algoritmia o teoría de la computación.

Muchos programadores no valoran la importancia de la teoría. La teoría nos salvará de muchos errores de programación, problemas de velocidad y nos dejará plantear mejores soluciones. Sin la teoría tendríamos que reinventar la rueda de cero. No lo haga. Buenas bases hacen a un buen programador. (Nos ayudará entender porque es mejor usar QuickSearch que Bubble ;D )

Usar compiladores de museo: Turbo C, Turbo Pascal, etc.

 Un mal maestro es muchas veces un gran obstáculo para los alumnos. Muchos de nosotros aprendimos a programar en los 90's con los famosos tubos de Borland, sobre MS-DOS. Pero aprender con estos compiladores de museo hoy en día es un gran error. Son los maestros los que, al no actualizar sus conocimientos, hacen perder el tiempo a sus alumnos. Turbo C/C++ utiliza un estándar viejo y obsoleto del lenguaje. No incorpora los nuevos estándares y genera código para arquitecturas de 16 bits (las últimas versiones para 32). Mejor use software libre: GCC y sus interfaces son la mejor opción. Sin costo, usted podría programar con uno de los mejores compiladores modernos. (Claro, sin conio.h ¿Por qué esa insistencia en usar conio.h?)

Pensar que lo mejor del mundo es Programación Orientada a Objetos.

No todo es POO. El hecho que sea la moda, no significa que sea más moderno o superior. Existe una gran cantidad de programas modernos que usan programación estructurada o funcional como su paradigma. POO es útil en ciertos casos. Hay que aprender cuando usarlo y cuando no. Pero, no es el único paradigma válido. Vea los programas invaluables hechos en C (sin POO)

Creer que eres un experto. 

Ningun expero debe creer que es un experto. Siempre hay mucho que aprender. Sea sencillo, ayude a los que saben menos y tenga siempre un espíritu de aprender más. Nunca teminamos de aprender, incluso si somos buenos en algo. Problemas fundamentales de la computación siguen si ser resueltos. Ni los máximos expertos de nuestro campo saben como resolverlos, así que no hay de qué presumir. Si alguien es bueno, los demás lo reconocerán, pero nosotros sabremos la verdad: aún nos falta mucho. 

Pensar que lo peor que puede pasar es que tu programa no compile. (Corolario, decir que el ; es un problema).

Hacer que compile el programa no es lo más difícil. Lo más dificil es:

  • Que nuestra lógca sea la correcta para resolver un problema.
  • Encontrar errores en tiempo de ejecución, como fallos de segmentación, lagunas en memoria, o bugs muy ocultos. 

Encontrar estos problemas y resolverlos no es tarea sencilla. Una vez que comenzamos a usar valgrind y vemos un desastre con punteros, sabremos que el ; era un juego de niños. 

HTML no es un lenguaje de programación

El chiste se cuenta sólo. (Si no entendió, use google).

Pensar que el mundo es un IDE. 

 En las batallas de "Qué editor es mejor", muchos no conocen la historia de estas guerras, y menos saben que un IDE no es un editor de textos. Les recomiendo usar editores como VIM o EMACS para abrir sus horizontes. Quizá se conviertan a nuestra religión. P.D.: Las guerras de editores/IDE's nunca terminarán, pero habemos religiosos que defenderemos hasta la muerte nuestro editor. Vea VIM vs Sublime

 

Algunos extras:

  • Pensar que estudiar una ingeniería o programación te hace superior a otras carreras.
  • Querer hacer mega proyectos de cero. No invente la rueda de nuevo. 
  • No usar GIT!
  • No comentar el código!
  • No querer aprender inglés.
  • + lo que se sume. 

Share This