Yes, I have seen some self-taught programmers going back to school in order to increase their chance of getting certain roles. Is there something they are missing? Let’s see.
General Computer Science knowledge
For sure, an individual who has passed through an IT or CS class understands a lot of things inside and outside the computing world. You get to understand that programming language is just a tool but not everything for code to run. Self-taught programmers miss out on a lot of things. Some even don’t understand the reason for using a specific data structure and how it might have an impact on space and time complexity. Having a deep knowledge of processors and how your code is compiled is an edge.
Test-driven development.
Most self-taught programmers don’t understand a lot of principles, like the importance of testing a code before you put it into production. Tests play an important role, but if you didn’t take a course in software testing, then it will be difficult to understand its role. A production code must pass through thorough tests so that clients won’t receive multiple bugs.
Inadequate knowledge of design patterns
There are many ways to write code to perform the same functions. But you require a deeper understanding of design patterns to choose the right method that will make your code run faster, be clean, and easily testable. Design patterns have been the solution to many problems, but beginner programmers and self-taught programmers rarely use them.
Misunderstanding Complexity
Here is where we look back on the data structure and algorithm topic. For my whole life in CS class, we learn almost 3 units about algorithms. The lecturers brought ambiguous questions which made us thinks and come up with a complex solution that we dint even understand. Writing your code to occupy less memory(space complexity) and take little time to respond(time complexity) is something sensitive. There is a need to scale down all the functions you use.
Reinventing the wheel
Yes, it has been written in over 100 blogs, and we still insist on this. A lot of self-taught programmers will want to show off how they can write complex code and get it run. They follow a long process, neglecting a library that was created for that task. It’s okay. Not all the packages and libraries must be used. But you don’t have to start everything from scratch. There are experienced people who have created that tool to minimize the time of development.
Not expanding their network
In programming, it’s not all about writing code alone. If you don’t interact with people who are in the same field, you will find it difficult to grow. That’s where college students shine because they interact with people in the same field. They get exposure to a lot of experienced people. Some get opportunities while in school because of collaborating with companies. As a self-taught programmer, let LinkedIn and Twitter be your best friend. Also, don’t forget to attend meetups and hackathons to see other people’s projects.
Under-confidence after people mocked you
Yes, as a self-taught programmer, you can get invited to an interview. We have those experienced fellows, maybe they attended a university, and they trust only people with credentials. At some point, they might mock you. But never listen to what they think of you. You are better than some of them. Just continue learning, and the right opportunity shall come.