# התקנות: כל מה שמתקינים בקורס<no value>

## מה בשיעור

השיעור הזה בנוי מכמה פרקים קצרים, באותו סדר כמו במצגת:

1. **פרק ראשון** — הכלים של הקורס: מה כל כלי עושה
2. **פרק שני** — שלבי ההתקנה, צעד אחר צעד
3. **פרק שלישי** — בדיקה שהכול מותקן, ומה נתקין בהמשך הקורס

## פרק ראשון: הכלים של הקורס

### מה נלמד?

בשיעור הזה נכיר את הקורס ואת דרך העבודה בו, ואז נכין את **סביבת העבודה** (Development Environment) — אוסף הכלים שבעזרתם נכתוב ונריץ קוד לאורך כל הקורס. בסוף השיעור יהיו מותקנים אצלכם כל הכלים, ותדעו מה התפקיד של כל אחד מהם:

- **VS Code** — המקום שבו כותבים קוד.
- **Python** — התוכנה שמריצה את הקוד שכתבנו.
- **Git** — הכלי ששומר היסטוריה של הקוד.
- **Docker** — מריץ תוכנות מוכנות, כמו מסד נתונים, בתוך "קופסה" מבודדת.
- **Terminal** — חלון שבו נותנים למחשב פקודות בכתב.

### למה צריך את זה?

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

בעולם האמיתי, היום הראשון של מפתח בחברה חדשה נראה בדיוק כך: מקבלים מחשב, מתקינים עורך קוד, שפת תכנות, Git ו-Docker, ובודקים שאפשר להריץ את הפרויקט. זו מיומנות שתצטרכו בכל מקום עבודה.

#### איך בנוי הקורס

- הקורס מחולק ל**נושאים**, לפי סדר הלימוד ובדיוק לפי סדר המצגות: התקנות, מחשב ומערכת הפעלה, רשתות, Python, Git, OOP, Backend ומסדי נתונים.
- כל נושא מחולק ל**שיעורים**. כל שיעור עומד בפני עצמו ובנוי באותו מבנה קבוע: מה נלמד ‏←‏ למה צריך ‏←‏ הסבר מהבסיס ‏←‏ תחביר ‏←‏ דוגמה ‏←‏ פירוק שורה אחר שורה ‏←‏ דוגמה נוספת ‏←‏ טעות נפוצה ‏←‏ תרגול ‏←‏ סיכום. בנושאים התיאורטיים (המחשב ומערכת ההפעלה, רשתות) אין קוד — והתרגול הוא שאלות הבנה.
- בסוף כל שיעור יש **5 תרגילים** — אותם תרגילים שבקובץ התרגילים של המצגת. הפתרונות מוסתרים ונפתחים רק בלחיצה, כדי שתנסו קודם לבד.
- בראש ובתחתית כל שיעור יש כפתור **סמן כהושלם**, ובכל עמוד מוצגת ההתקדמות הכללית שלכם בקורס.

{{< box "tip" "איך להפיק את המקסימום מהאתר" >}}
אל תסתפקו בקריאה. בכל פעם שמופיעה דוגמת קוד — הקלידו אותה בעצמכם (לא העתק-הדבק) והריצו. ההקלדה מכריחה את המוח לשים לב לכל תו, וזו הדרך המהירה ביותר ללמוד תחביר.
{{< /box >}}

### הסבר מהבסיס

#### מהו קוד, ומי מבין אותו?

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

#### Python — המתורגמן

**Python** היא גם שם השפה וגם שם התוכנה שמריצה אותה. התוכנה הזו נקראת **Interpreter** (מפרש) — היא קוראת את הקובץ שלנו שורה אחר שורה ומבצעת כל שורה.

{{< box "analogy" "אנלוגיה" >}}
דמיינו שאתם כותבים מתכון בעברית, והטבח מדבר רק יפנית. ה-Interpreter הוא המתורגמן שעומד ליד הטבח, קורא את המתכון שורה אחר שורה ואומר לו מה לעשות. בלי מתורגמן — המתכון הוא סתם דף.
{{< /box >}}

#### VS Code — עורך הקוד

**VS Code** (Visual Studio Code) הוא **עורך קוד** (Code Editor) — תוכנה לכתיבת טקסט, שמותאמת במיוחד לקוד. אפשר לכתוב קוד גם ב-Notepad, אבל VS Code נותן:

