Im a freshman in college right now, learning C in Computer Science.
What I was mostly wondering was, how does programming work in practice? How much do you really need to know by the time you graduate from college (I plan on getting my MS, btw), and what should I spend my time learning now in my spare time outside of class?
Name:
Anonymous2007-12-26 21:16
I distinctly remember two instructors I had when I learned C.
The first taught my intro to programming class (in C), and I hated how he basically restricted us to a subset of C and told us to write dumbed-down code; all assignments were to have no pointers, loops had to be either while() or for() (no do...while()), break, continue, and goto were not allowed, the conditional operator was banned ("you can do it like this but it makes it harder to read so don't use it"), and all expressions were to have no more than 3 terms (now that I look back, we were essentially restricted to 3-address-code). I fucking hated it, but still got around 98%. The final project required about 30 lines of code to complete, and I remember losing marks because I accidentally used continue in one loop. No matter how much I argued with him that it was perfectly valid and readable C code he wouldn't get it, just saying "it's harder to read like that" -- I was the fucking student and the instructor thinks my code is too complex? WTF. He eventually changed to teaching Java and died of age a little bit after that.
My second instructor was awesome. She (yes, a female) let us learn the basics of C ourselves. K&R was the required textbook for the course, and every day in class she'd give us one or two lines of extremely tricky code and have us figure out what it did. The assignments were bloody tough too, not necessarily long but definitely needed thinking and creativity. She considered programming more of an art, was definitely not afraid of goto, break, continue ("the language gave us these powerful features, use them to the fullest") and her advice was "readability is in the eye of the beholder, don't let others hold you back". The final exam was a single page of dense code with two problems: "State the output of the above program" (I think it was a moon phase calculator or something like that) and something about modifying it to work with 5-digit years. Didn't do so well, only about 80%, but I'd definitely prefer her over the other guy.