Many do programming friends like to read. But why read? What books do you read? How many books do you read? How to read? This has become a big problem. I would like to talk about my own views on these issues. Note that the reader of this article is best for those who do not have much time and hope to have a great harvest by reading some good books. If that is the technical book to read all the friends, your energy and time is too much, this article should not be suitable for you.
first, in China, programmers can only rely on reading to improve their programming or design capabilities, which in itself is very non-resistant, because the domestic software programming direction of education has lagged far behind the development of the programming industry. There are very few teachers who can hear the teacher's class. Good luck, into the university or company, have a master brother or Daniel colleagues belt, growth will be faster. Otherwise, to improve, in addition to reading, there is really no other way. Because I have been a math teacher, I am very clear, math study if just give you a few reference books, and then you can get high scores, it is impossible (you if the exception, you can only say that you are a genius, there is no universal meaning), but mathematics education has been developed for many years, especially in China, such as the test-oriented education- Mathematics is not needed good books as long as there are good teachers can be good students, and software programming education teachers are really not optimistic. And I want to emphasize that reading is never good teacher good teaching come effective (attention needs to emphasize "good" word). Because teachers and students are interactive, is in an atmosphere of communication learning, rather than reading the kind of completely single-direction information transmission. Now with the network video recording, the situation has been greatly improved. But video also exists that can only tell you something, but not the quickest way to solve the problem you have encountered in the unidirectional transmission of information. For example, you read a video to learn how to write a "HelloWorld" program with VS2008, but you never find the "Solution Explorer" mentioned in the video (because you or someone else accidentally closed it). Finally understand that there is a button on the toolbar or the menu can open it, but your frustration is very strong, which is very uncomfortable for beginners. If there is a teacher, or a classmate next to it, this problem can be solved in a few seconds. For example, you read the strategy mode of the teaching book or video, but why must use strategy mode? Can I use a simple factory? Can't you use decorating mode? Your question one by one, there is no answer in the book, the answer can only rely on their own to think. If you insist on thinking, you will have the "enlightenment" through the day, but the larger may be, forget, design patterns are too difficult, and later study it. So I think it's good to read more, but the ability to read is clearly not the only way to do it. However, in the current domestic situation, reading may be in you do not have a teacher under the premise of the best way to improve, especially beginners, the system to see some good books, learning a technology is very necessary, only by the actual project to improve is likely to develop not comprehensive (training school I do not recommend, because the most money, good teachers too hard to find)
then the question of what books to read. Now a lot of friends have recommended some good books, these good books are mostly through time verification, is indeed a rare boutique, look at some of the online bookstore rankings and comments on probably know what good books are. But the question comes again, are these books all right for me to read? The answer is no, not as long as a good book is suitable for readers to read. According to the classification of technical books, simple points have program design, software engineering, database, network, graphic image and so on, from the technical difficulty points, there are introductory reading, advanced reading, high-level reading, etc. from the writing form, there are teaching materials, papers, leisure, etc. from the price, there are 10-30, 30-60, 60-90, 90-Rob money not negotiable price, etc; from the thickness of the book or reading time, there are three days to read, two weeks to read, two months to read, six months to read, read three times, lifelong reading and other categories; Of course, the most important classification, that is, according to the quality of writing books, should be garbage books, general books, can read, fine books, absolutely must read. In other words, just to tell you, programming book Good Book is not enough, often will let the reader simply can not distinguish this good book is suitable for oneself, should want to read now, whether it is necessary to read all. Of course, the business is not to do so meticulous classification, no business will tell you, this book is garbage book, this book is not suitable for low hand reading, the book is too thick no time to read, this book is expensive before you buy to be cautious, this book only three chapters can be read and so on. But as a reader, if you do not have this multi-angle classification of thinking to find books, you may be lost in the Book of the Sea, not to extricate themselves. For example (although I have played many times), Gof's "design model" is indeed a good book, but really not every programmer needs to read, at least not the beginning to read, if you are non-object-oriented programmers (such as embedded development), you are relational database developers (such as the stored procedure developers , you are the UI designer (partial design but involve the kind of program), even you are the object-oriented programming beginner, I recommend you do not read it, really no need, only when you really have reached a certain amount of development, it is really necessary to improve their programming and design capabilities when you read it. Summary, must read through time examines the good book, but in these good books, needs to classify, needs to ponder oneself is not really suitable for the current reading.
Then, the question of how many books to read. A lot of good books, not one, not 10, but dozens of hundred. Some books are good throughout, some of them are partial chapters, some are very time-sensitive (for example, it may not be possible to read some of the original books on the ASP. NET 1.0 entry). Is it necessary to read the same type of good books? I see no need for it. For example, if you want to learn ASP, do you really need to read all the good books? Reading a book is sufficient. After all, there is more to practice than to read. And the book to be read should be intensive reading, or even repeated reading. In fact. Therefore, other industries may need reference books, I see the programming industry basically do not need reference books, Google Baidu is the best reference. Thought-level, such as design, analysis, project management and other directions, may need to read some more. But the book is really expensive in fine rather than more, or to design patterns as an example, the introduction of "Head First design mode", advanced to read GOF's "design mode" is enough. Of course, like "Java and Patterns", "design pattern Analysis" are good books, you have the energy to read more, no energy, then do not read.
followed, is also more critical, is how to read the question, originally this question should not I come to say, reading, read from the beginning to the end of the line, but in fact, here is really a lot of knowledge, technical books are very different from the general novel books. If you simply understand that reading is to take some time to read from the beginning to the end, you get a small harvest from this book. First of all, technical books do not necessarily need to be read from scratch. It depends on what the book is, especially the application-level book, which is often the technology you need to know most today, and you need to spend more time studying the relevant chapters. A good book usually tells you in the preface how to read the book. I remember that the preface to Agile Software Development: principles, patterns and practices is very clear about what kind of chapters the reader should pay more attention to, especially when he mentions that if you're bored, look at the two stories after the book, Ha, I really read the story of the two project development comparison carefully when I did nothing. It feels very good. The study of technology is not to read the book to fully understand, but not to be able to read it immediately, a skill to know, understand, master, application and so on. I strongly advise readers to hold a pen when reading a book, preferably next to a notebook (paper) and a laptop (ha, the PC is certainly no problem). See the good sentences to be extracted to the notebook (Don't be lazy, this is not to let you later to see what you copy, but to let you copy the time, slow down your reading speed and rhythm, and the brain tightly focused on this knowledge point, there is a saying, when a person with a pen to write things, he is not distracted to think of other things. This is very helpful for memory and understanding, in short, the text does not read (very pity, now I have seldom seen the friends who like to remember reading notes, some people may be a year apart from the signature can not write a few words, this is really a great sorrow). So what's the next laptop or PC going to do? Not for you to play the game, not to let you and mm chat QQ, but to write code, code just to see is useless, you must play again, the best effect is to understand, according to their own understanding to make up, the effect of a few is according to the book in the copy, but no matter which kind is more than you do not write just look stronger. I've seen a lot of friends buy books, maybe even with the book's CD-ROM envelope has not been removed, or the CD-ROM code is simply run a bit. Without serious imitation, this is a bad way to learn. Some people think that after reading the book, it should be almost all mastered, in fact, not necessarily. I don't know if you have ever seen a movie, and after a while to see the second time to find a lot of very interesting things originally did not care. Especially English subtitle film, see the first time even do not understand, see the second time on the pro this situation is not many. Reading is the same, good books are absolutely necessary to read more, often read. Otherwise the understanding may be very one-sided。
Finally, we have to mention two details.
Reading questions about electronic and paper books. Some friends like to collect electronic version of a good book, a collection is a few hundred books, but the real may be a fraction of what to read. Books are used to see, these on the hard drive not to read books, rather than delete the replacement of several AV short films (after all, the latter look much more likely). But why are these good books not read well? This is not all about the reader, but the electronic version of the book is inherently deficient. First, it is not convenient to carry, it must be in front of the computer to read (in particular, there is a graphic code of the Programming technology ebook), not like paper books can be in the subway bus or even the toilet reading; second, long time to hurt the eyes, the book is different from the short article, in front of the computer for a long time to read Reading paper will be more comfortable, third, inconvenient to annotate, although some software can solve the problem, but how to use it is not as easy as paper books, and some e-books are not clear, it is possible to scan the original book directly, which obviously can not compare with the paper books, reading sentiment will have a great impact. Therefore, only those who can completely overcome these difficulties can learn by reading e-books. However, some foreigners now have some English original e-book produced very well, in the dollar fell but still can not afford to buy paper books, the premise of Reading good ebook is also a good choice.
About library borrowing or buying books to see the problem. There is a saying that "books can not be read." That is because of their own books, there will be a kind of anyway already owned, have time to read the idea, resulting in rather a long period of not to read. and borrowed books because there is a period, so seize the opportunity to read a lot more. In addition to library books can save a lot of money to buy books, so to library books is also a good choice. However, the library books are difficult to keep up with the times, many are too old, some new books library although introduced, but because of the very difficult to borrow, especially good books, basic must take a chance to do, plus some books one months plus one months to renew the time is difficult to read. So it is a good idea to borrow books from the library, but when some books are not available, you should consider buying them. But buying books blindly is obviously not a good idea. When it comes to buying books, it may be worth a few colleagues to buy books, so that you can split the cost of the purchase of books, as well as online purchase books offer a lot of good choice.
In short, in the domestic environment, reading is the best way for programmers to improve their technical ability. Then the above mentioned problems, it is very necessary. I hope this article can give you a technical book to read some help, my views may be biased, we discuss together. But whether you agree or not, leave a word, though I am relieved that I have spent so many hours typing.
Thoughts on reading technical books