chore(i18n): sync translations with latest source changes (chunk 1/1, 12 changes)

pull/1756/head
localizeflow[bot] 6 months ago
parent 649b314d20
commit 6a3eacdca6

@ -1,7 +1,7 @@
{ {
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": { "1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "d45ddcc54eb9232a76d08328b09d792e", "original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-01-06T21:16:19+00:00", "translation_date": "2026-03-06T12:05:54+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md", "source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "el" "language_code": "el"
}, },
@ -493,7 +493,7 @@
}, },
"AGENTS.md": { "AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34", "original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-02-06T17:12:15+00:00", "translation_date": "2026-03-06T12:18:30+00:00",
"source_file": "AGENTS.md", "source_file": "AGENTS.md",
"language_code": "el" "language_code": "el"
}, },
@ -516,8 +516,8 @@
"language_code": "el" "language_code": "el"
}, },
"README.md": { "README.md": {
"original_hash": "6d6385fd098088cb2d690fb0a6cdaedc", "original_hash": "a2c9eed480687319517c08a6319e5536",
"translation_date": "2026-02-06T17:07:46+00:00", "translation_date": "2026-03-06T12:00:55+00:00",
"source_file": "README.md", "source_file": "README.md",
"language_code": "el" "language_code": "el"
}, },

@ -2,36 +2,36 @@
## Επισκόπηση Έργου ## Επισκόπηση Έργου
Αυτό είναι ένα εκπαιδευτικό αποθετήριο προγράμματος σπουδών για τη διδασκαλία των βασικών αρχών ανάπτυξης ιστού σε αρχάριους. Το πρόγραμμα σπουδών είναι ένα ολοκληρωμένο μάθημα 12 εβδομάδων που έχει αναπτυχθεί από τους Microsoft Cloud Advocates, περιλαμβάνοντας 24 πρακτικά μαθήματα που καλύπτουν JavaScript, CSS και HTML. Αυτό είναι ένα εκπαιδευτικό αποθετήριο προγράμματος σπουδών για τη διδασκαλία των βασικών της ανάπτυξης ιστού σε αρχάριους. Το πρόγραμμα σπουδών είναι ένα ολοκληρωμένο μάθημα 12 εβδομάδων που έχει αναπτυχθεί από τους Microsoft Cloud Advocates, με 24 πρακτικά μαθήματα που καλύπτουν JavaScript, CSS και HTML.
### Κύρια Στοιχεία ### Κύρια Στοιχεία
- **Εκπαιδευτικό Περιεχόμενο**: 24 οργανωμένα μαθήματα ταξινομημένα σε ενότητες έργων - **Εκπαιδευτικό Περιεχόμενο**: 24 δομημένα μαθήματα οργανωμένα σε ενότητες με βάση έργα
- **Πρακτικά Έργα**: Terrarium, Παιχνίδι Πληκτρολόγησης, Επέκταση Περιηγητή, Παιχνίδι Διαστήματος, Εφαρμογή Τραπεζικής, Επεξεργαστής Κώδικα και Βοηθός Συνομιλίας AI - **Πρακτικά Έργα**: Terrarium, Παιχνίδι Πληκτρολόγησης, Επέκταση Browser, Παιχνίδι στο Διάστημα, Τραπεζική Εφαρμογή, Επεξεργαστής Κώδικα και Βοηθός Chat με AI
- **Διαδραστικά Quiz**: 48 κουίζ με 3 ερωτήσεις το καθένα (αξιολογήσεις πριν/μετά το μάθημα) - **Διαδραστικά Κουίζ**: 48 κουίζ με 3 ερωτήσεις το καθένα (αξιολογήσεις πριν/μετά τα μαθήματα)
- **Υποστήριξη Πολλών Γλωσσών**: Αυτόματες μεταφράσεις σε 50+ γλώσσες μέσω GitHub Actions - **Πολυγλωσσική Υποστήριξη**: Αυτόματες μεταφράσεις για πάνω από 50 γλώσσες μέσω GitHub Actions
- **Τεχνολογίες**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (για έργα AI) - **Τεχνολογίες**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (για έργα AI)
### Αρχιτεκτονική ### Αρχιτεκτονική
- Εκπαιδευτικό αποθετήριο με δομή βασισμένη σε μαθήματα - Εκπαιδευτικό αποθετήριο με δομή βασισμένη σε μαθήματα
- Κάθε φάκελος μαθήματος περιέχει README, παραδείγματα κώδικα και λύσεις - Κάθε φάκελος μαθήματος περιέχει README, παραδείγματα κώδικα και λύσεις
- Αυτόνομα έργα σε ξεχωριστούς καταλόγους (quiz-app, διάφορα έργα μαθημάτων) - Ανεξάρτητα έργα σε ξεχωριστούς καταλόγους (quiz-app, διάφορα μαθήματα έργων)
- Σύστημα μετάφρασης με χρήση GitHub Actions (co-op-translator) - Σύστημα μετάφρασης που χρησιμοποιεί GitHub Actions (co-op-translator)
- Τεκμηρίωση που σερβίρεται μέσω Docsify και διατίθεται σε μορφή PDF - Τεκμηρίωση προσβάσιμη μέσω Docsify και διαθέσιμη ως PDF
## Εντολές Ρύθμισης ## Εντολές Ρυθμίσεων
Αυτό το αποθετήριο προορίζεται κυρίως για κατανάλωση εκπαιδευτικού περιεχομένου. Για εργασία σε συγκεκριμένα έργα: Αυτό το αποθετήριο προορίζεται κυρίως για κατανάλωση εκπαιδευτικού περιεχομένου. Για εργασία με συγκεκριμένα έργα:
### Ρύθμιση Κύριου Αποθετηρίου ### Κύρια Ρύθμιση Αποθετηρίου
```bash ```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners cd Web-Dev-For-Beginners
``` ```
### Ρύθμιση Εφαρμογής Κουίζ (Vue 3 + Vite) ### Ρύθμιση Quiz App (Vue 3 + Vite)
```bash ```bash
cd quiz-app cd quiz-app
@ -41,7 +41,7 @@ npm run build # Δημιουργία για παραγωγή
npm run lint # Εκτέλεση ESLint npm run lint # Εκτέλεση ESLint
``` ```
### API Έργο Τράπεζας (Node.js + Express) ### API Τραπεζικού Έργου (Node.js + Express)
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
@ -51,7 +51,7 @@ npm run lint # Εκτέλεση ESLint
npm run format # Μορφοποίηση με Prettier npm run format # Μορφοποίηση με Prettier
``` ```
### Έργα Επέκτασης Περιηγητή ### Έργα Επέκτασης Browser
```bash ```bash
cd 5-browser-extension/solution cd 5-browser-extension/solution
@ -59,15 +59,15 @@ npm install
# Ακολουθήστε τις οδηγίες φόρτωσης επεκτάσεων ειδικές για τον περιηγητή # Ακολουθήστε τις οδηγίες φόρτωσης επεκτάσεων ειδικές για τον περιηγητή
``` ```
### Έργα Παιχνιδιού Διαστήματος ### Έργα Παιχνιδιού στο Διάστημα
```bash ```bash
cd 6-space-game/solution cd 6-space-game/solution
npm install npm install
# Ανοίξτε το index.html στον περιηγητή ή χρησιμοποιήστε το Live Server # Ανοίξτε το index.html σε πρόγραμμα περιήγησης ή χρησιμοποιήστε Live Server
``` ```
### Έργο Συνομιλίας (Python Backend) ### Έργο Chat (Backend Python)
```bash ```bash
cd 9-chat-project/solution/backend/python cd 9-chat-project/solution/backend/python
@ -76,207 +76,207 @@ pip install openai
python api.py python api.py
``` ```
## Ροή Εργασίας Ανάπτυξης ## Ροή Ανάπτυξης
### Για Συνεργάτες Περιεχομένου ### Για Συνεργάτες Περιεχομένου
1. **Διακλάδωση (Fork)** του αποθετηρίου στο λογαριασμό σας στο GitHub 1. **Κάντε fork το αποθετήριο** στον λογαριασμό σας στο GitHub
2. **Κλωνοποίηση (Clone)** του fork τοπικά 2. **Κλωνοποιήστε το fork τοπικά**
3. **Δημιουργία νέου κλάδου** για τις αλλαγές σας 3. **Δημιουργήστε νέο branch** για τις αλλαγές σας
4. Κάντε αλλαγές στο περιεχόμενο των μαθημάτων ή στα παραδείγματα κώδικα 4. Κάντε αλλαγές σε περιεχόμενο μαθήματος ή παραδείγματα κώδικα
5. Δοκιμάστε τις αλλαγές κώδικα στους αντίστοιχους φακέλους έργων 5. Δοκιμάστε τις αλλαγές σε σχετικούς καταλόγους έργων
6. Υποβάλετε pull requests ακολουθώντας τις οδηγίες συμβολής 6. Υποβάλετε pull requests σύμφωνα με τις οδηγίες συνεισφοράς
### Για Μαθητές ### Για Μαθητές
1. Κάντε fork ή clone το αποθετήριο 1. Κάντε fork ή κλωνοποιήστε το αποθετήριο
2. Πλοηγηθείτε στους φακέλους μαθημάτων κατά σειρά 2. Πλοηγηθείτε στους καταλόγους μαθημάτων διαδοχικά
3. Διαβάστε τα αρχεία README για κάθε μάθημα 3. Διαβάστε τα αρχεία README για κάθε μάθημα
4. Ολοκληρώστε τα κουίζ πριν το μάθημα στη διεύθυνση https://ff-quizzes.netlify.app/web/ 4. Ολοκληρώστε τα κουίζ πριν το μάθημα στη διεύθυνση https://ff-quizzes.netlify.app/web/
5. Μελετήστε τα παραδείγματα κώδικα στους φακέλους μαθημάτων 5. Εργαστείτε μέσα από τα παραδείγματα κώδικα στους φακέλους μαθημάτων
6. Ολοκληρώστε εργασίες και προκλήσεις 6. Ολοκληρώστε εργασίες και προκλήσεις
7. Κάντε τα κουίζ μετά το μάθημα 7. Κάντε τα κουίζ μετά το μάθημα
### Ζωντανή Ανάπτυξη ### Ζωντανή Ανάπτυξη
- **Τεκμηρίωση**: Τρέξτε `docsify serve` στην ρίζα (θύρα 3000) - **Τεκμηρίωση**: Εκτελέστε `docsify serve` στον ριζικό φάκελο (θύρα 3000)
- **Εφαρμογή Κουίζ**: Τρέξτε `npm run dev` στον φάκελο quiz-app - **Quiz App**: Εκτελέστε `npm run dev` στον φάκελο quiz-app
- **Έργα**: Χρησιμοποιήστε την επέκταση VS Code Live Server για έργα HTML - **Έργα**: Χρησιμοποιήστε το VS Code Live Server extension για HTML έργα
- **API Έργα**: Τρέξτε `npm start` στους αντίστοιχους φακέλους API - **API Έργα**: Εκτελέστε `npm start` στους αντίστοιχους φακέλους API
## Οδηγίες Δοκιμών ## Οδηγίες Δοκιμών
### Δοκιμή Εφαρμογής Κουίζ ### Δοκιμές Quiz App
```bash ```bash
cd quiz-app cd quiz-app
npm run lint # Έλεγχος για προβλήματα μορφοποίησης κώδικα npm run lint # Ελέγξτε για προβλήματα στο στυλ κώδικα
npm run build # Επαλήθευση επιτυχίας της κατασκευής npm run build # Επιβεβαιώστε ότι η κατασκευή είναι επιτυχής
``` ```
### Δοκιμή API Τράπεζας ### Δοκιμές Bank API
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
npm run lint # Έλεγχος για ζητήματα στυλ κώδικα npm run lint # Ελέγξτε για προβλήματα στο στυλ κώδικα
node server.js # Επαλήθευση εκκίνησης διακομιστή χωρίς σφάλματα node server.js # Επαληθεύστε ότι ο διακομιστής ξεκινά χωρίς σφάλματα
``` ```
### Γενική Προσέγγιση Δοκιμών ### Γενική Προσέγγιση Δοκιμών
- Πρόκειται για εκπαιδευτικό αποθετήριο χωρίς πλήρεις αυτοματοποιημένες δοκιμές - Αυτό είναι ένα εκπαιδευτικό αποθετήριο χωρίς πλήρεις αυτοματοποιημένες δοκιμές
- Οι χειροκίνητες δοκιμές εστιάζουν σε: - Οι χειροκίνητες δοκιμές εστιάζουν σε:
- Εκτέλεση παραδειγμάτων κώδικα χωρίς σφάλματα - Τα παραδείγματα κώδικα να τρέχουν χωρίς σφάλματα
- Σωστή λειτουργία συνδέσμων στην τεκμηρίωση - Οι σύνδεσμοι στην τεκμηρίωση να λειτουργούν σωστά
- Επιτυχής ολοκλήρωση δημιουργίας έργων - Οι κατασκευές έργων να ολοκληρώνονται επιτυχώς
- Τα παραδείγματα ακολουθούν βέλτιστες πρακτικές - Τα παραδείγματα να ακολουθούν βέλτιστες πρακτικές
### Έλεγχοι Πριν την Υποβολή ### Έλεγχοι Πριν Υποβολή
- Τρέξτε `npm run lint` σε φακέλους με package.json - Εκτελέστε `npm run lint` σε φακέλους με package.json
- Επαληθεύστε ότι οι σύνδεσμοι markdown είναι έγκυροι - Επαληθεύστε ότι οι σύνδεσμοι markdown είναι έγκυροι
- Δοκιμάστε παραδείγματα κώδικα στον περιηγητή ή Node.js - Δοκιμάστε παραδείγματα κώδικα στο πρόγραμμα περιήγησης ή Node.js
- Επιβεβαιώστε ότι οι μεταφράσεις διατηρούν σωστή δομή - Ελέγξτε ότι οι μεταφράσεις διατηρούν τη σωστή δομή
## Οδηγίες Στυλ Κώδικα ## Οδηγίες Στυλ Κώδικα
### JavaScript ### JavaScript
- Χρησιμοποιήστε σύγχρονη σύνταξη ES6+ - Χρησιμοποιήστε σύγχρονη σύνταξη ES6+
- Ακολουθήστε τις τυπικές ρυθμίσεις ESLint που παρέχονται στα έργα - Ακολουθήστε τις τυποποιημένες ρυθμίσεις ESLint που παρέχονται στα έργα
- Χρησιμοποιήστε κατανοητά ονόματα μεταβλητών και συναρτήσεων για εκπαιδευτική σαφήνεια - Χρησιμοποιήστε κατανοητά ονόματα μεταβλητών και συναρτήσεων για εκπαιδευτική σαφήνεια
- Προσθέστε σχόλια που εξηγούν έννοιες για τους μαθητές - Προσθέστε σχόλια που εξηγούν έννοιες για τους μαθητές
- Μορφοποιήστε με Prettier όπου έχει ρυθμιστεί - Διαμορφώστε με Prettier όπου έχει ρυθμιστεί
### HTML/CSS ### HTML/CSS
- Σημαντικά στοιχεία HTML5 - Σημαντικά στοιχεία HTML5
- Αρχές responsive σχεδίασης - Αρχές responsive design
- Καθαρή ονοματοθεσία κλάσεων - Καθαρή ονοματοδοσία κλάσεων
- Σχόλια που εξηγούν τεχνικές CSS για μαθητές - Σχόλια που εξηγούν τεχνικές CSS για μαθητές
### Python ### Python
- Οδηγίες στυλ PEP 8 - Οδηγίες στυλ PEP 8
- Καθαρά, εκπαιδευτικά παραδείγματα κώδικα - Καθαρά, εκπαιδευτικά παραδείγματα κώδικα
- Σημειώσεις τύπων όπου βοηθούν στη μάθηση - Υποδείξεις τύπων όπου βοηθούν στη μάθηση
### Τεκμηρίωση Markdown ### Τεκμηρίωση Markdown
- Καθαρή ιεραρχία κεφαλίδων - Ξεκάθαρη ιεραρχία τίτλων
- Μπλοκ κώδικα με δήλωση γλώσσας - Μπλοκ κώδικα με καθορισμένη γλώσσα
- Σύνδεσμοι για επιπλέον πόρους - Σύνδεσμοι σε πρόσθετους πόρους
- Στιγμιότυπα και εικόνες στους φακέλους `images/` - Στιγμιότυπα και εικόνες στους καταλόγους `images/`
- Εναλλακτικό κείμενο για εικόνες για προσβασιμότητα - Περιγραφικό κείμενο (alt) για εικόνες για προσβασιμότητα
### Οργάνωση Αρχείων ### Οργάνωση Αρχείων
- Μαθήματα αριθμημένα διαδοχικά (1-getting-started-lessons, 2-js-basics κτλ.) - Μαθήματα αριθμημένα διαδοχικά (1-getting-started-lessons, 2-js-basics, κλπ.)
- Κάθε έργο έχει φακέλους `solution/` και συχνά `start/` ή `your-work/` - Κάθε έργο έχει φακέλους `solution/` και συνήθως `start/` ή `your-work/`
- Αποθηκεύονται εικόνες σε φακέλους `images/` κάθε μαθήματος - Οι εικόνες αποθηκεύονται σε φακέλους `images/` συγκεκριμένων μαθημάτων
- Μεταφράσεις στη δομή `translations/{language-code}/` - Οι μεταφράσεις βρίσκονται στη δομή `translations/{language-code}/`
## Δημιουργία και Ανάπτυξη ## Κατασκευή και Ανάπτυξη
### Ανάπτυξη Εφαρμογής Κουίζ (Azure Static Web Apps) ### Ανάπτυξη Quiz App (Azure Static Web Apps)
Η εφαρμογή κουίζ έχει ρυθμιστεί για ανάπτυξη σε Azure Static Web Apps: Το quiz-app είναι διαμορφωμένο για ανάπτυξη σε Azure Static Web Apps:
```bash ```bash
cd quiz-app cd quiz-app
npm run build # Δημιουργεί τον φάκελο dist/ npm run build # Δημιουργεί το φάκελο dist/
# Αναπτύσσει μέσω ροής εργασίας GitHub Actions κατά την ώθηση στο main # Αναπτύσσει μέσω της ροής εργασίας GitHub Actions κατά την προώθηση στο main
``` ```
Ρυθμίσεις Azure Static Web Apps: Διαμόρφωση Azure Static Web Apps:
- **Τοποθεσία εφαρμογής**: `/quiz-app` - **Θέση εφαρμογής**: `/quiz-app`
- **Τοποθεσία εξόδου**: `dist` - **Θέση εξόδου**: `dist`
- **Ροή εργασίας**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml` - **Ροή εργασίας**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Δημιουργία PDF Τεκμηρίωσης ### Δημιουργία PDF Τεκμηρίωσης
```bash ```bash
npm install # Εγκαταστήστε το docsify-to-pdf npm install # Εγκατάσταση του docsify-to-pdf
npm run convert # Δημιουργήστε PDF από το docs npm run convert # Δημιουργία PDF από docs
``` ```
### Τεκμηρίωση Docsify ### Τεκμηρίωση Docsify
```bash ```bash
npm install -g docsify-cli # Εγκαταστήστε το Docsify παγκοσμίως npm install -g docsify-cli # Εγκαταστήστε το Docsify παγκοσμίως
docsify serve # Εξυπηρετήστε στο localhost:3000 docsify serve # Σερβίρετε στο localhost:3000
``` ```
### Δημιουργίες ανά Έργο ### Κατασκευές Ανά Έργο
Κάθε φάκελος έργου μπορεί να έχει τη δική του διαδικασία δημιουργίας: Κάθε φάκελος έργου μπορεί να έχει τη δική του διαδικασία κατασκευής:
- Vue έργα: `npm run build` δημιουργεί πακέτα παραγωγής - Έργα Vue: `npm run build` δημιουργεί παραγωγικά πακέτα
- Στατικά έργα: Δεν απαιτείται βήμα δημιουργίας, τα αρχεία σερβίρονται απευθείας - Στατικά έργα: Χωρίς βήμα κατασκευής, τα εξυπηρετεί άμεσα
## Οδηγίες Pull Request ## Οδηγίες Pull Request
### Μορφοποίηση Τίτλου ### Μορφή Τίτλου
Χρησιμοποιήστε σαφείς, περιγραφικούς τίτλους που δείχνουν το πεδίο αλλαγής: Χρησιμοποιήστε σαφείς, περιγραφικούς τίτλους που δείχνουν το αντικείμενο αλλαγής:
- `[Quiz-app] Προσθήκη νέου κουίζ για μάθημα X` - `[Quiz-app] Προσθήκη νέου κουίζ για το μάθημα X`
- `[Lesson-3] Διόρθωση ορθογραφικού λάθους στο έργο terrarium` - `[Lesson-3] Διόρθωση τυπογραφικού στο έργο terrarium`
- `[Translation] Προσθήκη ισπανικής μετάφρασης για το μάθημα 5` - `[Translation] Προσθήκη ισπανικής μετάφρασης για το μάθημα 5`
- `[Docs] Ενημέρωση οδηγών ρύθμισης` - `[Docs] Ενημέρωση οδηγιών ρύθμισης`
### Απαραίτητοι Έλεγχοι ### Απαραίτητοι Έλεγχοι
Πριν υποβάλετε PR: Πριν υποβάλετε PR:
1. **Ποιότητα Κώδικα**: 1. **Ποιότητα Κώδικα**:
- Τρέξτε `npm run lint` στους σχετικούς φακέλους έργων - Εκτελέστε `npm run lint` σε σχετικούς φακέλους έργων
- Διορθώστε όλα τα σφάλματα και προειδοποιήσεις lint - Διορθώστε όλα τα σφάλματα και προειδοποιήσεις lint
2. **Επαλήθευση Δημιουργίας**: 2. **Επαλήθευση Κατασκευής**:
- Τρέξτε `npm run build` εφόσον ισχύει - Εκτελέστε `npm run build` όπου έχει εφαρμογή
- Επιβεβαιώστε απουσία σφαλμάτων δημιουργίας - Βεβαιωθείτε ότι δεν υπάρχουν σφάλματα κατασκευής
3. **Έλεγχος Συνδέσμων**: 3. **Επαλήθευση Συνδέσμων**:
- Δοκιμάστε όλους τους συνδέσμους markdown - Ελέγξτε όλους τους συνδέσμους markdown
- Επαληθεύστε την απόδοση εικόνων - Εξασφαλίστε ότι οι εικόνες φορτώνουν σωστά
4. **Έλεγχος Περιεχομένου**: 4. **Ανασκόπηση Περιεχομένου**:
- Επιμεληθείτε για ορθογραφικά και γραμματικά λάθη - Διορθώστε ορθογραφικά και γραμματικά λάθη
- Επιβεβαιώστε ότι τα παραδείγματα κώδικα είναι σωστά και εκπαιδευτικά - Επαληθεύστε την ορθότητα και εκπαιδευτική αξία των παραδειγμάτων κώδικα
- Διασφαλίστε ότι οι μεταφράσεις διατηρούν το αρχικό νόημα - Ελέγξτε ότι οι μεταφράσεις διατηρούν το αρχικό νόημα
### Απαιτήσεις Συμβολής ### Απαιτήσεις Συμμετοχής
- Συμφωνήστε με το Microsoft CLA (αυτόματος έλεγχος στην πρώτη PR) - Συμφωνία με το Microsoft CLA (αυτοματοποιημένος έλεγχος στο πρώτο PR)
- Ακολουθήστε τον [Κώδικα Συμπεριφοράς της Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/) - Ακολούθηση του [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Δείτε το [CONTRIBUTING.md](./CONTRIBUTING.md) για λεπτομερείς οδηγίες - Δείτε το [CONTRIBUTING.md](./CONTRIBUTING.md) για λεπτομερείς οδηγίες
- Αναφέρετε αριθμούς θεμάτων στην περιγραφή PR όπου ισχύει - Αναφορά αριθμού θεμάτων στην περιγραφή PR όταν ισχύει
### Διαδικασία Αναθεώρησης ### Διαδικασία Αναθεώρησης
- Τα PR ελέγχονται από συντηρητές και την κοινότητα - Τα PR ελέγχονται από διαχειριστές και την κοινότητα
- Δίνεται προτεραιότητα στην εκπαιδευτική σαφήνεια - Δίνεται προτεραιότητα στην εκπαιδευτική σαφήνεια
- Τα παραδείγματα κώδικα πρέπει να ακολουθούν τις τρέχουσες βέλτιστες πρακτικές - Τα παραδείγματα κώδικα πρέπει να ακολουθούν τις τρέχουσες βέλτιστες πρακτικές
- Οι μεταφράσεις ελέγχονται για ακρίβεια και πολιτισμική καταλληλότητα - Οι μεταφράσεις ελέγχονται για ακρίβεια και πολιτισμική καταλληλότητα
## Σύστημα Μετάφρασης ## Σύστημα Μετάφρασης
### Αυτόματη Μετάφραση ### Αυτόματες Μεταφράσεις
- Χρησιμοποιεί GitHub Actions με ροή εργασίας co-op-translator - Χρησιμοποιεί GitHub Actions με ροή εργασίας co-op-translator
- Μεταφράζει αυτόματα σε 50+ γλώσσες - Μεταφράζει σε πάνω από 50 γλώσσες αυτόματα
- Αρχεία πηγής στους κύριους φακέλους - Αρχεία πηγής στους κύριους καταλόγους
- Μεταφρασμένα αρχεία στους φακέλους `translations/{language-code}/` - Μεταφρασμένα αρχεία σε φακέλους `translations/{language-code}/`
### Προσθήκη Χειροκίνητων Βελτιώσεων Μετάφρασης ### Προσθήκη Χειροκίνητων Βελτιώσεων Μετάφρασης
1. Εντοπίστε το αρχείο στο `translations/{language-code}/` 1. Εντοπίστε το αρχείο σε `translations/{language-code}/`
2. Κάντε βελτιώσεις διατηρώντας τη δομή 2. Κάντε βελτιώσεις διατηρώντας τη δομή
3. Επιβεβαιώστε ότι τα παραδείγματα κώδικα είναι λειτουργικά 3. Βεβαιωθείτε ότι τα παραδείγματα κώδικα παραμένουν λειτουργικά
4. Δοκιμάστε τυχόν τοπικοποιημένο περιεχόμενο κουίζ 4. Δοκιμάστε το τοπικευμένο περιεχόμενο κουίζ
### Μεταδεδομένα Μετάφρασης ### Μεταδεδομένα Μετάφρασης
Τα μεταφρασμένα αρχεία περιλαμβάνουν κεφαλίδα μεταδεδομένων: Τα μεταφρασμένα αρχεία περιλαμβάνουν επικεφαλίδα μεταδεδομένων:
```markdown ```markdown
<!-- <!--
CO_OP_TRANSLATOR_METADATA: CO_OP_TRANSLATOR_METADATA:
@ -289,91 +289,91 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
``` ```
## Αποσφαλμάτωση και Επίλυση Προβλημάτων ## Αντιμετώπιση Σφαλμάτων και Επίλυση Προβλημάτων
### Συνήθη Προβλήματα ### Συνηθισμένα Προβλήματα
**Η εφαρμογή κουίζ δεν ξεκινά**: **Αποτυχία εκκίνησης της εφαρμογής κουίζ**:
- Ελέγξτε την έκδοση Node.js (προτείνεται v14+) - Ελέγξτε την έκδοση Node.js (συνιστάται v14+)
- Διαγράψτε τους φακέλους `node_modules` και το αρχείο `package-lock.json`, τρέξτε ξανά `npm install` - Διαγράψτε `node_modules` και `package-lock.json`, εκτελέστε ξανά `npm install`
- Ελέγξτε για συγκρούσεις θυρών (προεπιλογή: Vite χρησιμοποιεί θύρα 5173) - Ελέγξτε για συγκρούσεις θυρών (προεπιλογή: Vite χρησιμοποιεί θύρα 5173)
**Ο server API δεν ξεκινά**: **Ο διακομιστής API δεν ξεκινά**:
- Βεβαιωθείτε ότι η έκδοση Node.js είναι >=10 - Επαληθεύστε ότι η έκδοση Node.js είναι επαρκής (node >=10)
- Ελέγξτε αν η θύρα είναι ελεύθερη - Ελέγξτε αν η θύρα χρησιμοποιείται ήδη
- Εξασφαλίστε ότι έχουν εγκατασταθεί όλες οι εξαρτήσεις με `npm install` - Βεβαιωθείτε ότι όλες οι εξαρτήσεις έχουν εγκατασταθεί με `npm install`
**Η επέκταση περιηγητή δεν φορτώνει**: **Η επέκταση browser δεν φορτώνει**:
- Βεβαιωθείτε ότι το manifest.json είναι σωστά μορφοποιημένο - Επαληθεύστε ότι το manifest.json είναι σωστά μορφοποιημένο
- Ελέγξτε για σφάλματα στην κονσόλα του περιηγητή - Ελέγξτε την κονσόλα του browser για σφάλματα
- Ακολουθήστε τις οδηγίες εγκατάστασης της επέκτασης που είναι ειδικές για τον περιηγητή - Ακολουθήστε οδηγίες εγκατάστασης επεκτάσεων ειδικές για τον browser
**Προβλήματα με το έργο συνομιλίας Python**: **Προβλήματα με το έργο Python chat**:
- Βεβαιωθείτε ότι έχει εγκατασταθεί το πακέτο OpenAI: `pip install openai` - Βεβαιωθείτε ότι το πακέτο OpenAI είναι εγκατεστημένο: `pip install openai`
- Βεβαιωθείτε ότι η μεταβλητή περιβάλλοντος GITHUB_TOKEN υπάρχει - Επαληθεύστε ότι το περιβαλλοντικό μεταβλητό GITHUB_TOKEN έχει οριστεί
- Ελέγξτε τα δικαιώματα πρόσβασης στα GitHub Models - Ελέγξτε τα δικαιώματα πρόσβασης στα GitHub Models
**Τα Docsify δεν σερβίρουν τεκμηρίωση**: **Η Docsify δεν εξυπηρετεί τεκμηρίωση**:
- Εγκαταστήστε το docsify-cli παγκοσμίως: `npm install -g docsify-cli` - Εγκαταστήστε docsify-cli παγκόσμια: `npm install -g docsify-cli`
- Εκτελέστε από τη ρίζα του αποθετηρίου - Εκτελέστε από τον ριζικό φάκελο του αποθετηρίου
- Ελέγξτε ότι υπάρχει το αρχείο `docs/_sidebar.md` - Ελέγξτε ότι υπάρχει το αρχείο `docs/_sidebar.md`
### Συμβουλές Ανάπτυξης Περιβάλλοντος ### Συμβουλές για Περιβάλλον Ανάπτυξης
- Χρησιμοποιήστε VS Code με την επέκταση Live Server για έργα HTML - Χρησιμοποιήστε VS Code με επέκταση Live Server για HTML έργα
- Εγκαταστήστε τις επεκτάσεις ESLint και Prettier για συνεπή μορφοποίηση - Εγκαταστήστε ESLint και Prettier για συνεπή μορφοποίηση
- Χρησιμοποιήστε τα DevTools του περιηγητή για αποσφαλμάτωση JavaScript - Χρησιμοποιήστε DevTools του browser για debugging JavaScript
- Για έργα Vue, εγκαταστήστε την επέκταση Vue DevTools στον περιηγητή - Για έργα Vue, εγκαταστήστε την επέκταση Vue DevTools στον browser
### Σκέψεις για την Απόδοση ### Θέματα Απόδοσης
- Μεγάλος αριθμός μεταφρασμένων αρχείων (50+ γλώσσες) σημαίνει μεγάλο μέγεθος κλώνου - Ο μεγάλος αριθμός μεταφρασμένων αρχείων (πάνω από 50 γλώσσες) σημαίνει ότι οι πλήρεις κλωνοποιήσεις είναι μεγάλες
- Χρησιμοποιήστε shallow clone αν εργάζεστε μόνο στο περιεχόμενο: `git clone --depth 1` - Χρησιμοποιήστε shallow clone αν εργάζεστε μόνο με περιεχόμενο: `git clone --depth 1`
- Αποκλείστε τις μεταφράσεις από τις αναζητήσεις όταν δουλεύετε στα Αγγλικά - Αποφύγετε τις μεταφράσεις στις αναζητήσεις όταν εργάζεστε με αγγλικό περιεχόμενο
- Οι διαδικασίες δημιουργίας μπορεί να είναι αργές στην πρώτη εκτέλεση (npm install, Vite build) - Οι διαδικασίες κατασκευής μπορεί να είναι αργές στην πρώτη εκτέλεση (npm install, κατασκευή Vite)
## Σκέψεις Ασφαλείας ## Θέματα Ασφαλείας
### Μεταβλητές Περιβάλλοντος ### Περιβαλλοντικές Μεταβλητές
- Τα κλειδιά API δεν πρέπει ποτέ να δεσμεύονται στο αποθετήριο - Τα κλειδιά API δεν πρέπει ποτέ να δεσμεύονται στο αποθετήριο
- Χρησιμοποιήστε αρχεία `.env` (ήδη στο `.gitignore`) - Χρησιμοποιήστε αρχεία `.env` (ήδη στο `.gitignore`)
- Τεκμηριώστε τις απαιτούμενες μεταβλητές περιβάλλοντος στα README των έργων - Τεκμηριώστε τις απαιτούμενες περιβαλλοντικές μεταβλητές στα README των έργων
### Έργα Python ### Python Έργα
- Χρησιμοποιήστε εικονικά περιβάλλοντα: `python -m venv venv` - Χρησιμοποιήστε εικονικά περιβάλλοντα: `python -m venv venv`
- Κρατάτε τις εξαρτήσεις ενημερωμένες - Διατηρήστε τις εξαρτήσεις ενημερωμένες
- Τα tokens GitHub πρέπει να έχουν τα ελάχιστα απαραίτητα δικαιώματα - Τα GitHub tokens πρέπει να έχουν ελάχιστα απαραίτητα δικαιώματα
### Πρόσβαση σε GitHub Models ### Πρόσβαση σε GitHub Models
- Απαιτούνται Personal Access Tokens (PAT) για GitHub Models - Απαιτούνται Personal Access Tokens (PAT) για GitHub Models
- Τα tokens πρέπει να φυλάσσονται ως μεταβλητές περιβάλλοντος - Τα tokens πρέπει να αποθηκεύονται ως περιβαλλοντικές μεταβλητές
- Ποτέ μην δεσμεύετε tokens ή διαπιστευτήρια - Ποτέ μην δεσμεύετε tokens ή διαπιστευτήρια
## Επιπλέον Σημειώσεις ## Επιπλέον Σημειώσεις
### Στοχευόμενο Κοινό ### Στόχος Κοινού
- Απόλυτοι αρχάριοι στην ανάπτυξη ιστού - Πλήρεις αρχάριοι στην ανάπτυξη ιστού
- Φοιτητές και αυτοδίδακτοι - Μαθητές και αυτοδίδακτοι
- Καθηγητές που χρησιμοποιούν το πρόγραμμα σπουδών στις τάξεις - Εκπαιδευτικοί που χρησιμοποιούν το πρόγραμμα σπουδών σε τάξεις
- Το περιεχόμενο έχει σχεδιαστεί για προσβασιμότητα και σταδιακή ανάπτυξη δεξιοτήτων - Το περιεχόμενο έχει σχεδιαστεί για προσβασιμότητα και σταδιακή ανάπτυξη δεξιοτήτων
### Εκπαιδευτική Φιλοσοφία ### Εκπαιδευτική Φιλοσοφία
- Προσέγγιση μάθησης βασισμένη σε έργα - Προσέγγιση μάθησης μέσω έργων
- Συχνές επαναλήψεις γνώσης (κουίζ) - Συχνές δοκιμές γνώσεων (κουίζ)
- Πρακτικές ασκήσεις κώδικα - Πρακτικές ασκήσεις κωδικοποίησης
- Παραδείγματα εφαρμογών πραγματικού κόσμου - Παραδείγματα εφαρμογών σε πραγματικό κόσμο
- Εστίαση στις βασικές αρχές πριν τα frameworks - Εστίαση στα βασικά πριν τα frameworks
### Συντήρηση Αποθετηρίου ### Συντήρηση Αποθετηρίου
- Δραστήρια κοινότητα μαθητών και συνεργατών - Ενεργή κοινότητα μαθητών και συνεργατών
- Τακτικές ενημερώσεις εξαρτήσεων και περιεχομένου - Τακτικές ενημερώσεις εξαρτήσεων και περιεχομένου
- Παρακολούθηση θεμάτων και συζητήσεων από τους συντηρητές - Παρακολούθηση θεμάτων και συζητήσεων από τους διαχειριστές
- Αυτόματες ενημερώσεις μεταφράσεων μέσω GitHub Actions - Αυτόματες ενημερώσεις μεταφράσεων μέσω GitHub Actions
### Σχετικοί Πόροι ### Σχετικοί Πόροι
@ -381,28 +381,28 @@ CO_OP_TRANSLATOR_METADATA:
- [Microsoft Learn modules](https://docs.microsoft.com/learn/) - [Microsoft Learn modules](https://docs.microsoft.com/learn/)
- [Student Hub resources](https://docs.microsoft.com/learn/student-hub/) - [Student Hub resources](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) συνιστάται για μαθητές - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) συνιστάται για μαθητές
- Επιπλέον μαθήματα: Generative AI, Data Science, ML, IoT διαθέσιμα - Επιπλέον μαθήματα: Generative AI, Data Science, ML, IoT curricula διαθέσιμα
### Εργασία με Συγκεκριμένα Έργα ### Εργασία με Συγκεκριμένα Έργα
Για λεπτομερείς οδηγίες για τα επιμέρους έργα, ανατρέξτε στα αρχεία README σε: Για λεπτομερείς οδηγίες σε μεμονωμένα έργα, ανατρέξτε στα αρχεία README σε:
- `quiz-app/README.md` - Εφαρμογή κουίζ Vue 3 - `quiz-app/README.md` - Εφαρμογή quiz με Vue 3
- `7-bank-project/README.md` - Εφαρμογή τραπεζικού με αυθεντικοποίηση - `7-bank-project/README.md` - Τραπεζική εφαρμογή με αυθεντικοποίηση
- `5-browser-extension/README.md` - Ανάπτυξη επέκτασης περιηγητή - `5-browser-extension/README.md` - Ανάπτυξη επέκτασης browser
- `6-space-game/README.md` - Παιχνίδι βασισμένο σε canvas - `6-space-game/README.md` - Ανάπτυξη παιχνιδιού βασισμένου σε Canvas
- `9-chat-project/README.md` - Έργο βοηθού συνομιλίας AI - `9-chat-project/README.md` - Έργο βοηθού συνομιλίας AI
### Δομή Monorepo ### Δομή Monorepo
Παρόλο που δεν είναι παραδοσιακό monorepo, αυτό το αποθετήριο περιέχει πολλαπλά ανεξάρτητα έργα: Αν και δεν είναι παραδοσιακό monorepo, αυτό το αποθετήριο περιέχει πολλαπλά ανεξάρτητα έργα:
- Κάθε μάθημα είναι αυτόνομο - Κάθε μάθημα είναι ανεξάρτητο
- Τα έργα δεν μοιράζονται εξαρτήσεις - Τα έργα δεν μοιράζονται εξαρτήσεις
- Εργαστείτε σε επιμέρους έργα χωρίς να επηρεάζετε άλλα - Εργαστείτε σε μεμονωμένα έργα χωρίς να επηρεάζετε τα άλλα
- Κλωνοποιήστε ολόκληρο το αποθετήριο για πλήρη εμπειρία προγράμματος σπουδών - Κλωνοποιήστε ολόκληρο το αποθετήριο για την πλήρη εμπειρία προγράμματος σπουδών
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Αποποίηση Ευθύνης**: **Αποποίηση ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που προσπαθούμε για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική μετάφραση από ανθρώπους. Δεν φέρουμε ευθύνη για οποιεσδήποτε παρανοήσεις ή λανθασμένες ερμηνείες προκύψουν από τη χρήση αυτής της μετάφρασης. Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλούμε να σημειώσετε ότι οι αυτοματοποιημένες μεταφράσεις μπορεί να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,70 +10,80 @@
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
# Ανάπτυξη Ιστού για Αρχάριους - Ένα Πρόγραμμα Σπουδών # Ανάπτυξη Ιστού για Αρχαρίους - Ένα Πρόγραμμα Σπουδών
Μάθετε τα βασικά της ανάπτυξης ιστού με το ολοκληρωμένο μας μάθημα 12 εβδομάδων από τους Microsoft Cloud Advocates. Κάθε ένα από τα 24 μαθήματα εμβαθύνει σε JavaScript, CSS και HTML μέσα από πρακτικά έργα όπως τεραρίουμ, επεκτάσεις προγράμματος περιήγησης και παιχνίδια στο διάστημα. Ασχοληθείτε με κουίζ, συζητήσεις και πρακτικές εργασίες. Αναβαθμίστε τις δεξιότητές σας και βελτιστοποιήστε την απορρόφηση γνώσεων με την αποτελεσματική παιδαγωγική βασισμένη σε έργα. Ξεκινήστε το ταξίδι σας στον κώδικα σήμερα! Μάθετε τα βασικά της ανάπτυξης ιστοσελίδων με το ολοκληρωμένο 12-εβδομαδιαίο μάθημά μας από τους Microsoft Cloud Advocates. Κάθε ένα από τα 24 μαθήματα εμβαθύνει σε JavaScript, CSS και HTML μέσω πρακτικών έργων όπως τεραριαμικά, επεκτάσεις προγράμματος περιήγησης και παιχνίδια στο διάστημα. Συμμετέχετε σε κουίζ, συζητήσεις και πρακτικές αναθέσεις. Βελτιώστε τις δεξιότητές σας και μεγιστοποιήστε τη διατήρηση γνώσεων με την αποτελεσματική παιδαγωγική μας που βασίζεται σε έργα. Ξεκινήστε το ταξίδι κωδικοποίησής σας σήμερα!
Εγγραφείτε στην Κοινότητα Discord Azure AI Foundry Γίνετε μέλος της κοινότητας Azure AI Foundry στο Discord
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε να χρησιμοποιείτε αυτούς τους πόρους: Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε με αυτούς τους πόρους:
1. **Αντιγράψτε το Αποθετήριο**: Κάντε κλικ [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork) 1. **Δημιουργήστε Fork το Αποθετήριο**: Κάντε κλικ [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Εγγραφείτε στο Discord του Azure AI Foundry και γνωρίστε ειδικούς και άλλους προγραμματιστές**](https://discord.com/invite/ByRwuEEgH4) 3. [**Γίνετε μέλος του Azure AI Foundry Discord και γνωρίστε ειδικούς και άλλους προγραμματιστές**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 Υποστήριξη Πολλών Γλωσσών ### 🌐 Υποστήριξη Πολλαπλών Γλωσσών
#### Υποστηρίζεται μέσω GitHub Action (Αυτόματη & Πάντα Ενημερωμένη) #### Υποστηρίζεται μέσω GitHub Action (Αυτοματοποιημένα & Πάντα Ενημερωμένα)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](./README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) [Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](./README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Προτιμάτε να Κλωνοποιήσετε τοπικά;** > **Προτιμάτε να κλωνοποιήσετε τοπικά;**
>
> Αυτό το αποθετήριο περιλαμβάνει πάνω από 50 μεταφράσεις γλωσσών που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς τις μεταφράσεις, χρησιμοποιήστε sparse checkout: > Αυτό το αποθετήριο περιλαμβάνει πάνω από 50 μεταφράσεις γλωσσών, που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς μεταφράσεις, χρησιμοποιήστε τον αραιό έλεγχο:
>
> **Bash / macOS / Linux:**
> ```bash > ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git > git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git
> cd Web-Dev-For-Beginners > cd Web-Dev-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ``` > ```
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git
> cd Web-Dev-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Αυτό σας δίνει όλα όσα χρειάζεστε για να ολοκληρώσετε το μάθημα με πολύ πιο γρήγορη λήψη. > Αυτό σας δίνει όλα όσα χρειάζεστε για να ολοκληρώσετε το μάθημα με πολύ πιο γρήγορη λήψη.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Εάν επιθυμείτε να υποστηριχθούν επιπλέον γλώσσες μετάφρασης, αυτές είναι καταγεγραμμένες [εδώ](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)** **Εάν επιθυμείτε να υποστηρίζονται επιπλέον γλώσσες μετάφρασης, αναφέρονται [εδώ](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) [![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Άνοιγμα%20στο%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
#### 🧑‍🎓 _Είσαι φοιτητής/φοιτήτρια;_ #### 🧑‍🎓 _Είστε φοιτητής;_
Επισκεφθείτε τη [**σελίδα Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) όπου θα βρείτε πόρους για αρχάριους, πακέτα φοιτητών και ακόμα τρόπους να λάβετε δωρεάν κουπόνι πιστοποίησης. Αυτή είναι η σελίδα που θέλετε να αποθηκεύσετε στα αγαπημένα σας και να ελέγχετε περιστασιακά καθώς ενημερώνουμε το περιεχόμενο κάθε μήνα. Επισκεφθείτε τη [**Σελίδα για Φοιτητές**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) όπου θα βρείτε πόρους για αρχάριους, πακέτα για φοιτητές και ακόμα τρόπους να πάρετε δωρεάν κουπόνι πιστοποιητικού. Αυτή είναι η σελίδα που θέλετε να αποθηκεύσετε στα αγαπημένα σας και να ελέγχετε περιοδικά καθώς ανανεώνουμε το περιεχόμενο κάθε μήνα.
### 📣 Ανακοίνωση - Νέες προκλήσεις λειτουργίας GitHub Copilot Agent για ολοκλήρωση! ### 📣 Ανακοίνωση - Νέες προκλήσεις λειτουργίας GitHub Copilot Agent για να ολοκληρώσετε!
Προστέθηκε νέα πρόκληση, αναζητήστε το "GitHub Copilot Agent Challenge 🚀" στα περισσότερα κεφάλαια. Αυτή είναι μια νέα πρόκληση για να ολοκληρώσετε χρησιμοποιώντας το GitHub Copilot και το Agent mode. Αν δεν έχετε χρησιμοποιήσει το Agent mode πριν, μπορεί όχι μόνο να δημιουργεί κείμενο αλλά και να δημιουργεί και να επεξεργάζεται αρχεία, να εκτελεί εντολές και άλλα. Νέα πρόκληση προστέθηκε, ψάξτε για "GitHub Copilot Agent Challenge 🚀" στα περισσότερα κεφάλαια. Αυτή είναι μια νέα πρόκληση για να ολοκληρώσετε χρησιμοποιώντας το GitHub Copilot και τη λειτουργία Agent. Αν δεν έχετε χρησιμοποιήσει τη λειτουργία Agent πριν, μπορεί όχι μόνο να δημιουργεί κείμενο αλλά και να δημιουργεί και να επεξεργάζεται αρχεία, να εκτελεί εντολές και άλλα.
### 📣 Ανακοίνωση - _Νέο έργο για κατασκευή με χρήση Γενετικής Τεχνητής Νοημοσύνης_ ### 📣 Ανακοίνωση - _Νέο Έργο για κατασκευή με τη χρήση Generative AI_
Πρόσθετο νέο έργο Βοηθού AI, δείτε το [έργο](./9-chat-project/README.md) Πρόσφατα προστέθηκε ένα νέο έργο βοηθού AI, δείτε το [έργο](./9-chat-project/README.md)
### 📣 Ανακοίνωση - _Νέο Πρόγραμμα Σπουδών_ για Γενετική Τεχνητή Νοημοσύνη σε JavaScript μόλις κυκλοφόρησε ### 📣 Ανακοίνωση - _Νέο πρόγραμμα σπουδών_ για Generative AI για JavaScript μόλις κυκλοφόρησε
Μην χάσετε το νέο μας πρόγραμμα σπουδών για Γενετική Τεχνητή Νοημοσύνη! Μην χάσετε το νέο μας πρόγραμμα σπουδών για Generative AI!
Επισκεφθείτε [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) για να ξεκινήσετε! Επισκεφθείτε [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) για να ξεκινήσετε!
![Background](../../translated_images/el/background.148a8d43afde5730.webp) ![Background](../../translated_images/el/background.148a8d43afde5730.webp)
- Μαθήματα που καλύπτουν από τα βασικά ως το RAG. - Μαθήματα που καλύπτουν από τα βασικά μέχρι το RAG.
- Αλληλεπιδράστε με ιστορικούς χαρακτήρες μέσω GenAI και της εφαρμογής συνοδού μας. - Αλληλεπιδράστε με ιστορικούς χαρακτήρες χρησιμοποιώντας GenAI και την companion εφαρμογή μας.
- Διασκεδαστική και καλογραμμένη αφήγηση, θα ταξιδεύετε στο χρόνο! - Διασκεδαστική και συναρπαστική αφήγηση, θα ταξιδεύετε στο χρόνο!
![character](../../translated_images/el/character.5c0dd8e067ffd693.webp) ![character](../../translated_images/el/character.5c0dd8e067ffd693.webp)
Κάθε μάθημα περιλαμβάνει μια εργασία για ολοκλήρωση, έναν έλεγχο γνώσης και μια πρόκληση για να σας καθοδηγήσει στη μάθηση θεμάτων όπως: Κάθε μάθημα περιλαμβάνει ανάθεση για ολοκλήρωση, έλεγχο γνώσεων και πρόκληση που σας καθοδηγούν στην εκμάθηση θεμάτων όπως:
- Εντολές και μηχανική εντολών - Πώς να δημιουργείτε prompts και μηχανική prompts
- Δημιουργία εφαρμογών κειμένου και εικόνας - Δημιουργία εφαρμογών κειμένου και εικόνας
- Εφαρμογές αναζήτησης - Εφαρμογές αναζήτησης
@ -83,130 +93,129 @@
## 🌱 Ξεκινώντας ## 🌱 Ξεκινώντας
> **Καθηγητές**, έχουμε [περιλάβει μερικές προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών. Θα εκτιμούσαμε το feedback σας [στο φόρουμ συζητήσεών μας](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! > **Καθηγητές**, έχουμε [συμπεριλάβει ορισμένες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών. Θα θέλαμε πολύ τα σχόλιά σας [στο φόρουμ συζητήσεών μας](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Μαθητές](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, για κάθε μάθημα, ξεκινήστε με ένα προ-λεκτικό κουίζ και συνεχίστε διαβάζοντας το υλικό του μαθήματος, ολοκληρώνοντας τις διάφορες δραστηριότητες και ελέγχοντας την κατανόησή σας με το μετα-λεκτικό κουίζ. **[Μαθητές](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, για κάθε μάθημα, ξεκινήστε με ένα προ-μάθημα κουίζ και συνεχίστε διαβάζοντας το υλικό του μαθήματος, ολοκληρώνοντας τις διάφορες δραστηριότητες και ελέγξτε την κατανόησή σας με το μετα-μάθημα κουίζ.
Για να βελτιώσετε την εκπαιδευτική σας εμπειρία, συνδεθείτε με τους συναδέλφους σας για να δουλέψετε μαζί στα έργα! Οι συζητήσεις ενθαρρύνονται στο [φόρουμ συζητήσεών μας](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) όπου η ομάδα των μεσαζόντων μας θα είναι διαθέσιμη για να απαντήσει στις ερωτήσεις σας. Για να βελτιώσετε την εμπειρία μάθησής σας, συνδεθείτε με τους συμφοιτητές σας για να δουλέψετε στα έργα μαζί! Οι συζητήσεις ενθαρρύνονται στο [φόρουμ συζητήσεών μας](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) όπου η ομάδα των συντονιστών μας θα είναι διαθέσιμη να απαντήσει στις ερωτήσεις σας.
Για περαιτέρω εκπαίδευση, συνιστούμε ανεπιφύλακτα να εξερευνήσετε το [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) για επιπλέον υλικό μελέτης. Για περαιτέρω εκπαίδευση, συνιστούμε ανεπιφύλακτα να εξερευνήσετε το [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) για επιπλέον υλικό μελέτης.
### 📋 Ρύθμιση του περιβάλλοντός σας ### 📋 Ρύθμιση του περιβάλλοντός σας
Αυτό το πρόγραμμα σπουδών έχει ένα περιβάλλον ανάπτυξης έτοιμο για χρήση! Καθώς ξεκινάτε, μπορείτε να επιλέξετε να τρέξετε το πρόγραμμα σε [Codespace](https://github.com/features/codespaces/) (_ένα περιβάλλον βασισμένο σε πρόγραμμα περιήγησης, χωρίς ανάγκη εγκαταστάσεων_), ή τοπικά στον υπολογιστή σας χρησιμοποιώντας έναν επεξεργαστή κειμένου όπως το [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Αυτό το πρόγραμμα σπουδών έχει έτοιμο περιβάλλον ανάπτυξης! Όταν ξεκινάτε, μπορείτε να επιλέξετε να τρέξετε το πρόγραμμα σε ένα [Codespace](https://github.com/features/codespaces/) (_περιβάλλον βασισμένο σε πρόγραμμα περιήγησης, χωρίς ανάγκη εγκατάστασης_), ή τοπικά στον υπολογιστή σας χρησιμοποιώντας έναν επεξεργαστή κειμένου όπως το [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Δημιουργήστε το αποθετήριό σας #### Δημιουργήστε το αποθετήριό σας
Για να αποθηκεύετε εύκολα τη δουλειά σας, συνιστάται να δημιουργήσετε το δικό σας αντίγραφο αυτού του αποθετηρίου. Μπορείτε να το κάνετε πατώντας το κουμπί **Use this template** στο πάνω μέρος της σελίδας. Αυτό θα δημιουργήσει ένα νέο αποθετήριο στο λογαριασμό σας στο GitHub με ένα αντίγραφο του προγράμματος σπουδών. Για να αποθηκεύετε εύκολα τη δουλειά σας, συνιστάται να δημιουργήσετε το δικό σας αντίγραφο αυτού του αποθετηρίου. Μπορείτε να το κάνετε κάνοντας κλικ στο κουμπί **Use this template** στην κορυφή της σελίδας. Αυτό θα δημιουργήσει ένα νέο αποθετήριο στον λογαριασμό σας στο GitHub με ένα αντίγραφο του προγράμματος σπουδών.
Ακολουθήστε αυτά τα βήματα: Ακολουθήστε αυτά τα βήματα:
1. **Αντιγράψτε το Αποθετήριο**: Κάντε κλικ στο κουμπί "Fork" στην πάνω δεξιά γωνία αυτής της σελίδας. 1. **Δημιουργήστε Fork το Αποθετήριο**: Κάντε κλικ στο κουμπί "Fork" στην επάνω δεξιά γωνία αυτής της σελίδας.
2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Εκτέλεση του προγράμματος σε Codespace #### Τρέξιμο του προγράμματος σε Codespace
Στο αντίγραφο αυτού του αποθετηρίου που δημιουργήσατε, κάντε κλικ στο κουμπί **Code** και επιλέξτε **Open with Codespaces**. Αυτό θα δημιουργήσει ένα νέο Codespace για να δουλέψετε. Στο αντίγραφο που δημιουργήσατε, κάντε κλικ στο κουμπί **Code** και επιλέξτε **Open with Codespaces**. Αυτό θα δημιουργήσει έναν νέο Codespace για να εργαστείτε.
![Codespace](../../translated_images/el/createcodespace.0238bbf4d7a8d955.webp) ![Codespace](../../translated_images/el/createcodespace.0238bbf4d7a8d955.webp)
#### Εκτέλεση του προγράμματος τοπικά στον υπολογιστή σας #### Τρέξιμο του προγράμματος τοπικά στον υπολογιστή σας
Για να τρέξετε αυτό το πρόγραμμα τοπικά, θα χρειαστείτε έναν επεξεργαστή κειμένου, ένα πρόγραμμα περιήγησης και ένα εργαλείο γραμμής εντολών. Το πρώτο μάθημά μας, [Εισαγωγή στις Γλώσσες Προγραμματισμού και στα Εργαλεία του Χειριστή](../../1-getting-started-lessons/1-intro-to-programming-languages), θα σας καθοδηγήσει στις διάφορες επιλογές για κάθε ένα από αυτά τα εργαλεία για να επιλέξετε εκείνο που σας ταιριάζει καλύτερα.
Η σύστασή μας είναι να χρησιμοποιήσετε [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ως επεξεργαστή, που επίσης διαθέτει ενσωματωμένο [Τερματικό](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Μπορείτε να κατεβάσετε το Visual Studio Code [εδώ](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Για να τρέξετε αυτό το πρόγραμμα τοπικά στον υπολογιστή σας θα χρειαστείτε έναν επεξεργαστή κειμένου, έναν πρόγραμμα περιήγησης και ένα εργαλείο γραμμής εντολών. Το πρώτο μας μάθημα, [Εισαγωγή στις Γλώσσες Προγραμματισμού και στα Εργαλεία](../../1-getting-started-lessons/1-intro-to-programming-languages), θα σας καθοδηγήσει ανάμεσα στις διάφορες επιλογές για κάθε ένα από αυτά τα εργαλεία, για να επιλέξετε ποια δουλεύει καλύτερα για εσάς.
1. Κλωνοποιήστε το αποθετήριό σας στον υπολογιστή σας. Μπορείτε να το κάνετε πατώντας το κουμπί **Code** και αντιγράφοντας το URL: Η σύστασή μας είναι να χρησιμοποιήσετε το [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ως επεξεργαστή σας, που έχει επίσης ενσωματωμένο [τερματικό](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Μπορείτε να κατεβάσετε το Visual Studio Code [εδώ](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Κλωνοποιήστε το αποθετήριο στον υπολογιστή σας. Μπορείτε να το κάνετε κάνοντας κλικ στο κουμπί **Code** και αντιγράφοντας τη διεύθυνση URL:
[CodeSpace](./images/createcodespace.png) [CodeSpace](./images/createcodespace.png)
Στη συνέχεια, ανοίξτε το [Τερματικό](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) μέσα στο [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) και εκτελέστε την ακόλουθη εντολή, αντικαθιστώντας το `<your-repository-url>` με το URL που μόλις αντιγράψατε:
Στη συνέχεια, ανοίξτε το [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) μέσα στο [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) και εκτελέστε την ακόλουθη εντολή, αντικαθιστώντας το `<your-repository-url>` με τη διεύθυνση URL που μόλις αντιγράψατε:
```bash ```bash
git clone <your-repository-url> git clone <your-repository-url>
``` ```
2. Ανοίξτε τον φάκελο στο Visual Studio Code. Μπορείτε να το κάνετε κάνοντας κλικ στο **File** > **Open Folder** και επιλέγοντας τον φάκελο που μόλις κλωνοποιήσατε. 2. Ανοίξτε το φάκελο στο Visual Studio Code. Μπορείτε να το κάνετε κάνοντας κλικ στο **File** > **Open Folder** και επιλέγοντας το φάκελο που μόλις κλωνοποιήσατε.
> Συνιστώμενες επεκτάσεις για το Visual Studio Code: > Προτεινόμενες επεκτάσεις Visual Studio Code:
> >
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - για προεπισκόπηση σελίδων HTML μέσα στο Visual Studio Code > * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - για προεπισκόπηση σελίδων HTML μέσα στο Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - για να σας βοηθήσει να γράφετε κώδικα πιο γρήγορα > * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - για να σας βοηθήσει να γράφετε κώδικα πιο γρήγορα
## 📂 Κάθε μάθημα περιλαμβάνει: ## 📂 Κάθε μάθημα περιλαμβάνει:
- προαιρετική σχεδίαση ιδεών (sketchnote) - προαιρετικό σκιτσάκι
- προαιρετικό συμπληρωματικό βίντεο - προαιρετικό συμπληρωματικό βίντεο
- προθέρμανση quiz πριν το μάθημα - προ-μαθησιακό quiz για προθέρμανση
- γραπτό μάθημα - γραπτό μάθημα
- για μαθήματα βασισμένα σε project, οδηγίες βήμα προς βήμα για το πώς να χτίσετε το έργο - για μαθήματα βασισμένα σε έργα, οδηγούς βήμα προς βήμα για την κατασκευή του έργου
- ελέγχους γνώσης - ελέγχους γνώσης
- μια πρόκληση - μια πρόκληση
- συμπληρωματική ανάγνωση - συμπληρωματική ανάγνωση
- εργασίες - ανάθεση
- [τεστ μετά το μάθημα](https://ff-quizzes.netlify.app/web/) - [μετα-μαθησιακό quiz](https://ff-quizzes.netlify.app/web/)
> **Μια σημείωση για τα κουίζ**: Όλα τα κουίζ βρίσκονται στον φάκελο Quiz-app, συνολικά 48 κουίζ με τρεις ερωτήσεις το καθένα. Είναι διαθέσιμα [εδώ](https://ff-quizzes.netlify.app/web/) και η εφαρμογή κουίζ μπορεί να τρέξει τοπικά ή να αναπτυχθεί στο Azure· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`. > **Σημείωση σχετικά με τα quiz**: Όλα τα quiz περιέχονται στο φάκελο Quiz-app, συνολικά 48 quiz με τρεις ερωτήσεις το καθένα. Είναι διαθέσιμα [εδώ](https://ff-quizzes.netlify.app/web/), η εφαρμογή quiz μπορεί να τρέξει τοπικά ή να αναπτυχθεί στο Azure· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`.
## 🗃️ Μαθήματα ## 🗃️ Μαθήματα
| | Όνομα Έργου | Διδασκόμενες Έννοιες | Στόχοι Μάθησης | Σχετικό Μάθημα | Συγγραφέας | | | Όνομα Έργου | Διδασκόμενες Έννοιες | Μαθησιακοί Στόχοι | Συνδεδεμένο Μάθημα | Συγγραφέας |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | | :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Ξεκινώντας | Εισαγωγή στον Προγραμματισμό και τα Εργαλεία του Επαγγέλματος | Μάθετε τις βασικές αρχές πίσω από τις περισσότερες γλώσσες προγραμματισμού και για το λογισμικό που βοηθά τους επαγγελματίες προγραμματιστές να κάνουν τη δουλειά τους | [Εισαγωγή στις Γλώσσες Προγραμματισμού και στα Εργαλεία](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine | | 01 | Ξεκινώντας | Εισαγωγή στον Προγραμματισμό και τα Εργαλεία της Εργασίας | Μάθετε τις βασικές αρχές πίσω από τις περισσότερες γλώσσες προγραμματισμού και για το λογισμικό που βοηθά τους επαγγελματίες προγραμματιστές να κάνουν τη δουλειά τους | [Εισαγωγή στις Γλώσσες Προγραμματισμού και Εργαλεία](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Ξεκινώντας | Βασικά του GitHub, περιλαμβάνει τη συνεργασία με ομάδα | Πώς να χρησιμοποιήσετε το GitHub στο έργο σας, πώς να συνεργάζεστε με άλλους σε μια βάση κώδικα | [Εισαγωγή στο GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor | | 02 | Ξεκινώντας | Βασικά του GitHub, περιλαμβάνει συνεργασία με ομάδα | Πώς να χρησιμοποιείτε το GitHub στο έργο σας, πώς να συνεργάζεστε με άλλους σε βάση κώδικα | [Εισαγωγή στο GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Ξεκινώντας | Προσβασιμότητα | Μάθετε τα βασικά της προσβασιμότητας στον ιστό | [Βασικά της Προσβασιμότητας](./1-getting-started-lessons/3-accessibility/README.md) | Christopher | | 03 | Ξεκινώντας | Προσβασιμότητα | Μάθετε τα βασικά της προσβασιμότητας ιστού | [Βασικά της Προσβασιμότητας](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Βασικά JS | Τύποι Δεδομένων JavaScript | Τα βασικά των τύπων δεδομένων JavaScript | [Τύποι Δεδομένων](./2-js-basics/1-data-types/README.md) | Jasmine | | 04 | Βασικά JS | Τύποι Δεδομένων JavaScript | Τα βασικά των τύπων δεδομένων JavaScript | [Τύποι Δεδομένων](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Βασικά JS | Συναρτήσεις και Μέθοδοι | Μάθετε για τις συναρτήσεις και τις μεθόδους για τη διαχείριση της ροής λογικής μιας εφαρμογής | [Συναρτήσεις και Μέθοδοι](./2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher | | 05 | Βασικά JS | Συναρτήσεις και Μέθοδοι | Μάθετε για τις συναρτήσεις και μεθόδους για τη διαχείριση της ροής λογικής μιας εφαρμογής | [Συναρτήσεις και Μέθοδοι](./2-js-basics/2-functions-methods/README.md) | Jasmine και Christopher |
| 06 | Βασικά JS | Λήψη Αποφάσεων με JS | Μάθετε πώς να δημιουργείτε συνθήκες στον κώδικά σας χρησιμοποιώντας μεθόδους λήψης αποφάσεων | [Λήψη Αποφάσεων](./2-js-basics/3-making-decisions/README.md) | Jasmine | | 06 | Βασικά JS | Λήψη Αποφάσεων με JS | Μάθετε πώς να δημιουργείτε συνθήκες στον κώδικά σας χρησιμοποιώντας μεθόδους λήψης αποφάσεων | [Λήψη Αποφάσεων](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Βασικά JS | Πίνακες και Βρόχοι | Εργαστείτε με δεδομένα χρησιμοποιώντας πίνακες και βρόχους στην JavaScript | [Πίνακες και Βρόχοι](./2-js-basics/4-arrays-loops/README.md) | Jasmine | | 07 | Βασικά JS | Πίνακες και Βρόχοι | Εργαστείτε με δεδομένα χρησιμοποιώντας πίνακες και βρόχους σε JavaScript | [Πίνακες και Βρόχοι](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML στην πράξη | Δημιουργήστε το HTML για να φτιάξετε ένα online terrarium, εστιάζοντας στη δημιουργία διάταξης | [Εισαγωγή στο HTML](./3-terrarium/1-intro-to-html/README.md) | Jen | | 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML στην Πράξη | Δημιουργήστε το HTML για ένα διαδικτυακό terrarium, εστιάζοντας στην κατασκευή μιας διάταξης | [Εισαγωγή στο HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS στην πράξη | Δημιουργήστε το CSS για το στυλιζάρισμα του online terrarium, εστιάζοντας στα βασικά του CSS, συμπεριλαμβανομένου και του responsive design | [Εισαγωγή στο CSS](./3-terrarium/2-intro-to-css/README.md) | Jen | | 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS στην Πράξη | Δημιουργήστε το CSS για το στυλ του διαδικτυακού terrarium, εστιάζοντας στα βασικά του CSS, συμπεριλαμβανομένης της ανταπόκρισης της σελίδας | [Εισαγωγή στο CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | Κλεισίματα JavaScript, χειρισμός DOM | Δημιουργήστε τον JavaScript κώδικα για να κάνει το terrarium λειτουργικό ως interface με σύρσιμο και απόθεση, εστιάζοντας σε κλεισίματα και χειρισμό DOM | [Κλεισίματα JavaScript, χειρισμός DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | | 10 | [Terrarium](./3-terrarium/solution/README.md) | Κλεισίματα JavaScript, χειρισμός DOM | Δημιουργήστε τον JavaScript κώδικα για τη λειτουργία του terrarium ως διεπαφή drag/drop, εστιάζοντας στα κλεισίματα και χειρισμό DOM | [Κλεισίματα JavaScript, χειρισμός DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Παιχνίδι Πληκτρολόγησης](./4-typing-game/solution/README.md) | Δημιουργία Παιχνιδιού Πληκτρολόγησης | Μάθετε πώς να χρησιμοποιείτε τα γεγονότα πληκτρολογίου για να οδηγήσετε τη λογική της εφαρμογής JavaScript | [Προγραμματισμός με Γεγονότα](./4-typing-game/typing-game/README.md) | Christopher | | 11 | [Παιχνίδι Πληκτρολόγησης](./4-typing-game/solution/README.md) | Δημιουργία Παιχνιδιού Πληκτρολόγησης | Μάθετε πώς να χρησιμοποιείτε τα γεγονότα πληκτρολογίου για να κατευθύνετε τη λογική της εφαρμογής JavaScript | [Προγραμματισμός με βάση τα γεγονότα](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Πράσινη Επέκταση Περιηγητή](./5-browser-extension/solution/README.md) | Εργασία με Περιηγητές | Μάθετε πώς λειτουργούν οι περιηγητές, την ιστορία τους και πώς να στήσετε τα πρώτα στοιχεία μιας επέκτασης περιηγητή | [Σχετικά με τους Περιηγητές](./5-browser-extension/1-about-browsers/README.md) | Jen | | 12 | [Πράσινη Επέκταση Περιηγητή](./5-browser-extension/solution/README.md) | Εργασία με Περιηγητές | Μάθετε πώς λειτουργούν οι περιηγητές, την ιστορία τους και πώς να στήσετε τα πρώτα στοιχεία επέκτασης περιηγητή | [Σχετικά με τους Περιηγητές](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Πράσινη Επέκταση Περιηγητή](./5-browser-extension/solution/README.md) | Δημιουργία φόρμας, κλήση API και αποθήκευση μεταβλητών στο τοπικό αποθετήριο | Δημιουργήστε τα στοιχεία JavaScript της επέκτασης περιηγητή σας για να καλέσετε ένα API χρησιμοποιώντας μεταβλητές αποθηκευμένες στο τοπικό αποθετήριο | [APIs, Φόρμες και Τοπικό Αποθετήριο](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | | 13 | [Πράσινη Επέκταση Περιηγητή](./5-browser-extension/solution/README.md) | Δημιουργία φόρμας, κλήση API και αποθήκευση μεταβλητών στο τοπικό αποθηκευτικό χώρο | Δημιουργήστε τα στοιχεία JavaScript της επέκτασης περιηγητή σας για να καλέσετε ένα API χρησιμοποιώντας μεταβλητές αποθηκευμένες τοπικά | [APIs, Φόρμες και Τοπική Αποθήκευση](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Πράσινη Επέκταση Περιηγητή](./5-browser-extension/solution/README.md) | Διαδικασίες υπόβαθρου στον περιηγητή, απόδοση στον ιστό | Χρησιμοποιήστε τις διαδικασίες υπόβαθρου για τη διαχείριση του εικονιδίου της επέκτασης· μάθετε για την απόδοση του ιστού και κάποιες βελτιστοποιήσεις για βελτίωση | [Εργασίες Υπόβαθρου και Απόδοση](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | | 14 | [Πράσινη Επέκταση Περιηγητή](./5-browser-extension/solution/README.md) | Φόντινες διεργασίες στον περιηγητή, απόδοση ιστοσελίδας | Χρησιμοποιήστε τις φόντινες διεργασίες του περιηγητή για να διαχειριστείτε το εικονίδιο της επέκτασης· μάθετε για την απόδοση του ιστού και ορισμένες βελτιστοποιήσεις | [Φόντινες εργασίες και Απόδοση](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Προχωρημένη Ανάπτυξη Παιχνιδιών με JavaScript | Μάθετε για την Κληρονομικότητα χρησιμοποιώντας τόσο Κλάσεις όσο και Σύνθεση και το μοτίβο Pub/Sub, σε προετοιμασία για την κατασκευή ενός παιχνιδιού | [Εισαγωγή στην Προχωρημένη Ανάπτυξη Παιχνιδιών](./6-space-game/1-introduction/README.md) | Chris | | 15 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Προχωρημένη Ανάπτυξη Παιχνιδιών με JavaScript | Μάθετε για την Κληρονομικότητα χρησιμοποιώντας και Κλάσεις και Σύνθεση και το πρότυπο Pub/Sub, ως προετοιμασία για τη δημιουργία παιχνιδιού | [Εισαγωγή στην Προχωρημένη Ανάπτυξη Παιχνιδιών](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Σχεδίαση σε καμβά | Μάθετε για το Canvas API, που χρησιμοποιείται για ζωγραφική στοιχείων στην οθόνη | [Σχεδίαση σε Καμβά](./6-space-game/2-drawing-to-canvas/README.md) | Chris | | 16 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Σχεδίαση στον καμβά | Μάθετε για το Canvas API, που χρησιμοποιείται για να ζωγραφίζετε στοιχεία σε οθόνη | [Σχεδίαση στον Καμβά](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Κίνηση στοιχείων στην οθόνη | Ανακαλύψτε πώς τα στοιχεία μπορούν να κινηθούν χρησιμοποιώντας καρτεσιανές συντεταγμένες και το Canvas API | [Κίνηση Στοιχείων](./6-space-game/3-moving-elements-around/README.md) | Chris | | 17 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Μετακίνηση στοιχείων στην οθόνη | Ανακαλύψτε πώς τα στοιχεία μπορούν να αποκτούν κίνηση χρησιμοποιώντας τα καρτεσιανά συντεταγμένα και το Canvas API | [Μετακίνηση Στοιχείων](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Ανίχνευση συγκρούσεων | Κάντε τα στοιχεία να συγκρούονται και να αντιδρούν μεταξύ τους χρησιμοποιώντας πατήματα πλήκτρων και διαθέτοντας λειτουργία ανάρρωσης για ομαλή απόδοση στο παιχνίδι | [Ανίχνευση Σύγκρουσης](./6-space-game/4-collision-detection/README.md) | Chris | | 18 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Ανίχνευση συγκρούσεων | Κάντε τα στοιχεία να συγκρούονται και να αντιδρούν το ένα στο άλλο χρησιμοποιώντας πατήματα και παρέχετε λειτουργία ψύξης για τη βελτίωση της απόδοσης του παιχνιδιού | [Ανίχνευση Συγκρούσεων](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Διατήρηση σκορ | Εκτελέστε μαθηματικούς υπολογισμούς βάσει της κατάστασης και απόδοσης του παιχνιδιού | [Διατήρηση Σκορ](./6-space-game/5-keeping-score/README.md) | Chris | | 19 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Διατήρηση σκορ | Εκτελέστε μαθηματικούς υπολογισμούς με βάση την κατάσταση και απόδοση του παιχνιδιού | [Διατήρηση Σκορ](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Τερματισμός και επανεκκίνηση παιχνιδιού | Μάθετε για τον τερματισμό και την επανεκκίνηση του παιχνιδιού, συμπεριλαμβανομένου του καθαρισμού πόρων και της επαναφοράς μεταβλητών | [Η Συνθήκη Τερματισμού](./6-space-game/6-end-condition/README.md) | Chris | | 20 | [Παιχνίδι Διαστήματος](./6-space-game/solution/README.md) | Τερματισμός και επανεκκίνηση παιχνιδιού | Μάθετε για τον τερματισμό και την επανεκκίνηση του παιχνιδιού, συμπεριλαμβανομένου του καθαρισμού πόρων και της επαναφοράς τιμών μεταβλητών | [Η Συνθήκη Τερματισμού](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Πρότυπα HTML και Διαδρομές σε μια Web Εφαρμογή | Μάθετε πώς να δημιουργήσετε τη δομή μιας πολυσέλιδης ιστοσελίδας χρησιμοποιώντας routing και πρότυπα HTML | [Πρότυπα HTML και Διαδρομές](./7-bank-project/1-template-route/README.md) | Yohan | | 21 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Πρότυπα HTML και Διαδρομές σε μια Ιστοσελίδα | Μάθετε πώς να δημιουργήσετε τη δομή μιας πολυσέλιδης ιστοσελίδας χρησιμοποιώντας δρομολόγηση και πρότυπα HTML | [Πρότυπα HTML και Διαδρομές](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Δημιουργία Φόρμας Σύνδεσης και Εγγραφής | Μάθετε για τη δημιουργία φορμών και τη διαχείριση των διαδικασιών επικύρωσης | [Φόρμες](./7-bank-project/2-forms/README.md) | Yohan | | 22 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Δημιουργία Φόρμας Εισόδου και Εγγραφής | Μάθετε για τη δημιουργία φορμών και τη διαχείριση ρουτινών ελέγχου | [Φόρμες](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Μέθοδοι Ανάκτησης και Χρήσης Δεδομένων | Πώς ρέουν τα δεδομένα μέσα και έξω από την εφαρμογή σας, πώς να τα ανακτάτε, να τα αποθηκεύετε και να τα απορρίπτετε | [Δεδομένα](./7-bank-project/3-data/README.md) | Yohan | | 23 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Μέθοδοι Λήψης και Χρήσης Δεδομένων | Πώς τα δεδομένα ρέουν μέσα κι έξω από την εφαρμογή σας, πώς να τα λαμβάνετε, να τα αποθηκεύετε και να τα απορρίπτετε | [Δεδομένα](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Έννοιες Διαχείρισης Κατάστασης | Μάθετε πώς η εφαρμογή διατηρεί την κατάσταση και πώς να τη διαχειρίζεστε προγραμματιστικά | [Διαχείριση Κατάστασης](./7-bank-project/4-state-management/README.md) | Yohan | | 24 | [Εφαρμογή Τραπεζικής](./7-bank-project/solution/README.md) | Έννοιες Διαχείρισης Κατάστασης | Μάθετε πώς η εφαρμογή σας διατηρεί κατάσταση και πώς να τη διαχειρίζεστε προγραμματιστικά | [Διαχείριση Κατάστασης](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Κώδικας Περιηγητή/VSCode](../../8-code-editor) | Εργασία με το VScode | Μάθετε πώς να χρησιμοποιείτε έναν επεξεργαστή κώδικα | [Χρήση επεξεργαστή κώδικα VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris | | 25 | [Κώδικας Browser/VScode](../../8-code-editor) | Εργασία με το VScode | Μάθετε πώς να χρησιμοποιείτε έναν επεξεργαστή κώδικα | [Χρήση του επεξεργαστή κώδικα VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [Βοηθοί Τεχνητής Νοημοσύνης](./9-chat-project/README.md) | Εργασία με AI | Μάθετε πώς να δημιουργήσετε τον δικό σας βοηθό τεχνητής νοημοσύνης | [Έργο Βοηθού AI](./9-chat-project/README.md) | Chris | | 26 | [Βοηθοί Τεχνητής Νοημοσύνης](./9-chat-project/README.md) | Εργασία με ΤΝ | Μάθετε πώς να φτιάξετε τον δικό σας βοηθό ΤΝ | [Έργο βοηθού ΤΝ](./9-chat-project/README.md) | Chris |
## 🏫 Παιδαγωγική ## 🏫 Παιδαγωγική
Το πρόγραμμα σπουδών μας έχει σχεδιαστεί με δύο βασικές παιδαγωγικές αρχές στο μυαλό: Το πρόγραμμα σπουδών μας έχει σχεδιαστεί με δύο βασικές παιδαγωγικές αρχές στο μυαλό:
* μάθηση βασισμένη σε έργα * μάθηση βασισμένη σε έργα
* συχνά κουίζ * συχνά quiz
Το πρόγραμμα διδάσκει τα βασικά της JavaScript, HTML και CSS, καθώς και τα πιο σύγχρονα εργαλεία και τεχνικές που χρησιμοποιούν οι σύγχρονοι προγραμματιστές ιστού. Οι μαθητές θα έχουν την ευκαιρία να αναπτύξουν πρακτική εμπειρία δημιουργώντας ένα παιχνίδι πληκτρολόγησης, ένα εικονικό terrarium, μια οικολογική επέκταση περιηγητή, ένα παιχνίδι τύπου εισβολέα στο διάστημα και μια τραπεζική εφαρμογή για επιχειρήσεις. Μέχρι το τέλος της σειράς, οι μαθητές θα έχουν αποκτήσει μια στέρεη κατανόηση της ανάπτυξης στον ιστό. Το πρόγραμμα διδάσκει τα βασικά του JavaScript, HTML και CSS, καθώς και τα πιο πρόσφατα εργαλεία και τεχνικές που χρησιμοποιούν οι σημερινοί προγραμματιστές ιστού. Οι σπουδαστές θα έχουν την ευκαιρία να αποκτήσουν πρακτική εμπειρία χτίζοντας ένα παιχνίδι πληκτρολόγησης, ένα εικονικό terrarium, μια φιλική προς το περιβάλλον επέκταση περιηγητή, ένα παιχνίδι τύπου space-invader και μια τραπεζική εφαρμογή για επιχειρήσεις. Μέχρι το τέλος της σειράς, οι μαθητές θα έχουν αποκτήσει σταθερή κατανόηση της ανάπτυξης ιστού.
> 🎓 Μπορείτε να παρακολουθήσετε τα πρώτα μαθήματα αυτού του προγράμματος ως [Μονοπάτι Μάθησης](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) στο Microsoft Learn! > 🎓 Μπορείτε να παρακολουθήσετε τα πρώτα λίγα μαθήματα αυτού του προγράμματος σπουδών ως [Μονοπάτι Μάθησης](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) στο Microsoft Learn!
Διασφαλίζοντας ότι το περιεχόμενο εναρμονίζεται με τα έργα, η διαδικασία γίνεται πιο ελκυστική για τους μαθητές και η διατήρηση των εννοιών ενισχύεται. Επίσης, γράψαμε αρκετά εισαγωγικά μαθήματα στα βασικά της JavaScript για την εισαγωγή εννοιών, συνοδευόμενα από ένα βίντεο από τη συλλογή βίντεο "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", αρκετοί από τους συγγραφείς του οποίου συνέβαλαν σε αυτό το πρόγραμμα σπουδών. Διασφαλίζοντας ότι το περιεχόμενο ευθυγραμμίζεται με τα έργα, η διαδικασία γίνεται πιο ελκυστική για τους μαθητές και η διατήρηση των εννοιών ενισχύεται. Επίσης γράψαμε αρκετά αρχικά μαθήματα στα βασικά της JavaScript για να παρουσιάσουμε έννοιες, σε συνδυασμό με βίντεο από τη συλλογή "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" με βιντεομαθήματα, με μερικούς από τους συγγραφείς τους να έχουν συμβάλει σε αυτό το πρόγραμμα σπουδών.
Επιπλέον, ένα χαμηλού ρίσκου κουίζ πριν το μάθημα θέτει την πρόθεση του μαθητή προς την εκμάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά το μάθημα εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σπουδών σχεδιάστηκε να είναι ευέλικτο και διασκεδαστικό και μπορεί να παρακολουθηθεί ολόκληρο ή κατά τμήματα. Τα έργα ξεκινούν μικρά και γίνονται όλο και πιο σύνθετα προς το τέλος του κύκλου των 12 εβδομάδων. Επιπλέον, ένα ανεπίσημο quiz πριν από το μάθημα θέτει τον σκοπό του μαθητή προς την εκμάθηση μιας θεματικής ενότητας, ενώ ένα δεύτερο quiz μετά το μάθημα διασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σπουδών έχει σχεδιαστεί ώστε να είναι ευέλικτο και διασκεδαστικό και μπορεί να παρακολουθηθεί στο σύνολό του ή μεμονωμένα τμήματα. Τα έργα ξεκινούν μικρά και γίνονται όλο και πιο σύνθετα μέχρι το τέλος του δωδεκαβδομαδιαίου κύκλου.
Παρόλο που αποφεύγουμε εσκεμμένα την εισαγωγή πλαισίων εργασίας JavaScript για να εστιάσουμε στις βασικές δεξιότητες που χρειάζεται ένας προγραμματιστής ιστού πριν από την υιοθέτηση πλαισίου, ένα καλό επόμενο βήμα για την ολοκλήρωση αυτού του προγράμματος θα ήταν η εκμάθηση του Node.js μέσω μιας άλλης συλλογής βίντεο: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)". Ενώ έχουμε σκοπίμως αποφύγει την εισαγωγή πλαισίων JavaScript για να επικεντρωθούμε στις βασικές δεξιότητες που χρειάζεται ένας προγραμματιστής ιστού πριν την υιοθέτηση πλαισίου, ένα καλό επόμενο βήμα για την ολοκλήρωση αυτού του προγράμματος σπουδών θα ήταν η εκμάθηση του Node.js μέσω μιας άλλης συλλογής βίντεο: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Επισκεφτείτε τις οδηγίες μας [Κώδικας Συμπεριφοράς](CODE_OF_CONDUCT.md) και [Συνεισφοράς](CONTRIBUTING.md). Καλωσορίζουμε τα εποικοδομητικά σας σχόλια! > Επισκεφτείτε τους [Κανόνες Συμπεριφοράς](CODE_OF_CONDUCT.md) και τις οδηγίες [Συμμετοχής](CONTRIBUTING.md). Καλωσορίζουμε τις εποικοδομητικές σας παρατηρήσεις!
## 🧭 Πρόσβαση εκτός σύνδεσης ## 🧭 Πρόσβαση εκτός σύνδεσης
Μπορείτε να εκτελέσετε αυτή την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στη τοπική σας μηχανή και μετά στο ριζικό φάκελο αυτού του αποθετηρίου, πληκτρολογήστε `docsify serve`. Ο ιστότοπος θα σερβιριστεί στην πόρτα 3000 στον τοπικό σας υπολογιστή: `localhost:3000`. Μπορείτε να τρέξετε αυτή την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κλωνοποιήστε το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό σας υπολογιστή και μετά στον ριζικό φάκελο του αποθετηρίου, πληκτρολογήστε `docsify serve`. Ο ιστότοπος θα σερβιριστεί στην θύρα 3000 στο τοπικό σας μηχάνημα: `localhost:3000`.
## 📘 PDF ## 📘 PDF
Ένα PDF με όλα τα μαθήματα μπορεί να βρεθεί [εδώ](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
Ένα PDF με όλα τα μαθήματα μπορείτε να βρείτε [εδώ](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Άλλα Μαθήματα ## 🎒 Άλλα Μαθήματα
Η ομάδα μας παράγει και άλλα μαθήματα! Δείτε: Η ομάδα μας παράγει και άλλα μαθήματα! Δείτε:
<!-- CO-OP TRANSLATOR OTHER COURSES START --> <!-- CO-OP TRANSLATOR OTHER COURSES START -->
@ -224,7 +233,7 @@
--- ---
### Σειρά για Δημιουργική Τεχνητή Νοημοσύνη ### Σειρά για Τη Γενετική Τεχνητή Νοημοσύνη
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -232,7 +241,7 @@
--- ---
### Κεντρική Μάθηση ### Βασική Μάθηση
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -251,11 +260,11 @@
## Λήψη Βοήθειας ## Λήψη Βοήθειας
Αν κολλήσετε ή έχετε ερωτήσεις σχετικά με τη δημιουργία εφαρμογών AI, συμμετάσχετε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις σχετικά με το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα. Αν κολλήσετε ή έχετε απορίες σχετικά με την ανάπτυξη εφαρμογών ΤΝ, συμμετάσχετε σε συζητήσεις με άλλους μαθητές και έμπειρους προγραμματιστές για το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Αν έχετε ανατροφοδότηση για το προϊόν ή λάθη κατά την ανάπτυξη, επισκεφθείτε: Εάν έχετε ανατροφοδότηση προϊόντος ή λάθη κατά την ανάπτυξη, επισκεφτείτε:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
@ -266,6 +275,6 @@
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Απόρρητο**: **Αποποίηση ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας υπηρεσία μετάφρασης με τεχνητή νοημοσύνη [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που επιδιώκουμε την ακρίβεια, παρακαλείστε να γνωρίζετε ότι οι αυτοματοποιημένες μεταφράσεις μπορεί να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική μετάφραση από ανθρώπινο μεταφραστή. Δεν φέρουμε ευθύνη για τυχόν παρερμηνείες ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. Το παρόν έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρότι προσπαθούμε για ακρίβεια, παρακαλούμε να σημειώσετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το αρχικό έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{ {
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": { "1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "d45ddcc54eb9232a76d08328b09d792e", "original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-01-06T23:15:38+00:00", "translation_date": "2026-03-06T12:17:15+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md", "source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "sv" "language_code": "sv"
}, },
@ -493,7 +493,7 @@
}, },
"AGENTS.md": { "AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34", "original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-02-06T17:23:53+00:00", "translation_date": "2026-03-06T12:20:45+00:00",
"source_file": "AGENTS.md", "source_file": "AGENTS.md",
"language_code": "sv" "language_code": "sv"
}, },
@ -516,8 +516,8 @@
"language_code": "sv" "language_code": "sv"
}, },
"README.md": { "README.md": {
"original_hash": "6d6385fd098088cb2d690fb0a6cdaedc", "original_hash": "a2c9eed480687319517c08a6319e5536",
"translation_date": "2026-02-06T17:18:18+00:00", "translation_date": "2026-03-06T12:13:32+00:00",
"source_file": "README.md", "source_file": "README.md",
"language_code": "sv" "language_code": "sv"
}, },

@ -1,27 +1,27 @@
# Introduktion till programmeringsspråk och moderna utvecklarverktyg # Introduktion till programmeringsspråk och moderna utvecklarverktyg
Hej där, framtida utvecklare! 👋 Får jag berätta något som fortfarande ger mig rysningar varje dag? Du är på väg att upptäcka att programmering inte bara handlar om datorer det handlar om att ha riktiga superkrafter för att förverkliga dina vildaste idéer! Hej där, blivande utvecklare! 👋 Kan jag berätta något som fortfarande ger mig rysningar varje dag? Du är på väg att upptäcka att programmering inte bara handlar om datorer det handlar om att ha verkliga superkrafter för att förverkliga dina vildaste idéer!
Du vet det ögonblick när du använder din favoritapp och allt bara klickar perfekt? När du trycker på en knapp och något helt magiskt händer som får dig att säga "wow, hur gjorde de DET?" Någon precis som du säkert sittande på sitt favoritkaffe på morgonen klockan 2 med sin tredje espresso skrev koden som skapade den magin. Och här kommer något som kommer att spränga ditt sinne: i slutet av den här lektionen kommer du inte bara att förstå hur de gjorde det, utan du kommer att vara ivrig att prova själv! Du vet det ögonblick när du använder din favoritapp och allt klickar perfekt? När du trycker på en knapp och något helt magiskt händer som får dig att tänka "wow, hur GJORDE de det?" Någon precis som du förmodligen sittande på sitt favoritkafé klockan 2 på morgonen med sin tredje espresso skrev koden som skapade den magin. Och här är något som kommer att blåsa dig av stolen: i slutet av denna lektion kommer du inte bara förstå hur de gjorde det, utan du kommer att vara ivrig att prova själv!
Vi tar det från början: jag förstår helt om programmering känns skrämmande just nu. När jag började trodde jag ärligt talat att man behövde vara något slags mattegeni eller ha kodat sedan man var fem år gammal. Men det här är vad som helt förändrade mitt perspektiv: programmering är precis som att lära sig att prata på ett nytt språk. Du börjar med "hej" och "tack", sen beställer du en kaffe och plötsligt har du djupa filosofiska diskussioner! Fast i det här fallet pratar du med datorer, och ärligt? De är de mest tålmodiga samtalspartner du någonsin kommer att ha de dömer aldrig dina misstag och de är alltid taggade att försöka igen! Lyssna, jag förstår helt om programmering känns skrämmande just nu. När jag började trodde jag faktiskt att man var tvungen att vara något slags mattegeni eller ha kodat sedan man var fem år gammal. Men här är vad som helt förändrade mitt perspektiv: programmering är precis som att lära sig att föra samtal på ett nytt språk. Du börjar med "hej" och "tack," sedan går du vidare till att beställa kaffe, och innan du vet ordet av håller du djupa filosofiska diskussioner! Fast i det här fallet pratar du med datorer, och ärligt talat? De är de tålamodigaste samtalspartnerna du någonsin kommer att hitta de dömer aldrig dina misstag och är alltid lika glada att försöka igen!
Idag ska vi utforska de otroliga verktyg som gör modern webbprogrammering inte bara möjlig, utan riktigt beroendeframkallande. Jag menar precis samma redigerare, webbläsare och arbetsflöden som utvecklare på Netflix, Spotify och din favorit indieapp-studio använder varje dag. Och här kommer det som får dig att vilja dansa glädjedans: de flesta av dessa professionella, branschstandardverktyg är helt gratis! Idag ska vi utforska de otroliga verktyg som gör modern webbutveckling inte bara möjlig, utan seriöst beroendeframkallande. Jag pratar om exakt samma redigerare, webbläsare och arbetsflöden som utvecklare på Netflix, Spotify och din favorit indie-appstudio använder varje dag. Och här är delen som kommer få dig att göra en glad dans: de flesta av dessa professionella, industristandard verktyg är helt gratis!
![Intro Programming](../../../../translated_images/sv/webdev101-programming.d6e3f98e61ac4bff.webp) ![Intro Programming](../../../../translated_images/sv/webdev101-programming.d6e3f98e61ac4bff.webp)
> Sketchnote av [Tomomi Imura](https://twitter.com/girlie_mac) > Sketchnote av [Tomomi Imura](https://twitter.com/girlie_mac)
```mermaid ```mermaid
journey journey
title Din programmeringsresa idag title Din Programmeringsresa Idag
section Upptäck section Upptäck
Vad är programmering: 5: You Vad är Programmering: 5: You
Programmeringsspråk: 4: You Programmeringsspråk: 4: You
Verktygsöversikt: 5: You Verktygsöversikt: 5: You
section Utforska section Utforska
Kodeditorer: 4: You Kodredigerare: 4: You
Webbläsare & utvecklarverktyg: 5: You Webbläsare & Utvecklarverktyg: 5: You
Kommandoraden: 3: You Kommandorad: 3: You
section Öva section Öva
Språkdetsektiv: 4: You Språkdetsektiv: 4: You
Verktygsutforskning: 5: You Verktygsutforskning: 5: You
@ -29,56 +29,56 @@ journey
``` ```
## Låt oss se vad du redan kan! ## Låt oss se vad du redan kan!
Innan vi hoppar in i det roliga, jag är nyfiken vad vet du redan om den här programmeringsvärlden? Och lyssna, om du tänker på de här frågorna och känner "jag har verkligen noll koll på något av det här," så är det inte bara okej, det är perfekt! Det betyder att du är precis på rätt plats. Tänk på det här quizet som att stretcha innan träningen vi värmer bara upp hjärnmusklerna! Innan vi hoppar in i det roliga är jag nyfiken vad vet du redan om den här programmeringsvärlden? Och hör här, om du ser på dessa frågor och tänker "jag har bokstavligen noll koll på det här," så är det inte bara okej, det är perfekt! Det betyder att du är på exakt rätt plats. Tänk på detta quiz som stretching före ett träningspass vi värmer bara upp hjärnmusklerna!
[Ta förtestet](https://forms.office.com/r/dru4TE0U9n?origin=lprLink) [Ta för-lektionsquizet](https://ff-quizzes.netlify.app/web/)
## Äventyret vi ska gå på tillsammans ## Äventyret vi snart ska ge oss ut på tillsammans
Okej, jag är genuint sprudlande av spänning över vad vi ska utforska idag! På riktigt, jag önskar att jag kunde se ditt ansikte när några av dessa koncept klickar. Här är den otroliga resan vi tar tillsammans: Okej, jag bubblar verkligen av spänning över vad vi ska utforska idag! Seriöst, jag önskar att jag kunde se ditt ansikte när några av dessa koncept klickar. Här är den otroliga resan vi r tillsammans:
- **Vad programmering egentligen är (och varför det är det coolaste som finns!)** Vi ska upptäcka hur kod bokstavligen är den osynliga magin som driver allt runt omkring dig, från det alarm som på något sätt vet att det är måndag morgon till algoritmen som perfekt anpassar dina Netflix-rekommendationer - **Vad programmering egentligen är (och varför det är det coolaste någonsin!)** Vi ska upptäcka hur kod bokstavligen är den osynliga magin som driver allt runt omkring dig, från alarmet som på något sätt vet att det är måndag morgon till algoritmen som perfekt kuraterar dina rekommendationer på Netflix
- **Programmeringsspråk och deras fantastiska personligheter** Föreställ dig att du r in på en fest där varje person har helt olika superkrafter och sätt att lösa problem. Så är programmeringsspråkens värld, och du kommer att älska att träffa dem! - **Programmeringsspråk och deras fantastiska personligheter** Föreställ dig att gå in på en fest där varje person har helt olika superkrafter och sätt att lösa problem. Så är programmeringsspråkens värld, och du kommer att älska att träffa dem!
- **De grundläggande byggstenarna som får den digitala magin att hända** Tänk på dessa som det ultimata kreativa LEGO-setet. När du förstår hur dessa bitar passar ihop, inser du att du bokstavligen kan bygga vad din fantasi än drömmer om - **De grundläggande byggstenarna som får digital magi att hända** Tänk på detta som det ultimata kreativa LEGO-setet. När du förstår hur dessa delar passar ihop kommer du inse att du bokstavligen kan bygga vad som helst din fantasi drömmer om
- **Professionella verktyg som får dig att känna att du just fått en trollstav** Jag överdriver inte här de här verktygen får dig verkligen att känna att du har superkrafter, och det bästa av allt? Det är de samma proffsen använder! - **Professionella verktyg som får dig att känna att du just fått en trollspö** Jag överdriver inte här de här verktygen kommer verkligen få dig att känna att du har superkrafter, och det bästa? Det är samma verktyg som proffsen använder!
> 💡 **Här är grejen**: Försök inte ens memorera allt idag! Just nu vill jag bara att du ska känna den där gnistan av spänning över vad som är möjligt. Detaljerna fastnar naturligt när vi övar tillsammans lär du dig på riktigt! > 💡 **Här är saken**: Försök inte ens memorera allt idag! Just nu vill jag bara att du ska känna det där pirret av spänning över vad som är möjligt. Detaljerna fastnar naturligt när vi övar tillsammans funkar riktig inlärning!
> Du kan ta den här lektionen på [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)! > Du kan ta denna lektion på [Microsoft Learn](https://learn.microsoft.com/en-us/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
## Så vad är egentligen *programmering*? ## Så vad exakt *är* programmering?
Okej, låt oss ta oss an miljonfrågan: vad är programmering egentligen? Okej, låt oss ta itu med den miljonfrågan: vad är programmering, egentligen?
Jag ger dig en historia som helt förändrade hur jag tänker på det här. Förra veckan försökte jag förklara för min mamma hur man använder vår nya smarta TV-fjärrkontroll. Jag fann mig själv säga saker som "Tryck på den röda knappen, men inte den stora röda knappen, den lilla röda knappen till vänster... nej, din andra vänster... okej, håll nu i två sekunder, inte en, inte tre..." Låter det bekant? 😅 Jag ska ge dig en historia som helt förändrade hur jag tänker om detta. Förra veckan försökte jag förklara för min mamma hur man använder vår nya smarta TV-fjärrkontroll. Jag fångade mig själv när jag sa saker som "Tryck på den röda knappen, men inte den stora röda knappen, den lilla röda knappen till vänster… nej, din andra vänster… okej, håll den i två sekunder, inte en, inte tre..." Känner du igen dig? 😅
Det är programmering! Det är konsten att ge otroligt detaljerade, steg-för-steg-instruktioner till något som är väldigt kraftfullt men som behöver allt uttalat perfekt. Fast istället för att förklara för din mamma (som kan fråga ”vilken röd knapp?!”), förklarar du för en dator (som bara gör exakt vad du säger, även om det du sa inte riktigt var vad du menade). Det är programmering! Det är konsten att ge otroligt detaljerade, steg-för-steg instruktioner till något som är väldigt kraftfullt men behöver allt stavat helt perfekt. Fast istället för att förklara för din mamma (som kan fråga "vilken röd knapp?!"), förklarar du för en dator (som bara gör exakt vad du säger, även om det du sa inte riktigt är vad du menade).
Här är vad som blåste bort mig när jag först lärde mig det: datorer är faktiskt ganska enkla i grunden. De förstår bokstavligen bara två saker 1 och 0, vilket i princip är ”ja” och ”nej” eller ”på” och ”av.” Det är allt! Men här blir det magiskt vi behöver inte prata i 1:or och 0:or som i The Matrix. Då kommer **programmeringsspråken** till undsättning. De är som världens bästa översättare som tar dina helt normala mänskliga tankar och omvandlar dem till datorspråk. Här är vad som blåste mitt sinne när jag först lärde mig detta: datorer är faktiskt ganska enkla i grunden. De förstår bokstavligen bara två saker 1 och 0, vilket i princip bara är "ja" och "nej" eller "på" och "av." Det är allt! Men här blir det magiskt vi behöver inte tala i 1 och 0 som i The Matrix. Det är där **programmeringsspråken** räddar oss. De är som att ha världens bästa översättare som tar dina helt normala mänskliga tankar och konverterar dem till datorns språk.
Och här är vad som fortfarande ger mig riktiga rysningar varje morgon när jag vaknar: bokstavligen *allt* digitalt i ditt liv började med någon precis som du, förmodligen sittande i pyjamas med en kopp kaffe, som skrev kod på sin laptop. Det Instagram-filter som får dig att se felfri ut? Någon kodade det. Rekommendationen som ledde dig till din nya favoritlåt? En utvecklare byggde den algoritmen. Appen som hjälper dig att dela middagsnotan med vänner? Japp, någon tänkte "det här är irriterande, jag kan nog fixa det" och sedan... gjorde de det! Och här är något som fortfarande ger mig kalla kårar varje morgon när jag vaknar: bokstavligen *allt* digitalt i ditt liv började med någon precis som du, antagligen sittande i sina pyjamas med en kopp kaffe, skrivande kod på sin laptop. Det Instagramfilter som får dig att se felfri ut? Någon kodade det. Rekommendationen som ledde dig till din nya favoritlåt? En utvecklare byggde den algoritmen. Appen som hjälper dig att dela notan med vänner? Japp, någon tänkte "det här är irriterande, jag tror jag kan fixa det" och sedan... gjorde de det!
När du lär dig programmera plockar du inte bara upp en ny färdighet du blir del av den här otroliga gemenskapen av problemlösare som tillbringar sina dagar med att fundera, "Tänk om jag kunde bygga något som gör någons dag bara lite bättre?" Är det ärligt talat något coolare än det? När du lär dig programmera plockar du inte bara upp en ny färdighet du blir en del av denna otroliga gemenskap av problemlösare som tillbringar sina dagar med att tänka, "Tänk om jag kunde bygga något som gör någons dag lite bättre?" Ärligt talat, finns det något coolare än det?
**Rolig fakta-jakt**: Här är något supercoolt att kolla upp när du har en stund över vem tror du var världens första programmerare? Jag ger dig en ledtråd: det är kanske inte den du väntar dig! Historien bakom den personen är helt fascinerande och visar att programmering alltid har handlat om kreativ problemlösning och att tänka utanför boxen. **Rolig fakta-jakt**: Här är något supercoolt att kolla upp när du har en stund över vem tror du var världens första programmerare? Jag ger dig en ledtråd: det är kanske inte den du förväntar dig! Historien bakom denna person är helt fascinerande och visar att programmering alltid har handlat om kreativ problemlösning och att tänka utanför boxen.
### 🧠 **Check-in: Hur känner du dig?** ### 🧠 **Dags för en check-in: Hur känner du dig?**
**Ta en stund att reflektera:** **Ta en stund att reflektera:**
- Känns idén "att ge instruktioner till datorer" logisk för dig nu? - Känns idén att "ge instruktioner till datorer" som något du förstår nu?
- Kan du tänka på en vardagssyssla du skulle vilja automatisera med programmering? - Kan du tänka dig en daglig uppgift du skulle vilja automatisera med programmering?
- Vilka frågor bubblar upp i ditt huvud om hela det här programmeringsgrejen? - Vilka frågor bubblar upp i ditt sinne om hela detta programmeringsgrej?
> **Kom ihåg**: Det är helt normalt om vissa koncept känns svåra just nu. Att lära sig programmering är som att lära sig ett nytt språk det tar tid för hjärnan att bygga de där nervbanorna. Du gör det jättebra! > **Kom ihåg**: Det är helt normalt om vissa koncept känns oklara just nu. Att lära sig programmering är som att lära sig ett nytt språk det tar tid för hjärnan att bygga de där nervbanorna. Du gör det jättebra!
## Programmeringsspråk är som olika smaker av magi ## Programmeringsspråk är som olika smaker av magi
Okej, det här kommer låta konstigt, men häng med programmeringsspråk är mycket som olika typer av musik. Tänk så här: du har jazz, som är mjuk och improviserande, rock som är kraftfull och rak-på-sak, klassiskt som är elegant och strukturerat och hip-hop som är kreativt och uttrycksfullt. Varje stil har sin egen stämning, sin egen passionerade fan-gemenskap, och varje är perfekt för olika humör och tillfällen. Okej, det här kommer låta konstigt, men häng kvar programmeringsspråk är mycket som olika typer av musik. Tänk efter: du har jazz, som är mjuk och improviserad, rock som är kraftfull och rak på sak, klassisk som är elegant och strukturerad, och hip-hop som är kreativ och uttrycksfull. Varje stil har sin egen stämning, sin egen community av passionerade fans, och varje passar för olika humör och tillfällen.
Programmeringsspråk fungerar precis likadant! Du skulle inte använda samma språk för att skapa ett kul mobilspel som du skulle använda för att bearbeta massiva mängder klimatdata, precis som du inte skulle spela death metal på yogaklassen (tja, de flesta yogaklasser i alla fall! 😄). Programmeringsspråken fungerar exakt likadant! Du skulle inte använda samma språk för att bygga ett roligt mobilspel som du använder för att bearbeta massiva mängder klimatdata, precis som du inte spelar death metal på yogaklassen (tja, de flesta yogaklasserna i alla fall! 😄).
Men här är det som alltid fascinerar mig när jag tänker på det: de här språken är som att ha världens mest tålmodiga, briljanta tolk sittande bredvid dig. Du kan uttrycka dina idéer på ett sätt som känns naturligt för din mänskliga hjärna, och de tar hand om all den otroligt komplexa översättningen till 1:or och 0:or som datorer faktiskt förstår. Det är som att ha en vän som är fullständigt tvåspråkig i både "mänsklig kreativitet" och "datorlogik" och de blir aldrig trötta, behöver aldrig kaffepauser och dömer dig aldrig för att fråga samma fråga två gånger! Men här är något som alltid förbluffar mig varje gång jag tänker på det: dessa språk är som att ha världens mest tålmodiga, briljanta tolk sittandes bredvid dig. Du kan uttrycka dina idéer på ett sätt som känns naturligt för din mänskliga hjärna, och de sköter allt det otroligt komplexa arbetet med att översätta det till 1:or och 0:or som datorer faktiskt talar. Det är som att ha en vän som är perfekt flytande i både "mänsklig kreativitet" och "datorlogik" och de blir aldrig trötta, behöver aldrig kaffepauser och dömer dig aldrig för att du frågar samma fråga två gånger!
### Populära programmeringsspråk och deras användningsområden ### Populära programmeringsspråk och deras användningsområden
@ -91,7 +91,7 @@ mindmap
Interaktiva Webbplatser Interaktiva Webbplatser
TypeScript TypeScript
JavaScript + Typer JavaScript + Typer
Företagsappar Företagsapplikationer
Data & AI Data & AI
Python Python
Dataanalys Dataanalys
@ -106,7 +106,7 @@ mindmap
Företag Företag
Swift Swift
iOS iOS
Apple-ekosystemet Apple Ekosystem
Kotlin Kotlin
Modern Android Modern Android
Plattformoberoende Plattformoberoende
@ -123,34 +123,34 @@ mindmap
``` ```
| Språk | Bäst för | Varför det är populärt | | Språk | Bäst för | Varför det är populärt |
|----------|----------|------------------| |----------|----------|------------------|
| **JavaScript** | Webbprogrammering, användargränssnitt | Körs i webbläsare och driver interaktiva webbplatser | | **JavaScript** | Webb utveckling, användargränssnitt | Körs i webbläsare och driver interaktiva webbplatser |
| **Python** | Data science, automatisering, AI | Lätt att läsa och lära sig, kraftfulla bibliotek | | **Python** | Data science, automatisering, AI | Lätt att läsa och lära, kraftfulla bibliotek |
| **Java** | Företagsapplikationer, Androidappar | Plattformoberoende, robust för stora system | | **Java** | Företagsapplikationer, Android-appar | Plattformoberoende, robust för stora system |
| **C#** | Windowsapplikationer, spelutveckling | Stark Microsoft-ekosystemsupport | | **C#** | Windows-appar, spelutveckling | Stark Microsoft-ekosystemsupport |
| **Go** | Molntjänster, backend-system | Snabbt, enkelt, designat för modern datoranvändning | | **Go** | Molntjänster, backend-system | Snabbt, enkelt, designat för modern databehandling |
### Högnivå- vs. lågnivåspråk ### Högnivå- vs. lågnivåspråk
Okej, det här var ärligt talat konceptet som knäckte min hjärna när jag först började lära mig, så jag delar gärna analogin som äntligen gjorde att det föll på plats för mig och jag hoppas verkligen att den hjälper dig också! Okej, detta var ärligt talat konceptet som knäckte min hjärna när jag först började lära mig, så jag ska dela med mig av analogin som äntligen fick det att klicka för mig och jag hoppas verkligen att det hjälper dig också!
Föreställ dig att du besöker ett land där du inte talar språket och du desperat behöver hitta närmaste toalett (vi har alla varit där, eller hur? 😅): Föreställ dig att du besöker ett land där du inte talar språket, och du desperat behöver hitta närmaste toalett (vi har alla varit där, eller hur? 😅):
- **Lågnivåprogrammering** är som att lära sig den lokala dialekten så väl att du kan prata med farmodern som säljer frukt på hörnet med hjälp av kulturella referenser, lokal slang och interna skämt som bara någon som vuxit upp där skulle förstå. Otroligt imponerande och effektivt... om du råkar vara flytande! Men ganska överväldigande när du bara försöker hitta en toalett. - **Lågnivåprogrammering** är som att lära sig den lokala dialekten så väl att du kan prata med farmodern som säljer frukt på hörnet med hjälp av kulturella referenser, lokala slanguttryck och interna skämt som bara någon som växte upp där skulle förstå. Superimponerande och otroligt effektivt... om du råkar vara flytande! Men ganska överväldigande när du bara försöker hitta en toalett.
- **Högnivåprogrammering** är som att ha den fantastiska lokala vännen som bara förstår dig. Du kan säga "Jag behöver verkligen hitta en toalett" på enkel engelska, och de ta hand om all kulturell översättning och ger dig vägbeskrivningen på ett sätt som din icke-lokala hjärna fattar perfekt. - **Högnivåprogrammering** är som att ha den där fantastiska lokala vännen som bara förstår dig. Du kan säga "Jag behöver verkligen hitta en toalett" på enkel engelska, och de sköter all kulturell översättning och ger dig vägbeskrivningar på ett sätt som gör perfekt mening för din icke-lokala hjärna.
På programmeringsspråksspråk: I programmeringstermer:
- **Lågnivåspråk** (som Assembly eller C) låter dig ha otroligt detaljerade samtal med datorns faktiska hårdvara, men du behöver tänka som en maskin, vilket är... tja, låt oss säga att det är en ganska stor mental omställning! - **Lågnivåspråk** (som Assembly eller C) låter dig ha otroligt detaljerade samtal med datorns faktiska hårdvara, men du måste tänka som en maskin, vilket är... tja, låt oss säga att det är en stor mental omställning!
- **Högnivåspråk** (som JavaScript, Python eller C#) låter dig tänka som en människa medan de fixar allt maskinspråk bakom kulisserna. Plus att de har fantastiskt välkomnande gemenskaper fulla av människor som minns hur det var att vara ny och som verkligen vill hjälpa till! - **Högnivåspråk** (som JavaScript, Python eller C#) låter dig tänka som en människa medan de sköter all maskinspråk bakom kulisserna. Dessutom har de dessa otroligt välkomnande communityn fulla av människor som minns hur det var att vara ny och verkligen vill hjälpa!
Gissa vilka jag kommer att föreslå att du börjar med? 😉 Högnivåspråk är som att ha stödhjul som du faktiskt aldrig vill ta av eftersom de gör hela upplevelsen så mycket roligare! Gissa vilka jag kommer att föreslå att du börjar med? 😉 Högnivåspråk är som att ha stödhjul som du aldrig egentligen vill ta bort för de gör hela upplevelsen mycket roligare!
```mermaid ```mermaid
flowchart TB flowchart TB
A["👤 Mänskligt Tänkande:<br/>'Jag vill beräkna Fibonacci-tal'"] --> B{Välj Språknivå} A["👤 Mänskligt Tanke:<br/>'Jag vill beräkna Fibonacci-tal'"] --> B{Välj Språknivå}
B -->|Hög nivå| C["🌟 JavaScript/Python<br/>Enkelt att läsa och skriva"] B -->|Hög-Nivå| C["🌟 JavaScript/Python<br/>Lätt att läsa och skriva"]
B -->|Låg nivå| D["⚙️ Assembly/C<br/>Direkt hårdvarukontroll"] B -->|Låg-Nivå| D["⚙️ Assembly/C<br/>Direkt hårdvarukontroll"]
C --> E["📝 Skriv: fibonacci(10)"] C --> E["📝 Skriv: fibonacci(10)"]
D --> F["📝 Skriv: mov r0,#00<br/>sub r0,r0,#01"] D --> F["📝 Skriv: mov r0,#00<br/>sub r0,r0,#01"]
@ -158,7 +158,7 @@ flowchart TB
E --> G["🤖 Datorförståelse:<br/>Översättaren hanterar komplexiteten"] E --> G["🤖 Datorförståelse:<br/>Översättaren hanterar komplexiteten"]
F --> G F --> G
G --> H["💻 Samma resultat:<br/>0, 1, 1, 2, 3, 5, 8, 13..."] G --> H["💻 Samma Resultat:<br/>0, 1, 1, 2, 3, 5, 8, 13..."]
style C fill:#e1f5fe style C fill:#e1f5fe
style D fill:#fff3e0 style D fill:#fff3e0
@ -166,13 +166,13 @@ flowchart TB
``` ```
### Låt mig visa varför högnivåspråk är så mycket vänligare ### Låt mig visa varför högnivåspråk är så mycket vänligare
Okej, jag ska visa dig något som perfekt visar varför jag blev kär i högnivåspråk, men först jag behöver att du lovar mig en sak. När du ser det första kodexemplet, få inte panik! Det ska se skrämmande ut. Det är exakt vad jag menar! Okej, jag ska visa dig något som perfekt visar varför jag blev kär i högnivåspråk, men först jag behöver att du lovar mig en sak. När du ser det första kodexemplet, panika inte! Det är meningen att det ska se skrämmande ut. Det är precis poängen jag vill göra!
Vi ska titta på samma uppgift skriven i två helt olika stilar. Båda skapar den så kallade Fibonaccisekvensen det är ett vackert matematiskt mönster där varje tal är summan av de två föregående: 0, 1, 1, 2, 3, 5, 8, 13... (Rolig fakta: du hittar det här mönstret bokstavligen överallt i naturen solrosfröspiraler, mönster i kottar, till och med hur galaxer formas!) Vi ska titta på exakt samma uppgift skriven i två helt olika stilar. Båda skapar det som kallas Fibonacci-sekvensen det är ett vackert matematiskt mönster där varje nummer är summan av de två föregående: 0, 1, 1, 2, 3, 5, 8, 13... (Rolig fakta: du hittar detta mönster bokstavligen överallt i naturen solrosfröst spiraler, kottemönster, till och med hur galaxer bildas!)
Redo att se skillnaden? Kör vi! Redo att se skillnaden? Nu kör vi!
**Högnivåspråk (JavaScript) Mänskligt vänligt:** **Högnivåspråk (JavaScript) Människovänligt:**
```javascript ```javascript
// Steg 1: Grundläggande Fibonacci-inställning // Steg 1: Grundläggande Fibonacci-inställning
@ -184,28 +184,28 @@ console.log('Fibonacci sequence:');
``` ```
**Det här gör koden:** **Det här gör koden:**
- **Deklarerar** en konstant för hur många Fibonacci-tal vi vill generera - **Deklarera** en konstant för att ange hur många Fibonacci-tal vi vill generera
- **Initierar** två variabler för att hålla koll på det aktuella och nästa tal i sekvensen - **Initiera** två variabler för att hålla koll på det aktuella och nästa tal i sekvensen
- **Sätter upp** startvärdena (0 och 1) som definierar Fibonacci-mönstret - **Sätta upp** startvärdena (0 och 1) som definierar Fibonacci-mönstret
- **Visar** en rubriktext för att identifiera vår utskrift - **Visa** en rubrikmeddelande för att identifiera vår output
```javascript ```javascript
// Steg 2: Generera sekvensen med en loop // Steg 2: Generera sekvensen med en loop
for (let i = 0; i < fibonacciCount; i++) { for (let i = 0; i < fibonacciCount; i++) {
console.log(`Position ${i + 1}: ${current}`); console.log(`Position ${i + 1}: ${current}`);
// Beräkna nästa nummer i sekvensen // Beräkna nästa tal i sekvensen
const sum = current + next; const sum = current + next;
current = next; current = next;
next = sum; next = sum;
} }
``` ```
**Bryter ner vad som händer här:** **Bryt ner vad som händer här:**
- **Loopar** igenom varje position i sekvensen med en `for`-loop - **Loopar** igenom varje position i sekvensen med en `for`-loop
- **Visar** varje tal med dess position med hjälp av mallsträngar - **Visar** varje tal med dess position med hjälp av template literals
- **Beräknar** nästa Fibonacci-tal genom att addera aktuellt och nästa värde - **Beräkna** nästa Fibonacci-tal genom att lägga ihop nuvarande och nästa värde
- **Uppdaterar** våra spårningsvariabler för att gå vidare till nästa iteration - **Uppdatera** våra spårningsvariabler för att gå vidare till nästa iteration
```javascript ```javascript
// Steg 3: Modernt funktionellt tillvägagångssätt // Steg 3: Modernt funktionellt tillvägagångssätt
@ -219,16 +219,16 @@ const generateFibonacci = (count) => {
return sequence; return sequence;
}; };
// Exempel på användning // Användningsexempel
const fibSequence = generateFibonacci(10); const fibSequence = generateFibonacci(10);
console.log(fibSequence); console.log(fibSequence);
``` ```
**I exemplet ovan har vi:** **I koden ovan har vi:**
- **Skapat** en återanvändbar funktion med modern pil-funktionssyntax - **Skapat** en återanvändbar funktion med modern arrow function-syntax
- **Byggt** en array för att lagra hela sekvensen istället för att visa ett och ett tal - **Byggt** en array för att lagra hela sekvensen istället för att visa ett och ett tal
- **Använt** arrayindexering för att beräkna varje nytt tal från tidigare värden - **Använt** arrayindexering för att räkna ut varje nytt tal från tidigare värden
- **Returnerat** hela sekvensen för flexibel användning i andra delar av vårt program - **Returnerat** hela sekvensen för flexibel användning i andra delar av programmet
**Lågnivåspråk (ARM Assembly) Datorvänligt:** **Lågnivåspråk (ARM Assembly) Datorvänligt:**
@ -257,27 +257,28 @@ back add r0,r1
end end
``` ```
Notera hur JavaScript-versionen läses nästan som engelska instruktioner, medan Assembly-versionen använder kryptiska kommandon som direkt styr datorns processor. Båda uppnår exakt samma uppgift, men högnivåspråket är mycket lättare för människor att förstå, skriva och underhålla. Notera hur JavaScript-versionen läses nästan som engelska instruktioner, medan Assembly-versionen använder kryptiska kommandon som direkt styr datorns processor. Båda utför samma uppgift, men högnivåspråket är mycket lättare för människor att förstå, skriva och underhålla.
**Viktiga skillnader du kommer att märka:** **Viktiga skillnader du kommer märka:**
- **Läsbarhet**: JavaScript använder beskrivande namn som `fibonacciCount` medan Assembly använder kryptiska etiketter som `r0`, `r1` - **Läsbarhet**: JavaScript använder beskrivande namn som `fibonacciCount` medan Assembly använder kryptiska etiketter som `r0`, `r1`
- **Kommentarer**: Hög-nivå språk uppmuntrar förklarande kommentarer som gör koden självförklarande - **Kommentarer**: Hög nivå-språk uppmuntrar förklarande kommentarer som gör koden självdokumenterande
- **Struktur**: JavaScripts logiska flöde matchar hur människor tänker på problem steg för steg - **Struktur**: JavaScripts logiska flöde matchar hur människor tänker steg för steg kring problem
- **Underhåll**: Uppdatering av JavaScript-versionen för olika krav är enkelt och tydligt - **Underhåll**: Att uppdatera JavaScript-versionen för olika krav är enkelt och tydligt
**Om Fibonaccis talföljd**: Detta helt underbara talmönster (där varje nummer är summan av de två föregående: 0, 1, 1, 2, 3, 5, 8...) dyker bokstavligen upp *överallt* i naturen! Du hittar det i solrosspiraler, grankottars mönster, hur nautilusskal böjer sig och till och med i hur trädgrenar växer. Det är ganska häpnadsväckande hur matte och kod kan hjälpa oss förstå och återskapa de mönster som naturen använder för att skapa skönhet! **Om Fibonacci-sekvensen**: Detta helt makalöst vackra mönster av siffror (där varje tal är summan av de två föregående: 0, 1, 1, 2, 3, 5, 8...) dyker upp bokstavligen *överallt* i naturen! Du hittar det i solrosspiraler, kottmönster, hur nautilusskal kröker sig, och till och med i hur trädgrenar växer. Det är ganska häpnadsväckande hur matematik och kod kan hjälpa oss att förstå och återskapa de mönster som naturen använder för att skapa skönhet!
## Byggstenarna som får magin att hända
Okej, nu när du har sett hur programmeringsspråk ser ut i praktiken, låt oss bryta ner de grundläggande bitarna som bygger upp bokstavligen varje program som någonsin skrivits. Tänk på dessa som de viktiga ingredienserna i ditt favoritrecept när du förstår vad var och en gör, kommer du kunna läsa och skriva kod i nästan vilket språk som helst! ## Byggstenarna som gör magin möjlig
Det här är lite som att lära sig programmeringens grammatik. Kommer du ihåg när du i skolan lärde dig om substantiv, verb och hur man sätter ihop meningar? Programmering har sin egen version av grammatik, och ärligt talat är den mycket mer logisk och förlåtande än engelska grammatik någonsin var! 😄 Okej, nu när du har sett hur programmeringsspråk ser ut i praktiken, låt oss bryta ner de grundläggande delarna som utgör bokstavligen varje program som någonsin har skrivits. Tänk på dessa som de väsentliga ingredienserna i ditt favoritrecept när du förstår vad varje del gör, kommer du att kunna läsa och skriva kod i nästan vilket språk som helst!
### Satser: Steg-för-steg-instruktioner Det här är lite som att lära sig programmeringens grammatik. Kommer du ihåg när du i skolan lärde dig om substantiv, verb och hur man sätter ihop meningar? Programmering har sin egen version av grammatik, och ärligt talat är den mycket mer logisk och förlåtande än engelska grammatiken någonsin var! 😄
Låt oss börja med **satser** de är som enskilda meningar i en konversation med din dator. Varje sats berättar för datorn att göra en specifik sak, ungefär som att ge anvisningar: ”Sväng vänster här”, ”Stanna vid rött ljus”, ”Parkera på den där platsen”. ### Satser: steg-för-steg-instruktioner
Det jag älskar med satser är hur läsbara de brukar vara. Kolla här: Låt oss börja med **satser** dessa är som individuella meningar i en konversation med din dator. Varje sats säger till datorn att göra en specifik sak, lite som att ge vägbeskrivningar: "Sväng vänster här," "Stanna vid rödljuset," "Parka på den platsen."
Det jag älskar med satser är hur läsbara de oftast är. Kolla på detta:
```javascript ```javascript
// Grundläggande satser som utför enstaka åtgärder // Grundläggande satser som utför enstaka åtgärder
@ -288,28 +289,28 @@ const sum = 5 + 3;
**Här är vad den här koden gör:** **Här är vad den här koden gör:**
- **Deklarerar** en konstant variabel för att lagra en användares namn - **Deklarerar** en konstant variabel för att lagra en användares namn
- **Visar** ett hälsningsmeddelande i konsolens utmatning - **Visar** ett hälsningsmeddelande i konsolens utdata
- **Beräknar** och lagrar resultatet av en matematisk operation - **Beräknar** och lagrar resultatet av en matematisk operation
```javascript ```javascript
// Uttalanden som interagerar med webbsidor // Utsagor som interagerar med webbsidor
document.title = "My Awesome Website"; document.title = "My Awesome Website";
document.body.style.backgroundColor = "lightblue"; document.body.style.backgroundColor = "lightblue";
``` ```
**Steg för steg, så här händer det:** **Steg för steg, så här händer det:**
- **Modifierar** webbplatsens titel som visas i webbläsarfliken - **Modifierar** webbsidans titel som visas i webbläsarfliken
- **Byter** bakgrundsfärgen på hela sidans kropp - **Ändrar** bakgrundsfärgen för hela sidans kropp
### Variabler: Programmets minnessystem ### Variabler: ditt programs minnessystem
Okej, **variabler** är ärligt talat ett av mina absoluta favoritkoncept att lära ut eftersom de är så lika saker du redan använder varje dag! Okej, **variabler** är ärligt talat ett av mina absoluta favoritbegrepp att lära ut eftersom de är så likt sådant du redan använder varje dag!
Tänk på din telefons kontaktlista en sekund. Du memorerar inte allas telefonnummer istället sparar du ”Mamma”, ”Bästa vän” eller ”Pizzerian som levererar till kl 2 på natten” och låter telefonen minnas de faktiska numren. Variabler fungerar precis på samma sätt! De är som märkta behållare där ditt program kan lagra information och hämta den senare med ett namn som faktiskt är begripligt. Tänk på din telefons kontaktlista en sekund. Du kan inte memorera allas telefonnummer istället sparar du ”Mamma”, ”Bästis” eller ”Pizzastället som levererar till 2 på morgonen” och låter telefonen komma ihåg de faktiska numren. Variabler fungerar exakt på samma sätt! De är som märkta behållare där ditt program kan lagra information och hämta den senare med ett namn som faktiskt är begripligt.
Det riktigt coola är: variabler kan förändras medan programmet körs (därav namnet ”variabel” ser du vad de gjorde där?). Precis som du kan uppdatera kontaktinformationen till pizzerian när du hittar ett ännu bättre ställe, kan variabler uppdateras när ditt program lär sig ny information eller när situationer förändras! Det som verkligen är coolt: variabler kan ändras medan ditt program körs (därav namnet ”variabel” ser du vad de gjorde där?). Precis som du kanske uppdaterar pizzaställets kontakt när du hittar någon ännu bättre, kan variabler uppdateras när ditt program lär sig ny information eller när situationer ändras!
Låt mig visa hur otroligt enkelt detta kan vara: Låt mig visa hur vackert enkelt detta kan vara:
```javascript ```javascript
// Steg 1: Skapa grundläggande variabler // Steg 1: Skapa grundläggande variabler
@ -319,10 +320,10 @@ let temperature = 75;
let isRaining = false; let isRaining = false;
``` ```
**Att förstå dessa koncept:** **Förstå dessa koncept:**
- **Lagra** oföränderliga värden i `const`-variabler (som webbplatsens namn) - **Lagra** oföränderliga värden i `const`-variabler (som sajtens namn)
- **Använda** `let` för värden som kan ändras under programmets gång - **Använda** `let` för värden som kan ändras under programmets gång
- **Tilldela** olika datatyper: strängar (text), siffror och booleska värden (true/false) - **Tilldela** olika datatyper: strängar (text), nummer och booleaner (sant/falskt)
- **Välja** beskrivande namn som förklarar vad varje variabel innehåller - **Välja** beskrivande namn som förklarar vad varje variabel innehåller
```javascript ```javascript
@ -334,24 +335,24 @@ const weatherData = {
}; };
``` ```
**Ovanför har vi:** **I det ovanstående har vi:**
- **Skapat** ett objekt för att gruppera relaterad väderinformation - **Skapat** ett objekt för att gruppera relaterad väderinformation
- **Organiserat** flera datadelar under ett variabelnamn - **Organiserat** flera data under ett variabelnamn
- **Använt** nyckel-värde-par för att märka varje informationsdel tydligt - **Använt** nyckel-värdepar för att tydligt märka varje data
```javascript ```javascript
// Steg 3: Använda och uppdatera variabler // Steg 3: Använda och uppdatera variabler
console.log(`${siteName}: Today is ${currentWeather} and ${temperature}°F`); console.log(`${siteName}: Today is ${currentWeather} and ${temperature}°F`);
console.log(`Wind speed: ${weatherData.windSpeed} mph`); console.log(`Wind speed: ${weatherData.windSpeed} mph`);
// Uppdatera föränderliga variabler // Uppdatera variabla variabler
currentWeather = "cloudy"; currentWeather = "cloudy";
temperature = 68; temperature = 68;
``` ```
**Låt oss förstå varje del:** **Låt oss förstå varje del:**
- **Visa** information med template literals med `${}`-syntax - **Visa** information med mall-strängar med `${}` syntax
- **Hämta** objektets egenskaper med punktnotation (`weatherData.windSpeed`) - **Åtkomst** till objektets egenskaper via punktnotation (`weatherData.windSpeed`)
- **Uppdatera** variabler deklarerade med `let` för att spegla förändrade förhållanden - **Uppdatera** variabler deklarerade med `let` för att spegla förändrade förhållanden
- **Kombinera** flera variabler för att skapa meningsfulla meddelanden - **Kombinera** flera variabler för att skapa meningsfulla meddelanden
@ -362,17 +363,17 @@ console.log(`${location} humidity: ${humidity}%`);
``` ```
**Det du behöver veta:** **Det du behöver veta:**
- **Extrahera** specifika egenskaper från objekt med destructuring assignment - **Extrahera** specifika egenskaper från objekt med destrukturering
- **Skapa** nya variabler automatiskt med samma namn som objektets nycklar - **Skapa** nya variabler automatiskt med samma namn som objektets nycklar
- **Förenkla** koden genom att undvika upprepande punktnotation - **Förenkla** koden genom att undvika upprepning av punktnotation
### Kontrollflöde: Lära ditt program att tänka ### Kontrollflöde: lära ditt program att tänka
Okej, här blir programmering riktigt häpnadsväckande! **Kontrollflöde** handlar i princip om att lära ditt program att fatta smarta beslut, precis som du gör varje dag utan att ens tänka på det. Okej, här börjar programmering bli helt häpnadsväckande! **Kontrollflöde** är i princip att lära ditt program att fatta smarta beslut, precis som du gör varje dag utan att ens tänka på det.
Föreställ dig detta: i morse gick du säkert igenom något som ”Om det regnar, tar jag med ett paraply. Om det är kallt, tar jag på mig en jacka. Om jag är sen, hoppar jag över frukosten och tar kaffe på vägen.” Din hjärna följer naturligt detta if-then-logik dussintals gånger varje dag! Föreställ dig detta: i morse gick du säkert igenom något som ”Om det regnar, tar jag med mig ett paraply. Om det är kallt, tar jag på mig en jacka. Om jag är sen, skippar jag frukosten och tar kaffe på vägen.” Din hjärna följer naturligt den här typen av om-så-logik dussintals gånger varje dag!
Det här är vad som får program att kännas intelligenta och levande, istället för att bara följa något tråkigt, förutsägbart manus. De kan faktiskt titta på en situation, utvärdera vad som händer och svara på rätt sätt. Det är som att ge ditt program en hjärna som kan anpassa sig och fatta val! Det här är vad som får program att kännas intelligenta och levande istället för bara att följa ett tråkigt, förutsägbart manus. De kan faktiskt titta på en situation, utvärdera vad som händer och svara på rätt sätt. Det är som att ge ditt program en hjärna som kan anpassa sig och göra val!
Vill du se hur vackert detta fungerar? Låt mig visa dig: Vill du se hur vackert detta fungerar? Låt mig visa dig:
@ -388,10 +389,10 @@ if (userAge >= 18) {
} }
``` ```
**Det här gör den här koden:** **Det här gör koden:**
- **Kontrollerar** om användarens ålder uppfyller röstningskravet - **Kontrollerar** om användarens ålder uppfyller röstningskravet
- **Kör** olika kodblock baserat på villkorets resultat - **Utför** olika kodblock baserat på villkorets resultat
- **Beräknar** och visar hur länge det är kvar tills röstberättigande om under 18 - **Beräknar** och visar hur länge det är kvar till rösträtt om under 18
- **Ger** specifik, hjälpsam feedback för varje scenario - **Ger** specifik, hjälpsam feedback för varje scenario
```javascript ```javascript
@ -408,21 +409,21 @@ if (userAge >= 18 && hasPermission) {
} }
``` ```
**Nedbrytning av vad som händer här:** **Så här delas det upp:**
- **Kombinerar** flera villkor med `&&` (och) operatorn - **Kombinerar** flera villkor med `&&` (och) operatorn
- **Skapar** en hierarki av villkor med `else if` för flera scenarion - **Skapar** en hierarki av villkor med `else if` för flera scenarier
- **Hantera** alla möjliga fall med en slutgiltig `else`-sats - **Hanterar** alla möjliga fall med en slutlig `else` sats
- **Ger** tydlig, handlingsbar feedback för varje olika situation - **Ger** tydlig och användbar feedback för varje unik situation
```javascript ```javascript
// Steg 3: Koncis villkorssats med ternär operator // Steg 3: Kortfattad villkor med ternär operator
const votingStatus = userAge >= 18 ? "Can vote" : "Cannot vote yet"; const votingStatus = userAge >= 18 ? "Can vote" : "Cannot vote yet";
console.log(`Status: ${votingStatus}`); console.log(`Status: ${votingStatus}`);
``` ```
**Det här ska du komma ihåg:** **Det här bör du komma ihåg:**
- **Använd** ternära operatorn (`? :`) för enkla två-vals-villkor - **Använda** ternära operatorn (`? :`) för enkla två-alternativ villkor
- **Skriv** villkoret först, följt av `?`, sedan sant resultat, sedan `:`, sedan falskt resultat - **Skriv** villkoret först, följt av `?`, sedan sant resultat, `:`, och falskt resultat
- **Använd** detta mönster när du behöver tilldela värden baserat på villkor - **Använd** detta mönster när du behöver tilldela värden baserat på villkor
```javascript ```javascript
@ -448,53 +449,53 @@ switch (dayOfWeek) {
**Den här koden gör följande:** **Den här koden gör följande:**
- **Matchar** variabelvärdet mot flera specifika fall - **Matchar** variabelvärdet mot flera specifika fall
- **Grupperar** liknande fall tillsammans (veckodagar vs. helger) - **Grupperar** liknande fall (vardagar vs helger)
- **Kör** rätt kodblock när en matchning hittas - **Utför** rätt kodblock när en träff hittas
- **Inkluderar** ett `default`-fall för att hantera oväntade värden - **Inkluderar** ett `default` fall för oförväntade värden
- **Använder** `break`-satser för att hindra att koden fortsätter till nästa fall - **Använder** `break` satser för att förhindra att koden fortsätter till nästa fall
> 💡 **Verklighetsanalog**: Tänk på kontrollflöde som att ha världens mest tålmodiga GPS som ger dig vägbeskrivningar. Den kan säga ”Om det är trafik på Main Street, ta motorvägen istället. Om byggarbete blockerar motorvägen, försök den natursköna vägen.” Program använder exakt samma typ av villkorlig logik för att reagera smart på olika situationer och alltid ge användarna den bästa möjliga upplevelsen. > 💡 **Verklighetsanalogin**: Tänk på kontrollflöde som världens mest tålmodiga GPS som ger dig vägbeskrivningar. Den kan säga ”Om det är trafik på Main Street, ta istället motorvägen. Om vägarbete blockerar motorvägen, prova den natursköna vägen.” Program använder exakt samma typ av villkorslogik för att svara intelligent på olika situationer och alltid ge användarna bästa möjliga upplevelse.
### 🎯 **Begreppskoll: Behärska byggstenarna** ### 🎯 **Konceptkontroll: Mästare på byggstenarna**
**Låt oss se hur det går med grunderna:** **Låt oss se hur du ligger till med grunderna:**
- Kan du förklara skillnaden mellan en variabel och en sats med egna ord? - Kan du förklara skillnaden mellan en variabel och en sats med egna ord?
- Tänk på ett verkligt scenario där du använder ett if-then-beslut (som vårt röstningsexempel) - Tänk på ett verkligt scenario där du skulle använda en om-så-beslut (som vårt röstningsexempel)
- Vad är en sak med programmeringslogik som förvånade dig? - Vad är en sak med programmeringslogik som överraskade dig?
**Snabbt självförtroendeboost:** **Snabb självsäkerhetsboost:**
```mermaid ```mermaid
flowchart LR flowchart LR
A["📝 Satser<br/>(Instruktioner)"] --> B["📦 Variabler<br/>(Lagring)"] --> C["🔀 Kontrollflöde<br/>(Beslut)"] --> D["🎉 Fungerande Program!"] A["📝 Utsagor<br/>(Instruktioner)"] --> B["📦 Variabler<br/>(Lagring)"] --> C["🔀 Kontrollflöde<br/>(Beslut)"] --> D["🎉 Fungerande Program!"]
style A fill:#ffeb3b style A fill:#ffeb3b
style B fill:#4caf50 style B fill:#4caf50
style C fill:#2196f3 style C fill:#2196f3
style D fill:#ff4081 style D fill:#ff4081
``` ```
**Vad som kommer härnäst**: Vi kommer ha så roligt när vi dyker djupare in i dessa koncept under vår otroliga resa tillsammans! Just nu, fokusera bara på att känna den där spänningen för alla fantastiska möjligheter framför dig. De specifika färdigheterna och teknikerna kommer fastna naturligt när vi övar tillsammans jag lovar att det här kommer bli så mycket roligare än du kanske förväntar dig! **Vad som kommer härnäst**: Vi kommer ha en fantastisk tid när vi dyker djupare in i dessa koncept på vår otroliga resa tillsammans! Just nu, fokusera bara på att känna den spänning som finns inför alla otroliga möjligheter som väntar dig. De specifika färdigheterna och teknikerna kommer naturligt när vi övar tillsammans jag lovar att detta kommer bli mycket roligare än du kanske förväntar dig!
## Verktyg för jobbet ## Verktyg för arbetet
Okej, här får jag ärligt talat sådan pirr i magen att jag knappt kan hålla det inne! 🚀 Vi ska precis prata om de otroliga verktygen som kommer få dig att känna att du just fick nycklarna till ett digitalt rymdskepp. Okej, här blir jag ärligt talat så uppspelt att jag knappt kan hålla mig! 🚀 Vi ska prata om de otroliga verktyg som kommer få dig att känna att du precis fått nycklarna till ett digitalt rymdskepp.
Du vet hur en kock har de där perfekt balanserade knivarna som känns som en förlängning av deras händer? Eller hur en musiker har den där gitarren som tycks sjunga så fort de rör vid den? Ja, utvecklare har vår egen version av dessa magiska verktyg, och här är vad som kommer få dig att tappa hakan de flesta är helt gratis! Vet du hur en kock har de där perfekt balanserade knivarna som känns som en förlängning av deras händer? Eller hur en musiker har den där gitarren som låter sjunga det ögonblick hen rör vid den? Jo, utvecklare har sin egen version av dessa magiska verktyg, och här är något som kommer att blåsa dig av stolen de flesta av dem är helt gratis!
Jag studsar nästan i stolen när jag tänker på att dela detta med dig eftersom de helt har revolutionerat hur vi bygger mjukvara. Vi pratar om AI-drivna kodassistenter som kan hjälpa dig skriva kod (jag skojar inte!), molnmiljöer där du kan bygga hela applikationer bokstavligen var som helst med Wi-Fi, och felsökningsverktyg så sofistikerade att det är som att ha röntgensyn för dina program. Jag sitter nästan och hoppar i stolen av tanken på att få dela detta med dig för de har helt revolutionerat hur vi bygger mjukvara. Vi pratar om AI-drivna kodassistenter som kan hjälpa dig skriva din kod (jag skojar inte!), molnmiljöer där du kan bygga hela applikationer bokstavligen var som helst med Wi-Fi, och felsökningsverktyg som är så avancerade att det är som att ha röntgensyn för dina program.
Och här är delen som fortfarande ger mig rysningar: det här är inte ”nybörjarverktyg” som du kommer växa ur. Det är exakt samma professionella verktyg som utvecklare på Google, Netflix och det där indie app-studion du älskar använder just i detta ögonblick. Du kommer känna dig som ett proffs när du använder dem! Och här kommer delen som fortfarande ger mig rysningar: det här är inte ”nybörjarverktyg” som du växer ifrån. Det är exakt samma professionella verktyg som utvecklare på Google, Netflix och den där indieapp-studion du älskar använder just nu. Du kommer att känna dig som en riktig proffs när du använder dem!
```mermaid ```mermaid
graph TD graph TD
A["💡 Din Idé"] --> B["⌨️ Kodredigerare<br/>(VS Code)"] A["💡 Din idé"] --> B["⌨️ Kodredigerare<br/>(VS Code)"]
B --> C["🌐 Webbläsarutvecklarverktyg<br/>(Testning & Felsökning)"] B --> C["🌐 Webbläsarverktyg<br/>(Testning & Felsökning)"]
C --> D["⚡ Kommandorad<br/>(Automatisering & Verktyg)"] C --> D["⚡ Kommandorad<br/>(Automatisering & Verktyg)"]
D --> E["📚 Dokumentation<br/>(Inlärning & Referens)"] D --> E["📚 Dokumentation<br/>(Lärande & Referens)"]
E --> F["🚀 Fantastisk Webbapp!"] E --> F["🚀 Fantastisk Webbapp!"]
B -.-> G["🤖 AI-assistent<br/>(GitHub Copilot)"] B -.-> G["🤖 AI-assistent<br/>(GitHub Copilot)"]
C -.-> H["📱 Enhetstestning<br/>(Responsiv Design)"] C -.-> H["📱 Enhetstestning<br/>(Responsiv design)"]
D -.-> I["📦 Paketverktyg<br/>(npm, yarn)"] D -.-> I["📦 Paketchefer<br/>(npm, yarn)"]
E -.-> J["👥 Gemenskap<br/>(Stack Overflow)"] E -.-> J["👥 Gemenskap<br/>(Stack Overflow)"]
style A fill:#fff59d style A fill:#fff59d
@ -506,56 +507,57 @@ graph TD
``` ```
### Kodredigerare och IDE: Dina nya digitala bästa vänner ### Kodredigerare och IDE: Dina nya digitala bästa vänner
Låt oss prata om kodredigerare dessa är på riktigt på väg att bli dina nya favoritställen att hänga på! Tänk på dem som ditt personliga kodningssanktuarium där du kommer spendera mest tid med att skapa och förfina dina digitala alster. Låt oss prata om kodredigerare de kommer verkligen att bli dina nya favoritställen att hänga på! Tänk på dem som din personliga kodningsfristad där du kommer spendera mestadelen av tiden med att skulptera och förfina dina digitala skapelser.
Men här är vad som är helt magiskt med moderna redigerare: de är inte bara fina textredigerare. De är som att ha den smartaste, mest stödjande kodmentor som sitter bredvid dig dygnet runt. De fångar dina skrivfel innan du ens märker dem, föreslår förbättringar som får dig att se ut som ett geni, hjälper dig förstå vad varje kodbit gör, och några kan till och med förutsäga vad du är på väg att skriva och erbjuda sig att färdigställa dina tankar! Men det som är helt magiskt med moderna redigerare är att de inte bara är fancy textredigerare. De är som att ha den mest briljanta, stöttande kodningsmentorn sittande precis bredvid dig 24/7. De fångar dina felstavningar innan du ens märker dem, föreslår förbättringar som får dig att se ut som ett geni, hjälper dig att förstå vad varje kodbit gör, och vissa av dem kan till och med förutspå vad du är på väg att skriva och erbjuda sig att slutföra dina tankar!
Jag minns när jag först upptäckte automatisk komplettering jag kände nästan att jag levde i framtiden. Du börjar skriva något, och editorn säger: ”Hej, tänkte du på den här funktionen som gör exakt vad du behöver?” Det är som att ha en tankeläsare som kodkompis! Jag minns när jag först upptäckte autokomplettering det kändes som att jag levde i framtiden. Du börjar skriva något, och din redigerare säger, ”Hej, tänkte du på den här funktionen som gör precis det du behöver?” Det är som att ha en tankeläsare som din kodningskompis!
**Vad gör dessa redigerare så otroliga?** **Vad gör dessa redigerare så otroliga?**
Moderna kodredigerare erbjuder en imponerande uppsättning funktioner designade för att boosta din produktivitet: Moderna kodredigerare erbjuder en imponerande uppsättning funktioner som är utformade för att öka din produktivitet:
| Funktion | Vad den gör | Varför det hjälper | | Funktion | Vad den gör | Varför det hjälper |
|---------|--------------|--------------| |---------|--------------|--------------|
| **Syntaxmarkering** | Färglägger olika delar av din kod | Gör kod lättare att läsa och hitta fel | | **Syntaxmarkering** | Färglägger olika delar av din kod | Gör kod lättare att läsa och upptäcka fel |
| **Automatisk komplettering** | Föreslår kod medan du skriver | Snabbar upp kodandet och minskar skrivfel | | **Autokomplettering** | Föreslår kod medan du skriver | Snabbar upp kodning och minskar stavfel |
| **Felsökningsverktyg** | Hjälper dig hitta och fixa fel | Sparar timmar vid felsökning | | **Felsökningsverktyg** | Hjälper dig hitta och fixa fel | Sparar timmar av felsökningstid |
| **Tillägg** | Lägger till specialfunktioner | Anpassa din editor efter teknik | | **Tillägg** | Lägger till specialfunktioner | Anpassa din editor för vilken teknik som helst |
| **AI-assistenter** | Föreslår kod och förklaringar | Påskyndar lärande och produktivitet | | **AI-assistenter** | Föreslår kod och förklaringar | Påskyndar lärande och produktivitet |
> 🎥 **Videoresurs**: Vill du se dessa verktyg i aktion? Kolla in den här [Tools of the Trade videon](https://youtube.com/watch?v=69WJeXGBdxg) för en omfattande översikt. > 🎥 **Videoresurs**: Vill du se dessa verktyg i aktion? Kolla in den här [Tools of the Trade-videon](https://youtube.com/watch?v=69WJeXGBdxg) för en omfattande översikt.
#### Rekommenderade redigerare för webbutveckling #### Rekommenderade redigerare för webbutveckling
**[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)** (Gratis) **[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)** (Gratis)
- Mest populär bland webbutvecklare - Mest populär bland webbutvecklare
- Utmärkt tilläggsekosystem - Utmärkt ekosystem av tillägg
- Inbyggd terminal och Git-integration - Inbyggd terminal och Git-integration
- **Måste-ha-tillägg**: - **Måste-ha-tillägg**:
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) - AI-driven kodförslag - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) - AI-drivna kodförslag
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - Samarbete i realtid - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - Samarbete i realtid
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Automatisk kodformatering - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Automatisk kodformatering
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) - Fångar stavfel i din kod - [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) - Fångar stavfel i koden
**[JetBrains WebStorm](https://www.jetbrains.com/webstorm/)** (Betald, gratis för studenter) **[JetBrains WebStorm](https://www.jetbrains.com/webstorm/)** (Betald, gratis för studenter)
- Avancerade felsöknings- och testverktyg - Avancerade felsöknings- och testverktyg
- Intelligent kodkomplettering - Intelligent kodkomplettering
- Inbyggd versionskontroll - Inbyggd versionskontroll
**Molnbaserade IDEs** (Olika prissättning) **Molnbaserade IDEer** (Olika priser)
- [GitHub Codespaces](https://github.com/features/codespaces) - Full VS Code i din webbläsare - [GitHub Codespaces](https://github.com/features/codespaces) - Fullt VS Code i din webbläsare
- [Replit](https://replit.com/) - Perfekt för att lära sig och dela kod - [Replit](https://replit.com/) - Perfekt för att lära sig och dela kod
- [StackBlitz](https://stackblitz.com/) - Omedelbar full-stack webb-utveckling - [StackBlitz](https://stackblitz.com/) - Omedelbar fullstack webbutveckling
> 💡 **Tips för att komma igång**: Börja med Visual Studio Code det är gratis, mycket använt i branschen och har en enorm community som skapar hjälptutorials och tillägg.
> 💡 **Kom igång tips**: Börja med Visual Studio Code det är gratis, välanvänt i branschen och har en enorm community som skapar hjälpsamma tutorials och tillägg.
### Webbläsare: Ditt hemliga utvecklingslaboratorium ### Webbläsare: Ditt hemliga utvecklingslaboratorium
Okej, förbered dig på att bli helt uppslukad! Du vet hur du har använt webbläsare för att scrolla genom sociala medier och titta på videos? Tja, det visar sig att de har gömt det här otroliga hemliga utvecklingslaboratoriet hela tiden, bara väntande på att du ska upptäcka det! Okej, gör dig redo att få ditt sinne fullständigt blåst! Du vet hur du har använt webbläsare för att scrolla sociala medier och titta på videor? Ja, det visar sig att de har gömt det här otroliga hemliga utvecklingslaboratoriet hela tiden, bara väntande på att du ska upptäcka det!
Varje gång du högerklickar på en webbsida och väljer "Inspektera" öppnar du en dold värld av utvecklarverktyg som är ärligt talat kraftfullare än någon dyr programvara jag brukade betala hundratals kronor för. Det är som att upptäcka att ditt vanliga gamla kök har gömt ett professionellt kocklaboratorium bakom en hemlig panel! Varje gång du högerklickar på en webbsida och väljer "Inspektera element" öppnar du en dold värld av utvecklarverktyg som är ärligt talat mäktigare än några dyra program jag brukade betala hundratals dollar för. Det är som att upptäcka att ditt vanliga kök har dolt ett professionellt kocklaboratorium bakom en hemlig panel!
Första gången någon visade mig webbläsarens DevTools, spenderade jag typ tre timmar bara på att klicka runt och säga "VÄNTA, KAN DEN GÖRA DET HÄR OCKSÅ?!" Du kan bokstavligen redigera vilken webbplats som helst i realtid, se exakt hur snabbt allt laddas, testa hur din sajt ser ut på olika enheter, och till och med debugga JavaScript som ett proffs. Det är helt hisnande! Första gången någon visade mig webbläsarens DevTools, spenderade jag typ tre timmar bara på att klicka runt och tänka "VÄNTA, KAN DEN GÖRA DET DÄR OCKSÅ?!" Du kan bokstavligen redigera vilken webbplats som helst i realtid, se exakt hur snabbt allt laddas, testa hur din sida ser ut på olika enheter och till och med felsöka JavaScript som en riktig expert. Det är helt otroligt!
**Här är varför webbläsare är ditt hemliga vapen:** **Här är varför webbläsare är ditt hemliga vapen:**
@ -565,34 +567,34 @@ När du skapar en webbplats eller webbapplikation behöver du se hur den ser ut
Moderna webbläsare inkluderar omfattande utvecklingspaket: Moderna webbläsare inkluderar omfattande utvecklingspaket:
| Verktygskategori | Vad det gör | Exempel på användning | | Verktygskategori | Vad det gör | Exempel på användningsområde |
|------------------|-------------|-----------------------| |------------------|-------------|------------------------------|
| **Elementinspektör** | Visa och redigera HTML/CSS i realtid | Justera stil för att se omedelbara resultat | | **Elementinspektör** | Visa och redigera HTML/CSS i realtid | Justera stil för att se omedelbara resultat |
| **Konsol** | Visa felmeddelanden och testa JavaScript | Debugga problem och experimentera med kod | | **Konsol** | Visa felmeddelanden och testa JavaScript | Felsöka problem och experimentera med kod |
| **Nätverksmonitor** | Följa hur resurser laddas | Optimera prestanda och laddningstider | | **Nätverksövervakare** | Spåra hur resurser laddas | Optimera prestanda och laddningstider |
| **Tillgänglighetskontroll** | Testa inkluderande design | Säkerställ att din sajt fungerar för alla användare | | **Tillgänglighetskontroll** | Testa inkluderande design | Säkerställ att din sida fungerar för alla användare |
| **Enhetssimulator** | Förhandsgranska på olika skärmstorlekar | Testa responsiv design utan flera enheter | | **Enhetssimulator** | Förhandsgranska på olika skärmstorlekar | Testa responsiv design utan flera enheter |
#### Rekommenderade webbläsare för utveckling #### Rekommenderade webbläsare för utveckling
- **[Chrome](https://developers.google.com/web/tools/chrome-devtools/)** Industri-standard för DevTools med omfattande dokumentation - **[Chrome](https://developers.google.com/web/tools/chrome-devtools/)** - Industriell standard för DevTools med omfattande dokumentation
- **[Firefox](https://developer.mozilla.org/docs/Tools)** Utmärkta verktyg för CSS Grid och tillgänglighet - **[Firefox](https://developer.mozilla.org/docs/Tools)** - Utmärkta verktyg för CSS Grid och tillgänglighet
- **[Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)** Byggd på Chromium med Microsofts utvecklarresurser - **[Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)** - Byggd på Chromium med Microsofts utvecklarresurser
> ⚠️ **Viktig testtips**: Testa alltid dina webbplatser i flera webbläsare! Det som fungerar perfekt i Chrome kan se annorlunda ut i Safari eller Firefox. Professionella utvecklare testar i alla stora webbläsare för att säkerställa konsekventa användarupplevelser. > ⚠️ **Viktigt testtips**: Testa alltid dina webbplatser i flera webbläsare! Det som fungerar perfekt i Chrome kan se annorlunda ut i Safari eller Firefox. Professionella utvecklare testar i alla större webbläsare för att säkerställa en konsekvent användarupplevelse.
### Kommandoradsverktyg: Din port till utvecklarmagi ### Kommandoradsverktyg: Din väg till utvecklarmagi
Okej, låt oss vara helt ärliga om kommandoraden, för jag vill att du hör det från någon som verkligen förstår. När jag först såg den bara den här skrämmande svarta skärmen med blinkande text tänkte jag bokstavligen: "Nej, absolut inte! Det ser ut som något ur en hackarfilm från 80-talet, och jag är definitivt inte smart nog för det här!" 😅 Okej, låt oss ha ett helt ärligt ögonblick här om kommandoraden, för jag vill att du ska höra detta från någon som verkligen förstår. När jag såg den första gången bara den där läskiga svarta skärmen med blinkande text tänkte jag bokstavligen, "Nej, absolut inte! Det här ser ut som något från en hackarfilm på 1980-talet, och jag är definitivt inte tillräckligt smart för det här!" 😅
Men här är vad jag önskar att någon hade sagt till mig då, och vad jag säger till dig nu: kommandoraden är inte läskig det är faktiskt som att ha en direkt konversation med din dator. Tänk på det som skillnaden mellan att beställa mat via en fancy app med bilder och menyer (vilket är trevligt och enkelt) jämfört med att gå in på din favoritlokala restaurang där kocken vet precis vad du gillar och kan fixa något perfekt bara genom att du säger "överraska mig med något fantastiskt." Men här är vad jag önskar att någon hade sagt till mig då, och som jag säger till dig just nu: kommandoraden är inte läskig det är faktiskt som att ha en direkt konversation med din dator. Tänk på det som skillnaden mellan att beställa mat via en snygg app med bilder och menyer (vilket är trevligt och enkelt) jämfört med att gå in på din favoritlokala restaurang där kocken exakt vet vad du gillar och kan fixa något perfekt bara för att du säger "överraska mig med något fantastiskt."
Kommandoraden är där utvecklare känner sig som riktiga trollkarlar. Du skriver några till synes magiska ord (okej, det är bara kommandon, men de känns magiska!), trycker på enter, och BOOM du har skapat hela projektstrukturer, installerat kraftfulla verktyg från hela världen, eller distribuerat din app på internet för miljontals att se. När du väl får en första smak av den kraften är det ärligt talat ganska beroendeframkallande! Kommandoraden är platsen där utvecklare känner sig som riktiga trollkarlar. Du skriver några till synes magiska ord (okej, det är bara kommandon, men de känns magiska!), trycker på enter och BOOM du har skapat hela projektstrukturer, installerat kraftfulla verktyg från hela världen eller distribuerat din app på internet för miljoner att se. När du får din första smak av den makten är det ärligt talat ganska beroendeframkallande!
**Varför kommandoraden kommer bli ditt favoritverktyg:** **Varför kommandoraden kommer bli ditt favoritverktyg:**
Medan grafiska gränssnitt är utmärkta för många uppgifter, utmärker sig kommandoraden i automatisering, precision och hastighet. Många utvecklingsverktyg fungerar primärt via kommandoradsgränssnitt, och att lära sig använda dem effektivt kan dramatiskt öka din produktivitet. Medan grafiska gränssnitt är bra för många uppgifter, utmärker sig kommandoraden på automatisering, precision och hastighet. Många utvecklingsverktyg fungerar huvudsakligen via kommandoradsgränssnitt, och att lära sig använda dem effektivt kan dramatiskt förbättra din produktivitet.
```bash ```bash
# Steg 1: Skapa och navigera till projektmappen # Steg 1: Skapa och navigera till projektmappen
@ -601,11 +603,11 @@ cd my-awesome-website
``` ```
**Det här gör koden:** **Det här gör koden:**
- **Skapa** en ny katalog som heter "my-awesome-website" för ditt projekt - **Skapar** en ny mapp som heter "my-awesome-website" för ditt projekt
- **Navigera** in i den nyss skapade katalogen för att börja arbeta - **Navigerar** in i den nyss skapade mappen för att börja arbeta
```bash ```bash
# Steg 2: Initiera projektet med package.json # Steg 2: Initiera projekt med package.json
npm init -y npm init -y
# Installera moderna utvecklingsverktyg # Installera moderna utvecklingsverktyg
@ -613,11 +615,11 @@ npm install --save-dev vite prettier eslint
npm install --save-dev @eslint/js npm install --save-dev @eslint/js
``` ```
**Steg för steg händer följande:** **Steg för steg, så här går det till:**
- **Initiera** ett nytt Node.js-projekt med standardinställningar via `npm init -y` - **Initierar** ett nytt Node.js-projekt med standardinställningar med `npm init -y`
- **Installera** Vite som ett modernt byggverktyg för snabb utveckling och produktionsbyggen - **Installerar** Vite som ett modernt byggverktyg för snabb utveckling och produktion
- **Lägg till** Prettier för automatisk kodformatering och ESLint för kodkvalitetskontroller - **Lägger till** Prettier för automatisk kodformatering och ESLint för kvalitetskontroller
- **Använd** flaggan `--save-dev` för att markera dessa som endast utvecklingsberoenden - **Använder** flaggan `--save-dev` för att markera dessa som utvecklingsberoenden
```bash ```bash
# Steg 3: Skapa projektstruktur och filer # Steg 3: Skapa projektstruktur och filer
@ -630,95 +632,95 @@ npx vite
**I ovanstående har vi:** **I ovanstående har vi:**
- **Organiserat** vårt projekt genom att skapa separata mappar för källkod och resurser - **Organiserat** vårt projekt genom att skapa separata mappar för källkod och resurser
- **Genererat** en grundläggande HTML-fil med korrekt dokumentstruktur - **Skapat** en enkel HTML-fil med korrekt dokumentstruktur
- **Startat** Vites utvecklingsserver för live-uppdatering och hot module replacement - **Startat** Vite utvecklingsserver för live-uppdatering och varm modulbyte
#### Viktiga kommandoradsverktyg för webbutveckling #### Viktiga kommandoradsverktyg för webbutveckling
| Verktyg | Syfte | Varför du behöver det | | Verktyg | Syfte | Varför du behöver det |
|---------|-------|-----------------------| |---------|-------|----------------------|
| **[Git](https://git-scm.com/)** | Versionskontroll | Spåra ändringar, samarbeta och säkerhetskopiera ditt arbete | | **[Git](https://git-scm.com/)** | Versionshantering | Spåra förändringar, samarbeta med andra, säkerhetskopiera ditt arbete |
| **[Node.js & npm](https://nodejs.org/)** | JavaScript-runtime & pakethanterare | Köra JavaScript utanför webbläsare, installera moderna utvecklingsverktyg | | **[Node.js & npm](https://nodejs.org/)** | JavaScript-runtime & paket-hantering | Kör JavaScript utanför webbläsare, installera moderna utvecklingsverktyg |
| **[Vite](https://vitejs.dev/)** | Byggverktyg & utvecklingsserver | Super-snabb utveckling med hot module replacement | | **[Vite](https://vitejs.dev/)** | Byggverktyg & utvecklingsserver | Lynsnabb utveckling med varm modulbyte |
| **[ESLint](https://eslint.org/)** | Kodkvalitet | Hitta och åtgärda problem i JavaScript automatiskt | | **[ESLint](https://eslint.org/)** | Kodkvalitet | Hitta och fixa automatiskt problem i din JavaScript-kod |
| **[Prettier](https://prettier.io/)** | Kodformatering | Håll din kod konsekvent formaterad och lättläst | | **[Prettier](https://prettier.io/)** | Kodformatering | Håll din kod konsekvent formaterad och läsbar |
#### Plattformsspecifika alternativ #### Plattformsspecifika alternativ
**Windows:** **Windows:**
- **[Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)** Modern och funktionsrik terminal - **[Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)** - Modern och funktionsrik terminal
- **[PowerShell](https://docs.microsoft.com/powershell/?WT.mc_id=academic-77807-sagibbon)** 💻 Kraftfull skriptmiljö - **[PowerShell](https://docs.microsoft.com/powershell/?WT.mc_id=academic-77807-sagibbon)** 💻 - Kraftfull skriptmiljö
- **[Kommandotolken](https://docs.microsoft.com/windows-server/administration/windows-commands/?WT.mc_id=academic-77807-sagibbon)** 💻 Traditionell Windows-kommandorad - **[Command Prompt](https://docs.microsoft.com/windows-server/administration/windows-commands/?WT.mc_id=academic-77807-sagibbon)** 💻 - Traditionell Windows-kommandorad
**macOS:** **macOS:**
- **[Terminal](https://support.apple.com/guide/terminal/)** 💻 Inbyggd terminalapplikation - **[Terminal](https://support.apple.com/guide/terminal/)** 💻 - Inbyggd terminalapplikation
- **[iTerm2](https://iterm2.com/)** Förbättrad terminal med avancerade funktioner - **[iTerm2](https://iterm2.com/)** - Förbättrad terminal med avancerade funktioner
**Linux:** **Linux:**
- **[Bash](https://www.gnu.org/software/bash/)** 💻 Standard Linux-skal - **[Bash](https://www.gnu.org/software/bash/)** 💻 - Standard Linux-skal
- **[KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)** Avancerad terminalemulator - **[KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)** - Avancerad terminalemulator
> 💻 = Förinstallerad i operativsystemet > 💻 = Förinstallerad i operativsystemet
> 🎯 **Lärandeväg**: Börja med grundläggande kommandon som `cd` (byt katalog), `ls` eller `dir` (lista filer) och `mkdir` (skapa mapp). Öva med moderna arbetsflödeskommandon som `npm install`, `git status` och `code .` (öppnar aktuell katalog i VS Code). När du blir bekväm kommer du naturligt att lära dig mer avancerade kommandon och automatiseringstekniker. > 🎯 **Inlärningsväg:** Börja med grundläggande kommandon som `cd` (byt mapp), `ls` eller `dir` (lista filer) och `mkdir` (skapa mapp). Öva sedan på moderna arbetsflödeskommandon som `npm install`, `git status` och `code .` (öppnar aktuell mapp i VS Code). När du blir mer bekväm plockar du naturligt upp mer avancerade kommandon och automatiseringstekniker.
### Dokumentation: Din alltid tillgängliga lärarmästare ### Dokumentation: Din alltid tillgängliga lärarmästare
Okej, låt mig dela en liten hemlighet som kommer få dig att må mycket bättre över att vara nybörjare: även de mest erfarna utvecklarna spenderar en stor del av sin tid på att läsa dokumentation. Och det är inte för att de inte vet vad de gör det är faktiskt ett tecken på visdom! Okej, låt mig dela med mig av en liten hemlighet som kommer få dig att känna dig mycket bättre över att vara nybörjare: även de mest erfarna utvecklarna spenderar en stor del av sin tid på att läsa dokumentation. Och det är inte för att de inte vet vad de gör det är faktiskt ett tecken på visdom!
Tänk på dokumentation som tillgång till världens mest tålmodiga, kunniga lärare som är tillgängliga dygnet runt. Sitter du fast med ett problem klockan 2 på natten? Dokumentationen finns där med en varm virtuell kram och exakt det svar du behöver. Vill du lära dig om en cool ny funktion som alla pratar om? Dokumentationen har din rygg med steg-för-steg-exempel. Försöker du förstå varför något fungerar som det gör? Du gissade rätt dokumentationen är redo att förklara det på ett sätt som äntligen gör att det klickar! Tänk på dokumentation som att ha tillgång till världens mest tålmodiga och kunniga lärare som är tillgängliga dygnet runt. Fastnar du i ett problem klockan 2 på natten? Dokumentationen finns där med en varm virtuell kram och exakt det svar du behöver. Vill du lära dig om en cool ny funktion som alla pratar om? Dokumentationen hjälper dig med steg-för-steg-exempel. Försöker du förstå varför något fungerar som det gör? Du gissade rätt dokumentationen är redo att förklara så att det äntligen klickar!
Här är något som helt förändrade min syn: webbutvecklingsvärlden rör sig otroligt snabbt, och ingen (menar verkligen ingen!) kan allt utantill. Jag har sett seniora utvecklare med 15+ års erfarenhet slå upp grundläggande syntax, och vet du vad? Det är inte pinsamt det är smart! Det handlar inte om att ha perfekt minne, utan om att veta var man snabbt hittar pålitliga svar och förstå hur man använder dem. Här är något som helt förändrade mitt perspektiv: webbutvecklingsvärlden rör sig oerhört snabbt och ingen (jag menar verkligen ingen!) håller allt i huvudet. Jag har sett seniora utvecklare med 15+ års erfarenhet slå upp grundläggande syntax, och vet du vad? Det är inte pinsamt det är smart! Det handlar inte om att ha ett perfekt minne; det handlar om att veta var man snabbt hittar pålitliga svar och förstå hur man tillämpar dem.
**Här händer den verkliga magin:** **Här händer den verkliga magin:**
Professionella utvecklare tillbringar en stor del av sin tid med att läsa dokumentation inte för att de inte vet vad de gör, utan för att landskapet inom webbutveckling förändras så snabbt att det kräver kontinuerligt lärande. Bra dokumentation hjälper dig förstå inte bara *hur* något används, utan *varför* och *när* det ska användas. Professionella utvecklare spenderar en betydande del av sin tid på att läsa dokumentation inte för att de inte vet vad de gör, utan för att webbutvecklingslandskapet förändras så snabbt att det krävs ständig inlärning för att hålla sig uppdaterad. Bra dokumentation hjälper dig att förstå inte bara *hur* man använder något, utan även *varför* och *när* man ska använda det.
#### Viktiga dokumentationsresurser #### Viktiga dokumentationsresurser
**[Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web)** **[Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web)**
- Guldkällan för dokumentation om webteknik - Guldkällan för dokumentation om webteknologier
- Omfattande guider för HTML, CSS och JavaScript - Omfattande guider för HTML, CSS och JavaScript
- Innehåller information om webbläsarkompatibilitet - Inkluderar webbläsarkompatibilitetsinformation
- Har praktiska exempel och interaktiva demoer - Praktiska exempel och interaktiva demos
**[Web.dev](https://web.dev)** (av Google) **[Web.dev](https://web.dev)** (av Google)
- Moderna bästa praxis för webbutveckling - Moderna bästa metoder för webbutveckling
- Guider för prestandaoptimering - Guider för prestandaoptimering
- Tillgänglighet och inkluderande designprinciper - Tillgänglighet och inkluderande designprinciper
- Fallstudier från verkliga projekt - Fallstudier från verkliga projekt
**[Microsoft Developer Documentation](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers)** **[Microsoft Developer Documentation](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers)**
- Utvecklarresurser för Edge-webbläsaren - Utvecklarresurser för Edge-webbläsaren
- Guider för progressiva webbappar - Guider för Progressive Web Apps
- Insikter om plattformsoberoende utveckling - Insikter i plattformsoberoende utveckling
**[Frontend Masters Learning Paths](https://frontendmasters.com/learn/)** **[Frontend Masters Learning Paths](https://frontendmasters.com/learn/)**
- Strukturerade lärandekurser - Strukturerade inlärningsplaner
- Videokurser från branschexperter - Videokurser från branschexperter
- Praktiska kodningsövningar - Praktiska kodövningar
> 📚 **Studietips**: Försök inte memorera dokumentationen lär dig istället navigera effektivt. Bokmärk ofta använda referenser och öva på att använda sökfunktioner för att snabbt hitta specifik information. > 📚 **Studietips:** Försök inte att memorera dokumentation lär dig istället att navigera den effektivt. Bokmärk ofta använda referenser och öva på att använda sökfunktioner för att snabbt hitta specifik information.
### 🔧 **Verktygsmästerskap: Vad tilltalar dig mest?** ### 🔧 **Verktygsmästerskap: Vad tilltalar dig?**
**Ta en stund att fundera:** **Ta en stund och fundera:**
- Vilket verktyg ser du mest fram emot att testa först? (Det finns inget fel svar!) - Vilket verktyg är du mest sugen på att prova först? (Det finns inget fel svar!)
- Känns kommandoraden fortfarande skrämmande, eller är du nyfiken? - Känner du fortfarande att kommandoraden är skrämmande, eller är du nyfiken på den?
- Kan du tänka dig att använda webbläsarens DevTools för att kika bakom kulisserna på dina favoritwebbplatser? - Kan du föreställa dig att använda webbläsarens DevTools för att kika bakom kulisserna på dina favoritwebbplatser?
```mermaid ```mermaid
pie title "Utvecklartid som spenderas med verktyg" pie title "Utvecklartid som spenderas med verktyg"
"Kodredigerare" : 40 "Kodredigerare" : 40
"Webbläsartestning" : 25 "Webbläsartestning" : 25
"Kommandorad" : 15 "Kommandorad" : 15
"Läser dokumentation" : 15 "Läsa dokumentation" : 15
"Felsökning" : 5 "Felsökning" : 5
``` ```
> **Rolig insikt**: De flesta utvecklare tillbringar ungefär 40 % av sin tid i sin kodredigerare, men märker hur mycket tid som går åt till testning, lärande och problemlösning. Programmering handlar inte bara om att skriva kod det handlar om att skapa upplevelser! > **Rolig insikt**: De flesta utvecklare spenderar ungefär 40% av sin tid i sin kodredigerare, men lägg märke till hur mycket tid som går åt till testning, lärande och problemlösning. Programmering handlar inte bara om att skriva kod det handlar om att skapa upplevelser!
**Att fundera på**: Här är något intressant att tänka på hur tror du att verktygen för att bygga webbplatser (utveckling) skiljer sig från verktygen för att designa hur de ser ut (design)? Det är som skillnaden mellan att vara en arkitekt som designar ett vackert hus och en entreprenör som faktiskt bygger det. Båda är avgörande, men behöver olika verktygslådor! Den typen av tänkande hjälper dig verkligen att se helheten av hur webbplatser blir till. **Tankeväckande**: Här är något intressant att fundera på hur tror du verktygen för att bygga webbplatser (utveckling) skiljer sig från verktyg för att designa hur de ser ut (design)? Det är som skillnaden mellan en arkitekt som designar ett vackert hus och en entreprenör som faktiskt bygger det. Båda är avgörande, men behöver olika verktygslådor! Den typen av tänkande hjälper dig verkligen att se den större bilden av hur webbplatser blir till.
## GitHub Copilot Agent-utmaning 🚀 ## GitHub Copilot Agent-utmaning 🚀
@ -726,7 +728,7 @@ Använd Agent-läget för att slutföra följande utmaning:
**Beskrivning:** Utforska funktionerna i en modern kodredigerare eller IDE och visa hur den kan förbättra ditt arbetsflöde som webbutvecklare. **Beskrivning:** Utforska funktionerna i en modern kodredigerare eller IDE och visa hur den kan förbättra ditt arbetsflöde som webbutvecklare.
**Uppmaning:** Välj en kodredigerare eller IDE (som Visual Studio Code, WebStorm eller en molnbaserad IDE). Lista tre funktioner eller tillägg som hjälper dig att skriva, debugga eller underhålla kod mer effektivt. Ge för varje en kort förklaring av hur det gynnar ditt arbetsflöde. **Uppmaning:** Välj en kodredigerare eller IDE (som Visual Studio Code, WebStorm eller en molnbaserad IDE). Lista tre funktioner eller tillägg som hjälper dig att skriva, felsöka eller underhålla kod mer effektivt. Ge till varje en kort förklaring av hur det gynnar ditt arbetsflöde.
--- ---
@ -734,50 +736,50 @@ Använd Agent-läget för att slutföra följande utmaning:
**Okej, detektiv, redo för ditt första fall?** **Okej, detektiv, redo för ditt första fall?**
Nu när du har fått den här fantastiska grunden, har jag ett äventyr som kommer hjälpa dig se hur otroligt mångsidig och fascinerande programmeringsvärlden egentligen är. Och lyssna det handlar inte om att skriva kod än, så ingen press! Tänk dig att du är en detektiv inom programmeringsspråk på ditt allra första spännande fall! Nu när du har denna fantastiska grund, har jag ett äventyr som ska hjälpa dig att se hur otroligt mångsidig och fascinerande programmeringsvärlden verkligen är. Och lyssna det här handlar inte om att skriva kod än, så det är ingen press! Tänk på dig själv som en detektiv av programmeringsspråk på ditt allra första spännande fall!
**Din uppgift, om du väljer att acceptera den:** **Ditt uppdrag, om du väljer att acceptera det:**
1. **Bli en språkupptäckare**: Välj tre programmeringsspråk från helt olika världar kanske ett som bygger webbplatser, ett som skapar mobilappar, och ett som analyserar data för forskare. Hitta exempel på samma enkla uppgift skrivna i varje språk. Jag lovar att du kommer bli helt amazed över hur olika de kan se ut fast de gör exakt samma sak! 1. **Bli en språkupptäckare**: Välj tre programmeringsspråk från helt olika universum kanske ett som bygger webbplatser, ett som skapar mobilappar och ett som analyserar data för forskare. Hitta exempel på samma enkla uppgift skrivna i varje språk. Jag lovar, du kommer bli helt amazed över hur olika de kan se ut fast de gör exakt samma sak!
2. **Upptäck deras ursprung**: Vad gör varje språk speciellt? Här är en cool grej varje programmeringsspråk skapades för att någon tänkte, "Vet du vad? Det måste finnas ett bättre sätt att lösa just det här problemet." Kan du lista ut vilka problem det var? Några av de här historierna är verkligen fascinerande! 2. **Upptäck deras ursprungshistorier**: Vad gör varje språk speciellt? Här är en cool fakta varje programmeringsspråk skapades för att någon tänkte "Vet du vad? Det måste finnas ett bättre sätt att lösa just det här problemet." Kan du lista ut vilka problem det var? Vissa av historierna är verkligen fascinerande!
3. **Möt communityn**: Kolla hur välkomnande och passionerad varje språk community är. Vissa har miljontals utvecklare som delar kunskap och hjälper varandra, andra är mindre men otroligt sammansvetsade och stödjande. Du kommer älska att se de olika personligheterna i dessa communityn! 3. **Möt gemenskaperna**: Kolla hur välkomnande och passionerade varje språks community är. Vissa har miljontals utvecklare som delar kunskap och hjälper varandra, andra är mindre men otroligt sammansvetsade och stöttande. Du kommer älska att se de olika personligheterna i dessa gemenskaper!
4. **Lyssna på magkänslan**: Vilket språk känns mest tillgängligt för dig just nu? Stressa inte över att göra "det perfekta" valet lita bara på din magkänsla! Det finns ärligt talat inget fel svar och du kan alltid utforska andra senare. 4. **Följ magkänslan**: Vilket språk känns mest tillgängligt för dig just nu? Stressa inte över att göra det "perfekta" valet lita på din instinkt! Det finns ärligt talat inget fel svar här, och du kan alltid utforska andra senare.
**Bonusdetektivarbete**: Se om du kan ta reda på vilka stora webbplatser eller appar som är byggda med varje språk. Jag lovar att du kommer bli chockad över att få veta vad som driver Instagram, Netflix eller det där mobilsspelet du inte kan sluta spela! **Bonusdetektivarbete**: Försök ta reda på vilka stora webbplatser eller appar som är byggda med varje språk. Jag garanterar att du kommer bli förvånad över att lära dig vad som driver Instagram, Netflix eller det där mobil spelet du inte kan sluta spela!
> 💡 **Kom ihåg**: Du försöker inte bli expert i något av dessa språk idag. Du lär bara känna kvarteren innan du bestämmer dig för var du vill slå dig ner. Ta din tid, ha kul och låt nyfikenheten leda dig! > 💡 **Kom ihåg**: Du försöker inte bli expert på något av dessa språk idag. Du lär bara känna området innan du bestämmer var du vill slå dig ner. Ta din tid, ha kul och låt nyfikenheten leda dig!
## Låt oss fira det du upptäckt! ## Låt oss fira det du har upptäckt!
Holy moly, du har tagit till dig så mycket otrolig information idag! Jag är verkligen peppad på att se hur mycket av denna fantastiska resa som fastnat hos dig. Och kom ihåg det här är inget test där du måste göra allt perfekt. Det här är mer som en fest för allt häftigt du lärt dig om den fascinerande världen du är på väg att dyka in i! Herregud, du har fått in så mycket otrolig information idag! Jag är uppriktigt glad att se hur mycket av den här fantastiska resan som fastnat hos dig. Och kom ihåg det här är inget prov där du måste få allt perfekt. Det är snarare en fest för allt häftigt du har lärt dig om den här fascinerande världen du snart ska dyka ner i!
[Ta efter-lektionen-testet](https://ff-quizzes.netlify.app/web/) [Ta quizet efter lektionen](https://ff-quizzes.netlify.app/web/)
## Review & Självstudier
**Ta din tid att utforska och ha kul med det!** ## Repetition & Självstudier
Du har täckt mycket idag, och det är något att vara stolt över! Nu kommer den roliga delen att utforska de ämnen som väckte din nyfikenhet. Kom ihåg, det här är inget läxor det är ett äventyr! **Ta din tid att utforska och ha roligt med det!**
Du har täckt mycket idag, och det är något att vara stolt över! Nu kommer den roliga delen att utforska de ämnen som väckte din nyfikenhet. Kom ihåg, det här är inte läxor det är ett äventyr!
**Fördjupa dig i det som intresserar dig:** **Gå djupare in i det som fascinerar dig:**
**Prova på programmeringsspråk:** **Prova på programmeringsspråk:**
- Besök de officiella webbplatserna för 2-3 språk som fångade ditt intresse. Varje språk har sin egen personlighet och historia! - Besök de officiella webbplatserna för 2-3 språk som fångade din uppmärksamhet. Varje språk har sin egen personlighet och historia!
- Testa några online kodningsmiljöer som [CodePen](https://codepen.io/), [JSFiddle](https://jsfiddle.net/), eller [Replit](https://replit.com/). Var inte rädd för att experimentera du kan inte förstöra något! - Testa några online kod-lekplatser som [CodePen](https://codepen.io/), [JSFiddle](https://jsfiddle.net/), eller [Replit](https://replit.com/). Var inte rädd för att experimentera du kan inte förstöra något!
- Läs om hur ditt favoritprogrammeringsspråk kom till. Seriöst, några av dessa ursprungshistorier är fascinerande och hjälper dig att förstå varför språken fungerar som de gör. - Läs om hur ditt favoritspråk kom till. Allvarligt talat, vissa av de här ursprungshistorierna är fascinerande och hjälper dig att förstå varför språken fungerar som de gör.
**Bli bekväm med dina nya verktyg:** **Bli bekväm med dina nya verktyg:**
- Ladda ner Visual Studio Code om du inte redan gjort det det är gratis och du kommer att älska det! - Ladda ner Visual Studio Code om du inte redan gjort det det är gratis och du kommer att älska det!
- Spendera några minuter att bläddra i Extensions-marknaden. Det är som en app-butik för din kodredigerare! - Spendera några minuter med att bläddra i Extensions-marknaden. Det är som en appbutik för din kodredigerare!
- Öppna din webbläsares utvecklarverktyg och klicka runt. Oroa dig inte för att förstå allt lär dig bara var saker finns. - Öppna din webbläsares Developer Tools och klicka runt lite. Oroa dig inte för att förstå allt lär bara känna vad som finns där.
**Gå med i communityn:** **Gå med i gemenskapen:**
- Följ några utvecklarcommunities på [Dev.to](https://dev.to/), [Stack Overflow](https://stackoverflow.com/), eller [GitHub](https://github.com/). Programmeringscommunityn är otroligt välkomnande för nybörjare! - Följ några utvecklargemenskaper på [Dev.to](https://dev.to/), [Stack Overflow](https://stackoverflow.com/), eller [GitHub](https://github.com/). Programmeringsgemenskapen är otroligt mottaglig för nykomlingar!
- Titta på nybörjarvänliga kodningsvideor på YouTube. Det finns så många fantastiska skapare där ute som minns hur det var att börja. - Titta på några nybörjarvänliga kodningsvideor på YouTube. Det finns så många fantastiska skapare där ute som minns hur det var att börja.
- Överväg att gå med i lokala meetups eller online-communities. Tro mig, utvecklare älskar att hjälpa nybörjare! - Överväg att gå med i lokala meetups eller online-gemenskaper. Tro mig, utvecklare älskar att hjälpa nybörjare!
> 🎯 **Lyssna, det här vill jag att du ska minnas**: Du förväntas inte bli en kodningsmagiker över en natt! Just nu lär du bara känna denna fantastiska nya värld som du ska bli en del av. Ta din tid, njut av resan, och kom ihåg varje enda utvecklare du beundrar har en gång suttit precis där du är nu, känt sig exalterad och kanske lite överväldigad. Det är helt normalt, och det betyder att du gör rätt! > 🎯 **Lyssna, här är vad jag vill att du ska komma ihåg**: Du förväntas inte bli en kodningsmagiker över en natt! Just nu håller du bara på att lära känna den här fantastiska nya världen som du snart ska vara en del av. Ta din tid, njut av resan, och kom ihåg varje utvecklare du beundrar satt en gång precis där du är nu, kände sig exalterad och kanske lite överväldigad. Det är helt normalt, och det betyder att du gör rätt!
@ -785,48 +787,48 @@ Du har täckt mycket idag, och det är något att vara stolt över! Nu kommer de
[Reading the Docs](assignment.md) [Reading the Docs](assignment.md)
> 💡 **En liten puff för din uppgift**: Jag skulle verkligen vilja se dig utforska några verktyg som vi inte har täckt än! Hoppa över redigerare, webbläsare och kommandoradsverktyg som vi redan gått igenom det finns en hel fantastisk värld av utvecklingsverktyg där ute som bara väntar på att bli upptäckta. Leta efter de som är aktivt underhållna och har livliga, hjälpsamma communities (de brukar ha de bästa guiderna och de mest stödjande människorna när du ofrånkomligt fastnar och behöver en hjälpande hand). > 💡 **Lite push för din uppgift**: Jag skulle verkligen vilja se dig utforska verktyg vi ännu inte täckt! Hoppa över redigerare, webbläsare och kommandoradsverktyg som vi redan pratat om det finns en hel fantastisk värld av utvecklingsverktyg där ute som bara väntar på att bli upptäckta. Leta efter sådana som aktivt underhålls och har livliga, hjälpsamma gemenskaper (de brukar ha de bästa guiderna och de mest stöttande människorna när du oundvikligen fastnar och behöver en vänlig hand).
--- ---
## 🚀 Din programmeringsresa tidslinje ## 🚀 Din programmeringsresa tidslinje
### ⚡ **Vad du kan göra de kommande 5 minuterna** ### ⚡ **Vad du kan göra de närmaste 5 minuterna**
- [ ] Bokmärk 2-3 webbplatser för programmeringsspråk som fångade ditt intresse - [ ] Bokmärk 2-3 webbplatser för programmeringsspråk som fångade din uppmärksamhet
- [ ] Ladda ner Visual Studio Code om du inte redan gjort det - [ ] Ladda ner Visual Studio Code om du inte redan gjort det
- [ ] Öppna din webbläsares DevTools (F12) och klicka runt på någon webbplats - [ ] Öppna din webbläsares DevTools (F12) och klicka runt på en webbplats
- [ ] Gå med i en programmeringscommunity (Dev.to, Reddit r/webdev, eller Stack Overflow) - [ ] Gå med i en programmeringsgemenskap (Dev.to, Reddit r/webdev eller Stack Overflow)
### ⏰ **Vad du kan åstadkomma denna timme** ### ⏰ **Vad du kan åstadkomma den här timmen**
- [ ] Gör post-lektions quiz och reflektera över dina svar - [ ] Gör quizzen efter lektionen och reflektera över dina svar
- [ ] Installera GitHub Copilot-tillägget i VS Code - [ ] Ställ in VS Code med GitHub Copilot-tillägget
- [ ] Testa ett "Hello World"-exempel i 2 olika programmeringsspråk online - [ ] Prova ett "Hello World"-exempel i 2 olika programmeringsspråk online
- [ ] Titta på en "En dag i livet av en utvecklare"-video på YouTube - [ ] Titta på en "En dag i en utvecklares liv" video på YouTube
- [ ] Börja ditt detektivarbete om programmeringsspråk (från utmaningen) - [ ] Börja din programmeringsspråksdetektivarbete (från utmaningen)
### 📅 **Ditt veckolånga äventyr** ### 📅 **Ditt veckolånga äventyr**
- [ ] Slutför uppgiften och utforska 3 nya utvecklingsverktyg - [ ] Gör klart uppgiften och utforska 3 nya utvecklingsverktyg
- [ ] Följ 5 utvecklare eller programmeringskonton på sociala medier - [ ] Följ 5 utvecklare eller programmeringskonton på sociala medier
- [ ] Försök bygga något litet i CodePen eller Replit (till och med "Hello, [Ditt Namn]!") - [ ] Försök bygga något litet i CodePen eller Replit (även bara "Hello, [Ditt namn]!")
- [ ] Läs ett blogginlägg av en utvecklare om deras kodningsresa - [ ] Läs ett utvecklarblogginlägg om någons kodningsresa
- [ ] Gå med i ett virtuellt meetup eller titta på ett programmeringsföredrag - [ ] Gå med i ett virtuellt meetup eller titta på ett programmeringsföredrag
- [ ] Börja lära dig ditt valda språk med online-handledning - [ ] Börja lära dig ditt valda språk med online-tutorials
### 🗓️ **Din månadslånga förändring** ### 🗓️ **Din månadslånga förvandling**
- [ ] Bygg ditt första lilla projekt (ännu en enkel webbsida räknas!) - [ ] Bygg ditt första lilla projekt (ännu en enkel webbsida räknas!)
- [ ] Bidra till ett open source-projekt (börja med dokumentationsfixar) - [ ] Bidra till ett open-source-projekt (börja med dokumentationsfixar)
- [ ] Mentor någon som precis börjat sin programmeringsresa - [ ] Mentorskap någon som precis börjat sin programmeringsresa
- [ ] Skapa din utvecklarportfolio-webbplats - [ ] Skapa din utvecklarportfolio-webbplats
- [ ] Koppla ihop med lokala utvecklarcommunities eller studiegrupper - [ ] Koppla ihop med lokala utvecklargemenskaper eller studiegrupper
- [ ] Börja planera din nästa lärandemilstolpe - [ ] Börja planera din nästa lärandemilstolpe
### 🎯 **Slutlig reflektion** ### 🎯 **Slutlig reflektion**
**Innan du går vidare, ta en stund att fira:** **Innan du går vidare, ta en stund för att fira:**
- Vad är en sak med programmering som fick dig att känna dig exalterad idag? - Vad är en sak med programmering som gjorde dig exalterad idag?
- Vilket verktyg eller koncept vill du utforska först? - Vilket verktyg eller koncept vill du utforska först?
- Hur känner du om att börja denna programmeringsresa? - Hur känns det att starta denna programmeringsresa?
- Vad är en fråga du skulle vilja ställa en utvecklare just nu? - Vilken fråga skulle du vilja ställa en utvecklare just nu?
```mermaid ```mermaid
journey journey
@ -834,21 +836,21 @@ journey
section Idag section Idag
Nyfiken: 3: You Nyfiken: 3: You
Överväldigad: 4: You Överväldigad: 4: You
Exalterad: 5: You Uppspelt: 5: You
section Denna Vecka section Denna Vecka
Utforskar: 4: You Utforskar: 4: You
Lär Sig: 5: You Lär: 5: You
Kopplar Ihop: 4: You Kopplar ihop: 4: You
section Nästa Månad section Nästa Månad
Bygger: 5: You Bygger: 5: You
Självsäker: 5: You Självsäker: 5: You
Hjälper Andra: 5: You Hjälper Andra: 5: You
``` ```
> 🌟 **Kom ihåg**: Varje expert var en gång en nybörjare. Varje seniorutvecklare har känt precis som du gör just nu exalterad, kanske lite överväldigad, och definitivt nyfiken på vad som är möjligt. Du är i fantastisk sällskap, och denna resa kommer att bli otrolig. Välkommen till den underbara världen av programmering! 🎉 > 🌟 **Kom ihåg**: Varje expert var en gång en nybörjare. Varje senior utvecklare har känt precis som du gör nu exalterad, kanske lite överväldigad, och definitivt nyfiken på vad som är möjligt. Du är i fantastiskt sällskap, och den här resan kommer att bli otrolig. Välkommen till den underbara världen av programmering! 🎉
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfriskrivning**: **Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, var vänlig observera att automatiska översättningar kan innehålla fel eller brister. Originaldokumentet på dess ursprungliga språk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell humanöversättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning. Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, bör du vara medveten om att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess ursprungsspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller felaktiga tolkningar som uppstår från användningen av denna översättning.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -2,36 +2,36 @@
## Projektöversikt ## Projektöversikt
Detta är ett utbildningsbibliotek för att lära ut grunderna i webbapputveckling för nybörjare. Kursplanen är en omfattande 12-veckors kurs utvecklad av Microsoft Cloud Advocates, med 24 praktiska lektioner som täcker JavaScript, CSS och HTML. Detta är ett utbildningsprogramsförråd för att lära ut grunderna i webbdesign till nybörjare. Kursplanen är en omfattande 12-veckorskurs utvecklad av Microsoft Cloud Advocates, med 24 praktiska lektioner som täcker JavaScript, CSS och HTML.
### Viktiga komponenter ### Viktiga komponenter
- **Utbildningsinnehåll**: 24 strukturerade lektioner organiserade i projektbaserade moduler - **Utbildningsinnehåll**: 24 strukturerade lektioner organiserade i projektbaserade moduler
- **Praktiska projekt**: Terrarium, Typ-spel, Webbläsartillägg, Rymdspel, Bankapp, Kodredigerare och AI-chattassistent - **Praktiska projekt**: Terrarium, Typningsspel, Webbläsartillägg, Rymdspel, Bankapp, Kodredigerare och AI-chattassistent
- **Interaktiva quiz**: 48 quiz med 3 frågor vardera (före/efter lektion) - **Interaktiva quiz**: 48 quiz med 3 frågor vardera (för- och efter lektion)
- **Fler språkstöd**: Automatiska översättningar för 50+ språk via GitHub Actions - **Flerspråkigt stöd**: Automatiska översättningar för 50+ språk via GitHub Actions
- **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (för AI-projekt) - **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (för AI-projekt)
### Arkitektur ### Arkitektur
- Utbildningsbibliotek med lektionbaserad struktur - Utbildningsförråd med lektionbaserad struktur
- Varje lektionsmapp innehåller README, kodexempel och lösningar - Varje lektionsmapp innehåller README, kodexempel och lösningar
- Självständiga projekt i separata kataloger (quiz-app, olika lektionsprojekt) - Fristående projekt i separata kataloger (quiz-app, olika lektionsprojekt)
- Översättningssystem med GitHub Actions (co-op-translator) - Översättningssystem med GitHub Actions (co-op-translator)
- Dokumentation serveras via Docsify och finns som PDF - Dokumentation serveras via Docsify och finns tillgänglig som PDF
## Installationskommandon ## Installationskommandon
Detta bibliotek är främst för att konsumera utbildningsinnehåll. För att arbeta med specifika projekt: Detta förråd är främst för konsumtion av utbildningsinnehåll. För arbete med specifika projekt:
### Huvudbibliotekets installation ### Huvudförrådets installation
```bash ```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners cd Web-Dev-For-Beginners
``` ```
### Quiz App Setup (Vue 3 + Vite) ### Quiz App installation (Vue 3 + Vite)
```bash ```bash
cd quiz-app cd quiz-app
@ -59,7 +59,7 @@ npm install
# Följ webbläsarspecifika instruktioner för att ladda tillägg # Följ webbläsarspecifika instruktioner för att ladda tillägg
``` ```
### Rymdspelsprojekt ### Rymdspelprojekt
```bash ```bash
cd 6-space-game/solution cd 6-space-game/solution
@ -76,45 +76,45 @@ pip install openai
python api.py python api.py
``` ```
## Utvecklingsarbetsflöde ## Utvecklingsflöde
### För innehållsbidragare ### För innehållsbidragare
1. **Forka biblioteket** till ditt GitHub-konto 1. **Fork:a förrådet** till ditt GitHub-konto
2. **Klona din fork** lokalt 2. **Klona din fork** lokalt
3. **Skapa en ny branch** för dina ändringar 3. **Skapa en ny gren** för dina ändringar
4. Gör ändringar i lektionsinnehåll eller kodexempel 4. Gör ändringar i lektionsinnehåll eller kodexempel
5. Testa eventuella kodändringar i relevanta projektmappar 5. Testa eventuella kodändringar i relevanta projektkataloger
6. Skicka pull requests enligt bidragsriktlinjer 6. Skicka in pull requests enligt bidragsriktlinjerna
### För elever ### För elever
1. Forka eller klona biblioteket 1. Fork:a eller klona förrådet
2. Gå igenom lektionsmappar i ordning 2. Navigera till lektionskataloger i tur och ordning
3. Läs README-filer för varje lektion 3. Läs README-filer för varje lektion
4. Slutför för-lektionsquiz på https://ff-quizzes.netlify.app/web/ 4. Gör för-quiz på https://ff-quizzes.netlify.app/web/
5. Arbeta igenom kodexempel i lektionsmappar 5. Arbeta igenom kodexempel i lektionsmapparna
6. Slutför uppgifter och utmaningar 6. Genomför uppgifter och utmaningar
7. Gör efter-lektionsquiz 7. Avsluta med efter-quiz
### Live-utveckling ### Live-utveckling
- **Dokumentation**: Kör `docsify serve` i root (port 3000) - **Dokumentation**: Kör `docsify serve` i rotkatalogen (port 3000)
- **Quiz App**: Kör `npm run dev` i quiz-app-mappen - **Quiz App**: Kör `npm run dev` i quiz-app-katalogen
- **Projekt**: Använd VS Code Live Server-extension för HTML-projekt - **Projekt**: Använd VS Codes Live Server-förlängning för HTML-projekt
- **API-projekt**: Kör `npm start` i respektive API-katalog - **API-projekt**: Kör `npm start` i respektive API-katalog
## Testningsinstruktioner ## Testinstruktioner
### Quiz App testning ### Testning av Quiz App
```bash ```bash
cd quiz-app cd quiz-app
npm run lint # Kontrollera kodstilproblem npm run lint # Kontrollera kodstilproblem
npm run build # Verifiera att byggnationen lyckas npm run build # Verifiera att byggandet lyckas
``` ```
### Bank API testning ### Testning av Bank API
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
@ -124,12 +124,12 @@ node server.js # Verifiera att servern startar utan fel
### Allmän testmetod ### Allmän testmetod
- Detta är ett utbildningsbibliotek utan omfattande automatiserade tester - Detta är ett utbildningsförråd utan omfattande automatiska tester
- Manuell testning fokuserar på: - Manuella tester fokuserar på:
- Kodexempel körs utan fel - Kodexempel som körs utan fel
- Länkar i dokumentationen fungerar korrekt - Länkar i dokumentationen fungerar korrekt
- Projekt byggs utan problem - Projekten byggs färdigt utan fel
- Exempel följer bästa praxis - Exemplen följer bästa praxis
### Kontroll före inskickning ### Kontroll före inskickning
@ -144,7 +144,7 @@ node server.js # Verifiera att servern startar utan fel
- Använd modern ES6+ syntax - Använd modern ES6+ syntax
- Följ standard ESLint-konfigurationer i projekten - Följ standard ESLint-konfigurationer i projekten
- Använd meningsfulla variabel- och funktionsnamn för utbildningsklarhet - Använd meningsfulla variabel- och funktionsnamn för pedagogisk tydlighet
- Lägg till kommentarer som förklarar koncept för elever - Lägg till kommentarer som förklarar koncept för elever
- Formatera med Prettier där det är konfigurerat - Formatera med Prettier där det är konfigurerat
@ -158,42 +158,42 @@ node server.js # Verifiera att servern startar utan fel
### Python ### Python
- PEP 8 stilriktlinjer - PEP 8 stilriktlinjer
- Klara, utbildningsanpassade kodexempel - Klara, pedagogiska kodexempel
- Typangivelser där det är hjälpsamt för lärande - Typangivelser där det är hjälpsamt för inlärning
### Markdown-dokumentation ### Markdown-dokumentation
- Tydlig rubrikstruktur - Klar rubrikhierarki
- Kodblock med språkspecifikation - Kodblock med språkangivelse
- Länkar till ytterligare resurser - Länkar till ytterligare resurser
- Skärmdumpar och bilder i `images/`-mappar - Skärmdumpar och bilder i `images/`-kataloger
- Alt-text för bilder för tillgänglighet - Alternativtext för bilder för tillgänglighet
### Filorganisation ### Filorganisation
- Lektioner numrerade i ordning (1-getting-started-lessons, 2-js-basics, etc.) - Lektioner numrerade sekventiellt (1-getting-started-lessons, 2-js-basics, osv)
- Varje projekt har `solution/` och ofta `start/` eller `your-work/` kataloger - Varje projekt har `solution/` och ofta `start/` eller `your-work/` kataloger
- Bilder lagras i lektons-specifika `images/`-mappar - Bilder lagras i lektionsspecifika `images/` mappar
- Översättningar i `translations/{language-code}/` struktur - Översättningar i `translations/{language-code}/` struktur
## Bygg och distribution ## Build och Utplacering
### Quiz App distribution (Azure Static Web Apps) ### Quiz App-utplacering (Azure Static Web Apps)
quiz-app är konfigurerad för distribution till Azure Static Web Apps: Quiz-appen är konfigurerad för utplacering på Azure Static Web Apps:
```bash ```bash
cd quiz-app cd quiz-app
npm run build # Skapar dist/ mapp npm run build # Skapar dist/ mappen
# Distribuerar via GitHub Actions-arbetsflöde vid push till main # Distribuerar via GitHub Actions arbetsflöde vid push till main
``` ```
Azure Static Web Apps-konfiguration: Azure Static Web Apps-konfiguration:
- **App-plats**: `/quiz-app` - **Appplats**: `/quiz-app`
- **Utdata-plats**: `dist` - **Utmatningsplats**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml` - **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Generering av PDF-dokumentation ### Generering av dokumentations-PDF
```bash ```bash
npm install # Installera docsify-to-pdf npm install # Installera docsify-to-pdf
@ -211,52 +211,52 @@ docsify serve # Servera på localhost:3000
Varje projektkatalog kan ha egen byggprocess: Varje projektkatalog kan ha egen byggprocess:
- Vue-projekt: `npm run build` skapar produktionspaket - Vue-projekt: `npm run build` skapar produktionspaket
- Statisk projekt: Inget byggsteg, servera filer direkt - Statiska projekt: Inget byggsteg, servera filer direkt
## Pull Request-riktlinjer ## Riktlinjer för Pull Requests
### Titelformat ### Titelformat
Använd tydliga, beskrivande titlar som anger ändringsområde: Använd klara, beskrivande titlar som anger ändringsområde:
- `[Quiz-app] Lägg till nytt quiz för lektion X` - `[Quiz-app] Lägg till nytt quiz för lektion X`
- `[Lesson-3] Fixar stavfel i terrarium-projekt` - `[Lesson-3] Rätta stavfel i terrarium-projekt`
- `[Translation] Lägg till spansk översättning för lektion 5` - `[Translation] Lägg till spansk översättning för lektion 5`
- `[Docs] Uppdatera installationsinstruktioner` - `[Docs] Uppdatera installationsinstruktioner`
### Obligatoriska kontroller ### Obligatoriska kontroller
Innan PR skickas in: Innan PR skickas:
1. **Kodkvalitet**: 1. **Kodkvalitet**:
- Kör `npm run lint` i berörda projektmappar - Kör `npm run lint` i berörda projektkataloger
- Åtgärda alla lint-varningar och fel - Åtgärda alla lint-varningar och fel
2. **Byggverifiering**: 2. **Byggverifiering**:
- Kör `npm run build` om tillämpligt - Kör `npm run build` där applicerbart
- Säkerställ att inga byggfel uppstår - Säkerställ inga byggfel
3. **Länkkontroll**: 3. **Länkverifiering**:
- Testa alla markdown-länkar - Testa alla markdown-länkar
- Verifiera att bildreferenser fungerar - Verifiera att bildreferenser fungerar
4. **Innehållsgranskning**: 4. **Innehållsgranskning**:
- Korrekturläs stavning och grammatik - Korrekturläs stavning och grammatik
- Säkerställ att kodexempel är korrekta och pedagogiska - Säkerställ att kodexempel är korrekta och pedagogiska
- Kontrollera att översättningar behåller ursprungligt budskap - Verifiera att översättningar bevarar ursprunglig betydelse
### Bidragskrav ### Bidragskrav
- Acceptera Microsoft CLA (automatisk kontroll vid första PR) - Godkänn Microsoft CLA (automatisk kontroll vid första PR)
- Följ [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) - Följ [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Se [CONTRIBUTING.md](./CONTRIBUTING.md) för detaljerade riktlinjer - Se [CONTRIBUTING.md](./CONTRIBUTING.md) för detaljerade riktlinjer
- Referera ärendenummer i PR-beskrivning vid behov - Referera ärendenummer i PR-beskrivning vid tillämplighet
### Granskningsprocess ### Granskningsprocess
- PR granskas av underhållare och community - PR granskas av underhållare och community
- Utbildningsklarhet prioriteras - Pedagogisk tydlighet prioriteras
- Kodexempel ska följa aktuella bästa praxis - Kodexempel ska följa aktuella bästa praxis
- Översättningar granskas för korrekthet och kulturell lämplighet - Översättningar granskas för noggrannhet och kulturrelevans
## Översättningssystem ## Översättningssystem
@ -265,13 +265,13 @@ Innan PR skickas in:
- Använder GitHub Actions med co-op-translator workflow - Använder GitHub Actions med co-op-translator workflow
- Översätter automatiskt till 50+ språk - Översätter automatiskt till 50+ språk
- Källfiler i huvudkataloger - Källfiler i huvudkataloger
- Översatta filer i `translations/{language-code}/`-mappar - Översatta filer i `translations/{language-code}/` kataloger
### Manuella förbättringar av översättning ### Lägga till manuell översättningsförbättring
1. Hitta filen i `translations/{language-code}/` 1. Hitta fil i `translations/{language-code}/`
2. Gör förbättringar samtidigt som struktur bevaras 2. Gör förbättringar utan att ändra struktur
3. Säkerställ att kodexempel förblir funktionella 3. Säkerställ att kodexempel förblir fungerande
4. Testa eventuellt lokaliserat quizinnehåll 4. Testa eventuellt lokaliserat quizinnehåll
### Översättningsmetadata ### Översättningsmetadata
@ -289,87 +289,87 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
``` ```
## Felsökning och problemlösning ## Felsökning och Problemlösning
### Vanliga problem ### Vanliga problem
**Quiz-appen startar inte**: **Quiz-appen startar inte**:
- Kontrollera Node.js-version (v14+ rekommenderas) - Kontrollera Node.js version (v14+ rekommenderas)
- Ta bort `node_modules` och `package-lock.json`, kör `npm install` igen - Radera `node_modules` och `package-lock.json`, kör `npm install` igen
- Kontrollera om porten är upptagen (standard: Vite använder port 5173) - Kontrollera portkonflikter (standard: Vite använder port 5173)
**API-server startar inte**: **API-servern startar inte**:
- Verifiera att Node.js-version är minst (node >=10) - Kontrollera att Node.js version är tillräcklig (node >=10)
- Kontrollera om port är redan i bruk - Kontrollera att porten inte redan används
- Säkerställ att alla beroenden är installerade med `npm install` - Säkerställ alla beroenden installerade med `npm install`
**Webbläsartillägg laddas inte**: **Webbläsartillägg laddas inte**:
- Kontrollera att manifest.json är korrekt formaterad - Kontrollera att manifest.json är korrekt formaterad
- Kontrollera webbläsarkonsolen för fel - Granska webbläsarkonsol för fel
- Följ webbläsarspecifika installationsinstruktioner för tillägg - Följ webbläsarspecifika installationsanvisningar
**Problem med Python-chattprojektet**: **Problem med Python-chattprojekt**:
- Kontrollera att OpenAI-paketet är installerat: `pip install openai` - Säkerställ att OpenAI-paket är installerat: `pip install openai`
- Verifiera att GITHUB_TOKEN miljövariabel är satt - Kontrollera att GITHUB_TOKEN miljövariabel är satt
- Kontrollera GitHub Models åtkomsträttigheter - Granska GitHub Models åtkomstbehörigheter
**Docsify serverar inte dokumentation**: **Docsify serverar inte dokumentation**:
- Installera docsify-cli globalt: `npm install -g docsify-cli` - Installera docsify-cli globalt: `npm install -g docsify-cli`
- Kör från repository root-katalog - Kör från förrådets rotkatalog
- Kontrollera att `docs/_sidebar.md` finns - Kontrollera att `docs/_sidebar.md` finns
### Tips för utvecklingsmiljö ### Tips för utvecklingsmiljö
- Använd VS Code med Live Server-extension för HTML-projekt - Använd VS Code med Live Server-förlängning för HTML-projekt
- Installera ESLint och Prettier extensions för konsekvent formatering - Installera ESLint och Prettier-förlängningar för konsekvent formatering
- Använd webbläsarens DevTools för att debugga JavaScript - Använd webbläsarens DevTools för JavaScript-felsökning
- För Vue-projekt, installera Vue DevTools webbläsartillägg - För Vue-projekt, installera Vue DevTools webbläsartillägg
### Prestandaöverväganden ### Prestandahänsyn
- Stort antal översatta filer (50+ språk) gör att fulla kloner blir stora - Stort antal översatta filer (50+ språk) gör fulla kloner stora
- Använd shallow clone om du bara arbetar med innehåll: `git clone --depth 1` - Använd grundklon om du bara arbetar med innehåll: `git clone --depth 1`
- Exkludera översättningar från sökningar när du arbetar med engelskt innehåll - Exkludera översättningar från sökningar när du jobbar på engelskt innehåll
- Byggprocesser kan vara långsamma vid första körning (npm install, Vite build) - Byggprocesser kan vara långsamma vid första körning (npm install, Vite build)
## Säkerhetsöverväganden ## Säkerhetshänsyn
### Miljövariabler ### Miljövariabler
- API-nycklar bör aldrig committas till repository - API-nycklar ska aldrig checkas in i förrådet
- Använd `.env`-filer (redan i `.gitignore`) - Använd `.env`-filer (redan i `.gitignore`)
- Dokumentera erforderliga miljövariabler i projekt-README - Dokumentera nödvändiga miljövariabler i projektens README-filer
### Python-projekt ### Python-projekt
- Använd virtuella miljöer: `python -m venv venv` - Använd virtuella miljöer: `python -m venv venv`
- Håll beroenden uppdaterade - Håll beroenden uppdaterade
- GitHub-tokens bör ha minimala nödvändiga rättigheter - GitHub-tokens bör ha minimala nödvändiga behörigheter
### GitHub Models-åtkomst ### GitHub Models åtkomst
- Personliga åtkomsttokens (PAT) krävs för GitHub Models - Personliga åtkomsttokens (PAT) krävs för GitHub Models
- Tokens bör sparas som miljövariabler - Tokens ska sparas som miljövariabler
- Commita aldrig tokens eller inloggningsuppgifter - Aldrig checka in tokens eller inloggningsuppgifter
## Ytterligare anteckningar ## Ytterligare anteckningar
### Målgrupp ### Målgrupp
- Helt nybörjare inom webbappar - Kompletta nybörjare inom webbdesign
- Studenter och självlärande - Studenter och självstudier
- Lärare som använder kursplanen i klassrum - Lärare som använder kursplanen i klassrum
- Innehållet är utformat för tillgänglighet och stegvis kompetensuppbyggnad - Innehållet är utformat för tillgänglighet och gradvis färdighetsutveckling
### Pedagogisk filosofi ### Pedagogisk filosofi
- Projektbaserat lärande - Projektbaserat lärande
- Frekventa kunskapskontroller (quiz) - Frekventa kunskapskontroller (quiz)
- Praktiska kodövningar - Praktiska kodningsövningar
- Exempel från verkliga tillämpningar - Exempel verkliga tillämpningar
- Fokus på grunder innan ramverk - Fokus på grunder innan ramverk
### Underhåll av repository ### Förrådets underhåll
- Aktiv community av elever och bidragsgivare - Aktiv community av elever och bidragsgivare
- Regelbundna uppdateringar av beroenden och innehåll - Regelbundna uppdateringar av beroenden och innehåll
@ -378,31 +378,31 @@ CO_OP_TRANSLATOR_METADATA:
### Relaterade resurser ### Relaterade resurser
- [Microsoft Learn moduler](https://docs.microsoft.com/learn/) - [Microsoft Learn-moduler](https://docs.microsoft.com/learn/)
- [Student Hub resurser](https://docs.microsoft.com/learn/student-hub/) - [Student Hub-resurser](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) rekommenderas för elever - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) rekommenderas för elever
- Ytterligare kurser: Generativ AI, Data Science, ML, IoT kursplaner finns - Ytterligare kurser: Generativ AI, Data Science, ML, IoT kursplaner tillgängliga
### Arbeta med specifika projekt ### Arbeta med specifika projekt
För detaljerade instruktioner om individuell projekt, se README-filer i: För detaljerade instruktioner om enskilda projekt, se README-filer i:
- `quiz-app/README.md` - Vue 3 quiz-app - `quiz-app/README.md` - Vue 3 quiz-applikation
- `7-bank-project/README.md` - Bankapplikation med autentisering - `7-bank-project/README.md` - Bankapplikation med autentisering
- `5-browser-extension/README.md` - Webbläsartilläggsutveckling - `5-browser-extension/README.md` - Webbläsartilläggsutveckling
- `6-space-game/README.md` - Canvas-baserat spel - `6-space-game/README.md` - Canvas-baserat spelutveckling
- `9-chat-project/README.md` - AI-chattassistentprojekt - `9-chat-project/README.md` - AI chattassistentprojekt
### Monorepo-struktur ### Monorepo-struktur
Även om detta inte är ett traditionellt monorepo, innehåller detta bibliotek flera oberoende projekt: Även om det inte är ett traditionellt monorepo innehåller detta förråd flera oberoende projekt:
- Varje lektion är självständig - Varje lektion är självständig
- Projekt delar inga beroenden - Projekten delar inte beroenden
- Arbeta med enskilda projekt utan att påverka andra - Arbeta på individuella projekt utan att påverka andra
- Klona hela repot för full utbildningsupplevelse - Klona hela förrådet för hela kursplanens upplevelse
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfriskrivning**: **Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet bör du vara medveten om att automatiska översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på dess ursprungsspråk ska betraktas som den auktoritativa källan. För viktig information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning. Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, var vänlig observera att automatiska översättningar kan innehålla fel eller brister. Originaldokumentet på dess ursprungliga språk ska betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,67 +12,78 @@
# Webb utveckling för nybörjare - En läroplan # Webb utveckling för nybörjare - En läroplan
Lär dig grunderna i webbutveckling med vår 12-veckors omfattande kurs av Microsoft Cloud Advocates. Varje av de 24 lektionerna fördjupar sig i JavaScript, CSS och HTML genom praktiska projekt som terrarier, webbläsartillägg och rymdspel. Delta i frågesporter, diskussioner och praktiska uppgifter. Förbättra dina färdigheter och optimera din kunskapsbevarande med vår effektiva projektbaserade pedagogik. Börja din kodningsresa idag! Lär dig grunderna i webb utveckling med vår 12-veckors omfattande kurs av Microsoft Cloud Advocates. Var och en av de 24 lektionerna dyker ner i JavaScript, CSS och HTML genom praktiska projekt som terrarier, webbläsartillägg och rymdspel. Delta i quiz, diskussioner och praktiska uppgifter. Förbättra dina färdigheter och optimera din kunskapsbevarande med vår effektiva projektbaserade pedagogik. Börja din kodningsresa idag!
Gå med i Azure AI Foundry Discord Community Gå med i Azure AI Foundry Discord Community
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Följ dessa steg för att komma igång med dessa resurser: Följ dessa steg för att komma igång med att använda dessa resurser:
1. **Forka FÖrrådet**: Klicka [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork) 1. **Forka Repositoryt**: Klicka [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
2. **Klona FÖrrådet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Klona Repositoryt**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Gå med i Azure AI Foundry Discord och träffa experter och andra utvecklare**](https://discord.com/invite/ByRwuEEgH4) 3. [**Gå med i Azure AI Foundry Discord och träffa experter och andra utvecklare**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 Flerspråkigt stöd ### 🌐 Stöd för flera språk
#### Stöds via GitHub Action (Automatiserat och alltid uppdaterat) #### Stöds via GitHub Action (Automatiserat & Alltid Uppdaterat)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](./README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) [Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](./README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Föredrar du att Klona Lokalt?** > **Föredrar du att klona lokalt?**
>
> Detta förråd inkluderar över 50 språköversättningar som betydligt ökar nedladdningsstorleken. För att klona utan översättningar, använd sparsamt utläsning: > Detta repository innehåller över 50 språköversättningar vilket ökar nedladdningsstorleken avsevärt. För att klona utan översättningar, använd sparsamt utcheckning:
>
> **Bash / macOS / Linux:**
> ```bash > ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git > git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git
> cd Web-Dev-For-Beginners > cd Web-Dev-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ``` > ```
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git
> cd Web-Dev-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Detta ger dig allt du behöver för att slutföra kursen med en mycket snabbare nedladdning. > Detta ger dig allt du behöver för att slutföra kursen med en mycket snabbare nedladdning.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Om du vill ha ytterligare översättningsspråk stödjs dessa [här](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)** **Om du vill ha ytterligare språkstöd finns de listade [här](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) [![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
#### 🧑‍🎓 _Är du student?_ #### 🧑‍🎓 _Är du student?_
Besök [**Student Hub-sidan**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) där du hittar nybörjarresurser, studentpaket och även sätt att få ett gratis certifikat-voucher. Detta är sidan du vill bokmärka och kolla då och då eftersom vi byter ut innehållet varje månad. Besök [**Student Hub-sidan**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) där du hittar nybörjarresurser, studentpaket och till och med sätt att få ett gratis certifikatvoucher. Detta är sidan du vill bokmärka och kolla in då och då eftersom vi uppdaterar innehåll varje månad.
### 📣 Meddelande - Nya GitHub Copilot Agent-lägesutmaningar att slutföra! ### 📣 Meddelande - Nya GitHub Copilot Agent-lägesutmaningar att slutföra!
Ny utmaning tillagd, leta efter "GitHub Copilot Agent Challenge 🚀" i de flesta kapitel. Det är en ny utmaning för dig att slutföra med GitHub Copilot och Agent-läge. Om du inte har använt Agent-läge tidigare kan det inte bara generera text utan kan också skapa och redigera filer, köra kommandon med mera. Ny utmaning tillagd, leta efter "GitHub Copilot Agent Challenge 🚀" i de flesta kapitel. Det är en ny utmaning för dig att slutföra med GitHub Copilot och Agent-läget. Om du inte använt Agent-läget tidigare kan det inte bara generera text, utan även skapa och redigera filer, köra kommandon och mer.
### 📣 Meddelande - _Nytt projekt att bygga med Generativ AI_ ### 📣 Meddelande - _Nytt projekt att bygga med Generativ AI_
Nytt AI Assistant-projekt nyligen tillagt, kolla in det [projekt](./9-chat-project/README.md) Nytt AI-assistentprojekt just tillagt, kolla in det [projektet](./9-chat-project/README.md)
### 📣 Meddelande - _Ny läroplan_ om Generativ AI för JavaScript har just släppts ### 📣 Meddelande - _Ny läroplan_ om Generativ AI för JavaScript har just släppts
Missa inte vår nya läroplan för Generativ AI! Missa inte vår nya Generativ AI-läroplan!
Besök [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) för att komma igång! Besök [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) för att komma igång!
![Background](../../translated_images/sv/background.148a8d43afde5730.webp) ![Background](../../translated_images/sv/background.148a8d43afde5730.webp)
- Lektioner som täcker allt från grunder till RAG. - Lektioner som täcker allt från grunder till RAG.
- Interagera med historiska karaktärer med GenAI och vår app. - Interagera med historiska karaktärer med GenAI och vår medföljande app.
- Rolig och engagerande berättelse, du kommer att resa i tiden! - Rolig och engagerande berättelse, du kommer att tidsresa!
![character](../../translated_images/sv/character.5c0dd8e067ffd693.webp) ![character](../../translated_images/sv/character.5c0dd8e067ffd693.webp)
Varje lektion innehåller en uppgift att slutföra, en kunskapskontroll och en utmaning som vägleder dig genom ämnen som:
- Frågeteknik och promptteknik Varje lektion inkluderar en uppgift att slutföra, en kunskapskontroll och en utmaning som guidar dig i att lära dig ämnen som:
- Prompting och promptteknik
- Text- och bildappsgenerering - Text- och bildappsgenerering
- Sökappar - Sökappar
@ -82,130 +93,127 @@ Besök [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) för att
## 🌱 Komma igång ## 🌱 Komma igång
> **Lärare**, vi har [inkluderat några förslag](for-teachers.md) om hur du kan använda denna läroplan. Vi skulle uppskatta din feedback [i vårt diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! > **Lärare**, vi har [inkluderat några förslag](for-teachers.md) på hur man använder denna läroplan. Vi skulle uppskatta din feedback [i vårt diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Lärande](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, för varje lektion, börja med en för-foreläsningsfrågesport och fortsätt med att läsa föreläsningsmaterialet, komplettera de olika aktiviteterna och kontrollera din förståelse med post-foreläsningsfrågesporten. **[Studenter](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, för varje lektion, börja med ett förföreläsningsquiz och fortsätt sedan med att läsa föreläsningsmaterialet, slutföra de olika aktiviteterna och kontrollera din förståelse med efterföreläsningsquizet.
För att förbättra din inlärningsupplevelse, anslut med dina kamrater för att arbeta med projekten tillsammans! Diskussioner uppmuntras i vårt [diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) där vårt team av moderatorer finns tillgängliga för att svara på dina frågor. För att förbättra din lärandeupplevelse, koppla ihop med dina kamrater för att arbeta på projekten tillsammans! Diskussioner uppmuntras i vårt [diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) där vårt team av moderatorer finns tillgängliga för att svara på dina frågor.
För att vidareutbilda dig rekommenderar vi starkt att utforska [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) för ytterligare studiematerial. För att fördjupa din utbildning rekommenderar vi starkt att utforska [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) för ytterligare studiematerial.
### 📋 Ställa in din miljö ### 📋 Ställa in din miljö
Denna läroplan har en utvecklingsmiljö redo att användas! När du kommer igång kan du välja att köra läroplanen i en [Codespace](https://github.com/features/codespaces/) (_en webbläsarbaserad, ingen installation behövs-miljö_), eller lokalt på din dator med en textredigerare som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Denna läroplan har en utvecklingsmiljö redo att användas! När du kommer igång kan du välja att köra läroplanen i en [Codespace](https://github.com/features/codespaces/) (_en webbläsarbaserad miljö utan behov av installation_), eller lokalt på din dator med en textredigerare som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Skapa ditt förråd #### Skapa ditt repository
För att du enkelt ska kunna spara ditt arbete rekommenderas att du skapar din egen kopia av detta förråd. Du kan göra detta genom att klicka på knappen **Use this template** högst upp på sidan. Detta skapar ett nytt förråd i ditt GitHub-konto med en kopia av läroplanen. För att enkelt spara ditt arbete rekommenderas det att du skapar en egen kopia av detta repository. Du kan göra detta genom att klicka på knappen **Use this template** högst upp på sidan. Detta skapar ett nytt repository i ditt GitHub-konto med en kopia av läroplanen.
Följ dessa steg: Följ dessa steg:
1. **Forka FÖrrådet**: Klicka på "Fork"-knappen i det övre högra hörnet på denna sida. 1. **Forka Repositoryt**: Klicka på knappen "Fork" uppe i högra hörnet på denna sida.
2. **Klona FÖrrådet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Klona Repositoryt**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Köra läroplanen i en Codespace #### Köra läroplanen i en Codespace
I din kopia av detta förråd som du skapade, klicka på **Code**-knappen och välj **Open with Codespaces**. Detta skapar en ny Codespace för dig att arbeta i. I din kopia av detta repository som du skapade, klicka på knappen **Code** och välj **Open with Codespaces**. Detta kommer att skapa en ny Codespace för dig att arbeta i.
![Codespace](../../translated_images/sv/createcodespace.0238bbf4d7a8d955.webp) ![Codespace](../../translated_images/sv/createcodespace.0238bbf4d7a8d955.webp)
#### Köra läroplanen lokalt på din dator #### Köra läroplanen lokalt på din dator
För att köra denna läroplan lokalt på din dator behöver du en textredigerare, en webbläsare och ett kommandoradsverktyg. Vår första lektion, [Introduktion till programmeringsspråk och verktyg](../../1-getting-started-lessons/1-intro-to-programming-languages), guidar dig genom olika alternativ för varje av dessa verktyg så att du kan välja det som passar dig bäst. För att köra denna läroplan lokalt på din dator behöver du en textredigerare, en webbläsare och ett kommandoradsverktyg. Vår första lektion, [Introduktion till programmeringsspråk och verktyg för yrket](../../1-getting-started-lessons/1-intro-to-programming-languages), guidar dig genom olika alternativ för var och en av dessa verktyg så att du kan välja det som passar dig bäst.
Vårt rekommenderade redigeringsprogram är [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som även har en inbyggd [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan ladda ner Visual Studio Code [här](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Vår rekommendation är att använda [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som din redigerare, som även har en inbyggd [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan ladda ner Visual Studio Code [här](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Klona ditt förråd till din dator. Du kan göra detta genom att klicka på **Code**-knappen och kopiera URL: 1. Klona ditt repository till din dator. Du kan göra detta genom att klicka på **Code**-knappen och kopiera URL:en:
[CodeSpace](./images/createcodespace.png) [CodeSpace](./images/createcodespace.png)
Öppna sedan [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) i [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) och kör följande kommando, byt ut `<your-repository-url>` mot URL:en du just kopierade:
Öppna sedan [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) i [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) och kör följande kommando, där du byter ut `<your-repository-url>` mot URL:en du just kopierade:
```bash ```bash
git clone <your-repository-url> git clone <your-repository-url>
``` ```
2. Öppna mappen i Visual Studio Code. Det kan du göra genom att klicka på **File** > **Open Folder** och välja mappen du just klonade. 2. Öppna mappen i Visual Studio Code. Du kan göra detta genom att klicka på **File** > **Open Folder** och välja den mapp du just klonade.
> Rekommenderade tillägg för Visual Studio Code:
> Rekommenderade Visual Studio Code-tillägg:
> >
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - för att förhandsgranska HTML-sidor i Visual Studio Code > * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - för att förhandsgranska HTML-sidor inom Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - för att hjälpa dig skriva kod snabbare > * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - för att hjälpa dig skriva kod snabbare
## 📂 Varje lektion inkluderar: ## 📂 Varje lektion innehåller:
- valfri sketchnote - valfritt skissnotat
- valfri kompletterande video - valfri kompletterande video
- förberedande quiz före lektionen - värmande quiz före lektionen
- skriftlig lektion - skriven lektion
- för projektbaserade lektioner, steg-för-steg guider för hur man bygger projektet - för projektbaserade lektioner, steg-för-steg-guider för att bygga projektet
- kunskapskontroller - kunskapskontroller
- en utmaning - en utmaning
- kompletterande läsning - kompletterande läsning
- uppgift - uppgift
- [quiz efter lektionen](https://ff-quizzes.netlify.app/web/) - [quiz efter lektionen](https://ff-quizzes.netlify.app/web/)
> **En notering om quiz**: Alla quiz finns i Quiz-app-mappen, totalt 48 quiz med tre frågor vardera. De finns tillgängliga [här](https://ff-quizzes.netlify.app/web/), quiz-appen kan köras lokalt eller distribueras till Azure; följ instruktionerna i mappen `quiz-app`. > **En notering om quiz**: Alla quiz finns i Quiz-app-mappen, totalt 48 quiz med tre frågor vardera. De finns tillgängliga [här](https://ff-quizzes.netlify.app/web/) och quizappen kan köras lokalt eller distribueras till Azure; följ instruktionerna i `quiz-app`-mappen.
## 🗃️ Lektioner ## 🗃️ Lektioner
| | Projektnamn | Undervisade koncept | Lärandemål | Länkad lektion | Författare | | | Projektnamn | Undervisade koncept | Lärandemål | Länkad lektion | Författare |
| :-: | :----------------------------------------------------: | :------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :-------------------------: | | :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Kom igång | Introduktion till programmering och verktyg | Lär dig de grundläggande principerna bakom de flesta programmeringsspråk och programvara som hjälper professionella utvecklare | [Introduktion till programmeringsspråk och verktyg](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine | | 01 | Kom igång | Introduktion till programmering och verktyg | Lär dig grundläggande principer bakom de flesta programmeringsspråk och om programvara som hjälper professionella utvecklare | [Introduktion till programmeringsspråk och verktyg](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Kom igång | Grunder i GitHub, inklusive samarbete i team | Hur man använder GitHub i sitt projekt, och hur man samarbetar med andra i en kodbas | [Introduktion till GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor | | 02 | Kom igång | Grundläggande GitHub, inkluderar arbete i team | Hur du använder GitHub i ditt projekt och samarbetar med andra på en kodbas | [Introduktion till GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Kom igång | Tillgänglighet | Lär dig grunderna i webbtillgänglighet | [Grundläggande tillgänglighet](./1-getting-started-lessons/3-accessibility/README.md) | Christopher | | 03 | Kom igång | Tillgänglighet | Lär dig grunderna i webbåtkomst | [Grundläggande tillgänglighet](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Grunder | JavaScript-datatyper | Grunderna i JavaScript-datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine | | 04 | JS-grunder | JavaScript-datatyper | Grunderna i JavaScript-datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Grunder | Funktioner och metoder | Lär dig om funktioner och metoder för att hantera applikationens logik | [Funktioner och metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine och Christopher | | 05 | JS-grunder | Funktioner och metoder | Lär dig om funktioner och metoder för att hantera logiken i en applikation | [Funktioner och metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine och Christopher |
| 06 | JS Grunder | Beslutsfattande med JS | Lär dig att skapa villkor i din kod med hjälp av beslutsfattandemetoder | [Beslutsfattande](./2-js-basics/3-making-decisions/README.md) | Jasmine | | 06 | JS-grunder | Beslutsfattande med JS | Lär dig skapa villkor i din kod med beslutsmetoder | [Beslutsfattande](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Grunder | Arrayer och loopar | Arbeta med data genom arrayer och loopar i JavaScript | [Arrayer och loopar](./2-js-basics/4-arrays-loops/README.md) | Jasmine | | 07 | JS-grunder | Arrayer och loopar | Arbeta med data med arrayer och loopar i JavaScript | [Arrayer och loopar](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praktiken | Bygg HTML:en för att skapa ett online-terrarium, med fokus på layout | [Introduktion till HTML](./3-terrarium/1-intro-to-html/README.md) | Jen | | 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praktiken | Bygg HTML för att skapa ett online-terrarium, med fokus på layout | [Introduktion till HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praktiken | Bygg CSS:en för att styla online-terrarium, med fokus på CSS-grunder, inklusive responsivt webbdesign | [Introduktion till CSS](./3-terrarium/2-intro-to-css/README.md) | Jen | | 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praktiken | Bygg CSS för att styla online-terrarium, med fokus på grunder i CSS inklusive responsiv design | [Introduktion till CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript-closures, DOM-manipulation | Bygg JavaScript för att få terrariet att fungera som ett drag/drop-gränssnitt, med fokus på closures och DOM-manipulation | [JavaScript-closures, DOM-manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | | 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript closures, DOM-manipulering | Bygg JavaScript för att göra terrariet till en drag-och-släpp-gränssnitt, med fokus på closures och DOM-manipulering | [JavaScript-closures, DOM-manipulering](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | Bygg ett skrivspel | Lär dig använda tangentbordevenemang för att styra logiken i din JavaScript-app | [Händelsestyrd programmering](./4-typing-game/typing-game/README.md) | Christopher | | 11 | [Typing Game](./4-typing-game/solution/README.md) | Bygg ett skrivspel | Lär dig använda tangentbords-event för att styra logiken i din JavaScript-app | [Händelsestyrd programmering](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Arbeta med webbläsare | Lär dig hur webbläsare fungerar, deras historia och hur man skissar de första elementen i en webbläsartillägg | [Om webbläsare](./5-browser-extension/1-about-browsers/README.md) | Jen | | 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Arbeta med webbläsare | Lär dig hur webbläsare fungerar, deras historia och hur man skapar basen för ett webbläsartillägg | [Om webbläsare](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Bygg ett formulär, anropa en API och lagra variabler lokalt | Bygg JavaScript-komponenterna i din webbläsartillägg för att anropa en API med hjälp av variabler lagrade lokalt | [API:er, formulär och lokal lagring](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | | 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Skapa ett formulär, anropa en API och lagra variabler i lokal lagring | Bygg JavaScript-element i ditt webbläsartillägg för att anropa en API med variabler lagrade i lokal lagring | [API:er, formulär och lokal lagring](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Bakgrundsprocesser i webbläsaren, webbprestanda | Använd webbläsarens bakgrundsprocesser för att hantera tilläggets ikon; lär dig om webbprestanda och vissa optimeringar | [Bakgrundsuppgifter och prestanda](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | | 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Bakgrundsprocesser i webbläsaren, webbsida prestanda | Använd webbläsarens bakgrundsprocesser för att hantera tilläggets ikon; lär dig om webbprestanda och vissa optimeringar för att förbättra | [Bakgrundsprocesser och prestanda](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Mer avancerad spelutveckling med JavaScript | Lär dig om arv med både klasser och komposition samt Pub/Sub-mönstret, som förberedelse för att bygga ett spel | [Introduktion till avancerad spelutveckling](./6-space-game/1-introduction/README.md) | Chris | | 15 | [Space Game](./6-space-game/solution/README.md) | Mer avancerad spelutveckling med JavaScript | Lär dig om arv med både klasser och komposition samt Pub/Sub-mönstret, som förberedelse för att bygga ett spel | [Introduktion till avancerad spelutveckling](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Rita på canvas | Lär dig om Canvas API, som används för att rita element på en skärm | [Rita på canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris | | 16 | [Space Game](./6-space-game/solution/README.md) | Rita på canvas | Lär dig om Canvas API, som används för att rita element på en skärm | [Rita på canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Flytta element runt på skärmen | Upptäck hur element kan få rörelse med kartesiska koordinater och Canvas API | [Flytta element runt](./6-space-game/3-moving-elements-around/README.md) | Chris | | 17 | [Space Game](./6-space-game/solution/README.md) | Flytta element runt på skärmen | Upptäck hur element kan få rörelse med kartesiska koordinater och Canvas API | [Flytta element runt](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Kollisionsdetektion | Få element att kollidera och reagera på varandra med hjälp av knapptryckningar och ge en cooldown-funktion för spelets prestanda| [Kollisionsdetektion](./6-space-game/4-collision-detection/README.md) | Chris | | 18 | [Space Game](./6-space-game/solution/README.md) | Kollisiondetektion | Få element att kollidera och reagera på varandra med tangenttryckningar samt skapa en cooldown-funktion för att säkerställa spelets prestanda | [Kollisiondetektion](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Poängräkning | Utför matematiska beräkningar baserat på spelets status och prestanda | [Poängräkning](./6-space-game/5-keeping-score/README.md) | Chris | | 19 | [Space Game](./6-space-game/solution/README.md) | Poängräkning | Utför matematiska beräkningar baserade på spelets status och prestation | [Poängräkning](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Avsluta och starta om spelet | Lär dig om att avsluta och starta om spelet, inklusive att rensa tillgångar och återställa variabelvärden | [Avslutsvillkor](./6-space-game/6-end-condition/README.md) | Chris | | 20 | [Space Game](./6-space-game/solution/README.md) | Avsluta och starta om spelet | Lär dig om att avsluta och starta om spelet, inklusive att rensa tillgångar och återställa variabler | [Avslutsvillkor](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-mallar och rutter i en webbapp | Lär dig skapa grunden till en multipages webbplats arkitektur med routing och HTML-mallar | [HTML-mallar och rutter](./7-bank-project/1-template-route/README.md) | Yohan | | 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-mallar och rutter i en webbapp | Lär dig skapa skalmallen för en webbplats med flera sidor med routing och HTML-mallar | [HTML-mallar och rutter](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Bygg ett inloggnings- och registreringsformulär | Lär dig om att bygga formulär och hantera valideringsrutiner | [Formulär](./7-bank-project/2-forms/README.md) | Yohan | | 22 | [Banking App](./7-bank-project/solution/README.md) | Bygg ett inloggnings- och registreringsformulär | Lär dig bygga formulär och hantera valideringsrutiner | [Formulär](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Sätt att hämta och använda data | Hur data flyter in och ut ur din app, hur man hämtar, lagrar och gör sig av med det | [Data](./7-bank-project/3-data/README.md) | Yohan | | 23 | [Banking App](./7-bank-project/solution/README.md) | Metoder för att hämta och använda data | Hur data flödar in och ut ur din app, hur man hämtar, lagrar och slänger den | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Begrepp i tillståndshantering | Lär dig hur din app behåller tillstånd och hur du hanterar det programmässigt | [Tillståndshantering](./7-bank-project/4-state-management/README.md) | Yohan | | 24 | [Banking App](./7-bank-project/solution/README.md) | Begrepp kring state management | Lär dig hur din app behåller state och hur du hanterar det programmatiskt | [State management](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Arbeta med VScode | Lär dig hur man använder en kodredigerare | [Använd VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris | | 25 | [Browser/VScode Code](../../8-code-editor) | Arbeta med VScode | Lär dig använda en kodredigerare| [Använd VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | Arbeta med AI | Lär dig hur du bygger din egen AI-assistent | [AI Assistentprojekt](./9-chat-project/README.md) | Chris | | 26 | [AI Assistants](./9-chat-project/README.md) | Arbeta med AI | Lär dig bygga din egen AI-assistent | [AI Assistant-projekt](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogik ## 🏫 Pedagogik
Vår läroplan är utformad med två viktiga pedagogiska principer i åtanke: Vårt läroplan är utformat med två viktiga pedagogiska principer i åtanke:
* projektbaserat lärande * projektbaserat lärande
* frekventa quiz * frekventa quiz
Programmet lär ut grunderna i JavaScript, HTML och CSS, samt de senaste verktygen och teknikerna som används av dagens webbutvecklare. Studenter får möjlighet att utveckla praktisk erfarenhet genom att bygga ett skrivspel, ett virtuellt terrarium, en miljövänlig webbläsartillägg, ett rymd-invaderarspel och en bankapp för företag. I slutet av serien kommer studenter att ha en gedigen förståelse för webbutveckling. Programmet lär ut grunderna i JavaScript, HTML och CSS, samt de senaste verktyg och tekniker som dagens webbutvecklare använder. Studenter får möjlighet att utveckla praktisk erfarenhet genom att bygga ett skrivspel, virtuellt terrarium, miljövänligt webbläsartillägg, rymdinvasionsspel och en bankapp för företag. I slutet av serien kommer studenter att ha fått en gedigen förståelse för webbutveckling.
> 🎓 Du kan ta de första lektionerna i denna läroplan som en [Lärväg](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) på Microsoft Learn! > 🎓 Du kan ta de första lektionerna i denna läroplan som en [Lärväg](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) på Microsoft Learn!
Genom att säkerställa att innehållet överensstämmer med projekten blir processen mer engagerande för studenterna och konceptens bestående förstärks. Vi skrev också flera grundläggande lektioner i JavaScript för att introducera koncept, tillsammans med en video från "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" samlingen av videotutorials, vars några författare bidrog till denna läroplan. Genom att säkerställa att innehållet överensstämmer med projekt blir processen mer engagerande för studenter och behållning av koncept förstärks. Vi har också skrivit flera startlektioner i JavaScript-grunder för att introducera koncept, tillsammans med en video från "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)"-samlingen av videotutorials, där några författare bidragit till denna läroplan.
Dessutom sätter ett lågrisk-quiz före en lektion studentens fokus mot att lära sig ett ämne, medan ett andra quiz efter lektionen säkerställer ytterligare bestående förståelse. Denna läroplan är designad för att vara flexibel och rolig och kan tas i sin helhet eller delvis. Projekten börjar smått och blir successivt mer komplexa vid slutet av 12-veckorscykeln.
Medan vi medvetet har undvikit att introducera JavaScript-ramverk för att fokusera på grundläggande färdigheter som webbutvecklare innan ett ramverk används, är ett bra nästa steg efter att ha genomfört denna läroplan att lära sig om Node.js via en annan videosamling: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)". Dessutom sätter ett låginsats-quiz före en lektion studentens avsikt mot att lära sig ett ämne, medan ett andra quiz efter lektionen säkerställer vidare retention. Denna läroplan är designad för att vara flexibel och rolig och kan tas helt eller delvis. Projekten startar små och blir successivt mer komplexa under 12-veckorscykeln.
> Besök våra riktlinjer för [Uppförandekod](CODE_OF_CONDUCT.md) och [Bidrag](CONTRIBUTING.md). Vi välkomnar din konstruktiva feedback! Även om vi med avsikt undvikit att introducera JavaScript-ramverk för att fokusera på de grundläggande färdigheter som behövs som webbutvecklare innan man tar till sig ett ramverk, skulle ett bra nästa steg efter denna läroplan vara att lära sig om Node.js via en annan samling videor: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Besök våra [Uppförandekod](CODE_OF_CONDUCT.md) och [Bidragsgivare](CONTRIBUTING.md) riktlinjer. Vi välkomnar din konstruktiva feedback!
## 🧭 Offlineåtkomst ## 🧭 Offlineåtkomst
Du kan köra denna dokumentation offline genom att använda [Docsify](https://docsify.js.org/#/). Forka detta repo, [installera Docsify](https://docsify.js.org/#/quickstart) på din lokala maskin, och sedan i rotmappen av detta repo skriver du `docsify serve`. Webbplatsen kommer att serveras på port 3000 på din localhost: `localhost:3000`. Du kan köra denna dokumentation offline med hjälp av [Docsify](https://docsify.js.org/#/). Forka detta repo, [installera Docsify](https://docsify.js.org/#/quickstart) på din lokala dator, och skriv sedan `docsify serve` i rotmappen för detta repo. Webbplatsen kommer att serveras på port 3000 på din localhost: `localhost:3000`.
## 📘 PDF ## 📘 PDF
En PDF med alla lektioner finns [här](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf). En PDF med alla lektioner finns [här](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Andra kurser ## 🎒 Andra kurser
Vårt team producerar andra kurser! Kolla in: Vårt team producerar andra kurser! Kolla in:
<!-- CO-OP TRANSLATOR OTHER COURSES START --> <!-- CO-OP TRANSLATOR OTHER COURSES START -->
@ -223,7 +231,7 @@ Vårt team producerar andra kurser! Kolla in:
--- ---
### Generative AI Series ### Generativ AI-serie
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -231,7 +239,7 @@ Vårt team producerar andra kurser! Kolla in:
--- ---
### Core Learning ### Kärnlärande
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -242,7 +250,7 @@ Vårt team producerar andra kurser! Kolla in:
--- ---
### Copilot Series ### Copilot-serie
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
@ -250,21 +258,21 @@ Vårt team producerar andra kurser! Kolla in:
## Få hjälp ## Få hjälp
Om du fastnar eller har några frågor om att bygga AI-appar. Gå med andra studenter och erfarna utvecklare i diskussioner om MCP. Det är en stödjande gemenskap där frågor är välkomna och kunskap delas fritt. Om du fastnar eller har några frågor om att bygga AI-appar. Gå med andra som lär sig och erfarna utvecklare i diskussioner om MCP. Det är ett stödjande community där frågor är välkomna och kunskap delas fritt.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Om du har produktfeedback eller stöter på fel under byggandet, besök: Om du har produktfeedback eller felaktigheter när du bygger, besök:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Licens ## Licens
Detta förråd är licensierat under MIT-licensen. Se filen [LICENSE](../../LICENSE) för mer information. Detta arkiv är licensierat under MIT-licensen. Se filen [LICENSE](../../LICENSE) för mer information.
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfriskrivning**: **Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, var god notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess ursprungliga språk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning. Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen var medveten om att automatiska översättningar kan innehålla fel eller onoggrheter. Det ursprungliga dokumentet på dess ursprungliga språk bör betraktas som den auktoritativa källan. För viktig information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{ {
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": { "1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "d45ddcc54eb9232a76d08328b09d792e", "original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-01-06T22:22:09+00:00", "translation_date": "2026-03-06T12:11:30+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md", "source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "th" "language_code": "th"
}, },
@ -493,7 +493,7 @@
}, },
"AGENTS.md": { "AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34", "original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-02-06T17:22:44+00:00", "translation_date": "2026-03-06T12:19:35+00:00",
"source_file": "AGENTS.md", "source_file": "AGENTS.md",
"language_code": "th" "language_code": "th"
}, },
@ -516,8 +516,8 @@
"language_code": "th" "language_code": "th"
}, },
"README.md": { "README.md": {
"original_hash": "6d6385fd098088cb2d690fb0a6cdaedc", "original_hash": "a2c9eed480687319517c08a6319e5536",
"translation_date": "2026-02-06T17:15:05+00:00", "translation_date": "2026-03-06T12:07:39+00:00",
"source_file": "README.md", "source_file": "README.md",
"language_code": "th" "language_code": "th"
}, },

@ -2,29 +2,29 @@
## ภาพรวมโครงการ ## ภาพรวมโครงการ
นี่คือคลังหลักสูตรการศึกษาเพื่อสอนพื้นฐานการพัฒนาเว็บให้กับผู้เริ่มต้น หลักสูตรนี้เป็นคอร์สที่ครอบคลุม 12 สัปดาห์ พัฒนาโดย Microsoft Cloud Advocates ซึ่งประกอบด้วยบทเรียนเชิงปฏิบัติ 24 บทที่ครอบคลุม JavaScript, CSS และ HTML นี่คือที่เก็บหลักสูตรการศึกษาสำหรับการสอนพื้นฐานการพัฒนาเว็บสำหรับผู้เริ่มต้น หลักสูตรนี้เป็นหลักสูตรครบวงจร 12 สัปดาห์ที่พัฒนาโดย Microsoft Cloud Advocates โดยมีบทเรียนเชิงปฏิบัติทั้งหมด 24 บทเรียน ครอบคลุม JavaScript, CSS และ HTML
### ส่วนประกอบสำคัญ ### ส่วนประกอบหลัก
- **เนื้อหาการศึกษา**: บทเรียน 24 บทจัดโครงสร้างเป็นโมดูลที่อิงโครงการ - **เนื้อหาการศึกษา**: บทเรียนที่จัดเป็นโครงสร้างจำนวน 24 บทเรียนแบ่งเป็นโมดูลตามโปรเจกต์
- **ครงการเชิงปฏิบัติ**: Terrarium, เกมพิมพ์, ส่วนขยายเบราว์เซอร์, เกมอวกาศ, แอพธนาคาร, ตัวแก้ไขโค้ด และผู้ช่วยแชท AI - **ปรเจกต์เชิงปฏิบัติ**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor และ AI Chat Assistant
- **แบบทดสอบเชิงโต้ตอบ**: แบบทดสอบ 48 ชุด แต่ละชุดมี 3 คำถาม (ประเมินก่อน/หลังบทเรียน) - **แบบทดสอบแบบโต้ตอบ**: แบบทดสอบ 48 ชุด แต่ละชุดมี 3 คำถาม (ก่อน/หลังบทเรียน)
- **รองรับหลายภาษา**: การแปลอัตโนมัติสำหรับ 50+ ภาษา ผ่าน GitHub Actions - **รองรับหลายภาษา**: การแปลอัตโนมัติสำหรับมากกว่า 50 ภาษา ผ่าน GitHub Actions
- **เทคโนโลยี**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (สำหรับโครงการ AI) - **เทคโนโลยี**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (สำหรับโปรเจกต์ AI)
### สถาปัตยกรรม ### สถาปัตยกรรม
- คลังการศึกษาที่มีโครงสร้างแบบเน้นบทเรียน - ที่เก็บการศึกษาที่มีโครงสร้างตามบทเรียน
- โฟลเดอร์บทเรียนแต่ละบทประกอบด้วย README, ตัวอย่างโค้ด และคำตอบ - โฟลเดอร์บทเรียนแต่ละอันมี README, ตัวอย่างโค้ด และคำตอบ
- โครงการแยกเดี่ยวในไดเรกทอรีแยกต่างหาก (quiz-app, โครงการบทเรียนต่างๆ) - โปรเจกต์แบบสแตนด์อโลนในไดเรกทอรีแยกต่างหาก (quiz-app, โปรเจกต์บทเรียนต่างๆ)
- ระบบแปลด้วย GitHub Actions (co-op-translator) - ระบบแปลดยใช้ GitHub Actions (co-op-translator)
- เอกสารให้บริการผ่าน Docsify และมีให้ในรูปแบบ PDF - เอกสารถูกให้บริการผ่าน Docsify และสามารถดาวน์โหลดเป็น PDF ได้
## คำสั่งติดตั้ง ## คำสั่งการตั้งค่า
คลังนี้เน้นสำหรับการบริโภคเนื้อหาการศึกษาหลัก สำหรับการทำงานกับโครงการเฉพาะ: ที่เก็บนี้เน้นสำหรับการบริโภคเนื้อหาการศึกษาเป็นหลัก สำหรับการทำงานกับโปรเจกต์เฉพาะ:
### การตั้งค่าคลังหลัก ### การตั้งค่าหลักของที่เก็บ
```bash ```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
@ -36,8 +36,8 @@ cd Web-Dev-For-Beginners
```bash ```bash
cd quiz-app cd quiz-app
npm install npm install
npm run dev # เริ่มเซิร์ฟเวอร์สำหรับพัฒนา npm run dev # เริ่มเซิร์ฟเวอร์พัฒนา
npm run build # สร้างสำหรับโปรดักชัน npm run build # สร้างสำหรับการผลิต
npm run lint # รัน ESLint npm run lint # รัน ESLint
``` ```
@ -46,20 +46,20 @@ npm run lint # รัน ESLint
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
npm install npm install
npm start # เริ่มต้นเซิร์ฟเวอร์ API npm start # เริ่มเซิร์ฟเวอร์ API
npm run lint # รัน ESLint npm run lint # รัน ESLint
npm run format # จัดรูปแบบด้วย Prettier npm run format # ฟอร์แมตด้วย Prettier
``` ```
### โครงการส่วนขยายเบราว์เซอร์ ### โปรเจกต์ Browser Extension
```bash ```bash
cd 5-browser-extension/solution cd 5-browser-extension/solution
npm install npm install
# ปฏิบัติตามคำแนะนำการโหลดส่วนขยายเฉพาะเบราว์เซอร์ # ปฏิบัติตามคำแนะนำการโหลดส่วนขยายเฉพาะของเบราว์เซอร์
``` ```
### โครงการเกมอวกาศ ### โปรเจกต์ Space Game
```bash ```bash
cd 6-space-game/solution cd 6-space-game/solution
@ -67,7 +67,7 @@ npm install
# เปิดไฟล์ index.html ในเบราว์เซอร์หรือใช้ Live Server # เปิดไฟล์ index.html ในเบราว์เซอร์หรือใช้ Live Server
``` ```
### โครงการแชท (Python Backend) ### โปรเจกต์ Chat (Python Backend)
```bash ```bash
cd 9-chat-project/solution/backend/python cd 9-chat-project/solution/backend/python
@ -78,31 +78,31 @@ python api.py
## กระบวนการพัฒนา ## กระบวนการพัฒนา
### สำหรับผู้ร่วมสร้างเนื้อหา ### สำหรับผู้ที่มีส่วนร่วมเนื้อหา
1. **Fork คลังไปยังบัญชี GitHub ของคุณ** 1. **Fork ที่เก็บนี้** ไปยังบัญชี GitHub ของคุณ
2. **โคลน Fork ของคุณลงเครื่อง** 2. **Clone fork ของคุณ** มาที่เครื่องของคุณ
3. **สร้างสาขาใหม่** สำหรับการเปลี่ยนแปลงของคุณ 3. **สร้างสาขาใหม่** สำหรับการเปลี่ยนแปลงของคุณ
4. แก้ไขเนื้อหาหรือโค้ดตัวอย่างในบทเรียน 4. แก้ไขเนื้อหาบทเรียนหรือโค้ดตัวอย่าง
5. ทดสอบการเปลี่ยนแปลงโค้ดในไดเรกทอรีโครงการที่เกี่ยวข้อง 5. ทดสอบการเปลี่ยนแปลงโค้ดในไดเรกทอรีโปรเจกต์ที่เกี่ยวข้อง
6. ส่งคำร้อง pull request ตามแนวทางการร่วมมือ 6. ส่ง pull request ตามแนวทางการมีส่วนร่วม
### สำหรับผู้เรียน ### สำหรับผู้เรียน
1. Fork หรือโคลนคลัง 1. Fork หรือ clone ที่เก็บนี้
2. ไปยังไดเรกทอรีบทเรียนตามลำดับ 2. เข้าไปในไดเรกทอรีบทเรียนทีละบท
3. อ่านไฟล์ README ของแต่ละบทเรียน 3. อ่านไฟล์ README ของแต่ละบทเรียน
4. ทำแบบทดสอบก่อนบทเรียนที่ https://ff-quizzes.netlify.app/web/ 4. ทำแบบทดสอบก่อนเรียนที่ https://ff-quizzes.netlify.app/web/
5. ทำงานผ่านตัวอย่างโค้ดในโฟลเดอร์บทเรียน 5. ทำงานผ่านตัวอย่างโค้ดในโฟลเดอร์บทเรียน
6. ทำแบบฝึกหัดและความท้าทายให้ครบถ้วน 6. ทำแบบฝึกหัดและความท้าทายต่างๆ
7. เข้าทำแบบทดสอบหลังบทเรียน 7. ทำแบบทดสอบหลังเรียน
### การพัฒนาแบบสด ### การพัฒนาแบบสด
- **เอกสาร**: รัน `docsify serve` ในโฟลเดอร์หลัก (พอร์ต 3000) - **เอกสาร**: รัน `docsify serve` ในโฟลเดอร์ราก (พอร์ต 3000)
- **Quiz App**: รัน `npm run dev` ในโฟลเดอร์ quiz-app - **Quiz App**: รัน `npm run dev` ในไดเรกทอรี quiz-app
- **ครงการ**: ใช้ส่วนขยาย Live Server ของ VS Code สำหรับโครงการ HTML - **ปรเจกต์**: ใช้ส่วนขยาย Live Server ของ VS Code สำหรับโปรเจกต์ HTML
- **ครงการ API**: รัน `npm start` ในไดเรกทอรี API ที่เกี่ยวข้อง - **ปรเจกต์ API**: รัน `npm start` ในไดเรกทอรี API ที่เกี่ยวข้อง
## คำแนะนำการทดสอบ ## คำแนะนำการทดสอบ
@ -110,8 +110,8 @@ python api.py
```bash ```bash
cd quiz-app cd quiz-app
npm run lint # ตรวจสอบปัญหาสไตล์โค้ด npm run lint # ตรวจสอบปัญหาเกี่ยวกับรูปแบบโค้ด
npm run build # ยืนยันการสร้างสำเร็จ npm run build # ยืนยันการสร้างที่สำเร็จ
``` ```
### การทดสอบ Bank API ### การทดสอบ Bank API
@ -119,164 +119,162 @@ npm run build # ยืนยันการสร้างสำเร็
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
npm run lint # ตรวจสอบปัญหาสไตล์โค้ด npm run lint # ตรวจสอบปัญหาสไตล์โค้ด
node server.js # ตรวจสอบว่าเซิร์ฟเวอร์เริ่มต้นโดยไม่มีข้อผิดพลาด node server.js # ตรวจสอบว่าเซิร์ฟเวอร์เริ่มต้นโดยไม่มีข้อผิดพลาดไหม
``` ```
### แนวทางการทดสอบทั่วไป ### แนวทางการทดสอบทั่วไป
- นี่คือคลังเพื่อการศึกษาไม่มีการทดสอบอัตโนมัติอย่างครอบคลุม - นี่คือที่เก็บเอกสารการศึกษาที่ไม่มีการทดสอบอัตโนมัติครอบคลุม
- การทดสอบด้วยตนเองเน้นที่: - การทดสอบด้วยตนเองเน้นที่:
- ตัวอย่างโค้ดรันได้โดยไม่มีข้อผิดพลาด - ตัวอย่างโค้ดรันได้โดยไม่มีข้อผิดพลาด
- ลิงก์ในเอกสารทำงานถูกต้อง - ลิงก์ในเอกสารทำงานได้ถูกต้อง
- การสร้างโครงการสำเร็จลุล่วง - การสร้างโปรเจกต์สำเร็จ
- ตัวอย่างปฏิบัติตามแนวปฏิบัติที่ดีที่สุด - ตัวอย่างเป็นไปตามแนวทางปฏิบัติที่ดีที่สุด
### การตรวจสอบก่อนส่ง ### การตรวจสอบก่อนส่ง
- รัน `npm run lint` ในโฟลเดอร์ที่มี package.json - รัน `npm run lint` ในไดเรกทอรีที่มี package.json
- ตรวจสอบว่าลิงก์ markdown ถูกต้อง - ตรวจสอบลิงก์ markdown ให้ถูกต้อง
- ทดสอบตัวอย่างโค้ดในเบราว์เซอร์หรือ Node.js - ทดสอบตัวอย่างโค้ดในเบราว์เซอร์หรือ Node.js
- ตรวจสอบว่าแปลภาษายังคงรักษาโครงสร้างอย่างถูกต้อง - ตรวจสอบว่าแปลภาษายังคงโครงสร้างถูกต้อง
## แนวทางการเขียนโค้ด ## แนวทางการเขียนโค้ด
### JavaScript ### JavaScript
- ใช้ไวยากรณ์ ES6+ สมัยใหม่ - ใช้ไวยากรณ์ ES6+ สมัยใหม่
- ปฏิบัติตามการตั้งค่า ESLint มาตรฐานที่ระบุในโครงการ - ปฏิบัติตามการตั้งค่า ESLint มาตรฐานที่ให้ไว้ในโปรเจกต์
- ใช้ชื่อตัวแปรและฟังก์ชันที่มีความหมายเพื่อความชัดเจนทางการศึกษา - ใช้ชื่อตัวแปรและฟังก์ชันที่มีความหมายเพื่อความชัดเจนในการศึกษา
- เพิ่มคอมเมนต์อธิบายแนวคิดสำหรับผู้เรียน - เพิ่มคอมเมนต์อธิบายแนวคิดสำหรับผู้เรียน
- จัดรูปแบบโดยใช้ Prettier เมื่อมีการตั้งค่า - จัดรูปแบบด้วย Prettier เมื่อกำหนดไว้
### HTML/CSS ### HTML/CSS
- องค์ประกอบ HTML5 เชิงความหมาย - ใช้ HTML5 อย่างมีความหมาย
- หลักการออกแบบตอบสนอง - หลักการออกแบบตอบสนอง
- การตั้งชื่อชั้นเรียนที่ชัดเจน - การตั้งชื่อคลาสที่ชัดเจน
- คอมเมนต์เพื่ออธิบายเทคนิค CSS สำหรับผู้เรียน - คอมเมนต์อธิบายเทคนิค CSS สำหรับผู้เรียน
### Python ### Python
- ปฏิบัติตามมาตรฐานสไตล์ PEP 8 - ปฏิบัติตามแนวทางสไตล์ PEP 8
- ตัวอย่างโค้ดที่ชัดเจนและใช้เพื่อการศึกษา - ตัวอย่างโค้ดที่ชัดเจนและเน้นการศึกษา
- ใช้ type hints เมื่อต้องช่วยการเรียนรู้ - ใช้ type hints เมื่อช่วยให้เรียนรู้ได้ดีขึ้น
### เอกสาร Markdown ### เอกสาร Markdown
- โครงสร้างหัวข้อชัดเจน - โครงสร้างหัวข้อที่ชัดเจน
- บล็อกโค้ดพร้อมระบุภาษา - บล็อกโค้ดระบุภาษา
- ลิงก์ไปยังแหล่งข้อมูลเพิ่มเติม - ลิงก์ไปยังแหล่งข้อมูลเพิ่มเติม
- ภาพหน้าจอและรูปในโฟลเดอร์ `images/` - รูปภาพและสกรีนช็อตในไดเรกทอรี `images/`
- ข้อความ alt สำหรับภาพเพื่อการเข้าถึง - ข้อความ alt สำหรับภาพเพื่อการเข้าถึง
### การจัดระเบียบไฟล์ ### การจัดระเบียบไฟล์
- บทเรียนลำดับหมายเลข (1-getting-started-lessons, 2-js-basics, ฯลฯ) - บทเรียนเรียงลำดับหมายเลขต่อเนื่อง (เช่น 1-getting-started-lessons, 2-js-basics)
- โครงการแต่ละโครงการมีโฟลเดอร์ `solution/` และบ่อยครั้งมี `start/` หรือ `your-work/` - โปรเจกต์แต่ละชิ้นมีไดเรกทอรี `solution/` และมักมี `start/` หรือ `your-work/`
- รูปภาพเก็บในโฟลเดอร์ `images/` เฉพาะบทเรียน - รูปภาพเก็บไว้ในโฟลเดอร์ `images/` เฉพาะบทเรียน
- แปลภาษาในโครงสร้าง `translations/{language-code}/` - แปลภาษาจัดเก็บในโครงสร้าง `translations/{language-code}/`
## การสร้างและการปรับใช้ ## การสร้างและปรับใช้
### การปรับใช้ Quiz App (Azure Static Web Apps) ### การปรับใช้ Quiz App (Azure Static Web Apps)
quiz-app ถูกกำหนดค่าสำหรับการปรับใช้ผ่าน Azure Static Web Apps: quiz-app ถูกตั้งค่าสำหรับการปรับใช้บน Azure Static Web Apps:
```bash ```bash
cd quiz-app cd quiz-app
npm run build # สร้างโฟลเดอร์ dist/ npm run build # สร้างโฟลเดอร์ dist/
# ทำการดีพลอยผ่านเวิร์กโฟลว์ GitHub Actions เมื่อมีการ push ไปที่ main # นำส่งผ่านเวิร์กโฟลว์ GitHub Actions เมื่อมีการ push ไปที่ main
``` ```
การกำหนดค่า Azure Static Web Apps: การตั้งค่า Azure Static Web Apps:
- **ตำแหน่งแอป**: `/quiz-app` - **ตำแหน่งแอป**: `/quiz-app`
- **ตำแหน่งผลลัพธ์**: `dist` - **ตำแหน่งผลลัพธ์**: `dist`
- **ขั้นตอนงาน**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml` - **เวิร์กโฟลว์**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### การสร้างไฟล์ PDF จากเอกสาร ### การสร้าง PDF เอกสาร
```bash ```bash
npm install # ติดตั้ง docsify-to-pdf npm install # ติดตั้ง docsify-to-pdf
npm run convert # สร้างไฟล์ PDF จาก docs npm run convert # สร้าง PDF จากเอกสาร
``` ```
### เอกสาร Docsify ### เอกสาร Docsify
```bash ```bash
npm install -g docsify-cli # ติดตั้ง Docsify ทั่วระบบ npm install -g docsify-cli # ติดตั้ง Docsify ทั่วระบบ
docsify serve # ให้บริการบน localhost:3000 docsify serve # ให้บริการที่ localhost:3000
``` ```
### การสร้างโครงการเฉพาะ ### การสร้างโปรเจกต์เฉพาะ
แต่ละไดเรกทอรีโครงการอาจมีขั้นตอนการสร้างของตัวเอง: แต่ละโปรเจกต์อาจมีขั้นตอนการสร้างของตัวเอง:
- โครงการ Vue: `npm run build` เพื่อสร้าง bundle สำหรับโปรดักชัน - โปรเจกต์ Vue: `npm run build` สร้าง bundle สำหรับโปรดักชัน
- โครงการสแตติก: ไม่มีขั้นตอนการสร้าง บริการไฟล์โดยตรง - โปรเจกต์สแตติก: ไม่มีขั้นตอนสร้าง เสิร์ฟไฟล์โดยตรง
## แนวทางการส่ง Pull Request ## แนวทางการส่ง Pull Request
### รูปแบบชื่อเรื่อง ### รูปแบบชื่อหัวข้อ
ใช้ชื่อเรื่องที่ชัดเจนและบอกบริเวณการเปลี่ยนแปลง: ใช้ชื่อหัวข้อที่ชัดเจนและบ่งบอกพื้นที่การเปลี่ยนแปลง:
- `[Quiz-app] เพิ่มแบบทดสอบใหม่สำหรับบทเรียน X` - `[Quiz-app] เพิ่มแบบทดสอบใหม่สำหรับบทเรียนที่ X`
- `[Lesson-3] แก้ไขคำผิดในโครงการ terrarium` - `[Lesson-3] แก้ไขคำผิดในโปรเจกต์ terrarium`
- `[Translation] เพิ่มการแปลภาษาสเปนสำหรับบทเรียน 5` - `[Translation] เพิ่มการแปลภาษาสเปนสำหรับบทเรียนที่ 5`
- `[Docs] ปรับปรุงคำแนะนำการตั้งค่า` - `[Docs] ปรับปรุงคำแนะนำการตั้งค่า`
### การตรวจสอบที่จำเป็น ### การตรวจสอบที่ต้องทำก่อนส่ง
ก่อนส่ง PR:
1. **คุณภาพโค้ด**: 1. **คุณภาพโค้ด**:
- รัน `npm run lint` ในโฟลเดอร์โครงการที่ได้รับผลกระทบ - รัน `npm run lint` ในไดเรกทอรีโปรเจกต์ที่ได้รับผลกระทบ
- แก้ไขข้อผิดพลาดและคำเตือนทั้งหมด - แก้ไขข้อผิดพลาดและคำเตือนทั้งหมด
2. **การตรวจสอบการสร้าง**: 2. **การตรวจสอบการสร้าง**:
- รัน `npm run build` หากใช้งานได้ - รัน `npm run build` หากมี
- ตรวจสอบว่าไม่มีข้อผิดพลาดในการสร้าง - แน่ใจว่าไม่มีข้อผิดพลาดการสร้าง
3. **การตรวจสอบลิงก์**: 3. **การตรวจสอบลิงก์**:
- ทดสอบลิงก์ markdown ทั้งหมด - ทดสอบลิงก์ markdown ทั้งหมด
- ยืนยันการอ้างอิงรูปภาพทำงานถูกต้อง - ตรวจสอบการอ้างอิงรูปภาพให้ถูกต้อง
4. **การตรวจสอบเนื้อหา**: 4. **การตรวจสอบเนื้อหา**:
- ตรวจทานการสะกดและไวยากรณ์ - ตรวจทานคำสะกดและไวยากรณ์
- ตรวจสอบว่าตัวอย่างโค้ดถูกต้องและเหมาะสมกับการศึกษา - ตรวจสอบว่าโค้ดตัวอย่างถูกต้องและเน้นการศึกษา
- ยืนยันว่าการแปลรักษาความหมายเดิม - ตรวจสอบการแปลว่ายังคงความหมายเดิม
### ข้อกำหนดการร่วมมือ ### ข้อกำหนดการมีส่วนร่วม
- ตกลงยอมรับ Microsoft CLA (ตรวจสอบอัตโนมัติใน PR แรก) - ยอมรับข้อตกลง Microsoft CLA (ตรวจสอบอัตโนมัติใน PR แรก)
- ปฏิบัติตาม [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) - ปฏิบัติตาม [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- ดู [CONTRIBUTING.md](./CONTRIBUTING.md) สำหรับแนวทางรายละเอียด - ดูรายละเอียดใน [CONTRIBUTING.md](./CONTRIBUTING.md)
- อ้างอิงหมายเลข issue ในคำอธิบาย PR หากเกี่ยวข้อง - อ้างเลขที่ issue ในคำอธิบาย PR ถ้ามี
### กระบวนการตรวจสอบ ### กระบวนการตรวจสอบ
- PR ได้รับการตรวจโดยผู้ดูแลและชุมชน - PR จะถูกตรวจสอบโดยผู้ดูแลและชุมชน
- ให้ความสำคัญกับความชัดเจนทางการศึกษา - ให้ความสำคัญกับความชัดเจนทางการศึกษา
- ตัวอย่างโค้ดต้องเป็นไปตามแนวทางปฏิบัติที่ดีที่สุดปัจจุบัน - ตัวอย่างโค้ดควรปฏิบัติตามแนวทางปัจจุบัน
- การแปลได้รับการตรวจสอบเพื่อความถูกต้องและเหมาะสมทางวัฒนธรรม - ตรวจสอบการแปลในแง่ความถูกต้องและเหมาะสมทางวัฒนธรรม
## ระบบแปลภาษา ## ระบบแปลภาษา
### การแปลอัตโนมัติ ### การแปลอัตโนมัติ
- ใช้ GitHub Actions กับ workflow co-op-translator - ใช้ GitHub Actions พร้อม workflow co-op-translator
- แปลเป็น 50+ ภาษาโดยอัตโนมัติ - แปลอัตโนมัติไปยังมากกว่า 50 ภาษา
- ไฟล์ต้นทางในไดเรกทอรีหลัก - ไฟล์ต้นทางอยู่ในไดเรกทอรีหลัก
- ไฟล์แปลในโครงสร้าง `translations/{language-code}/` - ไฟล์แปลอยู่ในโครงสร้าง `translations/{language-code}/`
### การเพิ่มการแปลด้วยตนเอง ### การเพิ่มการแปลด้วยตนเอง
1. ค้นหาไฟล์ใน `translations/{language-code}/` 1. ค้นหาไฟล์ใน `translations/{language-code}/`
2. ปรับปรุงโดยรักษาโครงสร้างไว้ 2. แก้ไขปรับปรุงพร้อมรักษาโครงสร้างเดิม
3. ตรวจสอบให้ตัวอย่างโค้ดยังคงทำงานได้ 3. ตรวจสอบให้ตัวอย่างโค้ดยังใช้งานได้
4. ทดสอบเนื้อหาแบบทดสอบในท้องถิ่นถ้ามี 4. ทดสอบเนื้อหาแบบทดสอบท้องถิ่น
### เมตาดาต้าแปลภาษา ### เมตาดาต้าการแปล
ไฟล์แปลจะมีหัวข้อเมตาดาต้าดังนี้: ไฟล์ที่แปลมีเมตาดาต้าหัวข้อ:
```markdown ```markdown
<!-- <!--
CO_OP_TRANSLATOR_METADATA: CO_OP_TRANSLATOR_METADATA:
@ -293,54 +291,54 @@ CO_OP_TRANSLATOR_METADATA:
### ปัญหาทั่วไป ### ปัญหาทั่วไป
**แอปแบบทดสอบไม่เริ่มทำงาน**: **แอป quiz เริ่มทำงานไม่ได้**:
- ตรวจสอบเวอร์ชัน Node.js (แนะนำ v14+) - ตรวจสอบเวอร์ชัน Node.js (แนะนำ v14+)
- ลบ `node_modules` และ `package-lock.json` แล้วรัน `npm install` ใหม่ - ลบ `node_modules` และ `package-lock.json` แล้วรัน `npm install` ใหม่
- ตรวจสอบปัญหาพอร์ตซ้ำซ้อน (ค่าเริ่มต้น: Vite ใช้พอร์ต 5173) - ตรวจสอบพอร์ต (ดีฟอลต์ Vite ใช้พอร์ต 5173)
**เซิร์ฟเวอร์ API ไม่เริ่มทำงาน**: **เซิร์ฟเวอร์ API ไม่เริ่มทำงาน**:
- ตรวจสอบเวอร์ชัน Node.js ต้อง>=10 - ตรวจสอบเวอร์ชัน Node.js ให้ตรงตามขั้นต่ำ (node >=10)
- ตรวจสอบว่าพอร์ตถูกใช้งานอยู่หรือไม่ - ตรวจสอบว่าพอร์ตถูกใช้งานแล้วหรือไม่
- ติดตั้ง dependencies ทุกตัวด้วย `npm install` - ตรวจสอบว่าติดตั้ง dependencies ด้วย `npm install` ครบ
**ส่วนขยายเบราว์เซอร์โหลดไม่ได้**: **ส่วนขยายเบราว์เซอร์โหลดไม่ขึ้น**:
- ตรวจสอบว่า manifest.json ถูกฟอร์แมตอย่างถูกต้อง - ตรวจสอบว่า manifest.json ฟอร์แมตถูกต้อง
- ตรวจดูคอนโซลเบราว์เซอร์ว่ามีข้อผิดพลาดหรือไม่ - ดูคอนโซลเบราว์เซอร์หาข้อผิดพลาด
- ปฏิบัติตามคำแนะนำการติดตั้งส่วนขยายสำหรับเบราว์เซอร์นั้น - ปฏิบัติตามคำแนะนำการติดตั้งสำหรับเบราว์เซอร์แต่ละตัว
**ปัญหาโครงการแชท Python**: **ปัญหาโปรเจกต์แชท Python**:
- ให้แน่ใจว่าได้ติดตั้งแพ็คเกจ OpenAI: `pip install openai` - ตรวจสอบว่าแพ็คเกจ OpenAI ติดตั้งแล้ว: `pip install openai`
- ตรวจสอบว่าตัวแปรสภาพแวดล้อม GITHUB_TOKEN ถูกต้งค่าแล้ว - ตรวจสอบว่า setting ตัวแปรสภาพแวดล้อม GITHUB_TOKEN ถูกต้
- ตรวจสอบสิทธิ์เข้าถึง GitHub Models - ตรวจสอบสิทธิ์การเข้าถึง GitHub Models
**Docsify ไม่ให้บริการเอกสาร**: **Docsify ไม่ให้บริการเอกสาร**:
- ติดตั้ง docsify-cli แบบ global: `npm install -g docsify-cli` - ติดตั้ง docsify-cli ทั่วโลก: `npm install -g docsify-cli`
- รันจากโฟลเดอร์รากของคลัง - รันจากไดเรกทอรีรากของที่เก็บ
- ตรวจสอบว่าไฟล์ `docs/_sidebar.md` มีอยู่ - ตรวจสอบว่าไฟล์ `docs/_sidebar.md` มีอยู่
### เคล็ดลับสภาพแวดล้อมการพัฒนา ### เคล็ดลับสภาพแวดล้อมพัฒนา
- ใช้ VS Code พร้อมส่วนขยาย Live Server สำหรับโครงการ HTML - ใช้ VS Code พร้อมส่วนขยาย Live Server สำหรับโปรเจกต์ HTML
- ติดตั้งส่วนขยาย ESLint และ Prettier เพื่อความสม่ำเสมอในการจัดรูปแบบ - ติดตั้งส่วนขยาย ESLint และ Prettier เพื่อรูปแบบที่สอดคล้องกัน
- ใช้ DevTools ของเบราว์เซอร์สำหรับการดีบัก JavaScript - ใช้ DevTools ของเบราว์เซอร์สำหรับดีบัก JavaScript
- สำหรับโครงการ Vue ให้ติดตั้งส่วนขยาย Vue DevTools ในเบราว์เซอร์ - สำหรับโปรเจกต์ Vue, ติดตั้ง Vue DevTools ส่วนขยายเบราว์เซอร์
### ข้อควรพิจารณาด้านประสิทธิภาพ ### พิจารณาประสิทธิภาพ
- ไฟล์แปลจำนวนมาก (50+ ภาษา) ทำให้โคลนเต็มขนาดใหญ่ - มีไฟล์แปลจำนวนมาก (50+ ภาษา) ทำให้การโคลนทั้งหมดใหญ่
- ใช้ shallow clone หากทำงานเฉพาะเนื้อหา: `git clone --depth 1` - ใช้ shallow clone หากทำงานเฉพาะเนื้อหา: `git clone --depth 1`
- ยกเว้นการแปลออกจากการค้นหาเมื่อทำงานกับเนื้อหาอังกฤษ - ยกเว้นการค้นหาในส่วนแปลเมื่อทำงานกับเนื้อหาอังกฤษ
- กระบวนการสร้าง อาจช้าครั้งแรก (npm install, Vite build) - ขั้นตอนการสร้างอาจช้าในรันแรก (npm install, สร้าง Vite)
## ข้อควรระวังด้านความปลอดภัย ## การพิจารณาด้านความปลอดภัย
### ตัวแปรสภาพแวดล้อม ### ตัวแปรสภาพแวดล้อม
- ห้ามส่งคีย์ API ขึ้นบนคลัง - ห้าม commit คีย์ API ลงที่เก็บ
- ใช้ไฟล์ `.env` (มีอยู่ใน `.gitignore` แล้ว) - ใช้ไฟล์ `.env` (ซึ่งมีใน `.gitignore` แล้ว)
- บันทึกตัวแปรสภาพแวดล้อมที่จำเป็นไว้ใน README โครงการ - อธิบายตัวแปรที่ต้องมีใน README ของโปรเจกต์
### โครงการ Python ### โปรเจกต์ Python
- ใช้ virtual environments: `python -m venv venv` - ใช้ virtual environments: `python -m venv venv`
- อัปเดต dependencies อย่างสม่ำเสมอ - อัปเดต dependencies อย่างสม่ำเสมอ
@ -348,61 +346,60 @@ CO_OP_TRANSLATOR_METADATA:
### การเข้าถึง GitHub Models ### การเข้าถึง GitHub Models
- ต้องใช้ Personal Access Tokens (PAT) สำหรับ GitHub Models - ต้องใช้ Personal Access Tokens (PAT)
- เก็บโทเค็นเป็นตัวแปรสภาพแวดล้อม - ควรเก็บโทเค็นเป็นตัวแปรสภาพแวดล้อม
- ห้ามส่งโทเค็นหรือข้อมูลเข้าสู่คลั - ห้าม commit โทเค็นหรือข้อมูลรับรอ
## หมายเหตุเพิ่มเติม ## หมายเหตุเพิ่มเติม
### กลุ่มเป้าหมาย ### กลุ่มเป้าหมาย
- ผู้เริ่มต้นใหม่ในการพัฒนาเว็บ - ผู้เริ่มต้นเรียนรู้การพัฒนาเว็บโดยสมบูรณ์
- นักเรียนและผู้เรียนด้วยตนเอง - นักเรียนและผู้เรียนด้วยตนเอง
- ครูใช้หลักสูตรในห้องเรียน - ครูผู้ใช้หลักสูตรในชั้นเรียน
- เนื้อหาออกแบบสำหรับการเข้าถึงและเสริมทักษะทีละขั้ - เนื้อหาออกแบบเพื่อความเข้าถึงง่ายและการพัฒนาทักษะอย่างเป็นขั้นตอ
### ปรัชญาการศึกษา ### ปรัชญาการศึกษา
- วิธีการเรียนรู้ด้วยโครงการ - การเรียนรู้ผ่านโปรเจกต์
- ตรวจสอบความรู้บ่อยครั้ง (แบบทดสอบ) - การตรวจสอบความรู้บ่อย (แบบทดสอบ)
- แบบฝึกหัดการเขียนโค้ดเชิงปฏิบัติ - การฝึกเขียนโค้ดเชิงปฏิบัติ
- ตัวอย่างการใช้งานจริง - ตัวอย่างการใช้งานจริง
- มุ่งเน้นพื้นฐานก่อนใช้เฟรมเวิร์ก - เน้นพื้นฐานก่อนใช้เฟรมเวิร์ก
### การดูแลรักษาคลัง ### การดูแลรักษาที่เก็บ
- ชุมชนผู้เรียนและผู้ร่วมสร้างที่สดใส - ชุมชนผู้เรียนและผู้มีส่วนร่วมที่แอคทีฟ
- อัปเดต dependencies และเนื้อหาเป็นประจำ - อัปเดต dependencies และเนื้อหาเป็นระยะ
- ติดตามปัญหาและอภิปรายโดยผู้ดูแล - ติดตาม issues และการสนทนาโดยผู้ดูแล
- การอัปเดตแปลภาษาอัตโนมัติผ่าน GitHub Actions - อัปเดตการแปลอัตโนมัติผ่าน GitHub Actions
### แหล่งข้อมูลที่เกี่ยวข้อง ### แหล่งข้อมูลที่เกี่ยวข้อง
- [โมดูล Microsoft Learn](https://docs.microsoft.com/learn/) - [Microsoft Learn modules](https://docs.microsoft.com/learn/)
- [ทรัพยากร Student Hub](https://docs.microsoft.com/learn/student-hub/) - [Student Hub resources](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) แนะนำสำหรับผู้เรียน - แนะนำ [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) สำหรับผู้เรียน
- คอร์สเพิ่มเติม: AI สร้างสรรค์, วิทยาศาสตร์ข้อมูล, ML, หลักสูตร IoT - หลักสูตรเพิ่มเติม: AI สร้างสรรค์, Data Science, ML, IoT
### การทำงานกับโครงการเฉพาะ ### การทำงานกับโปรเจกต์เฉพาะ
สำหรับคำแนะนำโดยละเอียดเกี่ยวกับโครงการเฉพาะ ดูไฟล์ README ใน: สำหรับคำแนะนำโดยละเอียดของแต่ละโปรเจกต์ ให้ดูไฟล์ README ใน:
- `quiz-app/README.md` - แอป quiz Vue 3 - `quiz-app/README.md` - แอป quiz Vue 3
- `7-bank-project/README.md` - แอปธนาคารพร้อมระบบยืนยันตัวตน - `7-bank-project/README.md` - แอปธนาคารพร้อมระบบยืนยันตัวตน
- `5-browser-extension/README.md` - การพัฒนาส่วนขยายเบราว์เซอร์ - `5-browser-extension/README.md` - การพัฒนาส่วนขยายเบราว์เซอร์
- `6-space-game/README.md` - การพัฒนาเกมด้วย Canvas - `6-space-game/README.md` - การพัฒนาเกมแบบใช้ Canvas
- `9-chat-project/README.md` - โครงการผู้ช่วยแชท AI - `9-chat-project/README.md` - โปรเจกต์ผู้ช่วยแชท AI
### โครงสร้าง Monorepo ### โครงสร้าง Monorepo
แม้ว่าไม่ใช่ monorepo แบบดั้งเดิม แต่คลังนี้ประกอบด้วยโครงการอิสระหลายโครงการ: แม้จะไม่ใช่ monorepo แบบดั้งเดิม แต่ที่เก็บนี้มีโปรเจกต์อิสระหลายตัว:
- แต่ละบทเรียนแยกตัว - บทเรียนแต่ละบทเป็นอิสระ
- โครงการไม่แชร์ dependencies - โปรเจกต์ไม่แชร์ dependencies กัน
- ทำงานกับโครงการรายตัวโดยไม่กระทบโครงการอื่ - ทำงานกับโปรเจกต์ใดโปรเจกต์หนึ่งไม่กระทบกั
- โคลนคลังทั้งหมดเพื่อประสบการณ์หลักสูตรครบถ้วน - โคลนที่เก็บทั้งหมดเพื่อประสบการณ์หลักสูตรครบถ้วน
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ข้อจำกัดความรับผิดชอบ**: **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะมุ่งมั่นเพื่อความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อน เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลโดยมืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดจากการใช้การแปลนี้
เอกสารฉบับนี้ได้รับการแปลโดยใช้บริการแปลด้วย AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่น่าเชื่อถือที่สุด สำหรับข้อมูลที่มีความสำคัญ ควรใช้บริการแปลโดยมนุษย์ผู้เชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดใด ๆ ที่เกิดจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,200 +12,210 @@
# การพัฒนาเว็บสำหรับผู้เริ่มต้น - หลักสูตร # การพัฒนาเว็บสำหรับผู้เริ่มต้น - หลักสูตร
เรียนรู้พื้นฐานของการพัฒนาเว็บกับหลักสูตรครอบคลุม 12 สัปดาห์ของเราโดย Microsoft Cloud Advocates แต่ละบทเรียนทั้ง 24 บทเรียนจะเจาะลึก JavaScript, CSS, และ HTML ผ่านโปรเจกต์ปฏิบัติ เช่น เทอร์ราเรียม, ส่วนขยายเบราว์เซอร์ และเกมอวกาศ พร้อมส่วนร่วมกับแบบทดสอบ, การสนทนา และงานปฏิบัติ พัฒนาทักษะและเพิ่มประสิทธิภาพการเก็บความรู้ของคุณด้วยวิธีการสอนผ่านโปรเจกต์ที่ได้ผล เริ่มต้นเส้นทางการเขียนโค้ดของคุณวันนี้! เรียนรู้พื้นฐานของการพัฒนาเว็บด้วยคอร์ส 12 สัปดาห์แบบครบวงจรโดย Microsoft Cloud Advocates แต่ละบทเรียน 24 บท จะเจาะลึก JavaScript, CSS และ HTML ผ่านโครงการทำมือเช่น เทอร์ราเรียม, ส่วนขยายเบราว์เซอร์ และเกมอวกาศ มส่วนร่วมกับแบบทดสอบ, การสนทนา และงานปฏิบัติ เพิ่มพูนทักษะของคุณและเพิ่มประสิทธิภาพในการจดจำความรู้ด้วยวิธีการสอนที่มุ่งเน้นโครงการ เริ่มต้นเส้นทางการเขียนโค้ดของคุณวันนี้!
เข้าร่วมชุมชน Discord Azure AI Foundry เข้าร่วมชุมชน Azure AI Foundry Discord
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
ทำตามขั้นตอนเหล่านี้เพื่อเริ่มใช้ทรัพยากรเหล่านี้: ทำตามขั้นตอนเหล่านี้เพื่อเริ่มต้นใช้ทรัพยากรเหล่านี้:
1. **Fork ที่เก็บ**: คลิก [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork) 1. **ForkRepository**: คลิก [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
2. **โคลนที่เก็บ**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **CloneRepository**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**เข้าร่วม Azure AI Foundry Discord และพบปะผู้เชี่ยวชาญและนักพัฒนาร่วมกัน**](https://discord.com/invite/ByRwuEEgH4) 3. [**เข้าร่วม Azure AI Foundry Discord และพบปะผู้เชี่ยวชาญและนักพัฒนาร่วมกัน**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 การสนับสนุนหลายภาษา ### 🌐 รองรับหลายภาษา
#### สนับสนุนผ่าน GitHub Action (อัตโนมัติ & อัปเดตเสมอ) #### รองรับผ่าน GitHub Action (ทำงานอัตโนมัติ & เป็นปัจจุบันเสมอ)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](./README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) [Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](./README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **ต้องการโคลนแบบโลคัล?** > **ต้องการโคลนแบบโลคัล?**
>
> ที่เก็บนี้มีการแปลมากกว่า 50 ภาษา ซึ่งจะเพิ่มขนาดการดาวน์โหลดอย่างมาก หากต้องการโคลนโดยไม่มีการแปล ให้ใช้ sparse checkout: > คลังนี้มีการแปลภาษามากกว่า 50 ภาษา ซึ่งเพิ่มขนาดการดาวน์โหลดอย่างมาก หากต้องการโคลนโดยไม่รวมการแปล ให้ใช้ sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash > ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git > git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git
> cd Web-Dev-For-Beginners > cd Web-Dev-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ``` > ```
> ซึ่งจะให้คุณทุกอย่างที่จำเป็นสำหรับหลักสูตรด้วยการดาวน์โหลดที่รวดเร็วขึ้นมาก >
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git
> cd Web-Dev-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> นี้จะให้คุณทุกอย่างที่จำเป็นสำหรับการทำคอร์สด้วยความเร็วดาวน์โหลดที่เร็วขึ้นมาก
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**ถ้าคุณต้องการให้เพิ่มการสนับสนุนภาษาแปลอื่น ๆ รายการภาษาที่สนับสนุนอยู่ [ที่นี่](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)** **หากคุณต้องการให้รองรับภาษาการแปลเพิ่มเติม ติดตามได้ที่ [นี่](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) [![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
#### 🧑‍🎓 _คุณเป็นนักเรียนหรือไม่?_ #### 🧑‍🎓 _คุณเป็นนักเรียนใช่ไหม?_
เยี่ยมชม [**หน้า Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) ซึ่งคุณจะพบทรัพยากรสำหรับผู้เริ่มต้น, ชุดนักเรียน และวิธีรับบัตรกำนัลประกาศนียบัตรฟรี นี่คือหน้าที่คุณควรกดบุ๊กมาร์กและตรวจสอบเป็นระยะเนื่องจากเราจะเปลี่ยนเนื้อหาทุกเดือน เยี่ยมชม [**หน้า Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) ที่จะมีแหล่งข้อมูลสำหรับผู้เริ่มต้น ชุดนักเรียน และวิธีการรับบัตรกำนัลใบประกาศนียบัตรฟรี หน้าเว็บนี้คือหน้าที่คุณควรบันทึกไว้และตรวจสอบเป็นระยะเพราะเราจะเปลี่ยนเนื้อหาทุกเดือน
### 📣 ประกาศ - ความท้าทายโหมด GitHub Copilot Agent ใหม่ให้ทำ! ### 📣 ประกาศ - ความท้าทายแบบ GitHub Copilot Agent โหมดใหม่เพื่อทำให้เสร็จ!
เพิ่มความท้าทายใหม่ ให้ค้นหา "GitHub Copilot Agent Challenge 🚀" ในบทส่วนใหญ่ เป็นความท้าทายใหม่สำหรับคุณในการใช้ GitHub Copilot และโหมด Agent หากคุณไม่เคยใช้โหมด Agent มาก่อน โหมดนี้สามารถไม่เพียงแค่สร้างข้อความแต่ยังสามารถสร้างและแก้ไขไฟล์, รันคำสั่ง และอื่น ๆ เพิ่มความท้าทายใหม่ ค้นหา "GitHub Copilot Agent Challenge 🚀" ในเกือบทุกบท นี่คือความท้าทายใหม่สำหรับคุณในการทำให้เสร็จโดยใช้ GitHub Copilot และโหมด Agent หากคุณไม่เคยใช้โหมด Agent มาก่อน มันสามารถไม่เพียงแต่สร้างข้อความ แต่ยังสร้างและแก้ไขไฟล์ รันคำสั่ง และอื่น ๆ ได้
### 📣 ประกาศ - _โปรเจกต์ใหม่ที่สร้างโดย Generative AI_ ### 📣 ประกาศ - _โครงการใหม่ที่ใช้ Generative AI_
เพิ่มโปรเจกต์ AI Assistant ใหม่เพิ่งเพิ่มเข้ามา ลองดูได้ที่ [โปรเจกต์](./9-chat-project/README.md) เพิ่มโครงการผู้ช่วย AI ใหม่ ตรวจสอบได้ที่ [project](./9-chat-project/README.md)
### 📣 ประกาศ - _หลักสูตรใหม่_ สำหรับ Generative AI สำหรับ JavaScript เพิ่งเปิดตัว ### 📣 ประกาศ - _หลักสูตรใหม่_ เกี่ยวกับ Generative AI สำหรับ JavaScript เพิ่งปล่อยออกมา
อย่าพลาดหลักสูตร Generative AI ใหม่ของเรา! อย่าพลาดหลักสูตรใหม่ของเราใน Generative AI!
เยี่ยมชม [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) เพื่อเริ่มต้น! เยี่ยมชม [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) เพื่อเริ่มต้น!
![Background](../../translated_images/th/background.148a8d43afde5730.webp) ![Background](../../translated_images/th/background.148a8d43afde5730.webp)
- บทเรียนครอบคลุมทุกอย่างตั้งแต่พื้นฐานจนถึง RAG - บทเรียนครอบคลุมตั้งแต่พื้นฐานถึง RAG
- โต้ตอบกับตัวละครประวัติศาสตร์โดยใช้ GenAI และแอปคู่ของเรา - มีปฏิสัมพันธ์กับตัวละครในประวัติศาสตร์โดยใช้ GenAI และแอปคู่หูของเรา
- เนื้อเรื่องสนุกและน่าติดตาม คุณจะได้เดินทางข้ามเวลา! - เรื่องราวสนุกสนานและน่าติดตาม คุณจะได้เดินทางข้ามเวลา!
![character](../../translated_images/th/character.5c0dd8e067ffd693.webp) ![character](../../translated_images/th/character.5c0dd8e067ffd693.webp)
แต่ละบทเรียนมีการมอบหมายงานให้ทำ การตรวจเช็คความรู้ และความท้าทายเพื่อแนะนำการเรียนรู้หัวข้อต่าง ๆ เช่น:
แต่ละบทเรียนประกอบด้วยงานที่ต้องทำ, การตรวจสอบความรู้ และความท้าทายเพื่อแนะนำการเรียนรู้หัวข้อต่าง ๆ เช่น: - การเขียนพรอมต์และการออกแบบพรอมต์
- การตั้งค่าและออกแบบ prompt - การสร้างแอปข้อความและภาพ
- การสร้างแอปข้อความและรูปภาพ
- แอปค้นหา - แอปค้นหา
เยี่ยมชม [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) เพื่อเริ่มต้น! เยี่ยมชม [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) เพื่อเริ่มต้น!
## 🌱 การเริ่มต้นใช้งาน ## 🌱 การเริ่มต้น
> **ครูผู้สอน** เราได้ [รวมคำแนะนำ](for-teachers.md) เกี่ยวกับวิธีใช้หลักสูตรนี้ เราต้องการรับคำติชมจากคุณ [ในฟอรัมอภิปรายของเรา](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! > **สำหรับครูผู้สอน** เรามี [คำแนะนำบางส่วน](for-teachers.md) เกี่ยวกับวิธีใช้หลักสูตรนี้ เราต้องการรับฟังความคิดเห็นของคุณ [ในฟอรัมสนทนาของเรา](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[ผู้เรียน](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)** สำหรับแต่ละบทเรียน เริ่มด้วยแบบทดสอบก่อนบรรยาย แล้วอ่านเนื้อหาบรรยาย, ทำกิจกรรมต่าง ๆ และตรวจสอบความเข้าใจด้วยแบบทดสอบหลังบรรยาย **[ผู้เรียน](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)** สำหรับแต่ละบทเรียน เริ่มด้วยแบบทดสอบก่อนบรรยาย จากนั้นอ่านเนื้อหาบทเรียน ทำกิจกรรมต่าง ๆ และตรวจสอบความเข้าใจด้วยแบบทดสอบหลังบรรยาย
เพื่อเพิ่มประสบการณ์การเรียนรู้ของคุณ เชื่อมต่อกับเพื่อนร่วมชั้นเพื่อทำโปรเจกต์ร่วมกัน! เราส่งเสริมการสนทนาใน [ฟอรัมอภิปราย](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) ซึ่งทีมผู้ดูแลของเราจะพร้อมตอบคำถามของคุณ เพื่อเพิ่มประสบการณ์การเรียนรู้ของคุณ ให้เชื่อมต่อกับเพื่อนร่วมชั้นเพื่อทำโครงการด้วยกัน! การสนทนาได้รับการสนับสนุนใน [ฟอรัมสนทนา](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) ที่ซึ่งทีมผู้ควบคุมของเราจะพร้อมตอบคำถามของคุณ
เพื่อการศึกษาต่อเนื่อง เราขอแนะนำให้สำรวจ [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) สำหรับเนื้อหาเพิ่มเติม เพื่อเสริมความรู้ของคุณ เราขอแนะนำอย่างยิ่งให้สำรวจ [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) สำหรับวัสดุการศึกษาเพิ่มเติม
### 📋 การตั้งค่าสภาพแวดล้อมของคุณ ### 📋 การตั้งค่าสภาพแวดล้อมของคุณ
หลักสูตรนี้มีสภาพแวดล้อมสำหรับการพัฒนาพร้อมให้ใช้งาน! เมื่อต้องการเริ่มต้น คุณสามารถเลือกใช้หลักสูตรนี้ใน [Codespace](https://github.com/features/codespaces/) (_สภาพแวดล้อมบนเบราว์เซอร์โดยไม่ต้องติดตั้ง_) หรือในเครื่องของคุณโดยใช้โปรแกรมแก้ไขข้อความ เช่น [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) หลักสูตรนี้มีสภาพแวดล้อมการพัฒนาพร้อมใช้งาน! เมื่อเริ่มต้น คุณสามารถเลือกที่จะรันหลักสูตรใน [Codespace](https://github.com/features/codespaces/) (_สภาพแวดล้อมผ่านเบราว์เซอร์ที่ไม่ต้องติดตั้งใด ๆ_) หรือรันบนคอมพิวเตอร์ของคุณโดยใช้ตัวแก้ไขข้อความเช่น [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
#### สร้างที่เก็บของคุณ #### สร้าง repository ของคุณ
เพื่อความสะดวกในการบันทึกงานของคุณ ควรสร้างสำเนาของที่เก็บนี้โดยคลิกปุ่ม **Use this template** ที่ด้านบนของหน้าเพื่อสร้างที่เก็บใหม่ในบัญชี GitHub ของคุณที่มีสำเนาหลักสูตรนี้ เพื่อให้คุณบันทึกงานของคุณได้ง่าย ขอแนะนำให้คุณสร้างสำเนาของ repository นี้โดยคลิกปุ่ม **Use this template** ที่ด้านบนของหน้า ซึ่งจะสร้าง repository ใหม่ในบัญชี GitHub ของคุณโดยมีสำเนาหลักสูตรนี้
ทำตามขั้นตอนเหล่านี้: ทำตามขั้นตอนเหล่านี้:
1. **Fork ที่เก็บ**: คลิกที่ปุ่ม "Fork" ที่มุมบนขวาของหน้านี้ 1. **Fork Repository**: คลิกปุ่ม "Fork" ที่มุมขวาบนของหน้านี้
2. **โคลนที่เก็บ**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Clone Repository**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### การใช้งานหลักสูตรใน Codespace #### รันหลักสูตรใน Codespace
ในสำเนาที่เก็บของคุณที่สร้างไว้ คลิกปุ่ม **Code** และเลือก **Open with Codespaces** ขั้นตอนนี้จะสร้าง Codespace ใหม่ให้คุณทำงานได้ ในสำเนาของ repository ที่คุณสร้าง คลิกปุ่ม **Code** และเลือก **Open with Codespaces** ซึ่งจะสร้าง Codespace ใหม่ให้คุณทำงาน
![Codespace](../../translated_images/th/createcodespace.0238bbf4d7a8d955.webp) ![Codespace](../../translated_images/th/createcodespace.0238bbf4d7a8d955.webp)
#### การใช้งานหลักสูตรในเครื่องของคุณ #### รันหลักสูตรบนคอมพิวเตอร์ของคุณเอง
ในการรันหลักสูตรนี้บนเครื่องของคุณ คุณจะต้องมีโปรแกรมแก้ไขข้อความ, เบราว์เซอร์ และเครื่องมือบรรทัดคำสั่ง บทเรียนแรกของเรา [แนะนำภาษาโปรแกรมและเครื่องมือ](../../1-getting-started-lessons/1-intro-to-programming-languages) จะนำทางคุณเลือกเครื่องมือที่เหมาะสม
เราขอแนะนำให้ใช้ [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ซึ่งมี [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) ในตัว คุณสามารถดาวน์โหลด Visual Studio Code [ที่นี่](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
การรันหลักสูตรนี้บนคอมพิวเตอร์ของคุณ คุณจะต้องมีตัวแก้ไขข้อความ, เบราว์เซอร์ และเครื่องมือบรรทัดคำสั่ง บทเรียนแรกของเรา, [บทนำสู่ภาษาโปรแกรมและเครื่องมือ](../../1-getting-started-lessons/1-intro-to-programming-languages), จะแนะนำตัวเลือกต่าง ๆ สำหรับเครื่องมือเหล่านี้เพื่อให้คุณเลือกใช้ที่เหมาะสมกับคุณ
1. โคลนที่เก็บของคุณลงบนเครื่องของคุณได้โดยคลิกที่ปุ่ม **Code** และคัดลอก URL: คำแนะนำของเราคือให้ใช้ [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) เป็นตัวแก้ไขของคุณ ซึ่งมี [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) ในตัว คุณสามารถดาวน์โหลด Visual Studio Code ได้ที่นี่ [here](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
1. โคลนที่เก็บของคุณไปยังคอมพิวเตอร์ของคุณ คุณสามารถทำได้โดยการคลิกปุ่ม **Code** และคัดลอก URL:
[CodeSpace](./images/createcodespace.png) [CodeSpace](./images/createcodespace.png)
จากนั้น เปิด [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) ภายใน [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) และรันคำสั่งต่อไปนี้ โดยแทนที่ `<your-repository-url>` ด้วย URL ที่คุณเพิ่งคัดลอกมา: จากนั้น เปิด [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) ภายใน [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) และรันคำสั่งต่อไปนี้ โดยแทนที่ `<your-repository-url>` ด้วย URL ที่คุณเพิ่งคัดลอกมา:
```bash ```bash
git clone <your-repository-url> git clone <your-repository-url>
``` ```
2. เปิดโฟลเดอร์ใน Visual Studio Code คุณสามารถทำได้โดยคลิกที่ **File** > **Open Folder** และเลือกโฟลเดอร์ที่คุณเพิ่งโคลนมา 2. เปิดโฟลเดอร์ใน Visual Studio Code คุณสามารถทำได้โดยการคลิก **File** > **Open Folder** และเลือกโฟลเดอร์ที่คุณเพิ่งโคลนมา
> ส่วนขยายของ Visual Studio Code ที่แนะนำ: > ส่วนขยายที่แนะนำสำหรับ Visual Studio Code:
> >
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - เพื่อดูตัวอย่างหน้า HTML ภายใน Visual Studio Code > * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - เพื่อแสดงตัวอย่างหน้า HTML ภายใน Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - เพื่อช่วยให้คุณเขียนโค้ดได้เร็วขึ้น > * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - เพื่อช่วยให้คุณเขียนโค้ดได้เร็วขึ้น
## 📂 แต่ละบทเรียนประกอบด้วย: ## 📂 แต่ละบทเรียนประกอบด้วย:
- สเก็ตช์โน้ตเสริม (ถ้ามี) - สมุดสเก็ตช์ตัวเลือกเสริม
- วิดีโอเสริม (ถ้ามี) - วิดีโอเสริมหากต้องการ
- แบบทดสอบก่อนเรียน - แบบทดสอบทบทวก่อนบทเรียน
- บทเรียนเขียน - บทเรียนที่เขียนไว้
- สำหรับบทเรียนที่เป็นแบบโครงการ มีคำแนะนำทีละขั้นตอนในการสร้างโครงการ - สำหรับบทเรียนที่เป็นโครงงาน มีคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการสร้างโครงงาน
- การตรวจสอบความรู้ - การตรวจสอบความรู้
- ความท้าทาย - ความท้าทาย
- การอ่านเสริม - การอ่านเพิ่มเติมเสริม
- การบ้าน - การบ้าน
- [แบบทดสอบหลังเรียน](https://ff-quizzes.netlify.app/web/) - [แบบทดสอบหลังบทเรียน](https://ff-quizzes.netlify.app/web/)
> **หมายเหตุเกี่ยวกับแบบทดสอบ**: แบบทดสอบทั้งหมดอยู่ในโฟลเดอร์ Quiz-app รวม 48 แบบทดสอบ แต่ละแบบมีสามคำถาม คุณสามารถเข้าถึงได้ที่ [นี่](https://ff-quizzes.netlify.app/web/) แอปแบบทดสอบสามารถรันแบบออฟไลน์หรือเผยแพร่บน Azure ได้; โปรดปฏิบัติตามคำแนะนำในโฟลเดอร์ `quiz-app` > **หมายเหตุเกี่ยวกับแบบทดสอบ**: แบบทดสอบทั้งหมดอยู่ในโฟลเดอร์ Quiz-app มีแบบทดสอบทั้งหมด 48 ชุด ชุดละสามคำถาม คุณสามารถเข้าถึงได้ที่ [นี่](https://ff-quizzes.netlify.app/web/) ซึ่งแอปแบบทดสอบสามารถรันแบบออฟไลน์หรือปรับใช้บน Azure ได้; ทำตามคำแนะนำในโฟลเดอร์ `quiz-app`
## 🗃️ บทเรียน ## 🗃️ บทเรียน
| | ชื่อโปรเจค | แนวคิดที่สอน | เป้าหมายการเรียนรู้ | บทเรียนที่เชื่อมโยง | ผู้เขียน | | | ชื่อโครงการ | แนวคิดที่สอน | วัตถุประสงค์การเรียนรู้ | บทเรียนที่ลิงก์ | ผู้เขียน |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | | :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Getting Started | บทนำสู่การเขียนโปรแกรมและเครื่องมือที่ใช้ในการทำงาน | เรียนรู้พื้นฐานของภาษาการเขียนโปรแกรมส่วนใหญ่และเกี่ยวกับซอฟต์แวร์ที่ช่วยให้นักพัฒนามืออาชีพทำงานได้อย่างมีประสิทธิภาพ | [Intro to Programming Languages and Tools of the Trade](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine | | 01 | เริ่มต้นใช้งาน | บทนำสู่การเขียนโปรแกรมและเครื่องมือในงานพัฒนา | เรียนรู้พื้นฐานเบื้องต้นที่อยู่เบื้องหลังภาษาการเขียนโปรแกรมส่วนใหญ่ และเกี่ยวกับซอฟต์แวร์ที่ช่วยให้นักพัฒนามืออาชีพทำงานได้ | [Intro to Programming Languages and Tools of the Trade](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Getting Started | พื้นฐานของ GitHub รวมถึงการทำงานเป็นทีม | วิธีใช้ GitHub ในโปรเจคของคุณ วิธีการทำงานร่วมกับผู้อื่นบนฐานโค้ดเดียวกัน | [Intro to GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor | | 02 | เริ่มต้นใช้งาน | พื้นฐาน GitHub รวมถึงการทำงานเป็นทีม | วิธีการใช้ GitHub ในโครงการของคุณ วิธีการร่วมมือกับผู้อื่นในฐานข้อมูลโค้ด | [Intro to GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Getting Started | การเข้าถึง | เรียนรู้พื้นฐานของการเข้าถึงเว็บ | [Accessibility Fundamentals](./1-getting-started-lessons/3-accessibility/README.md) | Christopher | | 03 | เริ่มต้นใช้งาน | การเข้าถึง | เรียนรู้พื้นฐานการเข้าถึงเว็บ | [Accessibility Fundamentals](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Basics | ประเภทข้อมูลใน JavaScript | พื้นฐานของประเภทข้อมูลใน JavaScript | [Data Types](./2-js-basics/1-data-types/README.md) | Jasmine | | 04 | JS เบื้องต้น | ประเภทข้อมูลใน JavaScript | พื้นฐานของประเภทข้อมูลใน JavaScript | [Data Types](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Basics | ฟังก์ชันและเมธอด | เรียนรู้เกี่ยวกับฟังก์ชันและเมธอดเพื่อจัดการการไหลของตรรกะในแอปพลิเคชัน | [Functions and Methods](./2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher | | 05 | JS เบื้องต้น | ฟังก์ชันและเมธอด | เรียนรู้เกี่ยวกับฟังก์ชันและเมธอดเพื่อจัดการลอจิกของแอปพลิเคชัน | [Functions and Methods](./2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher |
| 06 | JS Basics | การตัดสินใจด้วย JS | เรียนรู้วิธีสร้างเงื่อนไขในโค้ดของคุณโดยใช้วิธีตัดสินใจ | [Making Decisions](./2-js-basics/3-making-decisions/README.md) | Jasmine | | 06 | JS เบื้องต้น | การตัดสินใจด้วย JS | เรียนรู้วิธีสร้างเงื่อนไขในโค้ดของคุณโดยใช้วิธีการตัดสินใจ | [Making Decisions](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Basics | อาเรย์และลูป | ทำงานกับข้อมูลโดยใช้ arrays และ loops ใน JavaScript | [Arrays and Loops](./2-js-basics/4-arrays-loops/README.md) | Jasmine | | 07 | JS เบื้องต้น | อาร์เรย์และลูป | ทำงานกับข้อมูลโดยใช้ arrays และ loops ใน JavaScript | [Arrays and Loops](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML ในการปฏิบัติ | สร้าง HTML เพื่อสร้างเทอร์ราเรียมออนไลน์ โดยเน้นการสร้างเลย์เอาต์ | [Introduction to HTML](./3-terrarium/1-intro-to-html/README.md) | Jen | | 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML ในการปฏิบัติ | สร้าง HTML เพื่อสร้าง Terrarium ออนไลน์ โดยเน้นการสร้างเลย์เอาต์ | [Introduction to HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS ในการปฏิบัติ | สร้าง CSS เพื่อจัดแต่งเทอร์ราเรียมออนไลน์ โดยเน้นพื้นฐานของ CSS รวมถึงการทำให้หน้าเว็บตอบสนอง | [Introduction to CSS](./3-terrarium/2-intro-to-css/README.md) | Jen | | 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS ในการปฏิบัติ | สร้าง CSS เพื่อจัดสไตล์ Terrarium ออนไลน์ โดยเน้นพื้นฐานของ CSS รวมถึงการทำให้หน้าเว็บตอบสนอง | [Introduction to CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, การจัดการ DOM | สร้าง JavaScript เพื่อให้เทอร์ราเรียมทำงานเป็นอินเทอร์เฟซลากและวาง โดยเน้นที่ closures และการจัดการ DOM | [JavaScript Closures, DOM manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | | 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, การจัดการ DOM | สร้าง JavaScript เพื่อให้ Terrarium ทำงานเป็นอินเทอร์เฟซลากและวาง โดยเน้นที่ closures และการจัดการ DOM | [JavaScript Closures, DOM manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | สร้างเกมพิมพ์ดีด | เรียนรู้วิธีใช้เหตุการณ์แป้นพิมพ์เพื่อควบคุมตรรกะของแอป JavaScript ของคุณ | [Event-Driven Programming](./4-typing-game/typing-game/README.md) | Christopher | | 11 | [Typing Game](./4-typing-game/solution/README.md) | สร้างเกมพิมพ์ | เรียนรู้วิธีใช้เหตุการณ์คีย์บอร์ดเพื่อควบคุมลอจิกของแอป JavaScript ของคุณ | [Event-Driven Programming](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | การทำงานกับเว็บเบราว์เซอร์ | เรียนรู้วิธีการทำงานของเบราว์เซอร์ ประวัติศาสตร์ และวิธีสร้างส่วนแรกของส่วนขยายเบราว์เซอร์ | [About Browsers](./5-browser-extension/1-about-browsers/README.md) | Jen | | 12 | [ส่วนขยายเบราว์เซอร์สีเขียว](./5-browser-extension/solution/README.md) | การทำงานกับเบราว์เซอร์ | เรียนรู้ว่าเบราว์เซอร์ทำงานอย่างไร ประวัติ และวิธีเริ่มต้นส่วนขยายเบราว์เซอร์ | [About Browsers](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | การสร้างฟอร์ม เรียก API และเก็บตัวแปรใน local storage | สร้างองค์ประกอบ JavaScript ของส่วนขยายเบราว์เซอร์ของคุณเพื่อเรียก API โดยใช้ตัวแปรที่เก็บใน local storage | [APIs, Forms, and Local Storage](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | | 13 | [ส่วนขยายเบราว์เซอร์สีเขียว](./5-browser-extension/solution/README.md) | สร้างฟอร์ม เรียก API และเก็บตัวแปรใน local storage | สร้างส่วนขยายเบราว์เซอร์ของคุณโดยใช้ JavaScript เพื่อเรียก API โดยใช้ตัวแปรที่เก็บใน local storage | [APIs, Forms, and Local Storage](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | กระบวนการพื้นหลังในเบราว์เซอร์, ประสิทธิภาพเว็บ | ใช้กระบวนการพื้นหลังของเบราว์เซอร์เพื่อจัดการไอคอนของส่วนขยาย; ศึกษาเกี่ยวกับประสิทธิภาพเว็บและการปรับแต่งบางอย่างเพื่อทำให้ | [Background Tasks and Performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | | 14 | [ส่วนขยายเบราว์เซอร์สีเขียว](./5-browser-extension/solution/README.md) | กระบวนการพื้นหลังในเบราว์เซอร์และประสิทธิภาพเว็บ | ใช้กระบวนการพื้นหลังของเบราว์เซอร์เพื่อจัดการไอคอนส่วนขยาย เรียนรู้เกี่ยวกับประสิทธิภาพเว็บและการปรับปรุงบางอย่างเพื่อทำให้ดีขึ้น | [Background Tasks and Performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | การพัฒนาเกมขั้นสูงเพิ่มเติมด้วย JavaScript | เรียนรู้เกี่ยวกับการสืบทอดโดยใช้ทั้ง Classes และ Composition และรูปแบบ Pub/Sub เพื่อเตรียมพร้อมสำหรับการสร้างเกม | [Introduction to Advanced Game Development](./6-space-game/1-introduction/README.md) | Chris | | 15 | [Space Game](./6-space-game/solution/README.md) | การพัฒนาเกมขั้นสูงด้วย JavaScript | เรียนรู้เกี่ยวกับ Inheritance โดยใช้ทั้ง Classes และ Composition และรูปแบบ Pub/Sub เพื่อเตรียมพร้อมสำหรับการสร้างเกม | [Introduction to Advanced Game Development](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | การวาดบน canvas | เรียนรู้เกี่ยวกับ Canvas API ที่ใช้สำหรับวาดองค์ประกอบบนหน้าจอ | [Drawing to Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris | | 16 | [Space Game](./6-space-game/solution/README.md) | การวาดบน canvas | เรียนรู้เกี่ยวกับ Canvas API ที่ใช้ในการวาดองค์ประกอบบนหน้าจอ | [Drawing to Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | การเคลื่อนย้ายองค์ประกอบบนหน้าจอ | ค้นพบว่าองค์ประกอบสามารถเคลื่อนที่โดยใช้พิกัดคาร์ทีเซียนและ Canvas API ได้อย่างไร | [Moving Elements Around](./6-space-game/3-moving-elements-around/README.md) | Chris | | 17 | [Space Game](./6-space-game/solution/README.md) | การเคลื่อนย้ายองค์ประกอบรอบจอ | ค้นพบว่าสิ่งต่าง ๆ สามารถเคลื่อนไหวโดยใช้พิกัดคาร์ทีเซียนและ Canvas API ได้อย่างไร | [Moving Elements Around](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | การตรวจจับการชน | ทำให้องค์ประกอบชนกันและตอบสนองต่อกันโดยใช้การกดปุ่ม แถมมีฟังก์ชัน cooldown เพื่อรักษาประสิทธิภาพของเกม | [Collision Detection](./6-space-game/4-collision-detection/README.md) | Chris | | 18 | [Space Game](./6-space-game/solution/README.md) | การตรวจจับการชน | ทำให้องค์ประกอบชนและตอบสนองต่อกันโดยใช้การกดปุ่ม keypress พร้อมกับฟังก์ชัน cooldown เพื่อประสิทธิภาพของเกม | [Collision Detection](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | การเก็บคะแนน | ทำการคำนวณทางคณิตศาสตร์ตามสถานะและประสิทธิภาพของเกม | [Keeping Score](./6-space-game/5-keeping-score/README.md) | Chris | | 19 | [Space Game](./6-space-game/solution/README.md) | การเก็บคะแนน | ทำการคำนวณทางคณิตศาสตร์ตามสถานะและประสิทธิภาพของเกม | [Keeping Score](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | การจบและเริ่มเกมใหม่ | เรียนรู้เกี่ยวกับการจบเกมและการเริ่มใหม่ รวมถึงการทำความสะอาดแอสเซทและรีเซ็ตค่าตัวแปร | [The Ending Condition](./6-space-game/6-end-condition/README.md) | Chris | | 20 | [Space Game](./6-space-game/solution/README.md) | การจบและเริ่มเกมใหม่ | เรียนรู้เกี่ยวกับการจบเกมและเริ่มเกมใหม่ รวมถึงการทำความสะอาดทรัพยากรและรีเซ็ตค่าตัวแปร | [The Ending Condition](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | แม่แบบ HTML และเส้นทางในเว็บแอป | เรียนรู้วิธีสร้างโครงสร้างของเว็บไซต์หลายหน้าโดยใช้ routing และแม่แบบ HTML | [HTML Templates and Routes](./7-bank-project/1-template-route/README.md) | Yohan | | 21 | [Banking App](./7-bank-project/solution/README.md) | เทมเพลต HTML และการกำหนดเส้นทางในเว็บแอป | เรียนรู้วิธีสร้างโครงสร้างเว็บไซต์หลายหน้าโดยใช้ routing และเทมเพลต HTML | [HTML Templates and Routes](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | สร้างฟอร์มเข้าสู่ระบบและลงทะเบียน | เรียนรู้เกี่ยวกับการสร้างฟอร์มและการจัดการการตรวจสอบความถูกต้อง | [Forms](./7-bank-project/2-forms/README.md) | Yohan | | 22 | [Banking App](./7-bank-project/solution/README.md) | สร้างฟอร์มล็อกอินและลงทะเบียน | เรียนรู้เกี่ยวกับการสร้างฟอร์มและการจัดการการตรวจสอบความถูกต้อง | [Forms](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | วิธีการดึงและใช้ข้อมูล | วิธีที่ข้อมูลไหลเข้าและออกจากแอปของคุณ วิธีการดึงข้อมูล เก็บ และกำจัดข้อมูล | [Data](./7-bank-project/3-data/README.md) | Yohan | | 23 | [Banking App](./7-bank-project/solution/README.md) | วิธีการดึงและใช้ข้อมูล | วิธีการไหลของข้อมูลเข้าและออกจากแอปของคุณ วิธีดึงข้อมูล เก็บข้อมูล และจัดการข้อมูล | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | แนวคิดการจัดการสถานะ | เรียนรู้ว่แอปของคุณเก็บสถานะอย่างไรและวิธีการจัดการมันอย่างเป็นโปรแกรม | [State Management](./7-bank-project/4-state-management/README.md) | Yohan | | 24 | [Banking App](./7-bank-project/solution/README.md) | แนวคิดการจัดการสถานะ | เรียนรู้วิธีที่แอปของคุณเก็บสถานะและวิธีจัดการสถานะเหล่านั้นโดยใช้โปรแกรม | [State Management](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | การทำงานกับ VScode | เรียนรู้วิธีการใช้ตัวแก้ไขโค้ด| [Use VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris | | 25 | [Browser/VScode Code](../../8-code-editor) | การทำงานกับ VScode | เรียนรู้วิธีใช้โปรแกรมแก้ไขโค้ด| [Use VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | การทำงานกับ AI | เรียนรู้วิธีสร้างผู้ช่วย AI ของคุณเอง | [AI Assistant project](./9-chat-project/README.md) | Chris | | 26 | [AI Assistants](./9-chat-project/README.md) | การทำงานกับ AI | เรียนรู้วิธีสร้างผู้ช่วย AI ของคุณเอง | [AI Assistant project](./9-chat-project/README.md) | Chris |
## 🏫 วิธีการสอน ## 🏫 การสอน
หลักสูตรของเราได้รับการออกแบบโดยมีหลักการทางการสอนสองประการสำคัญ:
* การเรียนรู้โดยใช้โครงงานเป็นฐาน
* การทำแบบทดสอบบ่อยครั้ง
หลักสูตรของเราออกแบบโดยมีหลักการทางการสอนสองประการสำคัญ: โปรแกรมสอนพื้นฐานของ JavaScript, HTML และ CSS รวมถึงเครื่องมือและเทคนิคล่าสุดที่นักพัฒนาเว็บในปัจจุบันใช้ นักเรียนจะมีโอกาสสร้างประสบการณ์ปฏิบัติผ่านการสร้างเกมพิมพ์คีย์, Terrarium เสมือนจริง, ส่วนขยายเบราว์เซอร์ที่เป็นมิตรกับสิ่งแวดล้อม, เกมสไตล์ space-invader และแอปธนาคารสำหรับธุรกิจ เมื่อจบชุดบทเรียน นักเรียนจะมีความเข้าใจที่ดีเกี่ยวกับการพัฒนาเว็บ
* การเรียนรู้ผ่านโครงการ
* แบบทดสอบบ่อยครั้ง
โปรแกรมสอนพื้นฐานของ JavaScript, HTML และ CSS รวมถึงเครื่องมือและเทคนิคล่าสุดที่นักพัฒนาเว็บสมัยใหม่ใช้ นักเรียนจะมีโอกาสได้รับประสบการณ์ปฏิบัติจริงโดยการสร้างเกมพิมพ์ดีด เทอร์ราเรียมเสมือน ส่วนขยายเบราว์เซอร์สีเขียว เกมอวกาศสไตล์ space-invader และแอปธนาคารสำหรับธุรกิจ เมื่อจบซีรีส์นี้ นักเรียนจะมีความเข้าใจแท้จริงเกี่ยวกับการพัฒนาเว็บ > 🎓 คุณสามารถเรียนบทเรียนแรก ๆ ในหลักสูตรนี้เป็น [เส้นทางการเรียนรู้](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) บน Microsoft Learn!
> 🎓 คุณสามารถเรียนบทเรียนแรก ๆ ของหลักสูตรนี้ในรูปแบบ [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) บน Microsoft Learn! โดยการทำให้เนื้อหาสอดคล้องกับโครงงาน กระบวนการเรียนรู้จะน่าสนใจขึ้นสำหรับนักเรียนและการจดจำแนวคิดจะดีขึ้น เราได้เขียนบทเรียนเริ่มต้นหลายบทเกี่ยวกับพื้นฐาน JavaScript เพื่อแนะนำแนวคิด พร้อมกับวิดีโอจากชุด "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" ชุดวิดีโอสอนซึ่งผู้เขียนบางท่านมีส่วนร่วมในการจัดทำหลักสูตรนี้
ด้วยการทำให้เนื้อหาสอดคล้องกับโครงการ ขั้นตอนการเรียนการสอนจึงน่าสนใจขึ้นสำหรับนักเรียนและช่วยเพิ่มการจดจำแนวคิด เราเขียนบทเรียนเริ่มต้นหลายบทเกี่ยวกับพื้นฐานของ JavaScript เพื่อแนะนำแนวคิด พร้อมกับวิดีโอจากชุด "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" ซึ่งมีผู้เขียนบางท่านมีส่วนร่วมในการสร้างหลักสูตรนี้ นอกจากนี้ แบบทดสอบที่ความกดดันต่ำก่อนเข้าชั้นเรียนจะช่วยให้นักเรียนตั้งใจเรียนหัวข้อ และแบบทดสอบที่สองหลังเข้าชั้นเรียนช่วยเสริมสร้างการจดจำ หลักสูตรนี้ถูกออกแบบมาให้ยืดหยุ่นและสนุก และสามารถเรียนได้ทั้งหมดหรือบางส่วน โครงงานเริ่มเล็กและซับซ้อนมากขึ้นเรื่อย ๆ เมื่อเข้าสู่สัปดาห์ที่ 12
นอกจากนี้ แบบทดสอบความเสี่ยงต่ำก่อนเข้าเรียนช่วยตั้งความมุ่งมั่นของนักเรียนต่อการเรียนรู้หัวข้อ ในขณะที่แบบทดสอบที่สองหลังเรียนช่วยรักษาการจดจำ เนื้อหาหลักสูตรนี้ออกแบบมาให้ยืดหยุ่นและสนุกสนาน สามารถเรียนครบหรือบางส่วนก็ได้ โครงการเริ่มต้นเล็ก ๆ และมีความซับซ้อนเพิ่มขึ้นเรื่อย ๆ ภายใน 12 สัปดาห์ ในขณะที่เราได้ตั้งใจหลีกเลี่ยงการแนะนำเฟรมเวิร์ก JavaScript เพื่อมุ่งเน้นทักษะพื้นฐานที่จำเป็นสำหรับนักพัฒนาเว็บก่อนที่จะใช้เฟรมเวิร์ก ขั้นตอนถัดไปที่ดีในการเรียนรู้หลักสูตรนี้คือการเรียนรู้เกี่ยวกับ Node.js ผ่านชุดวิดีโออีกชุดหนึ่ง: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
แม้เราจะจงใจหลีกเลี่ยงการแนะนำเฟรมเวิร์ก JavaScript เพื่อเน้นที่ทักษะพื้นฐานที่จำเป็นสำหรับนักพัฒนาเว็บก่อนจะใช้เฟรมเวิร์ก ขั้นตอนถัดไปที่ดีหลังจบหลักสูตรนี้คือการเรียนรู้ Node.js ผ่านชุดวิดีโออื่น: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)" > เยี่ยมชม [Code of Conduct](CODE_OF_CONDUCT.md) และแนวทาง [การมีส่วนร่วม](CONTRIBUTING.md) ของเรา เรายินดีรับข้อเสนอแนะเชิงสร้างสรรค์จากคุณ!
> เยี่ยมชม [Code of Conduct](CODE_OF_CONDUCT.md) และแนวทาง [Contributing](CONTRIBUTING.md) ของเรา เรายินดีรับฟังความคิดเห็นในการพัฒนาของคุณ!
## 🧭 การเข้าถึงแบบออฟไลน์ ## 🧭 การเข้าถึงแบบออฟไลน์
คุณสามารถรันเอกสารนี้แบบออฟไลน์โดยใช้ [Docsify](https://docsify.js.org/#/) โคลน repo นี้ ติดตั้ง Docsify บนเครื่องของคุณ แล้วในโฟลเดอร์หลักของ repo ให้พิมพ์ `docsify serve` เว็บไซต์จะถูกให้บริการผ่านพอร์ต 3000 บน localhost ของคุณ: `localhost:3000` คุณสามารถรันเอกสารนี้แบบออฟไลน์ได้โดยใช้ [Docsify](https://docsify.js.org/#/). Fork รีโปนี้, [ติดตั้ง Docsify](https://docsify.js.org/#/quickstart) บนเครื่องของคุณ จากนั้นในโฟลเดอร์หลักของรีโปนี้ ให้พิมพ์ `docsify serve`. เว็บไซต์จะถูกให้บริการบนพอร์ต 3000 ที่ localhost ของคุณ: `localhost:3000`.
## 📘 PDF ## 📘 PDF
PDF ของบทเรียนทั้งหมดสามารถดูได้ที่ [นี่](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf)
คุณสามารถดาวน์โหลด PDF ของบทเรียนทั้งหมดได้ที่ [นี่](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf)
## 🎒 หลักสูตรอื่นๆ ## 🎒 หลักสูตรอื่นๆ
ทีมของเราผลิตคอร์สอื่นๆ อีก! ลองดู:
ทีมงานของเราผลิตหลักสูตรอื่นๆ อีก! ลองดูที่:
<!-- CO-OP TRANSLATOR OTHER COURSES START --> <!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain ### LangChain
@ -249,21 +259,21 @@
## การขอความช่วยเหลือ ## การขอความช่วยเหลือ
ถ้าคุณติดปัญหาหรือมีคำถามใดๆ เกี่ยวกับการสร้างแอป AI เข้าร่วมกับผู้เรียนและนักพัฒนาที่มีประสบการณ์ในการสนทนาเกี่ยวกับ MCP นี่คือชุมชนที่ให้กำลังใจ ที่ซึ่งคำถามเป็นที่ต้อนรับและความรู้ถูกแบ่งปันอย่างเสรี หากคุณติดขัดหรือมีคำถามเกี่ยวกับการสร้างแอป AI เข้าร่วมกับผู้เรียนคนอื่นๆ และนักพัฒนาที่มีประสบการณ์ในการอภิปรายเกี่ยวกับ MCP นี่คือชุมชนที่สนับสนุนซึ่งเปิดรับคำถามและแบ่งปันความรู้กันอย่างเสรี
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
ถ้าคุณมีความคิดเห็นเกี่ยวกับผลิตภัณฑ์หรือพบข้อผิดพลาดในขณะสร้างโปรเจกต์ เยี่ยมชม: หากคุณมีคำติชมเกี่ยวกับผลิตภัณฑ์หรือพบข้อผิดพลาดระหว่างการสร้าง ให้เยี่ยมชม:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## ใบอนุญาต ## ใบอนุญาต
ที่เก็บนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT ดูไฟล์ [LICENSE](../../LICENSE) สำหรับข้อมูลเพิ่มเติม. ที่เก็บนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT ดูไฟล์ [LICENSE](../../LICENSE) สำหรับข้อมูลเพิ่มเติม
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ข้อจำกัดความรับผิดชอบ**: **ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลด้วย AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้ความถูกต้องสูงสุด โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นฉบับควรถือเป็นแหล่งข้อมูลที่ถูกต้องและน่าเชื่อถือ สำหรับข้อมูลที่สำคัญ ควรใช้บริการแปลโดยมนุษย์ผู้เชี่ยวชาญ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดใด ๆ ที่เกิดจากการใช้การแปลนี้ เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) ถึงแม้เราจะพยายามรักษาความถูกต้อง แต่กรุณาทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อน เอกสารต้นฉบับในภาษาดั้งเดิมถือเป็นแหล่งข้อมูลที่เชื่อถือได้ หากเป็นข้อมูลสำคัญ ขอแนะนำให้ใช้บริการแปลโดยมนุษย์มืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดขึ้นจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save