Programming Resources | Python | Javascript | Artificial Intelligence Updates | Computer Science Courses | AI Books
54.3K subscribers
880 photos
1 video
4 files
333 links
Everything about programming for beginners
* Python programming
* Java programming
* App development
* Machine Learning
* Data Science

Managed by: @love_data
Download Telegram
Complete DSA Roadmap

|-- Basic_Data_Structures
| |-- Arrays
| |-- Strings
| |-- Linked_Lists
| |-- Stacks
| └─ Queues
|
|-- Advanced_Data_Structures
| |-- Trees
| | |-- Binary_Trees
| | |-- Binary_Search_Trees
| | |-- AVL_Trees
| | └─ B-Trees
| |
| |-- Graphs
| | |-- Graph_Representation
| | | |- Adjacency_Matrix
| | | └ Adjacency_List
| | |
| | |-- Depth-First_Search
| | |-- Breadth-First_Search
| | |-- Shortest_Path_Algorithms
| | | |- Dijkstra's_Algorithm
| | | └ Bellman-Ford_Algorithm
| | |
| | └─ Minimum_Spanning_Tree
| | |- Prim's_Algorithm
| | └ Kruskal's_Algorithm
| |
| |-- Heaps
| | |-- Min_Heap
| | |-- Max_Heap
| | └─ Heap_Sort
| |
| |-- Hash_Tables
| |-- Disjoint_Set_Union
| |-- Trie
| |-- Segment_Tree
| └─ Fenwick_Tree
|
|-- Algorithmic_Paradigms
| |-- Brute_Force
| |-- Divide_and_Conquer
| |-- Greedy_Algorithms
| |-- Dynamic_Programming
| |-- Backtracking
| |-- Sliding_Window_Technique
| |-- Two_Pointer_Technique
| └─ Divide_and_Conquer_Optimization
| |-- Merge_Sort_Tree
| └─ Persistent_Segment_Tree
|
|-- Searching_Algorithms
| |-- Linear_Search
| |-- Binary_Search
| |-- Depth-First_Search
| └─ Breadth-First_Search
|
|-- Sorting_Algorithms
| |-- Bubble_Sort
| |-- Selection_Sort
| |-- Insertion_Sort
| |-- Merge_Sort
| |-- Quick_Sort
| └─ Heap_Sort
|
|-- Graph_Algorithms
| |-- Depth-First_Search
| |-- Breadth-First_Search
| |-- Topological_Sort
| |-- Strongly_Connected_Components
| └─ Articulation_Points_and_Bridges
|
|-- Dynamic_Programming
| |-- Introduction_to_DP
| |-- Fibonacci_Series_using_DP
| |-- Longest_Common_Subsequence
| |-- Longest_Increasing_Subsequence
| |-- Knapsack_Problem
| |-- Matrix_Chain_Multiplication
| └─ Dynamic_Programming_on_Trees
|
|-- Mathematical_and_Bit_Manipulation_Algorithms
| |-- Prime_Numbers_and_Sieve_of_Eratosthenes
| |-- Greatest_Common_Divisor
| |-- Least_Common_Multiple
| |-- Modular_Arithmetic
| └─ Bit_Manipulation_Tricks
|
|-- Advanced_Topics
| |-- Trie-based_Algorithms
| | |-- Auto-completion
| | └─ Spell_Checker
| |
| |-- Suffix_Trees_and_Arrays
| |-- Computational_Geometry
| |-- Number_Theory
| | |-- Euler's_Totient_Function
| | └─ Mobius_Function
| |
| └─ String_Algorithms
| |-- KMP_Algorithm
| └─ Rabin-Karp_Algorithm
|
|-- OnlinePlatforms
| |-- LeetCode
| |-- HackerRank

Best DSA RESOURCES: https://topmate.io/coding/886874

Credits: https://t.iss.one/free4unow_backup

All the best 👍👍
👍313
List of most asked Programming Interview Questions.

Are you preparing for a coding interview? This tweet is for you. It contains a list of the most asked interview questions from each topic.

Arrays

- How is an array sorted using quicksort?
- How do you reverse an array?
- How do you remove duplicates from an array?
- How do you find the 2nd largest number in an unsorted integer array?

Linked Lists

- How do you find the length of a linked list?
- How do you reverse a linked list?
- How do you find the third node from the end?
- How are duplicate nodes removed in an unsorted linked list?

Strings

- How do you check if a string contains only digits?
- How can a given string be reversed?
- How do you find the first non-repeated character?
- How do you find duplicate characters in strings?

