martes, 6 de septiembre de 2011

¿Por qué no consigo aprender Java?

Vuelvo al trabajo después de unas merecidas vacaciones. Y de camino en el coche voy pensando... ¿Por qué le cuesta a cierta gente aprender Java?
Programar en Java no es complicado, programar usando la filosofía Orientada a Objetos resulta muy beneficioso (reutilización de código, ...).
Aun así me encuentro con alumnos que se resisten a programar en Java. Y digo que se resisten ya que en ocasiones veo código "Orientado a Objetos" que no es otra cosa que un programa usando Programación Estructurada (al estilo C, con funciones y sin crear clases) escrito con sintaxis Java.

Maaaal, noooo!!! Las ventajas que aparecen en miles de libros sobre la programación orientada a objetos sólo tienen sentido si se usa la filosofía orientada a objetos.
Lo clarifico con un ejemplo: te vistes de Buddha, te sientas con las piernas cruzadas en el suelo durante 3 horas pensando en la cena de hoy, lo que consigues es un dolor horroroso de piernas y piensas "menuda mierda esto de la meditación".
Quiero decir si no se usa la filosofía adecuada lo único que vas a pensar de la Orientación a Objetos es: "menuda mierda".

Si todavía no sabes programar y estas leyendo esto no te asustes. Este problema que comento suele aparecer en individuos que ya han programado con otros lenguajes, y por lo tanto intentan adaptar su manera de programar a este lenguaje (cosa muy normal).
Resulta mucho más fácil empezar de cero. Asimilar bien la idea de clases y objetos, centrarse en esto y olvidar otras características (herencia, polimorfismo, ...) para cuando se tenga claro esto.

Teoría básica
Una clase es un tipo de objetos (p.e. la clase coches).
Un objeto es una ocurrencia particular de una clase (p.e. el Suzuki verde feo de mi vecina)

Cuando se programa en OO, se está describiendo el comportamiento y las características de forma general de los objetos. Esto se hace codificando en lenguaje Java las clases (definiendo sus atributos y sus métodos).

Los atributos son una serie de variables donde cada objeto almacenará sus propios valores.
Y los métodos son las acciones que pueden realizar esos objetos.

Ejemplo:
 La clase coches define atributos como: matrícula, color, marca, modelo, velocidad, combustible (y cualquier otro que se necesite para el programa particular)
 La clase coches por otro lado define el comportamiento dinámico mediante métodos: arrancar, parar, acelerar, girar (y los que se te ocurran según lo que vayas a programar)
 Ahora es cuando hay que entender los beneficios (en este caso claridad de código y reutilización).
 Imagina que quieres hacer un programa de carreras de coches, en el circuito van a haber 20 coches. Definiendo la clase coche y lo que puede hacer, ya tienes hecho este trabajo para los 20 coches y de hecho cada uno de ellos tendrá sus propias características (atributos) y podrá comportarse de forma independiente (llamando a los métodos).

Como el código de las clases se escribe en un fichero separado ("NombreClase.java"), la clase te queda física y lógicamente separada de otras clases.

Ejemplo:
Otro ejemplo en plan juego, quieres hacer un juego tipo Space Invaders. Has visto que los bichos malos se repiten por filas, que se parecen mucho y se comportan prácticamente igual.
Pues crearías:
  • Una clase Bichos (atributos: color, forma, posición; métodos: mover, disparar).
  • Una clase Nave (es la nave que manejas)
  • Una clase Bloque (para esos bloques que paran los disparos)
  • Otras clases de manejo de pantalla y teclado.
  • Una clase principal (p.e. "Juego") donde esté la función "main" que es el punto de inicio del programa. Y que gestiona la lógica del juego.
Para empezar el juego se tendrán que crear los bichos, pues creas una instancia de bicho por cada monstruito (cada uno ocupará una posición, tendrá una forma...). Creas objetos bloque y creas también tu nave. En la clase principal tendrás un bucle donde por pasos: moverás los bichos y harás las comprobaciones necesarias.
Como la nave va a su aire, se pueden usar Threads, pero esto ya escapa de la mera filosofía orientada a objetos.

Lo que he querido ejemplificar la filosofía. Ahora te queda ir probando y consultando la sintáxis Java.
Cuando crees un programilla, replanteate cómo lo harias si tuvieras que volver a hacer lo mismo. Esos cambios que observes (que te ubiesen ahorrado trabajo y que dejan el código más limpio) son los que plasman mejor la idea Orientación a Objetos.

Suerte!

viernes, 24 de septiembre de 2010

