يفترض في من يريد متابعة خارطة الطريق الموجهة لمتابعة محتوى قناة Metigator على اليوتيوب https://www.youtube.com/@Metigator
كتحضير مبدأي لمتابعة الخارطة..يفضل ان تكون
- طالب حاسبات او معلومات او تخصص له علاقة
- انجزت كورس عام كمرحلة ما قبل البرمجة منها
رابط الدورة: CS-50 Harvard
رابط دورة : Introduction To Programming MIT
graph LR
A[1st Week االاسبوع الاول]--> B((Square Rect))
B[2nd Week االاسبوع الثاني]--> C((Square Rect))
C[3rd Week االاسبوع الثالث]--> D((Square Rect))
D[4th Week االاسبوع الرابع]--> E((الشهر 1))
timeline
title 1st Week | الاسبوع الاول
Day1 : CSharp [001] Intro. to .NET
: What is Full Stack Developer
: Why .NET
: Understanding .NET
: What is Visual Studio
: Install Visual Studio
: Explore Visual Studio
: Difference Between Solution & Project
: Source Code Vs. Machine Code
: Explore .csproj file
Day2 : CSharp [002] Solution & Project
: Adding Item to Solution
: Application Vs Class Library
: Referencing a project
: Add Item to Project
: Namespace Vs classes
: Class per file / multiple class per file
Day3 : .NET CLI [001] Intro to DOTNET CLI
: Overview .NET Framework
: Where to execute CLI commands
: Basic DOS Commands
: dotnet Driver
: dotnet options
: dotnet commands
: dotnet build
: dotnet run
: dotnet project to project reference
: dotnet add solution
Day4 : DOTNET CLI [002] Intro to VS. Code
: Visual Studio Vs. VS Code
: Install VS. Code
: Installing Omnisharp Extension
Day5 : CSharp [003] Variables
: Declaration
: Assignment
: Initialization
: Numerical data types
: String Data Type (essentials)
: String Concatenation
: var keyword and literal suffix
: dynamic keyword
Day6/7 : Revision | مراجعة
: Do Example on Visual Studio
: Do Example on VS.Code
- التعرف منصة الدوت نت واصداراتها المختلفة
- كيفية تهيئة جهاز الكمبيوتر الخاص فيك للبدء في عمل تطبيقات دوت نت عليه
- التعامل مع بيئات التطوير
- كيفية عمل البرنامج والتعامل مع السوليوشن والمشروع باستخدم ال GUI و Command Line
- التعامل مع عناصر التطبيق
- عمل اول تطبيق باستخدام بيئات التطوير المختلقة (Visual Studio / VS. Code)
- الفرق بين الكود المصدري (Source Code) ولغة الالة (Machine Code)
- التعرف على مبادئ واساسيات المتغيرات والتعامل معها
- معرفة الفرق بين ال (namespace) و (class)
Lesson | Link |
---|---|
CSharp [001] | https://youtu.be/TxaZYXtZWCM |
CSharp [002] | https://youtu.be/t2aMZFzV3jI |
.NET CLI [001] | https://youtu.be/3FaIaGzbjMs |
.NET CLI [002] | https://youtu.be/ykfeeBeGAMk |
CSharp [003] | https://youtu.be/j87UkenRf7k |
timeline
title 2nd week | الاسبوع الثاني
Day1 : CSharp [004] Boolean Types & Operators
: Equality Operators
: Comparison Operators
: Conditional Operators
: Short circuit & logical operators
: Ternary Operator
Day2 : CSharp [005] Arrays in CSharp
: What is an Array
: How It's stored
: Declaration One Dimension
: Initialization One Dimension
: Multi Dimensional Array
: Jagged Array
: Indices and Ranges
: Bound Checking
Day3 : CSharp [006] Expressions in C#
: Expression Types
: Binary Operators
: Null Coalescing "??"
: Null conditional "?."
: Statement vs Statement blocks
: statement Expression
: Selection statement
: Iterations
: jump statements
Day4 : Problem Solving 1
: Simple calculator
: Sum Array elements
: Find Average of numbers
: Find max number in array
: Find Min Number in Array
Day5 : Problem Solving 2
: FizzBuzz
: Reverse String
: Valid Palindrome
Day6/7 : Revision | مراجعة
: Self Practice
- التعامل مع (Logical Operators) و (Comparison Operators) و (ُEquality Operators)
- تطبيق ال Short Circuit evaluation
- التعامل مع Ternary Operator
- التعرف على المصفوفات (Array) والتعامل مع اشكالها المختلفة (Single/Multi Dimention & Jagged) واعدادها واستخدامها وتهيئتها
- التعامل مع Array Indexes & Array Ranges والتحقق من مدى المصفوفة.
- التعامل مع Selection Statement او ما يعرف بجمل الاختيار
- جملة IF
- جملة If/Else
- جملة Switch
- التعامل مع Iteration Statement او ما يعرف بجمل التكرار
- جملة while
- جملة do-while
- جملة for
- جملة foreach
- التعامل مع Jump Statement او ما يعرف بجمل القفز
- جملة break
- جملة continue
- جملة goto
- جملة return
- حل 8 من المشاكل (Problem Solving Easy Task)
Lesson | Link |
---|---|
CSharp [004] | https://youtu.be/D9VD0mn6mss |
CSharp [005] | https://youtu.be/XTB3V6R1L-c |
CSharp [006] | https://youtu.be/eOqTJWuCXho |
timeline
title 3nd week | الاسبوع الثالث
Day1 : Grokking Algorithm Book Chapter 1
: Introduction
: Binary Search
: Big O Notation
: Sequential Search in CSharp
: Binary Search in CSharp
Day2 : Grokking Algorithm Book Chapter 2
: How Memory works
: Arrays
: Inserting in the middle
: Deletion
: Selection Sort
Day3 : Apply Grokking Algorithm Ch. 2 Code
: How Memory works
: Inserting in the middle of Array
: Deletion from an index
: Selection Sort in CSharp
: Implement Selection Sort in CSharp
Day4 : CSharp [007] Casting & Type Conversion
: Data Types are objects
: Implicit and Explicit Casting
: Boxing and Unboxing
: Parse() Method
: TryParse() Method
: Convert Class
: BitConverter And Value Types
Day5 : Problem Solving 1
: Reverse Integer
: Roman To Integer
Day6/7 : Revision
- الفهم الاساسي لأهمية علم الخوارزميات
- فهم مشكلة البحث بالطريقة البحث التسلسلي Sequential Search والبحث الثنائي Binary Search
- فهم كيفية قياس Big O Notation لحساب وقت تنفيذ الخوارزمية
- تعلم كيفية تحويل البيانات Casting & Type Conversion
- تطبيق الامثلة الموجودة في اول فصلين من كتاب Grokking Algorithm
- حل 3 مشاكل من المستوى السهل
Lesson | Link |
---|---|
CSharp [007] | https://youtu.be/ByIQf4VS2d4 |
timeline
title 4th week | الاسبوع الرابع
Day1 : CSharp [008] OOP - Fields
: OOP What & Why and How?
: Example without OOP
: Example with OOP
: Class Vs. Object
Day2 : OOP [001] Introduction
: OOP [002] Procedural Vs. OOP
: OOP [003] OOP Pillars
: OOP [004] Class Data Structure
: OOP [005] Access Modifiers
: OOP [006] Class Members
: OOP [007] Class Vs. Object
Day3 : CSharp [009] OOP - Methods
: Instance Vs. Static Member
: Method Syntax
: Caller Vs. Callee
: Argument Vs. Parametewr
: Pass By Value/Reference
: Method Signature
: Method Overloading
: Expression Bodied Method
: Local Method
: Static Method
Day4 : CSharp [010] Constructors in C#
: constructor What, Why and How
: this keyword
: Add Constructor
: Implicit Constructor
: Overload Constructor
Day5 : CSharp [011] Properties
: Properties What, Why & How
: Property Syntax
: get, set accessors
: Property and validation
: Readonly property
: Expression Bodied Property
: Property Deep Dive
: Automatic Property
Day6/7 : Revision
- اهمية ال OOP
- الفرق بين البرمجة الاجرائية (Procedural) والبرمجة الشئيية (OOP)
- ما هو الكلاس (الفئة) وما هي مكوناته (Class Members)
- الفرق بين ال Class Vs. Object
- التعرف على المكونات التالية للكلاس
- الحقول والثوابت
- الدوال Methods
- الكونستركتر Constructor
- البروبرتي Property
- الفرق بين اعضاء الكلاس Instance و static
Lesson | Link |
---|---|
CSharp [008] | https://youtu.be/LEhv_owDo0o |
CSharp [009] | https://youtu.be/GkmlPDc_5Dc |
OOP [001] | https://youtu.be/vo_vktaAK9o |
OOP [002] | https://youtu.be/ZOuOltL2IsU |
OOP [003] | https://youtu.be/M4VjTVO8Rbw |
OOP [004] | https://youtu.be/iCZEXw2G6akak |
OOP [005] | https://youtu.be/dS9I-cggCiI |
OOP [006] | https://youtu.be/EEyh4xCcMSs |
OOP [007] | https://youtu.be/UMIUlG-uwxY |
CSharp [010] | https://youtu.be/GkmlPDc_5Dc |
CSharp [011] | https://youtu.be/pkQHHS3XAa8 |
graph LR
A[5th Week االاسبوع الخامس]--> B((Square Rect))
B[6th Week االاسبوع السادس]--> C((Square Rect))
C[7th Week االاسبوع السابع]--> D((Square Rect))
D[8th Week االاسبوع الثامن]--> E((الشهر 2))
timeline
title 5th Week | الاسبوع الخامس
Day1 : CSharp [012] Indexers
: Indexers What, Why and How
: Single Dimensional Map
: Multiple Dimensional Map
: Validating Suduko Example
Day2 : CSharp [013] Delegates
: Delegates What, Why and How
: Anonymus Delegate
: Lambda Expression
: Multicast Delegate
: Report Example
Day3 : CSharp [014] Events
: Events What, Why and How
: Events and Delegates
: Event Declaration
: Publish Event
: Subscriber Vs. Publisher
: Event Subscribe/Unsubscribe
: Lambda Expression call backs
Day4 : CSharp [015] Operator Overloading
: Operator Overloading What, Why and How
: Predefined Operator
: Supported Operators
: Operator Overloading Syntax
: (In Pair) Operator Overloading Syntax
Day5 : CSharp [016] Finalizers
: Finalizers What, Why and How
: Object scope
: Garbage Collection
: Explicit Vs. Implicit GC
: GC.Collect()
Day6/7 : Revision | مراجعة
- التعرف على Class Members
- الفهارس Indexers
- الاحداث Events
- ال Operator Overloading
- ال Finalizers
- التعرف على Delegate
Lesson | Link |
---|---|
CSharp [012] | https://youtu.be/2LXzNQSTHTc |
CSharp [013] | https://youtu.be/rvNJrgj6ilg |
CSharp [014] | https://youtu.be/8aWHZncV95Q |
CSharp [015] | https://youtu.be/F3ryldPGQoM |
CSharp [016] | https://youtu.be/Cm6mKU2cQls |
CSharp [017] | https://youtu.be/-gWx_NILonQ |
timeline
title 6th Week | الاسبوع السادس
Day1 : CSharp [017] Nested Types
: Why Nested types
: Composite Relationship
: Composite object initialization
Day2 : CSharp [018] Debugguing in C#
: Error Types
: Syntax Error
: Runtime Error
: Handling Exception
: Logical Error
: Debugger and tracing (Essentials
Day3 : CSharp [019] Structs
: Definition of struct
: Class Vs Struct
: Mutable Vs. Immutable (essentials)
: Readonly struct
: DateTime struct
Day4 : Code Take away [003] Immutable Vs. Mutable Objects
: Naive mutable class
: Private setter
: Immutable class read only properties
: Immutable struct
: Immutability PROS and CONS
: Examples from dotnet
Day5 : OOP [008] Reference Type Vs Value Type
: Function Locals, Parameter
: Value Type Vs. Reference Type
: Reference types allocation
: Garbage Collector
: Nested Object Allocation
: Stack vs. Heap
: When to use (Struct/Class)
: Value Type always on stack !!?
Day6/7 : Revision
- الانواع المتداخلة (Nested Types)
- استكشاف الاخطاء ومعالجتها (Debugging and Tracing)
- التعرف على Struct
- الفرق بين (Reference Type) و (Value Type)
- الفرق بين (Immutable) و (Mutable)
Lesson | Link |
---|---|
CSharp [017] | https://youtu.be/-gWx_NILonQ |
CSharp [018] | https://youtu.be/mkOAASe1VMk |
CSharp [019] | https://youtu.be/rhupFUHBwvY |
Code Take Away [003] | https://youtu.be/bbdmknnwcP8 |
OOP [008] | https://youtu.be/oQI0ItmX-H0 |
timeline
title 7th Week | الاسبوع السابع
Day1 : OOP [003] OOP Pillars
: OOP [009] Encapsulation
: Encapsulation What, Why and How
: Encapsulation using methods
: Encapsulation using Properties
: Encapsulation using readonly
Day2 : CSharp [021] Inheritance
: Inheritance What, Why and How
: Abstract class
: Sealed class
: Virual Methods
: Abstract Members
: Sealed Members
: Base Object class
: Real world Example (Payroll)
Day3 : CSharp [022] Interface
: Interface What, Why and How
: Abstract Vs. Concrete Types
: Implicit Interface Implementation
: Explicit Interface Implementation
: Tight Vs. Loose Coupling
: Real World Example
Day4 : OOP [010] Abstraction
: Abstraction What, Why and How
: OOP [011] Polymorphism
: Abstraction What, Why and How
Day5 : OOP [012] Inheritance (Revisited)
: Inheritance What, Why and How
Day6/7 : Revision | مراجعة
- التعرف على اعمدة ال OOP
- ال Encapsulation
- ال Abstraction
- ال Polymorphism
- ال Inheritance
- التعرف على العديد من انواع الكلاس (Sealed, Abstract, Static)
- اعضاء الكلاس (sealed, virtual, abstract)
- التعرف على method overriding
- معرفة اساسيات الفرق بين Tight Vs. Loose Coupling ٍ- التطبيق العملي لمسائل تلامس الواقع (نظام رواتب) ونظام (بنكي)
Lesson | Link |
---|---|
OOP [03] | https://youtu.be/-gWx_NILonQ |
OOP [009] | https://youtu.be/TbAPLaruUjE |
CSharp [021] | https://youtu.be/cw1BXqkok1k |
CSharp [022] | https://youtu.be/02EEtFtes_0 |
OOP [010] | https://youtu.be/TUfatzFvASU |
OOP [011] | https://youtu.be/twon_3eUXRo |
OOP [012] | https://youtu.be/a1d9y-wxXbs |
timeline
title 8th Week | الاسبوع الثامن
Day1 : [Algorithm]
Day1 : [Algorithm]
Day1 : [Problem Solving]
Day1 : [Problem Solving]
Day1 : [Problem Solving]
Day6&7 : Revision | مراجعة
- فهم أساسيات خوارزميات الفرز والبحث
- تطبيق خوارزميات بسيطة باستخدام لغة برمجة محددة
- تحليل الأداء والتعقيد الزمني للخوارزميات المطبقة
graph LR
A[9th Week االاسبوع التاسع]--> B((Square Rect))
B[10th Week االاسبوع العاشر]--> C((Square Rect))
C[11th Week االاسبوع الحادي عشر]--> D((Square Rect))
D[12th Week االاسبوع الثاني عشر]--> E(( الشهر 3 ))
timeline
title 9th Week | الاسبوع التاسع
Day1 : CSharp [020] Enum
: Enums What, Why and How
: Simple Enum
: Flags Enum
: Enum Parsing and Data Conversion
: Looping on Enums
Day2 : CSharp [023] Generics
: Before Generics
: Generics What, Why and How
: Generic Methods
: Generic Class
: Generic Constraints
: .NET Generics and Collections
Day3 : CSharp [024] Generic Delegate Types
: Introduction
: Delegates (Revisited)
: Generic Delegate
: Covariance & Contravariance (overview)
: Action<T>, Func<T>, Predicate<T>
Day4 : CSharp [025] Exceptions
: Exceptions What, Why and How
: Exception Handling
: Catch Specific Exception
: Catch Multiple Exception
: Exception Filters
: Custom Exception
: Ducking(Rethrow) Exception
: Swallow Exception
Day5 : CSharp [027] Xml Documentation
: What, Why and How
: Add XML Documentation
: Generate Xml Document
: Include External XML Document
: Summary
Day6&7 : Revision | مراجعة
- فهم وتطبيق الـ Enums: استيعاب أساسيات واستخدامات الEnumerations في C#.
- اكتشاف قوة الجنريكس: فهم كيفية تبسيط الكود وزيادة إعادة الاستخدام عبر Generics.
- التعمق في الجنريك ديليجيت تايبس: فهم كيفية العمل مع المفاهيم المتقدمة مثل Covariance و Contravariance.
- إتقان معالجة الاستثناءات: تعلم كيفية التعامل مع الأخطاء والاستثناءات بفعالية.
- التعرف على توثيق XML: استخدام التوثيق لتسهيل فهم واستخدام الكود البرمجي.
- مراجعة شاملة: تقييم ما تم تعلمه وتحديد المجالات التي قد تحتاج لتحسين.
Lesson | Link |
---|---|
CSharp [020] | https://youtu.be/3pbfQ-ZDoyc |
CSharp [023] | https://youtu.be/xE6bS6EfKAc |
OOP [024] | https://youtu.be/QgiaxQa2ccw |
OOP [025] | https://youtu.be/mA1pOrYAHCU |
OOP [027] | https://youtu.be/CoBhSJiZCSA |
timeline
title 10th Week | الاسبوع العاشر
Day1 : CSharp [026] Enumeratrion And ITerators
: CSharp [040] Foreach & Yield
: IEnumerator Interface
: IEnumerable Interface
: yield Keyword
: IComparable Interface
Day2 : CSharp [028] Extension Methods
: What, Why and How
: Helper class Vs. Extension Methods
: Method Chaining
: Resolve Ambiguity
Day3 : CSharp [029] Assemblies
: Assembly Definition
: Framework & Assembly
: IL and JIT
: Assembler
: Access Assembly Programmatically
: Accessing Metadata
: Accessing Metadata
Day4 : CSharp [030] Reflection And Metadata
: What Why and How
: Obtaining Types
: Instantiating Types
: Reflecting Members
: Invoking Members
: Reflecting Assemblies
Day5 : CSharp [031] Attrtibute in C#
: What Why and How
Day6&7 : Revision | مراجعة
- فهم التكرار والمفاتيح المحورية في اللغة: تغطية أساسيات التكرار والمفاتيح مثل 'yield' وواجهات مثل IEnumerator وIEnumerable.
- إتقان توسيع الطرق (Extension Methods): فهم كيف ولماذا تستخدم طرق التوسيع وكيف تقارن مع طرق المساعدة.
- استكشاف الأسمبليات: فهم ماهية الأسمبليات وكيف يتم التفاعل معها في عملية التنفيذ.
- تعمق في العكس والبيانات الوصفية (Reflection and Metadata): فهم كيف يمكن استخدام Reflection للتفاعل مع الأنواع والأعضاء في وقت التشغيل.
- استخدام السمات (Attributes) بفعالية: فهم كيفية استخدام السمات في C# لإضافة معلومات وصفية للكود.
- مراجعة شاملة: تقييم ما تم تعلمه وتحديد المجالات التي قد تحتاج لتحسين.
Lesson | Link |
---|---|
CSharp [026] | https://youtu.be/qvqp9qJnigs |
CSharp [040] | https://youtu.be/z6eBV2iPEC8 |
CSharp [028] | https://youtu.be/AdperlFqPWQ |
CSharp [029] | https://youtu.be/X1IPGHZ1yJw |
CSharp [030] | https://youtu.be/hkuBpG0QyrU |
CSharp [031] | https://youtu.be/UkGF0SJzDN4 |
timeline
title 11th Week | الاسبوع الحادي عشر
Day1 : CSharp [032] List And Dictionaries
: Collections
: List<T>
: Add Items
: Count And Capacity
: Remove Items
: Dictionaries
: Add Item to Dictionary
: Convert List to Dictionary
Day2 : CSharp [033] Stack And Queues
: Stack What, Why And How
: Stack Methods
: Queue What, Why And How
: Queue Methods
Day3 : CSharp [034] LinkList, Hashset And SortedList
: LinkList What, Why and How
: Linked list Properties & Methods
: Hashset What, Why and How
: Hashset Properties & Methods
: SortedList What, Why and How
: SortedList Properties & Methods
: Implement IComparable
Day4 : Algorithm & Data Structure
: Practice
: Practice
: Practice
Day5 : Problem Solving
: Practice
: Practice
: Practice
Day6&7 : Revision | مراجعة
- فهم القوائم والقواميس (Lists and Dictionaries): إتقان استخدام القوائم والقواميس، وفهم العمليات الأساسية مثل الإضافة والإزالة.
- استكشاف (Stacks and Queues): تعلم كيفية استخدام الأسطاك والطوابير والطرق المرتبطة بهم.
- فهم LinkList, HashSet, و SortedList: التعرف على هذه الأنواع المتقدمة من البيانات وكيفية استخدامها.
- تطبيق الخوارزميات والهياكل البيانية: ممارسة تطبيق الخوارزميات والهياكل البيانية بمهارة.
- حل المشكلات: تطوير القدرة على حل المشكلات البرمجية بشكل فعّال.
- مراجعة شاملة: لا يمكن أن ننسى هذا الجزء، مراجعة ما تم تعلمه وتحديد المجالات التي قد تحتاج إلى تحسين.
Lesson | Link |
---|---|
CSharp [032] | https://youtu.be/HNmAzIRfwoI |
CSharp [033] | https://youtu.be/-GpTnKa0myM |
CSharp [034] | https://youtu.be/BKYiNKfmuGk |
timeline
title 12th Week | الاسبوع الثاني عشر
Day1 : VSC [001] Introduction
: VSC [002] Basic Got Workflow
: Git Configuration
: initialize a git repository
: How Git Store Objects
: Stage Files
: Commit
: git log, git diff
: git reset
Day2 : VSC [003] Remote Repository (Github)
: VSC [004] Working with Remote Repositoru
: Github Overview
: Create remote repository
: Delete remote repository
: git remote
: git branch -a
: git fetch
: git merge
: git pull
: add remote repository to local
: git push
: forking repository
: Template repositories
Day3 : VSC [005] Branching and Merging
: VSC [006] Pull Request essentials
: Create branch
: Fast forward
: 3 ways merging (ORT)
: resolve merge conflict
: resolve conflict (Kdiff tool)
: Full example (Console Application)
Day4 : Payrol Example to Git Part 02
Day5 : Payrol Example to Git Part 01
Day6&7 : Revision | مراجعة
- تقنيات Git وVSC: فهم أساسيات عمل Git وVisual Studio Code، بدءًا من التكوين وحتى الCommit.
- التفاعل مع (Remote Repositories): تعلم كيفية إنشاء وحذف وإدارة المستودعات البعيدة على Github.
- فروع ودمج في Git (Branching and Merging): تعلم كيفية إنشاء وإدارة، وكيفية حل التعارضات في الدمج.
- تطبيق عملي (Payroll Example): توضيح كيفية استخدام Git في مشروع حقيقي من خلال مثال عملي.
- مراجعة شاملة: نعم، هذا جزء لا يمكن تجاهله. مراجعة ما تم تعلمه وتحديد المجالات التي قد تحتاج إلى مزيد من التركيز.
Lesson | Link |
---|---|
VSC [001] | https://youtu.be/vmKeIpVaPvQ |
VSC [002] | https://youtu.be/VxMFMgnpV3A |
VSC [003] | https://youtu.be/1KDXTQvmPbo |
VSC [004] | https://youtu.be/K7cGrHdO4Ow |
VSC [005] | https://youtu.be/o2PW8xe5CSk |
VSC [006] | https://youtu.be/GwKLwJgm7Qw |