While there will be many tutorials on the web which will teach you C language from scratch but hardly few people learn it in the right way.
While these books may be good to get an instant knowledge in a topic but they all promote spoon feeding. It limits ones capability to think (eg. bottom up thinking, recursion ?) and students often tend up memorizing codes for examination. Thus such books only serve the purpose of getting marks in any semester examination.
If you are new to programming, have a passion for computer languages and want to be very good at them then you have to get started with good resources. Before talking about resources lets answer a obvious question.
Why should we learn C language first instead of any other language ?
Those who are new to programming must start with C. The reasons are
1. Almost all operating systems kernel are written in C
2. Networking devices like routers, switches, gateways have program written in C
3. Embedded Systems and semiconductors use C language
4. New language descend from C. (So learning Java, Phython will be easier if you know C)
5. With C, you will have more control over time, storage (memory) and access the machine in memory level via Pointers
So how to learn C the right (hard) way ?
Read the book written by the creator of C . The C Programming Language- by Dennis Ritchie This books is not easy and that is what makes it great. When you don’t understand a piece of code or you’re unable to solve the exercises in the book then you would Google for solution. That is how a habit of having quality doubts and looking for quality solutions will come into you and you will jump to Stackoverflow for ultimate solution.
Beside the book and Stackoverflow, make sure you practice C language for atleast 30 minutes everyday. You will feel great if you hard code C everyday. You need not practice for 2 hours in a day and not code a single line the next day.
If you’re into engineering, or BCA or MCA in any institution, solve all the work list problems given to you in best possible way. Do not, I repeat DO NOT copy-paste the solutions for the sake of completing the assignment if you want to he a hardcore programmer.
Make sure you cover the entire book and get a good grasp of concepts of C, like flow control, functions, arrays, pointers, structures, unions, files.
I learned this stuff very late and hope this article will help you make good decisions early. Mail me at firstname.lastname@example.org for any further discussion.