2010-07-26 10 views
26

Estudié 2 cursos en Java:
1- Introducción a la programación con Java.
2- Estructuras de datos con Java.¿Cómo dominar Java?

En ambos cursos usamos Java SE.

Me encantó y realmente quiero ser un gran programador de Java.

embargo, he descubierto que debo saber muchas tecnologías implicadas en el desarrollo de software de Java:
Spring, Struts, JSP, JSF, GWT, Hibernate, Apache Tomcat y muchos más en realidad mucho más.

Espero que se convierta en un proceso simple como .NET eliges un idioma con un framework y IDE eso es todo.

¿Alguien podría guiarme por la mejor ruta o camino para dominar Java, por favor?
¿Qué opinas sobre estos dos cursos:
http://www.oreillyschool.com/certificates/java-programming.php
y
Java Avanzado serie de certificados (de la misma escuela, estarán disponibles en septiembre).

+23

"proceso simple como .NET ". Muy divertido. –

+3

Eche un vistazo a http://stackoverflow.com/questions/1960280/what-to-learn-for-making-java-web-applications-in-java-ee-6 –

+3

El dominio toma tiempo, disfrute del viaje. –

Respuesta

41

creo que la mayoría de los programadores tienen en la media de inteligencia graduado de la universidad, incluido yo mismo. Lo que sí tenemos mucho es la paciencia.

Dicho esto, hay maneras eficientes de aprender y formas ineficaces de aprender.

  • Si está atascado en un tutorial/libro, pruebe con otro libro. Una vez que haya terminado con los conceptos básicos, realmente no hay un orden "correcto" para aprender.
  • Examine la documentación estándar de la biblioteca Java. No se moleste en memorizarlo, pero asegúrese de saber que las herramientas están ahí cuando las necesita.
  • Haz muchos programas de prueba. Si alguna vez siente curiosidad por algo, pruébelo y vea qué sucede. ¿No sabes qué tan grande es una int? Escribe un programa que imprima un tamaño de. ¿No sabe qué sucede cuando llama a una función virtual de una instancia de anulación? Escribe un programa con dos clases, una heredando la otra, y pruébalo.
  • Lea el código de otras personas. Toma nota del estilo y la estructura. Y no me refiero a cosas tontas como si {deberían ir en la misma línea que el enunciado, sino cómo reciclan variables, cómo organizan sus clases, cómo usan bucles, dónde se molestan en optimizar y dónde no etc. Emule lo que le gusta.
  • Practica la construcción de programas "stub": puedes hacer esto en tu cabeza una vez que lo domines. Encuentra tu programa favorito y escribe todas las clases/métodos que creas que se usarían para construirlo. Eso te ayudará con la arquitectura.
  • Pase mucho tiempo nombrando sus clases. No use nombres elegantes, solo descriptivos. Es un buen ejercicio mental pensar en nombres, incluso si no espera compartir su código alguna vez.
  • Prueba Project Euler si te gusta ese tipo de cosas mathy nitty-arenosa. No creo que la programación tenga que ver con las matemáticas, pero te puede gustar.
  • Learn C alguna vez. C++ probablemente no valga la pena si está haciendo Java, pero C le enseñará cómo funciona su computadora. No es necesario dominarlo, pero al menos llegar al punto en el que comprenda la administración de la memoria y los indicadores. Eso te ayudará a tomar decisiones más rápido cuando quieras que tu código sea realmente rápido.
  • Aprenda la programación funcional algún día. Haskell es una buena opción, porque es un lenguaje funcional puro. Al principio es extremadamente difícil, pero los conceptos que aprenda de él son valiosos independientemente del idioma en que programe. Tomará decisiones de diseño mucho más rápido y su código será mucho más sólido.
  • Manténgase actualizado. Las tendencias van y vienen en esta industria tan rápido como en la industria de la moda. Mucho es basura, pero una gran parte es crucial tanto para el empleo como para la productividad. Siempre mantente atento, o seguirás el camino de los dinosaurios.
+5

* "Lo que sí tenemos es paciencia". De hecho, si no tienes paciencia, entonces la programación profesional no es una buena carrera para ti. –

13

¿La mejor manera de ser bueno en algo? Práctica práctica práctica.

No se concentre en un único marco de trabajo simplemente haga un montón de Java, eche un vistazo a los proyectos de código abierto, encuentre algo que necesite corregir o implementar y hágalo o piense en algo que desea pero no existe y hazlo.

+1

Sí, lo que dijo, 48 segundos más rápido que yo. –

+14

¿Qué puedo decir? He practicado;) –

+1

¿Cómo practico Java de manera efectiva? –

2

Escribir programas en ella. Busque programas de código abierto que lo usen, corrija sus errores y añádales funcionalidad. La mejor forma de obtener experiencia es experimentarla.

0

Si realmente quieres saber lo que deberías estudiar, dentro del ámbito de tus ejemplos (Spring, Struts, JSP, JSF, GWT, Hibernate, apache tomcat), busca algunos podcasts y publicaciones en blogs que te permitan encuesta estas tecnologías. A continuación, puede elegir los que más le interesan para seguir estudiando.

0

Estoy de acuerdo con los otros dos encuestados (la práctica, especialmente con proyectos de código abierto, es la mejor manera de obtener buenos resultados en un idioma). Sin embargo, quería agregar una cosa. No está claro a partir de su respuesta cuánta experiencia tiene con el diseño orientado a objetos, y con Java, eso es esencial. Recomiendo buscar en el diseño avanzado de OO para tener una idea de lo que hay por ahí. Mi libro favorito sobre el diseño de OO está disponible de forma gratuita y está vinculado a continuación: verifique si está en su nivel. Si no, busque algo más/menos avanzado y trabaje a partir de él.

