Java

Reto de programación: un navegador web en 5 días

Como te dije la semana pasada, estoy convencido de que la mejor forma de aprender es mediante proyectos. Ya te comenté también que comencé a prepararme el examen OCP de Java 8, pero que me vi abrumado ante la cantidad de información nueva que tenía que asimilar. Pues bien, con este reto de programación reanudo mi formación autodidacta para superar el examen de programador profesional en Java.

¿Por qué un reto de programación? ¿De dónde he sacado la idea?

La idea la he sacado de la web HackeandoIdiomas, donde Olga, la autora, demuestra que se puede dominar una lengua en poco tiempo, si buscas un método que se adapte a tu manera de aprender y, muy importante, si te fijas una meta en el tiempo. Si estás interesado en aprender alguna lengua, échale un vistazo a su página, porque puedes encontrar muchos consejos para acelerar tu aprendizaje (y, así, aprender italiano en una semana).

Pues bien: uno de los consejos que da es, como te he dicho, fijarse una meta en el tiempo. Fíjate que, cuando aprende un idioma, ella habla de "retos". Olga escoge un idioma y se fija el objetivo de ser capaz de mantener una conversación fluida con un nativo en una semana, o en tres meses.

La idea detrás de estos retos es que así te motivas más a aprender, ya que te centras en aprender lo imprescindible y obtienes un resultado a corto plazo. En mi caso, aunque mi objetivo a largo plazo se trate de superar el examen de OCP, los objetivos que voy a valorar van a ser a corto plazo.

Ojo, que esto no consiste en "correr", y hacer lo más posible en una semana. Así no aprendes. Primero, evaluas qué puedes hacer en el periodo de tiempo en el que quieres efectuar el reto. Después, te propones cumplirlo. Así de fácil.

¿Te unes a mi primer reto de programación? ¡Un navegador web en 5 días!

Compártelo

¿Qué voy a aprender con este reto?

Con este reto voy a aprender varias cosas:

  • check
    A diseñar antes de empezar a escribir código, mediante diagramas de flujo (como la imagen que te muestro más abajo).
  • A diseñar una interfaz utilizando JavaFX en IntelliJ. En principio la interfaz va a ser sencilla, tal y como ves en el proyecto que he diseñado con Gimp, pero si me queda tiempo la haré un poco más atractiva.
  • A crear programas multithread, es decir, con varios hilos de ejecución. Si un programa sencillo consiste en una lista (hilo, o thread) de "órdenes" que se van ejecutando, en este habrá por lo menos dos: un hilo se encargará de la interfaz y, el otro, de conectarse a internet y cargar la página. Si utilizase un solo hilo, la interfaz se quedaría colgada, a la espera de que se terminase de cargar la página. Para realizar estos hilos secundarios utilizaré los métodos descritos en los objetivos del examen.
  • A realizar de manera rutinaria otros elementos secundarios, que están también incluidos en el examen, como son la internacionalización de texto (con el fin de que sea traducido con facilidad), así como la implementación de métodos que cada objeto hereda de la clase Object, como son toString(), equals() y hashCode().
  • check
    A habituarme a utilizar git, una herramienta de control de versiones.

Sencillo diagrama de flujo de mi navegador web

¿Te podrás descargar el navegador?

Octocat, la mascota de Github

¡Sí! Sincronizaré mi proyecto con un repositorio en Github. No solo te podrás descargar el navegador, sino que también podrás descargarte el código para modificarlo como quieras.

Dentro de una semana te contaré cómo me ha ido, y haré la presentación en sociedad de BerenWeb, un navegador web hecho en Java.

¿Y tú? ¿Cómo te planteas tu aprendizaje? ¿Tienes algún proyecto pensado?

Miguel Callejón Berenguer

Share
Published by
Miguel Callejón Berenguer

Recent Posts

ZonedDateTime e Instant en Java 8

¿Qué son ZonedDateTime e Instant en Java 8? Esta materia entra en el examen de…

6 años ago

Internacionalización y localización en Java

¿Sabes cómo funciona la internacionalización y localización en Java? O, antes de continuar, ¿sabes qué son…

6 años ago

Cómo exportar un proyecto JavaFX en IntelliJ

¿No sabes cómo exportar tu proyecto JavaFX en IntelliJ, y te gustaría aprender? Yo también…

6 años ago

Cómo utilizar instanceof en Java 8

¿Sabes cómo utilizar instanceof en Java 8? Con esta entrada comienzo una larga serie que…

7 años ago

Curso gratuito de IntelliJ Community Edition ¡en español!

¡ACTUALIZADO A LA VERSIÓN 2019.2.4! ¿Quieres un curso gratuito de Intellij, en español?  Directo al…

7 años ago

Cómo diseñar una interfaz para Android

Sé lo que estás pensando. Tienes una buena idea para una app, tienes claro la…

7 años ago