Aprender a programar

Etiquetas

Hoy no comentaré sobre una herramienta o sistema en particular, si no que me abocaré a detallar uno de los procesos que con más frecuencia escucho en el “mundillo” de la informática, sobre todo por parte de los que se quieren iniciar en el mundo de la programación de sistemas de información.

Muchos estudiantes, recién egresados o simplemente personas con curiosidad y gusto por la tecnología; suelen buscar y buscar por la red manuales de programación en distintos lenguajes, y preguntan en foros, chats,etc; sobre cúal sería el mejor lenguaje para aprender a programar o cual lenguaje es mejor dentro del mercado laboral.

La programación es una habilidad que se adquiere con el hábito (como cualquier otra…) y según mi punto de vista, basado obviamente en la experiencia propia, enlistaría los puntos que considero más importantes a considerar, para poder iniciarte en la programación y que puedas tener un futuro en ella sin necesidad de encasillarte en un solo lenguaje:

  • Juegos de destreza mental: rompecabezas, cubos rubik, ajedréz,etc; son ideales para ir desarrollando una lógica y habilidad para saltear obstáculos, encontrar fallas, aprovecharlas y resolverlas.
  • Algoritmos: incluye diagramas de flujo y pseudo-códigos, que simplemente son, la representación gráfica o escrita, respectivamente, de un conjunto de pasos para lograr un objetivo. Estos son MUY importantes para tener las bases para poder programar. Es de hecho la parte donde te debes enfocar mayor tiempo hasta tenerla bien dominada, ya que un algoritmo es prácticamente un código de programa, pero digamos, traducido en tus propias palabras…
  • Manuales: ahora si, ha llegado la hora de comenzar a hojear esos manuales de lenguajes de programación, obviamente buscando aquellos que te lleven de la mano desde el típico hola mundo hasta grados más avanzados. No hay un lenguaje mejor para aprender, pero como aún estamos en la época en que el paradigma de Programación Orientada a Objetos, podrías iniciar con lenguajes como: PHP, Java, C++,etc (pero prácticamente cualquiera podría servir). Junto con pegado iría que al seleccionar algún lenguaje, consigas obviamente un
    • Editor de texto o un IDE (Entorno de desarrollo integrado) y un compilador o interpretador del lenguaje que elegiste, por ejemplo: si elegiste PHP, podrías buscar un IDE como Eclipse, que te serviría para hacer seguimiento de variables y puedas ver como va ejecutándose tu código en tiempo real, o puedes utilizar por ejemplo Notepad++ que trae funcionalidades de identación del código y resalta las sintáxis por colores.
  • Una vez que escribas tu primer “Hola mundo!” y hayas realizado algunos cuantos ejemplos hasta terminar con el nivel básico del lenguaje que hayas seleccionado. Podrías comenzar a buscar algún programa ya hecho para bajártelo de internet, obviamente un programa con licencia que te permita ver y modificar el código del programa, por lo cuál recomendaría software libre (aunque otros tipos de licencia también te permiten visualizar y modificar el código pero varian sus restricciones en cuanto a si lo piensas compartir). Así comenzarías a explorar el funcionamiento del programa que alguien más ya hizo y comienzes a tratar de entender cómo lo hizo. Obviamente al ser un principiante sería demasiado pesado que trataras de entender todo el programa, pero podrías elegir algún módulo o sección del mismo, por decir un número arbitrario, quizás un trozo de código de menos de 100 líneas de código y comenzar a ver hacia donde hace llamados, que hace con las variables,etc; para esto te podrías apoyar con herramientas como las que describí en el paso anterior o alguna otra que encuentres. Una vez que comprendas ese módulo, podrías tomar la decisión de buscar hacer pequeñas modificaciónes y lo intentes a base de prueba y error.
  • Utiliza “mensajes”: una práctica muy común al probar cambios, es ir poniendo mensajes en el código, donde muestres el valor que van teniendo tus variables a lo largo del mismo, cuando entran a alguna función,etc… para que sepas como va siendo el flujo de el programa con tus cambios y puedas detectar si se está comportando como esperabas o tienes que hacer algunos ajustes.
  • Pregunta y busca: como dicen “el que busca encuentra”, ahora si llega la hora de que comienzes a preguntar en foros, chats, buscadores (te sorpenderías de lo poderosos que son los buscadores a la hora de encontrar soluciones, incluso simplemente copiando y pegando códigos o mensajes de error en sitios web de búsqueda) , en libros,blogs ;) , con amigos conocedores del tema,etc… para que vayas aumentando tus conocimientos e incluso puedas aportar en un futuro no muy lejano, tus propias soluciones a las dudas de otros!

