top | item 4172639

(no title)

aiscott | 13 years ago

I agree, C doesn't itself explain "how things work."

But I think the process of learning C can (but won't always) lead to a pretty good understanding of how things work.

I'm admittedly not a very good programmer, but I love the ideas of programming, and it's probably my second best creative outlet. I just struggle with some of the higher level concepts... it seems the more abstraction that goes on, the harder I find it to understand. Closures, for example. Sometimes I think I understand them, and sometimes I don't.

I work in hardware design, and perhaps it is only because it is what is familiar to me, but it seems to be a very concrete way of thinking. Certainly not just because it's physical, but that probably helps too.

As far as programming, I think C and Assembly have to be my two favorite programming languages. By that I mean real C, not c++ or objective-c or whatever. And a "purer" form of assembly on simpler CPU designs.

Assembly is great because the operations are so simple. Move, Load, Store, Add, etc... My problem solving has always been to take the problem and break it down into smaller problems, and Assembly seems to be an extreme view of that.

Assembly is naturally close to the hardware. (Although how close varies with CPU design and can be argued in light of micro-ops, caching, out of order execution, etc...) Vanilla C translates so directly to Assembly, that if you know Assembly, it's easy to envision what Assembly could be generated by the code you are writing in C.

If you have an understanding of the hardware involved, there just isn't very much mystery to C. As such, it can provide a springboard to understanding higher levels of abstraction.

discuss

order

No comments yet.