I just finished reading "Design patterns: Elements of reusable object oriented software", and I would definitely say that this is one of the best book I've read. It gave me lots of methods to resolve design issues happened in software. It also teaches me a lot about the tool I've used: C++. I've criticized the language for its intricacy. But the book points out to me that the way we think depends on the language we use and we have to use something long enough to fully understand its functionality. C++, to me, is still a weird language but it also has advantages over other languages by being a multiple paradigm language. It's difficult to write a good code in C++, but when you can use it freely (of course by practice), you can utilize its strength for multiple purposes. C++ is enough for everything (I don't mean that I don't use other language but C++). That's the reason why C++ is still a popular language nowadays.
This is also a book that I read intensely from the beginning to the end. It marks plenty of my attempts to not to get distracted by other interesting things. I've tried my best to keep reading and jotted down notes carefully chapters by chapters. There's time I wanted to give up reading the book because it's too boring but I saw the number of pages left and tried to continue because I wanted to finish it as soon as possible. After the first book, I'm more determined, and more confident on my discipline.
I will try to keep this strategy for other projects in the future. Perhaps I'm going to read "Effective C++" from tomorrow.
Anyway, congratulation for the first achievement!