I have helped hundreds of self-taught programmers with the right resources. I have talked to them when they were unmotivated and wanted to quit their job.
I got to know about how they write code. What kinds of mistakes do they make early in their career? What kinds of problems do they face the most difficulties with?
After talking to hundreds of self-taught programmers, I can now tell whether a self-taught programmer has experience or not.
1. They try to choose the same tech stack
Self-taught people have a habit of choosing the same tech stack. They are not prepared to step out of their comfort zone. They don’t want to learn anything new.
If the manager asks them to learn a different language, they try to convince their managers and team why the x language they know will be better for that project.
If they are asked to learn the React framework but are comfortable with Angular, they will try to get involved in projects that are going to use the Angular framework.
They are not prepared to get comfortable with the uncomfortable. As a developer, you can never grow in the industry if you can’t get out of your comfort zone.
2. They have an attitude of just making it work
Inexperienced self-taught programmers don’t care about code quality. They don’t focus on their own code style. They just want to build the desired feature in the app. If they are able to build what the company wants, they feel productive.
If they don’t fulfil the duties within the prescribed time frame, they feel that their effort has been in vain. All the days they have put in work have been wasted.
They don’t understand that sometimes when programmers try to write high-quality code, deadlines can’t be met. Deadlines have to be pushed in those situations.
If programmers started writing code that is not easy to read and maintain, every one of them would finish their work well before the deadline. Code quality is important.
To make sure the code is highly readable, programmers sometimes need more time to finish their work. It doesn’t mean hours spent creating high-quality code are wasted.
3. Write duplicate code
No developer wants to maintain a project whose code is not well written. If a codebase contains code that has been posted thousands of times, it becomes difficult to manage.
Inexperienced self-taught developers duplicate code a lot. They believe that if the software works properly, there is no need to remove duplicate code.
They forget that by copying and pasting the same code they are making the codebase bulky. They tell you that all these extra codes will only take a few seconds to execute.
But a web application, when delayed by a millisecond, will bring heavy losses to the client. With each unnecessary line of code, the client requires more space on the server.
Having a well-written code base with few duplicates ensures that the application runs faster and requires less space.
4. They don’t do any unit testing
Inexperienced self-taught programmers have a false belief that no test case could break their code. They check their code just by making code calls along with some manual testing.
When they build any web application, they simply interact with the application. If it works fine, they treat it as if everything is fine and there is no need for automated testing.
After talking to programmers, I can tell you that, wherever possible, take test-driven development approach. It is the only thing after which you can trust your code.
Even if you make changes to your code and forget to do manual testing, this test-driven development will ensure that the quality of your code is high. Also, it is a type of documentation that is always present with your code.
5. They run after the most hyped technology
This is the most fun. If I find a self-taught man running after the most hyped technology, I consider him inexperienced. You can call me a little biased.
I found that inexperienced programmers are the ones who talk about the next big thing. Each and every one of them wants to work with the latest technology.
When an inexperienced developer finds someone who is working with a slightly older programming language, say PHP, they will look down on those developers.
They think if a developer is not working with the latest framework and language, they are wasting their life.
I’ve often noticed that these inexperienced self-taught programmers have gone through a video tutorial on the latest technology. After watching the video, they start to consider themselves experts in that field.
But to become an expert, what you really need to do is create a real-world project, not just go through a tutorial.
- They try to choose the same tech stack.
- They have an attitude of just making it work.
- Write duplicate code.
- Relying too much on their code.
- Run after the most hyped technology.