@baxterdevin

My first language was C and my first large project was recreating "printf" so I learned A LOT when I first started

@daze8410

I didn't realize how few keywords it has, really solidfies the whole "simple is not easy"

@michaelvelik8779

"C is not a high level language, C is portable assembly"  -- anonymous

@TheCodingHat

Use to hate C, only after actually using it I realized all I really hated was C++

@jamespilcher5287

Writing assembly was how I finally understood what C is doing

@TheEmolano

I'm glad I learned programming with C and not with Python. It really made my life easier when getting into lower level stuff.

@johneric2720

I love C so much, it was the first language I learned and I've used it in projects, from:

Recreating the "printf" function,
To creating a "simple shell",
To building a "Monty byte code interpreter"
To finally building a simple HTTP web server.

So I have quite learned a lot from it.

@CoentraDZ

For someone whose primary job is in IT, starting with C is a best decision.
If you come from a different background but still need to use programming, Python is where you start.

@boomxhartshotxchannel3111

Harvard CS50 was one of the best uses of time that I would recommend to a beginner. I found it later than I should have but it provided more than I thought it would.

@dputra

I took CS50x a few years ago and it was a game changer for me. They use C for their course's programming language. C is very simple, but also very powerful.

I don't even work as low level programmer, but the ideas of how CPU and RAM works, how to handle GC manually, compiler optimization, etc etc has helped me tremendously.

@chrismazza3255

Learning is C is when I really began to understand languages and operating systems.

@TorkilZachariassenTZNG

At university I remember someone telling me that a random guy from our town had created a program language, that could do anything. 20 years later I learned C. Never looked back. Thank you for changing my life. ❤

@Mempler

I highly recommend doing it the following way:

Learn C -> Learn Rust -> go back to C.

You'll be mindblown how much better your C code becomes once you learn rust AFTER C.

Not before, before will make it actually a lot harder.

@alfred.clement

low-level languages (the level of least abstraction), like C are closer to machine code and gives you direct control over memory and hardware meaning you can write incredibly efficient programs, but also easily shoot yourself in the foot as it lacks built-in safety features such as garbage collection or bounds checking, making it both powerful and prone to errors like buffer overflows and memory leaks, it expects you to be responsible for every byte of memory you use.

@Void_Dragon

My favorite C pasttime is making a loop to turn my pc into a spaceheater

@MrTortsen

As a programmer mostly working with embedded C, I hate the conception of C directly translating to CPU instructions. These days (which mostly means ~15 years), C should be used to express exactly a transformation and the optimizer handles the task of finding efficient assembler to do that transformation. For example iterating and summing will most likely be replaced by an equivalent multiplication by any compiler.

C is so good at it, because the (side) effects of all basic functionalities are defined. That's also why Haskell does the same thing well even though it does not translate to assembler nicely.

@AnonymousAnonymous-l2i

I love c for that too. Because sometimes its hard to map the modern abstraction layers to lower levels - I do webdev and deciphering react or some MVC was bigger problem for me than understanding the code -> assembly -> os calls -> hardware chain.

@broh-b3y

really like your colorscheme!

@rosen4obg2

C is close to how cpu worked in 1970. Currently is very far away, think of multiple cores, caching, and speculative execution.

@Littlefighter1911

C is basically portable assembler, and that's what makes it so great.