Learn to Code with the Right Mindset

If you are just getting into learning to code or web development chances are you are overwhelmed. Where do you even begin? Which technology to choose? How do you get a job after having some skills?

Learn to Code with the Right Mindset

If you are just getting into learning to code or web development chances are you are overwhelmed. Where do you even begin? Which technology to choose? How do you get a job after having some skills? Do you need to be 'certified'? In this post we will be discussing some of the important things to keep in mind to be able to navigate the learning process in a low-stress, high return kind of way.

Having the right mindset can put you ahead in the learning process. It can mean the difference between accomplishments and giving up too early. First of all at Codemy.net we believe Anyone (with the Right Mindset) can Code  we never talked about why we believe that. Hopefully this post will shed some light on our slogan.

1.) Errors will Happen / Things will break

When I teach beginners how to code. What I see a lot is panic when they face their first few errors. This is something that can 'hurt' the beginner's feelings if the right mindset is not applied. When learning to code be prepared that you will face errors, and things will break. When you type your code into the code editor and it gets consumed by the computer it will tell you if you did something wrong. That should not in any way effect you as an individual. All it means is, you should read the error message, and try to solve the problem. Error output is the ultimate feedback loop that will allow you to develop your skill as a programmer quickly. Great programming languages have great error messages. Programming languages like Ruby start simple and ease you into complexities and generally has very nice error messages that tell you exactly what you did wrong.

Sometimes Errors means you are making Progress!

Getting stuck on a problem for hours can be the ultimate learning assistant. It may not feel like it when you are stuck but when you solve that problem like 'oh I was just missing a bracket' I guarantee you that you will never make the same mistake again. You will always remember the pain that you were stuck on something so simple for so many hours and that's the kind of experience that will teach you to look carefully and type out your code carefully.

Sometimes if you are stuck for too long it also might be wise to ask for help my general rule is if you've been stuck on something for less than 24 hours it's too soon to ask for help. First try and figure it out on your own, and then ask for help. Google is your friend, StackOverflow is your friend use them. Try copying and pasting the error message into Google and see what comes up. You'll be surprised how many 'senior' developers still do this very thing.

Not far from the truth.

2.) Understand the Code

I can't stress this one enough. When you are reading tutorials, watching videos and following along. Don't copy and paste, type the code out line by line. This will force you to think about what you are typing in and why it works. You will piece the puzzles together as you are typing the code out line by line. You will reason about the code and reach an understanding of why things work. Once you've typed it out and you verify that everything works, try and clean up the code, try a different way of solving the same problem, based on your own understanding. Coding is very much a creative activity there are usually various different ways of doing the same things and if the computer says that it works your code is good, remember the computer is the one consuming your code.

Read the code!

If you didn't understand the code the first time round, go back and do it again. You need to understand everything you type out. When you have the 'aha' moment that is when you will learn. Things will click into place.

3.) Give Yourself Time

It took me years to understand Ruby and Rails. I'm still learning new things about ReactJS, Elixir, Ruby and Rails everyday.

Everyone is different when it comes to learning. Some people learn fast, some people pick up slow. Giving yourself enough time to discover how long it takes for you to understand things and write your own code is extremely important. At the end of the day once you get it you get it! I've had students come to Codemy.net after attending Bootcamps or attended other online courses and they are fustrated.

Only Neo can learn in an instance.

What ends up happening is I usually ask them 'why are you fustrated?' the answer almost always is "I've been at it for X months and I still don't understand it". I still can't write code. I usually laugh at them and say X months? It took me years to understand Ruby and Rails. I'm still learning new things about Javascript, Elixir, Ruby and Rails everyday. It took me years of reading other people's code, and writing my own crappy code. Then having projects fail because my code was to crap and starting again for years and years before I really could grasp what's going on. It's important to not measure yourself against other people's metrics. Which leads me to the next point.

This one is extremely important. Focus on your own progress. Different people have different methods of learning and have different metrics for themselves. Everyone's goals are also different which means the outcome is going to be different. Figure out what YOU want. Which programming languages YOU are comfortable learning. Figure out your own style of learning. Some people like sitting alone at a coffee shop when they learn. Some people like being a lone in the dark with headphones on. Some people like being in a group like a Bootcamp. I can tell you I for one like sitting a lone in the dark or with my headphones on in a coffeeshop to learn. I don't personally like group study sessions at all. I like just being by myself when I'm learning.

Remember the computer is the one consuming your code not any other human being. All you need is your laptop or computer. If you want to bring your desktop to starbucks hey be my guest! 😂

Don't follow other people's footsteps because they are following their own path. This  applies to every aspect of learning to code. Whether it's choosing the right programming language or the right problem to solve, or which area you would like to focus on do it for yourself. Set your own realistic targets. Don't compare and follow trends because that's just un-productive.

5.) Certificates don't Matter

The concept of being 'certified' started from an older generation, in Universities, when learning skillsets that are difficult to qualitatively measure. How do you measure if someone knows enough of something? That's basically the problem certificates solve. It usually involves some kind of human intervention to provide feedback. Things like learning to be a doctor, dentist, sciences are difficult to qualitatively measure that's why certificates can be useful in those industries. Learning to Code however is a different paradigm altogether. It's is the only discipline / practice where the feedback loop is right in front of you. The code you write is fed into the computer and it either works or it doesn't. Clean code, how well you think and solve the problem can be subjectively measured yes, but whether your code works or not will be told to you instantly by the computer.

In the mordern day we have social networks like github and gitlab that allow us to show-off our accomplishments online. Certificates as a token of accomplishmen are relics from the past or from industries that require them. In the modern day and age you can practice your skill as a programmer as you are learning. How good you are will be dependent on how much work you do. How many projects have you built? How much code have you written? Does it work? Becoming a good coder means to be able to write code that works and solves problems. So if you do enough of it and have your work in public that people (employers) can see, then certificates mean nothing.

The best 'certificate' a programmer can have.
Much more activity here.

Coding is a different paradigm altogether when it comes to analysing how good someone is. Having experience is the only way you will be qualified to do the job. In other words doing the work is the only way you will be good enough. Yes you have to start slow but the only way to learn to code is to actually code. Remember a piece of certificate doesn't show that you know how to code. It just shows that you've convinced someone to give you a piece of paper that says that you know how to code eventhough that person may or may not have even ever seen your code before. I remember having classmates in university that graduated as 'Computer Science' or 'Software Engineer' never having written a line of code.