סדרת מבני הנתונים, חלק ראשון
להתחיל את השלב הזהלהתחילמחסנית, תור, עץ בינארי, טבלת גיבוב ורשימה מקושרת, כל אחד נבנה מאפס ב־Ruby ואז משמש לפתרון בעיות. בסופו,Array כמחסנית או כתור, ו־Hash כטבלת חיפוש, הן בחירות שאתם יודעים להסביר ולא הרגלים.להתחילRuby נותנת לכם Array, Hash ו־Set, ולא נותנת ערימה, תור עדיפויות, רשימה מקושרת או עץ. במסלול הזה אתם בונים כל מבנה חסר ב־Ruby, שבה סריקה היא בלוק each אחד, ואז ממיינים, משתמשים ברקורסיה ומחפשים בגרפים בעזרתם, ומסיימים בשאלות ראיונות שנבדקות. בחינם, בדפדפן, עם תעודה ברוב הקורסים.
377 שיעורים228 אתגרים702 שאלות חידון
כל שלב הוא אוסף של קורסים קיימים ב־Coddy, וכל כפתור התחלה פותח אותם ב־Ruby. שלושת הקורסים שעדיין לא נלמדים ב־Ruby מופיעים אחרי השלבים.
Array כמחסנית או כתור, ו־Hash כטבלת חיפוש, הן בחירות שאתם יודעים להסביר ולא הרגלים.להתחילArray, Hash ו־Set ש־Ruby משאירה לכם. הערימה שאתם כותבים כאן היא תור העדיפויות ששלב הגרפים צריך.להתחילArray#sort לא מבטיח יציבות; אחרי השלב הזה תדעו אילו משמונת המיונים היו יכולים להבטיח אותה.להתחילSystemStackError (stack level too deep), ו־Ruby לא מבצעת אופטימיזציה לקריאות זנב כברירת מחדל, כך שכדאי לשים לב לעומק גם בשפה סלחנית כל כך. תכנות דינמי ומניפולציית ביטים מופיעים אחרי השלבים, כי הם נלמדים ב־Python וב־C++.להתחילדף ייעודיכתבו קוד אמיתי, שלפו נתונים ממסדי נתונים, בנו אתרים ושלטו בפרומפטים ל-AI. השיעורים האינטראקטיביים שלנו מכסים כל מיומנות שמפתחים מודרניים צריכים.
שמרו על עקביות וראו איך ההתקדמות שלכם גדלה! עקבו אחרי הרגל התכנות היומי, הגנו על הרצף עם ימי הקפאה וקבלו פרסים על כל יום שאתם מגיעים.
12 ימי רצף
חזרו מחר כדי לשמור על הרצף!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
הכל או כלום
יום 5 מתוך 7
הקפאת רצף
2 left
קחו את מסע התכנות שלכם לכל מקום! בלי התקנות, בלי הורדות - פשוט פותחים ומתחילים לתכנת. זמין ב-iOS, ב-Android ובאתר עם דירוג של 4.9 כוכבים.
התחרו בטבלאות דירוג עולמיות, הזמינו חברים כדי לקבל פרסים וחגגו את ההצלחות אחד של השני. תכנות עם חברים זה יותר כיף!
לקרוא, להאזין, לבחון את עצמכם, לשאול את ה-AI או לחפש כל דבר שכבר למדתם. כל שיעור פוגש אתכם בדיוק איפה שאתם.
משתנה הוא מיכל עם שם ששומר ערך שאפשר להתייחס אליו בהמשך התוכנית.
ב-Python יוצרים משתנה על ידי כתיבת השם, סימן שווה, ואז הערך שרוצים לשמור.
הערך יכול להשתנות עם הזמן - השמה מחדש לאותו שם פשוט מפנה אותו לערך חדש.
קבלו תעודה על כל קורס שתסיימו. הוסיפו אותן לפרופיל ה-LinkedIn ולקורות החיים כדי להציג למעסיקים את כישורי התכנות שלכם.
Array הוא מחסנית ותור בבת אחת, Hash הוא טבלת גיבוב ששומרת על סדר ההכנסה, ו־Set נמצא בספרייה הסטנדרטית; מעבר לזה, אין ערימה, תור עדיפויות, רשימה מקושרת או עץ. כששאלת ראיון ב־Ruby צריכה אחד מהם, מצפים שתכתבו אותו, ובמסלול הזה אתם כותבים.Enumerable (each, map, select, reduce) מקצרים סריקה לשורה או שתיים, כך שחיפוש לרוחב או מיזוג נקראים כמעט כמו פסאודו־קוד. רק זכרו שכל אחת מהקריאות האלה היא לולאה עם עלות, וזה מה שהמסלול הזה מלמד אתכם לספור.Array#sort לא מבטיח יציבות, כך שכאשר איברים שווים צריכים לשמור על הסדר שלהם, מיינו לפי זוג: sort_by.with_index { |x, i| [x, i] }.Array הוא מערך דינמי שמשמש כמחסנית (push, pop) וכתור (push, shift); Hash הוא טבלת גיבוב שזוכרת את סדר ההכנסה; ו־Set, בספרייה הסטנדרטית, הוא קבוצה מבוססת גיבוב. זו כל הרשימה. אין ערימה, תור עדיפויות, רשימה מקושרת, עץ, trie או גרף, ולכן אותם אתם בונים בעצמכם, בשלבים אחד ושתיים.bsearch_index ו־insert, O(n) לכל הוספה; או לכתוב ערימה בינארית על Array, O(log n) גם להוספה וגם לשליפה. השלישית היא מה שמראיין מחפש, ובשלב השני אתם בונים אותה.Hash של Ruby חשוב לאלגוריתמים?Hash שבו קריאה מוחקת את המפתח ומכניסה אותו מחדש כדי להזיז אותו לסוף, ופינוי הוא shift, שמסיר את הרשומה הוותיקה ביותר. ברוב השפות זה דורש טבלת גיבוב ועוד רשימה מקושרת דו־כיוונית, המבנים שאתם בונים בשלבים אחד ושתיים, כך שתוכלו להסביר מה Ruby עושה בשבילכם.Hash עם בלוק ברירת מחדל, כמו ב־Hash.new { |h, n| h[n] = n < 2 ? n : h[n - 1] + h[n - 2] }, ו־n[i] קורא ישירות את ביט i של מספר שלם, במקום שבו C++ כותבת (n >> i) & 1.