General IT Books?
Torulf would like to start an ongoing discussion on books that anyone in the IT field would benefit in having in their library: "Here's a topic that might generate some interesting discussions. I'm a student trying to get general knowledge of the IT business. The question here is about what is regarded 'basic knowledge' and where to find it. As we all know (I hope), a lot of knowledge can really only be learned through experience. In many cases, however, a read through the theory will save you a lot of time. As books are also easier to look up than experience, below is a suggestion of a reading list that might give a decent general knowledge in the field. Please fill out the gaps with what you think is required
knowledge for anyone working in the industry. Mostly this is about a general overview of the
different areas of the IT industry, but if you have suggestions of good material for becoming an expert in some particular field, by all means, share your knowledge." Torulf has compiled a fairly long list of books, below, however your own suggestions are always welcome.
For any non-trivial task, it is suggested that you design before you code. User Interfaces:
A lot of programmers are more than clueless in this area. These at least won't hurt: Graphics:
Some general knowledge about graphics. Business/Management:
Here's something about management and financing. I don't really know about a good reference for marketing applied to the IT industry. This is the area where the average geek is even more ignorant than concerning UI. Security:
Alright, this list should be a lot longer. Misc.
And last some stuff that didn't fit in any of the categories above.
"To start off the discussion, here are a few suggestions as to likely candidates. The
books are linked to Amazon since they can provide a fairly quick and complete description of the books online.
Programming:
Learning a few languages certainly won't hurt. Here are some suggestions:
- The C programming language
- The C++ programming language
- Programming Perl
- Programming Python
- A Book about Java
- A Book on SQL
- A Book about Functional languages (LISP, ML, etc.)
For any non-trivial task, it is suggested that you design before you code. User Interfaces:
A lot of programmers are more than clueless in this area. These at least won't hurt: Graphics:
Some general knowledge about graphics. Business/Management:
Here's something about management and financing. I don't really know about a good reference for marketing applied to the IT industry. This is the area where the average geek is even more ignorant than concerning UI. Security:
Alright, this list should be a lot longer. Misc.
And last some stuff that didn't fit in any of the categories above.
- Modern Operating Systems
- Computer Networks
- A few operating systems
- A book about markup languages, ie HTML, XML, DHTML, etc
- A book about Algorithms and Data Structures in general
- At least some basic knowledge about Hardware
- Wireless systems seem to be growing. It might pay off to learn something about Symbian, J2ME etc."
Now that's a start to a comprehensive IT Library if I've ever seen one. How do you all feel about this list (if not the specific selections, then at least the material being covered)? If you were to make changes or additions, what would they be?
You should definitely add a book on a non-strict language like Haskell. beta-contraction rocks!
There are reasons why democracy does not work nearly as well as capitalism.
-- David D. Friedman
and
The Practice of System and Network Administration
Time flies like an arrow, fruit flies like a banana.
Having a nice library is good, but reading books is better. Do you know how long it takes to fully assimilate one of these books? At least weeks for some of them. So you don't really have time to understand them (unless you're 1) employed, 2) rich).
My point is: pick something and get good at it. As you move to more complex projects, everything will come together and you will avoid the "why in hell did I learned that" feeling. Heck , my last project uses J2EE, PostgreSQL, a geographical information system, a graphic toolkit, some shells scripts and some C programs, plus the obvious OO design.
Nobox: Only simple products.
But seriously, I cannot immagine anyone learning the "basics" better than fiddling around with things, and learning how they work (by breaking them more likely than not).
My thoughts exactly.
Find a crusty old 1995 vintage computer at a garage sale and force yourself to bring it to life where you can browse the internet, write a letter, print it out, and play your favorite CD. For good measure, read some files off a floppy created with an entirely different platform and application.
At that point you will have an inestimable education on what most everyday IT is really all about.
"Provided by the management for your protection."
I guess blatent referrer links in a story to a vendor we are all supposedly boycotting
Gee, am I out of the loop. I didn't get the official authorized vendor list. Guess you're cooler than me.
Best Windows Freeware
Every time I see that acronym used, it's in a context far and away from what I would call traditional software engineering. I think of it as somewhere between web programming and corporate database programmer. As such, it seems that the recommended books are lean too far away from what the typical IT worker needs to know.
The book Programming Pearls by Jon Bently is an excellent book on programming practices, interesting to read, not too heavy.
-Peace
Dave
Free as in "the Truth shall set you..."
Hard to believe no one has mentioned Structure and Interpretation of Computer Programs. While Knuth is a great set of reference bibles, SICP is a perfect textbook. It's funny, well-written, incredibly comprehensive and appropriately mind-expanding. Work through all of the exercises in that book and you've got a solid grasp of programming fundamentals.
Chris
Sorry, but I think Knuth's The Art Of Computer Programming is massively overrated as a general-purpose text. It's like that presentation edition of The Complete Works of Willy Wagglestick that sits on the shelf looking splendid and making you very proud that you own it, but never actually getting read.
For most purposes, a good book on basic data structures and algorithms is far more useful in the real world than Knuth's complex explanations with examples implemented in MIX. Maybe I just don't need the deep stuff behind it regularly, but if I don't then surely neither do most other professional programmers, and that pretty clearly contradicts the "essential" status. If it was a choice between making computer science students read TAOCP or making them read Sedgewick, then I'm sorry, but I'm choosing Sedgewick every time.
This is not to say Knuth's work doesn't have immense value as an authoritative academic treatise on its subject matter; clearly it does. But that's very different to calling it "absolutely essential" for just anyone.
And to preempt the obvious replies... Yes, I've read several bits of TAOCP. Yes, I do like other things Knuth has written (notably his TeX-related stuff). And no, I don't much like Numerical Recipes either, for exactly the same reasons.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.