I want to share some advice based on my own experience.
Before enrolling in a course, determine what your expectations are. I answered these questions for myself as follows:
- Save time—for me, this is the most important resource.
- Find courses at a reasonable price.
- Get up-to-date content and answers to questions from an experienced developer.
- organize a learning rhythm and deadlines;
- gain confidence in my own abilities;
- work with real cases;
- learn good coding practices from the start, rather than “crutches”;
- make new friends with similar interests.
Decide how much time per day you can devote to learning and whether you enjoy learning. There is no point in buying a course if you are going to play on your phone, draw in your diary, or stare out the window during class. Unless, of course, courses are not just a pleasant intellectual pastime for you. I tried to get the most out of it, took notes on what I needed to understand and what I needed to work on again at home, and did all my homework like the most responsible student. Not just for the sake of it. It was just interesting, and I tried to do the assignment my own way, to make it more challenging. I was hooked, and I devoted almost all my free time to studying.
But not everyone has the time for that. Or the desire. I want to emphasize once again: before taking the courses, make sure that you are really interested in programming, because it’s difficult to stay motivated just for the sake of a good salary.
It is important to accurately assess your level of preparation and compare it with the requirements for students on the course. Find out in detail which skills are essential and which are desirable. If you are a PC user and are confused by standard application menus in English, I guarantee that you will fall behind in the very first class. In this case, it makes sense to postpone the idea of learning programming and improve your hard skills.
Analyze the course program. I cannot stress enough that one of the key points is to study the course content in detail. First and foremost, it must be relevant! Find out what you will be learning, in what order, and why. If you are familiar with all the topics in the program, look for another course.
Choose a format that is convenient for you. Online courses: these can be interactive, with text-based learning materials and video lessons, or interactive, where you communicate with teachers. Offline programming schools, academies, courses: here, classes are held completely offline or offline + partially online.
I chose offline courses because they are more disciplined. It is important for me to communicate and get answers to questions in person. When I study offline, I participate more often in group activities, complete joint assignments, contribute to discussions, and so on. It is more familiar and interesting to me.
Check how you’ll get access to the course materials. In my case, every student got access to a livestream of all the classes on YouTube. This is a great help for offline courses if you can’t be there in person. All recordings stay available for as long as you want after the course ends.
Pay attention to the size of the group. Obviously, the fewer students there are, the more support you will receive from the teacher. However, this also affects the price of the course. Not everyone can afford individual lessons with a mentor. Therefore, it is best if there are between 10 and 20 people in the group. In this case, the teacher will be able to give everyone individual attention.
If you choose offline classes, find out what the learning conditions are like. You should feel comfortable. First of all, you need to consider the commute, as you will have to travel to classes for several months. The premises should be spacious, heated, well ventilated, and have good lighting. Each student needs a full-fledged workspace equipped with modern technology.
A good teacher is the key to success. An IT course instructor should be a practicing developer with good soft skills. They should be a mentor who knows how to explain, guide, and discipline. In my experience, it is better if their level is one higher than yours. If you are a beginner, they should be a junior; if you are a junior, they should be a middle, and so on. Let me explain why.
Find out what homework assignments await students and how the instructor monitors them. Almost every course has homework assignments. It is important to understand what they are about, who checks them, and how. It is great if, after each assignment, students receive feedback from the instructor with recommendations on how to improve their code. Tests and knowledge checks are really important. This is in your best interest.
Look for courses that offer employment opportunities based on your results. But be critical about this point. No self-respecting IT company will hire an employee just because they have a certificate. After all, there are many ways to learn, and before you start studying, you are not making any commitments about how successful you will be.
Before purchasing a course, take advantage of the opportunity to attend a free class/presentation/open house. It would be great if you could meet your future teacher and see where the classes are held. This may either appeal to you or, conversely, put you off. Therefore, ask the organizers about a free first lesson or open day.
Pay attention to reviews of courses from different sources. It’s good to get information firsthand, but it’s even better if you can do your own research and find out about courses from different sources, not just from the website of the company offering the training.