Hoja de ruta para un programador

Como parte de reflexiones recientes estaba pensando en hacer un poco de autocrítica ¿qué debería leer una persona para aprender a programar correctamente? Está claro que para salir al mundo empresarial y poder pedir con lo que salimos de la facultad no tenemos ni para empezar, y no todas las empresas se pueden permitir grandes periodos de formación.
Como esto es un campo muy amplio, en este ejemplo hay una precondición: se parte de cero, y una postcondición: saber programar en un entorno J2EE con Hibernate+Spring+JSF.
Lo primero deberían ser las bases: comprender qué es un algoritmo, programación estructurada y estructuras de datos elementales. Yo hice un curso, y como bibliografía usábamos "Fundamentos de Programación", de Joyanes, y creo que sería perfectamente válido. Es importante coger las ideas fundamentales antes de atarse a un lenguaje de programación. No se puede empezar a programar si no eres capaz de especificar el algoritmo de hacer la lista de la compra o ir al cine a ver una película.
Una vez sabemos lo imprescindible, es hora de bajarse la última JDK, Eclipse, y, Thinking in Java en mano, programar todos los ejemplos. Por lo que sé, es el mejor libro de Java.
Una vez ya se sabe Java (bien, no como la mayoría se conforma), merece la pena ahondar un poco más: Advanced Java Programming.
En este punto ya se debería tener dominado el "Java standalone", "cliente", o como prefieras llamar a lo que no es J2EE.
En este punto ya se debe conocer la herramienta básica, así que conviene leer algo de más alto nivel: Core J2EE Patterns.
Antes de entrar en el mundo J2EE convendría unas nociones básicas de redes (¡me asombro que en el fondo mucha gente no acaba de comprender el modelo cliente-servidor de la web!) y algo de SQL. Para esto no tengo recomendaciones.
Ya es el momento de meterse en harina: a bajarse Hibernate, Spring, MyFaces... Nada de pasar por programación de servlets y JSPs pelonas, no vale para nada. Con leernos las introducciones para comprender qué es un servlet y cómo se genera la vista con JSPs, basta. Para aprender Hibernate el libro de referencia está muy bien, y cuando éste se queda corto, Hibernate in Action. La (¡extensa!) referencia de Spring debería ser suficiente. Y para JSF, el tutorial de Core Servlets con el que creo que hemos aprendido todos.


Aquí están las referencias. Ya sólo queda el trabajo ;)

Posted by Juan Ignacio Sánchez Lara 22:31  

3 Comments:

  1. JoseKont said...
    Gracias por el articulo. Es algo muy bueno para aquellos que nos estamos iniciando en el tema de programar en java.

    Por cierto ¿Tu crees que con aprender JAVA a profundidad sea suficiente para entrar al mercado laboral?

    Me refiero a que conozca un lenguaje en su totalidad o bueno casi en su totalidad y de los demas lenguajes(Html, php, c++,etc) lo basico, es suficiente? y en ¿cuanto tiempo crees tu que uno puede aprender JAVA?

    Yo estudio actualmente ingenieria en sistemas y voy por mi primer curso de programación pero no cumple mis espectativas, quisiera saber alguna forma o tecnica de como aprender a programar adecuadamente.

    En la universidad me han dejado proyectos los cuales logro presentar, pero muchas instrucciones no funcionan correctamente, y logro hacer que funcionen en base a la "prueba y el error".

    Quiero aprender a programar, pero deseo encontrar una forma que me motive a hacerlo de forma correcta y no con los metodos inconsistentes de la universidad.

    Saludos y espero tu respuesta!!
    Nacho said...
    Me alegro que lo encuentres de utilidad. Iré respondiendo...

    1.- Si sabes J2EE ("Java para aplicaciones web") y eres capaz de demostrarlo o tienes un título (para que te escuchen en entrevistas de trabajo) tienes trabajo asegurado. Hay trabajo a patadas y poca gente para cubrirlo.

    2.- Al final, cuando conoces un lenguaje, los conoces todos. Si comprendes los conceptos (programación estructurada, programación orientada a objetos, modelo cliente-servidor, generalización, polimorfismo, etc.) moverse entre lenguajes no es problemático. En los próximos días comenzaré con Phyton (antojos que tiene uno) y no creo que me cueste gran cosa. Otro cantar es dominarlo, eso es cuestión de tiempo.
    Eso sí, sí creo que es imprescindible también HTML y CSS (pero de verdad, no con el Dreamweaver).

    3.- Si comprendes los conceptos, en cuestión de días puedes programar Java con cierta soltura. Manejar la pila de librerías que recomiendo (Hibernate/Spring/JSF) ya es harina de otro costal, y suele llevar semanas a mucha gente.

    4.- Para aprender "correctamente", lee. Si no tienes base, comienza con un libro de fundamentos de programación (para comprender correctamente qué es una función, qué es un objeto, una tabla hash, etc), y después, ponte con el Thinking in Java, que es un gran libro, y además gratuito.

    Todo esto, IMHO, por supuesto :)
    JoseKONT said...
    @ NAcho:
    Gracias por tus respuestas. Las tomare muy encuenta y empezare con lo de los "fundamentos de la programación", a ver que tal me va. Espero que bien...

    Bueno gracias y siempre seguire visitando tu blog. Saludos!!

Post a Comment