What is your competence level as a software developer? To answer this, I come up with a simple framework that I call ‘The framework of Competence’.
Being a software developer is a journey. In each journey, you are on different stages. So this framework will tell you at what stage you are in your journey.
Also, this framework is helpful in getting you out of overwhelm. In a programming career, you hear about new tech, frameworks, languages quite often. This can be overwhelming for junior developers. But when you know how will you look like after some experience then you will not feel overwhelmed.
This framework is not here to demoralize you. Once you know where you are you can easily plan your next move.
Stage 0: You are not a programmer– obvious.
Stage 1: You can develop in a scripting language.
Stage 2: You are acquainted with writing apps in a real programming language.
Wondering what is the difference between scripting and programming language. Look at the answer in this post.
For me, the scripting language is something that is easier to work. JavaScript is a good example (no type checking and easier on forgetting ‘;’ )
Easier than scripting languages are markup languages–examples are HTML and CSS.
Stage 3: You can write complete apps in a programming language and can design a simple API.
Stage 4: You have a complete grasp on developing API and you can write optimized code for the hardware.
Stage 5: You develop operating systems and drivers.
This is a very simple back of the napkin paper framework that you can use to identify your capabilities.
Use this framework when you see a more skillful developer.Β With this framework, you will know that you can get to his level of expertise or even ahead but itβs just a matter of time and hard work.
Great
If you like this post then subscribe to get the step-by-step guide to create your personal tool for fighting impostor syndrome.
Also, this guide will help you to:
- Document your progress
- Make better software task estimation
- Keep motivated
- Authentic self-appraisal
[maxbutton id=”2″ url=”http://eepurl.com/b34ZpL” ]
Looks good — but you have left off some stages. Also depending on your career, some intermittent stages may be omitted.
Stage 1.5 You can develop a web application and its server.
Stage 6 You can debug / modify the hardware (not building out a new computer).
I have always thought that the term “full stack developer” is very misleading. It is only stage 1.5. To me, it should mean stage 1- 6.
Hi Micahel,
thanks for the appreciation. 1.5 for web development looks good to me.
Your description of someone who can modify the hardware seems a little too much for a developer. For me, the only hardware modification is that I can swap things (RAM, Processor, HDD). π π
Also, I didn’t meet anyone who solders devices while writing the device driver!
Thanks.
As far as writing device drivers — I have had to assist with debugging while writing device drivers. It has been some time, but sometimes only software can bring out a bug in hardware. But, it is not actually about modifying hardware, but the understanding that you obtain about the levels about it.
There are also plenty of other areas that may or may not need to be recognized. Lots of room between stages 3 and 4 such as developing AI applications.