- **צביעת תחביר** (Syntax Highlighting) — מילים שונות בקוד נצבעות בצבעים שונים, כך שקל לזהות טעויות.
- **השלמה אוטומטית** — מציע שמות של פונקציות ומשתנים בזמן ההקלדה.
- **Terminal מובנה** — אפשר להריץ את הקוד בלי לצאת מהעורך.
- **Debugger** — כלי לעצירת הקוד באמצע ובדיקה מה קורה בו (נלמד בנושא Python).

חשוב להבין: **VS Code לא מריץ את הקוד בעצמו.** כשלוחצים "Run", הוא פשוט מבקש מ-Python להריץ את הקובץ. לכן צריך להתקין את שניהם.

#### Git — מכונת הזמן של הקוד

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

#### Docker — תוכנות מוכנות בקופסה

בהמשך הקורס נעבוד עם **מסד נתונים** — תוכנה שמנהלת ושומרת מידע (MySQL). להתקין אותה ישירות על המחשב זה תהליך ארוך ושונה בכל מערכת הפעלה. **Docker** פותר את זה: הוא מריץ תוכנות מוכנות בתוך **קונטיינר** (Container) — "קופסה" מבודדת שכבר יש בה כל מה שהתוכנה צריכה. בפקודה אחת, ואצל כולם בדיוק אותו דבר. היום רק מתקינים, ונשתמש בו כשנגיע למסדי נתונים.

#### Terminal — לדבר עם המחשב בכתב

רוב הזמן אנחנו מפעילים את המחשב בעכבר: לוחצים על אייקונים, גוררים קבצים. ה-**Terminal** (נקרא גם Command Line או שורת הפקודה) הוא דרך אחרת: כותבים **פקודה** בטקסט, לוחצים Enter, והמחשב מבצע ומחזיר תשובה בטקסט.

למה לעבוד ככה? כי הרבה כלים של מפתחים (Python, Git, שרתים) עובדים בעיקר דרך פקודות. ב-Windows ה-Terminal מריץ בדרך כלל את **PowerShell**, ובמק/לינוקס את **Bash** או **Zsh**. נלמד את ההבדלים בנושא המחשב ומערכת ההפעלה.

{{< box "term" "מילון קצר" >}}
- **Development Environment** — סביבת הפיתוח: כל הכלים יחד.
- **Interpreter** — תוכנה שקוראת קוד ומבצעת אותו שורה אחר שורה.
- **Code Editor** — עורך טקסט שמותאם לכתיבת קוד.
- **Version Control** — מערכת שמנהלת גרסאות של קוד לאורך זמן.
- **Container** — "קופסה" מבודדת שבה רצה תוכנה מוכנה, עם כל מה שהיא צריכה.
- **Terminal** — חלון שבו נותנים פקודות בכתב.
- **Command** — פקודה: שורת טקסט שמבקשת מהמחשב לבצע משהו.
{{< /box >}}

<!-- docs:start — generated by scripts/intro6/site_docs.py; edit the links there -->

### דוקומנטציה רשמית

