Lately, learning to code (be it through coding bootcamps, Computer Science degrees or online programming courses) has become the trendy thing to do.
Whether youβve already mastered (at least one) computer language or if youβre just looking to pick up some basic programming skills, it seems like now is the time to take it one step further – becoming a Jedi coder.
If that appeals to you, youβve probably considered all the options out there (and subsequently, came up with an argument against it).
Maybe youβve already graduated from college or university with a degree and have no intention of going back. Or, an intense coding bootcamp just doesnβt sound feasible or too appealing at the moment. And, you worry that advanced online coding courses could potentially rack up a major bill on your credit card.
This leaves us with one final option – learning to code on your own. But what would that involve, and should you really go down this path?
Here are some questions weβll be covering:
- Should I really learn to code?
- Is teaching myself the best way to learn to code?
- How do I get started?
- What if I ever get stuck?
- Will I *ever* be good enough to be a software developer?
In the first place, should I really learn to code?
Youβve probably heard Code.orgβs argument that everyone should learn programming. Obviously, the answer is yes. You should *seriously* learn programming. It might be really daunting at first, because no matter your preferred learning method, youβll need a fair bit of commitment and resourcefulness to succeed.But thankfully, programming isnβt rocket science (contrary to popular belief!). In fact, itβs something intuitive – basically, writing βinstructionsβ for your computer to execute.
So, even if you donβt plan on becoming a software engineer, there are some very good reasons to pick up some programming skills.
Hereβs the TL;DR version:
- It trains you to think in a precise, disciplined and abstract manner.
- It transforms your computer or laptop from a βhome applianceβ to a power tool.
- It is great practice for learning itself, as it requires you to seek out answers and find help for yourself!
Now that weβve gotten this out of the way…
Is teaching myself the best way to learn to code?
Real talk: the best way to learn to code (you know, what really, really matters!) is that you start.
βBut, letβs be honest – not all of us have the time to tinker around with multiple websites/options to find the most effective method to pick up coding skills.
βPop quiz: Letβs say youβve just bought a coffee table from IKEA, and itβs about time you built it. What do you do?
- Read the manual and study it thoroughly to see which piece goes where. Then, follow the instructions exactly as given.
- Get a friend (who has experience assembling furniture from IKEA) to build it in front of you, then disassemble it so you can build it on your own.
- Glance through the manual. Then, try to figure out how to build the table on your own anyway.
- Look at the βpiecesβ available to you and use logic try to put them together. Do this until you manage to put the table together.
If you chose no.1, youβre probably deeply interested in the theory behind how things work, and like studying βinstructionsβ. You will likely learn best from Computer Science courses (either from sites like EdX or even a degree).
If no.2 was your choice, you will benefit the most from attending a programming bootcamp (where there are mentorship and pair programming opportunities)
Option 3 indicates that you like being shown what to do but still want to do most of the grunt work on your own anyway, which is what an online coding course will offer you.
And finally, choosing no.4 shows youβre an independent learner – you like to get your hands dirty. Youβll probably learn best from learning to code on your own.Though this simple test indicates which βlearning methodβ you will benefit from the most, itβs not a strict guide.
βSo, if youβre still intent on learning to code on your own, read on!
How do I get started?
First and foremost, youβll probably need to learn the syntax of your preferred computer language. Itβll make the other resources a whole lot easier to understand! Sites like Codecademy and Khan Academy will likely help you with that.
βRead also: Learn to code – Starting guide to learn to code for beginners
βOnce youβve gotten that out of the way
#1: Start small
If you have little to no coding experience, donβt dive head first into implementing big data structures or algorithms right off the bat. It is going to be really tempting to try to do some βserious codingβ first, but trust us when we say that getting the concepts right is an important part at this point.So, what can you do?
Start with basic coding exercises and try to understand how things work. Pro-tip: A good tool to help you further break down the code youβre using – without having to do any complicated set-up on your computer is repl.it.
At the same time, you canβ¦
#2: Read books
Fact: One book is more than what most people in the software industry read each year.
Though itβs not exactly one of the most popular methods to learn coding, books can actually help you pick up just about anything you need to know, provided you put in the effort – and, theyβre great for later reference.
Will books become irrelevant quickly?
No, especially for programming concepts that have and will continue to stand the test of time. After all, languages come and go but the theory remains.
Long story short, the basic concepts are more important than the languages.Weβve scoured the internet (so you donβt have to!) for a list of the Top 6 recommended books every programmer should have:
- The Art of Computer Programming by Donald Knuth
- Code Complete 2 – A Practical Handbook of Software Construction by Steve McConnell
- Donβt Make Me Think (Revisited) – A Common Sense Approach to Web and Mobile Usability by Steve Krug
- Peopleware – Productive Projects and Teams by Tom DeMarco & Timothy Lister
- The Pragmatic Programmer – From Journeyman to Master by Andrew Hunt & David Thomas
- Facts and Fallacies of Software Engineering by Robert L. Glass
And of course, youβll also have to learn to make full use of these books.
#3: Treat yoβ self
Hereβs your daily dose of the cold, hard truth: coding is hard, and itβs not easy to keep staying motivated. So what do you do?
As the gif suggests – treat yourself!
βTreatsβ might sound like a self-indulgent and almost frivolous strategy, but studies show that it plays an important role in re-energizing us and boosts our contentment levels.
And, it just makes the learning process a whole lot more enjoyable by creating a positive reinforcement every time you manage to hit a milestone.
For example, after you finish a certain programming book, go ahead and buy those new shoes youβve been eyeing for the past few months.
Or, better still – pick a project or skill you *really* want to learn and go for it. Donβt just stick to the βboring stuffβ.
#4: Clone popular websites
Also known as finding a website you like, and reverse-engineering it. Tutorials are perfect for learning new concepts, but for many designers, building sites from start to finish is what’s really solidified their knowledge.
By doing this, youβll have unlimited options to choose from, and you can try your hand at building imitations of websites built by some of the best developers in the industry.On top of that, because itβs not a paid job, thereβs no pressure to do anything. You also get free rein to add or change elements as you please!
All you have to do is open up the website on your browser and pretend that what you see is basically a βframeβ of your code.
Our advice would be to start with something simple – like a one-page βresumeβ website – before working your way up towards more complicated websites.And, as you do this, keep an eye out for techniques such as responsive web design, animations, CSS3 effects, etc). Read up on these features before using them, which will help you introduce them into your workflow.
Another pro-tip: Online Course Report has a list of tutorials where you can clone 15 well-known sites such as Etsy, WordPress, Quora, Pinterest and more.
One more thing: It goes without saying, but the purpose of this is purely for practice. Donβt pass off the designs as your own!
#5: Get your code out there
As you become more involved in programming, youβll find that youβll have to learn Git. (And if you havenβt gotten here yet, this is something to worry about later!) This is where Github comes in – itβs a great place to find people to collaborate with.
As a beginner, the last thing youβd think about doing is showing off your potentially messy and amateur code to the rest of the world.
However, pushing your code on GitHub and subsequently, getting feedback or even improvement suggestions, will be very, very beneficial if youβre learning to code on your own without a formal mentor.
Bonus: Github can also be used to find (real!) projects you can clone and tinker around with in helping you learn how to code.
Hereβs a really neat tutorial to help you along if you need to know how the heck you can use Github.
Oh, and if you can, find someone to do a code review for you, perhaps even from GitHub.Again, it might be deeply intimidating to get another (more experienced!) developer to go through your code, but theyβll be able to do this for you:
- See if there are any *obvious* logic errors in the code
- Listen to your explanation (of what youβre trying to do) and assess if you managed to translate that into your code in the best possible way.
- Tell you if thereβs a better (read: more efficient) way of writing that code
Also, code reviews are a tool for knowledge transfer.This might not seem as important right now (since youβll mostly be working on your own).
But, if and when you start working in a software development team, code reviews are a cost-efficient way of ironing out issues, allowing programmers to learn quickly from each other as well as bringing new developers up to speed!
#6: Quantity > Quality (at first!)
If youβre just starting out in your learning-to-code journey and youβre only going to take home on thing from this article, let it be this: Just make things. Donβt worry if they will be good, donβt worry if it will make you money, and donβt worry if theyβve been done before.When youβre starting out, it would be in your best interest to keep your βscopeβ small. But, make sure you work on it until it works.
β Rinse and repeat – your job now is to write A LOT of code.
βBut why?β you ask. Simply put:
- You could be the *best* programmer in the world (theoretically, of course), but it would be pointless if you never put it into practice.
- Writing code is a great way to learn from your mistakes.
- And, until you’ve mentally committed to coding something over and over, you will not improve.
Also, at some point, youβll have to step away from guided projects or tutorials and start working on your own stuff.
In other words, try to write your own code as soon as possible.
You can start with simply attempting to βrecreateβ a tutorial solution you just completed, to building actual, working projects.
Again, it might be bad at first – but you have to start somewhere
What if I get stuck?
Hit a speedbump in your code you canβt seem to get over? Canβt get your head around an important concept? Many programmers have been there and done that, so if you ever get stuck:
– Understand that youβre going to be bad at first (and thatβs OK!)
When you manage to understand a key programming concept (or finish a tutorial on Codecademy), youβll end up feeling really confident. #achievementunlocked, right? And then, you go back to do the tutorial a few days later, or attempt a more difficult exercise building on the earlier concept, and you feel more lost than ever.
So yes, youβre going to be bad. But, thatβs perfectly okay because programming isnβt just about memorising how to solve a problem – coding is a new way of thinking, which can be hard sometimes!It does get better as you go along, so itβs important not to get discouraged when you find yourself facing a problem you canβt answer right off the bat.
– Google it
During the learning process, youβll realize that everything is figure-outable. What this means is that almost every possible problem youβve faced has been faced by someone else before.So, make sure you master the art of Google searches – it will bring you very far on your coding journey.
– Find a mentor
While having a real-life mentor is not always possible, it is a good idea to find someone you can ask questions – provided that it is something you canβt find on Google, of course. A problem youβre getting stuck with could only take 2 minutes for them to explain, consequently saving you hours of stressing out over your code.Thankfully, many senior software developers understand what it feels like to start out with nothing to do, and are usually more than happy to share their knowledge if they have the time.Just remember to buy them coffee or lunch for taking the time out to entertain you!
– Inspect element, or check out the code
This bit is especially important if you intend to reverse-engineer websites. If you ever get stuck on imitating a website of your choice, just right-click on the webpage and βinspect elementβ for a hint on how to move on! But above that, studying good code examples is key to bettering your programming skills.Your ability as an engineer to discern between βgoodβ and βbadβ code (besides writing good code, of course!) will make you a valuable asset.
– Take a breather!
There are countless benefits to taking a break from programming, especially when youβre working on a project.Sometimes, all it takes is for you to step away from your computer (thereby giving your brain a break!) to go to the bathroom or to eat, in order for you to look at your code with a set of fresh eyes.The key is to work smarter, not harder!
βRead also: 27 unexpected things you’ll learn in a programming bootcamp
And finally, will I *ever* be good enough to be a software developer if I learn to code on my own?
It might sound like a scary thing to do – applying for a job as a software developer in spite of you not having any formal paper qualifications in the field. This is especially when all you have as βproofβ of your skills are maybe a bunch of badges on an online coding course site like Coursera/ Codecademy and your GitHub repository.
Long story short… Β Yes. There are many good programmers out there who were self-taught!
βWe may be biased, because even our founder Josh Teng spent two years to teach himself to code.
But yes, it is entirely possible that you can be a self-taught programmer.However, it will be a long, tedious process. Thereβs a saying that it takes roughly 10,000 hours of practice to achieve mastery in a field.
So you might be wondering – if Josh was self-taught, why did he end up becoming the founder of a coding bootcamp?
- He had no coding community to interact with and to share knowledge with (even though he was coding consistently) made him feel like he was going nowhere fast.
- His own startup couldnβt find enough developers!
- But beyond his own problem(s), his friends who had startups also faced multiple issues. They couldnβt find a tech co-founder and were unable to communicate with their tech teams
- found it too expensive to build a MVP
Everything changed when Josh attended a 9-week immersive coding bootcamp like NEXT Academy. Many in his βclassβ started with zero coding background, but ended their bootcamp stint doing things like:
- building (funky) WordPress plugins
- automated day-to-day processes/ utilities
- and even building their own MVPs which ultimately led to starting businesses.
Read also: People Are Quitting High-Paying Jobs To Join Programming Bootcamps. Why?
βBut whatβs the difference between someone who succeeds or fails at programming?You have to want it hard enough. You have to be hungry to learn.And above all, you need to stick to it… Even when (or rather, *especially* when) the going gets tough!
Conclusion?
Being a good programmer isnβt impossible – whether you choose to get a CS degree, take up a couple of online coding courses, attend a coding bootcamp or even teach yourself how to code. Remember that there are no hard and fast rules when it comes to learning how to code.
However, weβre not going to sugarcoat the truth – it can and will get harder and harder as you go along.
But, as our founder Josh Teng has said before, anything worthwhile will come with lots of failures and rejections.
Youβre bound to hit a wall when you begin your coding journey. And perhaps, youβll continue toβ¦ that is, until you find a breakthrough. Β So, donβt limit yourself to just one learning method – youβll only be depriving yourself of opportunities to find that breakthrough.
-
Stuart Dankerhttps://www.nextacademy.com/author/stuart-danker/
-
Stuart Dankerhttps://www.nextacademy.com/author/stuart-danker/
-
Stuart Dankerhttps://www.nextacademy.com/author/stuart-danker/
-
Stuart Dankerhttps://www.nextacademy.com/author/stuart-danker/