How to become a self-taught Computer Programmer: A Comprehensive guide, 2022
Tags: programming, beginners, python, javascript
Published: 2022-04-05 06:46:14


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bud4cu9ntiyfiald6moo.jpg)
You have just derived an interest in Computer Programming, or probably planning to build the next Fintech app, and the need to understand a programming language becomes a necessity, as well, you have also been confronted with tons of suggestions about sticking to the appropriate programming language to learn.
If your answers are Yes, then I've got you covered. 😉
This article is written to lay down the road map for an aspiring self-taught programmer.

**Why being a self-taught Programmer is important?**

Before delving into understanding why being a self-taught Programmer is important, let's understand some basic conceptions about self-taught programmers. When you learn a programming language, Frameworks, Libraries, Tools, with all level of independency, by reading books, constantly visiting resource websites, watching videos from YouTube, following up Programming forums, without haven enrolled for a programming school, you are implicitly teaching yourself a programming language.

Think a moment, learning how to ride a Bicycle, while most people learn how to ride a bicycle through assistance from others, some learned it all by themselves, without any assistance to them on how to ride a Bike.

Self-taught programming processes are similar to the latter, in teaching yourself programming, you are left to find information yourself, solve the problem yourself, and as well improve your existing knowledge all by yourself. The adventures of every self-taught Programmer relies on the basis of learning anything related without any form of supervision and thus, may seem exhausting and frustrating.
Benefits of being a Self-taught Programmer
You don't need to be a 

computer science graduate or rather enroll for programming courses in other to build your desired app or website. In today's contemporary society, there is presence of adequate information that can be utilized by you in building your dream app or website. But one thing is common, how do I choose the appropriate information source? This could sound difficult, but I am going to disclose how to choose the right information sources for your self-learning in this article.

_Some benefits associated to being a self-taught Programmer_

1. **Access to varied information**
Learning a programming language by yourself implies searching for information by yourself, this information gotten are relevant to the knowledge intended to acquire. As a self-learner, you become adaptive towards asking google everything you need.
... lately I was working on a particular project where I was faced with a gigantic bug, as a self-taught Programmer I had no superior to lay my problems to, guess what, I googled about my bug, at that, I saw tons of web page linked to my search queries, well, clicking just about two webpages, I got an answer to my problem, someone may ask how do you know the best website to choose for your answers? I will explain how to sift information from the web, keep reading...

2. **Global Recognition**
In a study carried out by stack overflow, 2018, about 87% programmers actually learned programming all by themselves. Do you sense the influence?

3. **Learning Independence**
Learning programming language becomes independent, you don't need to rely on anyone inorder to get the right information. When you have some problems you sort the problems yourself.

**How to become a self-taught programmer**

Now, let's begin the climax; The steps involved in becoming a self-taught programmer may seem daunting, but your level of consistency and determination will take you where you want to be. Some steps are as follows:

1. Understanding your intents
2. Choose a programming language
3. Learn Basic syntax
4. Build projects
5. Keep Learning
6. Be harmonious!
7. Do not forsake the 8. Documentation

**Understanding your Intents
What are your Intents?**

The first consideration of every aspiring self-taught programmer, is the identification of what you intend to do. Your Intents may be: to build a world-class social networking site, or probably to create an alternative of Gmail, or rather thinking about the web, like creating websites for SME's businesses, or specialization in creating websites for managements enterprises. In both aspect of your Intents concluded, it must be linked to a broad aspect of programming.

Let's get more practical, if your Intents is bound to building app related products, you certainly consider Mobile Development, still under this you could choose an aspect of mobile development you wish to specialize in, such as building android apps, iOS apps, or both(cross-platform).
In another thought, you might be more interested in web, i.e. creating websites: you should probably consider web development, this can also have some subsection such as choosing between frontend (client side programming: UI and interactions) or backend (server side programming) or full stack(the combination of both).

There are other aspects that might spark your interest to programming, such as:

1. Desktop app development
2. System Programming
3. Data science and Artificial intelligence
4. Machine learning
5. Networking
6. Blockchain
7. Cybersecurity
8. IOT, and among others

It's very important not to disregard this stage, since it probably the first stage of you becoming a self-taught programmer, and must be carefully done based on your interest.

**Choose a Programming Language**

