Skip to content

Daily Java practice from beginner to developer level, focusing on clean code, data structures and algorithms, and backend fundamentals.

License

Notifications You must be signed in to change notification settings

farihaNaqvi/java-beginner-to-developer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java Beginner to Developer

This repository documents my daily journey from Java basics to developer-level problem solving and system thinking.

Goals

  • Build strong fundamentals
  • Practice daily coding
  • Prepare for backend & full-stack interviews

Structure

  • Day-wise problems
  • Clean and readable code
  • Interview-oriented solutions

Day 1 – Java Basics & Setup

Topics covered:

  • How Java works (JVM, bytecode, platform independence)
  • Java program structure
  • main method as JVM entry point
  • Printing output using System.out.println
  • Variables and basic data types

Code location:

  • src/day01_basics/

Day 2 – Control Flow & Decision Making

Topics covered:

  • if / else conditions
  • Logical operators (AND, OR)
  • switch statement
  • Real-world business logic examples

Code location:

  • src/day02_control_flow/

Day 3 – Loops & Iteration

Topics covered:

  • for loop
  • while loop
  • do-while loop
  • Loop-based logic problems

Code location:

  • src/day03_loops/

Day 4 – Methods & Code Reusability

Topics covered:

  • Creating custom methods
  • Parameters and return types
  • Writing reusable business logic

Code location:

  • src/day04_methods/

Day 5 – Arrays & Iteration

Topics covered:

  • Array declaration and initialization
  • Accessing array elements
  • Iterating through arrays
  • Multi-dimensional arrays
  • Common array operations

Code location:

  • src/day05_arrays/

Day 6 – OOP Basics (Classes & Objects)

Topics covered:

  • Class and object creation
  • Constructors
  • Instance variables
  • Basic object behavior modeling

Code location:

  • src/day06_oop_basics/

Day 7 – Encapsulation & Access Modifiers

Topics covered:

  • Data hiding using private variables
  • Getters and setters
  • Controlled access to object state
  • Access modifiers (private, public)

Code location:

  • src/day07_encapsulation/

Day 8 – Inheritance

Topics covered:

  • extends keyword
  • super constructor
  • Method overriding
  • Code reuse through class hierarchy

Code location:

  • src/day08_inheritance/

Day 9 – Polymorphism

Topics covered:

  • Method overloading
  • Method overriding with polymorphic behavior
  • Runtime polymorphism using interfaces
  • Upcasting and downcasting
  • Polymorphic method calls

Code location:

  • src/day09_polymorphism/

Day 10 – Abstraction

Topics covered:

  • Abstract classes and abstract methods
  • Difference between abstraction and inheritance
  • Method overriding in abstract classes
  • Runtime polymorphism using abstract classes
  • Concrete methods inside abstract classes
  • Real-world abstraction example (Bank system)

Code location:

  • src/day10_abstraction/

Day 11 – Interfaces

Topics covered:

  • Introduction to interfaces
  • Implementing interfaces using implements
  • Runtime polymorphism with interfaces
  • Multiple inheritance using interfaces
  • Real-world payment system example

Code location:

  • src/day11_interfaces/

Day 12 – Exception Handling

Topics covered:

  • try, catch, and finally blocks
  • Handling multiple exceptions
  • Understanding exception hierarchy
  • Creating custom exceptions
  • Using throw and throws
  • Real-world bank withdrawal example

Code location:

  • src/day12_exceptionhandling/

Day 13 – Collections Framework (Part 1)

Topics covered:

  • Introduction to Java Collections Framework
  • Working with ArrayList
  • Working with LinkedList
  • Using HashSet for unique elements
  • Using HashMap for key-value storage
  • Storing custom objects in collections

Code location:

  • src/day13_collections/

Day 14 – Collections Framework (Advanced)

Topics covered:

  • Using Iterator for traversal
  • Implementing Comparable for natural sorting
  • Using Comparator for custom sorting
  • Sorting collections with Collections.sort()
  • Working with TreeSet for automatic sorting

Code location:

  • src/day14_collections_advanced/

Day 15 – File Handling (I/O)

Topics covered:

  • Creating files using File class
  • Writing data using FileWriter
  • Reading data using FileReader
  • BufferedReader and BufferedWriter usage
  • Reading files line by line
  • Appending logs to a file

Code location:

-src/day15_filehandling/