Learning how to code is a daunting thing. It requires grit, determination and patience – and that’s before you even touch a line of code. The internet is full of tips on what languages to learn and technical lessons, so we thought we’d focus on advice you need to keep you going throughout the process of learning
1. A self-starter attitude
The first thing you need to be able to do when learning to code is quit questioning yourself and everything else and just start learning to code.
Procrastination is a strange form of self-sabotage, but usually stems from a desire to avoid something that is, at least to some extent, painful. Psyciatrist Phil Stutz states that the first step to overcoming procrastination is simply to identify the fact that you’re not avoiding action, you’re avoiding discomfort.
When you imagine starting to learn to code, try to identify what’s causing you the discomfort. Is it the quantity of information you need to consume? Is it the time it’ll take? Is it the fear that you won’t be able to do it? Will you need to be vulnerable? Will you need to work hard? Whatever it is, it’s going to cause you some amount of discomfort, and it’s tempting to let that put you off.
Your comfort zone might seem nice right now, but it’s also a place where your relationships, ideas, opportunities, knowledge and growth are severely limited. Your comfort zone is definitely not a place where you learn code, and that’s your goal, right?
In fact, sitting in your comfort zone is using up the most valuable resource you have when learning code: time.
So, we’re happy to let you keep procrastinating by finishing this blog post because it’s bound to help you in your quest to learn code. But after that? You want to learn code? Just do it.
Learning programming is a difficult and complex process, especially when you are first starting out.On top of that, our expectations are often out of sync with reality and we expect to able to master something quickly, in spite of the fact that we know it’s going to be difficult. And so then we get frustrated when it actually is difficult and we can’t master it quickly, even though we knew it was going to be difficult!
It’s tough to be a human sometimes, right?
So when there’s a particular problem or things simply aren’t moving as fast as we wish, tempers can flare. The process is the same for most of us: clouds form, a knot appears in your stomach, your muscles twitch… Then, before you know it, negative thoughts begin pouring in with abandon. Suddenly you’re blaming someone or something because it allows you to vent your frustration. But what acts as momentary relief soon becomes another problem: you broke the table, your partner is upset with you for shouting at them or you’ve simply wasted a lot of time being angry when it didn’t help you come up with a solution at all.
So what can you do? Well, firstly you can try reframing the problem. Can’t get past a certain piece of code? Well, maybe this is an opportunity to seek help and find some different ways of learning. Maybe it’s the perfect chance to revise some of the work you’ve already done. It could be that you simply need a break and to come at the problem with fresh eyes, so maybe it’s time to grab that cup of coffee you promised your boyfriend?
The more you practice this, the better you’ll get at it. And you’ll need patience throughout your entire career as a coder, that’s for sure.
3. The ability to break down problems
When you have a task in front of you that seems monumental in scope it can be a pretty daunting thing. Just imagining the amount of work it will take can exhaust you and lead to you getting stressed out, or even putting it off completely.
The best solution? Break it up into smaller pieces, and do this as quick as possible.
As John Sonmez, founder of Solving Problems, points out: “The most common mistake I see when conducting interviews or watching someone try to solve a programming problem is trying to start writing code as soon as possible.” And it’s not just interviews, of course. With any task, take a while before starting to think the whole thing through. Divide the bigger task into its component parts, and (if you have time) work out how much effort will be required to take on each part and prioritize the workload based on that. You may prefer to ease yourself in with some of the smaller tasks, or it might be more your style to go for the more difficult parts and work your way down. In any case, once you have everything in order you can start working in manageable portions, and that’s the way you get things done.
Learning to code is a long, difficult process. That’s why it’s doubly important to have perseverance.
In fact, perseverance is often cited as one of the most important factors in finding success, whatever the goal is. The art of getting back up when you’re knocked down, or sticking with a problem through to the very end, is often what separates those we look towards as examples from the rest of us.
“It’s not that I’m so smart, it’s just that I stay with problems longer”.
– Albert Einstein
Lucky for you and I, perseverance isn’t something that’s out of our reach and can come with some practice.
When things don’t quite go to plan or things aren’t moving as fast as you’d like, remember that it’s ok. Things will work themselves out. Stay optimistic.
You should also learn to embrace your failures. We hear countless stories of CEOs that have experienced some kind of huge failure in their life, and that it was this very thing that spurred them on to succeed. On your path to be a coder you’re bound to go through many setbacks, but try to see them as opportunities to learn and to grow, because it’s very likely you’ll point to these difficulties and how you overcame them if you’re asked: “what was the most important moment for you when you were learning to code”.
When you’re stuck it can be tempting to spend hours and hours watching entire tutorials and reading articles without running a line of code.
That will get you nowhere.
As tempting as it is to keep scurrying down the rabbit hole of abstract knowledge, you have to implement what you learn otherwise you’ll lose what you set out to learn in the first place. Not only that, but we all know that endless YouTube videos, even if they are related to coding, are still just a form of procrastination.
Consider the quote – “The great aim of education is not knowledge but action.” By doing endless research when you’re trying to solve a problem, you can trick yourself into thinking you’re being useful, but without actually getting back to the problem and trying to solve it, you’re simply putting it off. Do your research, of course, but get back to work as soon as possible.
6. Soft skills
The stereotype of a coder is an unhelpful one: anti-social nerds whose technical brilliance makes up for their notable lack of interpersonal skills. It might be tempting to aspire to this level of maverick capability and ignore the importance of, y’know, just being decent to others, but you would do this at your peril.
Being a coder you may have tasks that at times feel different to the rest of your colleagues, but you’re still part of the company and your ability to fit in and communicate is likely to play a big part in your professional growth. That’s why at SPICED Academy we don’t just focus on the technical stuff, we also invest a lot of time making sure our students are job-ready in other ways.
So, what are soft skills, and how do we develop them?
According to Wikipedia, soft skills are “a combination of interpersonal people skills, social skills, communication skills, character traits, attitudes, career attributes and EQ (emotional intelligence quotient) amongst others.” More specifically, you don’t have to be a published writer or anything, but you should be able to write a memo, to be able to communicate your needs clearly to others, and to be able to present information. You should also be able to work effectively as part of a team, which means meeting deadlines, being able to lead, being able to follow, being able to adapt and being able to listen to others.
More than anything, try to ensure you’re pleasant to be around and an important member of the team for more than just your coding skills.
7. Thick skin
You’re not perfect.
I know, I know, you’re pretty damn awesome, but even the best of us make mistakes and can stand to improve. That’s why criticism is such an important thing, especially when it comes to your code. In a similar fashion, says SPICED’s Julia, you should never be afraid to say: ‘I don’t know’. A gap in your knowledge, or simply not understanding something, is an inevitable part of learning something new, and you’ll only improve if you ask for help.
We often feel vulnerable and weak when we are criticized or when we ask for help but, to the contrary, it actually takes a great deal of courage and strength to not get defensive, to see that we can improve and, finally, to act upon it.
8. The ability to switch off
Nothing helps in finding the solution to a problem like stepping away from it for a little while. Again, the myth of the coder working relentlessly all hours of the day is a damaging one – breaks are necessary, helpful and lead to increased productivity.
It’s important, also, that you try to take the right kind of break more often than not. Get some fresh air, maybe do some exercise, speak to someone, remain active in some way. The temptation to just veg out on the sofa while finding out the answer to What Is Your Inner Potato may be overwhelming, but will most likely start to shut down your brain and cause you to lose focus in the long run (which is the opposite of what you want). Of course, grabbing a snack and completing a BuzzFeed quiz about which Disney ride you are (The Enchanted Tiki Room, if you were wondering) is bound to happen at some point, just try to keep it the exception, not the norm.
And of course, if it’s getting late, you should almost definitely go to bed. There’s almost nothing so important that it can’t wait until the next day.
If you’re interested in learning to code, check out our Full Stack Web Development course here.