- [Using Python on Windows](https://docs.python.org/3/using/windows.html) — התקנת Python ב-Windows
- [VS Code — Getting Started with Python](https://code.visualstudio.com/docs/python/python-tutorial) — VS Code עם התוסף של Python
- [Pro Git — About Version Control](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control) — מה זה Git ולמה צריך ניהול גרסאות
- [Docker — What is a container?](https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-a-container/) — מה זה קונטיינר

<!-- docs:end -->

## פרק שני: שלבי ההתקנה

### מה נלמד?

מתקינים את ארבעת הכלים לפי הסדר: **Python**, **VS Code**, **Git** ו-**Docker**. כל כלי מורידים רק מהאתר הרשמי שלו (הקישורים כאן למטה), וברוב המסכים משאירים את ברירות המחדל. אחרי כל התקנה בודקים שהכלי עובד — ורק אז ממשיכים לבא.

**1. Python**

1. נכנסים ל-[python.org/downloads](https://www.python.org/downloads/) ומורידים את הגרסה העדכנית (3.12 ומעלה).
2. **ב-Windows — חשוב מאוד:** במסך הראשון של ההתקנה מסמנים **Add python.exe to PATH**. בלי זה ה-Terminal לא ימצא את Python (נסביר מהו PATH בנושא המחשב ומערכת ההפעלה).
3. לוחצים Install Now ומחכים לסיום.

**2. VS Code**

1. מורידים מ-[code.visualstudio.com](https://code.visualstudio.com/) ומתקינים עם ברירות המחדל.
2. ב-Windows, מסמנים בהתקנה גם **Add to PATH** ו-**Open with Code**.
3. פותחים את VS Code ‏←‏ לשונית **Extensions** (סמל הריבועים בצד) ‏←‏ מחפשים **Python** (של Microsoft) ‏←‏ Install.
4. (אפשר גם עכשיו, וחובה בנושא מסדי נתונים) תוסף **Database Client** (של Weijan Chen) — ממשק לצפייה במסד הנתונים ולהרצת SQL.

**3. Git**

1. מורידים מ-[git-scm.com/downloads](https://git-scm.com/downloads) ומתקינים עם ברירות המחדל.
2. במק אפשר גם להריץ בטרמינל `xcode-select --install`.

**4. Docker**

1. מורידים את **Docker Desktop** מ-[docker.com/products/docker-desktop](https://www.docker.com/products/docker-desktop/) ומתקינים עם ברירות המחדל.
2. **ב-Windows:** Docker Desktop צריך את **WSL 2** (תשתית של Windows להרצת Linux). אם ההתקנה מבקשת להתקין או לעדכן אותו — מאשרים, ולפעמים צריך להפעיל את המחשב מחדש.
3. פותחים את **Docker Desktop** ומחכים שיסיים לעלות (בפינה מופיע **Engine running**). פקודות `docker` עובדות רק כשהוא פתוח.

**5. Terminal**

- **Windows:** ה-Terminal כבר מותקן. מחפשים בתפריט התחל **Terminal** או **PowerShell**.
- **Mac:** אפליקציית **Terminal** (חיפוש עם `Cmd + Space`).
- **בתוך VS Code:** תפריט **Terminal → New Terminal** (או `` Ctrl + ` ``). זה ה-Terminal שנעבוד איתו רוב הקורס.

{{< box "warn" "אחרי התקנה — לפתוח Terminal חדש" >}}
Terminal שהיה פתוח לפני ההתקנה לא "יודע" על הכלי החדש. אם מקבלים שגיאה שהפקודה לא נמצאה — סוגרים את ה-Terminal (ואת VS Code) ופותחים מחדש.
{{< /box >}}

<!-- docs:start — generated by scripts/intro6/site_docs.py; edit the links there -->

### דוקומנטציה רשמית

- [Python Downloads](https://www.python.org/downloads/) — הורדת Python מהאתר הרשמי
- [Visual Studio Code on Windows](https://code.visualstudio.com/docs/setup/windows) — התקנת VS Code ב-Windows
- [Pro Git — Installing Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) — התקנת Git בכל מערכת הפעלה
- [Install Docker Desktop on Windows](https://docs.docker.com/desktop/setup/install/windows-install/) — התקנת Docker Desktop, כולל WSL 2
- [Install WSL](https://learn.microsoft.com/en-us/windows/wsl/install) — התקנת WSL 2 ב-Windows

<!-- docs:end -->

## פרק שלישי: בדיקה ומה מתקינים בהמשך

### תחביר

"התחביר" של היום הוא פקודות בדיקה. אחרי כל התקנה בודקים שהכלי מותקן בעזרת הדגל `--version`, שפשוט מדפיס את גרסת הכלי:

```powershell
python --version
git --version
code --version
docker --version
```

המבנה של כל פקודה:

```text
<program name>  <flag>
     python     --version
```

- **שם התוכנה** — איזו תוכנה להפעיל.
- **דגל** (Flag) — מילה שמתחילה ב-`--` (או `-`) ומשנה את מה שהתוכנה עושה. `--version` אומר: "אל תעשי שום דבר חוץ מלהדפיס את הגרסה שלך".

### דוגמת קוד ראשונה

פותחים Terminal ומריצים את פקודת הבדיקה הראשונה:

```powershell
python --version
```

**פלט צפוי (Expected Output):**

```text
Python 3.12.4
```

המספר אצלכם יכול להיות שונה — העיקר שמתחיל ב-`Python 3`.

### פירוק הקוד שורה אחר שורה

```powershell
python --version
```

| חלק | מה הוא עושה |
|---|---|
| `python` | שם התוכנה. ה-Terminal מחפש במחשב תוכנה בשם הזה (בתיקיות שרשומות ב-PATH) ומפעיל אותה. |
| רווח | מפריד בין שם התוכנה לבין מה שמעבירים לה. |
| `--version` | דגל שאומר ל-Python: "הדפיסי את הגרסה וצאי". Python לא מריצה שום קוד במקרה הזה. |

ומה מופיע בפלט:

| פלט | משמעות |
|---|---|
| `Python` | שם התוכנה שענתה — הוכחה שה-Terminal מצא אותה. |
| `3.12.4` | מספר הגרסה: 3 = גרסה ראשית, 12 = גרסת משנה, 4 = תיקון באגים. |

### דוגמה נוספת

עכשיו בודקים את כל הסביבה בבת אחת — ארבע פקודות, אחת אחרי השנייה:

```powershell
python --version
git --version
code --version
docker --version
```

**פלט צפוי:**

```text
Python 3.12.4
git version 2.45.1.windows.1
1.93.1
38c31bc77e0dd6ae88a4e9cc93428cc27a56ba40
x64
Docker version 27.3.1, build ce12230
```

- `git version ...` — Git מותקן.
- `Docker version ...` — Docker מותקן. (המספרים אצלכם יכולים להיות שונים.)
- `code --version` מדפיס שלוש שורות: גרסת VS Code, מזהה הבנייה (מחרוזת ארוכה) וסוג המעבד (`x64` או `arm64`). כל שלוש השורות תקינות.

### טעות נפוצה

**הטעות:** מתקינים Python ב-Windows בלי לסמן את **Add python.exe to PATH**, ואז מריצים:

```powershell
python --version
```

ומקבלים:

```text
python : The term 'python' is not recognized as the name of a cmdlet, function,
script file, or operable program.
```

או לפעמים נפתחת דווקא חנות Microsoft Store.

**למה זה קורה?** ה-Terminal מחפש תוכנות רק בתיקיות שרשומות ברשימה בשם **PATH**. אם Python לא נרשמה שם — מבחינת ה-Terminal היא לא קיימת, גם אם היא מותקנת על הדיסק.

**התיקון:**

1. מריצים שוב את קובץ ההתקנה של Python ‏←‏ **Modify** ‏←‏ **Next** ‏←‏ מסמנים **Add Python to environment variables** ‏←‏ Install.
2. סוגרים ופותחים מחדש את ה-Terminal.
3. חלופה ב-Windows: הפקודה `py --version` (ה-Python Launcher) עובדת בדרך כלל גם בלי PATH.

{{< box "warn" "Docker: Docker Desktop לא פתוח" >}}
`docker --version` עובד גם כש-Docker Desktop סגור — אבל פקודות אחרות (כמו `docker ps`) ייכשלו עם `failed to connect to the docker API`. הפתרון: לפתוח את Docker Desktop ולחכות שיעלה.
{{< /box >}}

{{< box "warn" "עוד טעות קלאסית: Mac" >}}
במק, הפקודה `python` לפעמים לא קיימת ורק `python3` עובדת. זה תקין. במק השתמשו ב-`python3` בכל מקום שבו כתוב `python` באתר.
{{< /box >}}

### מה נתקין בהמשך הקורס

ארבעת הכלים מותקנים כבר מהיום הראשון. במהלך הקורס נוסיף עוד כמה דברים — כל אחד בדיוק בנושא שצריך אותו. אין צורך להתקין אותם עכשיו; כאן הם מופיעים כדי שתהיה לכם **רשימה אחת מלאה** של כל ההתקנות בקורס:

| מה | מתי | איך |
|---|---|---|
| **חשבון GitHub** | נושא Git | נרשמים ב-[github.com](https://github.com) (חינם) |
| **הגדרת שם ומייל ל-Git** | נושא Git | `git config --global user.name` ו-`user.email` — פעם אחת במחשב |
| **סביבה וירטואלית** (venv) | נושא Backend | `python -m venv .venv` בתיקיית הפרויקט |
| **FastAPI** | נושא Backend | `pip install "fastapi[standard]"` בתוך ה-venv |
| **מסד הנתונים MySQL** | נושא מסדי נתונים | קונטיינר ב-Docker: `docker run ... mysql:8.4` |
| **תוסף Database Client** | נושא מסדי נתונים | ב-VS Code: Extensions → **Database Client** (של Weijan Chen) |
| **ה-Driver ‏mysql-connector-python** | נושא מסדי נתונים | `pip install mysql-connector-python` בתוך ה-venv |

הפקודות עצמן — רק כדי להכיר. נריץ אותן כשנגיע לנושא, עם הסבר מלא:

```powershell
# Git topic: one-time identity
git config --global user.name "Dana Cohen"
git config --global user.email "dana@example.com"

# Backend topic: inside a venv
pip install "fastapi[standard]"

# Databases topic: driver + MySQL image
pip install mysql-connector-python
docker pull mysql:8.4
```

- **`pip`** — מנהל החבילות של Python. הוא מוריד ספריות מהאינטרנט ומתקין אותן, כמו חנות אפליקציות לקוד.
- **`docker pull`** — מוריד מראש את ה-**Image** של MySQL (התבנית שממנה Docker יוצר קונטיינר). במסדי נתונים `docker run` יוריד אותו לבד אם הוא חסר — אבל אם יש לכם זמן ואינטרנט טוב, אפשר להוריד אותו כבר עכשיו.

{{< box "tip" "רשימת בדיקה לסוף השיעור" >}}
- `python --version` מדפיס `Python 3.x`
- `git --version` מדפיס `git version ...`
- `code --version` מדפיס את גרסת VS Code
- `docker --version` מדפיס `Docker version ...`, ו-Docker Desktop נפתח ומציג **Engine running**
- ב-VS Code מותקן התוסף **Python** של Microsoft
{{< /box >}}

### סיכום

- **סביבת עבודה** = חמישה כלים: VS Code (כותבים), Python (מריצים), Git (שומרים היסטוריה), Docker (מריץ תוכנות מוכנות, כמו מסד נתונים), Terminal (נותנים פקודות).
- **Python היא Interpreter** — היא קוראת את הקוד שלנו ומבצעת אותו שורה אחר שורה. VS Code רק מבקש ממנה להריץ.
- **ב-Windows מסמנים Add python.exe to PATH** בהתקנה של Python, ו-Docker Desktop צריך WSL 2.
- בודקים התקנה של כל כלי עם `--version`.
- שגיאת "not recognized" אומרת בדרך כלל שהכלי לא רשום ב-**PATH**, או שה-Terminal נפתח לפני ההתקנה.
- **בהמשך הקורס** נוסיף: חשבון GitHub ו-`git config` (Git), venv ו-FastAPI (Backend), MySQL ב-Docker, Database Client וה-Driver (מסדי נתונים).

<!-- docs:start — generated by scripts/intro6/site_docs.py; edit the links there -->

### דוקומנטציה רשמית

- [Python — Installing Python Modules](https://docs.python.org/3/installing/index.html) — איך pip מתקין ספריות
- [Pro Git — First-Time Git Setup](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup) — הגדרת שם ומייל עם git config
- [Docker Hub — MySQL official image](https://hub.docker.com/_/mysql) — ה-Image של MySQL שנשתמש בו
- [FastAPI — Virtual Environments](https://fastapi.tiangolo.com/virtual-environments/) — סביבה וירטואלית והתקנת FastAPI

<!-- docs:end -->

<!-- exercises:start — generated by scripts/intro6/sync_site_exercises.py; edit scripts/intro6/exercises/ -->
## תרגול

שאלות הבנה על החומר של השיעור — בלי קוד.

### תרגיל 1: חמישה כלים — חמישה תפקידים

התאימו לכל כלי את התפקיד שלו:

| כלי | תפקיד |
|---|---|
| Python | ? |
| VS Code | ? |
| Git | ? |
| Terminal | ? |
| Docker | ? |

התפקידים: (א) שומר היסטוריה של כל שינוי בקוד, (ב) קורא את הקוד ומבצע אותו, (ג) מקום שבו נותנים למחשב פקודות כתובות, (ד) המקום שבו כותבים קוד, (ה) מריץ תוכנות מוכנות — כמו מסד נתונים — בתוך קונטיינר.

{{< solution >}}
| כלי | תפקיד |
|---|---|
| Python | (ב) — המתורגמן: קורא את הקוד ומבצע אותו |
| VS Code | (ד) — עורך הקוד: כותבים, מריצים ומדבגים |
| Git | (א) — מכונת הזמן: היסטוריה של כל שינוי בקוד |
| Terminal | (ג) — מדברים עם המחשב בפקודות כתובות |
| Docker | (ה) — מריץ תוכנות מוכנות, כמו MySQL, בקונטיינר מבודד |
{{< /solution >}}

### תרגיל 2: "The term 'python' is not recognized"

סטודנטית התקינה Python, פתחה את ה-Terminal שהיה פתוח כבר מקודם, הקלידה `python --version` וקיבלה את ההודעה:

```text
python : The term 'python' is not recognized as the name of a cmdlet...
```

1. מה ההודעה אומרת?
2. תנו שתי סיבות אפשריות לבעיה, ומה עושים בכל מקרה.

{{< solution >}}
1. ה-Terminal לא מצא תוכנה בשם `python` באף אחת מהתיקיות שרשומות ב-**PATH**.
2. שתי סיבות אפשריות:
   - **ה-Terminal נפתח לפני ההתקנה** — הוא לא "יודע" על השינוי ב-PATH. סוגרים ופותחים Terminal חדש.
   - **בהתקנה לא סומנה התיבה Add python.exe to PATH** — מריצים שוב את ההתקנה (Modify) ומסמנים אותה, או משתמשים ב-`py --version`.

(ב-Mac הפקודה היא בדרך כלל `python3`.)
{{< /solution >}}

### תרגיל 3: "failed to connect to the docker API"

סטודנט התקין Docker Desktop. הפקודה `docker --version` עובדת ומדפיסה גרסה, אבל הפקודה `docker ps` נכשלת:

```text
failed to connect to the docker API
```

1. איך ייתכן שפקודה אחת של Docker עובדת והשנייה לא?
2. מה עושים כדי לתקן?
3. איזה רכיב נוסף צריך להיות מותקן ב-Windows כדי ש-Docker Desktop יעבוד?

{{< solution >}}
1. `docker --version` רק מדפיסה את הגרסה של כלי הפקודה — היא לא צריכה את המנוע של Docker. `docker ps` צריכה לדבר עם **המנוע** (Engine), והוא רץ רק כש-**Docker Desktop פתוח**.
2. פותחים את Docker Desktop ומחכים שיסיים לעלות (מופיע **Engine running**), ואז מריצים שוב.
3. **WSL 2** — התשתית של Windows להרצת Linux. אם ההתקנה מבקשת להתקין או לעדכן אותו — מאשרים, ולפעמים צריך להפעיל מחדש את המחשב.
{{< /solution >}}

### תרגיל 4: מה מתקינים ומתי?

לכל פריט ברשימה כתבו **מתי** מתקינים אותו בקורס: (א) ביום הראשון, (ב) בנושא Git, (ג) בנושא Backend, (ד) בנושא מסדי נתונים.

| פריט | מתי? |
|---|---|
| Python | ? |
| חשבון GitHub | ? |
| FastAPI | ? |
| Docker Desktop | ? |
| mysql-connector-python | ? |
| VS Code | ? |

{{< solution >}}
| פריט | מתי? |
|---|---|
| Python | (א) ביום הראשון |
| חשבון GitHub | (ב) בנושא Git — שם גם מגדירים שם ומייל עם `git config` |
| FastAPI | (ג) בנושא Backend — מתקינים עם `pip` בתוך סביבה וירטואלית |
| Docker Desktop | (א) ביום הראשון — אבל משתמשים בו רק במסדי נתונים |
| mysql-connector-python | (ד) בנושא מסדי נתונים — ה-Driver שמחבר את Python ל-MySQL |
| VS Code | (א) ביום הראשון |

הכלל: את **ארבעת הכלים** (Python, VS Code, Git, Docker) מתקינים ביום הראשון. את **הספריות והחשבונות** מוסיפים כשמגיעים לנושא שצריך אותם.
{{< /solution >}}

### תרגיל 5: לקרוא את פלט הבדיקה

סטודנטית הריצה את ארבע פקודות הבדיקה וקיבלה:

```text
Python 3.12.4
git version 2.45.1.windows.1
1.93.1
38c31bc77e0dd6ae88a4e9cc93428cc27a56ba40
x64
docker : The term 'docker' is not recognized as the name of a cmdlet...
```

1. אילו כלים מותקנים ותקינים?
2. `code --version` הדפיסה שלוש שורות. מה כל שורה?
3. מה הבעיה בשורה האחרונה, ומה עושים?

{{< solution >}}
1. **Python**, **Git** ו-**VS Code** מותקנים — כל אחד הדפיס את הגרסה שלו.
2. שלוש השורות של VS Code:
   - `1.93.1` — גרסת VS Code.
   - המחרוזת הארוכה — מזהה הבנייה (Commit).
   - `x64` — סוג המעבד שהגרסה נבנתה בשבילו.
3. ה-Terminal לא מוצא את `docker` — Docker לא הותקן, או שה-Terminal נפתח **לפני** ההתקנה. מתקינים את Docker Desktop (אם צריך), סוגרים ופותחים Terminal חדש, ובודקים שוב עם `docker --version`.
{{< /solution >}}

<!-- exercises:end -->