Manos a la obra!

Grupo para activistas del software libre

Los invito a unirse al grupo de activistas de software libre, que he creado, con el fin de intercambiar experiencias, ideas y propuestas para ayudar a que las personas aunque no sean de perfil informático, comprendan que el software libre es mucho más que una filosofía de informáticos, si no que es parte escencial para una sociedad más justa, una sociedad en libertad.

Link: Activistas de software libre

Administrando proyectos

Etiquetas

Ahora damos un paso más en cuestión de control de nuestras tareas, con una gran herramienta que nos permitirá utilizar características básicas para llevar la administración de nuestros proyectos. Su nombre es Planner.

Nos permite crear tareas por medio de gráficas de Gantt, ver el porcentaje avanzado, relacionar tareas de acuerdo a si depende el comienzo de una con la finalización de otra y ver a que recursos están asignadas las tareas.

Otros aspectos es que por ejemplo, podemos ver cuanto está costando individualmente cada recurso asignado por hora, y ver cuanto esta costando cada tarea.

También podemos identificar los recursos asignados por grupo para mejor organización.

Es posible importar archivos XML para cargar el proyecto que deseamos administrar y podemos optar por exportar en otros formatos como HTML.

Sitio oficial de Planner: live.gnome.org/Planner

Administra tus usuarios y claves

Etiquetas

Bueno, siguiendo con la “saga” de herramientas de administración para el usuario, ahora voy a comentarles sobre una herramienta que nos permite tener almacenados en una base de datos encriptada, nuestros usuarios y passwords. Esta es KeePassX.

Simplemente necesitamos recordar 1 password, que sería con el que accederemos a la base de datos e incluso si queremos agregarle otra capa de seguridad, se puede generar un archivo con el cual se validará nuestro acceso.

Entramos al menú File->New Database que es donde se nos solicitarán los datos comentados anteriormente.

En el menú Entries->Add New Entry… podemos crear un registro para cada uno de nuestras cuentas, identificarlas por un titulo y ordenarlas por grupos (previamente creados, ya sea los predefinidos o crear uno por medio del menú Groups->Add New Group) y si así lo deseamos, también podemos pedirle al sistema que genere una contraseña por nosotros.

Además podemos ocultar o mostrar las contraseñas en pantalla cuando lo decidamos.

En el panel quedarían listadas por grupos nuestras cuentas, y para usarlas, podemos simplemente utilizar los iconos de usuario y password para copiarlos en el portapapeles y pegarlos.

Existen versiones para otros sistemas operativos además de Linux, en el sitio web de descarga: keepassx.org

Administra tu conocimiento

Etiquetas

Cuando andamos navegando de blog en blog, de foro en foro, de sitio en sitio;  en busca de alguna herramienta, código o tip para sacar adelante alguna tarea o simplemente para aprender algo nuevo; podemos hacer varias cosas para guardar el historial de dicho conocimiento, como agregarlo a favoritos, tenerlo en nuestra lista de RSS’s,etc.

Aquí les comento de una herramienta que nos permite administrar dicho conocimiento a manera de software tipo Wiki. Su nombre es Zim Desktop Wiki.

Para descargarlo podemos hacerlo desde el repositorio, que en mi caso es el de Trisquel, que es una distro Linux 100% libre, basada en Debian.

Se administra bajo un concepto de carpetas jerárquico, con el cual se pueden crear páginas y sub páginas, y crear enlaces entre ellas simplemente al crear un texto con enlace o enlazar un texto estableciendole el enlace con el nombre de una página existente.

Contiene tanto herramientas de formato, estilo wysiwyg(What You See Is What You Get), como otras opciones tales como agregar checkboxes, calendarios y enlazar hacia cualquier tipo de archivo.

Una opción interesante es que podemos visualizar el contenido como un sitio web e incluso exportar los archivos como HTML.

Pueden visitar el sitio oficial para más detalles: zim-wiki.org

Nueva aventura

Etiquetas

Soy asidúo usuario de software libre, sobre todo de manera hogareña con sistemas operativos y aplicaciónes 100% libres como Trisquel.

Mi motivación es seguir impulsando la adopción de las tecnologías libres y su filosofía.

Por supuesto aquí les compartiré tips y noticias sobre todo lo relacionado a software libre que tenga a mi alcance.

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.