About CodeGym

What is CodeGym?

CodeGym is an interactive, gamified online Java programming course.

The course consists of four quests (Java Syntax, Core, Multithreading, Collections), each consisting of 10 levels. Each level includes short lectures on Java theory (one lecture per topic) and tasks to consolidate the obtained knowledge. Access to materials opens sequentially, as you progress through the course.

The main features of the course:

  • Learning in a game format. CodeGym is a futuristic world with its own characters and history. The character you need to “upgrade” is Amigo the robot, who learns programming from scratch. For completing the tasks correctly you get bonuses (“dark matter”), which is then used to open new lectures/levels and move further in the course.

  • The necessary minimum of theory with lively, interesting examples. The course only includes knowledge that is really necessary for employment.

  • Learning by practice. 80% of the course is dedicated to practical tasks. Tasks appear from the first lessons, and their complexity gradually grows. You can solve tasks directly on the website, which includes instant verification of your code and recommendations on how to improve it.

  • Preparation for employment. Starting from the middle of the course, students begin to write mini-projects (for example, an application for a restaurant, a chat bot, games) and receive assignments focused on preparing for interviews.

  • Help from course developers, students and CodeGym alumni. You can ask the community for help in solving complex tasks, discuss any issues related to training and job search. CodeGym is a global community of programmers.

The goal of the entire course is to get real Java programming skills, so that you can easily work as a programmer.

What will I learn from CodeGym?

First of all, you will learn Java Core. This is the core of the Java language - everything that EVERY potential Junior Java Developer needs to know. And you will study this through practice, having solved more than 1200 tasks. From the second half of the course, you will also encounter such mini-projects as Sokoban, Star Wars games, online chat, ATM emulator, and more.

Additionally, besides Java, some of the lessons are devoted to the interview process and how to write a resume.

Where can I see the curriculum?

Detailed curriculum and a list of studied topics are available in quest maps: Java Syntax, Java Core, Java Multithreading and Java Collections.

Do you issue diplomas/certificates?

Programming is a practical activity. Therefore, no potential employer will believe even the most beautiful piece of paper confirming completion of a course, until they test the real skills. Therefore, we do not issue certificates.

Instead, we teach programming in such a way that a CodeGym graduate can get a job regardless of whether he has a diploma, certificate or other educational trophies.

How will learning on CodeGym benefit me?

Learning on CodeGym will help you gain programming skills in the most efficient way.

It’s impossible to become a programmer just by reading a book or watching a video! To learn how to program you need to...well, program, and form the "correct" programmer thinking.

To help with this, there are more than 1,200 tasks of varying complexity and automatic verification. By solving all of the tasks you get more than 300-500 hours of practical experience. The combination of theory, practice, and - most importantly - review of the code you write - this is what CodeGym provides.

Where can I find reviews about CodeGym?

  1. You can find the Reviews section on our website. Here you can leave your feedback and read the opinions of other users.
  2. You can also search for reviews on the Internet. Type "CodeGym reviews" in Google and you'll get quite a few results. We do not filter out third-party reviews, so you can not only see positive reviews (of which there are many more, which is pleasing), but also constructive and not very constructive criticism.

PS: Reviews are subjective, so you can only form your own opinion once you try something yourself. Try the first level on CodeGym - it's totally free.

About Tasks

What does "epic tasks" mean?

You may have encountered tasks labeled “Epic”. These are so-called “tasks from the future.” They are based on the theory from up to three upcoming levels. This was done intentionally. If you really want to solve the task now, but you do not have enough knowledge, you will need to do your own research. This is a useful skill for any programmer. Otherwise, if you want to proceed through the course, just put the task aside and return to it later, once you acquire the necessary theoretical knowledge.

What is so special about your tasks? Isn't it better to program yourself and not pay for a "collection of tasks"?

Firstly, it is not at all easy to find tasks which will help you develop in the right direction, especially for a novice developer. Secondly, even if the program works correctly and provides an answer, this does not mean that it has been solved correctly.

This is why the automatic verification system plays an important role in our course. Our smart validator will instantly check your task, analyze any errors and send recommendations to eliminate them.

