The time it takes to learn to code can vary wildly from one person to another. Our bootcamps teach the trade in 15 intensive weeks, but someone with a more casual approach could easily take a couple of years. The topics and the order in which they are learned should also be expected to change from one person to another.
Nonetheless, were we to draw a line representing a student’s progress, with Doesn’t Know How To Code written at one end and Employable Programmer at the other, we would find such a line can be divided into certain ‘stages’ of learning which are common to more or less everyone.
Let’s look at what these stages are – but remember that, in this particular scenario, the upper limit is ‘Employable Programmer’. That is a veeery long way from the best programmer you can be, so even if you are nearing or already past the final stage in this list, do not stop learning!
Stage 1: The Convert
The first stage as a new convert to the world of code is reached the moment you can create very basic systems of input and output. The classic example of this is getting your program to display the words “Hello world!” on your monitor, but it may as well be getting it to perform an arithmetical calculation or moving a block from left to right on a grid (not inclusive of building the grid). At this point you have an understanding of logical operators like “if/then” in the abstract, but will not be able to use them in practice beyond the most rudimentary implementations. You still need hand-holding at just about every step, and will struggle with any error message you get.
Stage 2: The Acolyte
This is where you have moved on from learning basic concepts to using basic tools (e.g. libraries). Moreover, you now begin to combine these tools on a project, using for instance JavaScript to add some rudimentary interactivity to a simple HTML template. You are still very dependent on external help and will need every tutorial to be very exact, but you may now be able to complete part of their tasks by yourself. This is also the stage – for most if not for all students – in which you begin to get a sense of what you do and do not know, and therefore start asking the right questions to grow as a developer.
Stage 3: The Manciple
Now you have the fundamentals of your core language down, and you are able to implement frameworks and libraries. You also know how to use a variety of different tools on the same project. In short, you have reached a point where there is a lot you can do on your own – you just can’t do it very well. For example, you are able to translate a request given to you in your natural language into code in your programming language, but the code is unwieldy to maintain and not reusable. On the other hand, this is also the stage in which your personal style as a programmer begins to emerge, and you start to approach problems with original thinking and perhaps a little bit of daring.
Stage 4: The Adept
You are able to program most of an application by yourself, although for parts of it you still need tutoring, and you have moved on from thinking of coding as a sequence of small, linear problems. Instead, you can now see the big picture, and you know how to plan a project on a larger scale. You can conceive, in advance and in the abstract, what sort of features will enhance your application and how to implement them. You still have some prominent weaknesses, which may have to do with anything from your skills with a particular technology to your ability to organize work, but you are aware of them and working to redress them.
Stage 5: The Guru
You can now create elegant, functional code for standard applications, and you know how to test it and make it maintainable for the future. You will still benefit from tutoring by a senior developer, but that will be mostly because, like an artist, you will sometimes be inobjective and over-enthusiastic about solutions and methods you particularly like.
You are, of course, still Googling how to do stuff, talking to your rubber duck, and asking for help when you need it, because these are things that no developer ever stops doing. All the same, you are now an employable programmer – congratulations! And while you will never, but really never stop learning, it’s high time to start getting a paycheck for it.