Curated collection of resources for learning API development in Java
This list assumes a familiarity with basic programming constructs. It is opinionated towards a practical subset of Java language.
Some inspiration - The 25 greatest Java apps ever written Link
- 📹 Video talk
- 📰 Text article
- 📖 Book
- 🎓 Online Course
🎓 Java Programming Masterclass for Software Developers - Link
🎓 Java In-Depth: Become a Complete Java Engineer! Link
🎓 Java Programming for Complete Beginners - Java 16 Link
🎓 The Complete Java Certification Course Link
📖 Head First Java - Link Great if outdated, but still a good primer
- Setup your IDE - Eclipse or IntelliJ
- Install JDK 11 (preferred LTS version) - either from Oracle or OpenJDK or others
- int, float, long, double, char
- arrays
📰 I Finally Understand Static vs. Dynamic Typing and You Will Too! - Link
- if-else* conditionals
- for loops
- while loops (optional)
- methods
- exception handling
📹 Computer programming: What is object-oriented language? - Link
-
Classes
-
constructors
-
access modifiers
-
Interfaces and Abstract class
-
Inheritance
-
Polymorphism
-
Nested classes are useful but can be deferred until needed
📰 How and why to override the equals method in Java - Link
- Wrapper classes and auto-boxing/unboxing
📰 Big O Cheatsheet - Link
- List, Set, Map
- Arrays utility class
- Collections utility class
- Iterators
- Comparable and Comparator
Oracle Java Tutorial Trail: Collections - Link
Outline of the Collections Framework - Link Get comfortable reading javadoc for the major classes
Java Collections API Design FAQ - Link
📰 Extreme programming - Link
📰 5 step method to make test-driven development and unit testing easy - Link
📰 Introduction to Test Driven Development (TDD) - Link
📰 Unit Tests Are FIRST - Link
📹 The Clean Code Talks -- Unit Testing - Link
📹 Test-driven development: Write better code in less time - Link
📖 Effective Java - Link
📖 Clean Code Summary - Link
📖 Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to OOA&D - Link (This book has some good small examples of OOP design problems)
📰 Java Generics FAQs by Angelika Langer - Link (This is densely theoretical and can be deferred for later)
📖 Effective Java: Chapter 5: Generics
📹 Java Generics: Past, Present and Future by Richard Warburton/Raoul-Gabriel Urma - Link
📰 Java 8: The Missing Tutorial - Link
📹 Get a Taste of Lambdas and Get Addicted to Streams - Link
📹 The Power and Practicality of Immutability - Link
📹 Refactoring to Java 8 - Link
📹 Twelve Ways to Make Code Suck Less - Link
📹 Optional - The Mother of All Bikesheds - Link
📰 Git: The Missing Tutorial - Link
📰 Naming a Package - Link
📰 Package by feature, not layer - Link
📰 Package by type, -by layer, -by feature vs “Package by layered feature” - Link
📹 42 IntelliJ IDEA Tips and Tricks - Link
📹 Be more productive with IntelliJ Idea - Link
📹 Code Refactoring - Link
📖 Effective Java Summary - Link
📹 Core Design Principles for Software Developers - Link
📖 Effective Java: Chapter 10: Exceptions
📰Fluent Interface - Link
📹 SOLID Principles - Link
📹 Object-oriented Design of a Shopping Cart with TDD - Link
- Functional programming - Here