We at JetBrains are always looking for better learning and teaching opportunities for professional developers and teachers and those who are just starting out in the world of development. We want to help people learn and teach programming and believe the best way to do this is through practice.

Are you a student?

Enjoy an easy interactive way of learning while programming. Get instant feedback and quick results using an intelligent development tool.

Are you a lifelong learner?

Learn by doing in an encouraging environment helping you to stay motivated. Experience the joy of project-based learning.

Are you a teacher?

Let students independently complete their assignments with the assistance of your integrated tests. Be confident they are doing right.

Are you a MOOC or book author?

Share code examples that learners and readers can easily try. Collaborate with learners without losing the context of their learning journey.

Are you a professional developer?

Reduce skill gaps with a learning process that is highly integrated with your every-day development process.

Educate for stronger teams and communities by sharing your knowledge. Promote best practices you care about.

Get Started

I am a:
I am interested in:
I have already installed:

Install EduTools Plugin

IntelliJ IDEA Community
with EduTools plugin

Introduction to JavaNew Beta

Please welcome a series of courses on the main Java concepts: Introduction, Statements and Arrays, Collections, and Classes. They include both the theory and coding practice with inline IDE tips and tricks.

To take the course, go to Browse Courses and choose the course you want to start with.

Please note, the courses are Beta. Stay tuned for upcoming improvements and share your feedback in our tracker or twitter.



Kotlin Koans

Do you want to get started with Kotlin, the powerful new programming language from JetBrains, but don’t know where to begin? The Kotlin Koans course is a series of exercises specially designed to get you familiar with the Kotlin syntax.

To take the course, go to Browse Courses and choose Kotlin Koans from the list.



Introduction to Python

Interested in learning programming with a general-purpose language? The Introduction to Python course is specially designed for programmers with little or no previous coding experience.

To take the course, go to Browse Courses and choose Introduction to Python from the list.



Integration with Stepik

Stepik is a learning management and MOOC platform, which can be used by an educator to share courses with you privately. Stepik has a lot of public courses available, which are all free to take to learn about specific topics. You can even access these courses from your IDE.

Progress synchronization

If you like learning the theory lessons on Stepik but prefer to do the coding exercises in the IDE – you don't need to worry about losing your course progress. All your progress is synchronized between the platforms.

Importing more courses

You can import any course from Stepik that has programming tasks, which you can solve right inside the IDE. You can switch back-and-forth with Stepik easily any time you want.



Professional Environment

Productivity features such as smart code completion, code inspections, a visual debugger, and more not only boost your learning productivity, but later help you switch easily and seamlessly to other JetBrains tools.

Enjoy a fine–tuned workspace

Make your IDE feel like home and help you stay focused and avoid distraction, with customizable color and keyboard shortcut schemes, and all the look-and-feel settings you need for productive development.

Learn faster with a smart editor

Take advantage of language-specific syntax & error highlighting to help you avoid code mistakes. Learn how to style your code right with the code formatting, and don't ever get stuck thanks to code completion and quick documentation.

Run & debug your code

Run your code to be sure everything goes right. Use the powerful debugger with a graphical UI to find out what went wrong—set breakpoints, run your code step by step and have all the information available to you at your fingertips.



We will be glad to hear from you!

What languages and technologies do you want to learn with JetBrains? Please fill in the feedback form below, or contact us on Twitter.


Teach by Practice

Share your knowledge in the form of coding tasks and custom verification tests.



Course Structure

Every course created in the IDE is structured as a list of lessons. Each lesson contains one or more tasks. A task has the following components: a description, a file with exercise code, a file with the task check, and any other files needed for the learner to complete the task.

Create a course

To create a course, go to File | Create New Course and enter a title and description. The IDE will automatically create a simple course with lesson1 and task1 included. Go to View | Tool Windows | Project to verify the course structure.

Manage the course structure

Add more lessons and tasks via File | New..., rename from the context menu Refactor | Rename, and drag-n-drop to reorder. If you need additional files for the task, just add them and decide whether you want to make them visible to learners or not.



Working with Tasks

Teach with the help of simple and effective "fill in the missing code" exercises. Let learners independently check their assignments with your integrated tests, and help them learn with special hints.

Write an exercise code

Open a task file to write the code you want to share as an exercise. Once the code is ready, select a fragment you want a learner to fill in, invoke Add Answer Placeholder command and add the text describing what code the learner should write. Add some hints to help the learner find the right code fragment.

Write a task description

Edit your task descriptions right in the task panel, by clicking the Edit icon. Put code snippets and hyperlinks to other tasks, .png images, tables, and IDE keyboard shortcuts right inside your task description. The IDEs support HTML and Markdown, and even a combination of both.

Write a test

Every task has a test file that you need to modify to check a learner's solutions. Get back to the Task Description panel and click the Check icon – this will run your test and show the result as a learner will get it. When the test is ready, you can run or set breakpoints and debug your code.



Course Sharing

Keep up with your learning materials and share them publicly or privately with your students or co-workers.

Preview course

Before sharing your course, it's good to view it from a learner's perspective and to test it. Right-click on the course view and go to Course Creator ⟶ Preview Course to open your course in learner mode.

Integration with Stepik

Stepik, a learning management and MOOC platform, helps you easily store and share your courses. You can upload your course to Stepik, update it anytime you need, and share it either publicly or privately.



We will be glad to hear from you!

Which languages and technologies do you want to be able to to teach with JetBrains? Please fill in the feedback form below, or contact us on Twitter.

Please contact us if you're interested in learning or teaching with Educational Products: