Learn for Full Stack Web Dev for Free โก
๐บHTML-> w3schools
๐บCSS -> freeCodeCamp
๐บJavascript -> @javascript_courses
๐บNodeJS -> freeCodeCamp
๐บExpressJS -> MDN
๐บMongoDB -> MDB University
๐บREST APIs -> Postman
๐บGit -> learnGitBranching
๐บDeployment -> Firebase
๐บHTML-> w3schools
๐บCSS -> freeCodeCamp
๐บJavascript -> @javascript_courses
๐บNodeJS -> freeCodeCamp
๐บExpressJS -> MDN
๐บMongoDB -> MDB University
๐บREST APIs -> Postman
๐บGit -> learnGitBranching
๐บDeployment -> Firebase
๐2
Java is a popular programming language that is widely used for developing various types of applications, including web applications, mobile apps, desktop applications, and enterprise systems. Here are some key concepts to understand the basics of Java:
1. Object-Oriented Programming (OOP): Java is an object-oriented programming language, which means it focuses on creating objects that contain both data and methods to operate on that data. Key principles of OOP in Java include encapsulation, inheritance, and polymorphism.
2. Classes and Objects: In Java, a class is a blueprint for creating objects. An object is an instance of a class that represents a real-world entity. Classes define the properties (attributes) and behaviors (methods) of objects.
3. Variables and Data Types: Java supports various data types, including primitive data types (e.g., int, double, boolean) and reference data types (e.g., String, arrays). Variables are used to store data values in memory.
4. Methods: Methods in Java are functions defined within a class to perform specific tasks. They encapsulate behavior and can accept parameters and return values.
5. Control Flow Statements: Java provides control flow statements such as if-else, switch-case, loops (for, while, do-while), and break/continue statements to control the flow of program execution.
6. Inheritance: Inheritance is a key feature of OOP that allows a class (subclass) to inherit properties and behaviors from another class (superclass). It promotes code reusability and establishes an "is-a" relationship between classes.
7. Polymorphism: Polymorphism allows objects of different classes to be treated as objects of a common superclass. It enables methods to be overridden in subclasses to provide different implementations.
8. Abstraction: Abstraction involves hiding the complex implementation details and showing only the essential features of an object. Abstract classes and interfaces are used to achieve abstraction in Java.
9. Encapsulation: Encapsulation is the process of bundling data (attributes) and methods that operate on that data within a class. It helps in data hiding and protects the internal state of an object.
10. Exception Handling: Java provides mechanisms for handling exceptions that occur during program execution. The try-catch-finally blocks are used to handle exceptions gracefully and prevent program crashes.
Understanding these basic concepts of Java will help you get started with programming in Java. Practice writing Java programs, exploring different features of the language, and building small projects to strengthen your Java skills.
1. Object-Oriented Programming (OOP): Java is an object-oriented programming language, which means it focuses on creating objects that contain both data and methods to operate on that data. Key principles of OOP in Java include encapsulation, inheritance, and polymorphism.
2. Classes and Objects: In Java, a class is a blueprint for creating objects. An object is an instance of a class that represents a real-world entity. Classes define the properties (attributes) and behaviors (methods) of objects.
3. Variables and Data Types: Java supports various data types, including primitive data types (e.g., int, double, boolean) and reference data types (e.g., String, arrays). Variables are used to store data values in memory.
4. Methods: Methods in Java are functions defined within a class to perform specific tasks. They encapsulate behavior and can accept parameters and return values.
5. Control Flow Statements: Java provides control flow statements such as if-else, switch-case, loops (for, while, do-while), and break/continue statements to control the flow of program execution.
6. Inheritance: Inheritance is a key feature of OOP that allows a class (subclass) to inherit properties and behaviors from another class (superclass). It promotes code reusability and establishes an "is-a" relationship between classes.
7. Polymorphism: Polymorphism allows objects of different classes to be treated as objects of a common superclass. It enables methods to be overridden in subclasses to provide different implementations.
8. Abstraction: Abstraction involves hiding the complex implementation details and showing only the essential features of an object. Abstract classes and interfaces are used to achieve abstraction in Java.
9. Encapsulation: Encapsulation is the process of bundling data (attributes) and methods that operate on that data within a class. It helps in data hiding and protects the internal state of an object.
10. Exception Handling: Java provides mechanisms for handling exceptions that occur during program execution. The try-catch-finally blocks are used to handle exceptions gracefully and prevent program crashes.
Understanding these basic concepts of Java will help you get started with programming in Java. Practice writing Java programs, exploring different features of the language, and building small projects to strengthen your Java skills.
๐9
Why Learn Java?
1 - Beginner-Friendly :
Easy to learn and understand for coding newcomers.
2 - Versatile :
Used for web, mobile, desktop apps, and even games.
3 - Platform-Independent :
โWrite once, run anywhereโ with Java Virtual Machine (JVM).
4 - Highly Secure :
Perfect for banking and enterprise-level applications.
5 - Strong Job Market :
Java developers are always in demand worldwide.
6 - Powerful Community :
Tons of resources, libraries, and frameworks available.
7 - Scalable :
Ideal for building apps that grow with user demand.
Join our WhatsApp channel for the free resources: https://whatsapp.com/channel/0029VamdH5mHAdNMHMSBwg1s
1 - Beginner-Friendly :
Easy to learn and understand for coding newcomers.
2 - Versatile :
Used for web, mobile, desktop apps, and even games.
3 - Platform-Independent :
โWrite once, run anywhereโ with Java Virtual Machine (JVM).
4 - Highly Secure :
Perfect for banking and enterprise-level applications.
5 - Strong Job Market :
Java developers are always in demand worldwide.
6 - Powerful Community :
Tons of resources, libraries, and frameworks available.
7 - Scalable :
Ideal for building apps that grow with user demand.
Join our WhatsApp channel for the free resources: https://whatsapp.com/channel/0029VamdH5mHAdNMHMSBwg1s
๐5
2 Month Roadmap to learn Java and Spring from basics to advanced
Week 1-2: Core Java
- Basic Syntax: Data types, operators, loops (for, while, do-while)
- OOP Concepts: Classes, objects, inheritance, polymorphism, encapsulation, abstraction
- Collections Framework: List, Set, Map, Queue, Iterator, etc.
- Exception Handling: Try-catch, custom exceptions, multi-catch
- File I/O: Reading/writing files using java.io and java.nio
- Java 8+ Features: Lambdas, Streams, Optional, Functional Interfaces
- Multithreading: Threads, Runnable, ExecutorService, Future, and basic synchronization
Week 3-4: Advanced Java & JDBC
- JVM Internals: ClassLoader, JIT, memory management, garbage collection
- Generics: Usage and wildcards
- Design Patterns: Singleton, Factory, Strategy, Observer, Dependency Injection (Intro)
- JDBC: Connecting with databases (CRUD operations), PreparedStatement, Connection pooling
Week 5-6: Spring Framework (Basics)
- Spring Core
- Dependency Injection (DI) and Inversion of Control (IoC)
- Beans, Scopes, and Bean Life Cycle
- Autowiring and Spring Annotations
- Spring AOP: Aspect-Oriented Programming fundamentals
- Spring Data JPA: Basic CRUD operations with JPA
- Entities, Repositories, and Custom Queries
Week 7: Spring Boot (Basics)
- Spring Boot Fundamentals: Understanding the Spring Boot architecture
- REST API creation
- Spring Boot Annotations (@RestController, @RequestMapping, etc.)
- Running a Spring Boot application
- Spring Boot Auto Configuration: Application properties and profiles
- Spring Boot with Database: Integrate Spring Boot with MySQL using Spring Data JPA
Week 8: Spring Boot (Advanced)
- Security: Introduction to Spring Security (Basic Authentication)
- Advanced Spring Boot Features: Exception handling (@ControllerAdvice)
- Logging with Spring Boot
- Pagination and Sorting
- Testing: Write unit tests using JUnit and Mockito in Spring Boot
Best Java Resources: https://t.me/Java_Programming_Notes
Like for more โค๏ธ
Week 1-2: Core Java
- Basic Syntax: Data types, operators, loops (for, while, do-while)
- OOP Concepts: Classes, objects, inheritance, polymorphism, encapsulation, abstraction
- Collections Framework: List, Set, Map, Queue, Iterator, etc.
- Exception Handling: Try-catch, custom exceptions, multi-catch
- File I/O: Reading/writing files using java.io and java.nio
- Java 8+ Features: Lambdas, Streams, Optional, Functional Interfaces
- Multithreading: Threads, Runnable, ExecutorService, Future, and basic synchronization
Week 3-4: Advanced Java & JDBC
- JVM Internals: ClassLoader, JIT, memory management, garbage collection
- Generics: Usage and wildcards
- Design Patterns: Singleton, Factory, Strategy, Observer, Dependency Injection (Intro)
- JDBC: Connecting with databases (CRUD operations), PreparedStatement, Connection pooling
Week 5-6: Spring Framework (Basics)
- Spring Core
- Dependency Injection (DI) and Inversion of Control (IoC)
- Beans, Scopes, and Bean Life Cycle
- Autowiring and Spring Annotations
- Spring AOP: Aspect-Oriented Programming fundamentals
- Spring Data JPA: Basic CRUD operations with JPA
- Entities, Repositories, and Custom Queries
Week 7: Spring Boot (Basics)
- Spring Boot Fundamentals: Understanding the Spring Boot architecture
- REST API creation
- Spring Boot Annotations (@RestController, @RequestMapping, etc.)
- Running a Spring Boot application
- Spring Boot Auto Configuration: Application properties and profiles
- Spring Boot with Database: Integrate Spring Boot with MySQL using Spring Data JPA
Week 8: Spring Boot (Advanced)
- Security: Introduction to Spring Security (Basic Authentication)
- Advanced Spring Boot Features: Exception handling (@ControllerAdvice)
- Logging with Spring Boot
- Pagination and Sorting
- Testing: Write unit tests using JUnit and Mockito in Spring Boot
Best Java Resources: https://t.me/Java_Programming_Notes
Like for more โค๏ธ
โค4๐3๐ฅ2
Exceptions_in_Java_Basics,_advanced_concepts,_and_real_API_examples.pdf
1.1 MB
Exceptions in Java
Nik Lumi, 2022
Nik Lumi, 2022
๐6โค2
How is ๐๐/๐๐ ๐ฝ๐ฟ๐ผ๐ฐ๐ฒ๐๐ ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐ณ๐ผ๐ฟ ๐ ๐ฎ๐ฐ๐ต๐ถ๐ป๐ฒ ๐๐ฒ๐ฎ๐ฟ๐ป๐ถ๐ป๐ด ๐ฃ๐ฟ๐ผ๐ท๐ฒ๐ฐ๐๐ compared to ๐ฅ๐ฒ๐ด๐๐น๐ฎ๐ฟ ๐๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ?
The important difference that the Machine Learning aspect of the projects brings to the CI/CD process is the treatment of the Machine Learning Training pipeline as a first class citizen of the software world.
โก๏ธ CI/CD pipeline is a separate entity from Machine Learning Training pipeline. There are frameworks and tools that provide capabilities specific to Machine Learning pipelining needs (e.g. KubeFlow Pipelines, Sagemaker Pipelines etc.).
โก๏ธ ML Training pipeline is an artifact produced by Machine Learning project and should be treated in the CI/CD pipelines as such.
What does it mean? Letโs take a closer look:
Regular CI/CD pipelines will usually be composed of at-least three main steps. These are:
๐ฆ๐๐ฒ๐ฝ ๐ญ: Unit Tests - you test your code so that the functions and methods produce desired results for a set of predefined inputs.
๐ฆ๐๐ฒ๐ฝ ๐ฎ: Integration Tests - you test specific pieces of the code for ability to integrate with systems outside the boundaries of your code (e.g. databases) and between the pieces of the code itself.
๐ฆ๐๐ฒ๐ฝ ๐ฏ: Delivery - you deliver the produced artifact to a pre-prod or prod environment depending on which stage of GitFlow you are in.
What does it look like when ML Training pipelines are involved?
๐ฆ๐๐ฒ๐ฝ ๐ญ: Unit Tests - in mature MLOps setup the steps in ML Training pipeline should be contained in their own environments and Unit Testable separately as these are just pieces of code composed of methods and functions.
๐ฆ๐๐ฒ๐ฝ ๐ฎ: Integration Tests - you test if ML Training pipeline can successfully integrate with outside systems, this includes connecting to a Feature Store and extracting data from it, ability to hand over the ML Model artifact to the Model Registry, ability to log metadata to ML Metadata Store etc. This CI/CD step also includes testing the integration between each of the Machine Learning Training pipeline steps, e.g. does it succeed in passing validation data from training step to evaluation step.
๐ฆ๐๐ฒ๐ฝ ๐ฏ: Delivery - the pipeline is delivered to a pre-prod or prod environment depending on which stage of GitFlow you are in. If it is a production environment, the pipeline is ready to be used for Continuous Training. You can trigger the training or retraining of your ML Model ad-hoc, periodically or if the deployed model starts showing signs of Feature/Concept Drift.
The important difference that the Machine Learning aspect of the projects brings to the CI/CD process is the treatment of the Machine Learning Training pipeline as a first class citizen of the software world.
โก๏ธ CI/CD pipeline is a separate entity from Machine Learning Training pipeline. There are frameworks and tools that provide capabilities specific to Machine Learning pipelining needs (e.g. KubeFlow Pipelines, Sagemaker Pipelines etc.).
โก๏ธ ML Training pipeline is an artifact produced by Machine Learning project and should be treated in the CI/CD pipelines as such.
What does it mean? Letโs take a closer look:
Regular CI/CD pipelines will usually be composed of at-least three main steps. These are:
๐ฆ๐๐ฒ๐ฝ ๐ญ: Unit Tests - you test your code so that the functions and methods produce desired results for a set of predefined inputs.
๐ฆ๐๐ฒ๐ฝ ๐ฎ: Integration Tests - you test specific pieces of the code for ability to integrate with systems outside the boundaries of your code (e.g. databases) and between the pieces of the code itself.
๐ฆ๐๐ฒ๐ฝ ๐ฏ: Delivery - you deliver the produced artifact to a pre-prod or prod environment depending on which stage of GitFlow you are in.
What does it look like when ML Training pipelines are involved?
๐ฆ๐๐ฒ๐ฝ ๐ญ: Unit Tests - in mature MLOps setup the steps in ML Training pipeline should be contained in their own environments and Unit Testable separately as these are just pieces of code composed of methods and functions.
๐ฆ๐๐ฒ๐ฝ ๐ฎ: Integration Tests - you test if ML Training pipeline can successfully integrate with outside systems, this includes connecting to a Feature Store and extracting data from it, ability to hand over the ML Model artifact to the Model Registry, ability to log metadata to ML Metadata Store etc. This CI/CD step also includes testing the integration between each of the Machine Learning Training pipeline steps, e.g. does it succeed in passing validation data from training step to evaluation step.
๐ฆ๐๐ฒ๐ฝ ๐ฏ: Delivery - the pipeline is delivered to a pre-prod or prod environment depending on which stage of GitFlow you are in. If it is a production environment, the pipeline is ready to be used for Continuous Training. You can trigger the training or retraining of your ML Model ad-hoc, periodically or if the deployed model starts showing signs of Feature/Concept Drift.
๐2
Leetcode patterns you should definitely checkout to Learn DSA(Java) from scratch
1๏ธโฃ Arrays: Data structures, such as arrays, store elements in contiguous memory locations. They are versatile and useful for a wide variety of purposes.
LeetCode Problems:
โข Search in Rotated Sorted Array (Problem #33)
โข Product of Array Except Self (Problem #238)
โข Find the Missing Number (Problem #268)
2๏ธโฃTwo Pointers: In Two Pointers, two pointers are maintained in the collection and can be manipulated to solve a problem efficiently.
LeetCode problems:
โข Trapping Rain Water (Problem #42)
โข Longest Substring Without Repeating Characters (Problem #3)
โข Squares of a Sorted Array (Problem #977)
3๏ธโฃIn-place Linked List Traversal: As an explanation, in-place traversal is a technique for modifying linked list nodes without using extra space.
LeetCode Problems:
โข Remove Nth Node From End of List (Problem #19)
โข Reorder List (Problem #143)
4๏ธโฃFast & Slow Pointers: This pattern uses two pointers to traverse a sequence at different speeds (fast and slow), often used to detect cycles or find a specific position in the sequence.
LeetCode Problems:
โข Happy Number (Problem #202)
โข Subarray Sum Equals K (Problem #560)
โข Intersection of Two Linked Lists (Problem #160)
5๏ธโฃMerge Intervals: This pattern involves merging overlapping intervals in a collection, often used in problems dealing with intervals or ranges.
LeetCode problems:
โข Non-overlapping Intervals (Problem #435)
โข Minimum Number of Arrows to Burst Balloons (Problem #452)
Join for more: https://t.me/crackingthecodinginterview
DSA Interview Preparation Resources: https://topmate.io/coding/886874
ENJOY LEARNING ๐๐
1๏ธโฃ Arrays: Data structures, such as arrays, store elements in contiguous memory locations. They are versatile and useful for a wide variety of purposes.
LeetCode Problems:
โข Search in Rotated Sorted Array (Problem #33)
โข Product of Array Except Self (Problem #238)
โข Find the Missing Number (Problem #268)
2๏ธโฃTwo Pointers: In Two Pointers, two pointers are maintained in the collection and can be manipulated to solve a problem efficiently.
LeetCode problems:
โข Trapping Rain Water (Problem #42)
โข Longest Substring Without Repeating Characters (Problem #3)
โข Squares of a Sorted Array (Problem #977)
3๏ธโฃIn-place Linked List Traversal: As an explanation, in-place traversal is a technique for modifying linked list nodes without using extra space.
LeetCode Problems:
โข Remove Nth Node From End of List (Problem #19)
โข Reorder List (Problem #143)
4๏ธโฃFast & Slow Pointers: This pattern uses two pointers to traverse a sequence at different speeds (fast and slow), often used to detect cycles or find a specific position in the sequence.
LeetCode Problems:
โข Happy Number (Problem #202)
โข Subarray Sum Equals K (Problem #560)
โข Intersection of Two Linked Lists (Problem #160)
5๏ธโฃMerge Intervals: This pattern involves merging overlapping intervals in a collection, often used in problems dealing with intervals or ranges.
LeetCode problems:
โข Non-overlapping Intervals (Problem #435)
โข Minimum Number of Arrows to Burst Balloons (Problem #452)
Join for more: https://t.me/crackingthecodinginterview
DSA Interview Preparation Resources: https://topmate.io/coding/886874
ENJOY LEARNING ๐๐
๐2