5 years? 2 years? 5 months?
Or how about 3 days without sleep and an endless stream of free coffee?
How does it take to learn to code? Generally, applying a precise unit of time measurement for the learning to code process depends on a number of factors and more generally it comes down to what you mean by 'knowing how to code'. If it's gaining a grasp of code, you're looking at approximately 3 months of full-time learning. If this pace of learning is maintained, at 5 months the individual can consider themselves an amateur developer, able to experiment with a specific technology and start turning their ideas into working code. At approximately a year, you've developed a wider knowledge on IT development in general and ripe for junior developer positions.
These observations are spread over several years of training students in person. There are a few key factors and nuances you need to consider when looking at how it long it will take you to learn.
1. Why Knowing how to code does not mean being a developer
I want you to consider "knowing how to code" as a means to an end rather than an end in itself.
Here’s draw an analogy here and compare coding to baking. If you enjoy spending the weekends baking brownies, would you consider yourself a baker?
No, not really. Yet, a baker performs the same, or at least similar task, as you do.
But where you might consider yourself the brownie MasterChef, the professional has a whole of host of memorized recipes for bread, baguettes, croissants, quiche, scones, cupcakes, among many other delicacies.
The baker has developed a know-how built up over years of kneading dough on a table top from morning to night. They also know how to manage stocks, customer requests, the pricing, etc.
Like the profession of baker, the profession of developer is not simply limited to the completion of their main tasks. It's about bringing a whole set of skills and abilities together.
Being a developer is really about:
- knowing what tool (programming language) to use for what job
- knowing how to get into an existing code base and understand how it works
- knowing how to break a problem down and fix it
- knowing how to hand over work to a colleague
There is a whole lot to being a developer that takes quite a lot of learning time and on-job experience.
My timings are going to distinguish between "knowing how to code" and your goal of being a employable software developer.
So with that mind, what are the timelines for each stage of learning to code:
2. The factors that impact on the time it takes to learn to code
The timeline differs a little depending on three key parameters:
The timeline has 3 levels that take you from grasping the concept of code to being the sort of developer I discussed above.
2.1.1. What is your starting point?
Anyone who as a kid dabbled in games modding or has already practiced some HTML and CSS will have a slight advantage than someone who is opening a code editor for the first time. This timeline is applicable to those just starting out.
2.1.2. How will you learn to code?
It is difficult to define a general duration for learning to code when different courses, uni majors and bootcamps each require different levels of personal investment from their students
There are also other considerations such whether you have a direct support from a teacher? Are you studying with other students, on hand to keep you motivated? What is the quality of the education resources?
2.1.3. What Do You Mean by 'Knowing How to Code'?
Is it:
- Creating a game from scratch?
- Transitioning into employment as a coder?
- Developing your own blog?
3. The Learning To Code Timeline
The following timelines relies on three interpretations of the factors above:
You're a complete beginner following an intensive, full-time course of learning to become a Professional Developer.
3.1. Level 1: At Least Three Months To "Knowing Code"
This is where you start the discovery and initial tentative steps into your journey.
After three months, you can say that you 'Learnt to code'. That means having in the bag a few technologies and an understanding of their functional usefulness.
We are talking about intensive training where we code morning, noon and night. (You might need to also give up your weekends baking brownies!)
3.2. Level 2: At Least Five Months To ‘Knowing How To Use Code’
If after 3 months, you know how to handle HTML, CSS with perhaps some PHP and JavaScript, we are still a long way from being operational in a professional environment.
However, if you keep up this "intensive" pace of learning, it'll take roughly an additional two months to really develop what starts to define an amateur developer: Applicable know-how.
Being a developer is not just about putting lines of code into a text editor. It's about building things that work.
If the first three months provided the general technical background, it is now that you will start to focus on a specific technology, building your first pages in a web app, or your first basic mobile game. You'll have cultivated a deeper knowledge on a given language and its nuances. At this stage, you are starting to specialize somewhat two.
At this point, you are still a fairly newbie developer, but, it's only one way up from here.
3.3. Level 3: At least a Year To “Knowing How to Develop”
At this point, you’ll have really consolidated your knowledge and hopefully have a portfolio of basic apps.
4. Why do different schools/bootcamps have different opinions on the time it takes to code?
It can be difficult to select a course when several organizations have diametrically opposed opinions.
This is partly down to the training market being very competitive, so expect the best arguments and punchlines to seduce you.
What I suggest in this case is to contact all these schools in question and ask them the stated objective to their training.
So grab your phone and pen and paper, asking questions like: "What am I going to learn during these X months of training?” “What is this course really going to do for me?” “Would I be able to start applying as a developer after your training, etc. "
Gather the questions and answers (with a healthy dose of skepticism) from all prospective schools in order to settle upon the one that best meets your personal aims.