האוספים הגנריים של C# כבר מכילים את רוב המסלול הזה: Stack<T>, Queue<T>, Dictionary<TKey,TValue>, LinkedList<T> ו־SortedSet<T> הם מחסנית, תור, טבלת גיבוב, רשימה מקושרת דו־כיוונית ועץ חיפוש מאוזן. בנו כל מבנה בעצמכם ב־C#, ואז מיינו, השתמשו ברקורסיה וחפשו בגרפים בעזרתם, וסיימו בשאלות ראיונות שנבדקות. בחינם, בדפדפן, עם תעודה ברוב הקורסים.
כל שלב הוא אוסף של קורסים קיימים ב־Coddy, וכל כפתור התחלה פותח אותם ב־C#. שלושת הקורסים שעדיין לא נלמדים ב־C# מופיעים אחרי השלבים.
1
שלב 1
סדרת מבני הנתונים, חלק ראשון
להתחיל את השלב הזהלהתחילמחסנית, תור, עץ בינארי, טבלת גיבוב ורשימה מקושרת, כל אחד נבנה מאפס ב־C# ואז משמש לפתרון בעיות. בסופו, Stack<T>, Queue<T> ו־Dictionary<TKey,TValue> הם מבנים שכתבתם בעצמכם, ואתם יודעים כמה עולה כל קריאה שלהם.להתחיל
להתחיל את השלב הזהלהתחילרשימה מקושרת דו־כיוונית, ערימות ותורי עדיפויות, עצי trie, גרפים ועץ AVL המאזן את עצמו. LinkedList<T> היא הראשונה מביניהם, מוכנה מראש; אחרי השלב הזה SortedSet<T> הוא עץ מאוזן שאתם מבינים, אדום־שחור במקום AVL כמו שלכם, וערימה היא משהו שאתם יכולים לכתוב בכל גרסה של .NET.להתחיל
להתחיל את השלב הזהלהתחילמיון בועות, בחירה, הכנסה, מיזוג, מהיר, ערימה, מנייה ובסיס, נכתבים ב־C# ונצפים בוויזואלייזר. Array.Sort ו־List<T>.Sort הם introsort, מיון מהיר שמגובה במיון ערימה ובמיון הכנסה, והם לא יציבים, בעוד ש־OrderBy של LINQ יציב; אחרי השלב הזה תדעו למה.להתחיל
להתחיל את השלב הזהלהתחילאתגרי רקורסיה ב־C#, שנבדקים במקרי בדיקה כמו כל שיעור. ב־.NET רקורסיה שלא מגיעה לתנאי העצירה שלה נגמרת ב־StackOverflowException, שאי אפשר לתפוס, ולכן כל מתודה רקורסיבית צריכה את דרך היציאה שלה לפני כל דבר אחר. תכנות דינמי ומניפולציית ביטים מופיעים אחרי השלבים, כי הם נלמדים ב־Python וב־C++.להתחילדף ייעודי15 שיעורים15 אתגרים
5
שלב 5
אלגוריתמים על גרפים
להתחיל את השלב הזהלהתחילחיפוש לרוחב ולעומק, Dijkstra, Bellman-Ford, מיון טופולוגי, Kruskal ו־Prim ב־C#, על הגרף שבניתם בשלב השני. Dijkstra צריך תור עדיפויות, ו־C# קיבלה אחד רק ב־.NET 6, ולכן הערימה משלב שתיים היא זו שכדאי להכיר.להתחיל
להתחיל את השלב הזהלהתחילעשר חבילות אתגרי ראיונות ושני מאגרי בעיות תכנות ב־C#, שנבדקים במקרי בדיקה: בעיות לא מוכרות, שנפתרות בלי מדריך, עם אוספים שאתם יודעים עכשיו להסביר ומבנים שכתבתם בעצמכם.להתחיל
התחרו בטבלאות דירוג עולמיות, הזמינו חברים כדי לקבל פרסים וחגגו את ההצלחות אחד של השני. תכנות עם חברים זה יותר כיף!
ליגת המתמודדים7 המובילים עולים
1
Alex7+ Days
2840
2
Jordan7+ Days
2650
3
Sam7+ Days
2420
4
Casey
2180
5
Morgan7+ Days
1950
אזור העלייה
כל הדרכים ללמוד
לקרוא, להאזין, לבחון את עצמכם, לשאול את ה-AI או לחפש כל דבר שכבר למדתם. כל שיעור פוגש אתכם בדיוק איפה שאתם.
מבוא למשתנים
אודיו
משתנה הוא מיכל עם שם ששומר ערך שאפשר להתייחס אליו בהמשך התוכנית.
ב-Python יוצרים משתנה על ידי כתיבת השם, סימן שווה, ואז הערך שרוצים לשמור.
הערך יכול להשתנות עם הזמן. השמה מחדש לאותו שם פשוט מפנה אותו לערך חדש.
1xשרה
לקבל תעודה
קבלו תעודה על כל קורס שתסיימו. הוסיפו אותן לפרופיל ה-LinkedIn ולקורות החיים כדי להציג למעסיקים את כישורי התכנות שלכם.
תעודת סיום
תעודה זו מאשרת כיישראל ישראליהשלים/ה בהצלחה את
יסודות Python
תאריךינו׳ 2026
להוסיף ל-LinkedIn
למה ללמוד DSA ב־C# ב־Coddy
לדעת מה עולה כל אוסף. List<T> הוא מערך דינמי, ולכן Insert(0, x) מזיז כל איבר שאחריו; Dictionary<TKey,TValue> הוא טבלת גיבוב, זמן קבוע בממוצע וטוב רק כמו ה־GetHashCode של המפתחות שלכם. לבנות את המבנים בעצמכם זו הדרך שבה העובדות האלה מפסיקות להיות טריוויה ומתחילות להכריע באיזה אוסף תבחרו.
השפה של Unity ושל .NET. ב־C# כותבים סקריפטים למשחקי Unity, והרבה מאוד תוכנה ארגונית רצה על .NET; שתיהן נשענות על אותם מבנים. מפת אריחים היא גרף, מציאת מסלול היא חיפוש בגרף, וסדר תורות או לוח אירועים הוא תור עדיפויות, כך שהאלגוריתם ובסיס הקוד מדברים באותה שפה.
כמעט כל המסלול ב־C#. כל מבנה נתונים, מיון, אלגוריתם גרפים, אתגר רקורסיה וחבילת ראיונות נלמדים ב־C#. שלושה נלמדים במקום אחר ומופיעים אחרי השלבים עם קישור לכל אחד: תכנות דינמי וסדרת הראיונות של Python ב־Python, ומניפולציית ביטים ב־C++. מניפולציית ביטים היא הקלה מבין השלושה לעקוב אחריה מתוך C#, שכותבת את האופרטורים הביטיים של C++ באותם סימנים.
נבדק כמו בראיון. כל שיעור מסתיים באתגר C# שנבדק במקרי בדיקה, וכשאחד נכשל, Bugsy קוראת את הקוד שלכם ומכוונת אתכם לתיקון בלי לתת את התשובה. תעודה חינמית ברוב הקורסים, וכל אחת ניתנת לאימות בכתובת משלה.
שאלות נפוצות על DSA ב־C#
האם C# טובה למבני נתונים ואלגוריתמים?
כן. היא נקראת בדומה ל־Java: הטיפוסים הופכים כל צומת, הפניה ופרמטר גנרי למפורשים, ו־System.Collections.Generic מכסה את רוב המבנים במסלול הזה. כדאי לבנות שני הרגלים מוקדם. LINQ תמציתי, אבל כל OrderBy הוא מיון וכל Where הוא לולאה, כך שהוא מסתיר את העלויות שאתם לומדים לספור; ו־Array.Sort אינו יציב, וזה משנה בכל פעם שמפתחות שווים צריכים לשמור על הסדר שלהם.
איזה אוסף של .NET מתאים לאיזה מבנה נתונים?
List<T> הוא מערך דינמי, Stack<T> ו־Queue<T> מבוססים על מערך, LinkedList<T> היא רשימה מקושרת דו־כיוונית, Dictionary<TKey,TValue> ו־HashSet<T> הם טבלאות גיבוב, ו־SortedDictionary<TKey,TValue> ו־SortedSet<T> הם עצים אדומים־שחורים, מאוזנים כמו עץ ה־AVL שאתם בונים בשלב השני. SortedList<TKey,TValue> הוא זוג מערכים שנשמרים לפי סדר המפתחות, ומאז .NET 6 PriorityQueue<TElement,TPriority> היא ערימת מינימום מבוססת מערך. אין מחלקה לעץ trie או לגרף; אותם כותבים בעצמכם.
צומת של עץ או של רשימה ב־C# צריך להיות class או struct?
class. struct הוא טיפוס ערך: הוא לא יכול להכיל שדה מהטיפוס של עצמו בכלל, ובכל מקום שבו הוא מועתק, שינוי בעותק משאיר את המקור ללא שינוי. מופע של class הוא הפניה, כך שצמתים יכולים להצביע זה על זה כמו שרשימה מקושרת או עץ צריכים. שמרו את ה־structs לערכים קטנים, כמו קואורדינטה ברשת או קשת משוקללת.
האם יש ב־C# תור עדיפויות?
מאז .NET 6, כן: PriorityQueue<TElement,TPriority>, ערימת מינימום מבוססת מערך שבה כל איבר נכנס לתור עם העדיפות שלו; העבירו IComparer<TPriority> שהופך את הסדר כדי לקבל ערימת מקסימום. ב־.NET Framework ובסביבות ריצה ישנות יותר אין תור כזה, ולכן מפתחי C# כתבו במשך זמן רב ערימה משלהם או כופפו SortedSet<T> לתפקיד, ולכן היכולת לכתוב אחת עדיין חשובה. בשלב השני אתם עושים את זה.
אילו קורסים במסלול הזה לא נלמדים ב־C#?
שלושה: תכנות דינמי וסדרת הראיונות של Python, שנלמדים ב־Python, ומניפולציית ביטים, שנלמדת ב־C++. הם מופיעים אחרי השלבים, כל אחד עם קישור שפותח אותו בשפה שלו. טבלת memo ב־C# היא מערך או Dictionary, וטריקים של ביטים עוברים בקלות, עד להבחנה ש־C++ עושה: >> שומר על הסימן ב־int וממלא באפסים ב־uint.
האם צריך לדעת C# לפני שמתחילים את המסלול?
מחלקות, מתודות, מערכים, לולאות ואוספים גנריים כמו List<T>, לכל הפחות. אם הם חדשים לכם, קורס C# של Coddy מביא אתכם לשם קודם, בחינם, והמסלול הזה ממשיך מהמקום שבו הוא מסתיים.
האם מקבלים תעודה על מסלול מבני נתונים ואלגוריתמים?
כן. סיימו כל שלב וקבלו תעודה אחת בחינם על כל מסלול מבני נתונים ואלגוריתמים. היא מפרטת כל קורס שסיימתם בדרך, ומקשרת לתעודה של כל קורס, כך שכל אחד יכול לאמת כל מיומנות שמופיעה בה. אפשר להוסיף אותה לפרופיל ה-LinkedIn. זו תעודת סיום מ-Coddy, לא הסמכה מוכרת.
מסלולי למידה נוספים
אותם קורסים, מסודרים לתפקיד אחר. ההתקדמות עוברת איתכם: קורס שסיימתם במסלול אחד נספר בכל מסלול שכולל אותו.