LEARN TO CODE AS AN ABSOLUTE BEGINNER
Tags: beginners, programming, career, codenewbie
Published: 2021-08-07 22:30:25

![Black and White Laptop](https://images.pexels.com/photos/2740956/pexels-photo-2740956.jpeg?auto=compress&cs=tinysrgb&h=2500&w=3260 "Photo by Prateek Katyal from Pexels")

I was fortunate to have a mentor guiding me and pointing out the pitfalls while learning to code. At that time, I was tempted to believe that I could learn to code in 3 months and become proficient. However, the truth is learning a programming language is similar to learning any human language, such that you have to start by learning the ABC (alphabets), syntax, and logic.

Most beginners usually believe that learning to code is a piece of cake. They glance through it and assume that is the best method.
It has been four years since learning to code, and I have realized that there are steps to follow to make the learning process easier and faster without getting overwhelmed.

Deliberate practice and often guided by an expert skilled coach or mentor (someone with an expert eye), according to bestselling author Daniel Golemon, these coaches and mentors are offering feedback in specific ways to improve and without such feedback, you don’t get to the top ranks. This feedback matters and your concentration does too, not just the hours. 

##**Ways to mastery**##

•	The best way to get better at something is through deliberate practice, which means practicing to get better, doing activities recommended by experts to develop specific abilities, identifying weaknesses and working to correct them, and intentionally pushing yourself out of your comfort zone.
 
•	Learn by studying experienced developers’ well-written codes and understanding what output every line of code is giving.


•	Do not forget that what you think often stays in your memory. For each line of code you learn, reminisce on it continuously.

I have always loved using computers since a young age, so I loved and embraced the idea of learning to code. I started learning to code four years ago. Thus far, I have realized that learning a programming language is literally like learning any human language like French, Yoruba, or English. 

We all know **_coding is simply using the syntax of a programming language to communicate with the computer, to output a given instruction._** 

For a beginner, coding can be overwhelming, frustrating, and intimidating especially, if you are not patient and highly interested. However, while learning how to code, I figured out there are some stages to follow to make your learning curve faster and seamless.

I have highlighted below, stages I followed that have helped me while going through my coding journey.

###**Stages in learning to code**###

![man on progress ladder](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6j8gxcf8ep1ivdex9gj.JPG "Man on progress ladder")


####**STAGE 1** ####
#####**Syntax stage**#####

Start by learning the syntax of the programming language. Languages have their syntax, which is the fundamental of any language. 

This stage is of importance because it will help you understand the basics of the language.

There are tons of sites online that you can use to learn the syntax of any programming language of your interest.

####**STAGE 2**####
#####**Algorithm/problem-solving stage**#####
The algorithm/problem-solving stage is the stage where you use the syntax you have learned to write an algorithm to solve problems. This stage is aimed at improving your logical thinking skills, mathematical skills, and problem-solving skills.

Some resources that helped me at this stage were

•	[Free Code Camp](https://www.freecodecamp.org/) 

•	[Khan Academy](https://www.khanacademy.org/computing/computer-programming) 
•	[W3Schools](https://www.w3schools.com/)
•	[Upskill](https://upskillcourses.com/)

•	[Code Academy](https://www.codecademy.com/)
•	[Udemy](https://www.udemy.com/courses/development/web-development/)
•	[Codewars](https://www.codewars.com/)
•	[Code Conquest](https://www.codeconquest.com/)
•	[The Odin Project](https://www.theodinproject.com/)
•	[Code Avengers](https://www.codeavengers.com/)
•	[Coursera](https://www.coursera.org/)


 
####**STAGE 3**####
#####**Tools stage**#####

The tools stage is the stage where you start to learn how to use important tools that are necessary to the code learning process. Some of these tools are

•	Debugging tools 
•	Code editors
•	Version control tools e.g. Git
•	GitHub and GitLab etc.
•	Chrome Inspect tool
•	Deployment tools/platforms (Heroku, Netlify) etc.

![person coding on laptop](https://images.pexels.com/photos/6330644/pexels-photo-6330644.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=1950&w=3540 "Photo by Mati Mango from Pexels")

####**STAGE 4**####
#####**Technique stage**#####
The Technique stage is where you learn techniques that are important to the programming language you are learning. 

Some of these techniques are

•	OOP (Object Orient Programming)
•	Variables
•	Methods
•	Functions
•	Higher order functions/closure/promise etc.
•	Array or Lists
•	If/Else statements
•	Loops
•	Classes and objects
•	Exception handling
•	REST Model (http methods/verbs)
•	MVC Models
•	Data Structures
•	Trees, maps, and more.
•	Frameworks like: bootstrap, tailwinds, node.js, react.js, Django, Flask, and Rails etc.

This is the barrier to entry stage and a lot of patience and persistence is required because there are lots to be learnt at this stage.
 

####**STAGE 5**####
#####**Read to understand stage**#####

“Read to understand stage” is the stage where you should read and understand documentation and also understand how other developers write their codes. At this stage, you can start applying all you have learned so far to continue to improve your understanding of the programming language.


Some ways to learning at this stage are by using

•	Medium
•	Stack overflow
•	Programming Documentations and write-ups
•	Framework Documentations etc.

You will also understand more about the industry, how things are done, the latest trends, and how things evolve in the industry at this stage. 

Your ability to keep yourself up to date about the industry will improve at this stage.

####**STAGE 6**####
#####**Implementation Stage**#####

The implementation stage is the stage where you implement and apply all you have been learning. At this stage, you can recreate other people's well-written codes and apps. This stage will help you solidify all you have learned so far and also improve your debugging skills. More so, you can at this stage figure out which of the stage you need to improve on.

YouTube video tutorials could be helpful at this stage. 

####**STAGE 7**####
#####**Create Stage**#####

At the “Create Stage”, you learn by creating simple apps, using all you have learned thus far, you could create simple apps like  

•	TODO app
•	Weather app
•	Calculator app
•	Your portfolio etc.

This is the stage where you get your feet wet and start using learned skills and tools. Lots of logical thinking is required at this stage.

####**STAGE 8**####
#####**Practice Stage**#####

The Practice stage is where you continue to practice and add more features to your created apps and expanding your coding skills. At this stage, most people get tempted to rush into learning another programming language, but I strongly suggest, keep practicing and immerse yourself into the programming language you have been learning otherwise, you stand the chance of completely forgetting all you have learned.

At this stage, it is advisable to collaborate with other developers ( [Chingu.io](https://chingu.io/)  provides a great avenue to collaboration) to further sharpen your communication and collaboration skills. Also, don’t be afraid of criticism because it will help to your betterment.


####**STAGE 9**####
#####**Internship Stage**#####

To completely immerse yourself into understanding how to code, the internship stage will help you understand the real-life applications of your whole learning process. At this stage, you start building up your technical experience in the working environment.

You will learn to follow standards and best practices. And more so, learn to work with scheduled timing to completing apps.

 Tools like
•	[JIRA](https://www.atlassian.com/software/jira)
•	[ASANA](https://taskablehq.com/)   

maybe necessary to help meet deadlines.



#####**Conclusion**#####
Generally, learning any skill requires deliberate effort to attain mastery. I must mention these are the stages I followed to learning to code, and as always, there are different possible ways to getting things done. The stages named above helped me become a better software developer. 

As a coding instructor, teaching others has also helped to improve my coding skills.

Hopefully, this write-up could help someone learn to code as an absolute beginner without becoming overwhelmed and frustrated.