Revisión del curso: la clase magistral completa de Java

La palabra "Java" se ha vuelto tan omnipresente que incluso las personas sin conocimientos técnicos parecen ser conscientes de ello en estos días. Gracias a la gran popularidad de la...

Prefacio

La palabra "Java" se ha vuelto tan omnipresente que incluso las personas sin conocimientos técnicos parecen ser conscientes de ello en estos días. Gracias a la tremenda popularidad del lenguaje de programación, su crecimiento en varios dominios no ha tenido precedentes.

La principal razón detrás del éxito del lenguaje es su naturaleza independiente de la plataforma. El código Java escrito en una plataforma funciona en otras sin ninguna modificación. Y es compatible con la mayoría de las principales plataformas, desde dispositivos móviles hasta granjas de servidores de computación en la nube. Al ser la columna vertebral del sistema operativo Android, Java tiene una gran ventaja sobre sus contrapartes en términos de número de usuarios y contribuyentes por igual.

Cuando un idioma es tan frecuente, su base de usuarios está obligada a crecer a un ritmo constante. Y qué mejor manera de entrar en el ecosistema de Java que seguir un camino que está bien probado. Hay una gran cantidad de material de autoaprendizaje disponible para Java, incluidos libros, tutoriales de YouTube y cursos en línea.

