How about a whole new approach to learning programming and education in general? Unlike anything you've seen before. How about a learning process that has an objective, a way to get there, and produces results?

If that's what you need, then you've come to the right place — an online course to learn how to program in Java

1. The learning is baked into an online game

You perform tasks and receive rewards. There's likely nothing confusing or unusual here. The tasks include a lot of variety: reading code, solving problems, educational videos, fixing mistakes in code, adding new features, big tasks, writing games, and much more.

You might also have to write programs for your robot to fight with your friends in an "arena" or something.

2. Only the essential

To avoid making the course drag on for five years, it includes only the absolutely essential. The course includes everything to master core Java and key programming concepts.

3. Solid approach to learning

The complete course consists of 500 mini-lessons and more than 1200(!) exercises. The tasks are small, but there are lots of them (lots and lots). In fact, it's the minimum you'll need to do to gain valuable experience.

There is also work in pairs, various games, big tasks, real projects, and other types of practice.

4. You can't complete the game without becoming a programmer

All the course is divided into levels. You can get to the next level only if you have completed most of the tasks in the current one. From the small and easy to the big and very useful. Anyone who reaches the end will have accumulated 300-500 hours of practical experience. That's a serious bid for victory.

5. Targeted preparation for a job interview

The last levels of the course are dedicated to resume writing, preparation for a job interview, and developing skills required for teamwork.

You may also be interested in the "five-year plan for programmer progress" and the "five-year roadmap for programmer possibilities".

6. You can perform the tasks right on the website

This is very convenient and efficient. As soon as you've figured out a new task, you can immediately start completing your own by analogy. If you want to perform the tasks in an IDE, there's a plugin that lets you get a task in two clicks and submit it for verification in one click.

A lesson, plenty of examples, the ability to complete tasks right on the website or in an IDE – the gap between theory and practice has never been so small.

7. Instant task verification (less than a second)

Have you submitted work for review and had to wait a week because the person who had to check it is busy?

On CodeGym, you press "Run/Verify" and get compilation results and/or task verification results almost instantly.

8. CodeGym loves it when you're on social networks while you study

There are groups dedicated to CodeGym on Facebook and Twitter. In these groups, you can discuss tasks, share your achievements with friends, watch educational videos, and ask for help.

9. Full coverage of the material

Our lessons include many links to various websites and additional resources, where you can read alternative explanations of the material. It is important for you to understand the material, not that you learn it all from one source.

10. To become a programmer, all you need is your brain and a computer

It will take from 3 to 6 months, depending on how much time you dedicate to the exercises.

11. Support

As you complete hundreds of tasks, you'll definitely have questions. To help, we've created a special "Help" section, where you can ask your questions about tasks. Other CodeGym students, moderators, volunteers, or the website's founders will answer your questions.

12. Community

We believe there is power in unity. That's why we created several sections for communicating and sharing information:

1. In the "Forum" section, you can ask any programming-related question (except for questions about tasks — there is the "Help" section for that).

2. In the "Chat" section, you can shoot the breeze with like-minded thinkers about whatever you want.

3. In the "Articles" section, you can read articles about learning Java, programming trends, and career development. Also, you can post your own articles that you think will be of interest to our community.

What's more, our community is the perfect place to find a job through networking. Don't hesitate to ask smart questions and get smart answers. The more active you are in helping others, the better your chances that another community member will invite you to join his or her project.