Head First Java programming
Refactoring Improving the Design of exisiting code 2nd Edition
Programming In GO
Functional Programming In C
Moving From C To C++