duckladydinh's blog

By duckladydinh, history, 9 years ago, In English

Dear coders, how do you read books?

There is just no way I can imagine that can help us gain more knowledge but to read a book. Reading is surely more important than practising problems. An effective way to read a book is, however, still mysterious to me. I have tried my best to read some books like Introduction to Algorithm, the 4 volumes of The Art of Computer Programming and some more. The result is always "IT RETURNS NOTHING".

My reading process can be summarised as follow: Firstly, I open the book, read the Table of Contents and the Introduction. Then I come to the first chapter, read word by word to understand the motivation and situation in every sentence. After the first page, I am extremely energetic. After the second page, I feel that the situation in each sentence is no longer interesting and the motivation inside it is decreasing (So is my motivation). After no more than 10 pages, I feel extremely sleepy. I then drop the book, go to sleep and come back to it later. However, I recognise that I have forgotten everything I have read, which means I can never finish a book.

How about you guys? Have you ever been in a similar situation? If yes, what have you done to overcome it? Maybe you think I am just inborn lazy, and maybe it is really true :)). I, however, really want to read more and more. If you know a way, please tell me. I am really curious about the way great people read books.

Thank you very much.

  • Vote: I like it
  • +22
  • Vote: I do not like it

| Write comment?
»
9 years ago, # |
  Vote: I like it +4 Vote: I do not like it

I think u should read and do together. If read only u will be quickly terious! U can read Books Topic and practise with this topic in some website like: Uva, Spoj, ... I beleive this helpful :)!

»
9 years ago, # |
  Vote: I like it 0 Vote: I do not like it

My coach has said this to our team countless times: When we study competitive programming, you can't forget the practical component. For many of my teammates, they work on problems, and if they are stuck after a while they will read the editorial and if there are concepts they don't understand, then they read up on it online or in a book.

I think books like CLRS are better used when you learn a concept in class or are reviewing for an exam, so going through it is more like a brush-up than the first time you read it.

»
9 years ago, # |
  Vote: I like it +3 Vote: I do not like it

There is no need to read reference works or textbooks like a novel. The intended use is that when you want to know about a specific topic, you locate the appropriate section of the book and read it.

  • »
    »
    9 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Agree 100%.

  • »
    »
    9 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Not really agree with you as I read book not just to know things I have partially known. I also read for things I have never heard before, just to know more. More importantly, we, competitive programmers, learn things mostly in the informal way. When reading a book, we must know how they define a term. So, the only way for me is to read it from the beginning (most of the times).

»
9 years ago, # |
  Vote: I like it +21 Vote: I do not like it

You don't read books like these, you study them.

Ten pages in one reading sounds fine, possibly too much. You're supposed to do the exercises as well, not only read the theory, only then you can claim you've understood the stuff.

It's better to have with your own questions before you start reading. (Like "I wonder what's the reasoning behind using red-black trees for C++ STL maps and sets, can the Cormen's book answer that?" and "What's the best data structure to use in this problem I have?") That typically gives me motivation to try to understand the technical material.

It's also important to select the right level of the book and the right approach: some people like more theoretical approach, while others (like me) are more into practical, applied stuff like "how to create computer games". This is completely subjective; you need to pick what you personally find interesting and compelling.

  • »
    »
    9 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    You are right. The word 'study' fits better.

    And of course, I do have some questions like that in my head when I read a reference book or search for a word in a dictionary. I do wonder if it has what I am searching. But here, I just simply want to read whatever books. I just want to explore what I don't know. I have no ideas about what I am searching for. I just want to know more. And I also have a question: Does reading this can gain me something? But for some mental or psychological reason, I fail to do that. :(

    (About 10 pages is "possibly" too much. I did not try to read too much, I just read as much as I can. And I think it is too little on the other hand in that the book like Introduction to Algorithm is > 1000 pages long :'(. )

»
9 years ago, # |
  Vote: I like it +6 Vote: I do not like it

I never read a book, I just read wikipedia or topcoder or anything else that talks about the topic and then practice it, when I first started everything was new to me so I remember doing it by weeks, for example 1 week for maximum bipartite matching, so I would spend one day to read about it online, another day or two uploading some easy problem(s), and then some more complex problems (for example problems that appear in ACM ICPC regional). But now I do it randomly, if there's something I want to learn I just look for sites online and then practice it at my pace.

My best advice is try not to do many easy problems of the same topic, but rather try to do a few good ones, that way you can see some weird variations (BTW when learning problems aren't supposed to be easy, so if they are too easy try to look for harder ones).

I usually like to be fully focused when learning so I try to avoid noisy places.

»
9 years ago, # |
Rev. 4   Vote: I like it 0 Vote: I do not like it

Any highly rated programmer cares to answer this please?

Btw, you can try asking this on Quora. Maybe you'll get answers from Ph.D candidates and professors who do extensive reading. Here, everybody will answer in terms of competitive coding only, but its better to know how to read books in general, to inculcate the skill to read books.

But I can suggest you one thing which I did. I was scared to learn new algorithms (still am). When I learned KMP, I wrote a blog post about it for these reasons-
1. If Iam wrong, someone will possibly correct me. I can use the community instead of relying on myself only. If you get downvotes on a blog like that, you can assume that you made some great blunders somewhere. Now you have some lead to track your mistakes down.
2. Writing a good blog post about any topic means you first have to know what you're writing about, complete with proof and everything. Even if nobody bothers with your blog, just writing it down in your own words and style will make you realize how much you truly understand it.You can't fake knowledge this way. I mean, even if you think I read this when you're trying to teach it to others, you'll be questioning your theories and reasoning more than you did while reading.
3. If you think there's an alternate way to implement something that you read, you can verify with the community. You might think why are we doing it this way, even though it can simply be done that way, although I understand both the ways I prefer the easier way and then someone will show you why exactly your way is not the right way. So it kind of simulates classroom learning where the conversation gets going. Also, we remember things better this way, when we converse about it.
4. You'll do more research on the topic automatically before writing a blog because you'll be afraid of downvotes.
BONUS REASON — If what you wrote is consistent and correct(which it eventually will become after n revisions :) someone somewhere who is trying to learn about that topic will find your blog that removes his own doubts from reading the same books you read, and will appreciate you for your efforts :) Also, most likely that means upvotes.

»
9 years ago, # |
  Vote: I like it +9 Vote: I do not like it

If you read book as if its have to be read then its very obvious to feel boring after some pages and even feel sleepy . If you read book for fun then you never feel boring to read it same as like our favourite movie , we never feel bore over and over again watch it. Read book for fun thats it :)