How many and what kind of tasks do you?

There are more than 1200 tasks in four CodeGym quests.

They may differ in content:

  1. Code Entry. This is the simplest type of tasks consisting of mechanical code entry. There are not many of them, but they are also needed at the initial stage of education, so that the student gets used to writing code.

  2. Correcting the completed code to match the conditions of the task.

  3. Writing your own code to solve the task.

They may differ by chronology:

  1. Tasks for the covered material - These tasks usually come straight after lectures. Most often them are simple, although anything can happen 😊.

    Tasks "from the future." These are tasks that will have you running a little ahead of the covered lecture material: they will have something that was not yet in the lectures. Hint: Usually the material needed to solve “tasks from the future” is given within the next level.

They may differ by volume:

  1. Simple tasks with one / several conditions.

  2. Mini-projects (available from Level 20), which consist of several sub-tasks. The result of completing such tasks is an interesting and at times useful program, for example, a small game, a URL shortener or an ATM emulator. You will create a mini-project step-by-step (the conditions are divided into 5-20 sub-tasks).

What do the task requirements mean?

In order to understand what needs to be done for completing the tasks successfully, you get a list of requirements for each task.

When you send your solution for verification, a check mark will appear next to each condition that is met. If the condition is not met - a cross will appear. This way it will be clear exactly what conditions need to be worked on, so that the task passes verification.

What are task recommendations?

Imagine your code has an error. For some reason, it does not work correctly. But why? To understand this, you need to review the code recommendations after the task verification. An automatic virtual tutor will comment on your code, point out the error and in 95% of cases will explain the reason for its occurrence.

Teaching methodology

Why you should learn Java

Java is the most future-proof programming language that is constantly evolving and improving. For more than 20 years, the Java market has firmly consolidated its status as a leader, and so far there are no prerequisites for the reduction of its popularity among developers. Despite its age, Java continues to flourish.

5 reasons to start learning Java from a career perspective:

  1. The largest number of programming vacancies is related to Java.
  2. Java developers have the highest salaries in the industry.
  3. Java developers are in demand all over the world, so this is a great opportunity to travel and work anywhere.
  4. You can write in Java for any platforms. Java programming implements the “Write once - run anywhere” principle.
  5. Java has the highest reliability and security compared to other programming languages.

Java has the highest reliability and security compared to other programming languages.

  1. Java can be mastered even if you do not have a mathematical/technical background.
  2. Java is an object-oriented programming language.
  3. Java has a well-designed API.
  4. Java has powerful development tools like IntelliJ IDEA, Eclipse, and Netbeans.
  5. A large collection of open source libraries.
  6. Excellent community support.
  7. Excellent documentation support - Javadocs.
  8. Java is an independent platform.
  9. Java is used everywhere.

In short - start learning. 😊 If you study regularly, you can become a Java developer in 6-12 months and drastically change your life.

Good luck!

How does CodeGym differ from other courses?

  • A LOT of practice: more than 1200 tasks, which includes mini-projects.
  • Online course with a comprehensive training program.
  • You can practice at your own pace at any time.
  • Instant task verification.
  • Student code analysis and recommendations.
  • Student code style recommendations.
  • Web IDE with syntax highlighting and autocompletion for completing tasks directly on the website.
  • Plugin for completing tasks through the IDE for professionals - IntelliJ IDEA.
  • Game format and plot.
  • Gamification and plot
  • A huge community where people share experiences and help each other in their studies.

What is the uniqueness of our teaching methodolody?

The uniqueness of our course is in a combination of factors.

Firstly, we focus on programming practice. The course is based on 1200+ tasks of different complexity and format, which help to immediately consolidate the knowledge gained and even run a little ahead, having dealt with some theoretical nuances on your own. To advance in learning, be sure to solve as many tasks as possible. Therefore, by the end of the course, you will have at least 300-500 hours of practical programming experience.

A smart automatic task verification system (virtual tutor) that allows students to:

  1. Instantly send the task for verification and get an answer, whether it is solved correctly or not.
  2. Get task requirements.
  3. Get comments from the virtual tutor, who will tell you what is wrong with the code and how to fix it.
  4. Get code style analysis. Distinct code is very important in teamwork.

