ูููุงุช ููุชููุจ ูุชููุฏู ุฌุฏูุง ูู ู
ููุฏุณ ุจุฑู
ุฌูุงุช ๐ป
https://www.linkedin.com/posts/dev-alisamir_softwareengineer-softwareengineering-programming-activity-7249693933469921281-dY0z
https://www.linkedin.com/posts/dev-alisamir_softwareengineer-softwareengineering-programming-activity-7249693933469921281-dY0z
Big O Notation: The Secret to Writing Efficient Algorithms ๐ป
From simple array operations to complex sorting algorithms, understanding the Big O Notation is critical for building high-performance software solutions.
This is the constant time notation. The runtime remains steady regardless of input size. For example, accessing an element in an array by index and inserting/deleting an element in a hash table.
Linear time notation. The runtime grows in direct proportion to the input size. For example, finding the max or min element in an unsorted array.
Logarithmic time notation. The runtime increases slowly as the input grows. For example, a binary search on a sorted array and operations on balanced binary search trees.
Quadratic time notation. The runtime grows exponentially with input size. For example, simple sorting algorithms like bubble sort, insertion sort, and selection sort.
Cubic time notation. The runtime escalates rapidly as the input size increases. For example, multiplying two dense matrices using the naive algorithm.
Linearithmic time notation. This is a blend of linear and logarithmic growth. For example, efficient sorting algorithms like merge sort, quick sort, and heap sort
Exponential time notation. The runtime doubles with each new input element. For example, recursive algorithms solve problems by dividing them into multiple subproblems.
Factorial time notation. Runtime skyrockets with input size. For example, permutation-generation problems.
Square root time notation. Runtime increases relative to the inputโs square root. For example, searching within a range such as the Sieve of Eratosthenes for finding all primes up to n.
From simple array operations to complex sorting algorithms, understanding the Big O Notation is critical for building high-performance software solutions.
O(1)
This is the constant time notation. The runtime remains steady regardless of input size. For example, accessing an element in an array by index and inserting/deleting an element in a hash table.
O(n)
Linear time notation. The runtime grows in direct proportion to the input size. For example, finding the max or min element in an unsorted array.
O(log n)
Logarithmic time notation. The runtime increases slowly as the input grows. For example, a binary search on a sorted array and operations on balanced binary search trees.
O(n^2)
Quadratic time notation. The runtime grows exponentially with input size. For example, simple sorting algorithms like bubble sort, insertion sort, and selection sort.
O(n^3)
Cubic time notation. The runtime escalates rapidly as the input size increases. For example, multiplying two dense matrices using the naive algorithm.
O(n logn)
Linearithmic time notation. This is a blend of linear and logarithmic growth. For example, efficient sorting algorithms like merge sort, quick sort, and heap sort
O(2^n)
Exponential time notation. The runtime doubles with each new input element. For example, recursive algorithms solve problems by dividing them into multiple subproblems.
O(n!)
Factorial time notation. Runtime skyrockets with input size. For example, permutation-generation problems.
O(sqrt(n))
Square root time notation. Runtime increases relative to the inputโs square root. For example, searching within a range such as the Sieve of Eratosthenes for finding all primes up to n.
โค3๐ฅ2
ู
ุณุงุฑุงุช ุชุนูู
ุดุงู
ูุฉ ูู ู
ุฌุงูุงุช ุงูุจุฑู
ุฌุฉ ๐ป
ุงูู ุณุงุฑุงุช ุฏู ูุชุณุงุนุฏู ุชุฎุทุท ุฑุญูุฉ ุงูุชุนูู ุฎูุงู ุงูู 12 ุดูุฑ ุงูุฌุงููู (ุฃู ุฃูุชุฑ ูู ู ุฌุงู ุงูููุจ)ุ ูุฏู ู ู ุบูุฑ ู ุง ุชุถูุน ููุชู ูู ุงูุจุญุซ ุนู ุฅูู ุงููู ุงูู ูุฑูุถ ุชุชุนูู ู ูู ูู ู ุฌุงู. โ
โโโ
https://www.linkedin.com/posts/dev-alisamir_softwaredeveloper-softwaredevelopment-roadmap-activity-7250153662952456192-IM-C
ุงูู ุณุงุฑุงุช ุฏู ูุชุณุงุนุฏู ุชุฎุทุท ุฑุญูุฉ ุงูุชุนูู ุฎูุงู ุงูู 12 ุดูุฑ ุงูุฌุงููู (ุฃู ุฃูุชุฑ ูู ู ุฌุงู ุงูููุจ)ุ ูุฏู ู ู ุบูุฑ ู ุง ุชุถูุน ููุชู ูู ุงูุจุญุซ ุนู ุฅูู ุงููู ุงูู ูุฑูุถ ุชุชุนูู ู ูู ูู ู ุฌุงู. โ
โโโ
https://www.linkedin.com/posts/dev-alisamir_softwaredeveloper-softwaredevelopment-roadmap-activity-7250153662952456192-IM-C
๐4โค3๐ฅ1
ู
ูุชุจุฉ ุฌุงูุง ุณูุฑูุจุช ุฑุงููุฉ ูุชุธุจุทูู ุงูู Scrolling...โก๏ธ
https://www.linkedin.com/posts/dev-alisamir_javascript-js-animations-activity-7250760742205853696-ef_x
Lenis JS Library ๐ป
https://www.linkedin.com/posts/dev-alisamir_javascript-js-animations-activity-7250760742205853696-ef_x
๐3โค1๐ฅ1
ููุฑุณ ุงูุฐูุงุก ุงูุงุตุทูุงุนู ุงูุดุงู
ู ูู
ุจุงุฏุฑุฉ ุฑูุงุฏ ู
ุตุฑ ๐ป
https://youtube.com/playlist?list=PLPBnj6azlABapMXzdpFXBScfZerZygcrz&si=ojtFJ_zTaJVTrwXZ
Advanced Machine Learning 2024 Course + Microsoft Azure AI Fundamentals | Arabic
https://youtube.com/playlist?list=PLPBnj6azlABapMXzdpFXBScfZerZygcrz&si=ojtFJ_zTaJVTrwXZ
๐ฅ3โก1โค1
System Design and Architecture
https://app.manara.tech/learning/8
Frontend Engineering with React
https://app.manara.tech/learning/10
Databases
https://app.manara.tech/learning/15
Data Engineering
https://app.manara.tech/learning/18
DevOps
https://app.manara.tech/learning/20
Backend Engineering with NodeJS
https://app.manara.tech/learning/21
AWS 1: Intro to Cloud Computing
https://app.manara.tech/learning/6
โค1๐1๐ฅ1
DevGuide ๐ต๐ธ pinned ยซSystem Design and Architecture https://app.manara.tech/learning/8 Frontend Engineering with React https://app.manara.tech/learning/10 Databases https://app.manara.tech/learning/15 Data Engineering https://app.manara.tech/learning/18 DevOps https://appโฆยป
API vs SDK ๐ป
API (Application Programming Interface) and SDK (Software Development Kit) are essential tools in the software development world, but they serve distinct purposes:
โโโ
An API is a set of rules and protocols that allows different software applications and services to communicate with each other.
ยป It defines how software components should interact.
ยป Facilitates data exchange and functionality access between software components.
ยป Typically consists of endpoints, requests, and responses.
โโโ
An SDK is a comprehensive package of tools, libraries, sample code, and documentation that assists developers in building applications for a particular platform, framework, or hardware.
ยป Offers higher-level abstractions, simplifying development for a specific platform.
ยป Tailored to specific platforms or frameworks, ensuring compatibility and optimal performance on that platform.
ยป Offer access to advanced features and capabilities specific to the platform, which might be otherwise challenging to implement from scratch.
โโโ
The choice between APIs and SDKs depends on the development goals and requirements of the project.
API (Application Programming Interface) and SDK (Software Development Kit) are essential tools in the software development world, but they serve distinct purposes:
โโโ
API:
An API is a set of rules and protocols that allows different software applications and services to communicate with each other.
ยป It defines how software components should interact.
ยป Facilitates data exchange and functionality access between software components.
ยป Typically consists of endpoints, requests, and responses.
โโโ
SDK:
An SDK is a comprehensive package of tools, libraries, sample code, and documentation that assists developers in building applications for a particular platform, framework, or hardware.
ยป Offers higher-level abstractions, simplifying development for a specific platform.
ยป Tailored to specific platforms or frameworks, ensuring compatibility and optimal performance on that platform.
ยป Offer access to advanced features and capabilities specific to the platform, which might be otherwise challenging to implement from scratch.
โโโ
The choice between APIs and SDKs depends on the development goals and requirements of the project.
๐5โค3๐ฅ1