Archivo

Posts Tagged ‘programación’

11 pasos para convertirse en un mejor programador

Categorías: Desarrollo Etiquetas: ,

Recomendación libro sobre jQuery: «Beginning jQuery»

¿Qué es jQuery?

Jquery una utilísima librería para Javascript. Según la Wikipedia:

«jQuery es una biblioteca de JavaScript que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web.»

jQuery en Wikipedia

«Beginning jQuery»Beginnigjquery

«Beginning jQuery» de Jack Franklin está destinado a desarrolladores sin conocimientos (o muy bajos) en jQuery, con unas pequeñas nociones de Javascript.

Basado en ejemplos (desde declarar una variable jQuery, a implementar un plugin de una llamada AJAX a una API, o un visor de imágenes), de lectura rápida y fácil.

Extra – Curso básico de Javascript

Si estáis interesados en comenzar con Javascript (o incluso aprender las nociones iniciales de programación) os recomiendo el curso de Javascript de Codecademy. Si ya sabes programar te servirá para ir cogiendo la sintaxis de Javascript (y lo finalizarás en 2 sentadas), y si no sabes programar, a comenzar a aprender (en este caso llevará más de 2 sentadas…).

Actualización 1: Otra forma de empezar con jQuery:

Actualización 2: otra buena introducción a Javascript:

 

Citas – La dificultad de programar…

Al menos una de las importantes:

«Any fool can write code that a computer can understand. Good programmers write code that humans can understand. »

Martin Fowler

Categorías: Citas Etiquetas: ,

Recomendación libro sobre patrones de diseño: «Head First Design Patterns»

El libro «Head First Design Patterns» (de la editorial O’Reilly) aunque ya tiene unos años, me parece una de las mejores formas de adentrarse en el mundo de los patrones de diseño.

Cover of "Head First Design Patterns"

Cover of Head First Design Patterns

Los patrones de diseño constituyen un punto fundamental de estudio si quieres programar decentemente.

¿Qué es un patrón de diseño?

Un patron de diseño es una arquitectura específica orientada a resolver un problema conocido, buscando optimizar la calidad del diseño, permitiendo la ampliación del mismo realizando la menor cantidad de cambios en el resto del código.

Como indican en el libro, los patrones de diseño son un conjunto de herramientas que debemos tener en la cabeza para utilizarlas cuando sea apropiado.

¿Por qué «Head First Desing Patters»?
El libro es bastante ameno, sencillo y rápido de leer. Está muy orientado a ejemplos, y va ofreciendo diferentes explicaciones a la resolución de cada problema, de modo que se comprenda bien el por qué de cada diseño. En el capítulo de introducción explican la metodología que han seguido en su redacción,  buscando mejorar la atención del lector para facilitar su lectura (y está bien planteado, por eso se deja leer con facilidad).

Además de patrones de diseño, va acumulando, y demostrando, un conjunto de buenas prácticas en el diseño de aplicaciones orientadas a objetos (que como todos sabemos, se basan en: la encapsulación, herencia y polimorfismo), como por ejemplo:

  • Encapsular lo que varía.
  • Favorecer la composición sobre la herencia.
  • Programar sobre interfaces, no implementaciones.
  • Las clases deben ser abiertas para la extensión, pero cerradas para la modificación.

El libro me parece muy bueno para quien se está iniciando en el estudio de patrones de diseño, o para quien tenga pocos conocimientos sobre el tema, para un progrador senior seguramente se le quedará un poco corto.

¿Qué patrones abarca?

No trata todos los patrones de diseño, pero si los principales. Éstos son los patrones que están incluidos en el libro (os enlazo su definición en la Wikipedia):

Cómo podéis ver no he listado el archiconocido Modelo – Vista – Controlador (MVC), que no deja de ser una combinación de varios de los patrones incluidos en la lista (el libro tiene un capítulo dedicado a la combinación de patrones donde se detalla en profundidad el MVC).

Para programar bien, además de mucha mucha práctica, hace falta leer, leer, y leer… este puede ser un buen libro para empezar.

Yo estudio en el MIT… ¿y tú?

Una vez más, gracias a Internet, tenemos acceso a recursos que hace años sería impensable disponer de ellos. Recientemente, el MIT (Massachusetts Institute of Technology) ha comenzado a publicar, a través del proyecto OpenCourseWare, los recursos (apuntes, ejercicios y exámenes resueltos, libros de texto, contenido multimedia y hasta fotografías de las pizarras) usados por profesores y alumnos para el discurrir de las clases. Y todo ello mediante un acceso libre, por lo que ahora todos podemos decir que «estudiamos en el MIT» 😉 OpenCourseWare

Veamos un ejemplo práctico de cómo están organizados los cursos. Supongamos que queremos realizar un curso de programación, utilizando como lenguaje de programación, Python, por ejemplo.

Primero podemos echar un vistazo en los cursos disponibles para los estudios «Electrical Engineering and Computer Science«. Dentro de estos estudios, vemos que el curso «6.189 A Gentle Introduction to Programming Using Python» es lo que estábamos buscando (en la descripción, vemos que se trata de un curso de apoyo para las clases de «6.01 Introduction to Electrical Engineering and Computer Science I«). Introduction to Programming

Una vez que ya tenemos identificado nuestro curso, podemos ver los recursos que nos ofrecen libremente. En este caso, tenemos disponibles PDFs con el contenido de cada clase, ficheros .py con código fuente Python para los ejemplos y los exámenes. Además, los libros de texto como material de apoyo que se nos recomienda son, siempre que sea posible, libros con licencia GNU. En el caso del curso de programación al que le estamos echando un vistazo, se nos recomienda el libro «How to Think Like a Computer Scientist«, disponible aquí.

Aunque muchas universidades están comenzando a realizar esto, es de agradecer la facilidad de acesso, la gran cantidad de recursos y la calidad de los mismos que el MIT pone a disposición de todos a través de OpenCourseWare. Esto si que es promover la cultura y el conocimiento libre y no implantar un canon ilegal o cerrar webs para financiar las volteretas de Bisbal 😉

Durante mi etapa de estudiante, recuerdo que muchos profesores (no todos) protegían, cerraban o restringían el acceso al material para sus clases (aunque no fuera nada del otro mundo y/o pudiera encontrarse en cualquier libro sobre la materia). La idea detrás del acceso libre a contenidos educativos (sobre la que Jesús ya ha hablado varias veces en Jefotecs: «Internet: conectar, compartir, colaborar» o «Internet como medio acelerador«), es que la calidad de la enseñanza reside en la figura del profesor o, más bien, en su grado de implicación a la hora de preparar las clases, no en la disponibilidad o no de tal o cual libro. Un profesor, a la hora de dar una clase, debería hacerse unas serie de preguntas, tales como ¿Es interesante mi clase? ¿Qué puedo aportar yo a los alumnos respecto a estudiar directamente de los libros? ¿Por qué deberían los alumnos asistir a mi clase? y no simplemente pensar que sus clases son buenas porque sus transparencias están muy curradas.

Por último, indicar que el proyecto acepta donaciones; aunque mucha gente se preguntará porqué donar a un proyecto dependiente del MIT (con el presupuesto que deben manejar), yo simplemente creo que es una buena manera de defender el acceso libre al conocimiento. Más información sobre cómo donar, la podéis encontrar aquí. En definitiva, bien por el MIT.