Comprehensive preparation for employment.
The ultimate goal of passing the CodeGym course is to get a job as a Java programmer. CodeGym includes a lot to makes this happen:

  1. Java Core Lectures.

  2. Lectures on related technologies (for example, JavaScript).

  3. Tasks with an automatic code review.

  4. Active Help section, where the CodeGym development team and course students will respond.

  5. Mini projects for practice.

  6. Motivational lectures (motivation is VERY important during self-studying!).

  7. Links to additional materials.

  8. Interviews questions and detailed analysis of answers.

  9. Groups section where you will find useful materials to help with your learning.

It is important not to die of boredom when learning, so our lectures are intertwined with an unobtrusive, but interesting plot with thoughtful characters. You are Amigo, a young robot, who is taught to program on the Galaxy Rush spacecraft. In your journey you will be accompanied by very curious personalities :) You will learn the rest from the course.

Why is the lecture text so heavily decorated?

Have you noticed that in good development environments the code is also decorated? This is done to simplify perception. Our lecture texts have the same purpose.


What subscriptions do you have?

There are 2 types of subscriptions available for registration today - Premium and Premium Pro.

Premium Pro acts as an enhanced version of a Premium subscription. Premium Pro includes all features of a Premium subscription, as well as:

  1. The ability to complete tasks again, while task has status "Completed";

  2. Code style analysis;

A detailed description of each of the features, as well as a table of comparison of subscriptions, is available in the Subscriptions section. Click on the feature in the comparison table to see its detailed description.

Subscription durations and costs

You can subscribe for a period of 1 month or 1 year from the date of payment. Subscription prices are:

Premium — $ 29 / month and $ 99 / year.
Premium Mentor — $ 105 / month and $ 1050 / year.
Premium Mentor Pro — $ 200 / month and $ 1333 / year.

The Subscriptions section only shows costs associated with a monthly subscription type. To subscribe for a year, click the "Buy" button on the subscription card of the required subscription type. Next, when on the payment page, look at Step 1 and change the subscription period from "Month" to "Year" and pay for the subscription using the methods available below.

Is it possible to study without a subscription?

On our Java course, you have the opportunity to complete the first level for free. This will help you understand the features of CodeGym and assess whether our learning format is right for you. Further access will only be possible if you have a subscription.

What are the advantages of having a subscription?

A subscription gives you sequential access to the CodeGym course — from level 0 to level 40. In addition to access to the course, you get a number of features included with a paid subscription - instant task verification, recommendations and detailed information on task verification, bonus tasks, mini-projects and much more.

Monthly subscriptions include auto-renewal. What is it?

Monthly subscriptions include an automatic renewal option. Subscription will be active for 30 days from the date of payment. Automatic renewal (new payment) is initiated 1 day prior to the end of the subscription.

This is very convenient: you do not need to remember when access to the curriculum will be disabled. As a result, you get uninterrupted access to learning on our website.

Subscription auto-renewal is turned on by default when paying Visa and Mastercard cards, which is processed by Stripe on the payment page. In addition, auto-renewal subscriptions can always be disabled in the subscription settings on the site.

Do annual subscriptions include auto-renewal?

No. Automatic renewal option only becomes active for monthly subscriptions when paying by VISA and Mastercard.

Is it possible to get a 3 month subscription, for example?

Yes, you can. To do this, you will need to make three separate payments for each month of the subscription.

You need to follow this process: enter the Subscriptions section, click on the "Buy" button on the subscription card, and then pay it. Do this 3 or more times, depending on the desired duration of the subscription.

If you buy two subscriptions in a row, do they get aggregated?

If the subscriptions are of the same type, then - yes, they get aggregated, but if the subscriptions are different - they do not.

For example, you have an active Premium subscription for a month, it is valid for another 20 days, and you decide to subscribe to an annual Premium subscription. In this case, the subscriptions are aggregated, and after paying for the annual subscription, you will have a valid Premium subscription for 385 days.

