[Effective Java](https://www.oreilly.com/library/view/effective-java-3rd/9780134686097/)

Effective Java

Since this Jolt-award winning classic was last updated in 2008, the Java programming environment has changed dramatically. Java 7 and Java 8 introduced new features and functions including, forEach() method in Iterable interface, default and static methods in Interfaces, Functional Interfaces and Lambda Expressions, Java Stream API for Bulk Data Operations on Collections, Java Time API, Collection API improvements, Concurrency API improvements, and Java IO improvements. In this new edition of Effective Java, Bloch explores new design patterns and language idioms that have been introduced since the second edition was released in 2008 shortly after Java SE6, including Lambda, streams, generics and collections, as well as selected Java 9 features. ...

Joshua Bloch
[The Go Programming Language](https://www.gopl.io/)

The Go Programming Language

The Go Programming Language is written by Google’s Go team member Alan A. A. Donovan and Brian Kernighan, co-author of The C Programming Language, which provide hundreds of interesting and practical examples of well-written Go code to help programmers learn this flexible, and fast, language. It is designed to get you started programming with Go right away and then to progress on to more advanced topics.

Alan A. A. Donovan, Brian W. Kernighan
[The Rust Programming Language](https://doc.rust-lang.org/book/second-edition/)

The Rust Programming Language

The Rust Programming Language, 2nd Edition is the official guide to Rust 2021: an open source systems programming language that will help you write faster, more reliable software. Rust provides control of low-level details along with high-level ergonomics, allowing you to improve productivity and eliminate the hassle traditionally associated with low-level languages. Klabnik and Nichols, alumni of the Rust Core Team, share their knowledge to help you get the most out of Rust’s features so that you can create robust and scalable programs. You’ll begin with basics like creating functions, choosing data types, and binding variables, then move on to more advanced concepts, such as: ...

Steve Klabnik, Carol Nichols