Binary Trees

- How are all leaves of a binary tree printed?
- How do you check if a tree is a binary search tree?
- How is a binary search tree implemented?
- Find the lowest common ancestor in a binary tree?

Graph

- How to detect a cycle in a directed graph?
- How to detect a cycle in an undirected graph?
- Find the total number of strongly connected components?
- Find whether a path exists between two nodes of a graph?
- Find the minimum number of swaps required to sort an array.

Dynamic Programming

1. Find the longest common subsequence?
2. Find the longest common substring?
3. Coin change problem?
4. Box stacking problem?
5. Count the number of ways to cover a distance?
👍202
_Operating System RoadMap
|
|-- Kernel
| |-- Memory Management
| | |-- Paging
| | |-- Segmentation
| | |-- Virtual Memory
| |
| |-- Process Management
| | |-- Process Scheduling
| | |-- Inter-Process Communication (IPC)
| | |-- Threads
| |
| |-- File System
| | |-- File I/O
| | |-- Directory Structure
| | |-- File Permissions
| |
| |-- Device Drivers
| | |-- Communication with Hardware
| | |-- Input/Output (I/O)
| |
| |-- System Calls
| |-- Interface to Kernel Functionality
| |-- Examples: open(), read(), write(), etc.
|
|-- Memory Management
| |-- RAM
| | |-- Stack
| | |-- Heap
| | |-- Data Segment
| | |-- Code Segment
| |
| |-- Cache
| | |-- L1, L2, L3 Caches
| |
| |-- Virtual Memory
| |-- Page Table
| |-- Page Replacement Algorithms
| |-- Swapping
|
|-- File System
| |-- File Organization
| |-- File Allocation Table (FAT)
| |-- Inodes
| |-- File Access Methods
|
|-- Networking
| |-- TCP/IP
| |-- Protocols
| |-- Network Stack
| |-- Routing
| |-- Firewalls
|
|-- Security
| |-- Authentication
| |-- Authorization
| |-- Encryption
| |-- Access Control Lists (ACL)
|
|-- Process Management
| |-- PCB (Process Control Block)
| |-- Context Switching
| |-- Deadlocks
| |-- Synchronization
| |-- Mutual Exclusion
|
|-- Device Management
| |-- I/O Buffering
| |-- Device Controllers
| |-- Interrupt Handling
| |-- DMA (Direct Memory Access)
|
|-- User Interface
| |-- Graphical User Interface (GUI)
| |-- Command Line Interface (CLI)
| |-- Windowing Systems
|
|-- Shell
| |-- Command Interpreter
| |-- Scripting
| |-- Job Control
|
|-- System Utilities
| |-- Task Manager
| |-- Disk Cleanup
| |-- System Monitor
| |-- Backup and Restore
|
|-- Boot Process
| |-- BIOS/UEFI
| |-- Boot Loader
| |-- Kernel Initialization
| |-- Init Process
|
|-- System Libraries
| |-- Standard C Library
| |-- POSIX Library
| |-- WinAPI (for Windows)
|
|-- System Calls
| |-- File System Calls
| |-- Process Control Calls
| |-- Memory Management Calls
| |-- Communication Calls
|
|-- Error Handling
| |-- Error Codes
| |-- Logging
| |-- Recovery Strategies
|
|-- Distributed Systems
| |-- Clustering
| |-- Load Balancing
| |-- Distributed File Systems
|
|-- Cloud Computing
| |-- Virtualization
| |-- Infrastructure as a Service (IaaS)
| |-- Platform as a Service (PaaS)
| |-- Software as a Service (SaaS)
|
└-- Comments
|-- // Single-line comment
└-- /* Multi-line comment */

Join for more: https://t.iss.one/programming_guide
👍162
Forwarded from Coding Memes
Advantages of being SINGLE

1. You can sleep well.

2. You can save time and money.

3. No worries about how you look.

4. No missed calls in the midnight.

5. No need to recharge more than twice a day.

6. You can talk to all boys/girls.

7. You can eat well.

8. No sc0ldings from parents/guardians.

9. You can eat in any restaurant.

10. You can visit anybody.

11. Can pick any call, any time without being questioned.

12. Don't worry about missed calls.

13. You can do whatever you want.
👍4626😁7👌4
How to Learn Java in 2024

1. Set Clear Goals:
   - Define your learning objectives. Do you want to build web applications, mobile apps, or work on enterprise-level software?


