Science and Technology

How and where do I start learning C?

C is a programming language that was created by Dennis Ritchie at Bell Labs during the period of 1969 - 1973. It was created to reimplement the Unix operating system and sits quite low among the high-level languages, just above the assembly level languages. The language is Turing-complete, which means that is theoretically possible to create any program that the computer can execute. Thus it is very much suited for programs that work at the system level. It is used to create compilers, implement operating systems and even write codes for embedded systems.

Thus C is a powerful language, and learning C could be beneficial. But most people cannot figure out how to start learning the language without getting all messed up and confused. Using a few dedicated sources would be a good idea, and you would surely like to develop yourself in time. Learning through books is good only if you get some hands-on experience as well.

Let us see what some of the good books and sources that you could look at are.

What books should you use?

For the Beginners:

  • C Programming: A Modern Approach - K. N. King
  • Programming in C - Stephen Kochan


  • The C Puzzle Book - Alan R. Freur
  • Pointers on  C - Kenneth Reek
  • Algorithms in C - Robert Sedgewick
  • The Standard C Library - P.J.Plauger


  • Advanced C Programming by Example - Kenneth Reek

Reference Books - for all levels:

  • The C Programming Language - Brian W. Kernighan & Dennis M. Ritchie
  • C: A Reference Manual - Samuel P. Harbison and Guy R. Steele

Online Tutorials

As anyone starts reading the books, it would be a good idea to start programming. Without having some experience writing the code, nothing can be learned properly. Learning the language can only be perfected with practice. It is the same as other day-to-day languages. These things only start to have a hold when you use them.

Where is the best place to code?

Many people consider IDEs and simulators a good option. But if you would like to learn things properly, you should stay aloof of them. These 'Integrated Development Environment' start to make you stupid. These programs are supposedly the worst tools if you would surely like to learn something. They hide whatever is going on beneath the surface. These are useful only if you need to get something done and the platform is designed around that particular IDE. Otherwise, there is no need for that. Learning to code in C would never require any of that. You would need a text editor to write the code, and you can run it through terminal. There are lots of text editors available. 'Gedit' is probably the most common one. It is available on both Linux and OSX.

Though people would suggest you lots of other editors like Vim and MacVim, Nano and others, one that can be tried out are SublimeText. The editor is cool, and it keeps all your files saved as you type it. Even if you shut the system down without closing the editor or saving the files, they would stay safe.

Different people would be suggesting you different ones. Just make sure to try out some before you land up with the one that goes with you.

What can you do to learn to code online interactively?

If you would not want to stick to the conventional learning platform, you would try something out online as well. You could always be checking out videos from YouTube if you need some explaining on a particular topic. There are a lot of tutorials available online and you could the necessary help you require. But there are some websites which help to bring the entire subject matter out to you. Let us look at a few of those: is one of the best online platforms that you can find. Here you can learn all about the different realms of modern programming like data science and machine learning. The different programming languages like C, C#, Java and others are also taught in details. It is one of the best platforms to learn C and you can improve a lot through the interactive approach. The courses are designed to benefit the learners and make them understand what they are doing and why they are doing so.

Codecademy can be said to be the most famous website to learn to code interactively. The interface is beneficial, and you would learn a lot through the structured courses. The code is explained properly, and you would often be given simple instructions that will help you grasp the entire thing pretty easily. You would also have the panel where you could get your hands dirty by writing code. You should not be worrying about making mistakes because that is the way you would start learning something here.

There are other online platforms as well that helps you to learn to code through these interactive interfaces, Code Avengers being one of them. It never gets into gory details that would not interest you. It helps you to gain a lot of knowledge in programming, keeping you entertained at the same time. You are offered a game at the end of each lesson so that you work and play, making the entire learning process thoroughly interesting. The platform does not include too much additional information that does not help the learners.

Treehouse is another platform that you could use but it will be more helpful if you have a particular project in mind. The courses are based on projects and they are particularly designed for those who have begun with an aim in mind. There are courses that would help you create a website or an Android app or something in particular that you have in mind.

CodeSchool is also a good platform but the challenges might prove to be a little hard for total amateurs. They help to develop coding prowess among the young minds. Most of these courses would be free but there are some that would need you to spend a few bucks on them.

LearnStreet and Udacity are also very popular. LearnStreet is for those people who do not need such playful designs to keep them interested. It is designed keeping in mind those programmers who like to deal with hard codes. There would be just three things as you start a course - an exercise (that would offer you a path to learn), a code interpreter and a glossary panel to help you deal with new programming terms. The design is very simple and so is the approach. The code interpreters are styled much like the command prompts to get you accustomed. This is how you would be executing your C programs once you become a pro.

Udacity, on the other hand, mixes the insightful video lectures and quizzes to make the students knowledgeable. It is designed for those who do not enjoy reading. The [platform brings industry professionals to students and helps them under the guidance of the best teachers.

Try them out as they offer a structured course and it does set you on a proper path. If you do not have someone else to guide you, these courses could act as a mentor, showing you what path to follow.

But no matter what do not lose your touch from the terminal. When you are creating something of importance, you would be ending up writing the code in a text editor, and you should not feel alienated. Try to get comfortable in the environment. Competitive coding is also something you should try out from time to time and using C gives you an advantage as the code is very short and you do not need much time to compile and run it.

Learning to code is a habit that should develop with time. You should have some good practices. Look at example codes and try and understand everything that is being done. You could only learn through examples and make sure you do write them out as well. Tweak the things that you feel like and see how the output is changing. It will help you to learn every bit of the program, and you would get better in time. Also, try to document the code through comments as it helps you to remember things. Develop good practices, as you get comfortable with the language. It makes the journey an easy and memorable one.

{Impact Feature}

We hope you liked this report/article. The Milli Gazette is a free and independent readers-supported media organisation. To support it, please contribute generously. Click here or email us at

blog comments powered by Disqus