Why Its Harder Than Ever to Learn Programming Today
In this post, we are gonna talk about why it’s harder than ever to learn programming today. I will share with you my arguments, with a couple of tips on how to deal with some of the most irritating issues.
Hey, I know this topic is controversial because the common belief is we are living in amazing times, and there is so much free and paid content. The thing is the more is not always better.
If you want to become a software developer, not only a web developer, but a professional programmer, in general, you will face more options to choose from than we ever had.
When I first started learning programming, there were only a couple of serious technologies that would give me any chance to get a job. Back then, I know that some of the technologies we’re already falling behind, and they are kept alive only to support legacy applications.
The ones that would give me access to new projects and were trending were Java (with plenty of related frameworks), PHP, or C#, above that, I had need to know one of popular databases Oracle, MySQL or Postgresql and a bit of Linux command line, and I was all set.
There were other, more niche technologies as well like C/C++, but we rarely could found any related offer on the market, and that stack is more challenging than any other technology mention above. And by the way, C/C++ is not the language for a web developer, which I wanted to become.
As you see the choices used to be very limited.
There are so many options that it’s totally normal if you get confused. If I wouldn’t know how to properly categorize all of these technologies and really see their market value, I would be not less confused than you are.
But the worst thing is that choosing the right technology is really important. You have to be clear about your career vision and have a plan if you don’t want to be treated as a cheap commodity on the market.
When I first started to learn to code there weren’t many code editors to choose from. There were the free ones Eclipse, JDeveloper, NetBeans, Notepadd++, VIM, and Emacs. Back than VIM didn’t have these fancy features that it has today, and Emacs was suitable almost exclusively to C/C++.
So as a professional web developer I had to use Eclipse, JDeveloper, NetBeans, or IntelliJ. IntelliJ is a paid app and I was on a budget. JDeveloper used to eat a lot of resources and look bad, the same as NetBeans. The only option left was Eclipse, very limited, and buggy at that time.
By the way, in my first job we used Eclipse together with a paid plugin called MyEclipse, to make it a little more robust, I’m surprised they still exist to this day myeclipsecn.com.
Today you have Visual Studio Code, Atom, Emacs, Vim, SublimeText, Eclipse, PyCharm, NetBeans, and more. They are all very powerful code editors, and all of them are free. They have features that used to be available only in paid apps.
So what’s the problem with having all of these amazing tools? Don’t get me wrong, it’s great to have this vast of possibilities, but the problem is it’s much harder to make a choice and it’s easy to start playing around with the editors while you probably should write code. Switching from one editor to another may look like a productive thing to do, while most often it’s just time wasted.
This is why it’s so important to narrow your options down to only one code editor if possible and stick to it. There will be plenty of time to play around with different editors and tools later when you will become a master of one first.
When I started learning to code, I didn’t have access to the internet. Very few people I know had the internet at home, and it was very slow, ages far from fiber available today. There were no online courses, no Youtube, no free tutorials, and no Google. There were only books and very expensive stationary offline courses.
So learned everything from books, while I was working on my projects. It took me years and it was very hard to do. I succeed because I was fascinated with computers, and as a result, I become very, I mean very nerdy. At a certain point, the programming was the only topic I could talk about. If you want to learn to code you have to buy the books, there was no other way. That’s probably why I’m still an avid books reader.
Today you have free access to an unlimited amount of free and paid content, blogs, tutorials, videos on Youtube, online courses, offline courses, mentoring, ebooks, free source code on Github, and more.
The problem is that there is just too much of it. Many beginner software developers get stuck because they jump from tutorial to tutorial without much practicing. Most of the blogs are written in the way the reader should follow link after link, for better SEO ranking. The same with Youtube, where we are encouraged to watch one video after another.
It’s impossible to consume it all, and even trying is a waste of time. What comes one ear comes out the other one.
When we as people get confused we are looking for relief. The simplest way to look for answers in today’s world is to ask Google or Youtube. The problem is most of the guys who provide answers to beginners' questions there are not caring at all about you, and just want to sell you something.
Most often they new only single technology and try to convince the entire world that this is the best choice, together with his course, of course.
There is nothing wrong about selling courses, but it’s unacceptable to disinform people, make them even more confused then they were just to cash the check.
The funny and scary thing at the same time is that if you are looking for confirmation of a statement you may go to Google or any other search engine and ask a question and you will find articles and videos that support it and others that dismiss it. These are conflicting messages that can be easily found.
So we really have to ask good questions if we want to get good, reliable answers.
It’s very common for emerging technologies like ExpressJS or React, that the tutorials made a year ago or less are irrelevant today. But, these tutorials are still easy to be found.
Just imagine, that you decide to learn ExpressJS and you found a promising tutorial about the topic on the first page in Google. You follow the guidance, everything works nice and smooth, but after a couple of hours you figure out that it was tutorial for the previous version and the entire API was changed. So what can you do know with what you learned and the code you have written? Not much. You may start over with another tutorial or quit.
It’s not your fault, the internet is full of landmines like that on every corner. You have to make sure, the tutorial is fresh before you jump into it.
Many blogs and YouTubers are spreading false information, about software developers' earnings or what technologies are worth learning. What is quite funny is that most of these gurus have a less than one year of amateur experience, or they are quitters who fail to learn to code but want to teach others how the industry works.
This is why I started Dev Akimbo because I get annoyed by all of this scam around. I want to provide a reliable source of information from someone with 18 years of active programming and industry experience (10 years as a professional developer) to help individuals like you to help you build not only a great career but the life that is worth living.
This is why people jump from one course to another because when then finish one they feel the burden of responsibility to do something, and often we don’t have a clue what to do next. The ball is on their field, it feels good to pass it to the next instructor.
Learning a programing language is not enough. You have to know many other technologies like git, frameworks, libraries, HTML/CSS/JS, at least one database, some design patterns, at least one development methodology, and you have to be an easy-going but professional person to work with. This is quite minimal requirements for a basic web development position. Even if you plan to work as a freelancer.
If you want to become a software developer it’s a good idea to spend a couple of minutes to browse job offers at least once a week to know which technologies matter and what are the requirements for positions you are interested in. You will probably found that you have to know much more than just one programming language, as well as to provide some proof of your skills.
Even though today we have access to many more options and information than we ever had, it rarely works on our favor when we just starting. Many people get stuck even before they write a single line of code. It’s just so easy to jump into Youtube soap opera videos on coding instead of writing code by ourselves.
The only solution to this is to cut off the noise, be deliberate on the videos and articles we are watching. They are hundreds on thousands of articles, and new ones are published every day, it’s impossible and pointless to consume them all.
If you have any questions related to this article, leave the comment below.
If you found this post helpful, consider sharing it, so I will be motivated to publish more posts that will help you get the IT career you want.
See you next time, and as always, stay focused!