If subscription types are different, they will be active at the same time and the validity periods are not aggregated.

Can we change the subscription type later?

Yes, you can change the type of subscription after the current subscription expires.

If you are on a monthly subscription, you will first need to cancel the current subscription to the course in the subscription settings on the website. Once the current subscription runs out, go to the Subscriptions page and choose a different type of subscription for payment.

If you are on an annual subscription, you will need to wait until it runs out, and only then pay for a different type of an annual subscription.

There is no option to upgrade the subscription by paying for the cost difference.

Can I cancel the subscription auto-renewal?

Yes, this can be done in the “Subscriptions” / “My subscription” section. Click on then the “Manage” button of your active subscription, then the “Disable” button.

After clicking on the "Disable" button, the subscription will be valid until the end of the paid period. No further charges will be made.

When subscribing for a month/year, will the subscription be valid until the end of the current month/year?

Subscription for 1 month is valid for 30 days from the date of payment.
Subscription for 1 year is valid for 365 days from the date of payment.

Is it possible to put subscriptions on pause?

No. It is not possible to pause subscriptions.

Will the old task solutions be available without a subscription?

If there is no subscription on the account for more than 30 days, our system starts to delete the old task solutions visible on the website or the mobile application. Unfortunately, we will not able to restore such deleted task solutions, even if you later purchase a new subscription. We suggest that you work on all of the course tasks in the Intellij IDEA project.


Do we offer courses in Python, C, C++, C#, .NET, JavaScript and other programming languages?

Unfortunately, not. CodeGym only provides a Java programming language course at the moment.

Do you have an Android/iOS app for learning?

We have Android application - Google Play

Can I study on your course if I don't have any basic programming skills?

Sure! Our course was designed for complete beginners and doesn't require any skills or experience in programming.

Do you need to be registered to save your progress?

When you first visit this page, our system will automatically assign a temporary account for you.
If you started the course on this tutorial page and then closed it, your progress will be saved automatically, unless you clear your browser’s cache.
In order to continue with the course, please go to our website. Once on the website, you will see a page like in the example below:

In the “Resent lessons” section find and click on the last available lesson, in order to continue with the course from where you left of.

How to unlock the next lesson or level

In order to proceed further in our course you need to have enough Dark Matter to do so.
Please make sure you complete the available tasks in order to gain more Dark Matter and then use it to proceed further in the course.

Low on dark matter

In cases where you see that your Dark Matter is running low or is at zero, in order to proceed further in the course, you need to complete some uncompleted tasks, which are provided to you in the course.
You can find all of your uncompleted tasks on the Home page of your profile.

Is this course free?

From Level 1 of our course you will require one of our subscriptions.

We have two paid subscriptions at the moment:

Premium costs $49/month or $499/year.
Premium Pro costs $99/month or $999/year.

By purchasing an annual subscription you will be saving almost 20%.

For more information on each subscription and their benefits, please visit: https://codegym.cc/prices

Resetting or changing of course levels

We cannot reset or change your progress, unfortunately.
The only way you can start over, is to create a new account, login and start the course from scratch.

What is a "Dark Matter"?

"Dark matter" is a so-called CodeGym course currency, which you earn by completing tasks, as you go through lectures and levels.
The dark matter is required to open new lectures and levels.
It's all part of a game-like learning process, which we had created for our students.

How to check your progress

You can see your level and the amount of dark matter next to your avatar in the header of our website, on any page.
Also, if you click on your avatar, you'll be transferred to your profile's Home page, where you will also see your current level, the amount of dark matter and where you left of (in terms of lessons/tasks).

Do you have video tutorials?

Unfortunately, at the moment, we do not have any video tutorials to supplement lecture material. If this feature becomes available it will be announced in our CodeGym group. Please make sure you join this group in order not to miss any important updates to our course or the website.

Job after our course? Will I find one?

It is possible to find a job as a Junior Java Developer after completing our course. However, you shouldn’t just rely solely on our course. Read books on Java, practice coding as much as possible, and I’m sure you’ll find a job soon enough.

How to continue from where I left of?

