In this article let’s take a look at step by step on how you can become a self-taught programmer and software engineers, web developer, and get a job successfully from scratch without joining any boot camp.
This is the most comprehensive article you can find online on this topic so I would recommend you to bookmark and share the article.
So without any delay let’s dive right in.
Why do you want to learn coding in the first place?
Before we learn how to learn programming, It is very important for you to understand why you want to become programmer and learn coding in the first place.
some common reasons people learn coding are,
- To make money and get a job
- To gain problem solving and logical thinking skills
- To combine their creativity and ideas with coding skills and create amazing products and work on their business
Whatever the reason it is for you it is very important to understand why you are doing what you are doing.
After you set the right reason and purpose of doing the work, Let’s move ahead on what are the requirements to learn programming yourself.
What are the requirements to learn programming?
There are certain requirements to be met in order to learn programming in your journey.
- To become a self-taught programmer you need to be very consistent, if you want to be a good programmer nothing can beat practise, the more you practise the better it gets for you to understand coding.
- You need some tools like VS code compiler to execute your code on your computer and laptop which you can easily download from here for free
- You also need to be very patient and have an open mind
- You also need good logical and abstract thinking skills
- You also need to have a lot of problems solving skills and creativity because essentially coding is all about problem solving, you should have good concentration and attention to detail skills
- You also need to have a laptop or desktop with either windows, iOS of Linux software running on it for example windows is the most popular one and it has to be anywhere between windows 7 to 10 with at least 2 GB and 4 GB of RAM can be good and preferred, i3 processor of Intel is also good for laptops.
- You should regularly interact with other developers and programmers on forums like stack overflow, reddit to find out solutions of the problems you stuck on while coding and also observe how other developers are writing their code
For more details check out all the pros and cons of learning programming in detail here.
Now let’s take a look at step by step on how you can become a self-taught programmer and web developer from scratch.
How to become a self-taught programmer & web developer from scratch?
There are five important steps you need to take to become a self-programmer and web developer from scratch even if you don’t know what coding is all about prior.
Let’s get started.
1. Learn the basics of computers, internet first.
In this part I will try to explain you the basics of computers, how programming languages work, what are binary codes, transistors and how websites work in the internet, all this concepts are very important before you figure out what you need to do to self teach programming.
Look, computers are nonliving beings [everybody knows that] and they don’t understand what is an image, text, video, or anything like that that we human beings do,
And basically, computers are electrical devices and they work on electricity, so there is something called microchips in every computer and transistors or things that are present in the microchips of the computers, basically, these are tiny and small switches that hold and pass current like on/off in the computer like we have switches in our home for either on or off the fan, TV, etc similarly transistors are switches in the computer which do the same.
Now there are 2 things on or off, we denote current on as 1 and current off as 0 number, these transistors are very small and there are millions of them in the computer, this 0 & 1 is what is called the binary which means 2 in computer language.
Now I think you must be familiar with the CPU which is considered the brain of the PC, the central processing unit’s basic job is to process all the inputs, store the data and give the results which are output and each CPU has an instruction set which the CPU gets as they are binary codes to convert them into output because even in CPU millions or better billions of transistors are present.
CPU stores all the temporary files and data in RAM & all the permanent instructions and data or files in ROM.
RAM & ROM work as data storage centers in the computer and the CPU works for processing inputs and giving the outputs.
What files? Well, anything like images, videos, text, emails, folders, docs, etc are stored in them.
Now as I mentioned earlier that computers are nonliving beings, they don’t understand the files, images so they just convert all the files in 0 & 1 form into transistors which are in long sequences, and all these 0 & 1s lines are called bits,
Bits are stored in a set of eight at a time, known as a byte and representing the information and data of the files in this sequence of 0 & 1 is called binary representation.
I hope this is clear for you guys now, Understanding the basics is very important for you.
Now the ultimate goal of any programmer is to convert and provide instructions in binary representation to the CPU and all the instructions written in this format are called as machine code because those instructions will be then used by CPU to create output.
And in programming world there are two types of programming languages present which are high level languages and low level languages.
Basically a high level language is more easily understood by any programmer because it is in English language whereas low level language is the opposite of it and it is difficult for any programmer to understand and easy for the machine to interpret, and another difference is high level language requires a compiler to translate the code whereas low level language does not require a compiler but needs assembler.
Python Java and C++ are examples of high level languages whereas machine language and assembly language are the examples of low level languages.
You can check out more details about the difference here.
Now you have read two terms compiler and assembler in the above paragraph, basically a compiler is a software that converts high level programming language into low level so that cpu can easily understand it in a binary form to execute it basically compiler converts the programming language source code into machine code for the machine to execute the program.
An assembler on the other hand is also a program that takes computer instructions and convert them into lots of patterns of bits which are sequence of 0 and 1, and the computer uses these bits to perform the operations and execute. Basically it converts low level language into machine code.
Now It actually depends upon the type of language you choose either the language has to be compiled to convert into a machine code or interpreted to be converted into machine code.
Now the second thing I want you to learn is of how websites and internet actually work because basically in this article you will be learning how you can self teach web development and get a job.
Internet is in simple words and network of various computers which are interconnected with each other, and computers as I already mentioned earlier are non-living beings and they don’t understand the data like files and images like the humans do so the computers communicate the data in the form of binary representation which are sequences of 0 and 1s.
Now, websites on the internet work in a way that whenever you search for any website by typing the domain name in the browser like Chrome or Safari on your device, You are going to be a client because you are asking for website to be shown on your browser and every website on the internet will be stored
on some server which is a computer, all the files like images text documents PDFs and others are going to be stored on a computer in some part of the world so that people on the internet can easily access that website on the internet and this computer is called as host also known as web hosting where your website will be stored online.
I have plenty of articles on my website related to web hosting which you can check out here.
And when you search for any website domain name in your Chrome browser like Facebook.com, your request will be sent to the server where the site is hosted on and the servers in return sends you all the data which is required to display the website on your browser.
Without getting into many details this is how websites work on the internet, Just think of this any website you see on the internet has been hosted on some computer, every time you search for any website in your browser the request will be sent to the server where the site is hosted and the data will be transferred to your browser to display the site.
Similarly any app you use on your phone is also stored on any computer and web host in some part of the world, this computers and hosts make your website or application easily accessible by the users on the internet.
These are some basic and fundamental concepts you should know to learn programming.
2. Learn any programming language
In this, it is divided into two parts A & B.
- What is web development and why you should be learning it?
Now that you have understood all the basic concepts of programming the second step you need to do is to learn any programming language.
But before deciding which language you should be learning, It is very important to ask why do you want to learn coding and programming, no I am not asking about like you want to earn money or you want to do a career switch, I mean, Do you want to learn programming for web development or app development or machine learning or what.
Depending upon the type of specialisation you want to get, there are certain languages you should be learning and in this article I will be explaining you on how you can teach yourself web development in general so let’s move ahead on how you can learn web development from scratch.
Basically web development is developing, designing and maintaining the websites on the internet, there can be different types of websites like simple static websites to complex websites, e-commerce websites, business websites, online communities and forums, social networking websites, media publications, gaming websites, online streaming websites, etc
And the one who learns from development is called as web developer, although there are two types of development which are front end and back end, the basic difference is that the one who manages and maintains the front end of the website such as all the elements and visuals that you see and interact with the website like colours themes graphics,
all the buttons and programs entered by the user, all that stuff that you see on the website are managed by front end developers and it is called front end development similarly the things that you won’t see and interact with like website structure, logic, code, data and files, security of the website, etc are backend things and the one who manages backend part of the website is called as backend developer and the process is called as backend development.
Now there is the other type of web developer who is called as full stack developer, he is a combination of both front and backend development which means he can manage And maintain both front and back end of the website.
Now if you are still figuring out if you should really choose web development over others like app development or cyber security then let me help you a little,
Web development is definitely a good option to choose because every business and company needs a website and someone to manage it, without websites there is no internet whatsoever, even the largest companies like Facebook Amazon Twitter IBM Google Flipkart all of these are basically websites.
Most of the small businesses fail to succeed if they don’t have an active website running, having a website helps scale a business, increases brand awareness and revenue.
You can check more details about pros and cons of becoming a web developer here to understand if it is a good career option or not.
Now let’s get back to the topic on how to become a web developer, I will explain you both on how to learn front end and back end development.
- How to get started as web developer
Since You want to be a web developer and there are two types of web development front end and back end and each type has its own language to learn.
Let’s start with front end development.
In front end development there are essentially three programming languages you need to learn and a combination of all these languages will help you create a beautiful looking website.
- First is HTML, also known as hypertext markup language is a front end programming language.
You should use this because it lets the web browser know the structure of the website, and it helps in creating headings, text, tables, lists, hyperlinks, photos, etc, now HTML is not a complete programming language as it is a markup language, it uses tags to define documents and there is a difference between the two, anyway, you should be learning this, I will let you know how to learn it later in this article, and believe me it is not very difficult to learn this, It should take you no more than 3 weeks to learn the language and maximum of 2 weeks practice is enough to get used to it.
- The next thing is to learn CSS, cascading style sheets:
CSS are used to style and layout the web pages of the site, alter the font, color, size, and spacing of your content, add animations, etc, This again is not a programming language to learn, and They both HTML and CSS are useful in structure and style, the layout of the website, just like HTML, this is also not that difficult to learn, you can learn it within a couple of weeks or a month at max.
This is a programming language, It is used for adding interactive elements of the page like buttons, changing colors, playing audio and video on the page, using animations, using the drop-down menu, etc functions, overall it is used to make the website more interactive and appealing to users.
You can learn other things like bootstrap, angular js, react, etc, These are called as frameworks and libraries in programming language which means that they are the code that are written by somebody
Now let’s see the backend of the website.
I recommend to learn python because it is simpler to understand and learn compared to java, you have to write few lines of code in python than java, fewer lines, easy syntax, fewer bugs, etc
It should take you anywhere between 6 months to 1 year to learn python and get good at it with practice mainly since you are trying to become a self-taught programmer.
master one language rather than learning multiple languages, there is a famous quote in English that says Jack of all trades master of none, so please don’t be a Jack, Just try to learn any one language, as a beginner you should be focusing on Python I believe.
What is the best way to learn these Programming languages yourself?
Because you are trying to become a self-taught programmer, so the meaning of self-taught is teaching yourself without much instructions and formal guidance so there are many ways you can learn all this programming languages like,
- You can visit various programming websites like geeks for geeks, w3 School, free code camp code academy Khan academy EDX, udacity the Odin project solo learn, site point any many more.
There are many free coding courses you can take from these websites online, You can find many useful articles, video resources of coding on this sites, You can find and complete various challenges, practise coding and participate in quizzes,
You can get various coding games on this sites which is a great place to start your coding journey, It is actually a very popular way of learning coding as a matter of fact more than 58% of the developers online learn coding through online articles and tutorials on websites which I mentioned earlier.
- You can also purchase many physical books of coding and programming on Amazon like html, clean code, You can also find plenty of books for languages like Java and Python, and for HTML and CSS.
- You can also purchase many online courses on platforms like udemy and Coursera, all the courses you get are self-paced, lifetime courses, cheap, provide a great community and support, learn coding from top developers, get certificate at the end of course completion.
- You can also obviously join any coding bootcamp both online and offline, the main disadvantage is the boot camps are very expensive, but advantage is you get a lot of support & guidance, updated syllabus and curriculum, job guarantee sometimes, a great community, etc and if you want to become a self-taught programmer you should be avoiding this.
- You can also listen to various coding and programming related podcasts and audio files both on YouTube and on Spotify so that you can keep yourself updated with the latest industry news
- You can also learn coding by watching various YouTube tutorials and videos on channels like CS dojo, free code camp, levelup tuts, In this it is a free way of learning coding but it lacks curriculum, community and step-by-step guidance
- You can also take the help of your friend or colleague to help you during your coding journey like explaining some concepts and solving some bugs.
- Last but not least you can also learn coding from your college and university professor with the college computers and systems.
Apart from using all the resources I mentioned earlier you can also interact with other developers on forums like stack overflow and Quora whenever you are stuck with any problem or bug with your code, You can quickly search about it on Google and find answers of it on this forums.
These are some of the popular methods I can think of to learn coding and programming yourself and obviously most popular ones are through reading articles online and watching YouTube tutorials, visiting various programming websites mentioned earlier.
3. Learn data structures and algorithms (DSA)
The next thing you should do is to learn data structures and algorithms after you learn language or You can learn DSA along with learning the language, It depends upon you.
A data structure is basically a location which can be used to either store or to organise data and files in the computer whereas algorithm is collection of the steps you need to take to solve any problem and combination of both is called DSA which will help you write and optimise the programs of computer more effectively and efficiently.
DSA is very important to learn for both web or app development and other specialisations because without it you cannot either hold the data or solve the problem in programming, using this also save you a lot of time, etc.
You can check out this article on how you can learn data data structures and algorithms in detail, obviously you can refer to various websites I mentioned earlier and also purchase books or take online courses to learn DSA and it would take you anywhere between two or three months to learn the basics of this concept and it might take you six or eight months to master and easily solve the questions.
After you complete learning this it’s important for you to start building and working on some projects.
4. Build and work on some projects
Projects that you do are extremely important for you to get a job especially without a degree because even if you look at the employers, They might not really care about where you graduated from and
they also don’t care about the certificates you have, resumes are now getting ignored for getting jobs so what helps you stand out in the employer for getting a job is the projects you did and whether you are skilled person to get the job done or not.
As a matter of fact top companies like Google Apple Starbucks IBM and others are hiring students based upon the skills and experience irrespective of which degree they have.
And working on some projects can help you get the skills in practise at the same time grab the attention of the employer.
You can use platforms like GitHub to create and work on any open source project and also contribute to other open source projects online.
Here are some project ideas you can take if you are confused on what you should be working on with your programming skill,
- You can create your own website showcasing your skills and projects as a portfolio website
- You can create some basic web apps like calculator, online timer, conversion tool ,speed test, to do list, url shortener
- You can also create A hangman game
- You can also work on creating games on website
- You can create a rating and review website
- You can create an e-commerce store
- You can create a social networking website
- You can create a dating application or website
- You can create online streaming platform
Initially you should be starting out slow and simple projects and as you get good you should continue with more complex and difficult projects to get more confidence, and please stop aiming for perfection in your projects because there is no such thing as perfect project there is always room for improvement, guess what you can always update your projects later.
There are plenty of ideas you can get to start creating your project which you can further showcase to your employer.
Apart from using projects to show case as your work to the employer they also help you keep motivated during your tough times in coding, You can also use your coding knowledge to create any startup online like Chrome extension, e-commerce website, any game, e-commerce and WordPress plugin, landing page builder, email marketing tool, Ai tool, etc
You can also participate in various coding hackathons and competitions, get certificate after completing various coding challenges and quizzes online.
5. Use LinkedIn to both share your experience and get job opportunities
Throughout your journey of learning coding from start to finish, It is very important for you to use LinkedIn because it is not just any other social media platform but it is a platform for professional people who are looking for job and want to grow their career or increase their network.
If you have a good network on LinkedIn, and you are quite active engaging with other people and their content on LinkedIn then you can get lots of job opportunities, amazing clients for freelancing to work with you, by staying active and sharing your thoughts and creating content on LinkedIn related to your niche of programming and coding can help you get clients to you instead of you applying for a job to them.
This happens because LinkedIn is a platform which will be used by CEOs and HRs of top companies both software and tech companies and by regularly sharing your projects whatever you learn from coding on LinkedIn can help you get good engagement and followers at the same time job opportunities and by growing your connections on LinkedIn can also get you amazing job opportunities through referrals.
How to get a job as a self-taught programmer?
Having the skill of programming is only one side of the coin if you want to get a job in any tech company, You also need to have soft skills like good communication skills, presentation skills interpersonal skills leadership time management hard working and other important skills to get a job.
After you get all the programming knowledge, You can start applying for various jobs with your resume and LinkedIn profile properly optimised.
And you should be working hard and preparing yourself for various coding interviews and competitions or challenges you will be facing in coding interviews, a good tip I would share is to practise mock interviews so that you can prepare yourself both mentally and physically
on how You can face tough situations in an interview, You should also try to solve as many coding problems as much as possible and develop your soft skills which I mentioned earlier because more than just being a good coder you also need to be a good employee.
With that said let’s end the article.
These are all the steps you need to take on how you can teach yourself programming from scratch and get a job.
Do let me know what are your thoughts about teaching yourself programming without any external support in the comment section below.
Share the article and subscribe to my blog to receive notifications as whenever I publish any article in future.