I did explain the good and bad things of the JetBrains Academy after inventing 300+ hours on it.
I have always been looking for a learning platform that makes it easy to keep learning things. I have been learning by reading books, tutorials, articles or videos. But those things are not very guided and need a ton of will to do. Instead, I want a platform that creates the best environment to help students gradually and firmly get into the material. It should also be “deep”, covering basics and advanced topics.
I have yet to find the perfect one for me, but the JetBrains Academy is the closest I have seen.
We all know that the best way to learn anything is to practice. But, when you are new to a technology, practice in the context of a vast open source project is daunting. Instead, it would be better to learn a small topic and practice it in a project. It would be even better to build the whole project yourself, even if it is small. As a result, you learn in small pieces, in a real context and hands-on. It looks interesting, right? That is what JetBrains Academy (JBA) is all about.
How does JBA works
A learning path in JBA has three main pieces:
- Activity: The smallest piece of information, with questions at the end.
- Phase: a project section containing activities and a test at the end.
- Project: build by phases.
JBA is based on projects. To start to learn, you will need to get a project. They are sorted by complexity, so you will probably start with an easy one. Projects are split into phases, and to pass the phase, you have to write the requested code and pass the test. But, before getting the phase exercises, you will get to get the “activities” done.
The whole syllabus is splitter into small pieces called “activities”. One activity is a small lesson that will be maximum a paper page long and contains information on one topic. For example, how to work with constants in JS. Studying the activity will take you from 10 to 25 minutes, but you are not done yet because you have to approve the activity. After the study, you will need to answer 5 to 10 questions to check that you understood the subject.
If you already know the material, you can skip the activities by answering some questions.
So, in summary, you do projects on phases that cover topics called activities, and you need to understand everything because you have to make it work and pass the test.
The good part
Here are some strong points:
- It is very engaging. I will explain more about this later, but I invested around 300 hours in the last six months of 2021.
- It is deep. It covers basic concepts to advanced ones.
- Some projects are great. With some of the projects, you build helpful tools like real small projects.
- They do not forget about the maths!!. They are building a path for maths, mostly linear algebra. I love that.
- Part of it is FREE!!. They have several paths that are free: Front end developers and Go.
- Community. There is a great community in discord to ask questions and help others. It is very active and fun to read.
- Actively in development. While using the platform, I notice that they constantly add new topics and features.
The not so good
- They forgot about the unit test. In my opinion, you should learn programming with unit tests. You should always test that whatever you are doing does what you expect to do. That tiny process (build the test, build the code, refactor) should be fundamental to any learning environment. Unfortunately, JBA doesn’t do that. After the first project, I did pick up a book on unit tests with Python to learn that as soon as I knew the basics of the language.
- Quality of the service: Slow. That is the worst part by far. When doing the exercises, you have to get the correction. Sometimes it is ok, but there are plenty of times when I have to wait for 20 or more seconds to get a response to a straightforward checkbox test. I think that it is unacceptable and makes a bad learning experience.
- Not all of the projects are great. Some of them are not good at all. I enjoy it when a project has some meaning, and you build something from scratch ending up with something useful. But in some projects feels like a bunch of exercises that are barely related.
Deciding on python
Currently, JBA does not have a broad offering of learning paths. They have Java, Python, Kotlin, and starting on Go.
I had to choose one of those, and none was the perfect choice for me. I would have loved that they had a Ruby path, but that was not there. Among the offering, there was Python, and I decided that it could be good to know more about that language since it is very much in use these days.
I did start, and it was engaging. I did spend around one hour every day and many more over the weekends. It was fun, and you feel how you are repeating over and over the same things, so becoming natural to you.
After 15 projects and 300+ hours, I did finish the Python path. I know now that I’m not too fond of Python, and I remember why I chose to learn Ruby 12 years ago. But, now I’m familiar with one language more and some exciting tools.
I still have 7 months more of my year license so I’ll keep learning things there.
If you are interested in any of the paths that JBA provides, go for it. I think you won’t be disappointed, especially if you are new to the subject. In my case, I did enjoy the learning experience, and I’ll keep going learning anything that they offer.