Skip to main content

14 books I have read in 2020

 

1. Cha Voi: Dạy con nên người ở thời đại số

Author: Trương Nguyện Thành

Language: Vietnamese

I love the methodology of parenting so-called Cha Voi (elephant father). It is neither very strict nor easy. The parents take themself as an example to lead their children.


2. Release it! Design and Deploy Production-Ready Software

Author: Michael T. Nygard

Language: English

It was fun to read stories about how the author investigate and solve the issues of software running on production. I learned lots of terms and strategies to ensure stable software such as health check, circuit breaker, logging, monitoring, etc, ...


3. Algorithms to Live By: The Computer Science of Human Decisions

Author: Brian Christian and Tom Griffiths

Language: English

When talking about algorithms, people usually think it is something complicated and also for computer science only. However, algorithms are actually steps to solve a problem. Life consists of lots of problems. We can use the power of algorithms to solve them. As well there are some algorithms that work fine with the computer but not always can be applied for humans. For example, multi-taskings does not fit for humans.


4. Đường Xưa Mây Trắng: Theo Gót Chân Bụt

Author: Thích Nhất Hạnh

Language: Vietnamese

There are many mindful stories about Bụt (Buddha) which also means awakening. I was wholly convinced by each easy-to-understand story. It is completely not mystical. "Bụt" became of one my life philosophy.


5. Con Đường Chuyển Hoá: Kinh Bốn Lĩnh Vực Quán Niệm

Author: Thích Nhất Hạnh 

Language: Vietnamese

As a next step to dive deep about "Bụt" after reading "Đường Xưa Mây Trắng", this book guided me on how to mediate by a practice so-called "Kinh bốn lĩnh vực quán niệm" (four areas of contemplation). This methodology helps me to collaborate with my emotions very well.


6. You Don't Know JS Yet (2nd edition)

Author: Kyle Simpson

Language: English

I wanted to dive deep into the programming language JS and how it works. Since there were some behaviors that I didn't understand. Not understanding carefully the tool we use daily is somehow dangerous, right? It is tantamount to when you got 10 marks in your test but you actually don't understand why.

JS is an implementation of ECMAScript which is guided by TC39 and hosted by ECMA. JS is a multi-paradigm programming language. JS is a compiled programming language.


7. Từ kiến trúc sư thành bác sĩ tại Hoa Kỳ

Author: Huỳnh Wynn Trần

Language: Vietnamese

The doctor is a tough career. You will adventure with the author as he continually changed his selection over his career.


8. A-Tì-Đạt-Ma Pháp Uẩn Túc Luận

Author:  Moggallāna? (translated to Chinese by 玄奘 (Huyền Tráng), to Vietnamese by Phước Nguyên)

Language: Vietnamese

This book offers many terms such as Học Xứ, Niệm Trụ, Thánh Đế (four nobles truth), Thần Túc, etc. Those are explained in detail and not too difficult to understand. With the motto of not too attentive and contemplating to fully understand, trying to follow the breath, and keeping mindfulness, I finally completed the 600-page book. The book helps me to deeply understand the philosophy of Buddhism.


9. Mike Typson - Sự thật trần trụi

Author: Larry Sloman (translated by Trần Minh)

Language: Vietnamese

What a hard and interesting story about legendary "Iron" Mike. Mike's life is completely different from what I was imagined. That is about an extraordinary effort, opium addiction, and whoremonger. 


10. How to win friends and influence people

Author: Dale Carnegie

Language: English

I have read the Vietname version named "Đắc nhân tâm" a long time ago. This time, I read this English version to enhance my English skills as my primary target. I try to remind myself of this quote "Even god doesn't propose to judge a man till his last days, why should you and I?"


11. The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

Author: Eric Ries

Language: English

This year, my friends and I have built a side project called "QuizMarker - Chấm điểm AI". The app is launched on AppStore and Google Play, it is still in testing progress though. Since each member has a limited time for developing the app (around 1 or 2 hours/day), it took us a year to only launching the core feature which is called 1st MVP. As a PO of that project, I have adjusted my mind about the MVP term after reading this book. The strategy is to eliminate waste and focus on customer feedback so that we quickly give a good enough feature to users first instead of building something that users may not use.

12. So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love

Author: Cal Newport

Language: English

"Don't follow your passion", "Think small, start big" are examples of advice from the book. It somehow encourages that you should offer what the people need instead of asking for what people can offer you. Remember this quote "Ask not what country can do for you, ask what you can do for your country"?


13. Lịch sử Việt Nam - Từ nguồn gốc đến giữa thế kỷ XX

Author: Lê Thành Khôi (translated by Nguyễn Nghị)

Language: Vietnamese

