¿Con que Framework me recomiendan comenzar?

Hola.

Resulta que soy universitario y con mi primer trabajo (empresa de facturación electrónica) me dí cuenta de que en la escuela no te preparan para el mundo laboral y que si te conformas con lo que ves en la escuela pues te espera un trabajo prácticamente de obrero. Entonces viendo por aquí lo que comentan de las ofertas de empleo te das cuenta de que todas las empresas piden manejar bastantes Frameworks (sobre todo para aplicaciones web): Spring, Struts, Hibernate, JPA ...

Hasta ahora solo había programado aplicaciones de escritorio con JSE (ya saben: swing) y un profesor de la universidad dice que si vas a programar Web con java no hay de otra que Struts y que con eclipse (como que tenía cierta aversión a Netbeans). A ver si me pueden orientar un poco sobre como es recomendable comenzar con esto de las aplicaciones web, que si el framework, que si el IDE, que si la metodología o lo que crean más importante en su experiencia.

He estado leyendo de Struts y realizando ejemplitos con el netbeans, también sé un poco de JPA porque lo utilizaba en el trabajo. Si pueden recomendarme algún libro, blog, artículo, loquesea, se los agradecería. Yo entiendo que no es cosa que se aprenda en dos días, pero ahora que aún me queda un semestre para terminar la carrera todavía tengo un poco de tiempo para aprender todo lo que se pueda.

Gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Antes de

Antes de que quieras aprender algun framework deberias conocer bien las bases de servlets, tener bien claro los conceptos y practicas de programacion para que no tengas problemas

En mi experiencia me late mucho mas Eclipse IDE, tambien deberias aprender a hacer casi los mismos programitas web sin ayuda de los IDEs veras que no es tan trivial.

Empezando con...

Bien, antes de empezar a sacar una lista de frameworks y de utilerias es importante saber el patron de diseño que implementan... así es, aunque muchos ya sea algo muy muy hablado es importante comprenerlo porque apreder un framework no es dificil, lo bonito eshacer una buena estructura y no solo por hacerlo con framework significa que lo hagas todo bien. (oh como me encanta esta frase de Oscar) "en cualquier lenguaje se pueden hacer cochinadas" (en este caso framework) entonces para no hacer cochinadas lo primerititittiiiiito que debes hacer (sin ayuda de framework) es hacer una aplicacion que respete e patron MVC (web o de escritorio, como sea)... no importa lo que uses, ahorita no te fijes si XXXX esmejor que YYYY porque tu primer paso es entender el patron. Una vez hecho eso aprendete bien ¿Que es eso de un servlet? ¿Que es eso de TagLibraries? que es eso del  ? que es eso del  ? que es eso del  ?

Una vez aprendido esto es tiempo de sabr que toooodos los frameworks estan basados en eso de las preguntas que te respondiste, ahora es tiempo de mirar framewoks: ¿Cual de elos se acomoda mas a tu forma de trabajo? (puede ser una muy buena eleccion para ti que comienzas). Habra queines digan que Struts 2 es malisimo, habemos muchos que digamos lo mismo de wicket, otros de JSF, otros de tapestry, otros de.... (de todos los que existen). Pero si comienzas a usarlos basta con que te acomodes a la forma de usarlo (bueno, Struts 1 si de plano ya debe ser quemado pero el 2 a mi punto de vista ya esta bien)

Ningun framework es mejor que otro (relativamente)... el que es bueno o malo es quie lo utiliza!

Imagen de chato

Gracias por tu comentario. De

Gracias por tu comentario. De hecho si he manejado servlets, poco pero si sé de que van y porqué surgieron los JSP. Voy a intentar hacer lo que tengo sin IDE como dices para comprender mejor.

Saludos.

Imagen de chato

@java.daba.doo de hecho estoy

@java.daba.doo de hecho estoy leyendo "Beginning Apache Struts" y menciona todo lo que comentas: dice que no hay que saber mucho se servelts excepto dos HttpServletRequest y HttpSession, explica de que va cada uno, luego viene lo de TagLibraries (que porque los scriptlets resultan un infierno) y ahora estoy leyendo precisamente lo del MVC.

