Diving Into Programming: Things to Avoid
To not beat around the bush, paid programming courses is the worst way to waste money. We are talking about numerous challenging ads on how to "learn C++/Java/etc. (underline whatever applicable) in 2 weeks/days/hours", with "no basic skills and knowledge required"; "become a programmer and start earning hundreds of dollars per hour in 21 days"; "unique Ruby on Rails program for two months developed by userName". It's hard to find a more untalented way to spend your money. But it exists - there are still paid online programming courses.
And the reason for the vainness is not that most of these courses are saying something wrong or low-quality. No, often you can find there cool mentors and excellent content.
Their main disadvantage is that the very concept of programming courses contradicts the essence of this field of study. Technologies and tools in the world of programming are so rapidly and unexpectedly developing that focusing on something one or devoting yourself to the detailed study of one particular technology is the peak of incompetence and waste of time, even without taking into account the fact that you also need to pay for that!
To become a programmer, you should learn to understand technologies quickly and superficially, in order to start using them immediately, as necessary. You only need to study what is required right here and now. Again, as superficially as possible, just to cope with the current task. Of course, you can not become a good programmer until you have studied in perfection several technologies. But this learning will be in demand by practice and real tasks, and not just to quickly "introduce to programming" and begin to receive developers' salary.
And now tell me what programmer a student will become, if the best way of learning new information for him is to pay another person who will spell it out for him? Will such a student be able to learn new technologies on his own? Will he be able to do something independently, without imitation and copy-pasting?
Now for the main objections that can arise on the foregoing.
We certainly know cases when a student started with "2-months Java courses", and now works for a large company and writes the operating system in Rust at his pleasure in the evenings. But, like in the popular example about higher education, such people achieved success not because they attended programming courses, but despite the fact that they waste money and time with questionable effectiveness.
What about paid video tutorials, they are not online courses at all. Coursera and similar services are not online courses we're talking about in this article. Courses organized by software development companies to train themselves smart juniors are not courses as well, but rather a sort of internship. All these ways of education are quite suitable for IT. They may be a good alternative to paid courses described before. However, don't forget about a great number of free and not less effective ways of learning and resources which can help you with this, such as OSSU, freeCodeCamp and many others. Not to mention the huge community of programmers ready to answer questions or share experiences on forums, meet-ups and all sorts of reddits, hacker news, slashdots and so on.
"Self-education is, I firmly believe, the only kind of education there is" — Isaac Asimov
Riter development team