This repository was created to document and organize my progress in the 100 Days of Java Challenge, which started on September 8, 2024. The goal is to advance in learning the Java language, covering fundamentals, intermediate concepts, and more advanced topics throughout the journey.
Start: 08/09/2024 | Estimated End: 17/12/2024
Days 01 to 10
- General Planning: Set up a study plan and organized the repository.
- Java Setup: Installation of JDK and setup of the development environment.
- Java Documentation: Read "Overview" and "Getting Started" sections from the official Java documentation.
- Java History: Overview of Java's development and evolution.
- Course: Lessons 1 to 14 from the Java Marathon Challenge playlist.
- Primitive Data Types: Understanding
int
,long
,byte
,short
,float
,double
,boolean
, andchar
. - IDE Exploration: Basic navigation and features of IntelliJ IDEA.
- Book Addition: Started reading "Core Java Volume I - Fundamentals".
- Java Operators: Covered arithmetic, relational, logical, and assignment operators.
- Conditional Structures: Studied
if
,else if
, ternary operator, andswitch
statements. - Course: Lessons 15 to 26 from the Java Marathon Challenge playlist.
- String Manipulation: Learned the fundamentals of handling strings in Java.
- Exercises: Worked on conditional structures exercises.
- Loops: Practiced
while
,do-while
, andfor
loops, understanding their nuances and when to use each. - Flow Control: Applied the
break
andcontinue
statements to control the execution of loops. - Exercises: Reinforced knowledge with practical exercises focusing on loop structures.
- Arrays: Learned how to create, manipulate, and iterate over arrays using traditional loops and the
foreach
loop. - Multidimensional Arrays: Explored how to work with multidimensional arrays to store and access data in matrix form.
- Object-Oriented Programming (OOP): Began learning about classes and objects in Java.
- OOP Benefits: Explored how OOP helps in organizing and structuring code efficiently.
- Access Modifiers: Learned about public, private, and protected, and how they control access to class members.
- Getters and Setters: Implemented getters and setters to control access to attributes while keeping data encapsulated.
- Object References: Deepened understanding of how classes define object behavior and how object references work in Java.
- Methods: Studied how methods operate within classes and their interactions.
- Cohesion: Learned about class cohesion, which is the practice of keeping each class focused on a single responsibility to promote code organization and avoid unnecessary repetition.
- Exercises: Completed exercises on class design and object references to reinforce the theoretical concepts.
- Methods: Continued studying methods, focusing on parameters and return values.
- Project Work: Reviewed the first 10 days by implementing a project based on learned concepts.
- BankAccount Project: Created a BankAccount class to simulate bank account operations such as deposits, withdrawals, and account status management.
- OOP Concepts Application: Practiced using classes and methods, reinforcing understanding of OOP principles.
- Project Structure: Organized the project into packages for better code management.
- Completed foundational Java concepts, including data types, operators, control structures, and OOP basics.
- Gained hands-on experience through practical exercises and a project, solidifying understanding of Object-Oriented Programming.
Days 11 to 20
π Summary of Days 11 to 20:
Days 21 to 30
π Summary of Days 21 to 30:
Days 31 to 40
π Summary of Days 31 to 40:
Days 41 to 50
π Summary of Days 41 to 50:
Days 51 to 60
π Summary of Days 51 to 60:
Days 61 to 70
π Summary of Days 61 to 70:
Days 71 to 80
π Summary of Days 71 to 80:
Days 81 to 90
π Summary of Days 81 to 90:
Days 91 to 100
π Summary of Days 91 to 100:
- GitHub - For version control.
- Obsidian - For notes and organization.
- VS Code - Lightweight and extensible editor.
- IntelliJ IDEA - Main IDE for development.
- Eclipse - Additional IDE for comparison.
- NetBeans - Additional IDE for comparison.
- π 100DaysOfCode - The Official Website for the Challenge.
- π 100 Days of Code - Java Learning Platform - Comprehensive guide for the challenge.
- π "Java: The Complete Reference" by Herbert Schildt - An extensive book on Java.
- π Oracle Java Documentation - Official Oracle documentation for Java.
- π Core Java Volume I - Fundamentals - Recommended book for foundational Java knowledge.
- π Dev.java - Comprehensive resources and tools for Java developers.
- π DevDojo - Java Marathon - Reference repository for the course.
- π§π· Playlist: Java Marathon Challenge (PortuguΓͺs) - Videos for course follow-up.
- π¬π§ Playlist: Java Marathon Challenge (English) - Videos for course follow-up.
This repository reflects my commitment and progress in the 100 Days of Java Challenge. Throughout the days, I aimed to consolidate my knowledge and expand my skills in Java. Although I already had a foundation in Java from my university studies, this challenge provided me with an opportunity to deepen and update my understanding of both fundamental and advanced topics.