Y por lo que dices entonces está bien que aprenda cualquier framework siempre y cuando tenga las bases que mencionas, solo otra pregunta ¿para aprender Struts 2 es necesario Struts 1? (suena tonto, pero en realidad estoy comenzando)

Muchas gracias por tu tiempo.

Saludos.

Saludos chato de donde

Saludos chato de donde eres??? Digo normalmente hay empresas, depende de la ciudad, donde hay oportunidad de aprender, otras donde no, yo te dire que en mi experiencia cuando sali de la escuela me di cuenta que lo mio no era lo que habia estudiado (Ing. en Electronica), y por el contrario me sentia muy atraido por la programacion sobre todo que al final de la carrera lleve unos cursos de C, C++ y Java, muy basicos pero la verdad me sirvieron mucho como base, alli aprendi:

* Lo basico del lenguaje JAVA (sintaxis, compilar, ejecutar, teoria de objetos, etc...),
* JDBC (Importantisimo porque en general el tipo de aplicaciones mas comunes que va uno a desarrollar es con bases de datos)
* SWING y AWT ( Al final he trabajado muy poco con ellos pero conozco otras personas que comen de ellos)
* Threads

Despues ya puestos en marcha, siempre me atrajo la programacion Web, asi que lo siguiente que me dispuse a aprender ( y ya no eran parte de mis cursos) fueron:

* Servlets
*JSP's

Lo de que aprendas struts, creo que tu maestro esta equivocado, struts es un framework MVC muy popular, pero no es el unico ahi esta Spring MVC y otros mas libres o no libres, aqui es cuando entra la necesidad de la empresa, en mi primer trabajo el framework que usaban para su sistema fue struts, pero despues de eso ya no lo he vuelto a utilizar, entonces pues todo depende.

Lo que pienso yo y que siempre he pensado es que aprendas por aprender, lleves a cabo mini proyectos personales, usando las tecnologias que te agraden o que te atraigan, una tiendita de videos por ejemplo, con carrito de compras, y asi vas a aprendiendo (por ejemplo en un proyecto asi podrias usar struts o struts2, implementar algunos web-services, usar Hibernate y JPA, aprender algo de AJAX y algun framework para RIA (te recomiendo ZK) ).

De esta forma aprendes programando, y es mas facil encontrarse con problemas, y tendras que resolverlos (y eso es a lo que te enfrentas dia a dia en el trabajo) y al resolverlos tendras mas experiencia.

Una ultima cosa, no te cases con ningun IDE, al final puedes terminar programando en el IDE que menos esperas, en un principio usaba Netbeans en aquellos ayeres cuando corria lentisimo (tal vez por eso tu maestro le tomo aversion), con el tiempo empeze a usar Eclipse y deje Netbeans, pero ahora he vuelto nuevamente a usar Netbeans (cosas del trabajo), sin embargo tambien he tenido que hechar mano de JBuilder, WebSphere e incluso Vi, y seguramente es el caso de muchos, lo importante es tener las bases y el IDE nomas te hace las cosas un poco mas faciles.

Imagen de chato

Hola quinteroac, estudio

Hola quinteroac, estudio (Ciencias de la Computación) en Puebla y ahí trabajé realizando aplicaciones de escritorio donde utilizaba swing, awt y JPA, la verdad me aburrí de realizar programas de facturación que además estaban mal diseñados (la base de datos era un desastre). Cuando estaba por renunciar vine a caer por estos foros y me dí cuenta que no sabía prácticamente nada. Leyendo algunos post's ví que algunos usuarios comentaban sobre un montón de frameworks, que los trabajos bien pagados requieren conocimientos de tecnologías orientadas a la web.

También tengo pensado aprender AJAX y RIAS, pero despacio que por ahora es demasiada información para mí, por suerte tengo medio año para aprender un poco. Por ahora tengo un proyecto de la universidad que pienso utilizarlo para aprender como dices y mientras intentaré utilizar eclipse y netbeans que parecen los más populares.

Ya que veo que mencionas algo sobre RIAs, necesito realizar una aplicación web donde se manipulan imágenes (se arrastran, se debe hacer zoom, grises, rotar, ..., subir imágenes de usuarios,..) y la estaba haciendo con applets, pero evidentemente queda muy pesada, entonces la pregunta es ¿para una aplicación de este estilo que conocimientos debo adquirir (AJAX, javaFX)o que me recomiendas?

