Well as I see it the area can be (very) roughly divided into three levels: the hardware level, the software level, and the networking level.
I read an excellent text on networking in high school that I recommend to anyone interested in the topic: Computer Networking: A Top-Down Approach Featuring the Internet. I read the 2000 edition, and if anything this 2009 edition that I linked to is probably better. I recall it as being comprehensive, clear, and thoughtfully arranged.
What I've called the software level is where a lot of the fun is. (Although don't get me wrong, networking is a lot of fun as well, and once upon a time I intended to make it my career specialty.) You mentioned that you'd like to become acquainted with basic programing. Well, I think if you want to get the most out of your study in this field you're going to want a pretty authoritative grasp on at least one language, and preferably some familiarity with a few others as well. It's a pretty essential tool, and most of the more theoretical aspects of CS (algorithms and whatnot) are going to be described or illustrated in terms of programming languages. To start off, I recommend C++ or Java. I've used both languages, but I learned them using primarily course materials, so I can't recommend any specific texts. More on that below.
I was always least interested in the hardware aspect so I'll have the least to say here. I tended to pick up what I knew here or there, usually on the Web, so I don't have experience with any of the texts. An Amazon search pulled up this, Principles of Computer Hardware, which I think looks quite good, but I can't personally vouch for it.
Given your academic and career interests, you should consider adding Computer Science as a second major or at least a minor. Learning a programming language is a practice-driven affair, not an insight-based one, and an instructor can really be invaluable in showing you how and what to practice. It also seems like a pretty useful formal certification to have when pursing a job in any field with "computational" in the prefix . Anyway, in my experience the first course is mainly focused on getting students up to speed on a certain language (and weeding out the ones who just don't have the right stuff), but beyond that first course you pretty quickly get into various sorting/searching algorithms and all that jazz. Give it some thought.
|
|
Bookmarks