Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Programming in Practice

Name: Anonymous 2007-12-22 23:16

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: Anonymous 2007-12-22 23:51

>>1
what should I spend my time learning now in my spare time outside of class?

Everything possible. Write a lot of code, read code, and read about programming in general, especially its history.

The first thing you should learn is that while manual memory management is not the worst thing in the world, it's a waste of your time in every situation, unless you're coding for a machine so small you can keep the contents of its memory in your head. Garbage collected languages aren't objectively slow. There's a very good reason that GC is either in or coming to every currently used language but C.

I'm astonished and impressed that your college is teaching you plain old C from the get-go. You're a step ahead of all the guys who are getting Sepples or Java as their first exposure to programming. In a lot of ways, C provides more room for stylish programming than either of those two. By that I mean that it gives you a simple set of fairly regular primitives (pointers, structs, variables, loops), and lets you go wild without a mind-numbing class structure to abide by and, worse, create, and without a bunch of features that don't work well together.

As for what you really need to know: not much, depending on how good you are at getting hired. You're going to graduate feeling like a total nub, at least with a BS. This is to be expected, and it's the same in every field. You'll get to do a whole lot of learning on the job. With an MS, I have no idea. I don't talk to many people with postgraduate degrees.

What you probably want to have, as a programmer, is a good enough understanding of program design that you could take a project from idea to final product without more help than a bit of advice. You should be able to do this in at least one language, and be almost able to do it in a few more. You want to have historical knowledge good enough that you don't get a blank look on your face when Algol and PL/I come up. Ideally you should have some knowledge about the archicture of historical computers, and deep knowledge about the architecture of modern computers. Know assembly language well enough to interpret a printout and reason about the code's efficiency, since ASM is a direct representation of the instructions sent to the CPU. But don't get too caught up in theoretical efficiency without profiling your code.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List