I'm brand new to programming and just got my first PC in a decade. I'm interested in learning C, even though I've heard it's harder than languages like Python or JavaScript. I want to understand the fundamentals, and I feel that C is a more foundational, lower-level language compared to those others.
5 Answers
C has been the starting point for many programming students. I personally prefer starting with Python because it's easier for beginners to learn from. However, if you feel passionate about learning C, go for it! It's a solid language, and you can always ask for help if you get stuck.
It's worth considering why some people say C is a challenging first language. If you feel confident handling its complexities, go for it! But there are definitely easier languages out there that can help you build a strong foundation before diving into C.
I think starting with C will help me avoid headaches in the future.
You might want to explore the CS50 course from Harvard. It's an excellent program that begins with C and is aimed at beginners. Also, Richard Buckland's class on YouTube covers similar ground and is still relevant despite being older. C is quite stable, and you can find good material from any time period, unlike some other languages that evolve rapidly.
Thanks! Most of the material I found seemed above my level.
Definitely check out CS50, it's free and well-structured. I learned a lot from focusing on web technologies like HTML and CSS first.
Starting with C can be a great choice, but it might be frustrating at times. I recommend checking out resources like the free OSTEP book which covers operating systems and some underlying concepts related to C. If you find C too tricky, consider languages like Go or Rust, which are also lower level but often less complex than C.
Which books would you recommend?
Learning C is definitely a traditional route, but just keep in mind it can be pretty tough. While C is lower level and gives you a hands-on understanding of how things work under the hood, it's more complex due to manual memory management. I suggest starting with Python instead; it's often seen as easier to pick up and has a lot of libraries built on C. Once you're comfortable with Python, you could jump into C later.
I'll think about it.

If I start with C, should I read 'The C Programming Language' or 'C: A Modern Approach'? Or is there something better suited for beginners?