Education shouldn't be boring. That's one thing we are sure of! It can and should be changed. And that's just what we've done: we developed the CodeGym programming course, which we dare say is unlike any other online course. It has no long video lessons or lists of assignments with unclear accountability expectations. Instead, there is a clear goal, special learning tools have been created, and what you need to do is well-defined.

Top 12 features of CodeGym lessons

Usually, online programming courses take the form of textbooks or video tutorials. We've taken an entirely different approach. We've created a series of short lessons on Java, stuffed them with practical exercises, and provided "smart" tools for verifying that your solution is correct. And all this is wrapped up in a consistent and holistic course!

1. CodeGym is kinda like a game. We've got levels and "leveling up"

In other words, we help you level up as a programmer. These aren't just Java lessons with examples. You read brief lessons and then immediately complete tasks and rewarded. It's logical and understandable. You'll complete a wide variety of tasks. The most common tasks involve writing code to solve some problem. Additionally, you'll need to learn to read others' code, fix bugs in it, improve it (refactor it), add new features to it.
Sometimes you'll be forced to watch interesting videos about people in the tech world. Those learning to program from scratch also benefit from typing in code. Those who progress far enough will encounter big tasks, which are actually mini-projects: completing these will involve writing a few interesting programs in a more serious way (small games, an online chat application, etc.).

2. Java lessons, and nothing else!

Like any other programming language, you can study Java for a loooong time. To not get too bogged down at the very beginning of the journey, we've eliminated topics that beginners don't need. Programming lessons for beginning Java developers are often filled with such fluff. CodeGym retains only what is most essential. And these aren't empty words: we've analyzed hundreds of job openings to arrive at this approach. So our claim is that the course includes precisely those topics that an aspiring junior Java developer needs to know to find a job. Becoming a junior Java developer will take you between three months and one year, depending on how much time you dedicate to your studies.

3. 500 mini-lessons and 1200+ exercises

This course has a lot of practice. A LOT, LOT, LOT, LOT of practice! These aren't just words: the course contains 500 mini-lessons (i.e. short lessons on Java) and more than 1200 exercises. The vast majority of them include small tasks (but there are thousands of them!). By completing them all, you'll get the minimum experience necessary to get on your feet and tackle more serious problems. In addition, the course has so-called "big tasks" (which are actually mini-projects) and useful videos.

4. Four quests, forty levels, tons of practical knowledge

The course is broken into 4 quests. Each quest is 40 levels that you'll have to pass. The first quest includes Java lessons that assume no prior knowledge of the language—just the very basics, the syntax, and a huge number relevant tasks. There are super easy tasks. And to help you master the material, there are more difficult task that will require you to plow ahead and use google. And there are challenging tasks for the bravest students. You can only advance to the next level once you've completed most of the tasks in your current level. If some of them are just too tough to crack, they can be safely postponed for later. Working this way, when you get to the end you'll have about 500 hours of practical programming experience. That's a solid basis for a bid to become a junior Java developer!
Java Syntax This quest is for beginners. The tasks and lessons about Java in this quest will help you master the language's basic constructs (variables, conditional operators, loops, methods, classes, and basic information about collections and objects)
Java Core In this quest, you'll learn the basics of OOP, and get acquainted with serialization and method overloading
Java Multithreading Multithreading is the most important word in this quest. But that's not all we'll talk about it here. We also address how the Object and String classes are organized and many other things. You can study this quest and the next simultaneously.
Java Collections Collections are to Java programmer what dynamite is to a prospector. You need to know about them, but it's important to understand how to use them. This quest also includes a lot of information about working with JSON, Git, RMI, and DynamicProxy—and a little bit about JavaScript

5. Do the tasks wherever you like

Complete the tasks and submit them for verification:
  • Right on the website. CodeGym is not just Java lessons for beginners with exercises. It's also an interactive platform for completing your tasks. This is convenient: you explore an example in a lesson, and then you have to complete a very similar task. These small tasks, which reinforce the material, can be completed directly on the CodeGym website. We developed our Web IDE just for this.

  • To complete tasks that require more time, we recommend using the IntelliJ IDEA professional development environment. To make things more convenient for CodeGym students, we've developed a helpful plugin for this popular IDE. The plugin lets you get the task conditions in a single click, and just as easily and quickly submit your solution for verification.

  • After being submitted for verification, your code is synchronized across your various computers/devices if you use multiple devices.

6. Instant task verification

Students have firsthand experience with this situation: your assignment is finished, but your teacher doesn't check it. That's exactly how it works with face-to-face courses where a single teacher provides beginner Java lessons, has to deal with two dozen students (or more) simultaneously, and simply doesn't have the time to check each student's work. On CodeGym, you'll find out whether your solution is correct in an instant. You:
  • write your solution on Java;
  • press the "Verify" button: your solution is submitted to the CodeGym server!
  • A moment later, you learn whether your solution is correct and get recommendations if you have errors.

7. CodeGym recommendation system

It's very difficult for a beginner to catch any programming errors that the compiler misses. You've finished the task, but you don't know if your solution is correct? No problem: The CodeGym recommendation system will indicate where errors are hiding in your solution.

8. Help page

If the CodeGym recommendation system isn't able to help you, and you find yourself firmly stuck while trying to complete some difficult task, take a look at the help page—this service won't leave you to face your problem alone. Another CodeGym student or staff member will certainly help you.

9. Groups based on interests

Our community consists of interest groups where you can read articles written by other students and industry professionals, write your own posts, and comment on and discuss Java or other topics related to programming.

10. Social networks and CodeGym

Follow CodeGym on Facebook. In our social networking groups, you can discuss IT news and Java programming lessons, share your achievements with friends, watch video lessons on Java, or ask for help. Facebook: https://www.facebook.com/codegym.cc/ Google+: https://plus.google.com/115046242285038982598 YouTube: https://www.youtube.com/channel/UCkrztSaBYw1aZO8a9lB9ykA Twitter: https://twitter.com/codegym_cc

11. Scope of the material

The course lessons, as well as articles posted in groups, contain many references to other Java resources, books, and videos. This is no accident. The way the material is delivered is designed to help you develop an essential programmer's skill: the ability to search the Internet for the information you need. Have you found good beginning Java lessons that supplement CodeGym lessons? That's absolutely wonderful! CodeGym's purpose is for you to gain new knowledge and apply it in practice.