domingo, 5 de junio de 2011

Los 10 consejos para un Programador


Saludos CyberNautas!!

Eres o quieres ser Programador? bueno, si tu respuesta es un maravilloso SI!. Debes saber que antes de iniciar en el grandioso mundo de la programacion, pensamos "Waoo, esto de programación es dificil, y hay que pensar mucho!". bueno no te voy a hablar mentiras, xD claro que hay que pensar...

Pero no te preocupes, el el objetivo de este Post es  darte algunos consejos que te ayudaran en todo este camino de la programacion y no solo de la programacion, esto podemos aplicarlo a cualquiera de las areas a las que te dediques!

Sea cual fuere el lenguaje de programación que utilices, existen métodos de trabajo que, cuando te acostumbras a ellos, comienzas a descubrir que todo se vuelve más fluido, más sencillo y más rápido. Es allí cuando dejas de perder el tiempo en cosas sencillas o elementales y pasas a utilizar el tiempo para crear y concebir con eficiencia tus mejores trabajos.

1 - El Datasheet del microcontrolador:

Una de las mayores razones de confusión y de complicaciones al desarrollar un proyecto es la falta de información del microcontrolador que se desea utilizar. Las hojas de datos son los documentos más importantes que debemos acopiar al momento de decidirnos e inclinarnos por un determinado tipo de microcontrolador.

Por ejemplo, si en tu diseño vas a utilizar un PIC 16F877A, debes imprimir, leer y recurrir a sus hojas como si fuese El Libro de la Verdad Absoluta. Todas las respuestas están allí. Todo lo que necesitas saber está allí. No te permitas iniciar un desarrollo sin haber leído las hojas de datos del microcontrolador que utilizarás. Un registro mal “seteado” y nada funcionará. Desde la configuración inicial del dispositivo (fuses), pasando por los registros de los ADC (Analog to Digital Converter) o los módulos CCP que te permiten obtener señales PWM, hasta la mismísima configuración del reloj o clock del sistema. Todo está allí.


2 - Piensa en tus objetivos, sueña con ellos:

¿Qué deseas lograr con tu desarrollo? Pensar en la idea final nos suele llevar a visualizar en la mente el proyecto terminado y consolidado en un prototipo funcionando a la perfección. ¿Qué componentes adicionales necesitaría? ¡Ah! ¿Tengo esos componentes? Luego de que ya hayas dado vuelta todos los estantes y cajones buscando ese material que te faltaba, comienza a anotar los que te hagan falta, los que no tengas. No abuses de tu memoria para recordar todo lo que necesitas comprar en la tienda; coloca en ella tu desarrollo y utilízala como un microcontrolador: optimiza este recurso y utilízalo sólo para ampliar y perfeccionar tu proyecto. Los materiales que hacen falta no deben ocupar espacio en tu mente; haz un listado minucioso y detallado para no hacer dos viajes y listo.

3 - No quieras correr antes de empezar a caminar:

Uno de los errores más comunes de los que recién se inician es querer obtener más de lo que pueden llegar a comprender. No intentes hacer como primer trabajo un cartel luminoso de LEDs para venderlo en los estadios de fútbol y volverte millonario la semana próxima. Ni siquiera pretendas construir y empuñar el sable láser de Obi-Wan Kenobi y ser la envidia del colegio. ¡No, no!


Si no tienes noción de la complejidad del proyecto que emprenderás es porque no has leído o interpretado el punto anterior. Las frustraciones provocadas por los fracasos en los primeros intentos aniquilan la confianza en nosotros mismos y arruina toda la diversión que significa construir y materializar nuestros sueños mientras vamos aprendiendo. SIEMPRE comienza con lo más elemental y, a medida que los éxitos comiencen a llegar, puedes ir agregando complejidad a los diseños. Además, cualquier programador experimentado te dirá que su primer trabajo fue escribir “Hola Mundo” en cualquier lenguaje!  Quien diga que no, te miente cobardemente. 

4 - Corta la pizza en porciones, no la comas entera:

Por más simple que sea un proyecto, siempre es bueno dividir en bloques o pasos la tarea a realizar. Silbar y comer maní son cosas muy habituales y sencillas de hacer, pero concretarlas al unísono no es algo fácil. Organízate y prepárate a trabajar por partes. Primero ESTO, luego ESTO OTRO y al final AQUELLO. Intentar hacer todo a la vez o en forma desordenada sin un patrón de acción puede ocasionarte errores al momento de construir el proyecto.

5 - No sólo la fuerza te guiará, deja que el Sr. Spock también lo haga:

Tus inspiraciones serán una avalancha de imágenes y pequeños trailers en tu imaginación, pero en el teclado deberás actuar de manera puramente lógica. El número uno, nos guste o no, está antes que el dos. Primero el cero, luego el uno, después el dos, el tres y así en adelante. Siempre es así y nunca cambia esa realidad, a pesar de las paradojas de Ariel Palazzesi. Los programas funcionan así. Obtenemos la variable A y la transformamos en B; le sumamos C y el resultado se muestra en el paso D, y así se encadenan los procesos individuales que desembocan en el resultado final del programa. Nada es al azar, ni porque se le ocurra a Max Ferzzola. Los programas siguen un razonamiento lógico y, por lo tanto, los microcontroladores también. Si tu mente se acostumbra a razonar de esta manera, programar será un juego de niños para ti.

6 - El pseudo-código también es lógico:

Te puede parecer arcaico, poco profesional y hasta una pérdida de tiempo, pero escribir en un papel todos los pasos que seguirá tu programa puede ser una ayuda muy importante mientras vas redondeando la idea final.

Por ejemplo:
  • Necesito una variable (A) que contenga un valor 15 al iniciar.
  • También otra (B) que valga 27 en el mismo momento.
  • Después las sumo y coloco el resultado en una tercera variable que se llamará C.
  • Las muestro en el display. (en pantalla).
En un programa en lenguaje C++ eso resulta ser:

Int A= 15;
Int B = 27;
Int C = A+B;

cout<<C;               //Mostrar en pantalla el valor de la variable C.

Escribir la secuencia de acciones que queremos que nuestro programa realice nos permitirá modelarlo a nuestro gusto y requerimiento, además de optimizarlo.
Cuando lo aprendes en la escuela, te lo enseñan como Diagrama de Flujo y puede que con el tiempo te olvides de él, pero cuando lo aprendes por ti mismo, razonando los pasos a seguir, no lo olvidas nunca.


Algo que puede parecer muy intrascendente, pero que es de vital importancia, es “comentar” cada línea de código que escribamos. Aunque creamos que es inútil, si no lo haces, terminarás arrancándote los cabellos una semana después al no darte cuenta qué es lo que quisiste colocar allí o por qué llegaste a ese lugar dentro del programa. Que hoy los comentarios te ocupen 10 renglones por cada línea de código significará que el próximo mes te ahorres 10 horas de trabajo intentando descubrir qué intentaste hacer allí.

7 -Organiza y guarda estructuras pre-armadas:

A medida que vayas utilizando un microcontrolador en particular (siempre seleccionamos uno “preferido”) y comiences a utilizarlo reiteradamente, te resultará cómodo tener a mano una estructura estandarizada de conexiones y bloques de programas.

Cuando comienzas a darte cuenta que muchos de tus diseños repiten pasos o bloques, allí empiezas a armar tus “templates” que son plantillas pre-armadas de cosas que se reiteran habitualmente. Consérvalas y organízalas en lugares prácticos y de fácil acceso. Te servirán para ahorrar mucho tiempo al momento de iniciar el diseño de un nuevo proyecto. Aprovecha el trabajo que ya tienes hecho y que sabes que funciona.

8 - No preguntar hasta agotar las posibilidades de conocimiento:

En la mayoría de los foros o grupos de correo que aglutinan a miles de entusiastas de los microcontroladores sería muy fácil registrarse gratis, realizar consultas y, una vez que nos brindan las respuestas, seguir adelante. Además, en esos lugares siempre hay gente bien dispuesta a brindar ayuda. Trata de no hacerlo hasta el final de tus posibilidades. Lee las hojas de datos de los materiales que te están complicando el diseño, busca dentro de los foros, utiliza Google, lee algún libro relacionado al tema, busca hasta el cansancio en la ayuda del programa (Help) y, como último recurso, pregunta a otros.

