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

AngularJS - Build a custom validation directive for using multiple emails in textarea

AngularJS already supports the built-in validation with text input with type email. Something simple likes the following: <input name="input" ng-model="email.text" required="" type="email" /> <span class="error" ng-show="myForm.input.$error.email"> Not valid email!</span> However, I used a text area and I wanted to enter some email addresses that's saparated by a comma (,). I had a short research and it looked like AngualarJS has not supported this functionality so far. Therefore, I needed to build a custom directive that I could add my own validation functions. My validation was done only on client side, so I used the $validators object. Note that, there is the $asyncValidators object which handles asynchronous validation, such as making an $http request to the backend. This is just my implementation on my project. In order to understand that, I supposed you already had experiences with ...

Styling Sort Icons Using Font Awesome for Primefaces' Data Table

So far, Primefaces has used image sprites for displaying the sort icons. This leads to a problem if we want to make a different style for these icons; for example, I would make the icon "arrow up" more blurry at the first time the table loading because I want to highlight the icon "arrow down". I found a way that I can replace these icons with Font Awesome icons. We will use "CSS Pseudo-classes" to achieve it. The hardest thing here is that we should handle displaying icons in different cases. There is a case both "arrow up" and "arrow down" showing and other case is only one of these icons is shown. .ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s { background-image: none; margin-left: 5px; font-size: 1.1666em; position: relative; } .ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s:not(.ui-icon-triangle-1-s)::before { content: "\f106"; font-family: "FontAwesome"; position: ...

DevOps for Dummies

Everyone talks about it, but not everyone knows what it is. Why DevOps? In general, whenever an organization adopts any new technology, methodology, or approach, that adoption has to be driven by a business need. Any kind of system that need rapid delivery of innovation requires DevOps (development and operations). Why? DevOps requires mechanisms to get fast feedback from all the stakeholders in the software application that's being delivered. DevOps approaches to reduce waste and rework and to shift resources to higher-value activities. DevOps aims to deliver value (of organization or project) faster and more efficiently. DevOps Capabilities The capabilities that make up DevOps are a broad set that span the software delivery life cycle. The following picture is a reference architecture which provides a template of a proven solution by using a set of preferred methods and capabilities. My Remarks Okay, that sounds cool. What does it simply mean, again? The f...

The HelloWorld example of JSF 2.2 with Myfaces

I just did by myself create a very simple app "HelloWorld" of JSF 2.2 with a concrete implementation Myfaces that we can use it later on for our further JSF trying out. I attached the source code link at the end part. Just follow these steps below: 1. Create a Maven project in Eclipse (Kepler) with a simple Java web application archetype "maven-archetype-webapp". Maven should be the best choice for managing the dependencies , so far. JSF is a web framework that is the reason why I chose the mentioned archetype for my example. 2. Import dependencies for JSF implementation - Myfaces (v2.2.10) into file pom.xml . The following code that is easy to find from  http://mvnrepository.com/  with key words "myfaces". <dependency> <groupId>org.apache.myfaces.core</groupId> <artifactId>myfaces-api</artifactId> <version>2.2.10</version> </dependency> <dependency> <groupId>org.apache.myfaces.core<...

Strategy Design Pattern

For example, I have a program with an Animal abstract class and two sub-classes Dog and Bird. I want to add new behavior for the class Animal, this is "fly".  Now, I face two approaches to solve this issue: 1. Adding an abstract method "fly" into the class Animal. Then, I force the sub-classes should be implemented this method, something like: public abstract class Animal{ //bla bla public abstract void fly(); } public class Bird extends Animal{ //bla bla public void fly(){ System.out.println("Fly high"); } } public class Dog extends Animal{ //bla bla public void fly(){ System.out.println("Cant fly"); } } 2. Creating an interface with method "fly" inside. The same issue to an abstract class, I force the classes these implement this interface should have a method "fly" inside: public interface Flyable{ public void fly(); } public class Bird implements Flyable{ //bla bla public void fly(){ System.out.pr...