If you are wanting to learn how to code but are a little stuck on how to get going then this tutorial is for you. Learning how to code can seem daunting and a near-impossible task at the start. There are hundreds of different languages and courses available, knowing where to start can be overwhelming. If you are currently in this situation, then this tutorial is written for you. By the end of this tutorial, you will have learnt about a simple process that you can follow that will get you on the path to mastery.
The first thing that you will need to do after committing to learning how to code is to define a goal. You need to define what you class as success. Is it to get a job offer, finish a course, writing a simple application and publishing it, or, to be accepted for a computer science degree at a university? This is your first task. Deciding what you want to do is important. Skipping this step will increase the odds that you will become too frustrated and give up. Learning to code is hard. To make things easy on yourself you should focus on smaller goals, rather than setting unrealistic expectations. Remember it will likely take you 10 times longer to master some level of coding than you are expecting it to now. Setting a goal will help you not become frustrated when you start to feel like you are not making progress.
If you have no idea where to start, I recommend picking a goal, like 'Create a simple to-do application' using this language. This will draw a line in the sand and limit what you need to learn. After you build the application, if you hate the language, repeat the process until you find something you like. Doing this a few times will give you some experience of what you like and what you do not like. When coding, pick one thing and stick with it. When you start trying to learn to code it is easy to become overwhelmed with everything that you need to learn at the same time. Do not try to learn 5 languages at the same time. Master one thing. Then move on. Whenever you are unsure of what language or framework to pick, you can use one of the following resources to find out which languages are currently popular:
As a coder, you want to make money!!! I have always tended to pick languages that pay the most. Whenever I have needed to learn a new language, I have used a medium day rate/salary as one of the criteria. There many languages and frameworks that a front-end developer can learn, JavaScript, React, Svelte, Angular, SASS, the list goes on and on. The important thing at this stage is to pick one area and focus on it
After picking a language, your next question will likely be, what should I code?!?!? One option is to take on a coding challenge. Making a commitment to yourself to code for one hour a day on a small project will help you improve your skills. There are loads of challenges you can take, for inspiration pick one of these ones:
When coding, pick one thing and stick with it. When you start trying to learn to code it is easy to become overwhelmed with everything that you need to learn at the same time. Do not try to learn 5 languages at the same time. Master one thing. Then move on.
Push Your Challenges To Github
At the same time as you are learning you should also be improving your understanding of your tools. Understanding your tools is a key part of mastering your craft. You need to learn these things:
At the same time as you are learning a language, you should also be improving your knowledge of your tooling. Understanding your tools is a key part of mastering your craft. You need to learn these things:
- Use GIT in a terminal
- How to host your application online, like Netlify, Heruko
- Source control hosting, like Github
- Terminal commands (Powershell, BASH, etc..)
- Shortcut codes
- IDE mastery, like VS-CODE extensions and short-cuts
Before undertaking a coding challenge, create a Github account. For each daily challenge commit your code into your Github. If you are writing a Javascript-based application you can host everything for free at Netlify. See my proof of concept GitHub account to see how I demonstrate and show off the simple applications that I create.
These challenges can eventually be used as your coding portfolio to demonstrate your skills. Be consistent with your progress. Github shows a graph of how frequently you push code into your repositories. A future employer who can see you have been making frequent commits every day for years will be impressed. Pushing your code into Github is really important as it shows a future employee what you can do and your passion. Mastering how to use GIT will also be an essential skill all future employers will expect you to have, so you will be killing two birds with one stone.
Get into the habit of using the command prompt to commit and push your code into your online repository. There are hundreds of visual tools, like GitKraken, that can prevent you from needing to learn how to use GIT properly. Using one of these tools will always mean you are less efficient, compared to another developer who understands GIT from the terminal.
When committing your code, if possible try to get a friend or someone you know to code-review your work. If you can get this type of feedback then this will definitely help accelerate your progress to mastery.
Promote Yourself
While learning to code, do not forget to start laying the seeds of promoting yourself at the same time. Promoting yourself is a great way to get seen, however, it takes time and can not be done overnight. Slowly building up your reputation will eventually help future employers and recruiters to find you. There are hundreds of different ways of promoting yourself. The 100 days challenge recommend you push new code into production every day for 100 days as well as tweeting your work with a hashtag. If you are brave enough you can record your progress and create a YouTube channel. Do not worry about being crap at the start. No one will view your videos, but it will get you into a good habit. Other ideas that you can adopt in order to start promoting yourself include:
Go to meet-ups. In our new virtual world, these are now online
Tweet popular hashtags about your work
Create a LinkedIn Profile
Create a Stackoverflow CV
Ask questions on blogs
Answer questions on StackOverflow
Attend a conference and talk to people.
Follow thought-leaders and programmers you admire on social media.
Try to grow Stackoverflow Rep
The list of promoting yourself and making connections is endless. The important thing is to make little steps frequently as this stuff takes time. Do not leave it until the last minute.
The Power Of Habit
When you learn to code you will get frustrated. It is guaranteed that you will feel like giving up at some point. You may feel like you are not making progress, or making progress fast enough. Mastery comes with time. Unfortunately, there are no short-cuts. I think this is why challenges are good. Focus on doing the best you can do within a given time frame. If you are consistently creating a new project every day then you will make progress. If you get stuck, give up and start all over again tomorrow.
On Github, you can see a visualization graph of how frequently you push code. You can use these metrics as a benchmark. Try to keep a chain of daily commits going for 100 days. Do not break the chain. If you find yourself being distracted while trying to code, consider setting a Pomodoro timer to help you stay focused for a period of time.
Use tools like RescueTime, or, WakaTime to monitor how much time you spend coding each week. These tools will send you weekly email summaries so you can track progress. I use these tools to check I'm spending enough time writing my books each week.
If you find yourself making excuses that you do not have time to code, make time. For instance, I wake at 5 am at least 5 times a week, before my son is awake to make progress on writing and publishing books. This one hour a day guarantees I make progress on my goals. Not everyone is an early riser and for you, it might be making progress every lunchtime in our break. The main takeaway is to pick a goal, find time each day to code and be deliberate with your practice.
Remember every day counts. Happy coding!