Si ante el menor inconveniente acudes a otras personas para que te resuelvan los problemas, nunca aprenderás lo suficiente. Además, cuando te den la solución a tu problema, no sabrás entender que dicha solución sólo la pudiste obtener allí porque no tienes idea de lo que buscas. Todos siempre necesitamos una ayuda hasta en la tontería más insignificante, pero la comodidad y la holgazanería de que otros te hagan el trabajo no es un buen negocio para un programador. Por último, si pides ayuda, demuestra haber hecho tus intentos de solución contando lo que has realizado y los resultados que has obtenido. Si no haces nada, y sólo te limitas a pegar el enunciado que te han dado tus profesores, no esperes que alguien te ayude.

9 - La frustración es el enemigo a vencer:

Trata de no abandonar los proyectos porque algo no funcionó como esperabas. Descubre en esas oportunidades un reto o un desafío antes que un fracaso. Siempre es bueno mantenerse tranquilo y calmo a pesar de que nuestros circuitos echen humo por los cuatro costados. Todo error que se busca, al encontrarlo y solucionarlo, es un aprendizaje que queda grabado. Puede sonar muy extraño pero la asimilación del conocimiento es directamente proporcional al daño provocado. Es decir, cuanto más grave y más caras sean las roturas, mayores serán los aprendizajes de saber qué es lo que NO se debe hacer y por qué suceden algunas cosas.

No fue Dios el culpable de que algo no nos funcionara, sino que somos nosotros los que hemos metido mal algún codigo o logica. Un buen paseo, una buena caminata y al día siguiente retomar el trabajo es una de las mejores formas de vencer la frustración. Por eso, siempre hay que revisar, revisar, revisar y volver a revisar todo en la prueba de escritorio antes de ejecutar el programa. Nada debe dejarse librado al azar y mucho menos restarle importancia creyendo que hemos hecho bien las cosas. Todos somos humanos y podemos cometer el error más infantil que puedas imaginar. No olvides que muchas veces una parte del éxito es una sumatoria de aprendizajes brindados por los fracasos.




10 - Google es el mejor amigo del hombre (programador):

 Y hemos llegado a la mejor de todas! xDD... nuestro fiel y leal amigo! Sant Google..

Si lo que buscas no está en Google, es porque no existe y eres un pionero en la materia. Toneladas de material que puede ayudarte está allí en Google esperándote para poner en marcha tu proyecto. En castellano, en inglés o en arameo antiguo, lo que necesites estará en texto, imágenes y video. Nunca dejes de consultar en Google antes de preguntar tus dudas a otros.

Conclusiones
A cada momento puedes descubrir un nuevo modo de estructurar un programa. Disfruta de comando que puedas hacer brillar y no lo tomes como algo más; detente y tómate un tiempo para analizar tu buen trabajo. Sin caer en narcisismos banales, aprovecha cada buena rutina de programa para limpiar de tus hombros los fracasos y las tristezas de los códigos que no te funcionaron. Siempre nos parece que los fracasos son demasiado pesados. Solo en tu fuerza interior está la manera de hacer que las alas que te brinda la concreción de un buen trabajo inclinen la balanza y venzan el peso de las frustraciones.

Olvídate de frases bochornosas como “Pues es raro…”, “Nunca había pasado antes”, “Pues ayer funcionaba…” o el clásico y nunca bien ponderado “Debe ser un virus…”. Si no enfrentas el problema, nunca podrás vencerlo, y si no abres tu mente y te cierras con terquedad sin intentar realizar otros caminos, nunca esperes resultados diferentes. 

Si has leído hasta aquí y eres un programador con experiencia, seguramente tendrás más consejos para aquellos que recién comienzan. Te invitamos a que los agregues en los comentarios. Gustosamente leeremos tus aventuras y desventuras como programador. Recomendación: No cuentes sólo las ganadas.


Fuente



Bendiciones!...


1 comentario:

  1. Seleccione la herramienta Lápiz y haga clic en la mesa de trabajo en cualquier lugar para colocar un punto de anclaje.https://epicpublishiing.com/como-crear-y-corregir-lineas-rectas-en-illustrator/

    ResponderEliminar