π Live session summaries, topics discussed, and resources.
- Missed a session? Read the summary and check related guides
- Preparing for next session? Review prerequisites
- Want to revisit a topic? Find the session and follow the links
| Session | Date | Topic | Status | Recording |
|---|---|---|---|---|
| Session 1 | TBD | Bootcamp Kickoff & Setup | β Completed | Link |
| Session 2 | TBD | Data Types & Numeric Literals | β Completed | Link |
| Session 3 | TBD | The final Keyword & Debugging |
β Completed | Link |
| Session 4 | TBD | Collections & Generics | π Upcoming | - |
| Session 5 | TBD | Object-Oriented Programming | π Planned | - |
Date: 05.02.2026 Meetup: https://www.meetup.com/women-coding-community/events/312920485 Records:
- https://www.youtube.com/watch?v=45aXzUkRwxs
- https://www.youtube.com/watch?v=5UJYHXLgR7s
- https://drive.google.com/file/d/1tXFWKV16XDcz41JSbgWfcP3k1VS5xuhk
- β Bootcamp structure and expectations
- β How to fork and submit projects
- β JDK 21 installation and verification
- β IDE setup (IntelliJ IDEA)
- β First Gradle build
- Consistency over speed - Code regularly, even if just 30 minutes
- Community support - Use #java-bootcamp for questions
- Start simple - Basic projects are perfectly valid
Q: "Can I use JDK 25 instead of 21?" A: Yes, but ensure your Gradle config targets Java 21 for compatibility. β Added to FAQ #9
Q: "Do I need to know Spring Boot to start?" A: No! Start with core Java. Spring Boot is for intermediate projects. β Added to FAQ #13
- Participants: Fork repo and create your folder
- Participants: Install JDK 21 and verify with
java -version - Participants: Choose a project from Project Ideas
We'll dive into Java data types and numeric literals - understanding int, double, and common type conversion pitfalls.
Date: TBD Duration: 90 minutes Attendees: ~XX participants
- β
Primitive types:
int,double,long,float - β Type conversion and casting
- β Common beginner mistakes
- β When to use which type
- Keep it simple - For 90% of code,
intanddoubleare sufficient - Leading zeros are dangerous -
027is octal (base-8), not 27! - Type safety matters - Java won't let you lose data accidentally
// Type conversion examples from session
int age = 25;
double price = 19.99;
// β This fails - can't fit decimal into int
int dollars = price; // Compile error
// β
Explicit cast - you're accepting data loss
int dollars = (int) price; // dollars = 19
// β
Automatic widening - safe conversion
double value = age; // value = 25.0Q: "Why does 027 print as 23?" A: Leading zero means octal notation! Never use leading zeros unless you specifically need octal. β Added to FAQ #6
Q: "When should I use long instead of int?"
A: Timestamps, file sizes, large database IDs. For most counting, int is fine.
β Added to FAQ #5
Q: "What's the f suffix in 3.14f?"
A: Marks it as a float instead of double. You can skip this for now - double is almost always better.
β Covered in Numeric Literals Guide - Skip Section
π Understanding Numeric Literals in Java
- Focuses on the 80/20 rule for beginners
- Clearly marks what you can skip
- Includes practice exercises with solutions
- Complete practice exercises in Numeric Literals Guide
- Experiment with type conversion in your project
- Share any confusing error messages in #java-bootcamp
We'll explore the final keyword - constants, immutability, and modern Java 21 features like Records and Sealed Classes.
Date: TBD Duration: 90 minutes Attendees: ~XX participants
- β
Four uses of
final: variable, parameter, method, class - β
finalvs immutability (common misconception!) - β Modern alternatives: Records, Sealed Classes
- β Live debugging of WCC platform project
finalβ immutable - It locks the reference, not the content- Use Records for data classes - They're implicitly final and immutable
- Sealed classes > final classes - When you want controlled inheritance
- Interview topic - Understanding all four uses shows depth
From WCC Platform Debugging:
// Problem we debugged
final List<String> participants = new ArrayList<>();
participants.add("Olena"); // β
Allowed - modifying content
participants = new ArrayList<>(); // β Not allowed - changing referenceModern Java 21 Approach:
// Old way - lots of boilerplate
public class Point {
private final int x;
private final int y;
// Constructor, getters, equals, hashCode, toString...
}
// New way - Record does it all
public record Point(int x, int y) {}
// Implicitly final class, implicitly final fieldsQ: "If final List can be modified, how do I truly freeze it?"
A: Use List.of() for immutable lists:
List<String> names = List.of("Alice", "Bob");
names.add("Charlie"); // β UnsupportedOperationExceptionβ Added to FAQ #8
Q: "Should I mark all method parameters as final?" A: Optional - some teams do it for clarity, others find it verbose. Check your team's style guide. β Covered in Final Keyword Guide - Best Practices
Q: "When should I use Records vs regular classes?" A: Records for simple data carriers (DTOs, API responses, value objects). Regular classes when you need complex behavior or mutability. β Covered in Final Keyword Guide - Records Section
We debugged an issue in the WCC platform where a final variable's content was unexpectedly changed. This led to a great discussion about final vs immutability and when to use each.
Bug: Configuration values were changing mid-request
Root cause: final reference to a mutable object
Fix: Switched to a Record for true immutability
π The final Keyword in Java 21
- All four uses of
finalwith examples finalvs immutability distinction- Modern Java 21 alternatives (Records, Sealed Classes)
- Interview preparation tips
- Complete the
FinalExplorerexercise in the guide - Identify places in your project where Records could replace regular classes
- Experiment with Sealed Classes for controlled hierarchies
Collections and Generics - ArrayList, HashMap, and how to work with generic types safely.
Date: TBD Duration: 90 minutes Status: π Upcoming
- ArrayList vs Arrays
- HashMap and HashSet
- When to use which collection
- Introduction to Generics
- Common collection pitfalls
- Comfort with classes and objects
- Understanding of
final(Session 3) - Basic loop knowledge
- Review Java Collections Framework
- Think about how you're storing data in your project
Date: TBD Duration: 90 minutes Status: π Planned
- Class design principles
- Inheritance and composition
- Interfaces vs abstract classes
- Encapsulation best practices
After each session:
- Mentors: Update this document with summary, questions, and resources
- Create/update guides as needed
- Add common questions to FAQ
- Link to recordings when available
Template for new sessions:
## Session X: [Topic]
**Date:** YYYY-MM-DD
**Duration:** XX minutes
**Attendees:** ~XX participants
### Topics Covered
- β
Topic 1
- β
Topic 2
### Key Takeaways
1. Main point 1
2. Main point 2
### Questions Raised
**Q: "Question?"**
A: Answer
*β Link to FAQ or guide*
### Guides Created
π **[Guide Name](link)**
### Resources
- [Resource 1](link)
### Action Items
- [ ] Task 1
### Next Session Preview
Brief preview...This document is updated after each session. Last updated: 2026-02-19