Some people may ask: "Why books if you can find any technical information in blogs, forums or anywhere in internet?" Well, I had this question to myself once, that after sometime showed me a lack experience.

The main difference between "internet knowledge" and "books knowledge" is that all information in internet is sparse, where you have to "mine" parts of information in many sites; but most of the books contain a concrete and complete information all-together, well organized. Of course, there are many sites very good about some topics and they really intend to be as complete and concrete as any book, but even some of those sites were not so good as reading a good book to acquire concise information.

For example, I realized that when I was looking for information about wavelets. I found many sites with topics about it, implementation sources, lots of formulas and so on, but what I really liked to know was about the Digital Signal Processing concepts implied on it. I did learn a lot while searching on internet, and it was good; but I still had the feeling that the concept was not deep understood, I didn't know the "why" yet.

Finally I found the book Conceptual Wavelets that I wrote about in my previous post. I will not talk even more about the book, but that was an example for me were a well written book could supply my expectations in an ordered manner that hardly would be supplied in internet.

I am not saying here that books will always be better than any site but I have the feeling that a well chosen book tends to be more helpful when looking for an specific knowledge about a complex subject.

Another example I can tell comes from when I was learning about NVIDIA and CUDA GPU programming. The site of nvidia is wonderful, full of explanations, full of examples and pictures. The API documentation is well designed. Oh, not forgetting, there are many and many video tutorial about CUDA programming. I learned a lot with them, implemented somethings also, but the feeling that I had a real concrete knowledge about CUDA programming came after reading the book "CUDA by Example", that by the way, was released by nvidia and it is available for downloading in the nvidia developer zone.

I read the CUDA by Example book in the electronic PDF format and it is a wonderful book. So, it doesn't matter the format of book, if it is hardcover or electronic, but what I am talking is about organization, concrete knowledge released in such a way for your mind that it even fires you to implement something applying what you are learning, because it is so well constructed, that you feel even uncomfortable to let it to be forgotten.

As you could see, I strongly recommend the book CUDA by Example for anyone that is starting with CUDA programming, but I will talk specifically about that in another post. For now I am just anxious for my next reading about nvidia, the book "CUDA Application Design and Development", that seems to be very good. It's in my reading queue.

But then, comes the question: Is there sites that could be so helpful as books? Of course there is! But it should be a very focused site.

An example of that is the following site about Design Patterns.

In my own implementations I was feeling bad about some disorganization in my code, about some ugly things implemented and about the problem for re-usability that I was creating. Then I borrowed from a friend of mine a very good book called Design Patterns: Elements of Reusable Object-Oriented Software and started the reading. Well, I confess, I got a little bit annoyed with the reading. So, I decided to take a look on internet and I found the site Design Patterns from as I said before. After taking a look in the site, I started immediately to implement some Design Patterns in my projects, since it was all very clear, so well explained and with very good examples in many programming languages that I had to start implementing as fast a I could.

So, here is an example where an internet site was more helpful than a book, and a site that fired me to the code implementation. I know that the subject here is about information taken by reference about some independent topics and not about constructing a knowledge about some specific technology, but I will write about it latter.

For now, just let me show one more site helpful for the Design Patterns subject:

I hope you enjoyed the reading.