# Naztech Intern Java Class Notes - 2023

## Course Overview

The curriculum of this training program is mainly divided into several - Modules. Those are:

* Variable, Loop, Function
* OOP
* Advance Java
* Spring
* Spring Boot
* Fronted Development with ExtJS

But this repository noted for only Java, Spring and Spring Boot.

## Index

### Index by Chapters

* Module 1: Introduction to Java
  * What is Java?
  * Java's key features and benefits
  * Setting up Java development environment (IDE, JDK)
  * Writing your first "Hello, World!" program
  * Understanding the basic structure of a Java program
* Module 2: Variables and Data Types
  * Variables, data types, and identifiers
  * Primitive data types (int, double, char, boolean)
  * Working with strings
  * Type conversion and casting
  * Introduction to Java's wrapper classes
* Module 3: Control Flow Statements
  * Conditional statements (if, else if, else)
  * Switch statements
  * Looping structures (for, while, do-while)
  * Break and continue statements
  * Nested loops and loop control
* Module 4: Methods and Functions
  * Defining and calling methods
  * Method parameters and return types
  * Method overloading
  * Scope and lifetime of variables
  * Introduction to recursion
* Module 5: Arrays and Collections
  * Introduction to arrays
  * Creating and manipulating arrays
  * Introduction to ArrayLists
  * Working with collections (List, Set, Map)
  * Iterating through collections using loops and iterators
* Module 6: Object-Oriented Programming Basics
  * Introduction to OOP concepts (classes, objects, inheritance, polymorphism, encapsulation, abstraction)
  * Defining classes and creating objects
  * Constructors and methods in classes
  * Access modifiers (public, private, protected)
* Module 7: Inheritance and Polymorphism
  * Inheriting classes and superclass/subclass relationships
  * Use of Interface in Java
  * Method overriding
  * Abstract classes and methods
  * Using super keyword
  * Polymorphism and dynamic binding
* Module 8: Exception Handling
  * Understanding exceptions
  * Using try-catch blocks
  * Handling multiple exceptions
  * Throwing exceptions
  * Using the finally block
* Module 9: Basic Data Structures and Algorithms
  * Introduction to basic data structure stacks and queues
  * Introduction to linked lists
  * Searching and sorting algorithms (linear search, binary search, bubble sort, selection sort)
* Module 10: File Handling
  * Reading and writing text files
  * Working with streams (FileInputStream, FileOutputStream)
  * Handling exceptions in file I/O
  * Introduction to character streams (FileReader, FileWriter)
* Module 11: Introduction to Java Enterprise Application Framework
  * Overview of Java application framework.
  * Understanding MVC applications
  * Understanding of Spring Java Application Framework
  * Understanding of Spring Boot
* Module 12: Project and Practical Applications
  * Guided project to apply learned concepts
  * Using Java in real-world scenarios (e.g., simple apps, utilities)

### Index by Week

<details>

<summary>Week 1</summary>

1. [27 Aug - Java](https://open-skill-community.gitbook.io/learn-with-us/day-01-27-aug-java)
2. [28 Aug - Java](https://open-skill-community.gitbook.io/learn-with-us/day-02-28-aug-java)
3. [29 Aug - Java](https://open-skill-community.gitbook.io/learn-with-us/day-03-29-aug-java)

</details>

<details>

<summary>Week 2</summary>

4. [03 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-04-03-sep-java)
5. [04 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-05-04-sep-java)
6. [05 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-06-05-sep-java)

</details>

<details>

<summary>Week 3</summary>

7. [12 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-07-12-sep-java)
8. [13 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-08-13-sep-java)

</details>

<details>

<summary>Week 4</summary>

9. [19 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-09-19-sep-java)
10. [20 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-10-20-sep-java)

</details>

<details>

<summary>Week 5</summary>

11. [26 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/broken-reference)
12. [27 Sep - Java](https://open-skill-community.gitbook.io/learn-with-us/day-12-27-sep-java)

</details>

<details>

<summary>Week 6</summary>

13. [03 Oct - Java](https://open-skill-community.gitbook.io/learn-with-us/day-13-03-oct-java)
14. [04 Oct - Java](https://open-skill-community.gitbook.io/learn-with-us/day-14-04-oct-java)

</details>

<details>

<summary>Week 7</summary>

15. [10 Oct - Java](https://open-skill-community.gitbook.io/learn-with-us/day-15-10-oct-java)
16. [11 Oct - Java](https://open-skill-community.gitbook.io/learn-with-us/day-16-11-oct-java)

</details>

<details>

<summary>Week 8</summary>

17. [17 Oct - Java](https://open-skill-community.gitbook.io/learn-with-us/broken-reference)
18. [18 Oct - Java](https://open-skill-community.gitbook.io/learn-with-us/broken-reference)

</details>

<details>

<summary>Week 9</summary>

19. [24 Oct - Java](https://open-skill-community.gitbook.io/learn-with-us/broken-reference)

</details>

<details>

<summary>Week 10</summary>

No classes

</details>

<details>

<summary>Week 11</summary>

20. [07 Nov - Java](https://open-skill-community.gitbook.io/learn-with-us/day-20-07-nov-java)

</details>

<details>

<summary>Week 12</summary>

21. \[14 Nov - Java]
22. \[15 Nov - Java]

</details>

## Resources

Websites:

* [Java Tutorial - Javatpoint](https://www.javatpoint.com/java-tutorial)
* [Java Tutorial - Tutorials Point](https://www.tutorialspoint.com/java/index.htm)

Books:

* "The Complete Reference of Java" by *Herbert Shield*

For more learn about other language, framework and etc. etc. Please, [click here](https://jobayerhossain-dev.gitbook.io/programming-resources/)

## Trainers

* Md. Mominul Islam (Digital Marketing Manager at *naztech Inc, Dhaka, Bangladesh*)
* Practical: Md. Makhsodur Rahman (Trainee Software Engineer at *naztech Inc, Dhaka, Bangladesh*)
