This is the perfect time period for self-taught programmers, following few resources and some learning dedication, you can automate a workflow, make a website with few lines of code you. If you invest more time and dedication, you can make complex games, a social platform and more.
The question here is: can anyone become a self-taught programmer? If yes, what’s the best way to learn it?
This blog is al about guiding you throughout the process of learning how to code on your own. What you should be aware of, the Ins and Outs, the method you should follow, and how to choose the language to start with.
Questions to answer
Answer those questions to make the learning process easy for you:
- Why do you want to learn programming ?
- How is programming going to help you?
- What areas of programming are you interested in?
You should understand from the beginning that in the world of coding, the self-taught programmers path is the hardest.
The Big Picture
What I mean by the big picture is to understand how programming works at scale and all the small pieces that makes up the domain of coding. That would help you make decisions on what you want to learn and specialize in and define the path you want to walk on.
Choose Your Domain – Future Role
Programming is a vast discipline, and it is getting vaster every day. That’s why, every programmer has to choose a domain and to specialize in! Whether that is Web Development, Software Engineering, Automation, Mobile App Development…etc. And better, to specialize in a subdomain like in Web Development, you can be Either a Back-end developer or a Front-end Developer.
The reason that pushes every developer to specialize is, as mentioned before, due to the scale of the programming world, and a life time wouldn’t be sufficient to master all of it! That’s why in big corporations every programmer has a very specific job!
If you’re not sure about the Domain/Role you want, Those insights might help you decide.
Choose Your First Language – Self-taught Programmers’ Difficult decision
This step could be the most confusing for beginners, and it happens to all self-aught programmers that have the liberty of choosing any language to start with unlike in Universities or in Bootcamps, where the system forces everyone to starts with a specific language, like Java.
To make this step easier for you, you just need to understand few things:
1- Every domain in programming has its standards languages and you should start with one of them since you will find a lot of support and libraries online that would help you progress faster. A simple google search would tell you what languages are in use, and in what domain.
2- Choose an easy-to-learn language to start with. The idea here is that, as someone who’s learning to code in his own, you may not have any knowledge about computer since at all, so it will be better to enter this world as easy and smooth as possible because it can get complicated fast!
3- Choose a language that has a big community: Learning a language that has a big community can be easy and fun since whenever you find yourself stuck, just google it and you will find tens of people providing answers to someone who already posted that question before you on a famous platform like Stackoverflow.
In addition to that, a lot of packages and libraries (bunch of code that does something specific) are already made by developers and are available as Open Source (for free to use), you just need to get them. The idea here is to gain time and to not reinvent the wheel.
The Easy Go-To Method to learn programing
The easiest method to learn to code, is through Videos, and online dedicated courses. If you don’t want to learn from paid courses, you still need to check their curriculum to get an idea on what you will learn. For example, check out any Python Course on Udemy, you will find a section where the Tutor lists all what he/she will teach you. Write down all the titles of all the sections and subsections, so that you always have an idea on what you will learn on the long run.
A hack here is to learn them in the same order that the Tutor teaches them. You can learn them from YouTube, Blogs, and books.
Know The Basics – Most Important Part for Self-taught programmers
Now that you have chosen a domain and a language to start with, you can start learning.
The first step is to always start with the Basics of the language. They are the building blocks of that language. Note that many languages share the same Basics from a theoretical point of view.
The go-to here is always to start by Learning about the variables of that language. the variables are just place holders that hold values of different types like Integers, Booleans, Lists, and Dictionaries.
After that you can go to If/Else Statements, then to Loops.
Exercise a lot and solve as many problems as you can
As in every other branch on science, to more problems you solve, the better you get at it. A good platform for exercising and testing your problems solving skills using code, is the Project Euler platform.
One tips to keep in mind is that you should solve problems with progressive difficulty. Which is something we don’t usually hear about in the self-taught programmers community.
Learn intermediate and advanced subjects about the langauge
Next you pass to the intermediate subjects, stuff like Functions/Methods, Classes and Object-Oriented Programming in general (OOP).
Note that there are multiple Programming Paradigms, and you most-likely will start with the Object-Oriented. That’s why you should focus well on learning the ins and outs of this Paradigm.
Pay attention to the less famous subjects – What self-taught programmers don’t usually learn
As an advanced programmer there are concepts that you should be at least aware of their theories since such concepts won’t have much use unless you are working on an advance project. Some of these subjects are:
- Digital Systems and computer architecture which teach us how computers hardware works on a lower lever.
- Programing Paradigms (object oriented, functional, imperative, logical, procedural).
- Programming language Concepts (execution order, design space, language design).
- Operation Systems and how they works on a lower level.
Those concepts aren’t always the subject of talk in the self-taught programmers community, that’s why it is very important to learn them as you progress.
Check out how common problems are solved
A good way to learn from the seasoned developers, is the analyze how they solve problems. Whether that means to go on YouTube, to check out Blogs on GitHub or to check blogs.
Interacting with other programmers code in general would sharpen your skills and add value to you, whether you are a beginner, an amateur, or an advanced programmer.
Know the Best Resources – the self-taught programmers refuge
Learning a new programming language on your own has a lot to do with reading the official documentation of that language, and other resources. each language, package, and framework in programming has one or many documentations. Just google what you are interested in learning + documentation (example: python documentation) and it will show up in the first search, usually.
When it comes to coding, everything is moving at a fast paste! and courses can never teach everything. Having the skill to go on the browser and search, then read and understand will get you ahead very very fast.
Adding to that, the more advanced the subject gets, the fewer information you will find about it online. That’s while you mostly likely will get back the official documentation.
Great resources To Always Keep In Mind as a self-taught programmer:
- The official documentation of what you want to learn.
- Free Code Camp
Specialize in One Domain and learn the tools necessary for that
Now that you chosen a domain, and a language and learned that language. You need to apply that language in the chosen domain!
Each Programming language has many libraries and framework that make the process easier for you. Here are some examples:
- Web Scraping with Python: use Scrapy, Beautifulsoup4 or Selenium.
- Back-end Web Development: use Django with Python, Laravel with PHP, Spring with Java, or Express with Nodejs.
Follow The Trends and The Updates – Keeping up as self-taught programmers
The Idea here it to get updated. Languages, and libraries are updated frequently, and with each update new syntaxes, functions, classes, and functionalities are added or removed. That is why you need to be aware of them since one outdated syntax can make your entire project crash.
By following the above steps, determination, and focus you will get into the programming mindset in a short amount of time. But note that this is just a blueprint! the actual work is up to you. You need to make all the efforts necessary to learn, by treating the process like any other learning process. Yo will find ups, and downs along the way since that is the way of all self-taught programmers.
Thank you for reading the post!