2. Choose a Structured Learning Path:
   - Follow a structured learning path that covers the fundamentals of Java, object-oriented programming principles, and essential libraries.


3. Start with the Basics:
   - Begin with the core concepts of Java, such as variables, data types, operators, and control flow statements.


4. Master Object-Oriented Programming:
   - Learn about classes, objects, inheritance, polymorphism, and encapsulation.


5. Explore Java Libraries:
   - Familiarize yourself with commonly used Java libraries, such as those for input/output, networking, and data structures.


6. Practice Regularly:
   - Write code regularly to reinforce your understanding and identify areas where you need more practice.


7. Leverage Online Resources:
   - Utilize online courses, tutorials, and documentation to supplement your learning.


8. Join a Coding Community:
   - Engage with online coding communities and forums to ask questions, share knowledge, and collaborate on projects.


9. Build Projects:
   - Create simple projects to apply your skills and gain practical experience.


10. Stay Updated with Java Releases:
    - Keep up with the latest Java releases and updates to ensure your knowledge remains current.


11. Explore Frameworks and Tools:
    - Learn about popular Java frameworks and tools, such as Spring Boot, Maven, and IntelliJ IDEA.


12. Contribute to Open Source Projects:
    - Contribute to open source Java projects to gain real-world experience and showcase your skills.


13. Seek Feedback and Mentoring:
    - Seek feedback from experienced Java developers and consider mentorship opportunities to accelerate your learning.


14. Prepare for Certifications:
    - Consider pursuing Java certifications, such as the Oracle Certified Java Programmer (OCJP), to validate your skills.


15. Network with Java Developers:
    - Attend Java meetups, conferences, and online events to connect with other Java developers and learn from their experiences.

Best Programming Resources: https://topmate.io/coding/898340

Java Programming Resources: https://t.iss.one/Java_Programming_Notes

ENJOY LEARNING 👍👍
👍14👌4
Famous programming languages and their frameworks


1. Python:

Frameworks:
Django
Flask
Pyramid
Tornado

2. JavaScript:

Frameworks (Front-End):
React
Angular
Vue.js
Ember.js
Frameworks (Back-End):
Node.js (Runtime)
Express.js
Nest.js
Meteor

3. Java:

Frameworks:
Spring Framework
Hibernate
Apache Struts
Play Framework

4. Ruby:

Frameworks:
Ruby on Rails (Rails)
Sinatra
Hanami

5. PHP:

Frameworks:
Laravel
Symfony
CodeIgniter
Yii
Zend Framework

6. C#:

Frameworks:
.NET Framework
ASP.NET
ASP.NET Core

7. Go (Golang):

Frameworks:
Gin
Echo
Revel

8. Rust:

Frameworks:
Rocket
Actix
Warp

9. Swift:

Frameworks (iOS/macOS):
SwiftUI
UIKit
Cocoa Touch

10. Kotlin:
- Frameworks (Android):
- Android Jetpack
- Ktor

11. TypeScript:
- Frameworks (Front-End):
- Angular
- Vue.js (with TypeScript)
- React (with TypeScript)

12. Scala:
- Frameworks:
- Play Framework
- Akka

13. Perl:
- Frameworks:
- Dancer
- Catalyst

14. Lua:
- Frameworks:
- OpenResty (for web development)

15. Dart:
- Frameworks:
- Flutter (for mobile app development)

16. R:
- Frameworks (for data science and statistics):
- Shiny
- ggplot2

17. Julia:
- Frameworks (for scientific computing):
- Pluto.jl
- Genie.jl

18. MATLAB:
- Frameworks (for scientific and engineering applications):
- Simulink

19. COBOL:
- Frameworks:
- COBOL-IT

20. Erlang:
- Frameworks:
- Phoenix (for web applications)

21. Groovy:
- Frameworks:
- Grails (for web applications)

Best Programming Resources: https://topmate.io/coding/898340

ENJOY LEARNING 👍👍
👍276👌1
Before diving into the 30-day learning plan for DSA, it is essential to have a few prerequisites covered to ensure you can follow the plan effectively:

### Prerequisites:

1. Basic Programming Knowledge:
- You should be familiar with at least one programming language (such as Python, Java, C++, or JavaScript).
- Understand basic syntax, data types, and control structures (loops, conditionals, functions).

2. Problem-Solving Mindset:
- Be comfortable with solving basic problems on platforms like LeetCode, HackerRank, or CodeSignal.
- Understand how to break down a problem into smaller, manageable parts.

