Programming is a much demanded skill now a days. If you wish to make a career in the tech sector and want to join tech companies as a software developer, then learning how to program is the first step. You will find many articles on the web stating you the ways to start a programming career, learning a programming language, learning frameworks, learn app development etc. But without knowing the proper order, there is a huge possibility that you get stuck and give up.
To give you a clear picture, I am writing this post so that you can decide and start your journey as a programmer. I had the same difficulty when I was starting to learn programming, so I am well aware of the queries and doubts. Let’s begin.

Prerequisites
Before you start programming, you should have a basic command over mathematics. This doesn’t mean you need to be an expert in this field, but having a basic command will ensure you can write and understand logic of the programs, also thinking logically is a very important part of programming. Knowing how to program and actually being able to write executable programs are two different things. You might know everything about programming, but unless you have enough practice, you won’t be able to write them.
Also, while starting, the basic programs usually involve implementing mathematical operations like printing multiplication tables, checking for palindrome sequence, printing fibonacci series, etc.
Also, enthusiasm to learn programming is also necessary, because there will be many times when you will get stuck in a problem. Not having enthusiasm will easily motivate you to quit.
Point wise, you need the following prerequisites:
- Logical Thinking
- Mathematical Knowledge
- Enthusiasm to learn programming
Choosing the programming language

This is one of the most important thing to consider. Not because any particular programming language is good or bad for beginners, but because it will play a major role in shaping your perception towards programming as a whole. Imagine starting out with an object oriented language, chances are that you will not understand, or will have a tough time understanding the concepts. This may make you think programming is complex and may tempt you to quit.
To prevent this from happening, choosing the right programming language is very important. Now, contrary to what you will find in most websites and almost every article, I will suggest you to start with two languages and I will state you why.
Now, the two languages and the purposes are stated below:
- Python ( For building logic and developing your logical thinking skills)
- C ( For knowing how almost all programming languages work and function)
Python and C Programming Language
I am sure you must have heard Python is the best beginner language. Well, it’s true. Because python’s syntax (grammar) is very flexible and you can write programs just by applying your mathematical knowledge. You don’t need to care much about programming rules and all and can just focus on logic building.
Although this flexibility seems nice, this has it’s own disadvantages. And because of this disadvantage, I have suggested you to learn C side by side. And the disadvantage is, programming languages in general have some rules and it’s important to be familiar with these type of rules. For example, main function, headers, concept of global and local variables, etc. And python gives you the freedom to ignore them but when you move to other languages, you need to consider those things. So learning C will make you learn those concepts which will help you to learn OOP languages like Java in the future.
Some resources to learn these languages from:
https://www.w3schools.com/python/
https://www.codecademy.com/catalog/language/python
https://www.programiz.com/c-programming
https://www.w3schools.com/c/c_intro.php
https://www.javatpoint.com/c-programming-language-tutorial
Setting up the environment
Now, to write code in these programming languages, you have two ways:
- Use online compilers/interpreters
- Install compilers on your local machine
It’s always better to install compilers locally on your computer, and when you make complex programs, online compilers won’t be preferable. But for getting started, you can surely use online compilers. One thing to mention is that compiler and interpreter are not the same, there are differences but I won’t be discussing it in this post. I am mentioning links to some online development environments which you can use:
https://www.onlinegdb.com/online_c_compiler
https://www.programiz.com/c-programming/online-compiler/
https://www.onlinegdb.com/online_python_compiler
https://www.programiz.com/python-programming/online-compiler/
To set up the development environment in your computer, you can simply go to the official websites of the languages and download the software according to your machine specifications. Please keep in mind that you will also need to learn how to compile (in case of C) the programs. If you want to bypass this process, you can simply download an IDE . An IDE ( Integrated Development Environment) will make things easier for you. You can use Xcode, CodeBlocks, etc. Also VS Code is a great option. Although it is not an IDE, but it has extensions for almost every popular programming language.
Some download links:
https://www.codeblocks.org/downloads/
https://code.visualstudio.com/
https://sourceforge.net/projects/orwelldevcpp/
Hardware and System Requirements
Most people think you need high end hardware system to do programming. But it’s not true. You can code in a decent system also. I would suggest a minimum of 8GB RAM, minimum 128GB SSD storage.
Also, you can use Windows, MacOS or Linux for coding. Most software are compatible with these three. But one thing to keep in mind, if you wish to develop software for Apple platforms, then you won’t be able to do it using windows or linux. In that case, you must use a Mac. Otherwise, you can use any system.
Practice Practice and Practice
As I have said in the beginning, knowing about programming and actually being able to program are two different things. Therefore, practicing is very much important. There are many websites where you can practice and improve your programming skills. Some popular ones are HackerRank, Codecademy, CodeChef, etc. You can start with simple problems and then try more advanced ones like those based on data structures and algorithms. If you want to know more about what is taught in a computer science degree, you can read this post. I am mentioning the link to the websites where you can practice.
Some useful books
Let Us C by Yashavant Kanetkar
Let us Python by Yashavant Kanetkar
Programming in Java by E Balagurusamy
Head First Learn to Code by Eric Freeman
*The above books are suggestions and not my endorsement.
What’s next?
After you are well versed with basic programming concepts like conditional statements, loops, etc. You can learn data structures like array, link list, stack, etc. The interesting thing is, once you get started and develop the enthusiasm, you will discover new things to learn and the journey will go on. You can then decide whether to become an app developer, database designer, UI designer, web developer, etc.
What if I get stuck?
Be ready to get stuck, a lot. In coding it happens very frequently. You can do the following steps to resolve your issue:
- Ask someone who is familiar with programming.
- Check for the problems on Quora or StackOverflow ( better for coding related queries)
- Check the error log and search for the error statement in Google. Then try to find solutions.
- Create accounts in platforms like StackOverflow and Quora and ask your query.
- Search on youtube to find relevant videos.
- Try searching for the programming problem in websites like w3schools, geeksforgeeks etc.
I hope this post helped you. Keep coding!!