Once you login, click on your avatar in the header of the website, which will lead you to your profile Home page. You will find your recent lessons and uncompleted tasks listed there. Otherwise, you can click on the Course button in the menu to the left of the website, then click on the Quest you are currently on (it will have a ‘in progress’ button), which will lead you to the quest map (i.e. list of levels for that quest). You should then see the ‘in progress’ text next to the level your are on and Current Lesson icon to the right of the ‘in progress’ level.

How to start learning?

Click Start on our landing page. When you go through all of the welcome pages, you'll save your progress by registering and will be able to continue with the course.

Or you can create an account here. After you sign up, you'll be transferred to the first lecture in the course.

Have fun :)

How do I register?

Follow this link to create an account and join our community.

Can you download course for offline learning?

Sorry, but you can't download the course for offline learning.

How long it takes to learn, and how to master the program?

For this, you need the desire to learn. Desire – is the key to successful learning. If you study intensively on our course (10 – 15 hours per week) - solving tasks, thoughtful reading lectures and books, after six months you can get your first job as Junior Java Developer and completely turn your life around.

What software should I install?

You will need to install the IntelliJ IDEA software and the latest Java Development Kit pack (JDK) to supplement our course.

Also, you will need the "CodeGym" plugin for IntelliJ IDEA. How to install and where to get the software, you can learn here and here.

I know the basics of Java. Will the CodeGym course be useful to me?

Although our course is designed for beginners, it can still make you sweat at higher levels. Try it. I think it will be useful to you. In any case, you will at least refresh and supplement your knowledge of Java basics.

Is the CodeGym course for beginners?

Yes! Our course is designed for learning from scratch and doesn’t require any programming skills. Our course will give you all the knowledge and skills to get your first job as a Junior Java Developer.

Get started right now. After 6 months you will be able to undoubtedly change your life for the better :)

Is knowledge of the C/C++ programming language is necessary to start learning this program on the course?

It’s NOT necessary to know the basics of C/C ++ or any other programming language to begin learning in our course. Our course is designed for learning from scratch and doesn’t require any programming skills.

Is Java is an easy or difficult programming language to learn?

It depends with what programming language you compare it with. For example, C++ has a higher entry threshold than Java and, accordingly, it will be more difficult to master.

Python has a lower entry threshold, but because of the punning syntax, the beginner can be more confused.

JavaScript is complex both in understanding and in syntax.

Java has an average entry threshold. Due to its strict syntax, Java is much easier to understand. Therefore, we recommend Java as the first studied programming language, since it is optimal.

Which programming language is the best?

Each programming language is intended for different purposes. For example, HTML, CSS, and JavaScript are intended for creating the UI interfaces, objective-C is intended for creating apps on the iOS platform etc.

Java has taken the best from C and C++ and became a better version of both these languages. " Write once, run anywhere". This is the main Java advantage.

We provide Java programming language course, because we are sure that Java – is the best programming language in the world 😊, and here’s why:

  1. Java is easy to learn;

  2. Java is an object-oriented programming language;

  3. Java has a well-crafted API;

  4. Powerful development tools such as IntelliJ IDEA, Eclipse, and Netbeans;

  5. A large collection of open source libraries;

  6. Excellent community support;

  7. Java is free;

  8. Excellent documentation support – Javadocs;

  9. Java is an independent platform;

  10. Java is everywhere.


  1. The largest number of vacancies in the field of programming is in Java;

  2. Java developers have the highest salaries in the industry;

  3. Java developers are in demand all over the world, so it's a great opportunity to travel the world;

  4. Java is the most promising programming language that’s constantly evolving;

  5. You can write in Java for any platforms;

  6. Java has the highest reliability and security in comparison with other programming languages;

So, stop wasting your time and start learning 😊 After six months you can become a Junior Java Developer and completely change your life for the better.

I want to become a programmer. What should I do?

First, you need to decide on what career path you would like to take once you become a programmer. What would you like to do? Games, applications for Windows/Mac, mobile apps and games, interfaces? If you can’t say for sure, just start from something! Once you start, you will soon find out whether you enjoy it or not. If you don’t like it - just try something else, and so on until you find what you enjoy the most.

