I've posted this here before and it's what has worked for me an a few others who told me it worked for them as well. Ymmv. People sometimes struggle with C when they start from scratch or come from a higher to lower level of abstraction. I struggled with this for a long time till I did these things: I would not try and understand how the higher level abstractions translate to the lower C level. I would instead learn from first principles on how a computer works and build the abstractions up from there. You will learn how a CPU works. How the data bus and registers are used. How memory is laid out and accessed. The call stack and how that works, etc.. This will go a long way in understanding how C sits on top of this and how it's data structures like arrays and structs map to this and understanding how pointers work the way they do and why. Check out these resources: Read Code: The Hidden Language of Computer Hardware and Software Watch Exploring How Computers Work Watch all 41 videos of A Crash Course in Computer Science Take the Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) Take the CS50: Introduction to Computer Science course. Grab a copy of C programming: A Modern Approach and use it as your main course on C. Follow this Tutorial On Pointers And Arrays In C The first four really help by approaching C from a lower level of abstraction (actually the absolute lowest level and gradually adding layers of abstraction until you are at the C level which, by then is incredibly high!) You can do all four or pick one or two and dive deep. The 5th is a great introduction to computer science with a decent amount of C programming. The sixth is just the best tutorial on C. By far. The seventh is a deep dive into pointers and one of best tutorial on pointers and arrays out there (caveat, it's a little loose with the l-value/r-value definition for simplicity sake I believe.) https://github.com/practical-tutorials/project-based-learning#cc Play the long game when learning to code. You can also check out Teach Yourself Computer Science Here is a decent list of 8 Books on Algorithms and Data Structures For All Levels Answer from wsppan on reddit.com
🌐
Reddit
reddit.com › r/c_programming › where and how to learn c?
r/C_Programming on Reddit: Where and how to learn C?
February 12, 2023 -

What resources did you use to learn C ? As a beginner to C, I'm finding it really difficult to pick up the language from just reading about the syntax rules. Are there any good resources / books / youtube videos to not only learn the syntax, but also the more advanced concepts (pointers, scope, etc)?

Edit: I know learning how to code takes time, but I'd prefer resources that wouldn't be so time consuming. More of a resource that I could approach when I'm stuck on a single topic

Top answer
1 of 23
256
I've posted this here before and it's what has worked for me an a few others who told me it worked for them as well. Ymmv. People sometimes struggle with C when they start from scratch or come from a higher to lower level of abstraction. I struggled with this for a long time till I did these things: I would not try and understand how the higher level abstractions translate to the lower C level. I would instead learn from first principles on how a computer works and build the abstractions up from there. You will learn how a CPU works. How the data bus and registers are used. How memory is laid out and accessed. The call stack and how that works, etc.. This will go a long way in understanding how C sits on top of this and how it's data structures like arrays and structs map to this and understanding how pointers work the way they do and why. Check out these resources: Read Code: The Hidden Language of Computer Hardware and Software Watch Exploring How Computers Work Watch all 41 videos of A Crash Course in Computer Science Take the Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) Take the CS50: Introduction to Computer Science course. Grab a copy of C programming: A Modern Approach and use it as your main course on C. Follow this Tutorial On Pointers And Arrays In C The first four really help by approaching C from a lower level of abstraction (actually the absolute lowest level and gradually adding layers of abstraction until you are at the C level which, by then is incredibly high!) You can do all four or pick one or two and dive deep. The 5th is a great introduction to computer science with a decent amount of C programming. The sixth is just the best tutorial on C. By far. The seventh is a deep dive into pointers and one of best tutorial on pointers and arrays out there (caveat, it's a little loose with the l-value/r-value definition for simplicity sake I believe.) https://github.com/practical-tutorials/project-based-learning#cc Play the long game when learning to code. You can also check out Teach Yourself Computer Science Here is a decent list of 8 Books on Algorithms and Data Structures For All Levels
2 of 23
16
Run through basic syntax for free on learn-c.org. Start solving real problems quickly with https://www.codestepbystep.com/problem/list/c If you are not adverse to learning from books, get The C Programming Language 2nd Edition, it gives you little examples and tasks to explore in every chapter. Whenever you do anything to learn, never copy-paste. Always type the code in your own editor. This helps you build knowledge of syntax and constructs.
🌐
CodeChef
codechef.com › learn › course › c
Learn C Programming Online: Master C Language for Beginners | CodeChef
Learn C with our beginner-friendly course. Practice real problems, get hands-on coding experience, and earn a C certification on CodeChef.
Discussions