http://homepage.mac.com/s_lott/books/oodesign/build-java/html/index.html

0

Tecnologías Java son muy amplia, desde teléfonos móviles, a los servidores de nivel empresarial. Es posible que primero desee restringir lo que desea aprender.

Su primera charla sobre Java SE (programación de aplicaciones) y luego comienza a mezclarse en Java J2EE y Java EJB.

Si quiere ir por la ruta web o el servidor empresarial, necesita aprender J2EE, EJB, Hibernate, Spring, etc. De lo contrario, estas tecnologías no se ven tan a menudo al programar aplicaciones.

Parece que aún le queda un largo camino por recorrer, probablemente lo más beneficioso que pueda aprender a continuación sea Java Swing (gui).

12

La práctica no es perfecta: la práctica perfecta hace que sea perfecto. Si continúas cometiendo los mismos errores, solo lograrás desarrollar malos hábitos.

Necesita leer this.

Su hoja de ruta de Java debería tener este aspecto:

  1. Concéntrese en centrales clases de Java JDK para empezar. No se preocupe por Java EE hasta que se sienta cómodo con las interfaces, las clases y los conceptos básicos. JDBC es una parte importante del núcleo de Java, así que háblalo con fluidez. Tendrá que saber sobre bases de datos relacionales, normalización y SQL. La tecnología GUI aquí es Swing.
  2. Una vez que tenga eso, tome servlets, JSP escritos usando JSTL exclusivamente (sin scriptlets) y JDBC. Deberá comprender algo acerca de Tomcat (u otro servlet/motor JSP), HTTP, HTML, CSS y un poco de JavaScript también. Puedes recorrer un largo camino con solo esto.
  3. Una vez que haya dominado 1 y 2, tendrá que hacer una elección de marco. Yo recomendaría tragar Spring o EJB 3 enteros. Primero recomendaría Spring, pero admitiré que no conozco bien EJB 3.
+1

¿La "práctica deliberada" encajaría en la factura? –

+1

"Buena práctica deliberadamente" - sí. – duffymo

+1

Ojalá pudiera recitarlo miles de veces. – dosdebug

0

Practica y aprende marcos a medida que los necesitas (o los encuentras). Hay demasiados frameworks disponibles (para Java y para .NET) para aprender de una vez.

El aprendizaje de las bibliotecas de clases de Java estándar es siempre un comienzo

7

Me da la impresión, por el fraseo de su pregunta, que Java es su primer lenguaje de programación. Laudo tu deseo de "dominar Java", pero si es posible, me gustaría sugerir que pruebes un poco antes de obtener demasiada profundidad.

Es fácil, creo, con un grado CS donde la mayoría de los cursos se imparten en Java, para caer en la trampa de creer que todos los lenguajes de programación son:

  • (y con la herencia simple aplicación orientada a objetos y la herencia de interfaz múltiple)
  • estáticamente-tecleado (sin ningún tipo inferencia)
  • imperativo (es decir, haciendo uso de constructos de iteración y el estado mutable)
  • detallados

y, por lo tanto, toda la programación debe parecerse más o menos a la programación de Java.

Sugeriría humildemente leer un poco sobre diferentes paradigmas e idiomas: aprender un lenguaje de tipado dinámico (procedente de Java, sugeriría Python o Ruby), aprender un idioma que no sea OO (como C) --- e implemente OO, aprenda sobre programación funcional (Haskell es una gran revelación). Al menos eche un vistazo antes de zambullirse de cabeza en la sopa de alfabeto de Java (la cultura Java valora altamente los acrónimos --- pero no voy a pasar juicios de valor sobre esto aquí).

¡Apenas mi US $ 0.02!

0

¿La mejor manera de ser bueno en algo? Obtenga un trabajo que le permita usar esa tecnología. Que te paguen mientras practicas.

Hay un momento para dejar de leer libros y artículos y comenzar a trabajar en la construcción de un proyecto.

Mientras trabaja, aprenda de otros que son mejores que usted. Continúa leyendo artículos sobre temas que te interesan y aplica lo que aprendes en el trabajo.

+2

En realidad, es difícil aquí encontrar un trabajo Java de nivel de entrada. Hoy, tuve una entrevista telefónica con una empresa que buscaba un programador de Java sin experiencia y me preguntaron sobre las tecnologías mencionadas más otras más. –

0

Encuentra un mentor y elige sus cerebros con frecuencia. Una vez que esté trabajando en el campo, solicite las revisiones de código de los desarrolladores principales. Esto lo sacará de sus propios hábitos, y leer las sugerencias de la gente sobre cómo puede mejorar le dará muchas ideas. No se siente a leer, resuelva problemas por problema y continúe desde allí.

0

No es tan fácil se convirtió en un maestro en Java, lo que he hecho para estudiar java es 1) tratar de convertir todas las aplicaciones que he visto en java, por ejemplo: pintura para java 2) solía fue a grupos de usuarios JAVA y conferencias en mi estado 3) Fui a Grupos en Goolge para verificar Códigos de Java eso es todo lo que hago, no puedo decir que soy el maestro, pero puedo hacer las cosas

Cuestiones relacionadas