Learning anything new can feel like an impossible task, but nothing is impossible if you have a great guide, mindset, and discipline.
Notice I didn’t mention motivation in the mix? This is because finding motivation doesn’t get you your desired result, but discipline definitely does.
In this article we are discussing learning a new programming language: A special guide for you, to help your self-taught journey. For simplicity, all resources linked in the article reference the two most populous languages according to general developer consensus; this should be a great start for most beginners.
How to learn to code?
First decide how you like to learn new information; is it through reading, watching videos or through more practical learning? This is important to know because it helps you find the best resources in your preferred form of learning. However, it doesn’t have to be one or the other – it can be a combination of all three. Find your preferred format and resources and stick to it.
Some of my favourite resources for the mediums stated above include.
Visual Learners
YouTube, Udemy, Coursera, Udacity.
Reading & Writing Learners
GitHub, Medium, FreeCodeCamp Blog, Hashnode, Dev.to
Practical Learners
Codecademy, FreeCodeCamp – These websites contain interactive IDEs(Integrated Developer Environments, which is just a fancy way of referring to the software developers use to write code) as well as course outlines for you to code along with.
Start with Programming Basics
Every programming language has its fundamental building blocks, and it would interest you to know that these fundamentals are similar across multiple languages. Where they differ is in the syntax, but once you understand the basics, getting familiar with the language syntax would not be a difficult task.
Here is a list of language basics you should take your time understanding.
- Data Types
- Variables
- Functions
- Array or Lists
- If Statements
- Conditional loops
- Classes and objects
Practice, practice, practice
Once you get the basics down it’s time to start building something, anything. First start with small projects; it’s important you start small, so you do not overwhelm yourself. The practical stage helps to reinforce all the knowledge you have gained from studying the language fundamentals.
Don’t just build one project, build a couple. I have listed some small project ideas below in two of the most popular languages for beginners. Once you have completed this in your chosen programming language it’s time to solve real world problems using this language. It could be a clone of a social media site, a real life problem you would like to solve, the possibilities are endless! This leads us to the next step.
Learn how to search for the right answers
Learn how to use the tools like Google & StackOverflow to search for answers to problems when you get stuck. Notice I said WHEN, because this will definitely happen, and there’s no shame in searching for the answers online; it’s part of the learning process.
If you can’t find the answer, popular websites like StackOverflow, Reddit, Twitter under the #hashtags of (#codenewbie, #100daysofcode) will allow you to post your question to millions of developers. This increases your chances of getting an answer. Sometimes it might take time to get an answer, but eventually something comes up.
It’s Time for Best Practice
After all that hard work, it’s time to improve and my advice is – read a lot of good code. Start with reading about best practice in your chosen language, there are so many books and articles out there that can guide you! Check GitHub for open-source projects, read the code, notice patterns and take notes.
I would recommend reading the book “Clean Code” or checking out the GitHub repositories for best practice using JavaScript or Python.
Have the Right Attitude
Try enjoying the process and be patient with yourself! The coding journey is a continuous learning process. Go back to step three and now add more involved concepts: some object-oriented programming, how to structure big projects, learn and use language frameworks. Doing these steps will definitely get you comfortable with the language.
Cheers & Good luck!
Resources
Beginner Friendly JavaScript Project Ideas
Cool Python Projects for beginners
Small Projects JavaScript & Python