4 ms·
I firmly believe that every programmer should be able to read and write C to some extent, and to learn it one must read K&R. So, yes, I agree that it is also on
by javadyan 15y ago
I firmly believe that every programmer should be able to read and write C to some extent, and to learn it one must read K&R. So, yes, I agree that it is also one of the books that every programmer should read.
- Volpe 15y agoCurious why you think that? Every programmer? What does learning C provide that other programming languages (majority of which have some basis in C) don't teach you? Memory management (allocation, pointers, etc)? Pipes and buffers? They are present in other languages, and one could argue with memory management why 'every' programmer must learn those techniques even if they are never really applicable to them. I'm really trying to think back to my C days (I haven't done it in a long time) as to why it is so important to know? What is unique about it?
- epscylonb 15y agoI think I am a better programmer for having used C. C is interesting because like php it is very easy to end up with an unmanageable code base (but of course C is a lot more powerful than php). I learnt a lot from good C code, the best C libs I have seen use a pseudo version of objects. They create a data structure to hold state and pass that as the first parameter to each function that can be used on it. Once I got my head around that I found I had a better understanding of the concept of object orientated programming.
- javadyan 15y agoOne good reason is that by writing algorithms and data structures in C, you can see them in all the detail, see how the memory is laid out and how it's managed, and understand their costs and benefits. I used ANSI C to implement most of the algorithms we studied at the university and I can say that it helped me understand them better. Plus, an understanding of what happens on the lower level can be quite handy when debugging some software written in a more high-level language.
- kabdib 15y agoC and some limited amount of assembly are what drive most of the electronics that surround you; most of the of "smart" devices in your house, car and pocket contain large amounts of code written in C. The phone infrastructure you use, the traffic signals, the network you get news from, the browser you're using right now? C. Scripting languages and bytecode-driven languages? Their interpreters and jitters are likely written in C. There are exceptions. I understand that some Java-based systems are built in Java, all the way to the metal. Apple was a Pascal shop until it turned to C in the late 80s. By and large these are systems on the fringe, and the bulk of the heavy lifting today is done in C. You should probably understand it.
- nobody31 15y agoSame reason you can't be a mechanical engineer without having taken a shop class. You can sit in front a CAD and FEM package all day - but if you don't appreciate how the things will actually be built you aren't going to be a really good engineer.