Common Difficulties Face By Self-Taught Programmers

Mr. Unity Buddy's photo
Mr. Unity Buddy
·May 6, 2021·

6 min read

Common Difficulties Face By Self-Taught Programmers

Subscribe to my newsletter and never miss my upcoming articles

Play this article

Hello, buddies! We know, there are plenty of self-taught programmers/developers as well as College educated programmers. But you know it is hard to become a Self-Taught programmer but why? So today we're going to see difficulties that makes hard to become a self-taught programmer.

Not Identifying the Finish Line — And Being a Forever Beginner

image.png As a self-taught programmer, we are prone to imposter syndrome. Let's talk about it more in the end.

Being self-taught, we may associate that with being scrappy or having blind spots, and not like we have put together our own curriculum that amounts for all or more of what a computer science student has.

Without the degree, we can be more prone to insecurity about our skills, and as such, we may be in the process of being ‘self-taught’ forever. That’s why we need to see a goal clearly.

The book The Self-Taught Programmer encourages an “endgame first” approach to programming. The endgame-first approach is to start at where you want to be and work backwards.

This is an effective approach, because this lessens the chance that you will get bogged down by learnings that will ultimately prove to be irrelevant. When we take a theory-first approach, we do not yet know the application or relevance of what we are learning, so we cannot accurately weight its importance.

An endgame-first approach ensures that you waste a lot less time.

Getting Bogged Down By Theory

image.png As an example, to understanding your data structures and algorithms, you need to develop comfort with your text editor or IDE, develop comfort with package managers, Bash, and using a terminal, and learn how to use version control.

You must learn theory, but the trap lies in starting there and staying there, not knowing how to do the basic day-to-day tasks of the job itself, which is living in Stack Overflow more than it is using Big O Notation. The university system might put you in a place where you are learning only theory without application — without coding at all in a semester. As a programmer, you must always be coding.

Taking a coding-first learning approach is powerful to learning fast and efficiently — an approach that many universities don’t care to use. Why? University systems are not incentivized to teach you efficiently or expediently. The time frame is approximately four years, after all.

But you don’t need four years, and to learn efficiently, you need to program your subconscious to care about what you’re going to learn. And caring means putting yourself in a situation to fully grasp all that you don’t know. Failing a code interview or starting a programming project knowing nothing is a slap in the face — but one that kickstarts your learning like nothing else.

Not Being Eligible for Several Job Opportunities that Require a Proper Degree


Everyone knows that self-taught programmers don’t often rely on any degree or certification to showcase or prove their programming skills – hence they also don’t give much importance to possess any particular degree program. But, on the other hand, several companies during recruitment do require a degree from you to consider for the job opportunity. Now, what..?? So, you need to understand two things – firstly, if you can pursue a proper degree course along with the self-taught programming approach then it will make it easier for you to get numerous worthwhile job opportunities. Secondly, if you’re really having some outstanding programming skills then companies like Google, Ernst & Young, Apple, etc. can hire you without the compulsion of a degree, though all you need to do is show your worth to the recruiters.

Taking the Scattershot Approach

The Self-Taught Programmer focuses on only one programming language: Python. A common mistake: self-taught programmers have a hard time focusing on just one thing. There is so much to learn, it’s hard to hunker down and figure out only one programming language or framework.

We want to be fast, but being slow and diligent is the fast approach.

Programming requires deep focus and problem solving skills, but if you find yourself in a position trying to learn more than one thing at the same time (which I am totally guilty of, too), it’s easy to find yourself never in that focus state and therefore not learning to be a programmer. Deciding on one thing — one language — is one of the most powerful approaches you can take as a self-taught programmer.

When you commit to learning one language and learning it well, you have a solid frame of reference. Many languages share similarities and they share concepts. For example, you will encounter logic in any language in the form of conditionals, but there are minor differences between them. Many languages operate with object-oriented principles, but the difference between Javascript and C++ are fundamentally different, even though the ES6 mask may make them seem similar on the surface.

Do not confuse yourself.

Learn fast by being patient and diligent.

Choose one thing and stick to it.

Lack of Time Management

image.png Time Management is one of the most-discussed aspects of self-taught programming among individuals and particularly among beginners who are just about to start their programming journey. In the self-taught programming process, you’re not bounded by any time limit or deadline to complete your tasks and curriculum which somehow has few benefits but has several difficulties also. For instance – self-taught programmers generally over-analysis a particular concept or topic that doesn’t require that much in-depth understanding and it eventually makes the learning process slow. Similarly, due to lack of time management, processes like the collection of learning resources, saving problems, etc. consume more than the required time which is not something appreciable.

Higher Chances of Impostor Syndrome

image.png Last but not least. Maybe you’ve not heard about this particular term ‘Impostor Syndrome’ but you surely would have experienced this in various phases of your life whether it be academics, sports, or any other. In the self-taught programming context, impostor syndrome is a state of mind when you generally doubt your programming skills and consider yourself inferior in front of other programmers. However, it is not something too serious, and even many experienced programmers also suffer from this feeling. It ignites the spark in you to grow more and expand yourself. Though it should exist within a person to a certain limit as after a particular level it starts to affect the programmer’s productivity and also reduces the confidence, especially of new self-taught programmers. Learn how to fight with Imposter Syndrome here


Choose Programming First. Every day, learning how to code feels painfully slow, but it is an incremental process. That’s why I absolutely love the #100daysofcode challenge. If you code every day, you will be blown away by your progress in several months time.

Practicing each and every day on practical projects will give you exactly what you need to excel professionally. Don’t go chasing employers or trends. Don’t procrastinate by learning theory first. You can be a programmer from day one. All you need to do is commit.

We’re finding ourselves at home, practicng social distancing for a long time. Instead of the streaming or playing more of the new release of Pokemon Mystery Dungeon (guilty as charged), use your insanely valuable time to become the self-taught programmer you always dreamed of being.

You should read,

Share this