Originally posted by: Schadenfroh
I am about to start my 2nd year in computer science (actually have been in college for years, but I switched majors from a less related discipline). The class that I REALLY remember giving me great insight into programming was my data structures class.
More experienced people here will probably prove me wrong, but here is my humble opinion based on what I have been through thus far.
Buy a data structures book (my university uses Data Structures of C++ by Michael Main and Walter Savitch) and read about the different types of data structures / abstract data types and sorts from a theory standpoint and then implement them yourself in C++ while referring to the documentation of the language (avoid copying code straight from the book / online sources unless you REALLY get stuck).
I am not familiar with the Computer Information Services curriculum in general, so keep that in mind.
For data structures, we used a book by Gilberg and Forouzan called Data Structures A Pseudocode Approach with C++. It was nice because the concepts were tauch wtih pseudocode, which meant that we were actually learning the theories behind the different data structures, rather than just how to implement them. C++ was used to tie it together. Halfway through the class, I was able to write my own double-linked list class in C++ with no sample code or instructor help. This was many years ago, though, so I'm sure a better book's come out recently. Also, this was not a class in the CIS program...that was a different school and a different program...I spent time in both disciplines.
To the OP: from a practical standpoint, I wouldn't bother trying to master a single language...I'd concern myself more with technologies...SQL, for instance. Get a good grip on database design, normalization, and administration. Project management techniques are also important. Look at each of the different areas of technology administration and see what you like best, then run with it. Do self study things. The new Microsoft Server 2008 MCTP certifications look pretty good, and cover a pretty broad gamut of the CIS market. Study for the one which mosts interests you.
Myself, I made the mistake of being too good at networking, programming, and database design...and now I maintain the servers at an ISP, deploy, program, and manage VoIP telephone systems, do networking equipment sales and support, and develop webpages. Specialization is key. Unfortunately, my company won't let me.
🙁