Learning at CodeGym's Java University

We believe more than anyone in the power of online learning. Big desire + a goal + a clear plan = a future Java developer.

That's why we created a massive course, stuffed with practice and concentrated theory. We came up with a motivational system as well as the ability to design your own individual training schedule. We introduced features that help users from different countries to communicate, help each other, and share practical experience. And then one day we thought, why not take this further?

This was the genesis of Java University, where over the course of a year we help students of various ages to become Java developers.

How our Java University differs from other courses

Our focus is not scattered across dozens of programming languages and skills. We teach something for which we have long demonstrated our experience and expertise: software development in Java. We teach people who have the clear goal of becoming a Java developer. We teach people who are ready to study regularly, without gaps or long breaks.

How the course is structured

1. The main distinctive feature is "live" classes with experienced teachers and Java developers. They are held twice a week for 2 hours. During class, teachers go over new theoretical topics with students, dig into the most difficult parts of the homework, and answer students' questions.

2. After each class, students receive homework: before the next online class, students are expected to work through a certain number of lessons and solve some number of tasks in the CodeGym online course.

If the student can handle this, then we can be confident the material has been learned well. And if something remains unclear, students can always ask a question and get help: the student group has a chat where teachers and course curators provide assistance.

3. We've divided all the training material into topical modules that last from one and a half to three months. In addition to regular online classes and homework involving solving tasks, each module leads students to complete a practical project that will help consolidate skills. And it will do something cool, too!

4. The "Become a Java developer in 12 months" course goes far beyond Java basics. In the final modules, students learn how to work with databases, Hibernate, and Spring + Spring Boot. And as a finale, they complete a large group project.

5. We are 100% convinced that students who complete all the training modules, successfully complete all the homework assignments, and defend all their final projects are ready for employment as junior developers. That's why we issue diplomas to our graduates that attest to their qualifications, and we help them create a resume to find a job.


The course consists of 5 learning modules and 1 hands-on module (a group project):

1. Java Syntax. This module is dedicated to statements, data types, getting to know the IntelliJ IDEA development environment, loops and conditional statements, arrays and functions, objects, classes, and working with strings. Students will also get acquainted with the basics of OOP, lists, generics, collections, exceptions, I/O streams, and working with dates and times. At the end of the module, we introduce Git and you write a final project.

2. Java Core. We dive deeper into OOP: encapsulation and polymorphism, composition, aggregation and inheritance. Abstract classes. Stream API. Type casting, calling constructors, and the organization of the Object class. Recursion, introduction to threads, inner/nested classes. Serialization. Annotations. Sockets. Final project.

3. Java Professional. Garbage collection and reference types in Java. Design patterns. Development methodologies. Basics of Maven. Introduction to Guava, Apache Commons Collections, JUnit and Mockito. Logging. Network organization. Software architecture. HTTP/HTTPS protocols. Servlets, servlet containers, Tomcat Introduction to MVC. Web services. Final project: Servlet-quest contest.

4. Working with databases. Hibernate. Introduction to databases. Installing a DBMS. Data types. Selecting data. Database transactions. Database design. JDBC, ORM, Hibernate. Final project.

5. Spring + Spring Boot. IoC, DI. Spring. Components. Beans. Spring modules, Spring MVC. Designing a REST API. Controller-Service-DAO app. Spring ORM. @Transaction. Spring Test. AOP (logging). Spring Security. Spring Boot. Spring JPA.

5. Final project for the entire course.

Answers to frequently asked questions

I have no programming experience at all. Will this course help me become a Java developer?

Of course! The course is suitable for beginners and does not require any prior knowledge or experience in programming. Your training will begin with the very basics, broken down into small portions of theory that you can immediately put into practice. With regular homework, diligent study, and the help of mentors, you can achieve your goal.

Will the course be useful if I already have Java experience?

Definitely. The learning difficulty increases as you progress through the course. The course comes with a truckload of difficult tasks and mini-projects. As you implement them, senior developers will help you hone your technical skills, and career professionals will help you build a stellar resume and portfolio.

What is the course schedule? Can I combine it with employment or university studies?

We recommend setting aside a few hours a day for your studies in order to keep up with everything. Twice a week there is a 1.5-2-hour lesson with a mentor, which introduces new theory. Then you have a few days to read additional lessons and solve several tasks or write a small project. This is realistic: the main thing is a holistic approach to your studies.

What happens if I miss a class with a mentor?

No worries. Of course, your participation in class lets you immediately ask questions, but it's not the end of the world if you miss one. The course curator will share a recording of the lesson with you, and you can ask your questions in a special chat. The most important thing is how you do on your homework.

Will I be able to communicate with the teacher?

Yes, and not only with the teacher, but also with the whole support team, which consists of Java experts: the developers who created the CodeGym course, support specialists, and naturally, your course mentors.

New Java Syntax, level 1, lesson 4
Kind words for the teacher
Write a program that displays "Ellie is very smart" 5 times. Each time, on a new line. Example output: Ellie is very smart Ellie is very smart Ellie is very smart Ellie is very smart Ellie is very smart
New Java Syntax, level 1, lesson 4
My young friend
It's currently 3126. My friend was born 8 years ago. Write a program that displays my friend's birth year.
New Java Syntax, level 1, lesson 4
Declare variables
Write a program that declares the following variables in the main method: String name, int age, and String city. Note: "Declaring a variable" is the same thing as "creating a variable".