Java Programming
31.4K subscribers
407 photos
213 files
241 links
Everything you need to learn Java Programming

Daily Java tutorials, coding challenges, OOP concepts, DSA in Java & more!
Perfect for beginners, CS students & job seekers.

Downloadable PDFs, cheat sheets, interview prep & projects

For ads: @coderfun
Download Telegram
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
๐Ÿ‘2
Websites to learn Java
๐Ÿ”ฅ9โค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.
๐Ÿ‘9
Java projects ๐Ÿ‘‡
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
๐Ÿ‘5
Learn Java in 50 Days
๐Ÿ‘12
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 โค๏ธ
โค4๐Ÿ‘3๐Ÿ”ฅ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.
๐Ÿ‘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 ๐Ÿ‘๐Ÿ‘
๐Ÿ‘2