Debido a una incidencia técnica no podemos responder a la duda que nos plantea

Clar que no! Si no tens ni idea xaval. Que t'he guipat enseguida que has contestat al telèfon.

Vuelva a llamar el lunes a partir de las 9:00. Per supost cridaré quan tu no estigues no siga cosa que et torne a caure el marron.

XDDD.

Quantes excuses ens trobem en els serveis d'assitència tècnica, d'informació i semblants.
La millor de totes les excuses és tirar les culpes als equips informàtics, és dificil de comprovar, el jefe no té ni idea i possiblement quan a un altre li funciona pots dir: "Pos a mi nom ba nar"

Xe, que estem en crisi. Feu la vostra feina bé que hi ha 10 milions de persones dispostes a treballar per la meitat de sou.

martes, 1 de junio de 2010

Poker a la rumana

Un sandwich mixto, una cerveza, unas bravas y calamares a la rumana o mejor polvorones. Por favor.

Cuando jugamos a poker asumimos de partida ciertas desventajas, como:
  1. Jugadores desconovidos.
  2. Profesionales.
  3. E individuos que no juegan pero distorsionan el buen ambiente.

Cuando de pequeño los maestros me decian saber lenguas te dará mucha ventaja en la vida. Nunca pensé que se tratara de poker.

Y eso justo pasa en Calpe. ¿Es justo que 4 rumanos coincidan en una misma mesa en un torneo?

Dicho de otro modo, que guay sería poderle decir a tus compinches las cartas delante de todo el mundo.

Observa el ambiente y ten cuenta en estos factores a la hora de escoger un sitio de juego o habrás perdido antes de sentarte.

Otra opción es aprender idiomas y saber que cartas llevan. ;)

Suerte!

miércoles, 19 de noviembre de 2008

Informàtica Sí

Ja n'hi ha prou de discriminar la Informàtica!

Ara damunt pareix ser que la volen fer desapareixer perquè no té comptències pròpies.
Si és una matèria emergent i en plena explosió, el que hi ha que fer és donar-li les competències i no eliminar-la perquè no en tinga.
L'excusa que dona el govern és que és transversal, bé la física, química, dibuix, valencià, castellà, l'anglés, matemàtiques, i altres també ho són a moltes enginyeries. Les eliminem totes?

Fins i tot als instituts se'ns vol discriminar més, no tenim departament (en canvi religió, grec, llatí i altres que solament tenen un professor sí), professors de matemàtiques, tecnologia, etc. imparteixen hores que corresponen a informàtica (no en tots els llocs però en molts). I per si fora poc la figura de coordinador TIC que la llei atribueix a professors d'Informàtica, se la passen pel forro i ho donen a qui millor els cau (però no al d'Informàtica).

Ja prou, ara solament falta que lleveu la carrera.
Posats a no donar-nos competències, jo també vull poder vendre medicines lliurement, crear plànols de cases i que no m'ho firme un arquitecte i perquè no peritar un vehícle.

lunes, 13 de octubre de 2008

HP LaserJet P1006 en Lliurex

Quin desfici instal·lar la impresora en Lliurex (Ubuntu 7.04)

Vaig veure que el SW HPLIP suportava aquesta impresora.

La instal·lació va anar bé (a pesar de la velocitat d'accés que tenim als centres), en unes quantes hores (de dies diferents) vaig aconseguir que descarregara els paquets necessaris.

A l'hora d'afegir la impresora la detectava i podia escollir el connector foo2xqx.

Però no imprimia i tampoc donava cap error.

Amb el treball en cua, he parat la impresora i l'he engegada de nou i ja va.

Què pena! Sempre ens toca reiniciar alguna cosa.

viernes, 26 de septiembre de 2008

Quan de temps sense publicar...

I hui tampoc és el millor dia.

domingo, 4 de mayo de 2008

Elegi

La pel·lícula d'Isabel Coixet "Elegi"
Puf se'm fa pesat fins i tot dir res.

Quan vaig veure "La vida secreta de las palabras" (no l'he acabada mai i l'he començada com 3 vegades), em va pareixer: lenta, sosa, amb pocs personatges, espais reduïts, avorrida i em posava nerviós.

Vaig veure el divendres "Elegi" al cinema com a solució de compromís per disputes entre veure alguna d'altres 2 pel·lícules.

"Elegi" és del mateix estil: sosa, avorrida, lenta, lenta, lenta, lenta amb pocs personatges i també em posa nerviós estar-me sentat tanta estona mirant-la. Quin horror! Ni els pits de Penélope resultaven interessants.