C is one of the best programming languages for a beginner to learn. It is versatile, incredibly powerful, and it sits in the middle of low-level (device-specific) and high-level programming languages. C programming is said to be slower but it allows you to write more abstract languages in a more human readable form.
The original C language used classes and a basic object-oriented system for most of its code, while C++, one of the newer generations of the language, uses objects more extensively – thanks to features such as polymorphism and inheritance.
Learning the Basics
As a beginner, your first priority should be to learn simple syntax. Most beginners start with a program called “Hello World”, which quite simply involves printing Hello World onto the screen. This teaches you the basics of what a program looks like, and also helps you to understand how to use a code editor or Integrated Development Environment (IDE), and a compiler.
From there, you can add extra features – accepting input, such as asking for a person’s name, storing that name in a variable for later reference, and then greeting the user by name. You can also learn about performing operations on variables – perhaps writing a simple calculator using the input and output systems that you have just learned, learning about loops, file handling and more.
These basic features and operations are the same regardless of whether you are using C or C++. They will apply to C# as well, although C# is less commonly used because it is proprietary to Microsoft. You can apply the information in books such as C++ For Beginners to most flavors of the C language, but pure C does lack some of the more advanced concepts surrounding object-oriented programming so you should remember this while learning.
Taking the Next Level
Once you have gained some confidence in writing simple programs yourself, a good way to take your coding ability to the next level is to look at codes that other people have written. For example, you could explore GitHub and Sourceforge for projects that interest you, download the code for those projects, and then read through it.
The code may seem quite hard to understand at first, because full applications can be thousands upon thousands of lines long, but they are worth looking at because once you figure out how a big project is structured and get used to reading comments, you will find that things start to make sense pretty quickly.
Consider joining developer teams like Ubuntu or Debian, and working on contributing to those. These groups have “low hanging fruit” – collections of bugs that are relatively simple for programmers to fix, and that are ideal for people who are just learning, but want to make their time productive.
Doesn’t it feel good to be able to associate your username with a patch that has appeared in a real operating system that is used by millions of people around the world?