View Single Post
Old 20th October 2012
KS KS is offline
New User
Join Date: Oct 2012
Posts: 2

Personally, I think a self-respecting programmer should know C. That's my (maybe a bit old-fashioned) opinion, of course, and today there are many higher-level programmers who don't have experience with it, such as some of my university colleagues who jumped into Java right away (while I stay away from it). C gives you another perspective, it puts you closer to the machine and the OS, especially if you want to write your own executables, patch existing ones or maybe go deeper into the system. (At some point later, some basic understanding of Assembly could be nice, too.)

I don't particularly hold the popular opinion that people should not start with C. It's a tight and concise language, which sometimes makes it cut both ways, and at the beginning you may have some problems with more complex or "cryptic" expressions, situations involving pointers, strings and reading from the stdin, but these will go. You should also know your operators precedence and associativity to avoid much convulsions over more complicated things, even such as: char *(*(*func[5])())(char **);
(don't get scaried, you'd very rarely encounter something like this, if ever).

To me, personally, C and its syntax came more naturally than, say, Pascal, of which I don't remember much - when I was at uni, we started with Pascal, and at the same time I started learning C. Before that, I had some limited experience with BASIC, some 6502 Assembly and DOS batch files. But in terms of seriousness, I consider C to be my first language. Maybe I am a bit biased since I already know it or since I had done _some_ programming in another language before starting with C, but still - I don't hold that popular opinion.
Maybe it's a bit easier to say what to avoid. I'd say: Don't start with BASIC or Pascal; ain't worth it, IMHO.

But since you're a into Unix, maybe start with shell scripting first, it's going to be really rewarding and give you more flexibility in the system - after all, first know your system and how to perform various automated tasks before programming under it. As for myself, before knowing anything about Bourne Shell scripting, those scripts looked like illogical, cluttered and inconsistent garbage compared to C.

Last edited by KS; 20th October 2012 at 11:58 AM.
Reply With Quote