How to learn programming from scratch
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?
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
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
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 🙂