If you don’t know where to begin, just try our course! Java offers many opportunities for your talent. To begin with, you can develop programs for the household items if you want. For example, you can program the lighting system in your house, you can write code for your smart vacuum cleaner, refrigerator, microwave, and other home electronic devices.

If you want to try something more serious, you can try creating Android apps. Yes, all of Android was written and continues to be written in Java. Therefore, you can create any apps for the Android platform.

If we are talking about computer games, you can create plugins and modules for Minecraft. Minecraft was written in Java too.

That’s not everything what you can do by using Java. Java is one of the most secure among the programming languages. Therefore, Java is often used to create different security systems for the financial sector and other industries, where security is of paramount importance.

I can talk to infinity about performance and advantages of Java, but it is better to try once than to listen a thousand times, don’t you agree? :) So, start right now.

Good luck and have fun 😊

From what age can I learn on your course?

Everyone, regardless of age, can start learning on our course.

IntelliJ IDEA, CodeGym Plugin, JDK

Installing CodeGym plugin in Intellij IDEA

In order to view the CodeGym task menu in Intellij IDEA, you first need to install our plugin.
You can find our plugin in the Downloads section of your profile page on our website.

Once you've downloaded our plugin, please follow these steps to install it in Intellij IDEA:

1) Open Intellij IDEA, then click on File -> Settings in the pop-up menu (or press Ctrl+Alt+S keyboard combination). For MAC-platforms: IntelliJ IDEA / Preferences.

2) In the Settings menu window find and click on the "Plugins" option in the list on the left.

3) At the bottom of the "Plugins" section find the "Install plugin from disk" button and click it.

4) You will then see a Choose Plugin File window pop up. Find the directory where you downloaded our plugin to, select the plugin "CodeGymIdeaPlugin.jar" file and click OK.

5) Our plugin should now appear in the full list of all installed plugins and will be named "CodeGymHomeWork". Please make sure it is ticked (activated).

6) Click "Apply" and "OK" in the Settings window.

7) Intellij IDEA will then prompt you to restart the software to activate changes - please do so.

After Intellij IDEA restarts you should see the plugin menu buttons at the top right.

What is a "secret key"?

It's the unique number of your account. You can find it in the settings page of your profile section on our website. The secret key is used for initiating your account when you work with our plugin in IntelliJ IDEA, so rarely you can see the message with the request to input your secret key in order for the plugin to work correctly. In the plugin, the secret key is displayed in file called "CodeGymPlugin.properties".

Also, with the help of a secret key, you can login on our site, so do not give or show your secret key to anyone, unless someone from CodeGym support asks you, in order to help you with an issue.

The task code in IntelliJ IDEA is highlighted in red. What should I do?

Most likely, you haven't connected the SDK in IntelliJ IDEA. To fix this, in IntelliJ IDEA go to File -> Project Structure -> Platform Settings -> SDKs.
On the Classpath tab, you need to connect all the jar files (they can be found at «Java path»/jre/lib, On Windows, the default Java path is — C:\Program Files\Java).

What is IntelliJ IDEA and why do I need it?

IntelliJ IDEA is one of the most popular integrated development environments (IDE). It is used by most Java programmers. When you get a job, you will most likely write code in IntelliJ IDEA. This IDE significantly speeds up the work of the programmer and helps develop good coding style. To allow you to perfect your skills under real working conditions, we've developed a special plugin for completing CodeGym tasks in IntelliJ IDEA. You can use it right in IntelliJ IDEA to open a list of available incomplete jobs and submit them for verification in one click. You'll learn more about this on the 3rd level of the Java Syntax quest.

How do I download and configure the plugin?

The third level of the Java Syntax quest has detailed instructions on loading, installing, and configuring the CodeGym plugin.

My Internet connection uses a proxy server, but the plugin can't authenticate on the server. I configured the plugin configured according to the instructions. What's the problem?

You need to configure the proxy for IntelliJ IDEA. Link to instructions on how to configure the proxy: https://www.jetbrains.com/help/idea/settings-http-proxy.html