How to code for beginners: Top free online coding courses
Why learn to code
A quick look back to the early 2000's reminds us all of when we sent our first ever email, probably from an AOL email address. Fast forward to 2016 and it's that same sense of requirement as we had with email, but this time, it's with coding. Coding is now such a huge and sought-after ability, that it's become a staple part of the high school curriculum. In fact, coding is going to be so ingrained in to every generation henceforth, that the inability to code is actually a pretty scary thought.
In ten to twenty years time, the teenage whizz-kids currently excelling in school and enjoying coding will hold highly influential positions in some of the biggest and most respected technology companies in the world. In addition, we can expect the number of technology startups to soar, with the first ever generation, who have learned coding as part of their general education, having the ability to create websites, applications, widgets, programs and what not whenever they want. They will be equipped with the ability to turn mere strings and algorithms in to amazing, interactive, digital creations, along with the syntactic knowledge of multiple programming languages.
Here's a succinct summary of the importance of knowing how to code:
- In 10 years time, almost all of your colleagues younger than yourself will talk in a tongue you cannot.
Scary? Yes, I thought so. This thought occurs to me daily. At the moment it haunts me; the idea of not knowing how to program, not being able to communicate in a language in which every new generation from today onwards will be fluent, not being able to keep up. To remedy this, I've started learning how to code. This year will be the year I'm comfortable with computer programming. I won't be documenting my coding experience with HubPages on a daily basis (unless people would find it helpful), but I do want to point anyone else in my position, in the right direction...
This Hub will give you some great tips on where you should go to take your first steps in to a world of excitement, creation and opportunity; the best places for beginners to learn to code.
Best MOOC coding courses
I have created this Hub to discuss the two best introductions to coding available on the internet. I have taken a cross-section of what's available on the web, presenting you with two distinctly different paths. One, a course that is simply text-based, requiring you to complete tutorial after tutorial - simple yet effective, Codecademy. The second, one of the most popular courses in the world right now, if not the most popular. This one comprises recorded lectures form the one of the best universities in the world, plus extras from student teaching assistants and previous alumni. This is CS50.
Codecademy is one of the best places on the internet for people of all shapes and sizes to take their first lessons in coding. The site is absolutely free and there are no pesky pop up adverts (for now).
on Codecademy you learn to code through a series of tutorials (with optional hints and tips) in a variety of languages. Whatever language you choose to learn, you log your progress by earning 'awards'. You can share these awards on social media as and when you achieve them, if you want to keep your friends updated with your progress.
Languages covered on Codecademy include:
- Ruby on Rails
As you can see, you can gain a wide knowledge of the basics of many different languages and libraries completely free on Codecademy. This is the website that I started out on and am still using. HTML and CSS are the obvious first starts, and then the rest is up to you. I'm currently on PHP and am finding it very enjoyable and super easy to understand!
If you're a complete beginner, and have never typed a line of code in your life, then Codecademy is 100% the best place for you to visit.
Harvard and Yale CS50: Edx beginner's online programming course
CS50 is a beginner's guide to programming. I'm currently enrolled for free via the online course provider, EdX. Though only a week in, the lectures, presented by David Malan, are phenomenal. Alan's presentation style and aura in the lecture theatre are second to none, and he really keeps you engaged, immersed and involved, even if you're on the other side of the world.
To demonstrate the popularity of CS50 (and to further reinforce the rise of the coding generation), check this out: Harvard recently revealed that its CS50 class sizes had soared to over 700 in 2015, from a measly 15 shown in the video below featuring guest speaker Mark Zuckerberg, filmed in 2005. Watching this video ten years ago, we wouldn't have expected anything different. But the surge in technological advancement cannot be understated, and the idea of Zuckerberg presenting to a class of just 15 is simply ludicrous. CS50 has grown at a ridiculous rate, with David Malan greeting over-flowing lecture theatres.
In fact, something even funnier than the empty lecture hosted by Mark Zuckerberg, is the answer to the following question: Currently, what is the most popular course taught at Yale?
Answer: A Harvard class; CS50
Mark Zuckerberg teaches coding at CS50
Huge CS50 learning community
So yes, CS50 has a worldwide reputation today, and there are even Facebook study groups with over 70,000 members. Actually, the opportunity for collaboration and creating your own online learning communities with other CS50 students is unparalleled. There are thousands of people studying CS50 across the globe at this very moment. Chances are, you won't be the only person you know that's considering it. Just by chance, I mentioned it to a friend, who replied 'Oh yeah I've seen that! I actually enrolled online last month!". And voila, I have a study partner!
Make no mistakes, CS50 is tough, rigorous and time consuming. And it doesn't cover everything you'll need to know to be a good coder - it's an introductory course, let's not forget. But from its rave-reviews, it's clearly worth the time and effort. I've seen on Reddit that some people have had job offers straight out of CS50, having had no previous programming experience. For some, CS50 is a life-changing course. Maybe it will change yours.
CS50 enrolment poll
Are you enrolled in CS50? Comment your experiences so far below!
This is CS50
Which coding language to learn first
Only you can decide what language you should learn to code in first. The answer largely depends on your aims and intended outcomes from learning to code. Do you want to create and sell your own apps for iOS and/or Android? Do you want to be able to create websites for friends, family and the odd freelance job? Or do you just want to keep up with the rest of the world?
General advice: HTML and CSS
The general consensus is that you should learn the basics of HTML and CSS first of all. HTML and CSS are the languages used to style and lay out a website. HTML can be considered the brick and mortar of a house made of code - without it, you've got nothing. If HTML is the brick and mortar, then CSS is the house's exterior paint job and decor. HTML lays the bare foundations, and CSS makes it all look pretty.
Mobile app development
Mobile app dev has been referred to as a goldmine by many in the past, and for good reason. App stores are absolutely booming, and they show no signings of slowing down significatly any time soon. Back before the internet age, the phrase used to be 'everyone has a book in them'. Nowadays, I wouldn't be surprised if I heard 'everyone has an app in them'. It's the overnight success stories such as Flappy Bird than got the world talking about apps, and how much money there is to be made from them. Every passive income asset list, lists 'make an app' as one of the best streams of residual income - but not many people are able to create one themselves, leading to a huge upfront investment of cash to be recouped before any passive income can be classed as profit.
If you want a slice of the app store pie, then you'll need to decide whether you want to develop for iOS or Android. If you're an Apple fan, you need to check out tutorials on Objective-C and Swift. I would suggest the latter of the two iOS languages, as it has been noted to be much simpler and easier to read than the former. Plus, it's newer, and many people are under the impression that Swift will eventually succeed C altogether. If you're developing for Android then you need to hop over to Google and search 'java' straight away, for two reasons:
- You'll need a hot mug of java to keep you alert and focused
- You're going to need to learn the Java programming language too
I think I'm accurate in saying that almost everyone has had the 'there should be an app for that!' lightbulb-moment, only to realise that you're completely incapable of stringing a line of code together. This is common practice in my house. If you want to take the steps to begin able to create the MVP of your life-changing app, then do it. Start today. In terms of whether to develop for Android or iOS, the easiest thing to do is check your pockets. If you're an iPhone user, develop for iOS. If you're an Android user, develop for Android.
Some readers may completely disagree with me for the simpleton's approach, but generally speaking, you're going to be more motivated to create something that you'll be able to test and use, than something you're not.
Did you spot the CS50 pun?
Incase you're already familiar with CS50, did you spot my pun at the start of the hub? If not, re-read the 'Best MOOC coding courses section'. Apologies in advance, I've always wanted to say that.
If you're serious about learning to code, but don't want to jump right in straight away, then perhaps check out a couple of these awesome reads on learning to code, right here on HubPages:
- Learn to code quickly and effectively
- Coding for Kids (an exceptionally helpful read)
- Coding: Where do I start?
Keep in touch if you're just starting out on your coding journey, like me. It would be great to find others in the same boat!