How to learn programming from scratch

By | October 22, 2015

  Do you want to learn programming? Do you need help regarding how to get started and which programming language to choose? Are you sick of boring, useless advice that doesn’t help at all? Then you’re in luck 🙂 You’ve come to the right place. Here, I’ll show you how to learn programming from scratch i.e. how to get started with programming if you’re just a beginner lost in the large and awe-inspiring world of programming.

How to learn programming from scratch?

How to learn programming from scratch

Infographic source :

The biggest problem that troubles every beginner is – How to get started?

The answer to this question is fairly simple –

  • Choose a field of programming
  • Choose a programming language
  • Choose a method of learning
  • Choose a platform
  • Choose an IDE

Choose a field of programming

The first thing you need to do is to choose the category of programming that you want to have a career in. There are several things to choose from :

  • Website development
  • Desktop application development
  • Games and other graphics-intensive applications
  • Device drivers, OS development, etc.

I strongly recommend that you fix your goals at the very beginning and then proceed to learning the appropriate programming languages. NEVER try to work in two different fields. For example, you may be tempted to learn website development as well as game development. However, this is a very bad strategy and is very harmful in the long run. If you do this, you’ll never be a good programmer, as being an expert programmer requires you to FOCUS on a specific topic.

Choose a programming language

After you’ve chosen a particular field of programming, you need to choose a programming language.

Case 1 – Website development

If you want to learn website development, the first thing you’ll need to learn is HTML (Hyper-Text Markup Language). This is the language which is used to create webpages. After learning HTML, you should learn CSS (Cascading Style Sheets). CSS is used for arranging text and other elements of a webpage in a specific pattern. The next thing you need is Javascript. Javascript is a scripting language used to design various elements of a webpage. You can read more about Javascript here. You can find more resources for learning Javascript on this webpage.

The above mentioned programming languages are good enough for designing a basic website. However, for implementing advanced functionality in your website(s), you may need to learn some of these languages.

Case 2 – Desktop Application Development

There are several programming languages available for getting started with Desktop Application Development. Now, the language you want to choose depends upon several factors :


If you want your programs to be portable i.e. able to work on multiple platforms (Windows, Macintosh, Linux), you should choose Java. Programs created in Java run in the JVM (Java Virtual Machine) installed on a computer, regardless of which Operating System is being used. In other words, if you’re using Windows and you create a Java program on your computer, it will run exactly the same on other Operating Systems such as Macintosh or Linux, provided that user has installed the appropriate version of JVM on his/her computer. Please Note that this is one of the most notable features of Java. Other programming languages such as C, C++ or C# do not provide this facility.

Ease of development

If your primary concern is the ease of developing applications i.e. you want to choose the programming language which makes it easy to develop applications (and portability is not a concern), you should learn C# (provided you’re targeting the Windows platform). C# is a programming language developed by Microsoft for its .NET framework and is the best choice for you if you just want to develop apps with ease and performance is the secondary concern. Please Note that .NET framework does not work outside the Windows OS. As compared to C#, C and C++ are pretty much difficult to use.


If all you want is performance and you’re ready for complex code and difficult debugging process, choose C++. C++ is the most powerful high-level programming language created till date. It is normally used for graphics intensive applications and games. It is also used for developing device drivers. However, it has one serious flaw. C++ code gets difficult to manage and debug as it grows.

Case 3 – Games and other graphics-intensive applications

If you plan to develop games and other graphics-intensive applications require you to learn C/C++, because these languages are most powerful languages out there. Also, if you need to choose between C and C++, you should C++ because it is object-oriented, which helps a lot in game development.

Case 4 – Device Drivers, OS development

If you want to develop device drivers or if you desire to try and develop an Operating System of your own, C would be the most appropriate programming language for you.

Choose a method of learning

There are several online and offline ways to learn programming, depending upon what you have to learn. For example, if you want to learn HTML, CSS, Javascript etc., the best choice for you would be It is a great website with support for all the web design languages you need to learn. It lets you try out your code online, which makes it better than every other resource.

For C, C++, Java, C# etc. I would recommend starting with a good book and a good teacher. Though you can learn all these languages entirely on your own through self-study, having a teacher would simplify things and you’ll learn everything in a proper and efficient way, instead of learning randomly and without specific goals. You MUST have a teacher to guide you, at least while learning your first programming language, otherwise things may get too messed up.

The following books are recommended for beginners :

The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie (the creator of C)

Programming: Principles and Practice Using C++ by Bjarne Stroustrup (the creator of C++)

Java: A Beginner’s Guide by Herbert Schildt

Head First C# by Andrew Stellman

Apart from these books, you should regularly visit online programming communities like Stack Overflow. In these communities, you can ask for solutions to problems faced by you while creating or debugging an application. You can also view the questions and answers already present there. Since it lets you connect to some of the best programmers in the world, Stack Overflow is the best in my opinion. There are other communities as well, such as CodeProject and CodeChef.

Choose a platform

One of the significant parts of learning programming is to choose the appropriate platform(s) i.e. the OS(es) which you want to target. As you know, Microsoft Windows is the most popular OS among users. Therefore, if you want to target only one platform, it ought to be Windows. As you can see, Windows Code Bits targets the Windows OS.

Apart from Windows, you can also choose Apple’s Mac OS or Linux. There is a correlation between the platform you choose and the programming language required. For example, for Windows, you can choose between C, C++, C#, Java etc. while for Mac, you need Objective-C.

Choose an IDE

The last but not the least, you need to choose an IDE for developing your programs. Now, the choice of IDE depends upon the programming language you’re going to use. For example, Eclipse is the most popular IDE for Java. For C, C++ and C#, Visual Studio is the best IDE as per my experience. There are also several other popular IDEs like CodeBlocks, Qt etc. However, I always use Visual Studio Express for developing my programs.


Once you’ve planned everything in advance, the actual process of learning programming becomes very simplified. If you have chosen the right platform, the right programming language and the right IDE for developing your programs, the rest becomes as easy as studying the theoretical part and putting it to use in your programs.

Most beginners struggle because they start without any planning. They just pick up a random programming language and start looking for sample code to run. This creates a false sense of achievement while the truth is that they learn nothing. The only way to learn properly is to first understand the basic concepts, and then apply those concepts while creating programs of their own. Also, it is important to have a computer for executing your programs while learning. Many beginners (especially in India) keep writing programs on paper for an awfully long period. This is the WORST way to learn programming. Programming is all about the practical aspect of creating and executing programs. It cannot be learnt by just writing code on paper.

Here, I have tried to cover every necessary topic that a beginner must consider before he starts his programming career. I hope it would help you achieve your goals. BEST OF LUCK 🙂

(Visited 662 times, 1 visits today)

5 thoughts on “How to learn programming from scratch

  1. Balwinder

    I am a newbie programmer and I found this post very helpful. I was unable to choose between C++ and C#. After reading this, I have decided to learn C# because all I want is ease of developing programs. I can compromise a little bit with performance.

  2. facebook

    I have recently started a blog, the information you provide on this site has helped me greatly. Thank you for all of your time & work.

  3. Vikash

    Hi, I started learning programming after reading this article. It really helped a lot. Thanks for the guidance


Leave a Reply

Your email address will not be published. Required fields are marked *