Alibaba is not only the world’s largest retail company in terms of gross merchandise volume, but also a fast growing technology company which innovates in eCommerce, cloud computing, logistics, financial technology and digital entertainment.
As a technology-driven company, Alibaba is home to high-level experts in fields relating to software engineering, artificial intelligence and a wide range of technological areas.
In this article, some of the brightest tech talents at Alibaba share the books that helped them get where they are today.
1. Effective Software Testing
Recommended by: Chen Qin陈琴(霜波), Senior Staff Engineer in Test
Why you should read it: This book includes an in-depth study on automation and continuous integration programs, something that many software testing books lack. It recommends that testing should be a part of each phase of the software development life cycle, including the requirements, design, and development stages. The book also contains experiences and insights on quality management that may be useful to all people working in technical fields.
2. The Pragmatic Programmer. From Journeyman to Master
Recommended by: Ding Yu丁宇(叔同), Senior Staff Engineer
Why you should read it: This book helps programmers to continue to learn and develop and is a handbook for career advancement. A wide range of subjects are covered, from basic programming principles and career planning to fighting software rot and avoiding duplicated knowledge. Written in a simple style but covering complex topics, this is a book that can benefit any programmer throughout their career.
3. Spoken Language Processing: A Guide to Theory, Algorithm and System Development
Recommended by: Yan Zhijie鄢志杰(智捷), Senior Staff Algorithm Engineer
Why you should read it: Today, new knowledge is easy to obtain. Many AI algorithms can be accessed through open source tools and databases. But there is also much to be said for older programming knowledge that still has relevance today. This book is a study of speech and language aimed at beginners, and was first published in 2001. It introduces basic theory, speech recognition, speech synthesis, semantic understanding, and dialogue systems in a simple, easy-to-understand, and systematic format. This allows the readers to understand the basics of the spoken language dialogue system. Reading this book provides a launchpad for programmers to improve their general understanding and to discover which areas of knowledge they would like to develop further.
4. Introduction to Machine Learning
Recommended by: Deng Yuming邓玉明(粤谦), Senior Staff Engineer
Why you should read it: A solid introduction to machine learning, this book is suitable for senior undergraduates and postgraduates. It covers most areas of machine learning knowledge, including unsupervised learning, parametric and non-parametric methods, linear discriminant analysis, decision trees, probability map models, Bayesian estimation, multilayer perceptron networks, SVMs and nuclear machines, and reinforcement learning. There is plenty of information on all the subjects covered and algorithm principles are explained clearly. Relevant pseudocode, accompanied by coursework, is supplied to support research. Machine learning enthusiasts can use this book to deepen their understanding of algorithmic principles and broaden their theoretical knowledge.
5. Reinforcement Learning: An Introduction
Recommended by: Zeng Anxiang曾安祥(仁重), Senior Staff Algorithm Engineer
Why you should read it: A classic in the field of reinforcement learning, this is not only a must-read for beginners looking to gain a solid foundation in the field, but also a useful book for researchers hoping to break new ground. Richard S. Sutton and Andrew G. Barto, the book’s authors, are top scholars in reinforcement learning and have been in the field for more than 30 years. This book details the development history, classic methods, and practical applications of reinforcement learning. The first edition of the book was published in 1998 and the second edition is due for completion in 2018. The second edition retains the overall structure of the first edition and provides further analysis of some details (for example, it explains the origin of the classic Tabular Actor-Critic method through the derivation of the strategy gradient). It also includes updates on important reinforcement learning advances since the first edition was published.
6. Programming Rust: Fast, Safe Systems Development
Recommended by: Qian Zhengping钱正平(布民), Senior Staff Engineer
Why you should read it: As Internet and mobile connectivity increase worldwide, large-scale distributed systems are becoming increasingly important. Well-constructed systems can create competitive commercial advantages. System programmers that can create safe, stable, and high performance concurrent systems under resource constraint are in demand.
Rust is an emerging system programming language which is designed for security and concurrency and which provides high-level abstraction and C/C++ performance. This book shows how Rust can be used to find the right balance between performance and safety.
7. Machine Learning: A Probabilistic Perspective
Recommended by: Yang Hongxia杨红霞(鸿侠), Senior Staff Algorithm Engineer
Why you should read it: Automated data analysis methods are essential for modern big data companies. As a field, machine learning can provide solutions that not only automatically detect data patterns, but also use learned patterns to predict uncovered data.
This book uses a unified probabilistic approach to provide a thorough, independent introduction to the machine learning field.
Related disciplines, such as probability, optimization, and linear algebra, are covered, and the latest developments in machine learning are explored in detail. These developments include conditional random fields, L1 regularization, deep learning, and other popular research directions. Pseudocode for corresponding algorithms is provided. Examples are drawn from diverse fields including biology, text processing, computer vision, and robotics.
8. Architecture of a Database System
Recommended by: He Dengcheng何登成(圭多), Senior Staff Engineer
Why you should read it: Co-authored by Michael Stonebraker, a Turing Award winner, this book was published in 2007. The book is not long (119 pages), but the expertise of the authors shines through. The book dissects the overall architecture of a mature database system and core database modules, and also touches on the design principles and implementation of SQL and optimizers, memory and storage management, transactions, and concurrency control. To gain a thorough, all-round understanding of database systems, this book is the first choice.