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

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

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

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

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

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