ללמוד תכנות ולהבין למה

שלום לכולם,

אני מנסה לעזור לחבר שאוהב להבין למה דברים נעשים דווקא בצורה מסויימת. הוא לומד תכנות ורוצה להיכנס לתחום. אין לו שום רקע קודם.

מה הייתם מלמדים בנוסף לתכנות? חשבתי על איך עובד מחשב, איך עובדת מערכת הפעלה, איך עובד דפדפן (לפיתוח web).
צריך להיכנס לפרוטוקולים של תקשורת?
עוד דברים שאתם חושבים שצריך ללמד?

שי

לא הייתי נכנס לאיך עובד מחשב ואיך עובדת מערכת הפעלה בתור התחלה. אלה נושאים יחסית כבדים.

גם תלוי איזה תכנות הוא לומד. אם הוא לומד C, הייתי מסביר על ייצוגים של מספרים. אם הוא לומד פייתון, זה מיותר. אם הוא נכנס ל־Web הייתי מפנה אותו למדריך של Django Girls שאחד הדברים הראשונים שמוסברים שם זה איך עובד ה־Web.

למי שרוצה באמת ללמוד את כל התורה, שמעתי המון דברים טובים על From NAND to Tetris אבל בשביל לעשות את זה צריך לדעת לתכנת (גילוי נאות: שמעון שוקן, אחד המחברים, הוא גם אחד המייסדים של Matific שאני מייעץ לה כבר כמה שנים טובות, אבל הוא ממש לא צריך המלצות ממני).

יוצא לי ללמד את זה די הרבה.
בדר"כ אני מתחיל ממחשב באופן כללי (חלקי המחשב, מה קורה מרגע שלוחצים על power), ואז על מעבד ואיך הוא פועל (באופן כללי), אופקודים, אסמבלי, c, פייתון.

בדר"כ משלב תוך כדי קצת רשתות.

באמת די מזכיר את nand to tetris.