En este artículo, voy a brindar información sobre uno de los mejores cursos disponibles en la popular plataforma de capacitación en línea, [Udemy] (http://stackabu.se/udemy). La clase magistral completa de Java de Tim Buchalka y Goran Lochert es un excelente curso para los estudiantes que ingresan al mundo de Java, así como para aquellos que ya están familiarizados con el lenguaje y buscando mejorar su comprensión de las versiones más nuevas.

Instructores

Tim Buchalka

Después de haber trabajado como ingeniero de software durante más de 30 años, no podemos pedir un mejor instructor que [Tim Buchalka] (http://stackabu.se/udemy-tim-buchalka), que es un experto en Java, Android y Python. . Ha capacitado a más de 335K estudiantes hasta el momento, lo que demuestra sus habilidades de enseñanza sin lugar a dudas. No siempre es común que una persona muy técnica sea buena para explicar conceptos a los demás, pero hace un trabajo perfecto al descomponer las cosas en un nivel básico para que los principiantes las entiendan.

Tim ha estado usando Java durante más de 15 años, y su dominio del lenguaje es evidente, ya que hace que el aprendizaje sea más una experiencia divertida que un mero ejercicio.

Algunos otros cursos ofrecidos por Tim's Learn Programming Academy son:

Goran Lochert

Goran Lochert ha sido desarrollador de software durante más de 11 años y se ha centrado en aplicaciones de escritorio, web y móviles. Es un desarrollador de Java certificado, muy versado en varias herramientas y conceptos asociados con el lenguaje, como Maven, Spring, Gradle y JavaFX.

Además, Goran es un ávido desarrollador de juegos con experiencia en motores y marcos de juego. También contribuye a un marco de juego popular llamado LibGDX.

Visión general

Este curso abarca 356 conferencias y la duración es de alrededor de 76 horas en total. El público objetivo incluye estudiantes de todos los niveles, desde principiante hasta avanzado. Al momento de escribir este artículo, más de 230K estudiantes han realizado el curso, lo que brinda credibilidad a sus contenidos.

La clase magistral completa de Java se creó teniendo en cuenta las versiones 8 y 9 de Java Development & Runtime Environments proporcionados por Oracle Corp. El curso también se actualizó para incluir la nueva versión de Java 10, pero el instructor aún se enfoca en el desarrollo a largo plazo. versiones compatibles para garantizar la estabilidad de los contenidos del curso. Sin embargo, todavía se aplica a la última versión del software.

El curso está organizado en un formato tal que cada tema tiene un código fuente asociado seguido de un desafío que se centra en escenarios del mundo real. Este desafío obliga a los alumnos a aplicar los conceptos que acaban de aprender para resolver problemas comunes en el desarrollo de software.

La calidad del contenido es excelente y se presenta de manera profesional utilizando videos HD y subtítulos en varios idiomas, con la tecnología del traductor de Google. Esto aumenta el alcance del curso a audiencias en varias ubicaciones geográficas.

Contenido

Echemos un vistazo a los temas que se tratan como parte de este curso:

Introducción

Tim comienza el curso presentándose y luego continúa explicando cómo se organizan los contenidos. También explica cómo navegar por el curso y varias configuraciones relacionadas con los videos del curso.

Configuración

Esta sección cubre cómo elegir la versión apropiada de Java y configurarla en la máquina del usuario. Tim enumera los pasos de instalación para plataformas de uso común como Windows, Linux y Mac. El IDE elegido para el curso es IntelliJ IDEA y los usuarios pueden obtener una prueba extendida para su Ultimate Edition si están interesados.

Primeros pasos

Como la mayoría de las capacitaciones, el curso ayuda a los alumnos a crear su primera aplicación Java. Tim se toma su tiempo para que los principiantes se sientan cómodos con Java Runtime Environment y luego los guía a través de la interfaz IntelliJ IDEA para facilitar el proceso de aprendizaje.

Variables, tipos de datos, operadores

Los próximos pasos son aprender sobre los componentes básicos del lenguaje y varias operaciones que Java permite realizar en los datos.

Expresiones, declaraciones, bloques de código, métodos y desafíos de codificación

Esta sección es esencial para que los alumnos mantengan el ritmo del curso, ya que cubre una buena cantidad de conceptos de Java, así como el primer desafío de programación. Los alumnos pueden aplicar los conceptos que han aprendido en los ejercicios integrados y el curso les permite verificar la corrección de su solución.

Declaraciones de flujo de control {#declaraciones de flujo de control}

En esta sección, aprenderá las diversas formas de controlar el flujo de ejecución de un programa Java, como bucles, construcciones de interruptores y declaraciones condicionales, que se tratan como parte de esta sección.

Conceptos de programación orientada a objetos {#conceptos de programación orientada a objetos}

Dado que Java es un lenguaje de programación orientado a objetos, Tim pasa una cantidad significativa de tiempo elaborando conceptos de programación orientada a objetos y su implementación en Java. La primera sección cubre clases, constructores y herencia, mientras que la última cubre composición, encapsulación y polimorfismo.

Conceptos

En esta sección se presentan algunos conceptos más de Java, como arreglos, listas, cajas, unboxing, clases abstractas e interfaces. Toda la siguiente sección está dedicada a Genéricos de Java. En las secciones subsiguientes, Tim cubre características del lenguaje como paquetes, alcance y palabras clave estáticas/finales.

Colecciones

Una sección bastante importante en términos de comprensión donde se cubren muchas construcciones útiles y sus implementaciones usando varios desafíos. Los temas incluyen el marco de colección de Java, la búsqueda, el comparador, los mapas, los conjuntos, los conjuntos hash, etc.

JavaFX

Esta sección lleva a los alumnos desde aplicaciones de interfaz de línea de comandos hasta aplicaciones de interfaz gráfica de usuario. Aprenden sobre las API y los controladores de eventos responsables de la interacción entre los usuarios de la aplicación y la interfaz. En esta sección se cubre otro concepto importante de subprocesamiento múltiple, que le da a Java una ventaja sobre sus contrapartes. Cómo cuidar la concurrencia cuando se sincronizan varios subprocesos se explica en secciones posteriores más adelante.

E/S, excepciones y sistemas de archivos

Como todos los demás lenguajes, Java proporciona a los usuarios la funcionalidad para realizar operaciones de entrada y salida. Tim explica a los alumnos los conceptos de E/S, sistemas de archivos y manejo de excepciones como parte de esta sección del curso.

Expresiones lambda {#expresiones lambda}

Las expresiones lambda, que le permiten expresar instancias de clases de método único de manera más compacta, son una de las funciones destacadas de Java que brinda a los usuarios funciones de programación funcional. Por lo tanto, es importante desarrollar una buena comprensión sobre el mismo.

Expresiones regulares

Otra característica útil que ayuda, especialmente en el campo de la analítica, son las expresiones regulares. Con el uso de clases de coincidencia de patrones, RegEx se convierte en una característica poderosa para cualquier idioma.

Depuración y pruebas unitarias

Un programador nunca subestimaría la criticidad de las habilidades de depuración para solucionar los problemas que surgen durante la codificación. Tim, al ser un programador empedernido, lo sabe muy bien y lleva a los alumnos a través de los detalles de la depuración y las pruebas unitarias. Elabora el uso de puntos de observación para recorrer el código y comprender su ejecución y presenta la suite JUnit utilizada para pruebas unitarias junto con ejemplos de afirmación.

Bases de datos

La conectividad de la base de datos es imprescindible para los lenguajes de programación en estos días, y Java no es una excepción. Tiene varios mecanismos para acceder a muchos tipos diferentes de bases de datos a través de las muchas bibliotecas disponibles para el idioma. El curso se enfoca en una herramienta de base de datos de código abierto SQLite, cómo usar declaraciones SQL para realizar varias operaciones de base de datos y cómo usar las API de conectividad de base de datos de Java para acceder a la base de datos desde código Java.

Programación de redes {#programación de redes}

Una opción popular para aplicaciones de red, Java ofrece un marco sólido para diseñar e implementar aplicaciones cliente-servidor. La sección explica varias interfaces que proporciona Java para operaciones HTTP.

Módulos Java 9

Un concepto relativamente nuevo, los módulos Java se introdujeron en la versión 9 del JDK. Como sugiere el nombre, los módulos ayudan en la categorización de las funciones, es decir, JPMS. Esta sección presenta los tipos de módulos, cómo declararlos y su uso real.

Migración de proyectos Java a la versión 9

Una sección importante hacia el final del curso ayuda a los alumnos a migrar proyectos Java escritos en una versión anterior a la versión 9 más nueva. Estos pasos brindan orientación para estructurar el proyecto de manera modular, categorizar los archivos de configuración y resolver las dependencias del proyecto. Es importante considerar las funciones que ofrece JDK 9 para comprender el proceso de migración de versiones anteriores a versiones más nuevas.

Material adicional {#material adicional}

La sección final incluye una lista de otros cursos ofrecidos por Tim en Learn Programming Academy y una lista del código fuente organizado según las secciones del curso.

La lista de contenidos parece bastante exhaustiva, ya que Java ha evolucionado hasta convertirse en una gran naturaleza durante el período de varios años desde su introducción. Tim, sin embargo, ha hecho un trabajo fantástico cubriendo la mayoría de los conceptos importantes en una buena cantidad de tiempo.

Características

Alistando algunas otras características del curso aquí:

  • La interfaz proporcionada para los desafíos de codificación parece intuitiva para los estudiantes, ya que tiene soluciones integradas y un marco de prueba en conjunto. Esto alienta a los alumnos a crear pruebas unitarias para su código.
  • El instructor continúa revisando los conceptos aprendidos en las secciones anteriores para proporcionar a los alumnos aún más práctica y una comprensión más sólida.
  • Tim no solo lo capacita en construcciones importantes de Java, sino que también le brinda consejos y trucos de codificación avanzados utilizados por los programadores de manera profesional. Esto es especialmente útil para estudiantes de nivel intermedio/avanzado.
  • El curso proporciona un certificado de finalización y acceso de por vida al material del curso después de la conclusión. A medida que el contenido del curso sigue actualizándose, esto demuestra ser un proceso de aprendizaje continuo para los estudiantes interesados. Acreditaría esto como la razón de muchas de las miles de reseñas de 5 estrellas.

En general, este curso es un paquete completo para que los estudiantes comiencen su viaje al magnífico mundo de la programación Java.

Ventajas

Aquí hay algunos aspectos positivos sobre el curso que se destacaron:

  • Tim ha sido uno de los 10 mejores instructores en los premios para instructores Udemy de 2015, lo que dice mucho sobre su credibilidad y dominio de Java, así como de la plataforma de tutoría en línea.

  • El curso no solo se centra en las plataformas de escritorio, sino que también habla de las aplicaciones de Android. Los alumnos pueden utilizar el conocimiento obtenido en el curso para ingresar al ecosistema de dispositivos móviles en rápido crecimiento.

  • El contenido del curso no se limita solo a Java, también habla de herramientas y prácticas utilizadas por los desarrolladores para aumentar la productividad en general. Un ejemplo es una herramienta muy conocida utilizada por los desarrolladores, DiffMerge.

  • Si están interesados, los alumnos también pueden ayudar a los instructores a generar el contenido del curso, siempre que tengan las habilidades.

Contras

Como con todo, este curso tiene algunas áreas que necesitan mejoras:

  • Mientras miraba los desafíos, sentí que se enfocaban más en la parte cubierta en esa sección. El instructor revisa con frecuencia los temas cubiertos anteriormente como parte de las conferencias del curso, y si se hace lo mismo con los desafíos, ayudaría a los estudiantes a comprender mejor las cosas.

  • Como los videos del curso son de alta calidad, la transmisión de video a veces se retrasa un poco. El rendimiento mejora con resoluciones más bajas, sin embargo, la experiencia general se degrada al hacerlo. Esto podría ser un problema de ancho de banda, pero se experimentó en más de un dispositivo. Esto es probablemente más una queja sobre la plataforma que sobre el curso real, pero vale la pena señalarlo.

Conclusión

Para resumir, el curso está muy bien construido en torno a la mayoría de los conceptos importantes de Java y ayuda a los alumnos a comprender el contenido que se ofrece desde un nivel básico. Tim hace un trabajo encomiable al cubrir tanto la profundidad como la amplitud de la inmensidad de Java, ¡y mantiene el contenido actualizado al mismo tiempo! Los desafíos del mundo real motivan a los alumnos a esforzarse y los preparan para resolver problemas de programación de manera profesional. Seguramente recomendaría La clase magistral completa de Java para que los entusiastas aprendan Java y lo aprendan de los expertos.