סדרת מבני הנתונים, חלק ראשון
להתחיל את השלב הזהלהתחילמחסנית, תור, עץ בינארי, טבלת גיבוב ורשימה מקושרת, כל אחד נבנה מאפס ב־Swift ואז משמש לפתרון בעיות. בסופו, אתם יודעים למהArray הוא מחסנית טובה ותור איטי, ומה Dictionary עושה בשבילכם.להתחילהספרייה הסטנדרטית של Swift נותנת לכם Array, Dictionary ו־Set, ועוצרת שם: אין תור, ערימה, רשימה מקושרת או עץ. במסלול הזה אתם בונים כל אחד מהם ב־Swift, עם מחלקות לצמתים ו־weak לקישורים שמצביעים אחורה, ואז ממיינים, משתמשים ברקורסיה ומחפשים בגרפים בעזרתם, ומסיימים בשאלות ראיונות שנבדקות. בחינם, בדפדפן, עם תעודה ברוב הקורסים.
377 שיעורים228 אתגרים702 שאלות חידון
כל שלב הוא אוסף של קורסים קיימים ב־Coddy, וכל כפתור התחלה פותח אותם ב־Swift. שלושת הקורסים שעדיין לא נלמדים ב־Swift מופיעים אחרי השלבים.
Array הוא מחסנית טובה ותור איטי, ומה Dictionary עושה בשבילכם.להתחילweak מצדיק את מקומו, והערימה שאתם כותבים כאן היא זו ששלב הגרפים צריך.להתחילsorted(by:) מקבלת closure כמו { $0 > $1 }; אחרי השלב הזה, תוכלו לכתוב את האלגוריתם שבצד השני של הקריאה הזו.להתחילindirect enum, טיפוס שמותר לו להכיל את עצמו, ו־Swift לא מבטיחה אופטימיזציה לקריאות זנב, כך שרקורסיה עמוקה מספיק קורסת עם גלישת מחסנית במקום לרוץ לנצח. תכנות דינמי ומניפולציית ביטים מופיעים אחרי השלבים, כי הם נלמדים ב־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 ולקורות החיים כדי להציג למעסיקים את כישורי התכנות שלכם.
Deque וה־Heap שלה, נקראת אחרת אחרי שעשיתם את זה.Array, Dictionary ו־Set הם טיפוסי ערך עם copy-on-write, כך שהעברה שלהם זולה עד שמישהו משנה אותם. צומת של עץ לא יכול לעבוד כך: הוא חייב להיות מחלקה, או indirect enum, ומצביע להורה חייב להיות weak, אחרת ARC לעולם לא ישחרר את המעגל. מבני נתונים הם המקום שבו מודל הזיכרון של Swift מפסיק להיות תיאוריה.&, |, ^, ~, << ו־>>.Comparable ו־Hashable, ו־optionals הופכים צומת שה־next שלו עשוי להיות nil למפורש בטיפוס שלו, והקומפיילר בודק כל שימוש. כדאי לדעת שני דברים מוקדם: הספרייה הסטנדרטית דלה, כך שאתם כותבים את התור והערימה שלכם; ואוספים הם ערכים, כך שהשמה של מערך למשתנה חדש ושינוי שלו משאירים את המקור כמו שהוא, מה שמפתיע אנשים שמגיעים מ־Java או מ־JavaScript.Array הוא מערך דינמי ומחסנית, עם append ו־popLast(); Dictionary ו־Set הם טבלאות גיבוב. זו כל הספרייה הסטנדרטית. החבילה swift-collections של Apple, בקוד פתוח, מוסיפה Deque, Heap, OrderedSet ו־OrderedDictionary; את הרשימה המקושרת, העץ, ה־trie והגרף אתם כותבים בעצמכם, בשלבים אחד ושתיים.indirect enum עובד, לעצים שלעולם לא משנים במקום. המלכודת היא ARC: מצביע להורה חייב להיות weak, אחרת ההורה והילד משאירים זה את זה בחיים והעץ לעולם לא משתחרר.removeFirst(): על Array היא מזיזה כל איבר שנשאר, כך שכל הוצאה מהתור היא O(n). החזיקו אינדקס ראש וקדמו אותו, או השתמשו בשני מערכים: דחפו לתיבת כניסה, שלפו מתיבת יציאה, ומלאו מחדש את תיבת היציאה בהיפוך תיבת הכניסה כשהיא מתרוקנת. בשתי הדרכים הוצאה מהתור היא O(1) בממוצע לאורך זמן. ה־Deque של swift-collections עושה זאת בשבילכם, ובשלב הראשון אתם בונים תור בעצמכם.Dictionary, ולמספרים שלמים ב־Swift יש nonzeroBitCount ו־trailingZeroBitCount, שעושים במאפיין אחד את מה שטריק ביטים ב־C++ עושה ביד.