3. Familiarity with Basic Concepts:
- Basic understanding of time and space complexity.
- Familiarity with simple algorithms and how they work (e.g., sorting algorithms like bubble sort or insertion sort).

### Suggested Preparatory Steps:

1. Language Proficiency:
- Python: Understand lists, dictionaries, sets, and basic input/output operations.
- Java: Understand arrays, ArrayList, HashMap, basic file I/O, and exception handling.
- C++: Understand vectors, maps, strings, basic I/O operations, and pointers.

2. Basic Algorithmic Concepts:
- Time Complexity: Learn Big O notation and how to analyze the time complexity of basic operations.
- Sorting Algorithms: Learn at least one simple sorting algorithm (e.g., bubble sort or selection sort).

3. Mathematical Foundations:
- Basic understanding of mathematical concepts like logarithms, exponentiation, and basic probability/statistics.

4. Basic Data Structures:
- Arrays and Strings: Be comfortable manipulating arrays and strings.
- Linked Lists: Understand the concept of linked lists and basic operations on them.
- Stacks and Queues: Understand what stacks and queues are and their basic operations.

5. Online Courses and Resources:
- Consider taking a basic course on data structures and algorithms if you’re entirely new to the topic. Courses on platforms like Udacity, or freeCodeCamp can be beneficial.
- Familiarize yourself with online coding platforms (LeetCode, HackerRank) and solve a few easy problems to get comfortable with the interface and problem -solving environment.

Best Programming Resources: https://topmate.io/coding/886839

ENJOY LEARNING 👍👍
👍183
🔴 How to MASTER a programming language using ChatGPT: 📌

1. Can you provide some tips and best practices for writing clean and efficient code in [lang]?

2. What are some commonly asked interview questions about [lang]?

3. What are the advanced topics to learn in [lang]? Explain them to me with code examples.

4. Give me some practice questions along with solutions for [concept] in [lang].

5. What are some common mistakes that people make in [lang]?

6. Can you provide some tips and best practices for writing clean and efficient code in [lang]?

7. How can I optimize the performance of my code in [lang]?

8. What are some coding exercises or mini-projects I can do regularly to reinforce my understanding and application of [lang] concepts?

9. Are there any specific tools or frameworks that are commonly used in [lang]? How can I learn and utilize them effectively?

10. What are the debugging techniques and tools available in [lang] to help troubleshoot and fix code issues?

11. Are there any coding conventions or style guidelines that I should follow when writing code in [lang]?

12. How can I effectively collaborate with other developers in [lang] on a project?

13. What are some common data structures and algorithms that I should be familiar with in [lang]?

How to Create Resume using ChatGPT 👇👇
https://t.iss.one/free4unow_backup/687

Master DSA 👇👇
https://t.iss.one/dsabooks/156
👍16👌1
🚀 Roadmap to Master C++ in 50 Days! 🖥️

Here's a concise 50-day plan to get you started:

Week 1-2:
• Days 1-5: Programming Language & its application
• Days 6-10: Basic Concepts - Operations

Week 3-4:
• Days 11-15: Strings & Variables
• Days 16-20: Control Structures

Week 5-6:
• Days 21-25: Functions & Header Files
• Days 26-30: Exception Handling & File Operations

Week 7-8:
• Days 31-35: Advanced Class Concepts
• Days 36-40: Algorithms

Final Stretch:
• Days 41-45: Object-Oriented Programming Concepts
• Days 46-50: Revision of all topics covered

Best Programming Resources: https://topmate.io/coding/886839

All the best 👍👍
👍164👏1
👩‍🏫🧑‍🏫 PROGRAMMING LANGUAGES YOU SHOULD LEARN TO BECOME.

⚔️[ Web Developer]
PHP, C#, JS, JAVA, Python, Ruby

⚔️[ Game Developer]
Java, C++, Python, JS, Ruby, C, C#

⚔️[ Data Analysis]
R, Matlab, Java, Python

⚔️[ Desktop Developer]
Java, C#, C++, Python

⚔️[ Embedded System Program]
C, Python, C++

⚔️[Mobile Apps Development]
Kotlin, Dart, Objective-C, Java, Python, JS, Swift, C#
👍275👌1
11 ways to be more mysterious:

1. Keep calm
2. Talk less
3. Stay away from drama
4. Don’t overreact
5. Make eye contact
6. Use clear gestures
7. Hear more, talk less
8. Think creatively
9. Think before you talk
10. don’t always be available
11. Share less about yourself
👍359
🖥 Website To Learn Programming & Data Analytics

