Skip to content

Curated collection of resources for learning API development in Java

Notifications You must be signed in to change notification settings

xebia-os/java-api-resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Java learning path - from basic building blocks to API development

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

Legend

  • 📹 Video talk
  • 📰 Text article
  • 📖 Book
  • 🎓 Online Course​

Basics

Courses

🎓 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

Books

📖 Head First Java - Link Great if outdated, but still a good primer

Practical concerns

  • Setup your IDE - Eclipse or IntelliJ
  • Install JDK 11 (preferred LTS version) - either from Oracle or OpenJDK or others

Topics

Basic data types and their sizes
  • int, float, long, double, char
  • arrays

📰 I Finally Understand Static vs. Dynamic Typing and You Will Too! - Link

Flow control
  • if-else* conditionals
  • for loops
  • while loops (optional)
  • methods
  • exception handling
OOP building blocks

📹 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
Java Collections classes (important)

📰 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

Test driven development (essential)

📰 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

Programming problems

  • Basic problems - Here
  • Basic design problems - Link

Intermediate

Books

📖 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)

Topics

Generics

📰 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

Lambdas and Streams

📰 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

Practical Development concerns

📰 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

Software Design principles

📖 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

Programming problems

  • Functional programming - Here

About

Curated collection of resources for learning API development in Java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published