It’s no secret that programming is the most popular it’s ever been. The rapid rise and development of technology since the turn of the millennium have made programming arguably the most in-demand skill in the world right now, a statistic that doesn’t look set to change any time soon.
This rise in popularity is partly down to the technology itself but it is also due to the fact that programming is ‘cool’ in the eyes of the everyday person. Long gone are the days where programming was seen as a nerds thing or something people do in their mother’s basement. Instead, it is now an extremely valuable skill to have and success stories like Mark Zuckerberg and Facebook have given the idea of being a programmer a sort of rockstar status. This appeal has captured the attention of people of all ages and backgrounds and because of this, questions of how to learn to program have flooded the internet.
How difficult is it to learn programming?
Despite what people might tell you, programming is hard. It takes hours upon hours of dedication to get good at programming and only those who seriously want to learn the craft will ever truly be good at it.
It’s important that newcomers accept this truth. Too many people expect to be building software within a few weeks. Then even when faced with the truth, you have the ones that delude themselves into thinking they will be the exception. They won’t be. Certain people will pick it up quicker than others but no one becomes a good programmer in a matter of weeks.
One of the key reasons for this is that most newcomers focus on the wrong thing, the syntax. They pick a language, get started and put all their time an energy into learning the syntax rather than learning to program.
Now, obviously you need to understand the syntax and be able to write it but that is not the skill of programming. Programming is problem-solving. The language you use to solve a said problem will vary as it is just a tool. Different programming languages exist for the same reason different tools exist. In the same way not every problem can be solved with a hammer, not every software solution can be built with one language.
So, what should you be focusing on? The answer is concepts. Programming concepts are actually what makes a piece of code do something. We won’t be going into too much detail here but if you are new to programming, focus on learning the basic concepts of programming. You will find much easier to remember the syntax once you can recognise a concept being used in a piece of code.
I speak from experience on this one, I never really sat down and learned Java, not like I did with Python. I just looked at how certain concepts such as loops and if-statements were written and went from there. Over time I picked the rest of the language up through trial and error. It’s common knowledge that it’s easier to pick up a new programming language once you know one, but by focusing on the concepts you are remembering what a chunk of code looks like rather than trying to remember each individual symbol. Once you have a basic understanding of loops and other concepts, you can begin writing proper programs. You will naturally find yourself asking what’s the best method for solving this problem, rather than thinking about the syntax it will require.
This is why the second language is always easier to learn. It’s because by that point you understand the basic programming concepts and can use those as a starting point to learn the language.
Now that you know what to focus on, it’s time to figure out the best method for actually learning how to program. This is a very personal choice and there is no perfect way to learn to code.
Luckily, there are plenty of different options available so the chances of finding one that suits you is highly likely. Let’s take a look at the options.
Education - This is still the most respected way to learn programming and a degree in Computer Science, for example, can do wonders in a world now full of so many programmers. It puts you in a position to get a better paying job and most of the courses give you a solid set of skills, making you very versatile. It is not without its negatives though, the most notable one being the debt that comes with it.
Degree programs aren’t cheap and if you want to commit yourself to one, you need to be fully aware of what that means for you personally. It is not a decision to be taken lightly, given the amount of time and money it asks of you. Another thing to consider is that although a degree is highly valuable, programming is in-demand. This means that although there are plenty of programmers, there are also plenty of jobs.
Programming is not a job that requires a degree so don’t feel like you can’t be successful without one. There are a lot of companies including Google, that are more interested in your programming ability than your degree.
On the job training - This is a great way to learn to code as it means you are not only getting paid to learn but also potentially eliminating the need to find a job, depending on your circumstances and desires.
The downside to on the job training is that you will most likely just be learning what you need to for the job. This means if you leave, you might find yourself limited to a small selection of jobs, especially if you were using a language that isn’t particularly popular. The other problem with on the job training is that it’s not available for a lot of people. If you happen to be one of the lucky few though, it’s definitely a good option, even if you don’t intend to stay there. Just do your research on what they are asking you to learn to see how useful it is as a transferable skill.
Self-learning - This is the preferred option for many when it comes to learning to program. It is far cheaper than a degree program and some of the online courses are actually really good. The other benefit of teaching yourself is that you can focus on exactly what you want to learn. If you want to write Android applications, for example, you can just focus on Java. This option has made programming accessible to everyone and has helped people from all over the world become great programmers.
It is not perfect though and depending on your goals some of the positives can actually be negatives. For example, although having the freedom to learn what you want is good, it can limit you in the same way on the job training can. Technology is constantly evolving and there is no guarantee that Android applications will be around for the next 40 years. Self-taught programmers need to be aware if they learn one thing and stick with it, they will get left behind. If you are going to teach yourself to code, make sure you stay up to date with the technology and evolve with it rather than playing catch up.
The reason this doesn’t apply to those studying a degree is because a degree gives you a foundation in many different areas. This means when it comes to learning a new language or technology, you will likely have been taught a relatable thing on your course and will, therefore, pick it up faster.
The other downside to being self-taught is that you will likely have to juggle a lot of other things about. For example, if you have a job then programming has to be something you do in your spare time. This will likely sap your motivation, especially in the beginning. Also, by learning in your spare time, you could affect aspects of your social life so make sure to find the right balance for you if you decide self-learning is the way to go.
If you are serious about self-learning you are probably willing to spend a bit of money. Here are a few platforms that offer some great paid courses on all sorts of things, including programming. Just be sure you the course you choose offers what you and always read the reviews before you part ways with your money.
Udemy - This is probably the most popular platform for online courses. This marketplace is known for it’s easy to use interface and diverse range of courses. Most courses are video based and involve listening to a tutor, who will give you instructions along the way.
One thing to consider if you want to pay for a Udemy course is that they often put on offers, meaning you can get the course for a significantly cheaper price. If the course you want seems to be too expensive, wait a while as the price will probably go down at some point.
Cost: Varies depending on course.
Lynda - Another great platform for learning is Lynda. It too has a wide variety of courses and is also straightforward to use. The difference with Lynda is that it is a subscription-based service. This means you pay a monthly fee to access whatever courses you want, rather than buying a single course at a time.
This may be better for those who would like to try multiple courses to find exactly what they want to learn, but if you’re in that position then you shouldn’t really be spending money yet, given the amount of great, free content that is available online.
Cost: Basic - $25/month
Premium - $37.50/month
Treehouse - Unlike the platforms mentioned above, Treehouse is focused on teaching you to code. It does have mixed reviews though so the style probably isn’t for everyone. It does offer a free trial which of course is worth doing if you’re interested in this platform. Again, be sure to read the reviews before you decide on a course as some are said to be better than others.
Treehouse also offers a Tech degree program which is significantly more money. Although this gives you a verifiable certification, it really isn’t worth it. If you are bothered about getting a proper certification, do a proper degree. There are options out there that let you study from home and they will give you a much more credible certification than this one. A Treehouse Tech degree may not take as long to complete but it also doesn’t provide as much value as a proper degree program does.
Bootcamps - Coding Bootcamps are quite a controversial topic in the programming community. Some see them as a great opportunity to learn how to code from professionals and others see them as another money grabber, claiming that they can’t possibly fulfil the claims they make.
A boot camp is an intensive course that aims to get you job ready, usually within 8-12 weeks. Now, this might be achievable, but it’s going to take some serious dedication and work ethic to get there in that amount of time. For this reason, I personally don’t recommend boot camps. A lot of people tend to overestimate themselves and these boot camps aren’t cheap.
If you genuinely think a boot camp is the best option for you, then go for it, but make sure you do your research beforehand and at least give yourself some time to learn the basics of what they will teach you before you go.
Now that you have an idea fo what to focus on and what options are available to you, it’s time to do your research and figure out what is best for you. Spend as much time as you need on this as you want to be sure you are doing the right thing, especially if you choose an option that involves spending money.
Whatever you decide to do, keep yourself inspired and you’ll get there. It will take time but the rewards will be worth it. Below are a couple of online resources you can start using today regardless of the path you plan to take.
Code Academy - This platform is full of great, beginner-friendly tutorials that you can get stuck into right away. Be sure to move away from here after some time though as it really is only useful when starting from scratch. This is because it tells you the answer a lot of the time, so although you are learning to write code, you are not really learning to program.
The paid version offers more in-depth material but you can find similar information elsewhere for free. If you are interested in self-learning and like the way Code Academy teaches things then you might benefit from the paid version. It’s all about finding what suits you best.
freeCodeCamp - Another great platform, especially for learning web development. This platform not only teaches you the bare basics but also gives you projects along the way for you to go and work on. You then upload these projects for feedback.
It’s definitely worth checking out. As the name suggests, this platform is also completely free, which is an added bonus.