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
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
Educate for stronger teams and communities by sharing your knowledge. Promote best
practices you care about.
Please welcome a series of courses on the main Java concepts:
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
Please note, the courses are Beta. Stay tuned for upcoming improvements and share your
feedback in our tracker or twitter.
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
exercises specially designed to get you familiar with the Kotlin syntax.
To take the course, go to Browse Courses and choose Kotlin Koans from
Introduction to Python
Interested in learning programming with a general-purpose language? The Introduction
Python course is specially designed for programmers with little or no previous
To take the course, go to Browse Courses and choose Introduction to
Python from the
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.
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
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
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
Teach by Practice
Share your knowledge in the form of coding tasks and custom verification
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
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
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.
Keep up with your learning materials and share them publicly or privately
with your students or co-workers.
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
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
Please contact us if you're interested in learning or teaching with Educational