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

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...

4 Remarkable Notes for JSF Apps Using HTML5

In the previous post , I've already shared with you how my team consults clients by using a HTML prototype. This post is about the used technologies for reusing the provided HTML template and communicating with backend. What is the issue when using HTML elements with Primefaces components? Primefaces is a great extension for developing JSF web apps. However, it is really frustrating in case we have to make it work with an existing HTML template. Why? - Primefaces has its own theme for styling. - Primefaces changes the HTML structure. Therefore, that would be a huge effort to use the Primefaces' components to replicate the elements of the HTML template; especially it is impossible for images drawing by " canvas " tag. That requires us to find a better approach. Since Java EE 7 (introducing JSF 2.2 included), it supports to use HTML5 elements . The idea is that JSF components don't effect the style and HTML structure, so we can easily reuse the provided HTM...

Coding Exercise, Episode 1

I have received the following exercise from an interviewer, he didn't give the name of the problem. Honestly, I have no idea how to solve this problem even I have tried to read it three times before. Since I used to be a person who always tells myself "I am not the one good at algorithms", but giving up something too soon which I feel that I didn't spend enough effort to overcome is not my way. Then, I have sticked on it for 24 hours. According to the given image on the problem, I tried to get more clues by searching. Thanks to Google, I found a similar problem on Hackerrank (attached link below). My target here was trying my best to just understand the problem and was trying to solve it accordingly by the Editorial on Hackerrank. Due to this circumstance, it turns me to love solving algorithms from now on (laugh). Check it out! Problem You are given a very organized square of size N (1-based index) and a list of S commands The i th command will follow t...

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: ...

Junit - Test fails on French or German string assertion

In my previous post about building a regex to check a text without special characters but allow German and French . I met a problem that the unit test works fine on my machine using Eclipse, but it was fail when running on Jenkins' build job. Here is my test: @Test public void shouldAllowFrenchAndGermanCharacters(){ String source = "ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ"; assertFalse(SpecialCharactersUtils.isExistSpecialCharater(source)); } Production code: public static boolean isExistNotAllowedCharacters(String source){ Pattern regex = Pattern.compile("^[a-zA-Z_0-9_ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ]*$"); Matcher matcher = regex.matcher(source); return !matcher.matches(); } The result likes the following: Failed tests: SpecialCharactersUtilsTest.shouldAllowFrenchAndGermanCharacters:32 null A guy from stackoverflow.com says: "This is probably due to the default encoding used for your Java source files. The ö in the string literal in the J...