1. Learn HTML :-
html.com
2. Learn CSS :-
css-tricks.com
3. Learn Tailwind CSS :-
tailwindcss.com
4. Learn JavaScript :-
imp.i115008.net/mgGagX
5. Learn Bootstrap :-
getbootstrap.com
6. Learn DSA :-
t.iss.one/dsabooks
7. Learn Git :-
git-scm.com
8. Learn React :-
react-tutorial.app
9. Learn API :-
rapidapi.com/learn
10. Learn Python :-
t.iss.one/pythondevelopersindia
11. Learn SQL :-
t.iss.one/sqlspecialist
12. Learn Web3 :-
learnweb3.io
13. Learn JQuery :-
learn.jquery.com
14. Learn ExpressJS :-
expressjs.com
15. Learn NodeJS :-
nodejs.dev/learn
16. Learn MongoDB :-
learn.mongodb.com
17. Learn PHP :-
phptherightway.com/
18. Learn Golang :-
learn-golang.org/
19. Learn Power BI :-
t.iss.one/powerbi_analyst
20. Learn Data Analytics:-
datasimplifier.com
21. Learn Excel:-
t.iss.one/excel_analyst

Join for more free resources:
https://t.iss.one/free4unow_backup

ENJOY LEARNING 👍👍
👍2610
DSA INTERVIEW QUESTIONS AND ANSWERS

1. What is the difference between file structure and storage structure?
The difference lies in the memory area accessed. Storage structure refers to the data structure in the memory of the computer system,
whereas file structure represents the storage structure in the auxiliary memory.

2. Are linked lists considered linear or non-linear Data Structures?
Linked lists are considered both linear and non-linear data structures depending upon the application they are used for. When used for
access strategies, it is considered as a linear data-structure. When used for data storage, it is considered a non-linear data structure.

3. How do you reference all of the elements in a one-dimension array?
All of the elements in a one-dimension array can be referenced using an indexed loop as the array subscript so that the counter runs
from 0 to the array size minus one.

4. What are dynamic Data Structures? Name a few.
They are collections of data in memory that expand and contract to grow or shrink in size as a program runs. This enables the programmer
to control exactly how much memory is to be utilized.Examples are the dynamic array, linked list, stack, queue, and heap.

5. What is a Dequeue?
It is a double-ended queue, or a data structure, where the elements can be inserted or deleted at both ends (FRONT and REAR).

6. What operations can be performed on queues?
enqueue() adds an element to the end of the queue
dequeue() removes an element from the front of the queue
init() is used for initializing the queue
isEmpty tests for whether or not the queue is empty
The front is used to get the value of the first data item but does not remove it
The rear is used to get the last item from a queue.

7. What is the merge sort? How does it work?
Merge sort is a divide-and-conquer algorithm for sorting the data. It works by merging and sorting adjacent data to create bigger sorted
lists, which are then merged recursively to form even bigger sorted lists until you have one single sorted list.

8.How does the Selection sort work?
Selection sort works by repeatedly picking the smallest number in ascending order from the list and placing it at the beginning. This process is repeated moving toward the end of the list or sorted subarray.

Scan all items and find the smallest. Switch over the position as the first item. Repeat the selection sort on the remaining N-1 items. We always iterate forward (i from 0 to N-1) and swap with the smallest element (always i).

Time complexity: best case O(n2); worst O(n2)

Space complexity: worst O(1)

9. What are the applications of graph Data Structure?
Transport grids where stations are represented as vertices and routes as the edges of the graph
Utility graphs of power or water, where vertices are connection points and edge the wires or pipes connecting them
Social network graphs to determine the flow of information and hotspots (edges and vertices)
Neural networks where vertices represent neurons and edge the synapses between them

10. What is an AVL tree?
An AVL (Adelson, Velskii, and Landi) tree is a height balancing binary search tree in which the difference of heights of the left
and right subtrees of any node is less than or equal to one. This controls the height of the binary search tree by not letting
it get skewed. This is used when working with a large data set, with continual pruning through insertion and deletion of data.

11. Differentiate NULL and VOID ?
Null is a value, whereas Void is a data type identifier
Null indicates an empty value for a variable, whereas void indicates pointers that have no initial size
Null means it never existed; Void means it existed but is not in effect

You can check these resources for Coding interview Preparation

Credits: https://t.iss.one/free4unow_backup

All the best 👍👍
👍166👏4👌3
Best suited IDE's for programming languages:

1. JavaScript => VSCode
2. Python => PyCharm
3. C# => Visual Studio
4. Java => IntelliJ IDEA
5. Ruby => Ruby Mine
6. C & C++ => CLion
23👏7👍6
The right person will choose you as selflessly as you choose him.

You won't have to hide how much you care, and you'll never feel like you're too much. You won't have to beg for the love you deserve. One day, you will be met for who you are. One day, you will become someone's biggest crush and it won't bother you - you will no longer have to fight for someone who doesn't fight for you. One day you will understand that no matter how long you have held on to the wrong people, no matter how sincerely you tried, because the right people will always find you. And the right people will remain forever.
13👍7👌1🫡1
Steps to learn Data Structures and Algorithms (DSA) with Python

1. Learn Python: If you're not already familiar with Python, start by learning the basics of the language. There are many online resources and tutorials available for free.

2. Understand the Basics: Before diving into DSA, make sure you have a good grasp of Python's syntax, data types, and basic programming concepts. Use free resources from @dsabooks to help you in learning journey.

3. Pick Good Learning Resources: Choose a good book, online course, or tutorial series on DSA with Python. Most of the free stuff is already posted on the channel @crackingthecodinginterview

4. Data Structures: Begin with fundamental data structures like lists, arrays, stacks, queues, linked lists, trees, graphs, and hash tables. Understand their properties, operations, and when to use them.

5. Algorithms: Study common algorithms such as searching (binary search, linear search), sorting (quick sort, merge sort), and dynamic programming. Learn about their time and space complexity.

6. Practice: The key to mastering DSA is practice. Solve a wide variety of problems to apply your knowledge. Websites like LeetCode and HackerRank provide a vast collection of problems.

7. Analyze Complexity: Learn how to analyze the time and space complexity of algorithms. Big O notation is a crucial concept in DSA.

8. Implement Algorithms: Implement algorithms and data structures from scratch in Python. This hands-on experience will deepen your understanding.

9. Project Work: Apply DSA to real projects. This could be building a simple game, a small web app, or any software that requires efficient data handling. Check channel @programming_experts if you need project ideas.

10. Seek Help and Collaborate: Don't hesitate to ask for help when you're stuck. Engage in coding communities, forums, or collaborate with others to gain new insights.

11. Review and Revise: Periodically review what you've learned. Reinforce your understanding by revisiting data structures and algorithms you've studied.

12. Competitive Programming: Participate in competitive programming contests. They are a great way to test your skills and improve your problem-solving abilities.

13. Stay Updated: DSA is an ever-evolving field. Stay updated with the latest trends and algorithms.

14. Contribute to Open Source: Consider contributing to open source projects. It's a great way to apply your knowledge and work on real-world code.

15. Teach Others: Teaching what you've learned to others can deepen your understanding. You can create tutorials or mentor someone.

Join @free4unow_backup for more free courses

ENJOY LEARNING 👍👍
👍22
Key Differences Between Java and C#

1. Java is a great option for building complex web-based, highly concurrent applications, whereas C# is ideal for game development and mobile development.
2. Java requires Java Development Kit, which includes a Java compiler and runs a time environment to run Java on any machine, whereas C# libraries are being shipped with a .NET framework with IDE like Visual Studio.
3. Source code written in Java is compiled into bytecode, and then bytecode is converted to machine code, ready to run on any platform, whereas with C#, a code is interpreted into bytecode (MSIL) which is compiled by CLR and JIT compiler will convert MSIL into native machine code.
4. Java is designed to execute on JRE (Java Runtime Environment), whereas C# is designed to execute on CLR (Common Language Runtime).
5. Java is heavily used for building a complex application in an open-source ecosystem, whereas C# is mostly used to develop an application for Microsoft platforms.
6. Java provides a clear difference between Checked and Unchecked exceptions, whereas the C# approach is minimalistic in nature by choosing only one type of exception.
7. Java enables the polymorphism by default, whereas with C#, one must invoke the “virtual” keyword in base-class and “override” keyword in a derived class.
8. Java library ecosystem is vast and well documented, which further assist in developing functionality at a decent pace, whereas C# libraries work within the Microsoft ecosystem, which is limited as compared to Java.
9. Java has traditionally a huge community providing open-source libraries, so any need can be fulfilled with the libraries, whereas free quality libraries support from the Microsoft community is a downside for C#.
10. Generic feature support in Java is compiler-assisted, implemented using erasures, whereas C# takes generics further by integrating them into the CLI and allow type information to be available at runtime.
👍19