Must Read Resources for Java Developers

Legends

  • 📹 — Video talk
  • 📰 — Text article
  • 📖 — Book​

Algorithms and Data Structure

  1. 📰 Big O Cheatsheet - Link

Java

  1. 📹 Computer programming: What is object-oriented language? - Link
  2. 📰 I Finally Understand Static vs. Dynamic Typing and You Will Too! - Link
  3. 📰 Naming a Package - Link
  4. 📹 42 IntelliJ IDEA Tips and Tricks - Link
  5. 📰 How and why to override the equals method in Java - Link
  6. 📰 Java Generics FAQs by Angelika Langer - Link
  7. 📖 Effective Java: Chapter 5: Generics
  8. 📹 Java Generics: Past, Present and Future by Richard Warburton/Raoul-Gabriel Urma - Link
  9. 📖 Effective Java: Chapter 10: Exceptions
  10. 📖 Effective Java Summary - Link
  11. 📖 Clean Code Summary - Link
  12. 📹 Get a Taste of Lambdas and Get Addicted to Streams - Link
  13. 📰 Java 8: The Missing Tutorial - Link
  14. 📰 Asynchronous programming with Java 8 - Link
  15. 📰 A Real-world Introduction to Finding classes in Object-oriented Programming Languages - Link
  16. 📰 Learning Generics by Understanding signature of Collections.copy() method - Link

TDD and Automation Testing

  1. 📰 Introduction to Test Driven Development (TDD) - Link

  2. 📰 Unit Tests Are FIRST - Link

  3. 📹 The Clean Code Talks -- Unit Testing - Link

  4. 📹 Test-driven development: Write better code in less time - Link

  5. 📰 Mocks Aren't Stubs - Link

  6. 📰 5 step method to make test-driven development and unit testing easy - Link

  7. 📰 Unit Testing — AAA pattern - Link

Software Design

  1. 📹 Core Design Principles for Software Developers - Link
  2. 📹 The Power and Practicality of Immutability - Link
  3. 📹 Code Refactoring - Link
  4. 📹 SOLID Principles - Link
  5. 📹 Design Patterns - Link
  6. 📰Fluent Interface - Link
  7. 📰 Fluent Builder Pattern with a real-world example - Link

Database

  1. 📰 Database Isolation Levels And Their Effects On Performance And Scalability - Link
  2. 📰 CAP Theorem: Revisited - Link
  3. 📰 ACID vs. BASE Explained - Link
  4. 📰 Introduction to Database Design - Link
  5. 📰 A beginners guide to SQL - Link
  6. 📰 How Sharding Works - Link

REST API Design

  1. 📹 APIs for Beginners - How to use an API - Link
  2. 📰 Best Practices for Designing a Pragmatic RESTful API - Link
  3. 📰 REST API Error Codes 101 - Link
  4. 📰 REST with Spring Tutorial - Link

Spring Framework

  1. 📰 Spring Tutorial - Link​
  2. 📰 Spring Persistence Tutorial - Link
  3. 📰 Security with Spring - Link

Scalability

  1. 📰 Scale-up or Scale-out, What it is and why you should care - Link
  2. 📰 Best Practices For Horizontal Application Scaling - Link

Architecture

  1. 📰 Monoliths and Microservices - Link
  2. 📰 12 Factor Applications - Link
  3. 📰 Three-tier architecture - Link
  4. 📰 What is DNS? - Link
  5. 📰 Content delivery network - Link
  6. 📰 A Minimalistic Guide to Building and Deploying Monolithic Spring Boot React Applications - Link

DevOps and Cloud

  1. 📰 A general introduction to build tools - Link
  2. 📰 Continuous Integration - Link
  3. 📹 Docker for Developers - Link
  4. 📹 Docker Tutorial for Beginners - A Full DevOps Course on How to Run Applications in Containers - Link
  5. 📹 DevOps Introduction - Link
  6. 📰 Git: The Missing Tutorial - Link
  7. 📹 AWS Concepts - Link
  8. 📰 The Kubernetes Guide For Java Developers: Learn Kubernetes by deploying a real-world application on it - Link
  9. 📰 Continuous Integration for Junior Software Engineers - Link

Agile Software Development

  1. 📰 Extreme programming - Link