¿Se puede aprender Java como un curso de autoaprendizaje? Con la ayuda de este ecosistema y algunos documentos que me guían, ¿puedo dominar, o al menos obtener algún conocimiento sobre cómo escribir mis propias aplicaciones?

No veo por qué no. Es como lo aprendí. Un gran número de programadores aprenden el oficio completamente por su cuenta, con la ayuda de algunos libros.

Java es un poco más fácil que algunos lenguajes, sobre todo el C / C ++ muy común, que es extraordinariamente difícil. Son propensos a ciertos tipos de errores que son fáciles de cometer y muy difíciles de entender porque sus efectos son tan aleatorios. Más allá de eso, Java no es más difícil o más fácil de aprender que cualquier otro lenguaje moderno.

No puedo recomendar ningún libro o guía de Java en particular, porque diferentes técnicas pedagógicas funcionan para diferentes personas. Varía mucho según la cantidad de programación que ya conozca y con qué idiomas está familiarizado. Ve a recoger un libro y hojealo; Si se siente bien probablemente funcionará.

Me quedo con un complemento para “El lenguaje de programación Java” de Arnold y Gosling, que es EL libro de programación de Java, directamente de la boca del caballo y creo que está muy bien escrito. Pero no tengo idea si se adapta bien a tus habilidades. Probablemente podría hacerlo igual de bien con un tutorial en línea como estos:

http://download.oracle.com/javas…

que son gratis

Recomiendo descargar Eclipse, que es el mejor entorno Java que conozco. Es gratis, y puede ser más fácil comenzar que con las herramientas de línea de comandos:

http://eclipse.org/downloads/pac…

Sólo tienes que seguir mis directrices.

  • Descargue el último JDK del sitio web de Oracle: Java SE – Descargas
  • Comience a leer Java del Tutorial de Oracle: Los Tutoriales de Java ™
  • Este es un buen artículo para ejecutar un código Java en 10 minutos: Aprenda Java en 10 minutos

Una vez que se sienta cómodo con JDK y Java básico, busque en el estudio web estos temas:

Autoaprendizaje Aprendizaje Parte 1: Conceptos de Java

  • Java Class Design
  • Métodos de Java
  • Operadores y asignaciones de Java (prioridad también)
  • Declaraciones condicionales de Java
  • Java Loops (para y mejorado para loop, while, do / while, switch)
  • Manejo de excepciones
  • Subprocesos de Java (puede ser útil en su aplicación)
  • Arrays Java y Colecciones Java (útiles para swap / search)

La mejor manera de mejorar la habilidad de programación de Java es mediante la preparación de la certificación del programador Java de Oracle. No es necesario que asista al examen, pero la preparación mejorará sus habilidades de programación.

  • Elija su certificación Java de Oracle
  • Certificaciones Java Colecciones de exámenes MyExamCloud

Aprendizaje de autoaprendizaje, parte 2: Mejore el algoritmo de su programa Java en las siguientes áreas:

1) Algoritmos de grafos: búsqueda en primer lugar (BFS), búsqueda en primer lugar (DFS), componentes fuertemente conectados (SCC), Dijkstra, Floyd-Warshall, árbol de expansión mínima (MST), ordenamiento topológico.

2) Programación dinámica: problemas de programación dinámica estándar, como el corte de varillas, la mochila, la multiplicación de la cadena matricial, etc.

3) Teoría de los números: aritmética modular, teorema de Fermat, teorema del resto chino (CRT), método euclidiano para GCD, logarítmico

Exposición, Tamiz de Eratóstenes, Función Totiente de Euler.

3) Codiciosos: problemas estándar como la selección de actividades.

4) Técnicas de búsqueda: búsqueda binaria, búsqueda ternaria y encuentro en el medio.

5) Estructuras de datos (básicas): pilas, colas, árboles y montones.

6) Estructuras de datos (avanzadas): Trie, Árboles de segmentos, Árbol de Fenwick o Árbol binario indexado (BIT), Estructuras de datos desunidas.

7) Cadenas: Knuth Morris Pratt (KMP), algoritmo Z, arreglos de sufijo / árboles de sufijo. Estos son algoritmos poco avanzados.

8) Geometría computacional: Graham-Scan para casco convexo, barrido de línea.

9) Teoría de juegos: principios básicos del juego de Nim, números de Grundy, teorema de Sprague-Grundy.

Una vez que tenga suficiente conocimiento de los algoritmos populares, puede comenzar a resolver los problemas de nivel medio.

Aprender a codificar se trata de practicar. Participa regularmente en los concursos de programación de Java. Resuelve los que no puedes resolver en el concurso, después del concurso. Además de Topcoder y Codeforces, también puede consultar los concursos de HackerEarth Challengesor Codechef.

La programación es muy práctica y práctica. Tienes que hacerlo continuamente para ser bueno en eso. No es suficiente resolver el problema teóricamente, tiene que codificarlo y hacer que la solución sea aceptada. Saber qué algoritmo / lógica usar e implementarlo son dos cosas diferentes. Se necesita tanto para ser bueno en la programación.

Autoaprendizaje Aprendizaje Parte 3: Estudia temas avanzados de Java

Lee mi artículo: la respuesta de Ganesh P a ¿Qué debo aprender a continuación después de Java básico? Aprendí los conceptos básicos del idioma y todavía necesito aprender algunos tipos de contenedores. ¿Es un buen momento para aprender patrones de diseño? Si es así, ¿cuáles son las más importantes?