Muchas gracias por tu tiempo.

Saludos.

Struts 2 no requiere Struts1

Para saber Struts 2, no necesariamente debes saber Struts 1... yo lo veo como una buena evolucion a algo que NECESITABA AGRITOS avanzar. Ahora bien, no está sobrado que lo conozcas solo para quitarte la espina, pero si estaria feo si lo utilizas como tu principal herramienta.

Yo aprendi Struts 2 con el libro "struts 2 in action" y pues esta bien... claro, no todo lo saque de ahi pero tiene muy buenas bases para empezar a comprender el framework (te lo recomiendo)

Igualmente

Seria mejor que aprendieras primero patrones de diseño,test unitario y manejo de concurrencia.
Para que puedas comprender mejor los framework,recomiendo Play!.

Imagen de chato

Gracias por todos los

Gracias por todos los comentarios, por ahora voy a seguir un poco con Struts, después me sigo con el 2 y con Play.

Saludos.

Imagen de ingscjoshua

Depende...

como dice @java.daba.doo cada quien agarra su preferido o el que mejor le acomoda, lo mejor es aprender de todo, no esperes ser experto en todos, habra uno que tu digas este me gusta mas y a ese le voy a sacar el máximo en mi caso yo me inclino por usar JSF2, Aqui no aplica lo de que las segundas partes nunca son mejores de hecho creo que si lo son y vaya que lo son, asi como struts1 era de aquellos dias donde o lo hacías con struts1 o con jsp pues no había mucho a donde ir, yo te recomendaria que lo miraras quizas en alguna ocasión te toque hacer un mantenimiento a un aplicación que se hizo hace 5 años y pues es struts1, por otro lado la tendencia de los nuevos desarrollos esta en SpringMVC, JSF2,Struts2 (Yo tengo mi historia con este framework y jamas lo usaria, pero esa es mi version y quizas yo no lo supe usar jejej XD), otra es las tecnologias del Core, mucho esta de moda Spring!!!!, para todo, claro hay que saber donde y cuando, ami me gusta Spring se me hace una excelente Framework y muy aimgable, acutalmente tengo un desarrollo personal, donde lo integre con JSF2 y primefaces y funciona excelente. ademas de montarle JPA y Hibernate y JDBC usando la interfaz JDBCTEMPLEATE, y aprender a implementar JDBC puro, ah y no olvides las poderos herramientas de construccion desde el querido y odiado ANT, MAVEN, GRADEL!!!, ehcale un ojo a GROOVY, GRAILS cosas que igual no son tan comunes en México pero que ya estan pegando fuerte un ejemplo claro es MERCADO LIBRE ESTA HECHO EN GRAILS. :). y los EJB3, la version 1 y 2 Dios que dolores de cabeza dan son dificiles de implementar pero vale la pena usarlos para que cuando veas la version 3 veas los sencillos que los volvieron, en fin libros ammm . yo me compre SPRING IN ACTION, igual CORE JAVA SERVER FACES, el tutorial de JEE de Sun/Oracle,e igual mucho lo he aprendido sobre la marcha aveces leyendo no salen dudas pero ponte a montar un proyecto de 0 y veras como las dudas surgen el como se configura completo nunca lo vas a encontrar en un libro al menos eso creo yo jeje XD,
como se configura la conexión como X como Y y veras que eso te ayuda y sobre todo, Recuerda en este negocio jamas puedes dejar de aprender, si te estancas esta frito en este negocio, creo que ahora estudio mas que cuando intente ir a la universidad, jeje ahora me preocupo mas por aprender, quizas porque encontre que me apasiona el desarrollo y porque aun mejor me pagan por hacer lo que me gusta y le encuentro gusto a esto, enfin.
Otro punto es no dejes de preguntar, aqui en la comunidad siempre encontraras cosas expectaculares, gente que habla de temas que domina a la perfección como @java.daba.doo que es un guru de SPRING y otros tantos que dominan tanto.

Para acabar este rollo en la medida que puedas comparte lo que aprendas, la mejor forma de aprender es compartir quizas cuandos subas tu codigo alguien te diga oye si lo haces asi esto mejora el rendimiento, o etc!!!.

Asi que dicho este sermon jejeje