Books to read in 2018 Effective java Designing Data Intensive Applications Principles: Life and Work Algorithms Head First Design Patterns Java Concurrency in Practice