Solved - What is a good free way to learn C? | The FreeBSD Forums
It appears that to really be useful in the FreeBSD community, I will need to learn the C programming language. I am mainly learning C from http://c.learncodethehardway.org/book/. However, I would like to supplement that with some other sources when I am done to make sure I thoroughly understand... More on forums.freebsd.org
🌐 forums.freebsd.org
October 9, 2014
Learning C programming - Dev Zone - Level1Techs Forums
I want to learn C programming with a goal of doing embedded with rust. Hopefully that makes sense. I got a book “learn c the hard way” and it actually recommends doing python first. what do you all think? I understand concepts of C and programming. I have been reading a bit here and there ... More on forum.level1techs.com
🌐 forum.level1techs.com
3
1
December 7, 2024
A beginner learning C but confused
Iam an absolute beginner and i have been teaching myself how to code. i have started with C programming language, it has been 2 weeks since i have got into this area. Till now i have learned the basic concepts like input, output. if else statements, switch statements, break & continue and functions ... More on forum.freecodecamp.org
🌐 forum.freecodecamp.org
0
June 26, 2023
Ask HN: How do I learn C properly?
I can write C, but I'm not confident I'm doing it the right way. There are now decades of forums and blogs I can search through, but I'd love to have a single, clean, clear source of truth for recommendations on how to write C code · I've started reading "Modern C" by Jens Gustedt. More on news.ycombinator.com
🌐 news.ycombinator.com
199
432
March 13, 2020
🌐
Learn C
learn-c.org
Learn C - Free Interactive C Tutorial
learn-c.org is a free interactive C tutorial for people who want to learn C, fast.
🌐
GeeksforGeeks
geeksforgeeks.org › gblog › best-c-programming-courses-for-beginners
10 Best C Programming Courses For Beginners [2025] - GeeksforGeeks
July 23, 2025 - This specialization course on C programming offered by Coursera is the best one for beginners to learn. It is a beginner-level course that offers you a flexible schedule to learn. It is a combination of 4 courses through which, you’ll learn to develop algorithms in a systematic way, to read and write the C code to implement them.
🌐
Codecademy
codecademy.com › learn › paths › c
Learn C | Codecademy
Understand types, syntax, advantages, disadvantages, and best practices for safe memory management. ... Level up your programming skills by learning how to use C loops and conditionals like `if` and `else`. ... Learn how to store and manipulate your data with C variables and operators. ... Learn C++ — a versatile programming language that’s important for developing software, games, databases, and more. Beginner Friendly.Beginner Friendly11 hours11 hours
🌐
FreeBSD
forums.freebsd.org › development › userland programming and scripting
Solved - What is a good free way to learn C? | The FreeBSD Forums
October 9, 2014 - ... LCTHW is certainly a great (work in progress) resource. Also consider Paul Gribble's "C Boot Camp" at http://gribblelab.org/CBootcamp/index.html The best way to learn to code is to read and write code.
🌐
W3Schools
w3schools.com › c
C Tutorial
C is a general-purpose programming language that has been widely used for over 50 years. C is very powerful; it has been used to develop operating systems, databases, applications, etc. Start learning C now »
Find elsewhere
🌐
LinkedIn
linkedin.com › pulse › learning-c-beginner-first-language-2023-faruk-abdulla
Learning C as a Beginner or First Language in 2023
July 6, 2023 - Here are some additional tips for ... as variables, data types, and loops. Practice regularly. The best way to learn C is by practicing....
🌐
Quora
quora.com › I-want-to-learn-C-programming-From-where-should-I-start-and-from-where-do-I-learn
I want to learn C programming. From where should I start and from where do I learn? - Quora
Answer: Learning logic-building skills lays a good foundation for learning to program better and faster in problem-solving. Learning will become self-motivating and countable. Please check the following post to get more details. https://www.quora.com/How-can-I-improve-my-programming-skills-18/an...
🌐
Sololearn
sololearn.com › en › Discuss › 2170926 › i-want-to-learn-c-programming-what-would-be-the-easiest-simplest-way-to-learn-this
I want to learn C programming, What would be the easiest & simplest way to learn this? | Sololearn: Learn to code for FREE!
So, my advice is learn/ understand the theory part of topics first then apply with coding, otherwise you will forget faster then you learn. ... Here is a good place to start learning.
🌐
QuickStart
quickstart.com › blog › programming-language › learn-c-programming-in-10-days
Learn C Programming in 10 Days | C Language Basics | C Tutorial
April 10, 2025 - This hands-on practice will allow you to grasp both the mechanics of the programming language and the logic behind the examples, giving you a much clearer understanding of how to apply the concepts to new problems. The best way to reinforce your learning is to start writing your own code as soon as possible.
🌐
Quora
quora.com › How-can-I-learn-C-programming-without-any-experience
How to learn C programming without any experience - Quora
Answer (1 of 4): If you don’t have any experience in programming at all, then perhaps it is safe to assume that you are not or at least have not studied as a software engineer. In that case maybe you should ask yourself: Why Learn something as hard as C Programming language? If you like creatin...
🌐
Level1Techs
forum.level1techs.com › dev zone
Learning C programming - Dev Zone - Level1Techs Forums
December 7, 2024 - I want to learn C programming with a goal of doing embedded with rust. Hopefully that makes sense. I got a book “learn c the hard way” and it actually recommends doing python first. what do you all think? I understand concepts of C and programming. I have been reading a bit here and there ...
🌐
Programiz
programiz.com › c-programming
Learn C Programming
Best: if you are committed to learning C but do not want to spend on it · If you want to learn C for free with a well-organized, step-by-step tutorial, you can use our free C tutorials. Our tutorials will guide you through C programming one step at a time, using practical examples to strengthen your foundation.
🌐
Masters in Data Science
mastersindatascience.org › home › learning › programming languages › learn c
How to Learn C - Programming Languages
December 16, 2024 - If the code doesn’t work the way you want it to, you’ll have to find the problem. Use a debugger. A debugger is a program that identifies problems in your code. Programmers use debuggers to write better code. Look at sample code. Practice reading C programming to learn the fundamentals and use tutorials to practice it. Learning the C programming language might seem overwhelming, so we’ve outlined some frequently asked questions. Read more about the best programming languages to learn, including C.
🌐
Tmewett
tmewett.com › c-tips
Everything I wish I knew when learning C - Tom Mewett
November 18, 2022 - If you learned a more featureful language before C, you might find it hard to visualise how to translate that knowledge. Here’s a common idiom which resembles object-oriented programming: the “struct method.” You write functions which accept pointers to structs to alter them or get properties:
🌐
GeeksforGeeks
geeksforgeeks.org › c language › c-programming-language
C Programming Tutorial - GeeksforGeeks
Functions are block of code that performs a specific task. They allow programmers to write modular and reusable code. ... Compound data types are created from primitive data types and provides a different way to use them according to our needs.
Published   October 13, 2025
🌐
Quora
quora.com › How-can-I-learn-C-programming-from-scratch
How to learn C programming from scratch - Quora
Answer (1 of 4): Yes! I did, back in 1979. This lead to a long career in IT, most of which was spent programming. I still have the book I read to learn it: The C Programming Language by Brian W.Kernighan and Dennis M.Ritchie. This is first edition and the pages are getting a bit brown. It takes ...
🌐
freeCodeCamp
forum.freecodecamp.org › career advice
A beginner learning C but confused - Career Advice - The freeCodeCamp Forum
June 26, 2023 - Iam an absolute beginner and i have been teaching myself how to code. i have started with C programming language, it has been 2 weeks since i have got into this area. Till now i have learned the basic concepts like inp…
🌐
Hacker News
news.ycombinator.com › item
Ask HN: How do I learn C properly? | Hacker News
March 13, 2020 - I can write C, but I'm not confident I'm doing it the right way. There are now decades of forums and blogs I can search through, but I'd love to have a single, clean, clear source of truth for recommendations on how to write C code · I've started reading "Modern C" by Jens Gustedt.