This book helps me review my country's history, Vietnam. I understood more about the transition between reigns such as Đinh, Lê, Lý, Trần, Hồ, Lê, Tây Sơn, Nguyễn, etc,... I know more about popular people such as Ngô Quyền, Đinh Bộ Lĩnh, Lý Thường Kiệt,  Lê Đại Hành, Trần Quốc Tuấn, Hồ Nguyên Trừng,  Lê Lợi, Nguyễn Xí, Nguyễn Phúc Ánh, Nguyễn Huệ,  Nguyễn Ái Quốc, etc.


14. System Design Interview – An Insider's Guide

Author: Alex Xu

Language: English

This book is an overview of the most today's problems of system design such as scaling app from zero to billions of users, rate limiting, key-value store, unique id generator, URL shortener, web crawler, notification system, news feed system, chat system, etc,...


---

Happy reading! Bye 2020! Welcome, 2021.

Comments

Popular posts from this blog

Creating a Chatbot with RiveScript in Java

Motivation "Artificial Intelligence (AI) is considered a major innovation that could disrupt many things. Some people even compare it to the Internet. A large investor firm predicted that some AI startups could become the next Apple, Google or Amazon within five years"   - Prof. John Vu, Carnegie Mellon University. Using chatbots to support our daily tasks is super useful and interesting. In fact, "Jenkins CI, Jira Cloud, and Bitbucket" have been becoming must-have apps in Slack of my team these days. There are some existing approaches for chatbots including pattern matching, algorithms, and neutral networks. RiveScript is a scripting language using "pattern matching" as a simple and powerful approach for building up a Chabot. Architecture Actually, it was flexible to choose a programming language for the used Rivescript interpreter like Java, Go, Javascript, Python, and Perl. I went with Java. Used Technologies and Tools Oracle JDK 1.8...

What the heck is Meteor DDP?

I was using Meteor for my messenger project. I was so curious about the real time connection. I wanted to know how exactly this mechanism works. In this post, I will go through the DDP Specification, an overview of WebSocket, and a simple demo about how to subscribe a publication of Rocket.Chat (containing a DDP server) from an external webpage. At a glance, I knew that Meteor invented a protocol called DDP which uses for handling real time connection. So then, what is DDP? "DDP (Distributed Data Protocol) is the stateful WebSocket protocol that Meteor uses to communicate between the client and the server." [1] All right! Why does DDP matter? "DDP is a standard way to solve the biggest problem facing client-side JavaScript developers: querying a server-side database, sending the results down to the client, and then pushing changes to the client whenever anything changes in the database" . [2] In order to understand deeply the protocol, I decided ...

Attribute 'for' of label component with id xxxx is not defined

I got the warning in the log file when I have used the tag <h:outputLabel> without attribute " for " in xhtml file. It was really polluting my server log files. The logged information actually makes sense anyway! We could find an answer as the following: "Having h:outputLabel without a "for" attribute is meaningless. If you are not attaching the label, you should be using h:outputText instead of h:outputLabel." However, these solutions are not possible just for my situation. Instead of using h:outputText for only displaying text, my team has used h:outputLabel too many places. We were nearly in our release time (next day) so it is quite risky and takes much efforts if we try to correct it. Because the style (with CSS) is already done with h:ouputLabel . The alternative by adding attribute " for " the existing h:outputLabel is not reasonable either. I really need to find another solution. Fortunately, I came across a way if I cha...

If We Want to Go Fast, We Need to Go Well

Have you ever thought that we won't need to code anymore because programs might be generated from specification? The answer can be yes or no; there is still arguing about it. The programming language is more and more closed to the requirements. The starting is from a very low level as Assembly to a very high level like Python. However, it doesn't make much sense when saying that we will eliminate coding. For me, we currently still need to express our ideas in exact words that tells the machine what we want. Otherwise, I hope in the future the machine is intelligent enough to understand our requirements directly from our words. ;) Take a look at the famous quote of Robert C.Martin about what I mentioned above: "Remember that code is really the language in which we ultimately express the requirements. We may create languages that are closer to the requirements. We may create tools that help us parse and assemble those requirements into formal structures. But we wi...

[Snippet] CSS - Child element overlap parent

I searched from somewhere and found that a lot of people says a basic concept for implementing this feature looks like below: HTML code: <div id="parent">  <div id="child">  </div> </div> And, CSS: #parent{   position: relative;   overflow:hidden; } #child{   position: absolute;   top: -1;   right: -1px; } However, I had a lot of grand-parents in my case and the above code didn't work. Therefore, I needed an alternative. I presumed that my app uses Boostrap and AngularJs, maybe some CSS from them affects mine. I didn't know exactly the problem, but I believed when all CSS is loaded into my browser, I could completely handle it. www.tom-collinson.com I tried to create an example to investigated this problem by Fiddle . Accidentally, I just changed: position: parent; to position: static; for one of parents -> the problem is solved. Look at my code: <div class="modal-body dn-placeholder-parent-positi...