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?

Mi primer reto de programación: un navegador web

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.
Diagrama de flujo de mi navegador

Sencillo diagrama de flujo de mi navegador web

¿Te podrás descargar el navegador?

Octocat, la mascota de github

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?

Deja una respuesta 0 comentarios