This stage might seem difficult, but I swear, it can be easy if properly guided. Presently, there are tons of Programming languages available, sticking to one appropriate to your needs, might be daunting.
By now you already know why you want to learn Programming, the next step is linking your Intents to a particular Programming language. Two Programming languages might do a particular thing, choosing the appropriate one depends on your Self-agreement, in terms of availability of community forum, easy to comprehend syntax, well written documentation etc.
Here are list of aspect of programming and popular programming languages related:
1. Mobile Development: Java(Android), Flutter(Android & iOS), React Native(Android & iOS), Kotlin(Android), C++(Android), Python(Android & iOS);
2. Web Development
Front end:HTML, CSS and JavaScript etc.
Backend: PHP, Python, Java, C++, JavaScript etc.
3. Desktop app Development: Java, Python, JavaScript, C++, C# etc.
4. Game development: C++, C, C#, Python, Java etc.
5. Cybersecurity: Java, PHP, Python, SQL, PowerShell etc.
6. Networking: Python, Golang, C, Java, C++ etc.
7. System Programming: C++, Java, Python, Golang, C# etc.

**Learn Basic Syntax**

Which ever programming language you have chosen, learning the basic syntax is necessary. Syntax refers to the rules that define the structure of a language. Syntax in computer programming means the rules that control the structure of the symbols, punctuation, and words of a programming language.

Without syntax, the meaning or semantics of a language is nearly impossible to understand. Basically, every programming language has it own syntax, the syntax of Java is different from the syntax of Python. Learning a programming language syntax acquaint you with what you are likely going to use, some syntax might be easy to learn, while others might not be easy, it all depends on your stage one and stage two.

**Build Projects**

Yes Projects, the one with "s", you practice what you learned, by engaging yourself in simple projects, building of projects takes you from the space of learning to the space of using what you learned to solve some simple problems. There are several projects you can build, though it depends on the level of knowledge you possessed. For beginners, projects like guessing game and password generator are good projects to consider.

**Keep Learning**

'Never stop learning' you are bound to keep learning without any relent, learn some advance topics as related, such as OOP, Exceptions, Thread, Data Structures and Algorithm, "Advance topics may defers in programming languages" this helps in self-development.
Be Harmonious!

There is no much gain engaging in Individualism, As a self-taught programmer, develop some level of Collectivism, relate with fellow programmers, make discussion about some related concept, build collective Projects. Being harmonious  can be possible through membership with programming forums, social media forum and among others. In addition, you could participate in devfest, hackathon etc.

**Do not forsake the documentation**

As I stated earlier, you must maintain a cordial relationship with various documentations, documentations serves as guides, or from the librarian perspective, (Reference materials). You certainly need to consult a guide for your work flow, try to understand how to navigate to various section of a documentation, some documentation might seem too complex to flow through.

**Resources for learning**

Choosing the appropriate resource for learning is one of the core factor for development, mostly for aspiring self-taught learners, in this section I will outline the various resource of learning, in hierarchy of importance:

1. **Video Tutorial:** Literally, I choose this first, Video tutorials serves as mind opener, through watching of several video tutorials you could get a glance of the concept you intend to learn. YouTube is a good example, where you can find tons of explanatory video at your request.

2. **Book:** Book is undoubtedly very important to all categories of programmers, reading books do not only give you concrete knowledge about programming concepts, but also have a wide scope. Some source of e-books is: www.pdfdrive.com, www.oreilly.com and among others.

3. **Resource website:** The usefulness of resource web is essential to every aspiring self-taught programmer, because information in this website are relatively released on a regular interval, thus making it easy to track down recent developments. Examples of some resource websites are www.w3schools.com, www.freecodecamp.com.

4. **Documentations:** Sometimes when I get confuse I consult the the documentation page, A documentation is like guide to programmers, and are mainly for consultation.

**Sifting the right information.**
[](url)
Sifting right information from pool of information can be difficult at times, most especially to beginners, some website has worthful contents, while some do not... As an independent learner of programming, it might seem difficult for you to choose the appropriate content for your use; Here are list of websites that contains worthful contents, and of which I have personally used when the need to solve a problem arise:

1. W3Schools
2. Freecodecamp
3. Medium
4. Guru99
5. Geeksforgeeks
6. Stackoverflow
7. Simplilearn
8. Sciencetecheasy
9. Studytonight
10. Tutorialspoint.

There could be more other relevant websites, but these are my most useful websites for learning.

**Conclusion**

For you to become a Self-taught Programmer, you must be ready to code at least 2.5-4.0(hrs) daily, this could be done with determination and dedication... Basically, not all self-taught Programmer ended as they wish, some got frustrated, or rather could not cope with system... But I am assuring you, if you can strictly follow the principles I had laid earlier, you will definitely go farther as a self-taught Programmer.