🌐 Update translations via Co-op Translator

pull/1527/head
leestott 9 months ago committed by GitHub
parent fa80d581e4
commit 88264e8bfd

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-28T15:10:20+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T08:37:49+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "ar"
}
@ -19,30 +19,30 @@ CO_OP_TRANSLATOR_METADATA:
## المقدمة
في هذا الدرس، سنتناول:
في هذه الدرس، سنتناول:
- ما هي البرمجة؟
- أنواع لغات البرمجة
- العناصر الأساسية للبرنامج
- البرامج والأدوات المفيدة للمطور المحترف
> يمكنك أخذ هذا الدرس على [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
> يمكنك أخذ هذه الدرس على [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
## ما هي البرمجة؟
البرمجة (المعروفة أيضًا بالتشفير) هي عملية كتابة تعليمات لجهاز مثل الكمبيوتر أو الجهاز المحمول. نكتب هذه التعليمات باستخدام لغة برمجة، والتي يتم تفسيرها بعد ذلك بواسطة الجهاز. يمكن أن تُطلق على هذه التعليمات أسماء مختلفة، مثل *برنامج*، *برنامج كمبيوتر*، *تطبيق (app)*، و*تنفيذي*.
الـ*برنامج* يمكن أن يكون أي شيء مكتوب بالكود؛ المواقع الإلكترونية، الألعاب، وتطبيقات الهاتف هي برامج. على الرغم من أنه يمكن إنشاء برنامج دون كتابة كود، إلا أن المنطق الأساسي يتم تفسيره بواسطة الجهاز، وغالبًا ما يكون هذا المنطق مكتوبًا بالكود. البرنامج الذي *يعمل* أو *ينفذ* الكود يقوم بتنفيذ التعليمات. الجهاز الذي تقرأ منه هذا الدرس يعمل على تشغيل برنامج لطباعة المحتوى على شاشتك.
يمكن أن يكون *البرنامج* أي شيء مكتوب بالكود؛ المواقع الإلكترونية، الألعاب، وتطبيقات الهاتف هي برامج. بينما من الممكن إنشاء برنامج دون كتابة كود، فإن المنطق الأساسي يتم تفسيره بواسطة الجهاز، وغالبًا ما يكون هذا المنطق مكتوبًا بالكود. البرنامج الذي *يعمل* أو *ينفذ* الكود يقوم بتنفيذ التعليمات. الجهاز الذي تقرأ منه هذه الدرس الآن يقوم بتشغيل برنامج لطباعة المحتوى على شاشتك.
✅ قم ببعض البحث: من يعتبر أول مبرمج كمبيوتر في العالم؟
✅ قم ببعض البحث: من يُعتبر أول مبرمج كمبيوتر في العالم؟
## لغات البرمجة
لغات البرمجة تمكن المطورين من كتابة تعليمات لجهاز. الأجهزة يمكنها فقط فهم النظام الثنائي (1 و 0)، ولـ*معظم* المطورين، هذا ليس طريقة فعالة للتواصل. لغات البرمجة هي الوسيلة للتواصل بين البشر والكمبيوترات.
لغات البرمجة تمكن المطورين من كتابة تعليمات لجهاز. الأجهزة يمكنها فقط فهم النظام الثنائي (1 و 0)، ولأغلب المطورين هذا ليس طريقة فعالة للتواصل. لغات البرمجة هي الوسيلة للتواصل بين البشر والكمبيوترات.
لغات البرمجة تأتي بأشكال مختلفة وقد تخدم أغراضًا مختلفة. على سبيل المثال، JavaScript تُستخدم بشكل أساسي لتطبيقات الويب، بينما Bash تُستخدم بشكل أساسي لأنظمة التشغيل.
*اللغات منخفضة المستوى* عادةً ما تتطلب خطوات أقل من *اللغات عالية المستوى* لتفسير التعليمات بواسطة الجهاز. ومع ذلك، ما يجعل اللغات عالية المستوى شائعة هو سهولة قراءتها ودعمها. JavaScript تُعتبر لغة عالية المستوى.
*اللغات منخفضة المستوى* تتطلب عادةً خطوات أقل من *اللغات عالية المستوى* لكي يتم تفسير التعليمات بواسطة الجهاز. ومع ذلك، ما يجعل اللغات عالية المستوى شائعة هو سهولة قراءتها ودعمها. JavaScript تُعتبر لغة عالية المستوى.
الكود التالي يوضح الفرق بين لغة عالية المستوى باستخدام JavaScript ولغة منخفضة المستوى باستخدام كود تجميع ARM.
@ -83,7 +83,7 @@ back add r0,r1
end
```
صدق أو لا تصدق، *كلاهما يقوم بنفس الشيء*: طباعة تسلسل فيبوناتشي حتى الرقم 10.
صدق أو لا تصدق، *كلاهما يقومان بنفس الشيء*: طباعة تسلسل فيبوناتشي حتى الرقم 10.
✅ تسلسل فيبوناتشي [يُعرف](https://en.wikipedia.org/wiki/Fibonacci_number) بأنه مجموعة من الأرقام بحيث يكون كل رقم هو مجموع الرقمين السابقين له، بدءًا من 0 و 1. أول 10 أرقام في تسلسل فيبوناتشي هي 0، 1، 1، 2، 3، 5، 8، 13، 21، و 34.
@ -91,9 +91,9 @@ back add r0,r1
تعليمات واحدة في البرنامج تُسمى *عبارة* وعادةً ما تحتوي على حرف أو مسافة خط تحدد مكان انتهاء التعليمات أو *إنهائها*. كيفية إنهاء البرنامج تختلف من لغة إلى أخرى.
العبارات داخل البرنامج قد تعتمد على البيانات المقدمة من المستخدم أو من مكان آخر لتنفيذ التعليمات. البيانات يمكن أن تغير كيفية تصرف البرنامج، لذلك تأتي لغات البرمجة مع طريقة لتخزين البيانات مؤقتًا لاستخدامها لاحقًا. هذه تُسمى *المتغيرات*. المتغيرات هي عبارات تُعلم الجهاز بحفظ البيانات في ذاكرته. المتغيرات في البرامج تشبه المتغيرات في الجبر، حيث يكون لها اسم فريد وقيمتها قد تتغير مع الوقت.
العبارات داخل البرنامج قد تعتمد على بيانات مقدمة من المستخدم أو من مكان آخر لتنفيذ التعليمات. البيانات يمكن أن تغير كيفية تصرف البرنامج، لذا تأتي لغات البرمجة مع طريقة لتخزين البيانات مؤقتًا لاستخدامها لاحقًا. هذه تُسمى *المتغيرات*. المتغيرات هي عبارات تُعلم الجهاز بحفظ البيانات في ذاكرته. المتغيرات في البرامج تشبه المتغيرات في الجبر، حيث يكون لها اسم فريد وقيمتها قد تتغير مع الوقت.
هناك احتمال أن بعض العبارات لن يتم تنفيذها بواسطة الجهاز. هذا عادةً يكون عن قصد عندما يكتبه المطور أو عن طريق الخطأ عندما يحدث خطأ غير متوقع. هذا النوع من التحكم في التطبيق يجعله أكثر قوة وقابلية للصيانة. عادةً ما تحدث هذه التغييرات في التحكم عندما يتم استيفاء شروط معينة. عبارة شائعة تُستخدم في البرمجة الحديثة للتحكم في كيفية تشغيل البرنامج هي عبارة `if..else`.
هناك احتمال أن بعض العبارات لن يتم تنفيذها بواسطة الجهاز. هذا عادةً يكون عن قصد عندما يكتبه المطور أو عن طريق الخطأ عندما يحدث خطأ غير متوقع. هذا النوع من التحكم في التطبيق يجعله أكثر قوة وقابلية للصيانة. عادةً، تحدث هذه التغييرات في التحكم عندما يتم استيفاء شروط معينة. عبارة شائعة تُستخدم في البرمجة الحديثة للتحكم في كيفية تشغيل البرنامج هي عبارة `if..else`.
✅ ستتعلم المزيد عن هذا النوع من العبارات في الدروس القادمة.
@ -105,7 +105,7 @@ back add r0,r1
في هذا القسم، ستتعرف على بعض البرامج التي قد تجدها مفيدة جدًا أثناء بدء رحلتك كمطور محترف.
**بيئة التطوير** هي مجموعة فريدة من الأدوات والميزات التي يستخدمها المطور غالبًا عند كتابة البرامج. بعض هذه الأدوات تم تخصيصها لاحتياجات المطور المحددة، وقد تتغير مع الوقت إذا تغيرت أولويات المطور في العمل، المشاريع الشخصية، أو عند استخدام لغة برمجة مختلفة. بيئات التطوير فريدة مثل المطورين الذين يستخدمونها.
**بيئة التطوير** هي مجموعة فريدة من الأدوات والميزات التي يستخدمها المطور غالبًا عند كتابة البرامج. بعض هذه الأدوات تم تخصيصها لتلبية احتياجات المطور المحددة، وقد تتغير مع الوقت إذا تغيرت أولويات المطور في العمل، المشاريع الشخصية، أو عند استخدام لغة برمجة مختلفة. بيئات التطوير فريدة مثل المطورين الذين يستخدمونها.
### المحررات
@ -113,12 +113,12 @@ back add r0,r1
يعتمد المطورون على المحررات لعدة أسباب إضافية:
- *تصحيح الأخطاء* يساعد في اكتشاف الأخطاء عن طريق استعراض الكود، سطرًا بسطر. بعض المحررات لديها قدرات تصحيح الأخطاء؛ يمكن تخصيصها وإضافتها للغات البرمجة المحددة.
- *تصحيح الأخطاء* يساعد في اكتشاف الأخطاء والمشاكل عن طريق استعراض الكود، سطرًا بسطر. بعض المحررات لديها قدرات تصحيح الأخطاء؛ يمكن تخصيصها وإضافتها للغات البرمجة المحددة.
- *تمييز الصيغة* يضيف ألوانًا وتنسيقات نصية للكود، مما يجعله أسهل للقراءة. معظم المحررات تسمح بتخصيص تمييز الصيغة.
- *الإضافات والتكاملات* هي أدوات متخصصة للمطورين، تم إنشاؤها بواسطة المطورين. هذه الأدوات لم يتم تضمينها في المحرر الأساسي. على سبيل المثال، العديد من المطورين يوثقون الكود لشرح كيفية عمله. قد يقومون بتثبيت إضافة لتدقيق الإملاء للمساعدة في العثور على الأخطاء الإملائية داخل التوثيق. معظم الإضافات مخصصة للاستخدام داخل محرر معين، ومعظم المحررات تأتي مع طريقة للبحث عن الإضافات المتاحة.
- *الإضافات والتكاملات* هي أدوات متخصصة للمطورين، بواسطة المطورين. هذه الأدوات لم تُبنى في المحرر الأساسي. على سبيل المثال، العديد من المطورين يوثقون الكود الخاص بهم لشرح كيفية عمله. قد يقومون بتثبيت إضافة لتدقيق الإملاء للمساعدة في العثور على الأخطاء الإملائية داخل التوثيق. معظم الإضافات مخصصة للاستخدام داخل محرر معين، ومعظم المحررات تأتي مع طريقة للبحث عن الإضافات المتاحة.
- *التخصيص* يمكن المطورين من إنشاء بيئة تطوير فريدة تناسب احتياجاتهم. معظم المحررات قابلة للتخصيص بشكل كبير وقد تسمح أيضًا للمطورين بإنشاء إضافات مخصصة.
#### المحررات والإضافات الشائعة لتطوير الويب
#### المحررات الشائعة وإضافات تطوير الويب
- [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)
@ -135,11 +135,11 @@ back add r0,r1
### المتصفحات
أداة أخرى مهمة هي المتصفح. يعتمد مطورو الويب على المتصفح لرؤية كيفية تشغيل الكود على الويب. كما يُستخدم لعرض العناصر المرئية لصفحة الويب المكتوبة في المحرر، مثل HTML.
أداة أخرى مهمة هي المتصفح. يعتمد مطورو الويب على المتصفح لرؤية كيفية تشغيل الكود الخاص بهم على الويب. كما يُستخدم لعرض العناصر المرئية لصفحة الويب المكتوبة في المحرر، مثل HTML.
تأتي العديد من المتصفحات مع *أدوات المطور* (DevTools) التي تحتوي على مجموعة من الميزات والمعلومات المفيدة لمساعدة المطورين في جمع المعلومات المهمة عن تطبيقاتهم. على سبيل المثال: إذا كانت صفحة الويب تحتوي على أخطاء، فمن المفيد أحيانًا معرفة متى حدثت. يمكن تكوين أدوات المطور في المتصفح لالتقاط هذه المعلومات.
تأتي العديد من المتصفحات مع *أدوات المطورين* (DevTools) التي تحتوي على مجموعة من الميزات والمعلومات المفيدة لمساعدة المطورين في جمع والتقاط معلومات مهمة عن تطبيقاتهم. على سبيل المثال: إذا كانت صفحة الويب تحتوي على أخطاء، فمن المفيد أحيانًا معرفة متى حدثت. يمكن تكوين أدوات المطورين في المتصفح لالتقاط هذه المعلومات.
#### المتصفحات وأدوات المطور الشائعة
#### المتصفحات الشائعة وأدوات المطورين
- [Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
@ -147,7 +147,7 @@ back add r0,r1
### أدوات سطر الأوامر
بعض المطورين يفضلون عرضًا أقل رسومية لمهامهم اليومية ويعتمدون على سطر الأوامر لتحقيق ذلك. كتابة الكود تتطلب قدرًا كبيرًا من الكتابة، وبعض المطورين يفضلون عدم تعطيل تدفقهم على لوحة المفاتيح. يستخدمون اختصارات لوحة المفاتيح للتنقل بين نوافذ سطح المكتب، العمل على ملفات مختلفة، واستخدام الأدوات. يمكن إنجاز معظم المهام باستخدام الفأرة، ولكن أحد فوائد استخدام سطر الأوامر هو أنه يمكن إنجاز الكثير باستخدام أدوات سطر الأوامر دون الحاجة إلى التنقل بين الفأرة ولوحة المفاتيح. فائدة أخرى لسطر الأوامر هي أنه قابل للتكوين ويمكنك حفظ تكوين مخصص، تغييره لاحقًا، واستيراده إلى أجهزة تطوير أخرى. نظرًا لأن بيئات التطوير فريدة لكل مطور، فإن البعض يتجنب استخدام سطر الأوامر، والبعض يعتمد عليه بالكامل، والبعض يفضل مزيجًا من الاثنين.
بعض المطورين يفضلون عرضًا أقل رسومية لمهامهم اليومية ويعتمدون على سطر الأوامر لتحقيق ذلك. كتابة الكود تتطلب كمية كبيرة من الكتابة، وبعض المطورين يفضلون عدم تعطيل تدفقهم على لوحة المفاتيح. يستخدمون اختصارات لوحة المفاتيح للتنقل بين نوافذ سطح المكتب، العمل على ملفات مختلفة، واستخدام الأدوات. يمكن إنجاز معظم المهام باستخدام الفأرة، ولكن أحد فوائد استخدام سطر الأوامر هو أنه يمكن إنجاز الكثير باستخدام أدوات سطر الأوامر دون الحاجة إلى التنقل بين الفأرة ولوحة المفاتيح. فائدة أخرى لسطر الأوامر هي أنه قابل للتكوين ويمكنك حفظ تكوين مخصص، تغييره لاحقًا، واستيراده إلى أجهزة تطوير أخرى. نظرًا لأن بيئات التطوير فريدة لكل مطور، فإن البعض يتجنب استخدام سطر الأوامر، والبعض يعتمد عليه تمامًا، والبعض يفضل مزيجًا من الاثنين.
### خيارات سطر الأوامر الشائعة
@ -182,7 +182,7 @@ back add r0,r1
### التوثيق
عندما يريد المطور تعلم شيء جديد، غالبًا ما يلجأ إلى التوثيق لمعرفة كيفية استخدامه. يعتمد المطورون بشكل كبير على التوثيق لإرشادهم حول كيفية استخدام الأدوات واللغات بشكل صحيح، وكذلك للحصول على معرفة أعمق حول كيفية عملها.
عندما يريد المطور تعلم شيء جديد، غالبًا ما يلجأ إلى التوثيق لمعرفة كيفية استخدامه. يعتمد المطورون بشكل كبير على التوثيق لإرشادهم حول كيفية استخدام الأدوات واللغات بشكل صحيح، وأيضًا للحصول على معرفة أعمق حول كيفية عملها.
#### التوثيق الشائع حول تطوير الويب
@ -198,7 +198,7 @@ back add r0,r1
## 🚀 التحدي
قارن بين بعض لغات البرمجة. ما هي السمات الفريدة لـ JavaScript مقابل Java؟ ماذا عن COBOL مقابل Go؟
قارن بين بعض لغات البرمجة. ما هي بعض السمات الفريدة لـ JavaScript مقابل Java؟ ماذا عن COBOL مقابل Go؟
## اختبار ما بعد المحاضرة
[اختبار ما بعد المحاضرة](https://ff-quizzes.netlify.app/web/)
@ -211,7 +211,9 @@ back add r0,r1
[قراءة الوثائق](assignment.md)
> ملاحظة: عند اختيار الأدوات لواجبك، لا تختار المحررات، المتصفحات، أو أدوات سطر الأوامر المدرجة أعلاه.
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,23 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-25T23:14:01+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T08:38:28+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "ar"
}
-->
# قراءة الوثائق
## التعليمات
هناك العديد من الأدوات التي قد يحتاجها مطور الويب والمتوفرة في [وثائق MDN الخاصة بأدوات الجانب العميل](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). اختر 3 أدوات لم يتم تغطيتها في الدرس، واشرح لماذا قد يستخدمها مطور الويب، وابحث عن أداة تندرج تحت هذه الفئة وشارك وثائقها. لا تستخدم نفس أمثلة الأدوات الموجودة في وثائق MDN.
هناك العديد من الأدوات التي قد يحتاجها مطور الويب والتي تم ذكرها في [وثائق MDN لأدوات الجانب العميل](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). اختر **ثلاث أدوات** التي **لم يتم تغطيتها في هذا الدرس** (باستثناء [ذكر أدوات محددة أو الإشارة إلى محتوى الدرس])، واشرح **لماذا** قد يستخدم مطور الويب كل أداة، وابحث عن أداة تناسب كل فئة. لكل أداة، شارك رابطًا إلى وثائقها الرسمية (وليس المثال المستخدم في MDN).
**التنسيق:**
- اسم الأداة
- لماذا قد يستخدمها مطور الويب (2-3 جمل)
- رابط الوثائق
## معايير التقييم
**الطول:**
- يجب أن يكون الشرح لكل أداة من 2-3 جمل.
## المعيار
ممتاز | مقبول | يحتاج إلى تحسين
--- | --- | --- |
| تم شرح سبب استخدام مطور الويب للأداة | تم شرح كيفية الاستخدام، ولكن لم يتم توضيح السبب | لم يتم ذكر كيفية أو سبب استخدام مطور الويب للأداة |
--- | --- | -- |
شرح لماذا قد يستخدم مطور الويب الأداة | شرح كيف، ولكن ليس لماذا قد يستخدم المطور الأداة | لم يذكر كيف أو لماذا قد يستخدم المطور الأداة |
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-25T21:57:17+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T08:37:21+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "ar"
}
@ -11,13 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## التعليمات
تخيل أنك تقوم ببناء عربة تسوق. قم بكتابة بعض الوثائق حول أنواع البيانات التي ستحتاجها لإكمال تجربة التسوق الخاصة بك. كيف وصلت إلى اختياراتك؟
تخيل أنك تقوم ببناء عربة تسوق. قم بكتابة توثيق لأنواع البيانات التي ستحتاجها لإكمال تجربة التسوق. لكل نوع بيانات، اشرح كيف ولماذا ستستخدمه، وقدم مثالًا. أنواع البيانات الستة في JavaScript هي: String، Number، Boolean، Null، Undefined، و Object.
## المعيار
المعايير | ممتاز | مقبول | يحتاج إلى تحسين
المعايير | مثالي | كافٍ | يحتاج إلى تحسين
--- | --- | --- | --- |
||تم سرد واستكشاف ستة أنواع بيانات بالتفصيل، مع توثيق استخدامها|تم استكشاف أربعة أنواع بيانات|تم استكشاف نوعين من البيانات|
أنواع البيانات | يتم سرد جميع أنواع البيانات الستة، واستكشافها بالتفصيل، وتوثيقها مع أمثلة | يتم استكشاف أربعة أنواع بيانات مع بعض الشرح | يتم استكشاف نوعين من البيانات مع شرح محدود |
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,23 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-25T21:11:34+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T08:38:46+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "ar"
}
-->
# تدرب على HTML: قم بإنشاء نموذج تخطيطي لمدونة
# مهمة تدريب HTML: إنشاء نموذج مدونة
## الهدف
تصميم وكتابة هيكل HTML يدويًا لصفحة رئيسية لمدونة شخصية. سيساعدك هذا التمرين على ممارسة HTML الدلالي، تخطيط التصميم، وتنظيم الكود.
## التعليمات
تخيل أنك تقوم بتصميم أو إعادة تصميم موقعك الشخصي. قم بإنشاء نموذج تخطيطي رسومي لموقعك، ثم اكتب تعليمات HTML التي ستستخدمها لبناء العناصر المختلفة للموقع. يمكنك القيام بذلك على الورق ثم مسحه ضوئيًا، أو استخدام البرنامج الذي تفضله، فقط تأكد من كتابة تعليمات HTML يدويًا.
1. **صمم نموذج مدونتك**
- ارسم نموذجًا مرئيًا لصفحة المدونة الرئيسية الخاصة بك. قم بتضمين الأقسام الرئيسية مثل العنوان، التنقل، المحتوى الرئيسي، الشريط الجانبي، والتذييل.
- يمكنك استخدام الورق ومسح الرسم ضوئيًا، أو استخدام أدوات رقمية (مثل Figma، Adobe XD، Canva، أو حتى PowerPoint).
2. **حدد عناصر HTML**
- قم بإعداد قائمة بعناصر HTML التي تخطط لاستخدامها لكل قسم (مثل `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>`، إلخ).
3. **اكتب تعليمات HTML**
- قم بكتابة كود HTML يدويًا لنموذجك. ركز على الهيكل الدلالي وأفضل الممارسات.
- قم بتضمين ما لا يقل عن 10 عناصر HTML مميزة.
- أضف تعليقات لشرح اختياراتك وهيكل الكود.
4. **قدم عملك**
- قم برفع الرسم/النموذج الخاص بك وملف HTML.
- اختياريًا، قدم انعكاسًا موجزًا (23 جمل) حول قرارات التصميم الخاصة بك.
## معايير التقييم
| المعايير | ممتاز | مقبول | يحتاج إلى تحسين |
|------------------|------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
| النموذج المرئي | نموذج واضح ومفصل مع أقسام مُعلمة وتخطيط مدروس | نموذج أساسي مع بعض الأقسام المُعلمة | نموذج بسيط أو غير واضح؛ يفتقر إلى علامات الأقسام |
| عناصر HTML | استخدام 10+ عناصر HTML دلالية؛ يظهر فهمًا للهيكل وأفضل الممارسات | استخدام 59 عناصر HTML؛ بعض الهيكل الدلالي | استخدام أقل من 5 عناصر؛ يفتقر إلى الهيكل الدلالي |
| جودة الكود | كود منظم وقابل للقراءة مع تعليقات؛ يتبع معايير HTML | كود منظم إلى حد ما؛ قليل من التعليقات | كود غير منظم؛ يفتقر إلى التعليقات |
| الانعكاس | انعكاس عميق حول اختيارات التصميم والتحديات | انعكاس أساسي | لا يوجد انعكاس أو يفتقر إلى الصلة |
## نصائح
## المعايير
- استخدم علامات HTML الدلالية لتحسين الوصول وتحسين محركات البحث.
- قم بتنظيم الكود باستخدام التباعد والتعليقات.
- راجع [مرجع عناصر HTML من MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) للحصول على الإرشادات.
- فكر في كيفية توسيع أو تصميم تخطيطك في المهام المستقبلية.
| المعايير | ممتاز | مقبول | يحتاج إلى تحسين |
| -------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| | يتم تمثيل تخطيط المدونة بصريًا مع عرض ما لا يقل عن 10 عناصر من تعليمات HTML | يتم تمثيل تخطيط المدونة بصريًا مع عرض حوالي 5 عناصر من تعليمات HTML | يتم تمثيل تخطيط المدونة بصريًا مع عرض 3 عناصر على الأكثر من تعليمات HTML |
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,23 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-25T21:29:06+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T08:38:36+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "ar"
}
-->
# إعادة هيكلة CSS
# مهمة إعادة هيكلة CSS
## الهدف
إعادة هيكلة مشروع التيراريوم باستخدام **Flexbox** أو **CSS Grid** لتنسيق التصميم. قم بتحديث HTML و CSS حسب الحاجة لتحقيق تصميم حديث ومتجاوب. لا تحتاج إلى تنفيذ العناصر القابلة للسحب—ركز فقط على التنسيق والتصميم.
## التعليمات
قم بإعادة تصميم التيراريوم باستخدام إما Flexbox أو CSS Grid، والتقط لقطات شاشة لتظهر أنك اختبرت التصميم على عدة متصفحات. قد تحتاج إلى تعديل العلامات، لذا قم بإنشاء نسخة جديدة من التطبيق مع الفن في مكانه لإعادة الهيكلة. لا تقلق بشأن جعل العناصر قابلة للسحب؛ فقط قم بإعادة هيكلة HTML وCSS في الوقت الحالي.
1. **قم بإنشاء نسخة جديدة** من تطبيق التيراريوم. قم بتحديث التعليمات البرمجية لـ HTML و CSS لاستخدام Flexbox أو CSS Grid لتنسيق التصميم.
2. **تأكد من أن الفن والعناصر موجودة** كما في النسخة الأصلية.
3. **اختبر تصميمك** في متصفحين مختلفين على الأقل (مثل Chrome، Firefox، Edge).
4. **التقط لقطات شاشة** لتطبيق التيراريوم في كل متصفح لإظهار التوافق بين المتصفحات.
5. **قم بتقديم** التعليمات البرمجية المحدثة ولقطات الشاشة.
## معايير التقييم
| المعايير | ممتاز | مقبول | يحتاج إلى تحسين |
|------------|-----------------------------------------------------------------------|------------------------------------|--------------------------------------|
| التنسيق | إعادة هيكلة كاملة باستخدام Flexbox أو CSS Grid؛ تصميم جذاب ومتجاوب | إعادة هيكلة جزئية؛ استخدام محدود لـ Flexbox أو Grid | عدم استخدام Flexbox أو Grid؛ التصميم غير محدث |
| التوافق بين المتصفحات | تقديم لقطات شاشة لعدة متصفحات؛ مظهر متناسق | لقطات شاشة لمتصفح واحد؛ اختلافات طفيفة | عدم تقديم لقطات شاشة أو وجود اختلافات كبيرة |
| جودة الكود | HTML/CSS منظم ونظيف؛ تعليقات واضحة | تنظيم جزئي؛ تعليقات قليلة | كود غير منظم؛ يفتقر إلى التعليقات |
## نصائح
## المعيار
- راجع [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) و [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) للحصول على إرشادات.
- استخدم أدوات المطور في المتصفح لاختبار التوافق.
- قم بإضافة تعليقات إلى الكود لتوضيح الأفكار.
| المعايير | مثالي | مقبول | يحتاج إلى تحسين |
| -------- | ----------------------------------------------------------------- | ----------------------------- | ------------------------------------ |
| | تقديم تيراريوم معاد تصميمه بالكامل باستخدام Flexbox أو CSS Grid | إعادة تصميم بعض العناصر | الفشل في إعادة تصميم التيراريوم تمامًا |
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,160 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-28T15:07:45+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T08:37:27+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "ar"
}
-->
# استخدام محرر الأكواد
***
تتناول هذه الدرس أساسيات استخدام [VSCode.dev](https://vscode.dev)، وهو محرر أكواد يعتمد على الويب، بحيث يمكنك إجراء تغييرات على الكود الخاص بك والمساهمة في مشروع دون الحاجة إلى تثبيت أي شيء على جهاز الكمبيوتر الخاص بك.
# استخدام محرر الأكواد: إتقان [VSCode.dev](https://vscode.dev)
## أهداف التعلم
في هذا الدرس، ستتعلم كيفية:
- استخدام محرر الأكواد في مشروع برمجي
- متابعة التغييرات باستخدام التحكم في الإصدارات
- تخصيص المحرر لتطوير البرمجيات
**مرحبًا!**
تأخذك هذه الدرس من الأساسيات إلى الاستخدام المتقدم لـ [VSCode.dev](https://vscode.dev) — محرر الأكواد القوي المستند إلى الويب. ستتعلم كيفية تحرير الأكواد بثقة، إدارة المشاريع، تتبع التغييرات، تثبيت الإضافات، والتعاون كمحترف — كل ذلك من متصفحك، دون الحاجة إلى أي تثبيت.
### المتطلبات الأساسية
***
قبل أن تبدأ، ستحتاج إلى إنشاء حساب على [GitHub](https://github.com). قم بزيارة [GitHub](https://github.com/) وأنشئ حسابًا إذا لم يكن لديك حساب بالفعل.
### المقدمة
## أهداف التعلم
محرر الأكواد هو أداة أساسية لكتابة البرامج والتعاون في المشاريع البرمجية القائمة. بمجرد أن تفهم أساسيات المحرر وكيفية الاستفادة من ميزاته، ستتمكن من تطبيقها عند كتابة الكود.
بنهاية هذه الدرس، ستكون قادرًا على:
## البدء مع VSCode.dev
- استخدام محرر الأكواد بكفاءة لأي مشروع، في أي مكان
- تتبع عملك بسلاسة باستخدام التحكم في الإصدارات المدمج
- تخصيص وتعزيز سير عمل التطوير الخاص بك باستخدام التعديلات والإضافات
[VSCode.dev](https://vscode.dev) هو محرر أكواد يعمل عبر الإنترنت. لا تحتاج إلى تثبيت أي شيء لاستخدامه، تمامًا مثل فتح أي موقع ويب. للبدء باستخدام المحرر، افتح الرابط التالي: [https://vscode.dev](https://vscode.dev). إذا لم تكن مسجلًا الدخول إلى [GitHub](https://github.com/)، اتبع التعليمات لتسجيل الدخول أو إنشاء حساب جديد ثم تسجيل الدخول.
***
بمجرد تحميله، يجب أن يبدو مشابهًا لهذه الصورة:
## المتطلبات الأساسية
![Default VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.ar.png)
لبدء العمل، **قم بالتسجيل للحصول على حساب مجاني على [GitHub](https://github.com)**، والذي يتيح لك إدارة مستودعات الأكواد والتعاون عالميًا. إذا لم يكن لديك حساب بعد، [أنشئ واحدًا هنا](https://github.com/).
هناك ثلاثة أقسام رئيسية، بدءًا من اليسار إلى اليمين:
***
1. _شريط النشاط_ الذي يتضمن بعض الأيقونات، مثل العدسة المكبرة 🔎، الترس ⚙️، وبعض الأيقونات الأخرى.
2. شريط النشاط الموسع الذي يكون افتراضيًا على _المستكشف_، ويُطلق عليه _الشريط الجانبي_.
3. وأخيرًا، منطقة الكود على اليمين.
## لماذا استخدام محرر أكواد مستند إلى الويب؟
انقر على كل أيقونة لعرض قائمة مختلفة. بمجرد الانتهاء، انقر على _المستكشف_ لتعود إلى حيث بدأت.
محرر الأكواد مثل VSCode.dev هو مركز التحكم الخاص بك لكتابة الأكواد وتحريرها وإدارتها. بواجهة سهلة الاستخدام، ميزات متعددة، والوصول الفوري عبر المتصفح، يمكنك:
عندما تبدأ بإنشاء الكود أو تعديل الكود الموجود، سيتم ذلك في أكبر منطقة على اليمين. ستستخدم هذه المنطقة أيضًا لعرض الكود الموجود، وهو ما ستفعله لاحقًا.
- تحرير المشاريع على أي جهاز
- تجنب عناء التثبيتات
- التعاون والمساهمة فورًا
## فتح مستودع GitHub
بمجرد أن تصبح مرتاحًا مع VSCode.dev، ستكون مستعدًا للتعامل مع مهام البرمجة من أي مكان وفي أي وقت.
أول شيء ستحتاج إليه هو فتح مستودع GitHub. هناك طرق متعددة لفتح مستودع. في هذا القسم، ستتعرف على طريقتين مختلفتين يمكنك من خلالهما فتح مستودع والبدء في العمل على التغييرات.
***
### 1. باستخدام المحرر
## البدء مع VSCode.dev
استخدم المحرر نفسه لفتح مستودع عن بُعد. إذا ذهبت إلى [VSCode.dev](https://vscode.dev)، سترى زر _"فتح مستودع عن بُعد"_:
انتقل إلى **[VSCode.dev](https://vscode.dev)** — لا حاجة للتثبيت أو التنزيل. تسجيل الدخول باستخدام GitHub يفتح الوصول الكامل، بما في ذلك مزامنة إعداداتك، إضافاتك، ومستودعاتك. إذا طُلب منك، قم بربط حساب GitHub الخاص بك.
![Open remote repository](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.ar.png)
بعد التحميل، ستبدو مساحة العمل الخاصة بك كما يلي:
يمكنك أيضًا استخدام لوحة الأوامر. لوحة الأوامر هي مربع إدخال يمكنك كتابة أي كلمة فيه تكون جزءًا من أمر أو إجراء للعثور على الأمر المناسب لتنفيذه. استخدم القائمة في أعلى اليسار، ثم اختر _عرض_، ثم اختر _لوحة الأوامر_، أو استخدم الاختصار التالي: Ctrl-Shift-P (على نظام MacOS سيكون Command-Shift-P).
![VSCode.dev الافتراضي](../images/default-vscode-dev يحتوي على ثلاثة أقسام رئيسية من اليسار إلى اليمين:
- **شريط النشاط:** الأيقونات مثل 🔎 (بحث)، ⚙️ (إعدادات)، الملفات، التحكم في المصدر، إلخ.
- **الشريط الجانبي:** يتغير السياق بناءً على الأيقونة المحددة في شريط النشاط (يكون افتراضيًا على *Explorer* لعرض الملفات).
- **منطقة تحرير الأكواد:** أكبر قسم على اليمين — حيث ستقوم فعليًا بتحرير وعرض الأكواد.
![Palette Menu](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.ar.png)
انقر على الأيقونات لاستكشاف الميزات، ولكن عد إلى _Explorer_ للحفاظ على مكانك.
بمجرد فتح القائمة، اكتب _فتح مستودع عن بُعد_، ثم اختر الخيار الأول. ستظهر مستودعات متعددة أنت جزء منها أو فتحتها مؤخرًا. يمكنك أيضًا استخدام عنوان URL كامل لـ GitHub لتحديد واحد. استخدم عنوان URL التالي والصقه في المربع:
***
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
## فتح مستودع GitHub
✅ إذا نجحت، سترى جميع الملفات الخاصة بهذا المستودع محملة في محرر النصوص.
### الطريقة الأولى: من داخل المحرر
### 2. باستخدام عنوان URL
1. انتقل إلى [VSCode.dev](https://vscode.dev). انقر على **"فتح مستودع عن بُعد."**
يمكنك أيضًا استخدام عنوان URL مباشرة لتحميل مستودع. على سبيل المثال، عنوان URL الكامل للمستودع الحالي هو [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners)، ولكن يمكنك استبدال نطاق GitHub بـ `VSCode.dev/github` وتحميل المستودع مباشرة. سيكون عنوان URL الناتج هو [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![فتح مستودع عن بُعد](../../../../8-code-editor/images/open-remote-repository استخدم _لوحة الأوامر_ (Ctrl-Shift-P، أو Cmd-Shift-P على Mac).
## تعديل الملفات
![قائمة اللوحة](../images/palette-menu.png فتح مستودع عن بُعد.”
- اختر الخيار.
- الصق رابط مستودع GitHub الخاص بك (مثل `https://github.com/microsoft/Web-Dev-For-Beginners`) واضغط Enter.
بمجرد فتح المستودع في المتصفح/ vscode.dev، ستكون الخطوة التالية هي إجراء تحديثات أو تغييرات على المشروع.
إذا نجحت، سترى المشروع بالكامل محملًا وجاهزًا للتحرير!
### 1. إنشاء ملف جديد
***
يمكنك إنشاء ملف داخل مجلد موجود أو إنشاؤه في الدليل/المجلد الرئيسي. لإنشاء ملف جديد، افتح الموقع/الدليل الذي تريد حفظ الملف فيه واختر أيقونة _'ملف جديد ...'_ على شريط النشاط _(يسار)_، أعطه اسمًا واضغط على Enter.
### الطريقة الثانية: مباشرة عبر الرابط
![Create a new file](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.ar.png)
قم بتحويل أي رابط مستودع GitHub ليفتح مباشرة في VSCode.dev عن طريق استبدال `github.com` بـ `vscode.dev/github`.
على سبيل المثال:
### 2. تعديل وحفظ ملف في المستودع
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
استخدام vscode.dev مفيد عندما تريد إجراء تحديثات سريعة على مشروعك دون الحاجة إلى تحميل أي برامج محليًا.
لتحديث الكود الخاص بك، انقر على أيقونة 'المستكشف'، الموجودة أيضًا على شريط النشاط لعرض الملفات والمجلدات في المستودع.
اختر ملفًا لفتحه في منطقة الكود، قم بإجراء التغييرات واحفظها.
هذه الميزة تعزز الوصول السريع لأي مشروع.
![Edit a file](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.ar.png)
***
بمجرد الانتهاء من تحديث مشروعك، اختر أيقونة _`التحكم في المصدر`_ التي تحتوي على جميع التغييرات الجديدة التي أجريتها على المستودع.
## تحرير الملفات في مشروعك
لعرض التغييرات التي أجريتها على مشروعك، اختر الملف(الملفات) في مجلد `التغييرات` في الشريط الجانبي الموسع. سيؤدي ذلك إلى فتح 'شجرة العمل' لتتمكن من رؤية التغييرات التي أجريتها على الملف بصريًا. اللون الأحمر يظهر حذفًا من المشروع، بينما اللون الأخضر يشير إلى إضافة.
بمجرد فتح المستودع، يمكنك:
![View changes](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.ar.png)
### 1. **إنشاء ملف جديد**
- في الشريط الجانبي *Explorer*، انتقل إلى المجلد المطلوب أو استخدم الجذر.
- انقر على أيقونة _ملف جديد ..._.
- قم بتسمية الملف، اضغط **Enter**، وسيظهر الملف فورًا.
إذا كنت راضيًا عن التغييرات التي أجريتها، قم بالتحويم على مجلد `التغييرات` وانقر على زر `+` لتجهيز التغييرات. التجهيز يعني ببساطة إعداد التغييرات لتثبيتها على GitHub.
![إنشاء ملف جديد](../images/create-new-file 2. **تحرير وحفظ الملفات**
إذا كنت غير مرتاح لبعض التغييرات وترغب في تجاهلها، قم بالتحويم على مجلد `التغييرات` واختر أيقونة `التراجع`.
- انقر على ملف في *Explorer* لفتحه في منطقة الأكواد.
- قم بإجراء التغييرات حسب الحاجة.
- يقوم VSCode.dev بحفظ تغييراتك تلقائيًا، ولكن يمكنك الضغط على Ctrl+S للحفظ يدويًا.
ثم، اكتب رسالة `التثبيت` _(وصف للتغيير الذي أجريته على المشروع)_, انقر على أيقونة `التحقق` لتثبيت ودفع التغييرات.
![تحرير ملف](../images/edit-a-file.png. **تتبع وتأكيد التغييرات باستخدام التحكم في الإصدارات**
بمجرد الانتهاء من العمل على مشروعك، اختر أيقونة `القائمة الثلاثية` في أعلى اليسار للعودة إلى المستودع على github.com.
يحتوي VSCode.dev على نظام **Git** للتحكم في الإصدارات مدمج!
![Stage & commit changes](../../../../8-code-editor/images/edit-vscode.dev.gif)
- انقر على أيقونة _'التحكم في المصدر'_ لعرض جميع التغييرات التي تم إجراؤها.
- الملفات في مجلد `التغييرات` تظهر الإضافات (باللون الأخضر) والحذف (باللون الأحمر).
![عرض التغييرات](../images/working-tree.png التغييرات بالنقر على `+` بجانب الملفات للتحضير للتأكيد.
- **تجاهل** التغييرات غير المرغوب فيها بالنقر على أيقونة التراجع.
- اكتب رسالة تأكيد واضحة، ثم انقر على علامة الاختيار للتأكيد والدفع.
## استخدام الإضافات
للعودة إلى مستودعك على GitHub، اختر قائمة الهامبرغر في أعلى اليسار.
تثبيت الإضافات على VSCode يسمح لك بإضافة ميزات جديدة وخيارات تخصيص بيئة التطوير على المحرر لتحسين سير العمل الخاص بك. تساعد هذه الإضافات أيضًا في دعم لغات برمجة متعددة وغالبًا ما تكون إما إضافات عامة أو إضافات خاصة باللغات.
![تأكيد التغييرات](../images/edit-vscode.dev مع الإضافات
لتصفح قائمة جميع الإضافات المتاحة، انقر على أيقونة _`الإضافات`_ على شريط النشاط وابدأ بكتابة اسم الإضافة في حقل النص المسمى _'البحث عن إضافات في السوق'_.
تتيح لك الإضافات إضافة لغات، سمات، أدوات تصحيح الأخطاء، وأدوات الإنتاجية إلى VSCode.dev — مما يجعل حياتك البرمجية أسهل وأكثر متعة.
سترى قائمة بالإضافات، كل واحدة تحتوي على **اسم الإضافة، اسم الناشر، وصف قصير، عدد التنزيلات** و **تقييم النجوم**.
### تصفح وإدارة الإضافات
![Extension details](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.ar.png)
- انقر على **أيقونة الإضافات** في شريط النشاط.
- ابحث عن إضافة في صندوق _'البحث عن إضافات في السوق'_.
يمكنك أيضًا عرض جميع الإضافات المثبتة مسبقًا من خلال توسيع مجلد _`المثبتة`_، الإضافات الشائعة المستخدمة من قبل معظم المطورين في مجلد _`الشائعة`_، والإضافات الموصى بها لك إما من قبل المستخدمين في نفس مساحة العمل أو بناءً على الملفات التي فتحتها مؤخرًا في مجلد _`الموصى بها`_.
![تفاصيل الإضافة](../images/extension-details:
- **المثبتة**: جميع الإضافات التي قمت بإضافتها
- **الشائعة**: المفضلة في الصناعة
- **الموصى بها**: مخصصة لسير عملك
![View extensions](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.ar.png)
![عرض الإضافات](
### 1. تثبيت الإضافات
لتثبيت إضافة، اكتب اسم الإضافة في حقل البحث وانقر عليها لعرض معلومات إضافية حول الإضافة في منطقة الكود بمجرد ظهورها في الشريط الجانبي الموسع.
***
يمكنك النقر على _زر التثبيت الأزرق_ في الشريط الجانبي الموسع لتثبيت الإضافة أو استخدام زر التثبيت الذي يظهر في منطقة الكود بمجرد اختيار الإضافة لتحميل معلومات إضافية.
### 1. **تثبيت الإضافات**
![Install extensions](../../../../8-code-editor/images/install-extension.gif)
- أدخل اسم الإضافة في البحث، انقر عليها، واستعرض التفاصيل في المحرر.
- اضغط على **زر التثبيت الأزرق** في الشريط الجانبي _أو_ في منطقة الأكواد الرئيسية.
### 2. تخصيص الإضافات
![تثبيت الإضافات](../images/install-extension 2. **تخصيص الإضافات**
بعد تثبيت الإضافة، قد تحتاج إلى تعديل سلوكها وتخصيصها بناءً على تفضيلاتك. للقيام بذلك، اختر أيقونة الإضافات، وهذه المرة ستظهر الإضافة في مجلد _المثبتة_، انقر على _**أيقونة الترس**_ وانتقل إلى _إعدادات الإضافات_.
- ابحث عن الإضافة المثبتة.
- انقر على **أيقونة الترس** → اختر _إعدادات الإضافة_ لضبط السلوكيات حسب رغبتك.
![Modify extension settings](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.ar.png)
![تعديل إعدادات الإضافة](../images/extension-settings 3. **إدارة الإضافات**
يمكنك:
### 3. إدارة الإضافات
- **تعطيل:** إيقاف تشغيل الإضافة مؤقتًا مع الاحتفاظ بها مثبتة
- **إلغاء التثبيت:** إزالتها نهائيًا إذا لم تعد بحاجة إليها
بعد تثبيت واستخدام الإضافة، يوفر vscode.dev خيارات لإدارة الإضافة بناءً على احتياجات مختلفة. على سبيل المثال، يمكنك اختيار:
ابحث عن الإضافة، اضغط على أيقونة الترس، واختر ‘تعطيل’ أو ‘إلغاء التثبيت’، أو استخدم الأزرار الزرقاء في منطقة الأكواد.
- **تعطيل:** _(يمكنك تعطيل الإضافة مؤقتًا عندما لا تحتاج إليها ولكن لا تريد إلغاء تثبيتها تمامًا)_
***
اختر الإضافة المثبتة في الشريط الجانبي الموسع > انقر على أيقونة الترس > اختر 'تعطيل' أو 'تعطيل (مساحة العمل)' **أو** افتح الإضافة في منطقة الكود وانقر على زر التعطيل الأزرق.
## المهمة
- **إلغاء التثبيت:** اختر الإضافة المثبتة في الشريط الجانبي الموسع > انقر على أيقونة الترس > اختر 'إلغاء التثبيت' **أو** افتح الإضافة في منطقة الكود وانقر على زر إلغاء التثبيت الأزرق.
اختبر مهاراتك: [قم بإنشاء موقع سيرة ذاتية باستخدام vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## المهمة
## استكشاف إضافي ودراسة ذاتية
[إنشاء موقع سيرة ذاتية باستخدام vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- تعمق أكثر مع [وثائق VSCode Web الرسمية](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- استكشف ميزات مساحة العمل المتقدمة، اختصارات لوحة المفاتيح، والإعدادات.
## المراجعة والدراسة الذاتية
***
اقرأ المزيد عن [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) وبعض ميزاته الأخرى.
**الآن أنت جاهز للبرمجة، الإنشاء، والتعاون — من أي مكان، وعلى أي جهاز، باستخدام VSCode.dev!**
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:14:41+00:00",
"source_file": "AGENTS.md",
"language_code": "ar"
}
-->
# AGENTS.md
## نظرة عامة على المشروع
هذا مستودع منهجي تعليمي لتعليم أساسيات تطوير الويب للمبتدئين. المنهج عبارة عن دورة شاملة لمدة 12 أسبوعًا تم تطويرها بواسطة Microsoft Cloud Advocates، ويشمل 24 درسًا عمليًا يغطي JavaScript وCSS وHTML.
### المكونات الرئيسية
- **المحتوى التعليمي**: 24 درسًا منظمًا في وحدات قائمة على المشاريع
- **المشاريع العملية**: Terrarium، لعبة الكتابة، إضافة المتصفح، لعبة الفضاء، تطبيق البنك، محرر الأكواد، ومساعد الدردشة بالذكاء الاصطناعي
- **الاختبارات التفاعلية**: 48 اختبارًا يحتوي كل منها على 3 أسئلة (تقييمات قبل وبعد الدرس)
- **دعم متعدد اللغات**: ترجمات تلقائية لأكثر من 50 لغة عبر GitHub Actions
- **التقنيات**: HTML، CSS، JavaScript، Vue.js 3، Vite، Node.js، Express، Python (للمشاريع المتعلقة بالذكاء الاصطناعي)
### الهيكلية
- مستودع تعليمي مع هيكلية قائمة على الدروس
- يحتوي كل مجلد درس على README، أمثلة أكواد، وحلول
- مشاريع مستقلة في أدلة منفصلة (quiz-app، مشاريع الدروس المختلفة)
- نظام ترجمة باستخدام GitHub Actions (co-op-translator)
- الوثائق تُعرض عبر Docsify ومتاحة كملف PDF
## أوامر الإعداد
هذا المستودع مخصص بشكل أساسي لاستهلاك المحتوى التعليمي. للعمل مع مشاريع محددة:
### إعداد المستودع الرئيسي
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### إعداد تطبيق الاختبارات (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### إعداد واجهة برمجة تطبيقات البنك (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### مشاريع إضافات المتصفح
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### مشاريع لعبة الفضاء
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### مشروع الدردشة (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## سير العمل التطويري
### للمساهمين في المحتوى
1. **قم بعمل Fork للمستودع** إلى حساب GitHub الخاص بك
2. **قم باستنساخ النسخة الخاصة بك** محليًا
3. **أنشئ فرعًا جديدًا** للتعديلات الخاصة بك
4. قم بإجراء تغييرات على محتوى الدروس أو أمثلة الأكواد
5. اختبر أي تغييرات في الأكواد في أدلة المشاريع ذات الصلة
6. قدم طلبات السحب وفقًا لإرشادات المساهمة
### للمتعلمين
1. قم بعمل Fork أو استنساخ المستودع
2. انتقل إلى أدلة الدروس بالتسلسل
3. اقرأ ملفات README لكل درس
4. أكمل اختبارات ما قبل الدرس على https://ff-quizzes.netlify.app/web/
5. اعمل على أمثلة الأكواد في مجلدات الدروس
6. أكمل المهام والتحديات
7. قم بأداء اختبارات ما بعد الدرس
### التطوير المباشر
- **الوثائق**: قم بتشغيل `docsify serve` في الجذر (المنفذ 3000)
- **تطبيق الاختبارات**: قم بتشغيل `npm run dev` في دليل quiz-app
- **المشاريع**: استخدم إضافة Live Server في VS Code لمشاريع HTML
- **مشاريع واجهة برمجة التطبيقات**: قم بتشغيل `npm start` في أدلة واجهة برمجة التطبيقات ذات الصلة
## تعليمات الاختبار
### اختبار تطبيق الاختبارات
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### اختبار واجهة برمجة تطبيقات البنك
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### نهج الاختبار العام
- هذا مستودع تعليمي بدون اختبارات آلية شاملة
- يركز الاختبار اليدوي على:
- تشغيل أمثلة الأكواد بدون أخطاء
- عمل الروابط في الوثائق بشكل صحيح
- اكتمال بناء المشاريع بنجاح
- اتباع الأمثلة لأفضل الممارسات
### الفحوصات قبل التقديم
- قم بتشغيل `npm run lint` في الأدلة التي تحتوي على package.json
- تحقق من صحة روابط Markdown
- اختبر أمثلة الأكواد في المتصفح أو Node.js
- تأكد من أن الترجمات تحافظ على الهيكل الصحيح
## إرشادات نمط الأكواد
### JavaScript
- استخدم صيغة ES6+ الحديثة
- اتبع تكوينات ESLint القياسية المقدمة في المشاريع
- استخدم أسماء متغيرات ووظائف ذات معنى لتوضيح التعليم
- أضف تعليقات تشرح المفاهيم للمتعلمين
- قم بالتنسيق باستخدام Prettier حيث تم تكوينه
### HTML/CSS
- عناصر HTML5 دلالية
- مبادئ التصميم المتجاوب
- اتفاقيات تسمية واضحة للفئات
- تعليقات تشرح تقنيات CSS للمتعلمين
### Python
- إرشادات نمط PEP 8
- أمثلة أكواد واضحة وتعليمية
- تلميحات النوع حيث تكون مفيدة للتعلم
### وثائق Markdown
- تسلسل واضح للعناوين
- كتل الأكواد مع تحديد اللغة
- روابط إلى موارد إضافية
- لقطات وصور في أدلة `images/`
- نص بديل للصور لتحسين الوصول
### تنظيم الملفات
- الدروس مرقمة بالتسلسل (1-getting-started-lessons، 2-js-basics، إلخ)
- يحتوي كل مشروع على `solution/` وغالبًا `start/` أو `your-work/` أدلة
- الصور مخزنة في مجلدات `images/` الخاصة بالدروس
- الترجمات في هيكل `translations/{language-code}/`
## البناء والنشر
### نشر تطبيق الاختبارات (Azure Static Web Apps)
تم تكوين quiz-app للنشر عبر Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
تكوين Azure Static Web Apps:
- **موقع التطبيق**: `/quiz-app`
- **موقع الإخراج**: `dist`
- **سير العمل**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### إنشاء وثائق PDF
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### وثائق Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### عمليات بناء المشاريع المحددة
قد يحتوي كل دليل مشروع على عملية بناء خاصة به:
- مشاريع Vue: `npm run build` لإنشاء حزم الإنتاج
- المشاريع الثابتة: لا توجد خطوة بناء، قم بخدمة الملفات مباشرة
## إرشادات طلب السحب
### تنسيق العنوان
استخدم عناوين واضحة وواصفة تشير إلى منطقة التغيير:
- `[Quiz-app] إضافة اختبار جديد للدرس X`
- `[Lesson-3] إصلاح خطأ في مشروع terrarium`
- `[Translation] إضافة ترجمة إسبانية للدرس 5`
- `[Docs] تحديث تعليمات الإعداد`
### الفحوصات المطلوبة
قبل تقديم طلب السحب:
1. **جودة الأكواد**:
- قم بتشغيل `npm run lint` في أدلة المشاريع المتأثرة
- أصلح جميع أخطاء وتحذيرات التحقق
2. **التحقق من البناء**:
- قم بتشغيل `npm run build` إذا كان ذلك ممكنًا
- تأكد من عدم وجود أخطاء في البناء
3. **التحقق من الروابط**:
- اختبر جميع روابط Markdown
- تحقق من عمل مراجع الصور
4. **مراجعة المحتوى**:
- قم بمراجعة الأخطاء الإملائية والنحوية
- تأكد من صحة أمثلة الأكواد وتعليمها
- تحقق من أن الترجمات تحافظ على المعنى الأصلي
### متطلبات المساهمة
- الموافقة على Microsoft CLA (التحقق الآلي عند أول طلب سحب)
- اتباع [مدونة قواعد السلوك المفتوحة المصدر من Microsoft](https://opensource.microsoft.com/codeofconduct/)
- راجع [CONTRIBUTING.md](./CONTRIBUTING.md) للحصول على إرشادات مفصلة
- أشر إلى أرقام القضايا في وصف طلب السحب إذا كان ذلك ممكنًا
### عملية المراجعة
- يتم مراجعة طلبات السحب بواسطة المشرفين والمجتمع
- يتم إعطاء الأولوية للوضوح التعليمي
- يجب أن تتبع أمثلة الأكواد أفضل الممارسات الحالية
- يتم مراجعة الترجمات للتأكد من دقتها وملاءمتها الثقافية
## نظام الترجمة
### الترجمة التلقائية
- يستخدم GitHub Actions مع سير عمل co-op-translator
- يترجم تلقائيًا إلى أكثر من 50 لغة
- الملفات المصدر في الأدلة الرئيسية
- الملفات المترجمة في هيكل `translations/{language-code}/`
### إضافة تحسينات الترجمة اليدوية
1. حدد الملف في `translations/{language-code}/`
2. قم بإجراء تحسينات مع الحفاظ على الهيكل
3. تأكد من أن أمثلة الأكواد تظل وظيفية
4. اختبر أي محتوى اختبارات محلي
### بيانات الترجمة الوصفية
تتضمن الملفات المترجمة رأس بيانات وصفية:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## تصحيح الأخطاء واستكشاف المشكلات
### المشكلات الشائعة
**فشل تشغيل تطبيق الاختبارات**:
- تحقق من إصدار Node.js (يوصى بـ v14+)
- احذف `node_modules` و`package-lock.json`، ثم قم بتشغيل `npm install` مرة أخرى
- تحقق من تعارض المنافذ (الافتراضي: يستخدم Vite المنفذ 5173)
**فشل تشغيل خادم واجهة برمجة التطبيقات**:
- تحقق من أن إصدار Node.js يلبي الحد الأدنى (node >=10)
- تحقق مما إذا كان المنفذ قيد الاستخدام بالفعل
- تأكد من تثبيت جميع التبعيات باستخدام `npm install`
**فشل تحميل إضافة المتصفح**:
- تحقق من أن manifest.json تم تنسيقه بشكل صحيح
- تحقق من أخطاء وحدة التحكم في المتصفح
- اتبع تعليمات تثبيت الإضافة الخاصة بالمتصفح
**مشكلات مشروع الدردشة Python**:
- تأكد من تثبيت حزمة OpenAI: `pip install openai`
- تحقق من تعيين متغير البيئة GITHUB_TOKEN
- تحقق من أذونات الوصول إلى نماذج GitHub
**Docsify لا يعرض الوثائق**:
- قم بتثبيت docsify-cli عالميًا: `npm install -g docsify-cli`
- قم بتشغيله من دليل الجذر للمستودع
- تحقق من وجود `docs/_sidebar.md`
### نصائح بيئة التطوير
- استخدم VS Code مع إضافة Live Server لمشاريع HTML
- قم بتثبيت إضافات ESLint وPrettier للتنسيق المتسق
- استخدم أدوات DevTools في المتصفح لتصحيح أخطاء JavaScript
- لمشاريع Vue، قم بتثبيت إضافة Vue DevTools للمتصفح
### اعتبارات الأداء
- العدد الكبير من الملفات المترجمة (50+ لغة) يعني أن النسخ الكامل كبير
- استخدم النسخ الضحل إذا كنت تعمل فقط على المحتوى: `git clone --depth 1`
- استبعد الترجمات من عمليات البحث عند العمل على المحتوى باللغة الإنجليزية
- قد تكون عمليات البناء بطيئة في التشغيل الأول (npm install، Vite build)
## اعتبارات الأمان
### متغيرات البيئة
- يجب ألا يتم الالتزام بمفاتيح واجهة برمجة التطبيقات إلى المستودع
- استخدم ملفات `.env` (موجودة بالفعل في `.gitignore`)
- قم بتوثيق متغيرات البيئة المطلوبة في ملفات README الخاصة بالمشاريع
### مشاريع Python
- استخدم البيئات الافتراضية: `python -m venv venv`
- حافظ على تحديث التبعيات
- يجب أن تحتوي رموز الوصول إلى GitHub على الحد الأدنى من الأذونات المطلوبة
### الوصول إلى نماذج GitHub
- مطلوب رموز الوصول الشخصي (PAT) لنماذج GitHub
- يجب تخزين الرموز كمتغيرات بيئة
- لا تقم أبدًا بالالتزام بالرموز أو بيانات الاعتماد
## ملاحظات إضافية
### الجمهور المستهدف
- المبتدئين تمامًا في تطوير الويب
- الطلاب والمتعلمين ذاتيًا
- المعلمون الذين يستخدمون المنهج في الفصول الدراسية
- المحتوى مصمم ليكون سهل الوصول وبناء المهارات تدريجيًا
### فلسفة التعليم
- نهج التعلم القائم على المشاريع
- فحوصات المعرفة المتكررة (اختبارات)
- تمارين البرمجة العملية
- أمثلة تطبيقية من العالم الحقيقي
- التركيز على الأساسيات قبل الإطارات
### صيانة المستودع
- مجتمع نشط من المتعلمين والمساهمين
- تحديثات منتظمة للتبعيات والمحتوى
- يتم مراقبة القضايا والمناقشات بواسطة المشرفين
- تحديثات الترجمة تلقائية عبر GitHub Actions
### الموارد ذات الصلة
- [وحدات Microsoft Learn](https://docs.microsoft.com/learn/)
- [موارد مركز الطلاب](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) موصى به للمتعلمين
- دورات إضافية: الذكاء الاصطناعي التوليدي، علم البيانات، التعلم الآلي، مناهج إنترنت الأشياء متاحة
### العمل مع مشاريع محددة
للحصول على تعليمات مفصلة حول المشاريع الفردية، راجع ملفات README في:
- `quiz-app/README.md` - تطبيق الاختبارات Vue 3
- `7-bank-project/README.md` - تطبيق البنك مع المصادقة
- `5-browser-extension/README.md` - تطوير إضافات المتصفح
- `6-space-game/README.md` - تطوير الألعاب القائمة على Canvas
- `9-chat-project/README.md` - مشروع مساعد الدردشة بالذكاء الاصطناعي
### هيكلية Monorepo
على الرغم من أنه ليس مستودعًا تقليديًا متعدد المشاريع، يحتوي هذا المستودع على مشاريع مستقلة متعددة:
- كل درس مكتفٍ ذاتيًا
- المشاريع لا تشترك في التبعيات
- العمل على المشاريع الفردية دون التأثير على الآخرين
- استنساخ المستودع بالكامل لتجربة المنهج الكامل
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,52 +1,52 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-28T14:53:27+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T08:36:04+00:00",
"source_file": "README.md",
"language_code": "ar"
}
-->
[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![ترخيص GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![مساهمو GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![مشاكل GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![طلبات السحب في GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![طلبات السحب مرحب بها](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![مشاهدو GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![تفرعات GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![نجوم GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![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)
[![فتح في 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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
اتبع هذه الخطوات للبدء باستخدام هذه الموارد:
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. **نسخ المستودع**: انقر [![تفرعات GitHub](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`
3. [**انضم إلى مجتمع Azure AI Foundry على Discord وتواصل مع الخبراء والمطورين الآخرين**](https://discord.com/invite/ByRwuEEgH4)
3. [**انضم إلى Discord الخاص بـ Azure AI Foundry وتواصل مع الخبراء والمطورين الآخرين**](https://discord.com/invite/ByRwuEEgH4)
# تطوير الويب للمبتدئين - منهج دراسي
تعلم أساسيات تطوير الويب من خلال دورة شاملة لمدة 12 أسبوعًا مقدمة من Microsoft Cloud Advocates. تحتوي كل واحدة من الدروس الـ 24 على مشاريع عملية مثل الحدائق الزجاجية، إضافات المتصفح، وألعاب الفضاء، مع التركيز على JavaScript، CSS، وHTML. استمتع بالاختبارات، المناقشات، والمهام العملية. عزز مهاراتك واحتفظ بمعرفتك من خلال منهجنا القائم على المشاريع. ابدأ رحلتك البرمجية اليوم!
تعلم أساسيات تطوير الويب من خلال دورة شاملة لمدة 12 أسبوعًا مقدمة من Microsoft Cloud Advocates. تتناول كل واحدة من الدروس الـ 24 مواضيع JavaScript وCSS وHTML من خلال مشاريع عملية مثل الحدائق الزجاجية، إضافات المتصفح، وألعاب الفضاء. شارك في الاختبارات، المناقشات، والمهام العملية. عزز مهاراتك واحتفظ بمعرفتك من خلال منهجنا التعليمي القائم على المشاريع. ابدأ رحلتك البرمجية اليوم!
### 🌐 دعم متعدد اللغات
#### مدعوم عبر GitHub Action (تلقائي ودائم التحديث)
[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](./README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
[الفرنسية](../fr/README.md) | [الإسبانية](../es/README.md) | [الألمانية](../de/README.md) | [الروسية](../ru/README.md) | [العربية](./README.md) | [الفارسية](../fa/README.md) | [الأردية](../ur/README.md) | [الصينية (المبسطة)](../zh/README.md) | [الصينية (التقليدية، ماكاو)](../mo/README.md) | [الصينية (التقليدية، هونغ كونغ)](../hk/README.md) | [الصينية (التقليدية، تايوان)](../tw/README.md) | [اليابانية](../ja/README.md) | [الكورية](../ko/README.md) | [الهندية](../hi/README.md) | [البنغالية](../bn/README.md) | [الماراثية](../mr/README.md) | [النيبالية](../ne/README.md) | [البنجابية](../pa/README.md) | [البرتغالية (البرتغال)](../pt/README.md) | [البرتغالية (البرازيل)](../br/README.md) | [الإيطالية](../it/README.md) | [البولندية](../pl/README.md) | [التركية](../tr/README.md) | [اليونانية](../el/README.md) | [التايلاندية](../th/README.md) | [السويدية](../sv/README.md) | [الدانماركية](../da/README.md) | [النرويجية](../no/README.md) | [الفنلندية](../fi/README.md) | [الهولندية](../nl/README.md) | [العبرية](../he/README.md) | [الفيتنامية](../vi/README.md) | [الإندونيسية](../id/README.md) | [الماليزية](../ms/README.md) | [التاغالوغية (الفلبينية)](../tl/README.md) | [السواحيلية](../sw/README.md) | [الهنغارية](../hu/README.md) | [التشيكية](../cs/README.md) | [السلوفاكية](../sk/README.md) | [الرومانية](../ro/README.md) | [البلغارية](../bg/README.md) | [الصربية (السيريلية)](../sr/README.md) | [الكرواتية](../hr/README.md) | [السلوفينية](../sl/README.md) | [الأوكرانية](../uk/README.md) | [البورمية (ميانمار)](../my/README.md)
**إذا كنت ترغب في دعم لغات إضافية، يمكنك الاطلاع على اللغات المدعومة [هنا](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)**
#### 🧑‍🎓 _هل أنت طالب؟_
قم بزيارة [**صفحة مركز الطلاب**](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) حيث ستجد موارد للمبتدئين، حزم للطلاب وحتى طرق للحصول على قسيمة شهادة مجانية. هذه الصفحة تستحق الإشارة إليها والعودة إليها من وقت لآخر حيث نقوم بتحديث المحتوى شهريًا.
### 📣 إعلان - _مشروع جديد باستخدام الذكاء الاصطناعي التوليدي_
تمت إضافة مشروع مساعد الذكاء الاصطناعي الجديد، تحقق منه [المشروع](./09-chat-project/README.md)
تم إضافة مشروع مساعد الذكاء الاصطناعي الجديد، تحقق منه [المشروع](./09-chat-project/README.md)
### 📣 إعلان - _منهج جديد_ حول الذكاء الاصطناعي التوليدي لـ JavaScript تم إصداره للتو
@ -54,16 +54,16 @@ CO_OP_TRANSLATOR_METADATA:
قم بزيارة [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) للبدء!
![Background](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.ar.png)
![الخلفية](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.ar.png)
- دروس تغطي كل شيء من الأساسيات إلى RAG.
- تفاعل مع شخصيات تاريخية باستخدام GenAI وتطبيقنا المرافق.
- سرد ممتع وجذاب، ستسافر عبر الزمن!
- سرد ممتع وجذاب، ستقوم بالسفر عبر الزمن!
![character](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.ar.png)
![الشخصية](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.ar.png)
كل درس يتضمن مهمة لإكمالها، اختبار معرفة وتحدي لتوجيهك في تعلم مواضيع مثل:
- هندسة التوجيه
- التوجيه وهندسة التوجيه
- إنشاء تطبيقات النصوص والصور
- تطبيقات البحث
@ -84,17 +84,17 @@ CO_OP_TRANSLATOR_METADATA:
هذا المنهج يحتوي على بيئة تطوير جاهزة للعمل! عند البدء، يمكنك اختيار تشغيل المنهج في [Codespace](https://github.com/features/codespaces/) (_بيئة تعتمد على المتصفح، لا حاجة للتثبيت_)، أو محليًا على جهاز الكمبيوتر الخاص بك باستخدام محرر نصوص مثل [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### إنشاء مستودعك
للحفاظ على عملك بسهولة، يُوصى بإنشاء نسخة خاصة بك من هذا المستودع. يمكنك القيام بذلك بالنقر على زر **Use this template** في أعلى الصفحة. سيؤدي ذلك إلى إنشاء مستودع جديد في حساب GitHub الخاص بك يحتوي على نسخة من المنهج.
للحفاظ على عملك بسهولة، يُوصى بإنشاء نسخة خاصة بك من هذا المستودع. يمكنك القيام بذلك بالنقر على زر **استخدام هذا القالب** في أعلى الصفحة. سيؤدي ذلك إلى إنشاء مستودع جديد في حساب GitHub الخاص بك مع نسخة من المنهج.
اتبع هذه الخطوات:
1. **نسخ المستودع**: اضغط على زر "Fork" في الزاوية العلوية اليمنى من هذه الصفحة.
1. **نسخ المستودع**: انقر على زر "Fork" في الزاوية العلوية اليمنى من هذه الصفحة.
2. **استنساخ المستودع**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### تشغيل المنهج في Codespace
في نسختك من هذا المستودع الذي أنشأته، اضغط على زر **Code** واختر **Open with Codespaces**. سيؤدي ذلك إلى إنشاء Codespace جديد للعمل فيه.
في نسختك من هذا المستودع الذي أنشأته، انقر على زر **Code** واختر **Open with Codespaces**. سيؤدي ذلك إلى إنشاء Codespace جديد للعمل فيه.
[!Codespace](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.ar.png)
#### تشغيل المنهج محليًا على جهاز الكمبيوتر الخاص بك
@ -102,52 +102,51 @@ CO_OP_TRANSLATOR_METADATA:
توصيتنا هي استخدام [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. استنساخ المستودع الخاص بك إلى جهاز الكمبيوتر. يمكنك القيام بذلك بالنقر على زر **Code** ونسخ الرابط:
1. استنساخ مستودعك إلى جهاز الكمبيوتر الخاص بك. يمكنك القيام بذلك بالنقر على زر **Code** ونسخ الرابط:
[!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>` بالرابط الذي نسخته للتو:
```bash
git clone <your-repository-url>
```
2. افتح المجلد في Visual Studio Code. يمكنك القيام بذلك بالنقر على **File**
> **فتح المجلد** واختيار المجلد الذي قمت باستنساخه للتو.
> الإضافات الموصى بها لـ 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) - لمساعدتك على كتابة الكود بسرعة أكبر
## 📂 كل درس يتضمن:
- رسم تخطيطي اختياري
- فيديو إضافي اختياري
- اختبار تمهيدي قبل الدرس
- درس مكتوب
- بالنسبة للدروس القائمة على المشاريع، إرشادات خطوة بخطوة لبناء المشروع
- اختبارات المعرفة
- تحدي
- قراءة إضافية
- واجب
- [اختبار بعد الدرس](https://ff-quizzes.netlify.app/web/)
> **ملاحظة حول الاختبارات**: جميع الاختبارات موجودة في مجلد Quiz-app، بإجمالي 48 اختبارًا يحتوي كل منها على ثلاثة أسئلة. يمكن الوصول إليها [هنا](https://ff-quizzes.netlify.app/web/) ويمكن تشغيل تطبيق الاختبار محليًا أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`.
```
2. افتح المجلد في Visual Studio Code. يمكنك القيام بذلك بالنقر على **File** > **Open Folder** واختيار المجلد الذي قمت باستنساخه للتو.
> إضافات موصى بها لـ 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) - لمساعدتك في كتابة الكود بسرعة
## 📂 كل درس يتضمن:
- رسم توضيحي اختياري
- فيديو إضافي اختياري
- اختبار تمهيدي قبل الدرس
- درس مكتوب
- بالنسبة للدروس القائمة على المشاريع، إرشادات خطوة بخطوة حول كيفية بناء المشروع
- اختبارات المعرفة
- تحدي
- قراءة إضافية
- مهمة
- [اختبار بعد الدرس](https://ff-quizzes.netlify.app/web/)
> **ملاحظة حول الاختبارات**: جميع الاختبارات موجودة في مجلد Quiz-app، بإجمالي 48 اختبارًا يحتوي كل منها على ثلاثة أسئلة. يمكن الوصول إليها [هنا](https://ff-quizzes.netlify.app/web/) ويمكن تشغيل تطبيق الاختبارات محليًا أو نشره على 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 |
| 03 | البداية | إمكانية الوصول | تعلم أساسيات إمكانية الوصول على الويب | [أساسيات إمكانية الوصول](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 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 |
| 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 |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML عملي | بناء HTML لإنشاء تيراريوم عبر الإنترنت، مع التركيز على بناء التخطيط | [مقدمة في HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML عملي | بناء HTML لإنشاء تيراريوم عبر الإنترنت، مع التركيز على إنشاء تخطيط | [مقدمة في HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS عملي | بناء CSS لتنسيق التيراريوم عبر الإنترنت، مع التركيز على أساسيات CSS بما في ذلك جعل الصفحة متجاوبة | [مقدمة في CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | إغلاق JavaScript، التلاعب بـ DOM | بناء JavaScript لجعل التيراريوم يعمل كواجهة سحب وإفلات، مع التركيز على الإغلاق والتلاعب بـ DOM | [إغلاق JavaScript، التلاعب بـ DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | إغلاق JavaScript، التلاعب بـ DOM | بناء JavaScript لجعل التيراريوم يعمل كواجهة سحب/إفلات، مع التركيز على الإغلاق والتلاعب بـ DOM | [إغلاق JavaScript، التلاعب بـ DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | بناء لعبة كتابة | تعلم كيفية استخدام أحداث لوحة المفاتيح لتوجيه منطق تطبيق JavaScript الخاص بك | [البرمجة القائمة على الأحداث](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | العمل مع المتصفحات | تعلم كيفية عمل المتصفحات، تاريخها، وكيفية إنشاء العناصر الأولى لإضافة المتصفح | [حول المتصفحات](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | بناء نموذج، استدعاء API وتخزين المتغيرات في التخزين المحلي | بناء عناصر JavaScript لإضافة المتصفح لاستدعاء API باستخدام المتغيرات المخزنة في التخزين المحلي | [APIs، النماذج، والتخزين المحلي](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
@ -155,7 +154,7 @@ CO_OP_TRANSLATOR_METADATA:
| 15 | [Space Game](./6-space-game/solution/README.md) | تطوير الألعاب المتقدم باستخدام JavaScript | تعلم الوراثة باستخدام الفئات والتكوين ونمط Pub/Sub، استعدادًا لبناء لعبة | [مقدمة في تطوير الألعاب المتقدم](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | الرسم على اللوحة | تعلم واجهة برمجة التطبيقات Canvas، المستخدمة لرسم العناصر على الشاشة | [الرسم على اللوحة](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | تحريك العناصر على الشاشة | اكتشاف كيفية تحريك العناصر باستخدام الإحداثيات الكارتيسية وواجهة برمجة التطبيقات Canvas | [تحريك العناصر](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | اكتشاف الاصطدام | جعل العناصر تصطدم وتتفاعل مع بعضها باستخدام ضغطات المفاتيح وتوفير وظيفة تبريد لضمان أداء اللعبة | [اكتشاف الاصطدام](./6-space-game/4-collision-detection/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | اكتشاف التصادم | جعل العناصر تصطدم وتتفاعل مع بعضها باستخدام ضغطات المفاتيح وتوفير وظيفة تبريد لضمان أداء اللعبة | [اكتشاف التصادم](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | تسجيل النقاط | إجراء حسابات رياضية بناءً على حالة اللعبة وأدائها | [تسجيل النقاط](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | إنهاء اللعبة وإعادة تشغيلها | تعلم كيفية إنهاء اللعبة وإعادة تشغيلها، بما في ذلك تنظيف الأصول وإعادة تعيين قيم المتغيرات | [حالة النهاية](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | قوالب HTML والمسارات في تطبيق ويب | تعلم كيفية إنشاء هيكل موقع ويب متعدد الصفحات باستخدام التوجيه وقوالب HTML | [قوالب HTML والمسارات](./7-bank-project/1-template-route/README.md) | Yohan |
@ -165,27 +164,27 @@ CO_OP_TRANSLATOR_METADATA:
| 25 | [Browser/VScode Code](../../8-code-editor) | العمل مع VScode | تعلم كيفية استخدام محرر الكود | [استخدام محرر الكود VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | العمل مع الذكاء الاصطناعي | تعلم كيفية بناء مساعد ذكاء اصطناعي خاص بك | [مشروع مساعد الذكاء الاصطناعي](./9-chat-project/README.md) | Chris |
## 🏫 منهجية التعليم
## 🏫 النهج التربوي
تم تصميم المنهج لدينا مع مبدأين تربويين رئيسيين في الاعتبار:
تم تصميم منهجنا بناءً على مبدأين تربويين رئيسيين:
* التعلم القائم على المشاريع
* الاختبارات المتكررة
يُدرّس البرنامج أساسيات JavaScript وHTML وCSS، بالإضافة إلى أحدث الأدوات والتقنيات التي يستخدمها مطورو الويب اليوم. سيحصل الطلاب على فرصة لتطوير خبرة عملية من خلال بناء لعبة كتابة، تيراريوم افتراضي، إضافة متصفح صديقة للبيئة، لعبة بأسلوب غزو الفضاء، وتطبيق مصرفي للشركات. بحلول نهاية السلسلة، سيكون لدى الطلاب فهم قوي لتطوير الويب.
يُعلم البرنامج أساسيات JavaScript وHTML وCSS، بالإضافة إلى أحدث الأدوات والتقنيات التي يستخدمها مطورو الويب اليوم. سيحصل الطلاب على فرصة لتطوير خبرة عملية من خلال بناء لعبة كتابة، تيراريوم افتراضي، إضافة متصفح صديقة للبيئة، لعبة بأسلوب Space Invader، وتطبيق مصرفي للشركات. بحلول نهاية السلسلة، سيكون لدى الطلاب فهم قوي لتطوير الويب.
> 🎓 يمكنك أخذ الدروس الأولى في هذا المنهج كـ [مسار تعلم](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) على Microsoft Learn!
من خلال ضمان توافق المحتوى مع المشاريع، تصبح العملية أكثر جاذبية للطلاب ويتم تعزيز الاحتفاظ بالمفاهيم. كما كتبنا عدة دروس تمهيدية في أساسيات JavaScript لتقديم المفاهيم، مقترنة بفيديو من مجموعة "[سلسلة المبتدئين: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" من الفيديوهات التعليمية، التي ساهم بعض مؤلفيها في هذا المنهج.
بالإضافة إلى ذلك، يحدد اختبار منخفض المخاطر قبل الفصل نية الطالب نحو تعلم موضوع معين، بينما يضمن اختبار ثانٍ بعد الفصل مزيدًا من الاحتفاظ. تم تصميم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه بالكامل أو جزئيًا. تبدأ المشاريع صغيرة وتصبح أكثر تعقيدًا بحلول نهاية الدورة التي تستغرق 12 أسبوعًا.
بالإضافة إلى ذلك، يحدد اختبار منخفض المخاطر قبل الفصل نية الطالب نحو تعلم موضوع معين، بينما يضمن اختبار ثانٍ بعد الفصل مزيدًا من الاحتفاظ بالمعلومات. تم تصميم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه بالكامل أو جزئيًا. تبدأ المشاريع صغيرة وتصبح أكثر تعقيدًا بحلول نهاية الدورة التي تستمر 12 أسبوعًا.
بينما تجنبنا عمدًا تقديم أطر عمل JavaScript للتركيز على المهارات الأساسية المطلوبة كمطور ويب قبل اعتماد إطار عمل، ستكون الخطوة التالية الجيدة لإكمال هذا المنهج هي التعرف على Node.js من خلال مجموعة أخرى من الفيديوهات: "[سلسلة المبتدئين: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
بينما تجنبنا عمدًا إدخال أطر عمل JavaScript للتركيز على المهارات الأساسية المطلوبة كمطور ويب قبل اعتماد إطار عمل، فإن الخطوة التالية الجيدة بعد إكمال هذا المنهج ستكون تعلم Node.js عبر مجموعة أخرى من الفيديوهات: "[سلسلة المبتدئين: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> قم بزيارة [مدونة قواعد السلوك](CODE_OF_CONDUCT.md) و[إرشادات المساهمة](CONTRIBUTING.md). نرحب بملاحظاتك البناءة!
## 🧭 الوصول دون اتصال
يمكنك تشغيل هذا التوثيق دون اتصال باستخدام [Docsify](https://docsify.js.org/#/). قم باستنساخ هذا المستودع، [تثبيت 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
@ -200,21 +199,31 @@ CO_OP_TRANSLATOR_METADATA:
- [الذكاء الاصطناعي التوليدي باستخدام JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [الذكاء الاصطناعي التوليدي باستخدام Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [الذكاء الاصطناعي للمبتدئين](https://aka.ms/ai-beginners)
- [علم البيانات للمبتدئين](https://aka.ms/datascience-beginners)
- [تعلم الآلة للمبتدئين](https://aka.ms/ml-beginners)
- [الأمن السيبراني للمبتدئين](https://github.com/microsoft/Security-101)
- [تطوير الويب للمبتدئين](https://aka.ms/webdev-beginners)
- [إنترنت الأشياء للمبتدئين](https://aka.ms/iot-beginners)
- [تطوير الواقع الممتد للمبتدئين](https://github.com/microsoft/xr-development-for-beginners)
- [إتقان GitHub Copilot للاستخدام الذكي](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [إتقان GitHub Copilot لمطوري C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [اختر مغامرتك الخاصة مع Copilot](https://github.com/microsoft/CopilotAdventures)
- [علم البيانات للمبتدئين](https://aka.ms/datascience-beginners)
- [تعلم الآلة للمبتدئين](https://aka.ms/ml-beginners)
- [الأمن السيبراني للمبتدئين](https://github.com/microsoft/Security-101)
- [تطوير الويب للمبتدئين](https://aka.ms/webdev-beginners)
- [إنترنت الأشياء للمبتدئين](https://aka.ms/iot-beginners)
- [تطوير XR للمبتدئين](https://github.com/microsoft/xr-development-for-beginners)
- [إتقان GitHub Copilot للاستخدام التفاعلي](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [إتقان GitHub Copilot لمطوري C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [اختر مغامرتك الخاصة مع Copilot](https://github.com/microsoft/CopilotAdventures)
## الترخيص
## الحصول على المساعدة
هذا المستودع مرخص بموجب ترخيص MIT. راجع ملف [LICENSE](../../LICENSE) لمزيد من المعلومات.
إذا واجهت أي صعوبة أو كانت لديك أسئلة حول بناء تطبيقات الذكاء الاصطناعي، انضم إلى:
[![مجتمع Discord الخاص بـ Azure AI Foundry](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
إذا كانت لديك ملاحظات حول المنتج أو واجهت أخطاء أثناء البناء، قم بزيارة:
[![منتدى المطورين الخاص بـ Azure AI Foundry](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## الترخيص
هذا المستودع مرخص بموجب ترخيص MIT. راجع ملف [LICENSE](../../LICENSE) لمزيد من المعلومات.
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,45 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-25T20:55:29+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T08:35:50+00:00",
"source_file": "for-teachers.md",
"language_code": "ar"
}
-->
## للمعلمين
### للمعلمين
هل ترغب في استخدام هذا المنهج في صفك الدراسي؟ لا تتردد في ذلك!
مرحبًا بكم في استخدام هذا المنهج الدراسي في صفوفكم. يعمل بسلاسة مع GitHub Classroom ومنصات إدارة التعلم (LMS) الرائدة، ويمكن أيضًا استخدامه كمستودع مستقل مع طلابكم.
في الواقع، يمكنك استخدامه مباشرةً على GitHub من خلال GitHub Classroom.
### الاستخدام مع GitHub Classroom
للقيام بذلك، قم بعمل fork لهذا المستودع. ستحتاج إلى إنشاء مستودع لكل درس، لذا ستحتاج إلى استخراج كل مجلد إلى مستودع منفصل. بهذه الطريقة، يمكن لـ [GitHub Classroom](https://classroom.github.com/classrooms) التعامل مع كل درس بشكل منفصل.
لإدارة الدروس والواجبات لكل مجموعة، قم بإنشاء مستودع واحد لكل درس بحيث يمكن لـ GitHub Classroom ربط كل واجب بشكل مستقل.
هذه [التعليمات الكاملة](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) ستعطيك فكرة عن كيفية إعداد صفك الدراسي.
- قم بعمل Fork لهذا المستودع إلى مؤسستك.
- أنشئ مستودعًا منفصلًا لكل درس عن طريق استخراج مجلد الدرس إلى مستودع خاص به.
- الخيار الأول: أنشئ مستودعات فارغة (واحد لكل درس) وانسخ محتويات مجلد الدرس إلى كل منها.
- الخيار الثاني: استخدم طريقة تحافظ على تاريخ Git (مثل تقسيم مجلد إلى مستودع جديد) إذا كنت بحاجة إلى إثبات الأصل.
- في GitHub Classroom، أنشئ واجبًا لكل درس واشر إليه بالمستودع الخاص بالدرس.
- الإعدادات الموصى بها:
- رؤية المستودع: خاصة لأعمال الطلاب.
- استخدم الكود المبدئي من الفرع الافتراضي لمستودع الدرس.
- أضف قوالب للقضايا وطلبات السحب للامتحانات والتسليمات.
- قم بتكوين التقييم التلقائي والاختبارات إذا كانت دروسك تتضمنها.
- التوصيات التي تساعد:
- أسماء المستودعات مثل lesson-01-intro، lesson-02-html، إلخ.
- التصنيفات: امتحان، واجب، بحاجة إلى مراجعة، متأخر، إعادة التسليم.
- العلامات/الإصدارات لكل مجموعة (مثل v2025-term1).
## استخدامه في Moodle أو Canvas أو Blackboard
نصيحة: تجنب تخزين المستودعات داخل المجلدات المتزامنة (مثل OneDrive/Google Drive) لتجنب تعارضات Git على Windows.
هذا المنهج يعمل بشكل جيد مع أنظمة إدارة التعلم! استخدم [ملف التحميل الخاص بـ Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) للحصول على المحتوى الكامل، أو جرّب [ملف Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc) الذي يحتوي على جزء من المحتوى. لا يدعم Moodle Cloud تصدير Common Cartridge بالكامل، لذا يُفضل استخدام ملف التحميل الخاص بـ Moodle الذي يمكن رفعه إلى Canvas. يرجى إبلاغنا بكيفية تحسين هذه التجربة.
### الاستخدام مع Moodle، Canvas، أو Blackboard
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.ar.png)
> المنهج في صف Moodle
يتضمن هذا المنهج حزمًا قابلة للاستيراد لعمليات سير العمل الشائعة في LMS.
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.ar.png)
> المنهج في Canvas
- Moodle: استخدم ملف التحميل الخاص بـ Moodle [ملف التحميل الخاص بـ Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) لتحميل الدورة الكاملة.
- Common Cartridge: استخدم ملف Common Cartridge [ملف Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc) لتوافق أوسع مع LMS.
- ملاحظات:
- لدى Moodle Cloud دعم محدود لـ Common Cartridge. يُفضل استخدام ملف Moodle أعلاه، والذي يمكن أيضًا تحميله في Canvas.
- بعد الاستيراد، راجع الوحدات، المواعيد النهائية، وإعدادات الامتحانات لتتناسب مع جدول الفصل الدراسي الخاص بك.
## استخدام المستودع كما هو
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.ar.png)
> المنهج الدراسي في فصل Moodle
إذا كنت ترغب في استخدام هذا المستودع كما هو حاليًا، دون استخدام GitHub Classroom، فهذا ممكن أيضًا. ستحتاج إلى التواصل مع طلابك لتحديد الدرس الذي ستعملون عليه معًا.
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.ar.png)
> المنهج الدراسي في Canvas
في صيغة التعليم عبر الإنترنت (Zoom، Teams، أو غيرها)، يمكنك إنشاء غرف نقاش فرعية للاختبارات، وتوجيه الطلاب لمساعدتهم على الاستعداد للتعلم. ثم قم بدعوة الطلاب للاختبارات واطلب منهم إرسال إجاباتهم كـ "issues" في وقت محدد. يمكنك القيام بنفس الشيء مع الواجبات إذا كنت تريد من الطلاب العمل بشكل تعاوني في العلن.
### استخدام المستودع مباشرة (بدون Classroom)
إذا كنت تفضل صيغة أكثر خصوصية، اطلب من طلابك عمل fork للمنهج، درسًا بدرس، إلى مستودعاتهم الخاصة على GitHub كمستودعات خاصة، ومنحك حق الوصول. بعد ذلك، يمكنهم إكمال الاختبارات والواجبات بشكل خاص وإرسالها إليك عبر "issues" في مستودع صفك الدراسي.
إذا كنت تفضل عدم استخدام GitHub Classroom، يمكنك تشغيل الدورة مباشرة من هذا المستودع.
هناك العديد من الطرق لجعل هذا يعمل في صيغة التعليم عبر الإنترنت. يرجى إبلاغنا بما يناسبك أكثر!
- التنسيقات المتزامنة/عبر الإنترنت (Zoom/Teams):
- قم بتقديم جلسات قصيرة بقيادة المرشد؛ استخدم غرف النقاش للامتحانات.
- أعلن عن نافذة زمنية للامتحانات؛ يقدم الطلاب الإجابات كقضايا GitHub.
- بالنسبة للواجبات التعاونية، يعمل الطلاب في مستودعات الدروس العامة ويفتحون طلبات السحب.
- التنسيقات الخاصة/غير المتزامنة:
- يقوم الطلاب بعمل Fork لكل درس إلى مستودعاتهم **الخاصة** ويضيفونك كمتعاون.
- يقدمون عبر القضايا (الامتحانات) وطلبات السحب (الواجبات) على مستودع الفصل الدراسي الخاص بك أو على Forkاتهم الخاصة.
## نرجو أن تشاركنا أفكارك!
### أفضل الممارسات
نرغب في جعل هذا المنهج مناسبًا لك ولطلابك. تواصل معنا في [ركن المعلمين](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) وافتح [**issue جديد**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) لأي طلبات أو أخطاء أو ملاحظات.
- قدم درسًا تمهيديًا حول أساسيات Git/GitHub، القضايا، وطلبات السحب.
- استخدم قوائم التحقق في القضايا للامتحانات/الواجبات متعددة الخطوات.
- أضف CONTRIBUTING.md و CODE_OF_CONDUCT.md لتحديد قواعد الفصل الدراسي.
- أضف ملاحظات حول إمكانية الوصول (نصوص بديلة، تسميات توضيحية) وقدم ملفات PDF قابلة للطباعة.
- قم بتحديد إصدار المحتوى لكل فصل دراسي وقم بتجميد مستودعات الدروس بعد النشر.
### الملاحظات والدعم
نريد أن يعمل هذا المنهج الدراسي بشكل جيد لك ولطلابك. يرجى فتح قضية جديدة في هذا المستودع للإبلاغ عن الأخطاء، الطلبات، أو التحسينات، أو بدء مناقشة في Teacher Corner.
---
**إخلاء المسؤولية**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.

@ -1,18 +1,18 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T11:58:36+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T10:49:11+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "bg"
}
-->
# Въведение в програмните езици и инструменти за разработка
Този урок обхваща основите на програмните езици. Темите, разгледани тук, са приложими за повечето съвременни програмни езици. В секцията "Инструменти за разработка" ще научите за полезен софтуер, който помага на разработчиците.
Този урок обхваща основите на програмните езици. Темите, разгледани тук, се отнасят за повечето съвременни програмни езици. В секцията „Инструменти за разработка“ ще научите за полезен софтуер, който помага на разработчиците.
![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.bg.png)
> Скица от [Tomomi Imura](https://twitter.com/girlie_mac)
![Въведение в програмирането](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.bg.png)
> Скетч от [Tomomi Imura](https://twitter.com/girlie_mac)
## Предварителен тест
[Предварителен тест](https://forms.office.com/r/dru4TE0U9n?origin=lprLink)
@ -30,21 +30,21 @@ CO_OP_TRANSLATOR_METADATA:
## Какво е програмиране?
Програмирането (известно още като кодиране) е процесът на писане на инструкции за устройство като компютър или мобилно устройство. Пишем тези инструкции с помощта на програмен език, който след това се интерпретира от устройството. Тези набори от инструкции могат да бъдат наричани с различни имена, но *програма*, *компютърна програма*, *приложение (app)* и *изпълним файл* са някои от популярните термини.
Програмирането (известно още като кодиране) е процесът на писане на инструкции за устройство като компютър или мобилно устройство. Пишем тези инструкции с програмни езици, които след това се интерпретират от устройството. Тези набори от инструкции могат да бъдат наричани с различни имена, но *програма*, *компютърна програма*, *приложение (app)* и *изпълним файл* са някои от популярните термини.
*Програма* може да бъде всичко, което е написано с код: уебсайтове, игри и приложения за телефони са програми. Въпреки че е възможно да се създаде програма без писане на код, основната логика се интерпретира от устройството и тази логика най-вероятно е написана с код. Програма, която *работи* или *изпълнява* код, изпълнява инструкции. Устройството, с което четете този урок, изпълнява програма, за да го покаже на екрана ви.
✅ Направете малко проучване: кой се счита за първия програмист в света?
✅ Направете малко проучване: Кой се счита за първия компютърен програмист в света?
## Програмни езици
Програмните езици позволяват на разработчиците да пишат инструкции за устройство. Устройствата могат да разбират само двоичен код (1 и 0), а за *повечето* разработчици това не е много ефективен начин за комуникация. Програмните езици са средство за комуникация между хората и компютрите.
Програмните езици се предлагат в различни формати и могат да служат за различни цели. Например, JavaScript се използва основно за уеб приложения, докато Bash се използва основно за операционни системи.
Програмните езици се предлагат в различни формати и могат да служат за различни цели. Например, JavaScript се използва основно за уеб приложения, докато Bash се използва предимно за операционни системи.
*Ниските нива на езиците* обикновено изискват по-малко стъпки от *високите нива на езиците*, за да интерпретират инструкциите. Въпреки това, високите нива на езиците са популярни заради тяхната четимост и поддръжка. JavaScript се счита за език от високо ниво.
*Ниските нива на езиците* обикновено изискват по-малко стъпки за интерпретиране на инструкции от устройството в сравнение с *високите нива на езиците*. Въпреки това, високите нива на езиците са популярни заради тяхната четимост и поддръжка. JavaScript се счита за език от високо ниво.
Следният код илюстрира разликата между език от високо ниво (JavaScript) и език от ниско ниво (ARM assembly code).
Следният код илюстрира разликата между език от високо ниво (JavaScript) и език от ниско ниво (ARM асемблерен код).
```javascript
let number = 10
@ -85,25 +85,25 @@ back add r0,r1
Повярвайте или не, *и двата правят едно и също*: отпечатват последователност на Фибоначи до 10.
✅ Последователността на Фибоначи е [дефинирана](https://en.wikipedia.org/wiki/Fibonacci_number) като набор от числа, при които всяко число е сумата от предходните две, започвайки от 0 и 1. Първите 10 числа в последователността на Фибоначи са 0, 1, 1, 2, 3, 5, 8, 13, 21 и 34.
✅ Последователността на Фибоначи е [дефинирана](https://en.wikipedia.org/wiki/Fibonacci_number) като набор от числа, при които всяко число е сумата от двете предходни, започвайки от 0 и 1. Първите 10 числа в последователността на Фибоначи са 0, 1, 1, 2, 3, 5, 8, 13, 21 и 34.
## Елементи на програмата
Една инструкция в програмата се нарича *израз* и обикновено има символ или интервал, който маркира къде инструкцията приключва или *се прекратява*. Начинът, по който програмата се прекратява, варира за всеки език.
Една инструкция в програмата се нарича *изявление* и обикновено има символ или разстояние, което маркира къде завършва инструкцията, или *се прекратява*. Начинът, по който програмата се прекратява, варира за всеки език.
Изразите в програмата могат да разчитат на данни, предоставени от потребителя или от друго място, за да изпълнят инструкции. Данните могат да променят поведението на програмата, затова програмните езици предлагат начин за временно съхранение на данни, за да могат да бъдат използвани по-късно. Това се нарича *променливи*. Променливите са изрази, които инструктират устройството да запази данни в паметта си. Променливите в програмите са подобни на променливите в алгебрата, където имат уникално име и стойността им може да се променя с времето.
Изявленията в програмата могат да разчитат на данни, предоставени от потребител или друг източник, за да изпълнят инструкции. Данните могат да променят поведението на програмата, затова програмните езици предлагат начин за временно съхраняване на данни, за да могат да се използват по-късно. Това са *променливи*. Променливите са изявления, които инструктират устройството да запази данни в паметта си. Променливите в програмите са подобни на променливите в алгебрата, където имат уникално име и стойността им може да се променя с времето.
Има вероятност някои изрази да не бъдат изпълнени от устройството. Това обикновено е по дизайн, когато е написано от разработчика, или случайно, когато възникне неочаквана грешка. Този тип контрол върху приложението го прави по-устойчиво и лесно за поддръжка. Обикновено тези промени в контрола се случват, когато са изпълнени определени условия. Често използван израз в съвременното програмиране за контрол на изпълнението на програмата е `if..else`.
Има вероятност някои изявления да не бъдат изпълнени от устройството. Това обикновено е по дизайн, когато е написано от разработчика, или случайно, когато възникне неочаквана грешка. Този тип контрол върху приложението го прави по-устойчиво и поддържаемо. Обикновено тези промени в контрола се случват, когато са изпълнени определени условия. Често използвано изявление в съвременното програмиране за контрол на начина, по който програмата работи, е `if..else`.
✅ Ще научите повече за този тип изрази в следващите уроци.
✅ Ще научите повече за този тип изявления в следващите уроци.
## Инструменти за разработка
[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade")
[![Инструменти за разработка](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Инструменти за разработка")
> 🎥 Кликнете върху изображението по-горе за видео за инструментите
В тази секция ще научите за някои софтуери, които може да намерите за много полезни, когато започнете професионалния си път като разработчик.
В тази секция ще научите за някои софтуери, които може да намерите за много полезни, когато започнете професионалното си развитие.
**Среда за разработка** е уникален набор от инструменти и функции, които разработчикът използва често при писане на софтуер. Някои от тези инструменти са персонализирани според специфичните нужди на разработчика и могат да се променят с времето, ако разработчикът промени приоритетите си в работата, личните проекти или когато използва различен програмен език. Средите за разработка са толкова уникални, колкото и разработчиците, които ги използват.
@ -147,7 +147,7 @@ back add r0,r1
### Инструменти за команден ред
Някои разработчици предпочитат по-малко графичен изглед за ежедневните си задачи и разчитат на командния ред, за да ги изпълнят. Писането на код изисква значително количество писане, и някои разработчици предпочитат да не прекъсват потока си на клавиатурата. Те използват клавишни комбинации, за да превключват между прозорци на работния плот, работят върху различни файлове и използват инструменти. Повечето задачи могат да бъдат изпълнени с мишка, но едно от предимствата на командния ред е, че много неща могат да бъдат направени с инструменти за команден ред, без да се налага да се превключва между мишката и клавиатурата. Друго предимство на командния ред е, че той е конфигурируем и можете да запазите персонализирана конфигурация, да я промените по-късно и да я импортирате на други машини за разработка. Тъй като средите за разработка са толкова уникални за всеки разработчик, някои избягват използването на командния ред, други разчитат изцяло на него, а трети предпочитат комбинация от двете.
Някои разработчици предпочитат по-малко графичен изглед за ежедневните си задачи и разчитат на командния ред, за да го постигнат. Писането на код изисква значително количество писане, и някои разработчици предпочитат да не прекъсват потока си на клавиатурата. Те използват клавишни комбинации, за да превключват между прозорци на работния плот, работят върху различни файлове и използват инструменти. Повечето задачи могат да бъдат изпълнени с мишка, но едно от предимствата на командния ред е, че много неща могат да се направят с инструменти за команден ред, без да се налага превключване между мишката и клавиатурата. Друго предимство на командния ред е, че той е конфигурируем и можете да запазите персонализирана конфигурация, да я промените по-късно и да я импортирате на други машини за разработка. Тъй като средите за разработка са толкова уникални за всеки разработчик, някои избягват използването на командния ред, други разчитат изцяло на него, а трети предпочитат комбинация от двете.
### Популярни опции за команден ред
@ -182,7 +182,7 @@ back add r0,r1
### Документация
Когато разработчик иска да научи нещо ново, той най-вероятно ще се обърне към документацията, за да разбере как да го използва. Разработчиците често разчитат на документацията, за да ги насочи как да използват инструменти и езици правилно, както и за да придобият по-дълбоки знания за това как работят.
Когато разработчик иска да научи нещо ново, най-вероятно ще се обърне към документацията, за да научи как да го използва. Разработчиците често разчитат на документацията, за да ги насочи как правилно да използват инструменти и езици, както и за да придобият по-дълбоки знания за това как работят.
#### Популярна документация за уеб разработка
@ -192,7 +192,7 @@ back add r0,r1
- [Документация на Microsoft за разработчици](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), за [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ Направете проучване: Сега, когато знаете основите на средата на уеб разработчика, сравнете я със средата на уеб дизайнера.
✅ Направете проучване: Сега, когато знаете основите на средата на уеб разработчика, сравнете и контрастирайте с тази на уеб дизайнера.
---
@ -211,7 +211,9 @@ back add r0,r1
[Четене на документация](assignment.md)
> Забележка: Когато избирате инструменти за вашето задание, не избирайте редактори, браузъри или инструменти за команден ред, които вече са изброени по-горе.
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,25 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-28T08:25:41+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T10:49:53+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "bg"
}
-->
# Четене на документация
## Инструкции
Има много инструменти, които един уеб разработчик може да използва, описани в [MDN документацията за клиентски инструменти](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Изберете 3 инструмента, които не са обхванати в урока, обяснете защо един уеб разработчик би ги използвал, и потърсете инструмент, който попада в тази категория, като споделите неговата документация. Не използвайте същите примери за инструменти от MDN документацията.
Има много инструменти, които един уеб разработчик може да използва, изброени в [MDN документацията за инструменти от страна на клиента](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Изберете **три инструмента**, които **не са обхванати в този урок** (с изключение на [специфични инструменти или препратки към съдържанието на урока]), обяснете **защо** един уеб разработчик би използвал всеки инструмент и намерете инструмент, който отговаря на всяка категория. За всеки, споделете линк към неговата официална документация (не примера, използван в MDN).
**Формат:**
- Име на инструмента
- Защо един уеб разработчик би го използвал (2-3 изречения)
- Линк към документацията
**Дължина:**
- Всяко обяснение трябва да бъде 2-3 изречения.
## Критерии за оценка
Отлично | Задоволително | Нуждае се от подобрение
--- | --- | --- |
|Обяснено е защо уеб разработчик би използвал инструмента| Обяснено е как, но не защо разработчик би използвал инструмента| Не е споменато нито как, нито защо разработчик би използвал инструмента |
--- | --- | -- |
Обяснено защо уеб разработчик би използвал инструмента | Обяснено как, но не защо разработчик би използвал инструмента | Не е споменато как или защо разработчик би използвал инструмента |
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-28T08:08:33+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T10:48:09+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "bg"
}
@ -11,15 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Инструкции
Представете си, че създавате количка за пазаруване. Напишете документация за типовете данни, които ще са ви необходими, за да завършите вашето пазаруване. Как стигнахте до избора си?
Представете си, че създавате количка за пазаруване. Напишете документация за типовете данни, които ще са ви необходими, за да завършите вашето пазаруване. За всеки тип данни обяснете как и защо бихте го използвали и предоставете пример. Шестте типа данни в JavaScript са: String, Number, Boolean, Null, Undefined и Object.
## Критерии за оценка
Критерии | Отлично | Задоволително | Нуждае се от подобрение
--- | --- | --- | --- |
||Шест типа данни са изброени и подробно разгледани, като е документирано тяхното използване|Четири типа данни са разгледани|Два типа данни са разгледани|
Типове данни | Всички шест типа данни са изброени, подробно разгледани и документирани с примери | Четири типа данни са разгледани с известно обяснение | Два типа данни са разгледани с минимално обяснение |
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,25 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-28T08:13:09+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T10:50:11+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "bg"
}
-->
# Практикувайте вашия HTML: Създайте макет на блог
# HTML Практическо Упражнение: Създаване на Макет за Блог
## Цел
Проектирайте и ръчно напишете HTML структурата за начална страница на личен блог. Това упражнение ще ви помогне да практикувате семантичен HTML, планиране на оформление и организиране на код.
## Инструкции
Представете си, че проектирате или преработвате вашия личен уебсайт. Създайте графичен макет на сайта си и след това запишете HTML кода, който бихте използвали, за да изградите различните елементи на сайта. Можете да направите това на хартия и да го сканирате, или да използвате софтуер по ваш избор, но се уверете, че HTML кодът е написан ръчно.
1. **Проектирайте Макета на Вашия Блог**
- Направете визуален макет на началната страница на вашия блог. Включете ключови секции като заглавие, навигация, основно съдържание, странична лента и долен колонтитул.
- Можете да използвате хартия и да сканирате вашия макет или да използвате дигитални инструменти (например Figma, Adobe XD, Canva или дори PowerPoint).
2. **Идентифицирайте HTML Елементите**
- Направете списък с HTML елементите, които планирате да използвате за всяка секция (например `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>` и др.).
3. **Напишете HTML Маркировката**
- Ръчно напишете HTML за вашия макет. Фокусирайте се върху семантичната структура и добрите практики.
- Включете поне 10 различни HTML елемента.
- Добавете коментари, за да обясните вашите избори и структура.
4. **Предайте Вашата Работа**
- Качете вашия макет и HTML файла.
- По желание, предоставете кратко отражение (23 изречения) за вашите дизайнерски решения.
## Критерии за Оценка
| Критерии | Отлично | Задоволително | Нуждае се от Подобрение |
|------------------|------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
| Визуален Макет | Ясен, детайлен макет с обозначени секции и обмислено оформление | Основен макет с някои обозначени секции | Минимален или неясен макет; липсват обозначения на секции |
| HTML Елементи | Използва 10+ семантични HTML елемента; демонстрира разбиране за структура и добри практики | Използва 59 HTML елемента; някаква семантична структура | Използва по-малко от 5 елемента; липсва семантична структура |
| Качество на Кода | Добре организиран, четим код с коментари; следва HTML стандартите | Предимно организиран код; малко коментари | Неорганизиран код; липсват коментари |
| Отражение | Задълбочено отражение върху дизайнерските избори и предизвикателства | Основно отражение | Липсва отражение или е нерелевантно |
## Критерии за оценка
## Съвети
| Критерии | Отлично | Задоволително | Нуждае се от подобрение |
| -------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| | Макетът на блога е представен визуално с поне 10 елемента на маркиране | Макетът на блога е представен визуално с около 5 елемента на маркиране | Макетът на блога е представен визуално с най-много 3 елемента на маркиране |
- Използвайте семантични HTML тагове за по-добра достъпност и SEO.
- Организирайте кода си с отстъпи и коментари.
- Консултирайте се с [MDN HTML Elements Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) за насоки.
- Помислете как вашето оформление може да бъде разширено или стилизирано в бъдещи упражнения.
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,25 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-28T08:15:38+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T10:50:01+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "bg"
}
-->
# Рефакториране на CSS
# CSS Рефакторинг Задача
## Цел
Рефакторирайте проекта за терариум, като използвате **Flexbox** или **CSS Grid** за оформление. Актуализирайте HTML и CSS, за да постигнете модерен, адаптивен дизайн. Не е необходимо да внедрявате плъзгащи се елементи—фокусирайте се само върху оформлението и стилизирането.
## Инструкции
Престилизирайте терариума, използвайки Flexbox или CSS Grid, и направете скрийншоти, за да покажете, че сте го тествали на няколко браузъра. Може да се наложи да промените маркировката, затова създайте нова версия на приложението с изкуството на място за вашия рефактор. Не се притеснявайте за правенето на елементите плъзгаеми; засега само рефакторирайте HTML и CSS.
1. **Създайте нова версия** на приложението за терариум. Актуализирайте маркъпа и CSS, за да използвате Flexbox или CSS Grid за оформление.
2. **Уверете се, че изкуството и елементите са на място**, както в оригиналната версия.
3. **Тествайте дизайна си** в поне два различни браузъра (например Chrome, Firefox, Edge).
4. **Направете скрийншоти** на вашия терариум във всеки браузър, за да демонстрирате съвместимост между браузърите.
5. **Предайте** актуализирания код и скрийншотите.
## Критерии за оценка
| Критерий | Отлично | Задоволително | Нуждае се от подобрение |
| -------- | ---------------------------------------------------------------- | ---------------------------- | ------------------------------------ |
| | Представете напълно престилизиран терариум, използвайки Flexbox или CSS Grid | Престилизирайте някои от елементите | Не успявате да престилизирате терариума изобщо |
| Критерии | Отлично | Задоволително | Нуждае се от подобрение |
|------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| Оформление | Напълно рефакторирано с Flexbox или CSS Grid; визуално привлекателно и адаптивно | Някои елементи рефакторирани; частично използване на Flexbox или Grid | Малко или никакво използване на Flexbox или Grid; оформление непроменено |
| Съвместимост между браузъри | Предоставени скрийншоти за множество браузъри; консистентен външен вид | Скрийншоти за един браузър; малки несъответствия | Без скрийншоти или големи несъответствия |
| Качество на кода | Чист, добре организиран HTML/CSS; ясни коментари | Някаква организация; малко коментари | Неорганизиран код; липсват коментари |
## Съвети
- Прегледайте [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) и [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) ръководствата.
- Използвайте инструменти за разработчици на браузъра, за да тествате адаптивността.
- Коментирайте кода си за яснота.
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,158 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T11:56:33+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T10:48:53+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "bg"
}
-->
# Използване на редактор за код
***
Този урок обхваща основите на използването на [VSCode.dev](https://vscode.dev), уеб-базиран редактор за код, за да можете да правите промени в кода си и да допринасяте към проект, без да инсталирате нищо на компютъра си.
# Използване на редактор за код: Овладяване на [VSCode.dev](https://vscode.dev)
## Цели на обучението
В този урок ще научите как да:
- Използвате редактор за код в проект с код
- Следите промените с помощта на система за контрол на версиите
- Персонализирате редактора за разработка
**Добре дошли!**
Този урок ще ви преведе от основите до напредналото използване на [VSCode.dev](https://vscode.dev)—мощният, уеб-базиран редактор за код. Ще научите как уверено да редактирате код, да управлявате проекти, да следите промените, да инсталирате разширения и да си сътрудничите като професионалист—всичко това директно от браузъра, без нужда от инсталация.
### Предварителни изисквания
***
Преди да започнете, ще трябва да си създадете акаунт в [GitHub](https://github.com). Отидете на [GitHub](https://github.com/) и създайте акаунт, ако все още нямате такъв.
## Цели на обучението
### Въведение
До края на този урок ще можете:
Редакторът за код е основен инструмент за писане на програми и сътрудничество по съществуващи проекти с код. След като разберете основите на редактора и как да използвате неговите функции, ще можете да ги прилагате при писане на код.
- Ефективно да използвате редактор за код за всеки проект, навсякъде
- Безпроблемно да следите работата си с вграден контрол на версиите
- Да персонализирате и подобрите работния си процес с настройки и разширения на редактора
## Първи стъпки с VSCode.dev
***
[VSCode.dev](https://vscode.dev) е редактор за код в уеб пространството. Не е необходимо да инсталирате нищо, за да го използвате просто го отворете като всеки друг уебсайт. За да започнете с редактора, отворете следния линк: [https://vscode.dev](https://vscode.dev). Ако не сте влезли в [GitHub](https://github.com/), следвайте инструкциите, за да влезете или да създадете нов акаунт и след това влезте.
## Предпоставки
След като се зареди, интерфейсът трябва да изглежда подобно на това изображение:
За да започнете, **регистрирайте се за безплатен [GitHub](https://github.com) акаунт**, който ви позволява да управлявате хранилища за код и да си сътрудничите с хора от цял свят. Ако все още нямате акаунт, [създайте го тук](https://github.com/).
![Default VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.bg.png)
***
Има три основни секции, започвайки от най-ляво и движейки се надясно:
## Защо да използвате уеб-базиран редактор за код?
1. ента за активност_, която включва няколко икони, като лупа 🔎, зъбно колело ⚙️ и други.
2. Разширена лента за активност, която по подразбиране показва _Explorer_ и се нарича _странична лента_.
3. И накрая, зоната за код вдясно.
**Редакторът за код** като VSCode.dev е вашият команден център за писане, редактиране и управление на код. С интуитивен интерфейс, множество функции и незабавен достъп през браузъра, можете:
Кликнете върху всяка от иконите, за да видите различно меню. След като приключите, кликнете върху _Explorer_, за да се върнете там, откъдето започнахте.
- Да редактирате проекти на всяко устройство
- Да избегнете неудобството от инсталации
- Да си сътрудничите и допринасяте незабавно
Когато започнете да създавате код или да променяте съществуващ код, това ще се случва в най-голямата зона вдясно. Ще използвате тази зона и за визуализиране на съществуващ код, което ще направите след малко.
След като се почувствате комфортно с VSCode.dev, ще сте готови да се справите с задачи за кодиране от всяко място, по всяко време.
## Отваряне на GitHub хранилище
***
Първото нещо, което трябва да направите, е да отворите GitHub хранилище. Има няколко начина за отваряне на хранилище. В тази секция ще видите два различни начина, по които можете да отворите хранилище и да започнете работа по промените.
## Започване с VSCode.dev
### 1. Чрез редактора
Отидете на **[VSCode.dev](https://vscode.dev)**—без инсталация, без изтегляния. Влизането с GitHub отключва пълен достъп, включително синхронизиране на вашите настройки, разширения и хранилища. Ако бъдете подканени, свържете вашия GitHub акаунт.
Използвайте самия редактор, за да отворите отдалечено хранилище. Ако отидете на [VSCode.dev](https://vscode.dev), ще видите бутон _"Open Remote Repository"_:
След зареждане, вашето работно пространство ще изглежда така:
![Open remote repository](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.bg.png)
![Default VSCode.dev](../images/default-vscode-dev има три основни секции отляво надясно:
- **Лента за активност:** Иконите като 🔎 (Търсене), ⚙️ (Настройки), файлове, контрол на източника и др.
- **Странична лента:** Променя контекста си според избраната икона от лентата за активност (по подразбиране е *Explorer*, за да показва файлове).
- **Област за редактиране/код:** Най-голямата секция вдясно—там, където всъщност редактирате и преглеждате кода.
Можете също да използвате командния палет. Командният палет е поле за въвеждане, където можете да напишете всяка дума, която е част от команда или действие, за да намерите правилната команда за изпълнение. Използвайте менюто в горния ляв ъгъл, след това изберете _View_, и след това изберете _Command Palette_, или използвайте следната клавишна комбинация: Ctrl-Shift-P (на MacOS това е Command-Shift-P).
Кликнете върху иконите, за да разгледате функциите, но се върнете към _Explorer_, за да запазите мястото си.
![Palette Menu](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.bg.png)
***
След като менюто се отвори, напишете _open remote repository_ и изберете първата опция. Ще се покажат няколко хранилища, на които сте част или които сте отваряли наскоро. Можете също да използвате пълен GitHub URL, за да изберете едно. Използвайте следния URL и го поставете в полето:
## Отваряне на GitHub хранилище
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
### Метод 1: От редактора
✅ Ако всичко е успешно, ще видите всички файлове от това хранилище, заредени в текстовия редактор.
1. Отидете на [VSCode.dev](https://vscode.dev). Кликнете върху **"Open Remote Repository."**
### 2. Използване на URL
![Open remote repository](../../../../8-code-editor/images/open-remote-repository използвайте _Command Palette_ (Ctrl-Shift-P или Cmd-Shift-P на Mac).
Можете също да използвате директно URL, за да заредите хранилище. Например, пълният URL за текущото хранилище е [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), но можете да замените домейна на GitHub с `VSCode.dev/github` и директно да заредите хранилището. Полученият URL ще бъде [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![Palette Menu](../images/palette-menu.pngopen remote repository.”
- Изберете опцията.
- Поставете URL адреса на вашето GitHub хранилище (например, `https://github.com/microsoft/Web-Dev-For-Beginners`) и натиснете Enter.
## Редактиране на файлове
Ако е успешно, ще видите целия проект зареден и готов за редактиране!
След като сте отворили хранилището в браузъра/vscode.dev, следващата стъпка е да направите актуализации или промени в проекта.
***
### 1. Създаване на нов файл
### Метод 2: Моментално чрез URL
Можете да създадете файл в съществуваща папка или в основната директория/папка. За да създадете нов файл, отворете местоположението/директорията, където искате да запазите файла, и изберете иконата _'New file ...'_ в лентата за активност _(вляво)_, дайте му име и натиснете Enter.
Преобразувайте всеки URL адрес на GitHub хранилище, за да го отворите директно в VSCode.dev, като замените `github.com` с `vscode.dev/github`.
Пример:
![Create a new file](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.bg.png)
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
### 2. Редактиране и запазване на файл в хранилището
Тази функция значително ускорява достъпа до ВСЕКИ проект.
Използването на vscode.dev е полезно, когато искате бързо да актуализирате проекта си, без да зареждате софтуер локално.
За да актуализирате кода си, кликнете върху иконата 'Explorer', също разположена в лентата за активност, за да видите файловете и папките в хранилището.
Изберете файл, за да го отворите в зоната за код, направете промените си и запазете.
***
![Edit a file](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.bg.png)
## Редактиране на файлове във вашия проект
След като приключите с актуализациите на проекта си, изберете иконата _`source control`_, която съдържа всички нови промени, които сте направили в хранилището.
След като хранилището ви е отворено, можете:
За да видите промените, които сте направили в проекта си, изберете файла(ите) в папката `Changes` в разширената лента за активност. Това ще отвори 'Working Tree', за да видите визуално промените, които сте направили във файла. Червеното показва премахване от проекта, докато зеленото означава добавяне.
### 1. **Създаване на нов файл**
- В страничната лента *Explorer*, навигирайте до желаната папка или използвайте корена.
- Кликнете върху иконата _New file ..._.
- Назовете файла, натиснете **Enter**, и файлът ви ще се появи незабавно.
![View changes](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.bg.png)
![Create a new file](../images/create-new-file 2. **Редактиране и запазване на файлове**
Ако сте доволни от направените промени, задръжте курсора върху папката `Changes` и кликнете върху бутона `+`, за да подготвите промените. Подготвянето означава, че подготвяте промените си за комитване в GitHub.
- Кликнете върху файл в *Explorer*, за да го отворите в областта за код.
- Направете необходимите промени.
- VSCode.dev автоматично запазва вашите промени, но можете да натиснете Ctrl+S за ръчно запазване.
Ако обаче не сте доволни от някои промени и искате да ги отхвърлите, задръжте курсора върху папката `Changes` и изберете иконата `undo`.
![Edit a file](../images/edit-a-file.png. **Следене и записване на промени с контрол на версиите**
След това въведете `commit message` _(описание на промените, които сте направили в проекта)_, кликнете върху иконата `check`, за да комитнете и изпратите промените.
VSCode.dev има интегриран **Git** контрол на версиите!
След като приключите с работата по проекта си, изберете иконата `hamburger menu` в горния ляв ъгъл, за да се върнете към хранилището на github.com.
- Кликнете върху иконата _'Source Control'_, за да видите всички направени промени.
- Файловете в папката `Changes` показват добавки (зелено) и изтривания (червено).
![View changes](../images/working-tree.png промените, като кликнете върху `+` до файловете, за да ги подготвите за запис.
- **Отхвърляне** на нежелани промени, като кликнете върху иконата за отмяна.
- Напишете ясен коментар за записа, след това кликнете върху отметката, за да запишете и изпратите.
![Stage & commit changes](../../../../8-code-editor/images/edit-vscode.dev.gif)
За да се върнете към вашето хранилище в GitHub, изберете менюто с три линии в горния ляв ъгъл.
## Използване на разширения
![Stage & commit changes](../images/edit-vscode.dev с разширения
Инсталирането на разширения във VSCode ви позволява да добавяте нови функции и опции за персонализиране на средата за разработка, за да подобрите работния си процес. Тези разширения също така ви помагат да добавите поддръжка за множество програмни езици и често са или общи разширения, или базирани на езици.
Разширенията ви позволяват да добавяте езици, теми, дебъгери и инструменти за продуктивност към VSCode.dev—правейки живота ви като програмист по-лесен и по-забавен.
За да разгледате списъка с всички налични разширения, кликнете върху иконата _`Extensions`_ в лентата за активност и започнете да въвеждате името на разширението в текстовото поле с надпис _'Search Extensions in Marketplace'_.
Ще видите списък с разширения, всяко от които съдържа **името на разширението, името на издателя, едно изречение описание, броя на изтеглянията** и **оценка със звезди**.
### Преглед и управление на разширения
![Extension details](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.bg.png)
- Кликнете върху **иконата за разширения** в лентата за активност.
- Потърсете разширение в полето _'Search Extensions in Marketplace'_.
Можете също да видите всички предварително инсталирани разширения, като разширите папката _`Installed`_, популярни разширения, използвани от повечето разработчици, в папката _`Popular`_ и препоръчани разширения за вас, базирани на наскоро отворените ви файлове или от потребители в същото работно пространство, в папката _`Recommended`_.
![Extension details](../images/extension-details:
- **Installed**: Всички разширения, които сте добавили
- **Popular**: Любими в индустрията
- **Recommended**: Препоръчани за вашия работен процес
![View extensions](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.bg.png)
![View extensions](
### 1. Инсталиране на разширения
За да инсталирате разширение, въведете името му в полето за търсене и кликнете върху него, за да видите допълнителна информация за разширението в зоната за код, след като се появи в разширената лента за активност.
***
Можете или да кликнете върху _синия бутон за инсталиране_ в разширената лента за активност, за да го инсталирате, или да използвате бутона за инсталиране, който се появява в зоната за код, след като изберете разширението, за да заредите допълнителна информация.
### 1. **Инсталиране на разширения**
![Install extensions](../../../../8-code-editor/images/install-extension.gif)
- Въведете името на разширението в търсачката, кликнете върху него и прегледайте детайлите в редактора.
- Натиснете **синия бутон Install** в страничната лента _или_ в основната област за код.
### 2. Персонализиране на разширения
![Install extensions](../images/install-extension 2. **Персонализиране на разширения**
След като инсталирате разширението, може да се наложи да модифицирате поведението му и да го персонализирате според предпочитанията си. За да направите това, изберете иконата Extensions, и този път вашето разширение ще се появи в папката _Installed_, кликнете върху _**Gear icon**_ и навигирайте до _Extensions Setting_.
- Намерете инсталираното разширение.
- Кликнете върху **иконата на зъбно колело** → изберете _Extension Settings_, за да настроите поведението според вашите предпочитания.
![Modify extension settings](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.bg.png)
![Modify extension settings](../images/extension-settings 3. **Управление на разширения**
Можете:
### 3. Управление на разширения
- **Disable:** Временно да изключите разширение, като го запазите инсталирано
- **Uninstall:** Да го премахнете окончателно, ако вече не ви е необходимо
След като инсталирате и използвате разширението, vscode.dev предлага опции за управление на разширението според различни нужди. Например, можете да изберете да:
Намерете разширението, натиснете иконата на зъбно колело и изберете Disable или Uninstall, или използвайте сините бутони в областта за код.
- **Деактивирате:** _(Можете временно да деактивирате разширение, когато вече не ви е необходимо, но не искате да го деинсталирате напълно)_
***
Изберете инсталираното разширение в разширената лента за активност > кликнете върху Gear icon > изберете 'Disable' или 'Disable (Workspace)' **ИЛИ** Отворете разширението в зоната за код и кликнете върху синия бутон Disable.
## Задача
- **Деинсталирате:** Изберете инсталираното разширение в разширената лента за активност > кликнете върху Gear icon > изберете 'Uninstall' **ИЛИ** Отворете разширението в зоната за код и кликнете върху синия бутон Uninstall.
Тествайте уменията си: [Създайте уебсайт за резюме, използвайки vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## Задача
## Допълнително проучване и самостоятелно обучение
[Създайте уебсайт за автобиография, използвайки vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- Разгледайте подробно [официалната документация за VSCode Web](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Изследвайте напреднали функции на работното пространство, клавишни комбинации и настройки.
## Преглед и самостоятелно обучение
***
Прочетете повече за [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) и някои от другите му функции.
**Сега сте готови да пишете код, да създавате и да си сътрудничите—от всяко място, на всяко устройство, използвайки VSCode.dev!**
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:39:45+00:00",
"source_file": "AGENTS.md",
"language_code": "bg"
}
-->
# AGENTS.md
## Преглед на проекта
Това е хранилище за образователна учебна програма, предназначена за обучение на начинаещи в основите на уеб разработката. Учебната програма представлява цялостен 12-седмичен курс, разработен от Microsoft Cloud Advocates, включващ 24 практически урока, обхващащи JavaScript, CSS и HTML.
### Основни компоненти
- **Образователно съдържание**: 24 структурирани урока, организирани в модули, базирани на проекти
- **Практически проекти**: Терариум, Игра за писане, Разширение за браузър, Космическа игра, Банково приложение, Редактор на код и AI чат асистент
- **Интерактивни тестове**: 48 теста с по 3 въпроса (оценки преди/след урока)
- **Поддръжка на много езици**: Автоматични преводи на над 50 езика чрез GitHub Actions
- **Технологии**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (за AI проекти)
### Архитектура
- Образователно хранилище със структура, базирана на уроци
- Всяка папка с урок съдържа README, примери за код и решения
- Самостоятелни проекти в отделни директории (quiz-app, различни проекти за уроци)
- Система за превод чрез GitHub Actions (co-op-translator)
- Документация, предоставена чрез Docsify и налична като PDF
## Команди за настройка
Това хранилище е основно за консумация на образователно съдържание. За работа с конкретни проекти:
### Основна настройка на хранилището
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Настройка на Quiz App (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### API за банков проект (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Проекти за разширения за браузър
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Проекти за космическа игра
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Чат проект (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Работен процес за разработка
### За сътрудници на съдържание
1. **Форкнете хранилището** към вашия GitHub акаунт
2. **Клонирайте вашия форк** локално
3. **Създайте нов клон** за вашите промени
4. Направете промени в съдържанието на уроците или примерите за код
5. Тествайте промените в кода в съответните директории на проектите
6. Изпратете pull requests, следвайки указанията за принос
### За учащи
1. Форкнете или клонирайте хранилището
2. Навигирайте до директориите на уроците последователно
3. Прочетете README файловете за всеки урок
4. Завършете тестовете преди урока на https://ff-quizzes.netlify.app/web/
5. Работете върху примерите за код в папките на уроците
6. Завършете задачите и предизвикателствата
7. Направете тестовете след урока
### Жива разработка
- **Документация**: Стартирайте `docsify serve` в root (порт 3000)
- **Quiz App**: Стартирайте `npm run dev` в директорията quiz-app
- **Проекти**: Използвайте разширението Live Server на VS Code за HTML проекти
- **API проекти**: Стартирайте `npm start` в съответните API директории
## Инструкции за тестване
### Тестване на Quiz App
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Тестване на Bank API
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### Общ подход към тестване
- Това е образователно хранилище без изчерпателни автоматизирани тестове
- Ръчното тестване се фокусира върху:
- Примерите за код се изпълняват без грешки
- Линковете в документацията работят правилно
- Проектите се изграждат успешно
- Примерите следват най-добрите практики
### Проверки преди подаване
- Стартирайте `npm run lint` в директории с package.json
- Уверете се, че линковете в markdown са валидни
- Тествайте примерите за код в браузър или Node.js
- Проверете дали преводите запазват правилната структура
## Насоки за стил на код
### JavaScript
- Използвайте модерен ES6+ синтаксис
- Следвайте стандартните конфигурации на ESLint, предоставени в проектите
- Използвайте смислени имена на променливи и функции за образователна яснота
- Добавяйте коментари, обясняващи концепции за учащите
- Форматирайте с Prettier, където е конфигуриран
### HTML/CSS
- Семантични HTML5 елементи
- Принципи на отзивчив дизайн
- Ясни конвенции за именуване на класове
- Коментари, обясняващи CSS техники за учащите
### Python
- Насоки за стил PEP 8
- Ясни, образователни примери за код
- Типови подсказки, където са полезни за обучение
### Markdown документация
- Ясна йерархия на заглавията
- Блокове с код със спецификация на езика
- Линкове към допълнителни ресурси
- Скрийншоти и изображения в директории `images/`
- Alt текст за изображения за достъпност
### Организация на файловете
- Уроците са номерирани последователно (1-getting-started-lessons, 2-js-basics и т.н.)
- Всеки проект има `solution/` и често `start/` или `your-work/` директории
- Изображенията се съхраняват в специфични за урока папки `images/`
- Преводите са в структура `translations/{language-code}/`
## Изграждане и разгръщане
### Разгръщане на Quiz App (Azure Static Web Apps)
Quiz-app е конфигуриран за разгръщане в Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Конфигурация на Azure Static Web Apps:
- **Местоположение на приложението**: `/quiz-app`
- **Местоположение на изхода**: `dist`
- **Работен процес**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Генериране на PDF документация
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Документация Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Изграждане на специфични за проектите
Всяка директория на проект може да има свой собствен процес на изграждане:
- Vue проекти: `npm run build` създава производствени пакети
- Статични проекти: Няма стъпка за изграждане, файловете се обслужват директно
## Насоки за Pull Request
### Формат на заглавието
Използвайте ясни, описателни заглавия, указващи областта на промяната:
- `[Quiz-app] Добавяне на нов тест за урок X`
- `[Lesson-3] Поправка на правописна грешка в проекта за терариум`
- `[Translation] Добавяне на испански превод за урок 5`
- `[Docs] Актуализиране на инструкции за настройка`
### Необходими проверки
Преди подаване на PR:
1. **Качество на кода**:
- Стартирайте `npm run lint` в засегнатите директории на проекта
- Поправете всички грешки и предупреждения за lint
2. **Проверка на изграждането**:
- Стартирайте `npm run build`, ако е приложимо
- Уверете се, че няма грешки при изграждането
3. **Валидиране на линкове**:
- Тествайте всички линкове в markdown
- Уверете се, че препратките към изображения работят
4. **Преглед на съдържанието**:
- Проверете за правописни и граматически грешки
- Уверете се, че примерите за код са правилни и образователни
- Проверете дали преводите запазват оригиналното значение
### Изисквания за принос
- Съгласие с Microsoft CLA (автоматична проверка при първия PR)
- Следване на [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Вижте [CONTRIBUTING.md](./CONTRIBUTING.md) за подробни указания
- Посочете номера на проблема в описанието на PR, ако е приложимо
### Процес на преглед
- PR се преглеждат от поддържащите и общността
- Образователната яснота е приоритет
- Примерите за код трябва да следват текущите най-добри практики
- Преводите се преглеждат за точност и културна уместност
## Система за превод
### Автоматичен превод
- Използва GitHub Actions с работен процес co-op-translator
- Превежда автоматично на над 50 езика
- Изходните файлове са в основните директории
- Преведените файлове са в директории `translations/{language-code}/`
### Добавяне на ръчни подобрения на превода
1. Намерете файла в `translations/{language-code}/`
2. Направете подобрения, като запазите структурата
3. Уверете се, че примерите за код остават функционални
4. Тествайте всяко локализирано съдържание на тестове
### Метаданни за превод
Преведените файлове включват заглавка с метаданни:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Отстраняване на грешки и проблеми
### Чести проблеми
**Quiz app не стартира**:
- Проверете версията на Node.js (препоръчва се v14+)
- Изтрийте `node_modules` и `package-lock.json`, стартирайте `npm install` отново
- Проверете за конфликти на портове (по подразбиране: Vite използва порт 5173)
**API сървърът не стартира**:
- Уверете се, че версията на Node.js отговаря на минималните изисквания (node >=10)
- Проверете дали портът вече се използва
- Уверете се, че всички зависимости са инсталирани с `npm install`
**Разширението за браузър не се зарежда**:
- Проверете дали manifest.json е правилно форматиран
- Проверете конзолата на браузъра за грешки
- Следвайте специфичните за браузъра инструкции за инсталиране на разширения
**Проблеми с Python чат проекта**:
- Уверете се, че пакетът OpenAI е инсталиран: `pip install openai`
- Проверете дали променливата на средата GITHUB_TOKEN е зададена
- Проверете разрешенията за достъп до GitHub Models
**Docsify не обслужва документацията**:
- Инсталирайте docsify-cli глобално: `npm install -g docsify-cli`
- Стартирайте от root директорията на хранилището
- Проверете дали `docs/_sidebar.md` съществува
### Съвети за работна среда
- Използвайте VS Code с разширението Live Server за HTML проекти
- Инсталирайте разширенията ESLint и Prettier за последователно форматиране
- Използвайте DevTools на браузъра за дебъгване на JavaScript
- За Vue проекти инсталирайте разширението Vue DevTools за браузъра
### Съображения за производителност
- Голям брой преведени файлове (над 50 езика) означава, че пълните клони са големи
- Използвайте плитко клониране, ако работите само върху съдържание: `git clone --depth 1`
- Изключете преводите от търсенията, когато работите върху съдържание на английски
- Процесите на изграждане може да са бавни при първото стартиране (npm install, Vite build)
## Съображения за сигурност
### Променливи на средата
- API ключовете никога не трябва да се комитират в хранилището
- Използвайте `.env` файлове (вече в `.gitignore`)
- Документирайте необходимите променливи на средата в README файловете на проектите
### Python проекти
- Използвайте виртуални среди: `python -m venv venv`
- Поддържайте зависимостите актуални
- GitHub токените трябва да имат минимално необходимите разрешения
### Достъп до GitHub Models
- Лични токени за достъп (PAT) са необходими за GitHub Models
- Токените трябва да се съхраняват като променливи на средата
- Никога не комитвайте токени или идентификационни данни
## Допълнителни бележки
### Целева аудитория
- Напълно начинаещи в уеб разработката
- Студенти и самостоятелни учащи
- Учители, използващи учебната програма в класове
- Съдържанието е проектирано за достъпност и постепенно изграждане на умения
### Образователна философия
- Подход, базиран на проекти
- Чести проверки на знанията (тестове)
- Практически упражнения за кодиране
- Примери за реално приложение
- Фокус върху основите преди фреймуърковете
### Поддръжка на хранилището
- Активна общност от учащи и сътрудници
- Редовни актуализации на зависимостите и съдържанието
- Проблемите и дискусиите се наблюдават от поддържащите
- Актуализациите на преводите се автоматизират чрез GitHub Actions
### Свързани ресурси
- [Модули на Microsoft Learn](https://docs.microsoft.com/learn/)
- [Ресурси на Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) препоръчва се за учащи
- Допълнителни курсове: Генеративен AI, Наука за данни, ML, IoT учебни програми
### Работа с конкретни проекти
За подробни инструкции относно отделните проекти, вижте README файловете в:
- `quiz-app/README.md` - Vue 3 приложение за тестове
- `7-bank-project/README.md` - Банково приложение с автентикация
- `5-browser-extension/README.md` - Разработка на разширение за браузър
- `6-space-game/README.md` - Разработка на игра, базирана на Canvas
- `9-chat-project/README.md` - Проект за AI чат асистент
### Структура на монорепото
Въпреки че не е традиционно монорепо, това хранилище съдържа множество независими проекти:
- Всеки урок е самостоятелен
- Проектите не споделят зависимости
- Работете върху отделни проекти, без да засягате други
- Клонирайте цялото хранилище за пълно учебно преживяване
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,168 +1,171 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T11:42:01+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T10:46:32+00:00",
"source_file": "README.md",
"language_code": "bg"
}
-->
[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
Следвайте тези стъпки, за да започнете да използвате тези ресурси:
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`
3. [**Присъединете се към Azure AI Foundry Discord и се срещнете с експерти и други разработчици**](https://discord.com/invite/ByRwuEEgH4)
Следвайте тези стъпки, за да започнете да използвате ресурсите:
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)
2. **Клонирайте хранилището**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Присъединете се към Azure AI Foundry Discord и се срещнете с експерти и други разработчици**](https://discord.com/invite/ByRwuEEgH4)
# Уеб разработка за начинаещи - учебна програма
# Уеб разработка за начинаещи - учебна програма
Научете основите на уеб разработката с нашия 12-седмичен курс, създаден от Microsoft Cloud Advocates. Всяка от 24-те лекции разглежда JavaScript, CSS и HTML чрез практически проекти като терариуми, разширения за браузъри и космически игри. Участвайте в тестове, дискусии и практически задачи. Подобрете уменията си и оптимизирайте запаметяването на знания с нашата ефективна проектно-базирана методология. Започнете своето кодиращо пътешествие още днес!
Научете основите на уеб разработката с нашия 12-седмичен курс, създаден от Microsoft Cloud Advocates. Всяка от 24-те лекции обхваща JavaScript, CSS и HTML чрез практически проекти като терариуми, разширения за браузъри и космически игри. Участвайте в тестове, дискусии и практически задачи. Подобрете уменията си и оптимизирайте запаметяването на знания с нашата ефективна проектно-базирана методология. Започнете своето кодиращо пътешествие още днес!
### 🌐 Поддръжка на много езици
### 🌐 Поддръжка на много езици
#### Поддържано чрез GitHub Action (Автоматизирано и винаги актуално)
#### Поддържано чрез GitHub Action (Автоматизирано и винаги актуално)
[Френски](../fr/README.md) | [Испански](../es/README.md) | [Немски](../de/README.md) | [Руски](../ru/README.md) | [Арабски](../ar/README.md) | [Персийски (фарси)](../fa/README.md) | [Урду](../ur/README.md) | [Китайски (опростен)](../zh/README.md) | [Китайски (традиционен, Макао)](../mo/README.md) | [Китайски (традиционен, Хонконг)](../hk/README.md) | [Китайски (традиционен, Тайван)](../tw/README.md) | [Японски](../ja/README.md) | [Корейски](../ko/README.md) | [Хинди](../hi/README.md) | [Бенгалски](../bn/README.md) | [Маратхи](../mr/README.md) | [Непалски](../ne/README.md) | [Пенджабски (Гурмуки)](../pa/README.md) | [Португалски (Португалия)](../pt/README.md) | [Португалски (Бразилия)](../br/README.md) | [Италиански](../it/README.md) | [Полски](../pl/README.md) | [Турски](../tr/README.md) | [Гръцки](../el/README.md) | [Тайландски](../th/README.md) | [Шведски](../sv/README.md) | [Датски](../da/README.md) | [Норвежки](../no/README.md) | [Фински](../fi/README.md) | [Холандски](../nl/README.md) | [Иврит](../he/README.md) | [Виетнамски](../vi/README.md) | [Индонезийски](../id/README.md) | [Малайски](../ms/README.md) | [Тагалог (Филипински)](../tl/README.md) | [Суахили](../sw/README.md) | [Унгарски](../hu/README.md) | [Чешки](../cs/README.md) | [Словашки](../sk/README.md) | [Румънски](../ro/README.md) | [Български](./README.md) | [Сръбски (кирилица)](../sr/README.md) | [Хърватски](../hr/README.md) | [Словенски](../sl/README.md) | [Украински](../uk/README.md) | [Бирмански (Мианмар)](../my/README.md)
[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](./README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
**Ако желаете да добавите допълнителни преводи, списъкът с поддържани езици е [тук](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)**
#### 🧑‍🎓 _Студент ли сте?_
#### 🧑‍🎓 _Студент ли сте?_
Посетете [**страницата за студенти**](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), където ще намерите ресурси за начинаещи, студентски пакети и дори начини да получите безплатен ваучер за сертификат. Това е страницата, която трябва да запазите и проверявате от време на време, тъй като съдържанието се обновява ежемесечно.
### 📣 Съобщение - _Нов проект за изграждане с Генеративен AI_
### 📣 Съобщение - _Нов проект за изграждане с Генеративен AI_
Току-що добавен нов проект за AI асистент, вижте го [тук](./09-chat-project/README.md)
Току-що добавен нов проект за AI асистент, разгледайте го [тук](./09-chat-project/README.md)
### 📣 Съобщение - _Нова учебна програма_ за Генеративен AI за JavaScript
### 📣 Съобщение - _Нова учебна програма_ за Генеративен AI за JavaScript
Не пропускайте нашата нова учебна програма за Генеративен AI!
Не пропускайте нашата нова учебна програма за Генеративен 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), за да започнете!
![Фон](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.bg.png)
![Background](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.bg.png)
- Уроци, обхващащи всичко от основите до RAG.
- Взаимодействайте с исторически личности чрез GenAI и нашето придружаващо приложение.
- Забавен и ангажиращ разказ, ще пътувате във времето!
- Уроци, обхващащи всичко от основите до RAG.
- Взаимодействайте с исторически личности чрез GenAI и нашето придружаващо приложение.
- Забавен и ангажиращ разказ, ще пътувате във времето!
![персонаж](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.bg.png)
![character](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.bg.png)
Всеки урок включва задача за изпълнение, проверка на знанията и предизвикателство, които ще ви насочат към изучаване на теми като:
- Създаване на заявки и инженеринг на заявки
- Генериране на текстови и визуални приложения
- Приложения за търсене
Всеки урок включва задача за изпълнение, проверка на знанията и предизвикателство, които ще ви насочат към изучаване на теми като:
- Създаване на заявки и инженеринг на заявки
- Генериране на текстови и визуални приложения
- Приложения за търсене
Посетете [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)!
**[Ученици](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, за всеки урок започнете с предварителен тест и продължете с четене на учебния материал, изпълнение на различните дейности и проверете разбирането си с тест след лекцията.
## 🌱 Започнете
За да подобрите учебния си опит, свържете се с вашите връстници, за да работите заедно по проектите! Дискусиите са насърчавани в нашия [форум за дискусии](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), където нашият екип от модератори ще бъде на разположение да отговори на вашите въпроси.
> **Учители**, ние [включихме някои предложения](for-teachers.md) за това как да използвате тази учебна програма. Ще се радваме на вашата обратна връзка [в нашия форум за дискусии](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
За да продължите образованието си, силно препоръчваме да разгледате [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?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), където нашият екип от модератори ще бъде на разположение да отговори на вашите въпроси.
Тази учебна програма има готова за използване среда за разработка! Когато започнете, можете да изберете да изпълните учебната програма в [Codespace](https://github.com/features/codespaces/) (_среда, базирана на браузър, без нужда от инсталации_), или локално на вашия компютър, използвайки текстов редактор като [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
За да продължите образованието си, силно препоръчваме да разгледате [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) за допълнителни учебни материали.
#### Създайте вашето хранилище
За да запазите лесно работата си, препоръчваме да създадете свое собствено копие на това хранилище. Можете да направите това, като кликнете върху бутона **Use this template** в горната част на страницата. Това ще създаде ново хранилище във вашия GitHub акаунт с копие на учебната програма.
### 📋 Настройка на вашата среда
Следвайте тези стъпки:
1. **Направете Fork на хранилището**: Кликнете върху бутона "Fork" в горния десен ъгъл на тази страница.
2. **Клонирайте хранилището**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
Тази учебна програма има готова за използване среда за разработка! Когато започнете, можете да изберете да стартирате учебната програма в [Codespace](https://github.com/features/codespaces/) (_среда, базирана на браузър, без нужда от инсталации_), или локално на вашия компютър, използвайки текстов редактор като [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Изпълнение на учебната програма в Codespace
#### Създайте вашето хранилище
За да запазите лесно работата си, препоръчваме да създадете свое собствено копие на това хранилище. Можете да направите това, като кликнете върху бутона **Use this template** в горната част на страницата. Това ще създаде ново хранилище във вашия GitHub акаунт с копие на учебната програма.
В копието на хранилището, което създадохте, кликнете върху бутона **Code** и изберете **Open with Codespaces**. Това ще създаде нов Codespace, в който да работите.
Следвайте тези стъпки:
1. **Копирайте хранилището**: Кликнете върху бутона "Fork" в горния десен ъгъл на тази страница.
2. **Клонирайте хранилището**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
[!Codespace](../..)./images/createcodespace.png)
#### Стартиране на учебната програма в Codespace
#### Изпълнение на учебната програма локално на вашия компютър
В копието на хранилището, което сте създали, кликнете върху бутона **Code** и изберете **Open with Codespaces**. Това ще създаде нов Codespace, в който да работите.
За да изпълните тази учебна програма локално на вашия компютър, ще ви е необходим текстов редактор, браузър и инструмент за команден ред. Нашият първи урок, [Въведение в програмните езици и инструменти за работа](../../1-getting-started-lessons/1-intro-to-programming-languages), ще ви преведе през различни опции за всеки от тези инструменти, за да изберете това, което работи най-добре за вас.
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.bg.png)
Нашата препоръка е да използвате [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 адреса:
За да стартирате учебната програма локално на вашия компютър, ще ви е необходим текстов редактор, браузър и инструмент за команден ред. Нашият първи урок, [Въведение в програмните езици и инструменти](../../1-getting-started-lessons/1-intro-to-programming-languages), ще ви преведе през различни опции за всеки от тези инструменти, за да изберете това, което работи най-добре за вас.
[!CodeSpace](./images/createcodespace.png)
Нашата препоръка е да използвате [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).
След това отворете [Терминал](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 адреса, който току-що копирахте:
1. Клонирайте вашето хранилище на вашия компютър. Можете да направите това, като кликнете върху бутона **Code** и копирате URL адреса:
[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 адреса, който току-що сте копирали:
```bash
git clone <your-repository-url>
```
```
2. Отворете папката във Visual Studio Code. Можете да направите това, като кликнете **File** > **Open Folder** и изберете папката, която току-що сте клонирали.
2. Отворете папката във Visual Studio Code. Можете да направите това, като кликнете върху **File**.
> **Отворете папка** и изберете папката, която току-що клонирахте.
> Препоръчителни разширения за 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
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - за по-бързо писане на код
> * [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) - за помощ при писане на код
## 📂 Всяка лекция включва:
## 📂 Всеки урок включва:
- опционална скица
- опционално допълнително видео
- предварителен тест за загрявка
- писмена лекция
- за лекции, базирани на проекти, ръководства стъпка по стъпка за изграждане на проекта
- предварителен тест
- писмен урок
- за проектно-базирани уроци, ръководства стъпка по стъпка за изграждане на проекта
- проверки на знанията
- предизвикателство
- допълнително четиво
- допълнително четене
- задача
- [тест след лекцията](https://ff-quizzes.netlify.app/web/)
> **Бележка относно тестовете**: Всички тестове се намират в папката Quiz-app, общо 48 теста с по три въпроса всеки. Те са достъпни [тук](https://ff-quizzes.netlify.app/web/), като приложението за тестове може да се стартира локално или да се разположи в Azure; следвайте инструкциите в папката `quiz-app`.
## 🗃️ Лекции
| | Име на проекта | Преподавани концепции | Учебни цели | Свързана лекция | Автор |
| :-: | :--------------------------------------------------------: | :-------------------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------: | :--------------------: |
| 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 |
| 03 | Първи стъпки | Достъпност | Научете основите на уеб достъпността | [Основи на достъпността](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Основи на JS | Типове данни в JavaScript | Основите на типовете данни в JavaScript | [Типове данни](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Основи на JS | Функции и методи | Научете за функциите и методите за управление на логиката на приложението | [Функции и методи](./2-js-basics/2-functions-methods/README.md) | Jasmine и Christopher |
| 06 | Основи на JS | Вземане на решения с JS | Научете как да създавате условия в кода си, използвайки методи за вземане на решения | [Вземане на решения](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Основи на JS | Масиви и цикли | Работа с данни, използвайки масиви и цикли в JavaScript | [Масиви и цикли](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Терариум](./3-terrarium/solution/README.md) | HTML на практика | Създайте HTML за онлайн терариум, фокусирайки се върху изграждането на оформление | [Въведение в HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Терариум](./3-terrarium/solution/README.md) | CSS на практика | Създайте CSS за стилизиране на онлайн терариум, фокусирайки се върху основите на CSS, включително правене на страницата адаптивна | [Въведение в CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Терариум](./3-terrarium/solution/README.md) | Затваряния в JavaScript, манипулация на DOM | Създайте JavaScript за функционалност на терариума като интерфейс за влачене/пускане, фокусирайки се върху затваряния и манипулация на 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 |
| 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, използвайки променливи, съхранени в локално хранилище | [API, форми и локално хранилище](./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 |
| 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 | Научете за Canvas API, използван за рисуване на елементи на екрана | [Рисуване върху canvas](./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 |
| 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 |
| 20 | [Космическа игра](./6-space-game/solution/README.md) | Завършване и рестартиране на играта | Научете за завършване и рестартиране на играта, включително почистване на ресурси и нулиране на стойности на променливи | [Условие за край](./6-space-game/6-end-condition/README.md) | Chris |
| 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 |
| 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 |
| 25 | [Браузър/VScode код](../../8-code-editor) | Работа с VScode | Научете как да използвате редактор за код | [Използване на редактор за код VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
- [тест след урока](https://ff-quizzes.netlify.app/web/)
> **Бележка относно тестовете**: Всички тестове се намират в папката Quiz-app, общо 48 теста, всеки с три въпроса. Те са достъпни [тук](https://ff-quizzes.netlify.app/web/). Приложението за тестове може да се стартира локално или да се разположи в Azure; следвайте инструкциите в папката `quiz-app`.
## 🗃️ Уроци
| | Име на проекта | Преподавани концепции | Цели на обучението | Свързан урок | Автор |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 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 |
| 03 | Първи стъпки | Достъпност | Научете основите на уеб достъпността | [Основи на достъпността](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Основи на JS | Типове данни в JavaScript | Основите на типовете данни в JavaScript | [Типове данни](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Основи на JS | Функции и методи | Научете за функциите и методите за управление на логическия поток на приложението | [Функции и методи](./2-js-basics/2-functions-methods/README.md) | Jasmine и Christopher |
| 06 | Основи на JS | Вземане на решения с JS | Научете как да създавате условия в кода си, използвайки методи за вземане на решения | [Вземане на решения](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Основи на JS | Масиви и цикли | Работа с данни, използвайки масиви и цикли в JavaScript | [Масиви и цикли](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Терариум](./3-terrarium/solution/README.md) | HTML на практика | Създайте HTML за онлайн терариум, съсредоточавайки се върху изграждането на оформление | [Въведение в HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Терариум](./3-terrarium/solution/README.md) | CSS на практика | Създайте CSS за стилизиране на онлайн терариум, съсредоточавайки се върху основите на CSS, включително правенето на страницата отзивчива | [Въведение в CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Терариум](./3-terrarium/solution/README.md) | Затваряния в JavaScript, манипулация на DOM | Създайте JavaScript, за да направите терариума функционален като интерфейс за влачене/пускане, съсредоточавайки се върху затваряния и манипулация на 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 |
| 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, използвайки променливи, съхранени в локално хранилище | [API, форми и локално хранилище](./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 |
| 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) | Рисуване върху платно | Научете за API на Canvas, използван за рисуване на елементи върху екран | [Рисуване върху платно](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Космическа игра](./6-space-game/solution/README.md) | Преместване на елементи по екрана | Открийте как елементите могат да придобият движение, използвайки картезиански координати и API на Canvas | [Преместване на елементи](./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 |
| 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 |
| 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 |
| 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 |
| 25 | [Код на браузър/VScode](../../8-code-editor) | Работа с VScode | Научете как да използвате редактор на код | [Използване на редактор на код VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Асистенти](./9-chat-project/README.md) | Работа с AI | Научете как да създадете свой собствен AI асистент | [Проект за AI асистент](./9-chat-project/README.md) | Chris |
## 🏫 Педагогика
@ -171,26 +174,26 @@ CO_OP_TRANSLATOR_METADATA:
* обучение, базирано на проекти
* чести тестове
Програмата преподава основите на JavaScript, HTML и CSS, както и най-новите инструменти и техники, използвани от съвременните уеб разработчици. Студентите ще имат възможност да придобият практически опит, като създадат игра за писане, виртуален терариум, екологично браузърно разширение, игра в стил "космически нашественици" и банкова апликация за бизнеси. До края на серията студентите ще са придобили солидно разбиране за уеб разработката.
Програмата преподава основите на JavaScript, HTML и CSS, както и най-новите инструменти и техники, използвани от съвременните уеб разработчици. Студентите ще имат възможност да придобият практически опит, като създадат игра за писане, виртуален терариум, екологично разширение за браузър, игра в стил "космически нашественици" и банково приложение за бизнеси. До края на серията студентите ще са придобили солидно разбиране за уеб разработката.
> 🎓 Можете да вземете първите няколко лекции от тази учебна програма като [Учебен път](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, за да въведем концепции, съчетани с видео от "[Серия за начинаещи: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" колекция от видео уроци, някои от чиито автори допринесоха за тази учебна програма.
Като гарантираме, че съдържанието е съобразено с проектите, процесът става по-ангажиращ за студентите и запазването на концепциите ще бъде подобрено. Освен това написахме няколко начални урока за основите на JavaScript, за да въведем концепции, съчетани с видео от колекцията "[Серия за начинаещи: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" от видео уроци, някои от чиито автори допринесоха за тази учебна програма.
Освен това, тест с нисък риск преди клас задава намерението на студента към изучаване на тема, докато втори тест след клас осигурява допълнително задържане. Тази учебна програма е проектирана да бъде гъвкава и забавна и може да бъде взета изцяло или частично. Проектите започват малки и стават все по-сложни до края на 12-седмичния цикъл.
Освен това, тест с нисък риск преди час задава намерението на студента към изучаване на тема, докато втори тест след час осигурява допълнително запазване. Тази учебна програма е проектирана да бъде гъвкава и забавна и може да се вземе изцяло или частично. Проектите започват малки и стават все по-сложни до края на 12-седмичния цикъл.
Докато умишлено избягвахме въвеждането на JavaScript рамки, за да се концентрираме върху основните умения, необходими на уеб разработчика преди приемането на рамка, добра следваща стъпка след завършване на тази учебна програма би била изучаването на Node.js чрез друга колекция от видеа: "[Серия за начинаещи: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
Докато умишлено избягвахме въвеждането на JavaScript рамки, за да се концентрираме върху основните умения, необходими като уеб разработчик преди приемането на рамка, добра следваща стъпка след завършване на тази учебна програма би било изучаването на Node.js чрез друга колекция от видеа: "[Серия за начинаещи: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Посетете нашите [Правила за поведение](CODE_OF_CONDUCT.md) и [Насоки за принос](CONTRIBUTING.md). Очакваме вашата конструктивна обратна връзка!
## 🧭 Офлайн достъп
Можете да стартирате тази документация офлайн, използвайки [Docsify](https://docsify.js.org/#/). Форкнете това хранилище, [инсталирайте Docsify](https://docsify.js.org/#/quickstart) на вашия локален компютър и след това в основната папка на това хранилище напишете `docsify serve`. Уебсайтът ще бъде стартиран на порт 3000 на вашия localhost: `localhost:3000`.
Можете да стартирате тази документация офлайн, използвайки [Docsify](https://docsify.js.org/#/). Форкнете това хранилище, [инсталирайте Docsify](https://docsify.js.org/#/quickstart) на вашата локална машина и след това в основната папка на това хранилище въведете `docsify serve`. Уебсайтът ще бъде стартиран на порт 3000 на вашия локален хост: `localhost:3000`.
## 📘 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).
## 🎒 Други курсове
@ -202,21 +205,31 @@ PDF с всички лекции може да бъде намерен [тук](
- [Генеративен AI с JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [Генеративен AI с Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI за начинаещи](https://aka.ms/ai-beginners)
- [Наука за данни за начинаещи](https://aka.ms/datascience-beginners)
- [Машинно обучение за начинаещи](https://aka.ms/ml-beginners)
- [Киберсигурност за начинаещи](https://github.com/microsoft/Security-101)
- [Уеб разработка за начинаещи](https://aka.ms/webdev-beginners)
- [IoT за начинаещи](https://aka.ms/iot-beginners)
- [Разработка на XR за начинаещи](https://github.com/microsoft/xr-development-for-beginners)
- [Овладяване на GitHub Copilot за агентно използване](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Овладяване на GitHub Copilot за разработчици на C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Избери своето собствено приключение с Copilot](https://github.com/microsoft/CopilotAdventures)
- [Наука за данни за начинаещи](https://aka.ms/datascience-beginners)
- [Машинно обучение за начинаещи](https://aka.ms/ml-beginners)
- [Киберсигурност за начинаещи](https://github.com/microsoft/Security-101)
- [Уеб разработка за начинаещи](https://aka.ms/webdev-beginners)
- [IoT за начинаещи](https://aka.ms/iot-beginners)
- [XR разработка за начинаещи](https://github.com/microsoft/xr-development-for-beginners)
- [Овладяване на GitHub Copilot за агентно използване](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Овладяване на GitHub Copilot за разработчици на C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Изберете своето собствено приключение с Copilot](https://github.com/microsoft/CopilotAdventures)
## Получаване на помощ
Ако се затрудните или имате въпроси относно създаването на AI приложения, присъединете се към:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
Ако имате обратна връзка за продукта или срещнете грешки по време на разработката, посетете:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_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) за повече информация.
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,25 +1,46 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-28T07:30:02+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T10:46:15+00:00",
"source_file": "for-teachers.md",
"language_code": "bg"
}
-->
## За преподаватели
### За преподаватели
Искате ли да използвате тази учебна програма във вашата класна стая? Чувствайте се свободни да го направите!
Добре дошли да използвате тази учебна програма във вашата класна стая. Тя работи безпроблемно с GitHub Classroom и водещи платформи за управление на обучението (LMS), а също така може да се използва като самостоятелно хранилище със студентите ви.
Всъщност, можете да я използвате директно в GitHub, като използвате GitHub Classroom.
### Използване с GitHub Classroom
За да го направите, клонирайте това хранилище. Ще трябва да създадете отделно хранилище за всяка лекция, така че ще трябва да извлечете всяка папка в отделно хранилище. По този начин [GitHub Classroom](https://classroom.github.com/classrooms) ще може да разпознае всяка лекция поотделно.
За управление на уроци и задачи за всяка група, създайте отделно хранилище за всеки урок, така че GitHub Classroom да може да свърже всяка задача независимо.
Тези [пълни инструкции](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) ще ви дадат представа как да настроите вашата класна стая.
- Направете fork на това хранилище към вашата организация.
- Създайте отделно хранилище за всеки урок, като извлечете папката на урока в отделно хранилище.
- Вариант А: Създайте празни хранилища (по едно за всеки урок) и копирайте съдържанието на папката на урока във всяко.
- Вариант Б: Използвайте подход, който запазва историята на Git (например, разделяне на папка в ново хранилище), ако ви е необходима проследимост.
- В GitHub Classroom създайте задача за всеки урок и я насочете към съответното хранилище на урока.
- Препоръчителни настройки:
- Видимост на хранилището: частна за работата на студентите.
- Използвайте начален код от основния клон на хранилището на урока.
- Добавете шаблони за проблеми и pull request-и за тестове и предавания.
- По желание конфигурирайте автоматично оценяване и тестове, ако уроците ви ги включват.
- Полезни конвенции:
- Имена на хранилища като lesson-01-intro, lesson-02-html и т.н.
- Етикети: quiz, assignment, needs-review, late, resubmission.
- Тагове/релийзи за всяка група (например, v2025-term1).
## Използване в Moodle, Canvas или Blackboard
Съвет: Избягвайте съхраняването на хранилища в синхронизирани папки (например, OneDrive/Google Drive), за да предотвратите конфликти в Git на Windows.
Тази учебна програма работи добре в тези системи за управление на обучението! Използвайте [файла за качване в Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) за пълното съдържание или опитайте [файла Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc), който съдържа част от съдържанието. Moodle Cloud не поддържа пълни експорти на Common Cartridge, затова е за предпочитане да използвате файла за изтегляне на Moodle, който може да бъде качен в Canvas. Моля, уведомете ни как можем да подобрим този процес.
### Използване с Moodle, Canvas или Blackboard
Тази учебна програма включва пакети за импортиране, съвместими с често използвани LMS платформи.
- Moodle: Използвайте файла за качване в Moodle [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz), за да заредите целия курс.
- Common Cartridge: Използвайте файла Common Cartridge [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) за по-широка съвместимост с LMS.
- Бележки:
- Moodle Cloud има ограничена поддръжка за Common Cartridge. Предпочитайте файла за Moodle по-горе, който може да бъде качен и в Canvas.
- След импортиране прегледайте модулите, крайните срокове и настройките на тестовете, за да съответстват на графика на вашия семестър.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.bg.png)
> Учебната програма в класна стая на Moodle
@ -27,21 +48,31 @@ CO_OP_TRANSLATOR_METADATA:
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.bg.png)
> Учебната програма в Canvas
## Използване на хранилището в текущия му вид
### Използване на хранилището директно (без Classroom)
Ако искате да използвате това хранилище в текущия му вид, без да използвате GitHub Classroom, това също е възможно. Ще трябва да информирате вашите ученици коя лекция да разгледат заедно.
Ако предпочитате да не използвате GitHub Classroom, можете да проведете курса директно от това хранилище.
В онлайн формат (Zoom, Teams или друг) можете да създадете групи за дискусии за тестовете и да наставлявате учениците, за да ги подготвите за учене. След това поканете учениците да участват в тестовете и да изпратят своите отговори като 'issues' в определено време. Можете да направите същото и със задачите, ако искате учениците да работят съвместно и открито.
- Синхронни/онлайн формати (Zoom/Teams):
- Провеждайте кратки въведения, водени от ментори; използвайте breakout стаи за тестове.
- Обявете времеви прозорец за тестовете; студентите подават отговори като GitHub Issues.
- За съвместни задачи студентите работят в публични хранилища на уроци и отварят pull request-и.
- Частни/асинхронни формати:
- Студентите правят fork на всеки урок в свои **частни** хранилища и ви добавят като сътрудник.
- Те подават чрез Issues (тестове) и Pull Requests (задачи) в хранилището на вашата класна стая или в техните частни fork-ове.
Ако предпочитате по-личен формат, помолете учениците си да клонират учебната програма, лекция по лекция, в свои собствени частни хранилища в GitHub и да ви дадат достъп. Така те могат да завършват тестовете и задачите насаме и да ви ги изпращат чрез 'issues' в хранилището на вашата класна стая.
### Най-добри практики
Има много начини да направите това работещо в онлайн класна стая. Моля, уведомете ни кой начин работи най-добре за вас!
- Осигурете ориентационен урок за основите на Git/GitHub, Issues и PRs.
- Използвайте списъци със задачи в Issues за многостъпкови тестове/задачи.
- Добавете CONTRIBUTING.md и CODE_OF_CONDUCT.md, за да зададете норми за класната стая.
- Добавете бележки за достъпност (alt текст, надписи) и предложете печатни PDF файлове.
- Версирайте съдържанието си за всеки семестър и замразявайте хранилищата на уроците след публикуване.
## Моля, споделете вашите мисли!
### Обратна връзка и поддръжка
Искаме да направим тази учебна програма полезна за вас и вашите ученици. Свържете се с нас в [Teacher corner](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) и отворете [**ново issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) за всякакви заявки, грешки и обратна връзка.
Искаме тази учебна програма да работи за вас и вашите студенти. Моля, отворете нов Issue в това хранилище за грешки, заявки или подобрения, или започнете дискусия в Teacher Corner.
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или погрешни интерпретации, произтичащи от използването на този превод.
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.

@ -1,15 +1,15 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-28T23:06:45+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T09:13:53+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "bn"
}
-->
# প্রোগ্রামিং ভাষা এবং প্রয়োজনীয় সরঞ্জাম সম্পর্কে পরিচিতি
# প্রোগ্রামিং ভাষা এবং প্রয়োজনীয় সরঞ্জামগুলোর পরিচিতি
এই পাঠে প্রোগ্রামিং ভাষার মৌলিক বিষয়গুলো আলোচনা করা হয়েছে। এখানে আলোচিত বিষয়গুলো আজকের আধুনিক প্রোগ্রামিং ভাষার জন্য প্রযোজ্য। 'প্রয়োজনীয় সরঞ্জাম' অংশে, আপনি এমন কিছু সফটওয়্যার সম্পর্কে জানবেন যা একজন ডেভেলপার হিসেবে আপনার কাজে সাহায্য করবে।
এই পাঠে প্রোগ্রামিং ভাষার মৌলিক বিষয়গুলো আলোচনা করা হয়েছে। এখানে আলোচিত বিষয়গুলো আধুনিক প্রোগ্রামিং ভাষাগুলোর জন্য প্রযোজ্য। 'Tools of the Trade' অংশে, আপনি এমন কিছু দরকারী সফটওয়্যার সম্পর্কে জানবেন যা একজন ডেভেলপার হিসেবে আপনার কাজে সবে।
![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.bn.png)
> স্কেচনোট: [Tomomi Imura](https://twitter.com/girlie_mac)
@ -24,27 +24,27 @@ CO_OP_TRANSLATOR_METADATA:
- প্রোগ্রামিং কী?
- প্রোগ্রামিং ভাষার প্রকারভেদ
- একটি প্রোগ্রামের মৌলিক উপাদান
- পেশাদার ডেভেলপারের জন্য প্রয়োজনীয় সফটওয়্যার এবং সরঞ্জাম
- পেশাদার ডেভেলপারদের জন্য দরকারী সফটওয়্যার এবং সরঞ্জাম
> আপনি এই পাঠটি [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon) এ নিতে পারেন!
## প্রোগ্রামিং কী?
প্রোগ্রামিং (যা কোডিং নামেও পরিচিত) হলো একটি ডিভাইস যেমন কম্পিউটার বা মোবাইল ডিভাইসের জন্য নির্দেশনা লেখার প্রক্রিয়া। আমরা এই নির্দেশনাগুলো প্রোগ্রামিং ভাষার মাধ্যমে লিখি, যা পরে ডিভাইস দ্বারা ব্যাখ্যা করা হয়। এই নির্দেশনার সেটগুলো বিভিন্ন নামে পরিচিত হতে পারে, যেমন *প্রোগ্রাম*, *কম্পিউটার প্রোগ্রাম*, *অ্যাপ্লিকেশন (অ্যাপ)* এবং *এক্সিকিউটেবল*
প্রোগ্রামিং (যা কোডিং নামেও পরিচিত) হলো একটি ডিভাইস যেমন কম্পিউটার বা মোবাইল ডিভাইসের জন্য নির্দেশনা লেখার প্রক্রিয়া। আমরা এই নির্দেশনাগুলো একটি প্রোগ্রামিং ভাষার মাধ্যমে লিখি, যা ডিভাইস দ্বারা ব্যাখ্যা করা হয়। এই নির্দেশনার সেটগুলো বিভিন্ন নামে পরিচিত হতে পারে, যেমন *প্রোগ্রাম*, *কম্পিউটার প্রোগ্রাম*, *অ্যাপ্লিকেশন (অ্যাপ)*, এবং *এক্সিকিউটেবল*
একটি *প্রোগ্রাম* হলো কোড দিয়ে তৈরি যেকোনো কিছু; ওয়েবসাইট, গেমস এবং ফোন অ্যাপগুলো প্রোগ্রাম। যদিও কোড না লিখেও প্রোগ্রাম তৈরি করা সম্ভব, তবে এর অন্তর্নিহিত লজিক ডিভাইস দ্বারা ব্যাখ্যা করা হয় এবং সেই লজিক সম্ভবত কোড দিয়ে লেখা হয়েছে। একটি প্রোগ্রাম যখন *চালানো* বা *এক্সিকিউট* করা হয়, তখন এটি নির্দেশনাগুলো সম্পন্ন করে। আপনি যে ডিভাইস দিয়ে এই পাঠটি পড়ছেন, সেটি একটি প্রোগ্রাম চালাচ্ছে যা এটি আপনার স্ক্রিনে দেখাচ্ছে।
একটি *প্রোগ্রাম* হলো যেকোনো কিছু যা কোড দিয়ে লেখা হয়েছে; ওয়েবসাইট, গেমস, এবং ফোন অ্যাপগুলো প্রোগ্রাম। যদিও কোড না লিখেও প্রোগ্রাম তৈরি করা সম্ভব, তবে এর অন্তর্নিহিত লজিক ডিভাইস দ্বারা ব্যাখ্যা করা হয় এবং সেই লজিক সম্ভবত কোড দিয়ে লেখা। একটি প্রোগ্রাম যখন *চালানো* বা *এক্সিকিউট* করা হয়, তখন এটি নির্দেশনাগুলো সম্পাদন করে। আপনি যে ডিভাইস দিয়ে এই পাঠটি পড়ছেন, সেটি একটি প্রোগ্রাম চালাচ্ছে যা এটি আপনার স্ক্রিনে দেখাচ্ছে।
✅ একটু গবেষণা করুন: কে বিশ্বের প্রথম কম্পিউটার প্রোগ্রামার হিসেবে বিবেচিত?
✅ একটু গবেষণা করুন: কাকে বিশ্বের প্রথম কম্পিউটার প্রোগ্রামার হিসেবে বিবেচনা করা হয়?
## প্রোগ্রামিং ভাষা
প্রোগ্রামিং ভাষা ডেভেলপারদের ডিভাইসের জন্য নির্দেশনা লেখার সুযোগ দেয়। ডিভাইসগুলো শুধুমাত্র বাইনারি (১ এবং ) বুঝতে পারে, এবং *অধিকাংশ* ডেভেলপারের জন্য এটি খুবই অকার্যকর যোগাযোগের মাধ্যম। প্রোগ্রামিং ভাষা হলো মানুষের এবং কম্পিউটারের মধ্যে যোগাযোগের মাধ্যম।
প্রোগ্রামিং ভাষা ডেভেলপারদের একটি ডিভাইসের জন্য নির্দেশনা লেখার সুযোগ দেয়। ডিভাইস কেবল বাইনারি (১ এবং ) বুঝতে পারে, এবং *অধিকাংশ* ডেভেলপারের জন্য এটি খুবই অকার্যকর যোগাযোগের মাধ্যম। প্রোগ্রামিং ভাষা হলো মানুষের এবং কম্পিউটারের মধ্যে যোগাযোগের মাধ্যম।
প্রোগ্রামিং ভাষাগুলো বিভিন্ন ফরম্যাটে আসে এবং বিভিন্ন উদ্দেশ্যে ব্যবহার করা হয়। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট প্রধানত ওয়েব অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়, যেখানে Bash প্রধানত অপারেটিং সিস্টেমের জন্য ব্যবহৃত হয়।
প্রোগ্রামিং ভাষাগুলো বিভিন্ন ফরম্যাটে আসে এবং বিভিন্ন উদ্দেশ্যে ব্যবহৃত হয়। উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট প্রধানত ওয়েব অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়, যেখানে ব্যাশ প্রধানত অপারেটিং সিস্টেমের জন্য ব্যবহৃত হয়।
*লো লেভেল ভাষা* সাধারণত *হাই লেভেল ভাষা* তুলনায় ডিভাইসের জন্য নির্দেশনা ব্যাখ্যা করতে কম ধাপ প্রয়োজন হয়। তবে, হাই লেভেল ভাষার জনপ্রিয়তার কারণ হলো এর পাঠযোগ্যতা এবং সাপোর্ট। জাভাস্ক্রিপ্ট একটি হাই লেভেল ভাষা হিসেবে বিবেচিত।
*লো লেভেল ভাষা* সাধারণত *হাই লেভেল ভাষা* তুলনায় ডিভাইসের জন্য নির্দেশনা ব্যাখ্যা করতে কম ধাপ নেয়। তবে, হাই লেভেল ভাষাগুলো জনপ্রিয় কারণ সেগুলো সহজে পড়া যায় এবং সেগুলোর জন্য ভালো সাপোর্ট পাওয়া যায়। জাভাস্ক্রিপ্ট একটি হাই লেভেল ভাষা হিসেবে বিবেচিত।
নিম্নলিখিত কোডটি জাভাস্ক্রিপ্ট (হাই লেভেল ভাষা) এবং ARM অ্যাসেম্বলি কোড (লো লেভেল ভাষা) এর মধ্যে পার্থক্য দেখায়।
নিচের কোডটি জাভাস্ক্রিপ্ট (একটি হাই লেভেল ভাষা) এবং এআরএম অ্যাসেম্বলি কোড (একটি লো লেভেল ভাষা) এর মধ্যে পার্থক্য দেখায়।
```javascript
let number = 10
@ -83,39 +83,39 @@ back add r0,r1
end
```
বিশ্বাস করুন বা না করুন, *দুটোই একই কাজ করছে*: ১০ পর্যন্ত একটি ফিবোনাচি সিকোয়েন্স প্রিন্ট করছে।
বিশ্বাস করুন বা না করুন, *দুটোই একই কাজ করছে*: ১০ পর্যন্ত একটি ফিবোনাচ্চি সিকোয়েন্স প্রিন্ট করছে।
✅ ফিবোনাচি সিকোয়েন্স [সংজ্ঞায়িত](https://en.wikipedia.org/wiki/Fibonacci_number) হয় এমন একটি সংখ্যার সেট হিসেবে, যেখানে প্রতিটি সংখ্যা পূর্ববর্তী দুটি সংখ্যার যোগফল। এটি এবং ১ থেকে শুরু হয়। প্রথম ১০টি ফিবোনাচি সংখ্যাগুলো হলো , ১, ১, ২, ৩, ৫, ৮, ১৩, ২১ এবং ৩৪।
✅ ফিবোনাচ্চি সিকোয়েন্স [সংজ্ঞায়িত](https://en.wikipedia.org/wiki/Fibonacci_number) হয় এমন একটি সংখ্যার সেট হিসেবে, যেখানে প্রতিটি সংখ্যা তার পূর্ববর্তী দুটি সংখ্যার যোগফল। ফিবোনাচ্চি সিকোয়েন্স অনুযায়ী প্রথম ১০টি সংখ্যা হলো , ১, ১, ২, ৩, ৫, ৮, ১৩, ২১ এবং ৩৪।
## একটি প্রোগ্রামের উপাদান
একটি প্রোগ্রামের একক নির্দেশনাকে *স্টেটমেন্ট* বলা হয় এবং সাধারণত একটি চিহ্ন বা লাইন স্পেসিং থাকে যা নির্দেশনার শেষ বা *টার্মিনেশন* চিহ্নিত করে। একটি প্রোগ্রাম কীভাবে শেষ হয় তা প্রতিটি ভাষার ক্ষেত্রে ভিন্ন
একটি প্রোগ্রামের একক নির্দেশনাকে *স্টেটমেন্ট* বলা হয় এবং সাধারণত একটি চিহ্ন বা লাইন স্পেসিং দিয়ে নির্দেশ করা হয় যেখানে নির্দেশনা শেষ হয় বা *টার্মিনেট* হয়। একটি প্রোগ্রাম কীভাবে শেষ হয় তা প্রতিটি ভাষার জন্য আলাদা
প্রোগ্রামের স্টেটমেন্টগুলো ব্যবহারকারীর দেওয়া ডেটা বা অন্য কোথাও থেকে প্রাপ্ত ডেটার উপর নির্ভর করতে পারে নির্দেশনা সম্পন্ন করার জন্য। ডেটা প্রোগ্রামের আচরণ পরিবর্তন করতে পারে, তাই প্রোগ্রামিং ভাষাগুলো ডেটা সাময়িকভাবে সংরক্ষণ করার একটি উপায় নিয়ে আসে যাতে এটি পরে ব্যবহার করা যায়। এগুলোকে *ভেরিয়েবল* বলা হয়। ভেরিয়েবল হলো স্টেটমেন্ট যা ডিভাইসকে তার মেমোরিতে ডেটা সংরক্ষণ করতে নির্দেশ দেয়। প্রোগ্রামের ভেরিয়েবলগুলো অ্যালজেব্রার ভেরিয়েবলের মতো, যেখানে তাদের একটি ইউনিক নাম থাকে এবং তাদের মান সময়ের সাথে পরিবর্তিত হতে পারে।
প্রোগ্রামের স্টেটমেন্টগুলো ব্যবহারকারী বা অন্য কোনো উৎস থেকে প্রাপ্ত ডেটার উপর নির্ভর করতে পারে নির্দেশনা সম্পাদনের জন্য। ডেটা প্রোগ্রামের আচরণ পরিবর্তন করতে পারে, তাই প্রোগ্রামিং ভাষাগুলো ডেটা সাময়িকভাবে সংরক্ষণ করার একটি উপায় নিয়ে আসে যাতে এটি পরে ব্যবহার করা যায়। এগুলোকে বলা হয় *ভ্যারিয়েবল*। ভ্যারিয়েবল হলো এমন স্টেটমেন্ট যা একটি ডিভাইসকে তার মেমোরিতে ডেটা সংরক্ষণ করতে নির্দেশ দেয়। অ্যালজেব্রার ভ্যারিয়েবলের মতো, প্রোগ্রামের ভ্যারিয়েবলগুলোর একটি অনন্য নাম থাকে এবং তাদের মান সময়ের সাথে পরিবর্তিত হতে পারে।
কিছু স্টেটমেন্ট ডিভাইস দ্বারা সম্পন্ন না হওয়ার সম্ভাবনা থাকে। এটি সাধারণত ডেভেলপার দ্বারা পরিকল্পিতভাবে লেখা হয় অথবা দুর্ঘটনাক্রমে যখন একটি অপ্রত্যাশিত ত্রুটি ঘটে। এই ধরনের নিয়ন্ত্রণ এটি অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। সাধারণত, এই নিয়ন্ত্রণের পরিবর্তন তখন ঘটে যখন নির্দিষ্ট শর্ত পূরণ হয়। আধুনিক প্রোগ্রামিংয়ে একটি সাধারণ স্টেটমেন্ট যা প্রোগ্রামের চলার পদ্ধতি নিয়ন্ত্রণ করে তা হলো `if..else` স্টেটমেন্ট।
কিছু স্টেটমেন্ট হয়তো ডিভাইস দ্বারা সম্পাদিত হবে না। এটি সাধারণত ডেভেলপারের পরিকল্পনা অনুযায়ী হয় অথবা কোনো অপ্রত্যাশিত ত্রুটি ঘট হয়। একটি অ্যাপ্লিকেশনের উপর এই ধরনের নিয়ন্ত্রণ এটিকে আরও শক্তিশালী এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। সাধারণত, এই নিয়ন্ত্রণের পরিবর্তন ঘটে যখন নির্দিষ্ট শর্ত পূরণ হয়। আধুনিক প্রোগ্রামিংয়ে একটি সাধারণ স্টেটমেন্ট যা প্রোগ্রামের কার্যক্রম নিয়ন্ত্রণ করতে ব্যবহৃত হয় তা হলো `if..else` স্টেটমেন্ট।
আপনি এই ধরনের স্টেটমেন্ট সম্পর্কে পরবর্তী পাঠে আরও শিখবেন।
✅ এই ধরনের স্টেটমেন্ট সম্পর্কে আপনি পরবর্তী পাঠে আরও শিখবেন।
## প্রয়োজনীয় সরঞ্জাম
[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade")
> 🎥 উপরের ছবিতে ক্লিক করুন টুলিং সম্পর্কে একটি ভিডিও দেখার জন্য
> 🎥 উপরের ছবিতে ক্লিক করে টুলিং সম্পর্কিত একটি ভিডিও দেখুন
এই অংশে, আপনি কিছু সফটওয়্যার সম্পর্কে জানবেন যা আপনার পেশাদার ডেভেলপমেন্ট যাত্রা শুরু করার সময় খুবই উপকারী হতে পারে।
এই অংশে, আপনি এমন কিছু সফটওয়্যার সম্পর্কে জানবেন যা আপনার পেশাদার ডেভেলপমেন্ট যাত্রা শুরু করার সময় খুবই উপকারী হতে পারে।
একটি **ডেভেলপমেন্ট এনভায়রনমেন্ট** হলো একটি অনন্য সরঞ্জাম এবং বৈশিষ্ট্যের সেট যা একজন ডেভেলপার সফটওয়্যার লেখার সময় প্রায়ই ব্যবহার করেন। এই সরঞ্জামগুলো ডেভেলপারের নির্দিষ্ট প্রয়োজন অনুযায়ী কাস্টমাইজ করা হয়েছে এবং সময়ের সাথে পরিবর্তিত হতে পারে যদি সেই ডেভেলপার কাজের অগ্রাধিকার পরিবর্তন করেন, ব্যক্তিগত প্রকল্পে কাজ করেন, বা অন্য প্রোগ্রামিং ভাষা ব্যবহার করেন। ডেভেলপমেন্ট এনভায়রনমেন্টগুলো ডেভেলপারদের মতোই অনন্য।
একটি **ডেভেলপমেন্ট এনভায়রনমেন্ট** হলো এমন একটি সরঞ্জাম এবং বৈশিষ্ট্যের সেট যা একজন ডেভেলপার প্রায়ই সফটওয়্যার লেখার সময় ব্যবহার করেন। এই সরঞ্জামগুলোর কিছু ডেভেলপারের নির্দিষ্ট প্রয়োজন অনুযায়ী কাস্টমাইজ করা হয়েছে এবং সময়ের সাথে পরিবর্তিত হতে পারে যদি ডেভেলপার কাজের অগ্রাধিকার পরিবর্তন করেন, ব্যক্তিগত প্রকল্পে কাজ করেন, অথবা ভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করেন। ডেভেলপমেন্ট এনভায়রনমেন্টগুলো ডেভেলপারদের মতোই অনন্য।
### এডিটর
সফটওয়্যার ডেভেলপমেন্টের জন্য সবচেয়ে গুরুত্বপূর্ণ সরঞ্জামগুলোর একটি হলো এডিটর। এডিটর হলো যেখানে আপনি আপনার কোড লিখেন এবং কখনও কখনও যেখানে আপনি আপনার কোড চালান।
সফটওয়্যার ডেভেলপমেন্টের জন্য সবচেয়ে গুরুত্বপূর্ণ সরঞ্জামগুলোর একটি হলো এডিটর। এডিটর হলো যেখানে আপনি আপনার কোড লখেন এবং কখনও কখনও যেখানে আপনি আপনার কোড চালান।
ডেভেলপাররা এডিটর ব্যবহার করেন আরও কিছু অতিরিক্ত কারণে:
ডেভেলপাররা এডিটরের উপর নির্ভর করেন আরও কিছু কারণে:
- *ডিবাগিং* কোডের ত্রুটি এবং ভুল খুঁজে বের করতে সাহায্য করে, লাইন বাই লাইন কোড পরীক্ষা করে। কিছু এডিটরে ডিবাগিং সুবিধা থাকে; এগুলো নির্দিষ্ট প্রোগ্রামিং ভাষার জন্য কাস্টমাইজ এবং যোগ করা যায়।
- *সিনট্যাক্স হাইলাইটিং* কোডে রঙ এবং টেক্সট ফরম্যাটিং যোগ করে, যা পড়া সহজ করে। বেশিরভাগ এডিটর কাস্টমাইজড সিনট্যাক্স হাইলাইটিংয়ের অনুমতি দেয়
- *এক্সটেনশন এবং ইন্টিগ্রেশন* হলো ডেভেলপারদের জন্য বিশেষায়িত সরঞ্জাম, যা ডেভেলপারদের দ্বারা তৈরি। এই সরঞ্জামগুলো বেস এডিটরে অন্তর্ভুক্ত ছিল না। উদাহরণস্বরূপ, অনেক ডেভেলপার তাদের কোড ডকুমেন্ট করেন এটি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য। তারা ডকুমেন্টেশনে টাইপো খুঁজে বের করতে একটি স্পেল চেক এক্সটেনশন ইনস্টল করতে পারেন। বেশিরভাগ এক্সটেনশন নির্দিষ্ট এডিটরের জন্য ব্যবহারের উদ্দেশ্যে তৈরি এবং বেশিরভাগ এডিটর উপলব্ধ এক্সটেনশন খুঁজে বের করার একটি উপায় নিয়ে আসে।
- *ডিবাগিং* কোডের ত্রুটি এবং ভুলগুলো খুঁজে বের করতে সাহায্য করে, লাইন বাই লাইন। কিছু এডিটরে ডিবাগিং ক্ষমতা থাকে; এগুলো নির্দিষ্ট প্রোগ্রামিং ভাষার জন্য কাস্টমাইজ এবং যোগ করা যায়।
- *সিনট্যাক্স হাইলাইটিং* কোডে রঙ এবং টেক্সট ফরম্যাটিং যোগ করে, যা পড়া সহজ করে তোলে। বেশিরভাগ এডিটর কাস্টমাইজড সিনট্যাক্স হাইলাইটিংয়ের সুবিধা থাকে
- *এক্সটেনশন এবং ইন্টিগ্রেশন* হলো ডেভেলপারদের জন্য বিশেষায়িত সরঞ্জাম, যা ডেভেলপারদের দ্বারা তৈরি। এগুলো বেস এডিটরে অন্তর্ভুক্ত ছিল না। উদাহরণস্বরূপ, অনেক ডেভেলপার তাদের কোড ডকুমেন্ট করেন এটি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য। তারা ডকুমেন্টেশনে টাইপো খুঁজে বের করতে একটি স্পেল চেক এক্সটেনশন ইনস্টল করতে পারেন। বেশিরভাগ এক্সটেনশন নির্দিষ্ট এডিটরের জন্য তৈরি এবং বেশিরভাগ এডিটর উপলব্ধ এক্সটেনশন খুঁজে বের করার একটি উপায় থাকে।
- *কাস্টমাইজেশন* ডেভেলপারদের তাদের প্রয়োজন অনুযায়ী একটি অনন্য ডেভেলপমেন্ট এনভায়রনমেন্ট তৈরি করতে সক্ষম করে। বেশিরভাগ এডিটর অত্যন্ত কাস্টমাইজযোগ্য এবং ডেভেলপারদের কাস্টম এক্সটেনশন তৈরি করার অনুমতি দেয়।
#### জনপ্রিয় এডিটর এবং ওয়েব ডেভেলপমেন্ট এক্সটেনশন
@ -135,11 +135,11 @@ back add r0,r1
### ব্রাউজার
আরেকটি গুরুত্বপূর্ণ সরঞ্জাম হলো ব্রাউজার। ওয়েব ডেভেলপাররা ব্রাউজার ব্যবহার করেন তাদের কোড ওয়েবে কীভাবে কাজ করে তা দেখার জন্য। এটি এডিটরে লেখা HTML-এর মতো একটি ওয়েব পৃষ্ঠার ভিজ্যুয়াল উপাদানগুলো প্রদর্শনের জন্যও ব্যবহৃত হয়
আরেকটি গুরুত্বপূর্ণ সরঞ্জাম হলো ব্রাউজার। ওয়েব ডেভেলপাররা তাদের কোড ওয়েবে কীভাবে কাজ করে তা দেখার জন্য ব্রাউজারের উপর নির্ভর করেন। এটি এডিটরে লেখা ওয়েব পৃষ্ঠার ভিজ্যুয়াল উপাদানগুলো প্রদর্শন করতেও ব্যবহৃত হয়, যেমন HTML
অনেক ব্রাউজার *ডেভেলপার টুলস* (DevTools) নিয়ে আসে, যা ডেভেলপারদের তাদের অ্যাপ্লিকেশন সম্পর্কে গুরুত্বপূর্ণ তথ্য সংগ্রহ এবং ধারণ করতে সাহায্য করার জন্য একটি সহায়ক বৈশিষ্ট্য এবং তথ্যর সেট। উদাহরণস্বরূপ: যদি একটি ওয়েব পৃষ্ঠায় ত্রুটি থাকে, কখন সেগুলো ঘটেছে তা জানা কখনও কখনও সহায়ক হতে পারে। ব্রাউজারের DevTools কনফিগার করা যেতে পারে এই তথ্য ধারণ করার জন্য
অনেক ব্রাউজার *ডেভেলপার টুলস* (DevTools) থাকে যা ডেভেলপারদের তাদের অ্যাপ্লিকেশন সম্পর্কে গুরুত্বপূর্ণ তথ্য সংগ্রহ এবং ধারণ করতে সাহায্য করে। উদাহরণস্বরূপ: যদি একটি ওয়েব পৃষ্ঠায় ত্রুটি থাকে, কখন সেগুলো ঘটেছে তা জানা কখনও কখনও সহায়ক হতে পারে। ব্রাউজারের ডেভটুলস এই তথ্য সংগ্রহ করার জন্য কনফিগার করা যেতে পারে।
#### জনপ্রিয় ব্রাউজার এবং DevTools
#### জনপ্রিয় ব্রাউজার এবং ডেভটুলস
- [Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
@ -147,13 +147,13 @@ back add r0,r1
### কমান্ড লাইন টুলস
কিছু ডেভেলপার তাদের দৈনন্দিন কাজের জন্য কম গ্রাফিকাল ভিউ পছন্দ করেন এবং কমান্ড লাইন ব্যবহার করে এটি সম্পন্ন করেন। কোড লেখার জন্য প্রচুর টাইপিং প্রয়োজন এবং কিছু ডেভেলপার তাদের কীবোর্ডের ফ্লো ব্যাহত করতে চান না। তারা ডেস্কটপ উইন্ডো পরিবর্তন করতে, বিভিন্ন ফাইল নিয়ে কাজ করতে এবং সরঞ্জাম ব্যবহার করতে কীবোর্ড শর্টকাট ব্যবহার করেন। বেশিরভাগ কাজ মাউস দিয়ে সম্পন্ন করা যায়, তবে কমান্ড লাইনের একটি সুবিধা হলো অনেক কিছু কমান্ড লাইন টুলস দিয়ে সম্পন্ন করা যায় মাউস এবং কীবোর্ডের মধ্যে পরিবর্তন না করেই। কমান্ড লাইনের আরেকটি সুবিধা হলো এগুলো কনফিগারযোগ্য এবং আপনি একটি কাস্টম কনফিগারেশন সংরক্ষণ করতে পারেন, পরে এটি পরিবর্তন করতে পারেন এবং এটি অন্য ডেভেলপমেন্ট মেশিনে ইমপোর্ট করতে পারেন। যেহেতু ডেভেলপমেন্ট এনভায়রনমেন্টগুলো প্রতিটি ডেভেলপারের জন্য এতই অনন্য, কিছু ডেভেলপার কমান্ড লাইন ব্যবহার এড়িয়ে চলেন, কিছু সম্পূর্ণভাবে এর উপর নির্ভর করেন এবং কিছু মিশ্রণ পছন্দ করেন।
কিছু ডেভেলপার তাদের দৈনন্দিন কাজের জন্য কম গ্রাফিকাল ভিউ পছন্দ করেন এবং কমান্ড লাইনের উপর নির্ভর করেন। কোড লেখার জন্য প্রচুর টাইপিং প্রয়োজন এবং কিছু ডেভেলপার তাদের কীবোর্ডের ফ্লো ব্যাহত করতে চান না। তারা ডেস্কটপ উইন্ডোর মধ্যে স্যুইচ করতে, বিভিন্ন ফাইলে কাজ করতে, এবং টুল ব্যবহার করতে কীবোর্ড শর্টকাট ব্যবহার করেন। বেশিরভাগ কাজ মাউস দিয়ে সম্পন্ন করা যায়, তবে কমান্ড লাইনের একটি সুবিধা হলো অনেক কাজ মাউস এবং কীবোর্ডের মধ্যে স্যুইচ না করেই সম্পন্ন করা যায়। কমান্ড লাইন কনফিগারযোগ্য এবং আপনি একটি কাস্টম কনফিগারেশন সংরক্ষণ করতে, পরে এটি পরিবর্তন করতে, এবং এটি অন্য ডেভেলপমেন্ট মেশিনে আমদানি করতে পারেন। যেহেতু ডেভেলপমেন্ট এনভায়রনমেন্টগুলো প্রতিটি ডেভেলপারের জন্য অনন্য, কিছু ডেভেলপার কমান্ড লাইন ব্যবহার এড়িয়ে চলেন, কিছু সম্পূর্ণরূপে এর উপর নির্ভর করেন, এবং কিছু উভয়ের মিশ্রণ পছন্দ করেন।
### জনপ্রিয় কমান্ড লাইন অপশন
কমান্ড লাইনের অপশনগুলো আপনার ব্যবহৃত অপারেটিং সিস্টেমের উপর নির্ভর করে ভিন্ন হে।
কমান্ড লাইনের অপশনগুলো আপনার ব্যবহৃত অপারেটিং সিস্টেমের উপর নির্ভর করে ভিন্ন হতে পারে।
*💻 = অপারেটিং সিস্টেমে প্রি-ইনস্টল করা থাকে।*
*💻 = অপারেটিং সিস্টেমে পূর্বেই ইনস্টল করা থাকে।*
#### Windows
@ -182,36 +182,38 @@ back add r0,r1
### ডকুমেন্টেশন
যখন একজন ডেভেলপার নতুন কিছু শিখতে চান, তারা সম্ভবত ডকুমেন্টেশনের দিকে ঝুঁকবেন এটি কীভাবে ব্যবহার করতে হয় তা শিখতে। ডেভেলপাররা প্রায়ই ডকুমেন্টেশনের উপর নির্ভর করেন সরঞ্জাম এবং ভাষাগুলো সঠিকভাবে ব্যবহার করার জন্য এবং এটি কীভাবে কাজ করে তার গভীর জ্ঞান অর্জনের জন্য।
যখন একজন ডেভেলপার নতুন কিছু শিখতে চান, তারা সাধারণত ডকুমেন্টেশনের দিকে ঝোঁকেন এটি কীভাবে ব্যবহার করতে হয় তা শিখতে। ডেভেলপাররা প্রায়ই ডকুমেন্টেশনের উপর নির্ভর করেন টুল এবং ভাষাগুলো সঠিকভাবে ব্যবহার করার জন্য এবং এটি কীভাবে কাজ করে তার গভীর জ্ঞান অর্জনের জন্য।
#### ওয়েব ডেভেলপমেন্টের জনপ্রিয় ডকুমেন্টেশন
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), Mozilla থেকে, [Firefox](https://www.mozilla.org/firefox/) ব্রাউজারের প্রকাশক
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), Mozilla থেকে, যারা [Firefox](https://www.mozilla.org/firefox/) ব্রাউজার প্রকাশ রে
- [Frontend Masters](https://frontendmasters.com/learn/)
- [Web.dev](https://web.dev), Google থেকে, [Chrome](https://www.google.com/chrome/) এর প্রকাশক
- [Web.dev](https://web.dev), Google থেকে, যারা [Chrome](https://www.google.com/chrome/) প্রকাশ রে
- [Microsoft's own developer docs](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), [Microsoft Edge](https://www.microsoft.com/edge) এর জন্য
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ একটু গবেষণা করুন: এখন যেহেতু আপনি একজন ওয়েব ডেভেলপারের পরিবেশের মৌলিক বিষয়গুলো জানেন, এটি একজন ওয়েব ডিজাইনারের পরিবেশের সাথে তুলনা করুন এবং পার্থক্য খুঁজে বের করুন
✅ একটু গবেষণা করুন: এখন যেহেতু আপনি একজন ওয়েব ডেভেলপারের পরিবেশের মৌলিক বিষয়গুলো জানেন, এটি একজন ওয়েব ডিজাইনারের পরিবেশের সাথে তুলনা করুন।
---
## 🚀 চ্যালেঞ্জ
কিছু প্রোগ্রামিং ভাষার তুলনা করুন। জাভাস্ক্রিপ্ট বনাম জাভার কিছু অনন্য বৈশিষ্ট্য কী? COBOL বনাম Go এর ক্ষেত্রে কীভাবে তুলনা করবেন?
কিছু প্রোগ্রামিং ভাষার তুলনা করুন। জাভাস্ক্রিপ্ট বনাম জাভার কিছু অনন্য বৈশিষ্ট্য কী? কোবল বনাম গো এর ক্ষেত্রে কীভাবে?
## পোস্ট-পাঠ কুইজ
[পোস্ট-পাঠ কুইজ](https://ff-quizzes.netlify.app/web/)
## পোস্ট-লেকচার কুইজ
[পোস্ট-লেকচার কুইজ](https://ff-quizzes.netlify.app/web/)
## পর্যালোচনা এবং স্ব-অধ্যয়ন
## পুনরায় পর্যালোচনা এবং স্ব-অধ্যয়ন
প্রোগ্রামারের জন্য উপলব্ধ বিভিন্ন ভাষা সম্পর্কে একটু পড়াশোনা করুন। একটি ভাষায় একটি লাইন লিখুন, এবং তারপর এটি অন্য দুটি ভাষায় পুনরায় লিখুন। আপনি কী শিখলেন?
প্রোগ্রামারের জন্য উপলব্ধ বিভিন্ন ভাষা সম্পর্কে একটু অধ্যয়ন করুন। একটি ভাষায় একটি লাইন লিখুন, এবং তারপর এটি অন্য দুটি ভাষায় পুনরায় লিখুন। আপনি কী শিখলেন?
## অ্যাসাইনমেন্ট
[ডকুমেন্ট পড়া](assignment.md)
[ডকুমেন্টেশন পড়া](assignment.md)
> নোট: আপনার অ্যাসাইনমেন্টের জন্য টুল নির্বাচন করার সময়, উপরে তালিকাভুক্ত এডিটর, ব্রাউজার, বা কমান্ড লাইন টুলস নির্বাচন করবেন না।
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। এর মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,23 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-25T23:14:20+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T09:14:51+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "bn"
}
-->
# ডকুমেন্ট পড়া
## নির্দেশাবলী
ওয়েব ডেভেলপারের জন্য অনেক দরকারী টুল রয়েছে যা [ক্লায়েন্ট-সাইড টুলিংয়ের জন্য MDN ডকুমেন্টেশন](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview)-এ পাওয়া যায়। পাঠে আলোচনা করা হয়নি এমন ৩টি টুল নির্বাচন করুন, ব্যাখ্যা করুন কেন একটি ওয়েব ডেভেলপার এটি ব্যবহার করবেন, এবং এই ক্যাটাগরির অধীনে একটি টুল খুঁজে তার ডকুমেন্টেশন শেয়ার করুন। MDN ডকুমেন্টেশনে উল্লেখিত একই টুল উদাহরণ ব্যবহার করবেন না।
ওয়েব ডেভেলপারদের জন্য প্রয়োজনীয় অনেক টুল [MDN ডকুমেন্টেশনে ক্লায়েন্ট-সাইড টুলিং](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview)-এ তালিকাভুক্ত রয়েছে। এই পাঠে আলোচনা করা হয়নি এমন **তিনটি টুল** নির্বাচন করুন (পাঠের বিষয়বস্তু বা নির্দিষ্ট টুল বাদ দিয়ে), ব্যাখ্যা করুন **কেন** একটি ওয়েব ডেভেলপার এই টুল ব্যবহার করবেন এবং প্রতিটি বিভাগে একটি টুল খুঁজে বের করুন। প্রতিটির জন্য, এর অফিসিয়াল ডকুমেন্টেশনের একটি লিঙ্ক শেয়ার করুন (MDN-এ ব্যবহৃত উদাহরণ নয়)।
**ফরম্যাট:**
- টুলের নাম
- কেন একটি ওয়েব ডেভেলপার এটি ব্যবহার করবেন (২-৩টি বাক্য)
- ডকুমেন্টেশনের লিঙ্ক
## মূল্যায়ন মানদণ্ড
**দৈর্ঘ্য:**
- প্রতিটি ব্যাখ্যা ২-৩টি বাক্যের মধ্যে হওয়া উচিত।
উদাহরণস্বরূপ | পর্যাপ্ত | উন্নতির প্রয়োজন
## মূল্যায়ন
উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন
--- | --- | -- |
| কেন ওয়েব ডেভেলপার টুলটি ব্যবহার করবেন তা ব্যাখ্যা করা হয়েছে | কিভাবে ব্যবহার করবেন তা ব্যাখ্যা করা হয়েছে, কিন্তু কেন ব্যবহার করবেন তা উল্লেখ করা হয়নি | কিভাবে বা কেন ডেভেলপার টুলটি ব্যবহার করবেন তা উল্লেখ করা হয়নি |
কেন ওয়েব ডেভেলপার টুল ব্যবহার করবেন তা ব্যাখ্যা করা হয়েছে | কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করা হয়েছে, কিন্তু কেন ব্যবহার করবেন তা উল্লেখ করা হয়নি | কীভাবে বা কেন ব্যবহার করবেন তা উল্লেখ করা হয়নি |
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতা নিশ্চিত করার চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,23 +1,25 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-25T21:57:32+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T09:12:53+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "bn"
}
-->
# ডেটা টাইপ অনুশীলন
## নির্দেশাবলী
## নির্দেশ
ধরুন আপনি একটি শপিং কার্ট তৈরি করছেন। সেই অভিজ্ঞতা সম্পূর্ণ করতে আপনার যেসব ডেটা টাইপ প্রয়োজন হবে, সেগুলোর উপর কিছু ডকুমেন্টেশন লিখুন। আপনি কীভাবে আপনার পছন্দগুলোতে পৌঁছালেন তা ব্যাখ্যা করুন
ধরুন আপনি একটি শপিং কার্ট তৈরি করছেন। আপনার শপিং অভিজ্ঞতা সম্পূর্ণ করতে যে ডেটা টাইপগুলো প্রয়োজন হবে, তার উপর ডকুমেন্টেশন লিখুন। প্রতিটি ডেটা টাইপের জন্য ব্যাখ্যা করুন কীভাবে এবং কেন আপনি এটি ব্যবহার করবেন, এবং একটি উদাহরণ দিন। জাভাস্ক্রিপ্টের ছয়টি ডেটা টাইপ হলো: String, Number, Boolean, Null, Undefined, এবং Object
## মূল্যায়ন
মানদণ্ড | চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন
--- | --- | --- | --- |
||ছয়টি ডেটা টাইপ তালিকাভুক্ত এবং বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে, তাদের ব্যবহার ডকুমেন্ট করা হয়েছে|চারটি ডেটা টাইপ ব্যাখ্যা করা হয়েছে|দুটি ডেটা টাইপ ব্যাখ্যা করা হয়েছে|
ডেটা টাইপ | ছয়টি ডেটা টাইপই তালিকাভুক্ত, বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে এবং উদাহরণসহ ডকুমেন্ট করা হয়েছে | চারটি ডেটা টাইপ ব্যাখ্যা করা হয়েছে কিছুটা বিশ্লেষণ সহ | দুইটি ডেটা টাইপ ব্যাখ্যা করা হয়েছে ন্যূনতম বিশ্লেষণ সহ |
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। এর মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,23 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-25T21:11:53+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T09:15:08+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "bn"
}
-->
# আপনার HTML অনুশীলন করুন: একটি ব্লগ মকআপ তৈরি করুন
# HTML প্র্যাকটিস অ্যাসাইনমেন্ট: একটি ব্লগ মকআপ তৈরি করুন
## নির্দেশনা
## লক্ষ্য
ভাবুন আপনি আপনার ব্যক্তিগত ওয়েবসাইট ডিজাইন বা পুনরায় ডিজাইন করছেন। আপনার সাইটের একটি গ্রাফিকাল মকআপ তৈরি করুন এবং তারপর সাইটের বিভিন্ন উপাদান তৈরি করতে আপনি যে HTML মার্কআপ ব্যবহার করবেন তা লিখে রাখুন। আপনি এটি কাগজে করতে পারেন এবং স্ক্যান করতে পারেন, অথবা আপনার পছন্দের সফটওয়্যার ব্যবহার করতে পারেন, শুধু নিশ্চিত করুন যে HTML মার্কআপটি হাতে কোড করা হয়েছে।
একটি ব্যক্তিগত ব্লগ হোমপেজের জন্য HTML কাঠামো ডিজাইন এবং হাতে কোড করা। এই অনুশীলনটি আপনাকে সেমান্টিক HTML, লেআউট পরিকল্পনা এবং কোড সংগঠনের দক্ষতা উন্নত করতে সাহায্য করবে।
## মূল্যায়ন
## নির্দেশাবলী
| মানদণ্ড | চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন |
| -------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| | একটি ব্লগ লেআউট দৃশ্যমানভাবে উপস্থাপিত হয়েছে যেখানে অন্তত ১০টি মার্কআপ উপাদান প্রদর্শিত | একটি ব্লগ লেআউট দৃশ্যমানভাবে উপস্থাপিত হয়েছে যেখানে প্রায় ৫টি মার্কআপ উপাদান প্রদর্শিত | একটি ব্লগ লেআউট দৃশ্যমানভাবে উপস্থাপিত হয়েছে যেখানে সর্বোচ্চ ৩টি মার্কআপ উপাদান প্রদর্শিত |
1. **আপনার ব্লগ মকআপ ডিজাইন করুন**
- আপনার ব্লগ হোমপেজের একটি ভিজ্যুয়াল মকআপ স্কেচ করুন। এতে প্রধান অংশগুলি অন্তর্ভুক্ত করুন যেমন হেডার, নেভিগেশন, মেইন কন্টেন্ট, সাইডবার এবং ফুটার।
- আপনি কাগজে স্কেচ করতে পারেন এবং সেটি স্ক্যান করতে পারেন, অথবা ডিজিটাল টুলস (যেমন Figma, Adobe XD, Canva, বা এমনকি PowerPoint) ব্যবহার করতে পারেন।
2. **HTML উপাদান চিহ্নিত করুন**
- প্রতিটি অংশের জন্য আপনি যে HTML উপাদানগুলি ব্যবহার করবেন তা তালিকাভুক্ত করুন (যেমন `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>` ইত্যাদি)।
3. **HTML মার্কআপ লিখুন**
- আপনার মকআপের জন্য HTML হাতে কোড করুন। সেমান্টিক কাঠামো এবং সেরা অনুশীলনের উপর মনোযোগ দিন।
- অন্তত ১০টি ভিন্ন HTML উপাদান অন্তর্ভুক্ত করুন।
- আপনার পছন্দ এবং কাঠামো ব্যাখ্যা করতে মন্তব্য যোগ করুন।
4. **আপনার কাজ জমা দিন**
- আপনার স্কেচ/মকআপ এবং HTML ফাইল আপলোড করুন।
- ঐচ্ছিকভাবে, আপনার ডিজাইন সিদ্ধান্ত সম্পর্কে সংক্ষিপ্ত প্রতিফলন (২-৩ বাক্য) প্রদান করুন।
## মূল্যায়ন সূচক
| মানদণ্ড | চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন |
|------------------|--------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| ভিজ্যুয়াল মকআপ | পরিষ্কার, বিস্তারিত মকআপ যেখানে অংশগুলি লেবেল করা এবং চিন্তাশীল লেআউট রয়েছে | মৌলিক মকআপ যেখানে কিছু অংশ লেবেল করা হয়েছে | ন্যূনতম বা অস্পষ্ট মকআপ; অংশগুলির লেবেল নেই |
| HTML উপাদান | ১০+ সেমান্টিক HTML উপাদান ব্যবহার; কাঠামো এবং সেরা অনুশীলনের বোঝাপড়া প্রদর্শন করে | ৫–৯ HTML উপাদান ব্যবহার; কিছু সেমান্টিক কাঠামো | ৫টির কম উপাদান ব্যবহার; সেমান্টিক কাঠামোর অভাব |
| কোডের গুণমান | সুসংগঠিত, পাঠযোগ্য কোড যেখানে মন্তব্য রয়েছে; HTML মান অনুসরণ করে | বেশিরভাগ ক্ষেত্রে সংগঠিত কোড; কিছু মন্তব্য | বিশৃঙ্খল কোড; মন্তব্যের অভাব |
| প্রতিফলন | ডিজাইন সিদ্ধান্ত এবং চ্যালেঞ্জ সম্পর্কে অন্তর্দৃষ্টিপূর্ণ প্রতিফলন | মৌলিক প্রতিফলন | প্রতিফলন নেই বা প্রাসঙ্গিক নয় |
## টিপস
- আরও ভালো অ্যাক্সেসিবিলিটি এবং SEO-এর জন্য সেমান্টিক HTML ট্যাগ ব্যবহার করুন।
- ইনডেন্টেশন এবং মন্তব্য দিয়ে আপনার কোড সংগঠিত করুন।
- নির্দেশনার জন্য [MDN HTML Elements Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) দেখুন।
- ভবিষ্যতের অ্যাসাইনমেন্টে কীভাবে আপনার লেআউট প্রসারিত বা স্টাইল করা যেতে পারে তা নিয়ে ভাবুন।
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। এর মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,23 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-25T21:29:24+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T09:14:58+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "bn"
}
-->
# CSS পুনর্গঠন
# CSS রিফ্যাক্টরিং অ্যাসাইনমেন্ট
## লক্ষ্য
**Flexbox** বা **CSS Grid** ব্যবহার করে টেরারিয়াম প্রকল্পের লেআউট রিফ্যাক্টর করুন। আধুনিক, রেসপন্সিভ ডিজাইন অর্জনের জন্য HTML এবং CSS আপডেট করুন। আপনাকে ড্র্যাগযোগ্য উপাদানগুলি বাস্তবায়ন করতে হবে না—শুধুমাত্র লেআউট এবং স্টাইলিংয়ে মনোযোগ দিন।
## নির্দেশনা
Flexbox বা CSS Grid ব্যবহার করে টেরারিয়ামটি পুনরায় স্টাইল করুন এবং বিভিন্ন ব্রাউজারে এটি পরীক্ষা করার স্ক্রিনশট নিন। আপনাকে মার্কআপ পরিবর্তন করতে হতে পারে, তাই আপনার পুনর্গঠনের জন্য অ্যাপটির একটি নতুন সংস্করণ তৈরি করুন যেখানে শিল্পকর্মটি সঠিকভাবে স্থাপন করা হয়েছে। উপাদানগুলোকে ড্র্যাগযোগ্য করার চিন্তা করবেন না; আপাতত শুধুমাত্র HTML এবং CSS পুনর্গঠন করুন।
1. **টেরারিয়াম অ্যাপের একটি নতুন সংস্করণ তৈরি করুন।** লেআউটের জন্য Flexbox বা CSS Grid ব্যবহার করতে মার্কআপ এবং CSS আপডেট করুন।
2. **শিল্পকর্ম এবং উপাদানগুলি সঠিকভাবে স্থাপন করুন** যেন এগুলো মূল সংস্করণের মতো থাকে।
3. **আপনার ডিজাইন পরীক্ষা করুন** অন্তত দুটি ভিন্ন ব্রাউজারে (যেমন, Chrome, Firefox, Edge)।
4. **প্রতিটি ব্রাউজারে আপনার টেরারিয়ামের স্ক্রিনশট নিন** ক্রস-ব্রাউজার সামঞ্জস্য প্রদর্শনের জন্য।
5. **আপডেট করা কোড এবং স্ক্রিনশট জমা দিন।**
## মূল্যায়ন
| মানদণ্ড | চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন |
| -------- | ------------------------------------------------------------- | ----------------------------- | ------------------------------------ |
| | Flexbox বা CSS Grid ব্যবহার করে সম্পূর্ণ পুনরায় স্টাইল করা টেরারিয়াম উপস্থাপন করুন | কয়েকটি উপাদান পুনরায় স্টাইল করুন | টেরারিয়াম পুনরায় স্টাইল করতে ব্যর্থ |
| মানদণ্ড | চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন |
|------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| লেআউট | Flexbox বা CSS Grid ব্যবহার করে সম্পূর্ণ রিফ্যাক্টর করা; দৃষ্টিনন্দন এবং রেসপন্সিভ | কিছু উপাদান রিফ্যাক্টর করা; Flexbox বা Grid আংশিকভাবে ব্যবহার করা | Flexbox বা Grid সামান্য বা একেবারেই ব্যবহার করা হয়নি; লেআউট অপরিবর্তিত |
| ক্রস-ব্রাউজার | একাধিক ব্রাউজারের জন্য স্ক্রিনশট প্রদান করা হয়েছে; সামঞ্জস্যপূর্ণ চেহারা | একটি ব্রাউজারের স্ক্রিনশট; ছোটখাটো অসামঞ্জস্য | স্ক্রিনশট নেই বা বড় অসামঞ্জস্য |
| কোডের গুণমান | পরিষ্কার, সুসংগঠিত HTML/CSS; স্পষ্ট মন্তব্য | কিছুটা সংগঠিত; কয়েকটি মন্তব্য | বিশৃঙ্খল কোড; মন্তব্যের অভাব |
## টিপস
- [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) এবং [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) গাইড পর্যালোচনা করুন।
- রেসপন্সিভনেস পরীক্ষা করতে ব্রাউজারের ডেভেলপার টুল ব্যবহার করুন।
- কোডের স্পষ্টতার জন্য মন্তব্য যোগ করুন।
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা তার জন্য দায়ী থাকব না।
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,160 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-28T23:04:54+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T09:13:28+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "bn"
}
-->
# কোড এডিটর ব্যবহার করা
***
এই পাঠে [VSCode.dev](https://vscode.dev) নামক একটি ওয়েব-ভিত্তিক কোড এডিটর ব্যবহারের মৌলিক বিষয়গুলো আলোচনা করা হয়েছে, যাতে আপনি আপনার কোডে পরিবর্তন আনতে এবং কোনো প্রজেক্টে অবদান রাখতে পারেন, আপনার কম্পিউটারে কিছু ইনস্টল না করেই।
# কোড এডিটর ব্যবহার: [VSCode.dev](https://vscode.dev) দক্ষতার সাথে শিখুন
## শেখার লক্ষ্যসমূহ
**স্বাগতম!**
এই পাঠটি আপনাকে [VSCode.dev](https://vscode.dev)—একটি শক্তিশালী, ওয়েব-ভিত্তিক কোড এডিটর—এর বেসিক থেকে অ্যাডভান্সড ব্যবহারের দিকে নিয়ে যাবে। আপনি শিখবেন কীভাবে আত্মবিশ্বাসের সাথে কোড সম্পাদনা করবেন, প্রজেক্ট পরিচালনা করবেন, পরিবর্তন ট্র্যাক করবেন, এক্সটেনশন ইনস্টল করবেন এবং পেশাদারদের মতো সহযোগিতা করবেন—সবকিছুই আপনার ব্রাউজার থেকে, কোনো ইনস্টলেশন ছাড়াই।
এই পাঠে আপনি শিখবেন:
***
- কোড প্রজেক্টে কোড এডিটর ব্যবহার করা
- ভার্সন কন্ট্রোলের মাধ্যমে পরিবর্তনগুলো ট্র্যাক করা
- ডেভেলপমেন্টের জন্য এডিটর কাস্টমাইজ করা
## শেখার লক্ষ্য
### পূর্বশর্ত
এই পাঠ শেষে, আপনি সক্ষম হবেন:
শুরু করার আগে, আপনাকে [GitHub](https://github.com) এ একটি অ্যাকাউন্ট তৈরি করতে হবে। [GitHub](https://github.com/) এ যান এবং যদি আপনার অ্যাকাউন্ট না থাকে তবে একটি অ্যাকাউন্ট তৈরি করুন।
- যেকোনো প্রজেক্টে, যেকোনো জায়গায় দক্ষতার সাথে কোড এডিটর ব্যবহার করতে
- বিল্ট-ইন ভার্সন কন্ট্রোল দিয়ে আপনার কাজ নির্বিঘ্নে ট্র্যাক করতে
- এডিটর কাস্টমাইজেশন এবং এক্সটেনশন দিয়ে আপনার ডেভেলপমেন্ট ওয়ার্কফ্লোকে ব্যক্তিগতকরণ এবং উন্নত করতে
### ভূমিকা
***
কোড এডিটর হলো প্রোগ্রাম লেখার এবং বিদ্যমান কোডিং প্রজেক্টে সহযোগিতা করার জন্য একটি অপরিহার্য টুল। একবার আপনি এডিটরের মৌলিক বিষয়গুলো এবং এর বৈশিষ্ট্যগুলো কীভাবে ব্যবহার করবেন তা বুঝে গেলে, আপনি এগুলো কোড লেখার সময় প্রয়োগ করতে পারবেন।
## পূর্বশর্ত
## VSCode.dev দিয়ে শুরু করা
শুরু করার জন্য, **একটি বিনামূল্যের [GitHub](https://github.com) অ্যাকাউন্ট তৈরি করুন**, যা আপনাকে কোড রিপোজিটরি পরিচালনা এবং বিশ্বব্যাপী সহযোগিতা করতে সাহায্য করবে। যদি আপনার অ্যাকাউন্ট না থাকে, [এখানে একটি তৈরি করুন](https://github.com/)।
[VSCode.dev](https://vscode.dev) হলো একটি ওয়েব-ভিত্তিক কোড এডিটর। এটি ব্যবহার করতে আপনাকে কিছু ইনস্টল করার প্রয়োজন নেই, এটি ঠিক অন্য কোনো ওয়েবসাইট খোলার মতো। এডিটরটি শুরু করতে, এই লিঙ্কটি খুলুন: [https://vscode.dev](https://vscode.dev)। যদি আপনি [GitHub](https://github.com/) এ সাইন ইন না করে থাকেন, তাহলে সাইন ইন করার বা নতুন অ্যাকাউন্ট তৈরি করার জন্য প্রম্পট অনুসরণ করুন এবং তারপর সাইন ইন করুন।
***
লোড হওয়ার পর, এটি নিচের ছবির মতো দেখতে হবে:
## কেন ওয়েব-ভিত্তিক কোড এডিটর ব্যবহার করবেন?
![Default VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.bn.png)
একটি **কোড এডিটর** যেমন VSCode.dev আপনার কোড লেখার, সম্পাদনা করার এবং পরিচালনা করার কমান্ড সেন্টার। একটি সহজবোধ্য ইন্টারফেস, অসংখ্য ফিচার এবং ব্রাউজারের মাধ্যমে তাৎক্ষণিক অ্যাক্সেস সহ, আপনি পারবেন:
এখানে তিনটি প্রধান অংশ রয়েছে, বাম থেকে ডানে:
- যেকোনো ডিভাইসে প্রজেক্ট সম্পাদনা করতে
- ইনস্টলেশনের ঝামেলা এড়াতে
- তাৎক্ষণিকভাবে সহযোগিতা এবং অবদান রাখতে
1. _অ্যাক্টিভিটি বার_, যেখানে কিছু আইকন রয়েছে, যেমন ম্যাগনিফাইং গ্লাস 🔎, গিয়ার ⚙️, এবং আরও কিছু।
2. _সাইড বার_, যা ডিফল্টভাবে _এক্সপ্লোরার_ এ সেট করা থাকে।
3. এবং শেষের দিকে কোডের জন্য জায়গা।
VSCode.dev-এ দক্ষ হয়ে উঠলে, আপনি যেকোনো সময়, যেকোনো জায়গা থেকে কোডিং কাজ মোকাবেলা করতে প্রস্তুত থাকবেন।
প্রতিটি আইকনে ক্লিক করে বিভিন্ন মেনু প্রদর্শন করুন। কাজ শেষ হলে, _এক্সপ্লোরার_ এ ক্লিক করুন যাতে আপনি আবার শুরুতে ফিরে আসেন।
***
যখন আপনি কোড তৈরি করা বা বিদ্যমান কোড পরিবর্তন করা শুরু করবেন, এটি ডানপাশের সবচেয়ে বড় জায়গায় হবে। এই জায়গাটি ব্যবহার করে আপনি বিদ্যমান কোডও দেখতে পারবেন, যা আপনি পরবর্তী ধাপে করবেন।
## VSCode.dev দিয়ে শুরু করা
## একটি GitHub রিপোজিটরি খুলুন
প্রথমে আপনাকে একটি GitHub রিপোজিটরি খুলতে হবে। রিপোজিটরি খোলার বিভিন্ন উপায় রয়েছে। এই অংশে আপনি দুটি ভিন্ন উপায় দেখতে পাবেন যার মাধ্যমে আপনি রিপোজিটরি খুলে পরিবর্তন করতে পারবেন।
**[VSCode.dev](https://vscode.dev)**-এ যান—কোনো ইনস্টলেশন বা ডাউনলোডের প্রয়োজন নেই। GitHub দিয়ে সাইন ইন করলে পূর্ণ অ্যাক্সেস আনলক হবে, যার মধ্যে আপনার সেটিংস, এক্সটেনশন এবং রিপোজিটরি সিঙ্ক করা অন্তর্ভুক্ত। যদি প্রম্পট আসে, আপনার GitHub অ্যাকাউন্ট সংযুক্ত করুন।
### ১. এডিটরের মাধ্যমে
লোড হওয়ার পরে, আপনার ওয়ার্কস্পেস দেখতে এমন হবে:
এডিটর ব্যবহার করে একটি রিমোট রিপোজিটরি খুলুন। যদি আপনি [VSCode.dev](https://vscode.dev) এ যান, আপনি একটি _"Open Remote Repository"_ বোতাম দেখতে পাবেন:
![Default VSCode.dev](../images/default-vscode-dev তিনটি প্রধান অংশ নিয়ে গঠিত:
- **অ্যাক্টিভিটি বার:** 🔎 (সার্চ), ⚙️ (সেটিংস), ফাইল, সোর্স কন্ট্রোল ইত্যাদি আইকন।
- **সাইডবার:** অ্যাক্টিভিটি বার আইকন অনুযায়ী প্রসঙ্গ পরিবর্তন করে (ডিফল্ট *এক্সপ্লোরার* এ থাকে, যা ফাইল দেখায়)।
- **এডিটর/কোড এরিয়া:** ডানদিকে সবচেয়ে বড় অংশ—যেখানে আপনি কোড সম্পাদনা এবং দেখতে পারবেন।
![Open remote repository](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.bn.png)
ফিচারগুলো অন্বেষণ করতে আইকনগুলো ক্লিক করুন, তবে আপনার অবস্থান ধরে রাখতে _এক্সপ্লোরার_-এ ফিরে আসুন।
আপনি কমান্ড প্যালেটও ব্যবহার করতে পারেন। কমান্ড প্যালেট হলো একটি ইনপুট বক্স যেখানে আপনি কোনো কমান্ড বা অ্যাকশনের অংশ হিসেবে কোনো শব্দ টাইপ করতে পারেন সঠিক কমান্ডটি খুঁজে বের করার জন্য। উপরের বাম মেনুতে যান, তারপর _View_ নির্বাচন করুন, এবং তারপর _Command Palette_ নির্বাচন করুন, অথবা এই কিবোর্ড শর্টকাট ব্যবহার করুন: Ctrl-Shift-P (MacOS এ এটি Command-Shift-P হবে)।
***
![Palette Menu](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.bn.png)
## একটি GitHub রিপোজিটরি খুলুন
মেনু খুললে, _open remote repository_ টাইপ করুন এবং তারপর প্রথম অপশনটি নির্বাচন করুন। আপনি যে রিপোজিটরিগুলোর অংশ বা সম্প্রতি খুলেছেন সেগুলো দেখাবে। আপনি একটি সম্পূর্ণ GitHub URL ব্যবহার করেও একটি নির্বাচন করতে পারেন। নিচের URL ব্যবহার করুন এবং বক্সে পেস্ট করুন:
### পদ্ধতি ১: এডিটর থেকে
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
1. [VSCode.dev](https://vscode.dev)-এ যান। **"Open Remote Repository"** ক্লিক করুন।
✅ সফল হলে, আপনি এই রিপোজিটরির সব ফাইল টেক্সট এডিটরে লোড হতে দেখবেন
![Open remote repository](../../../../8-code-editor/images/open-remote-repository _কমান্ড প্যালেট_ ব্যবহার করুন (Ctrl-Shift-P, অথবা Mac-এ Cmd-Shift-P)।
### ২. URL ব্যবহার করে
![Palette Menu](../images/palette-menu.pngopen remote repository.”
- অপশনটি নির্বাচন করুন।
- আপনার GitHub রিপোজিটরি URL (যেমন, `https://github.com/microsoft/Web-Dev-For-Beginners`) পেস্ট করুন এবং Enter চাপুন।
আপনি সরাসরি একটি URL ব্যবহার করেও রিপোজিটরি লোড করতে পারেন। উদাহরণস্বরূপ, বর্তমান রিপোজিটরির সম্পূর্ণ URL হলো [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), তবে আপনি GitHub ডোমেইনটি `VSCode.dev/github` দিয়ে পরিবর্তন করে রিপোজিটরি সরাসরি লোড করতে পারেন। ফলাফল URL হবে [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners)।
যদি সফল হয়, আপনি পুরো প্রজেক্ট লোড হয়ে সম্পাদনার জন্য প্রস্তুত দেখতে পাবেন!
## ফাইল সম্পাদনা করুন
***
একবার আপনি ব্রাউজারে বা vscode.dev এ রিপোজিটরি খুলে ফেললে, পরবর্তী ধাপ হবে প্রজেক্টে আপডেট বা পরিবর্তন করা।
### পদ্ধতি ২: URL এর মাধ্যমে তাৎক্ষণিকভাবে
### ১. একটি নতুন ফাইল তৈরি করুন
যেকোনো GitHub রিপোজিটরি URL পরিবর্তন করে সরাসরি VSCode.dev-এ খুলুন `github.com`-কে `vscode.dev/github` দিয়ে প্রতিস্থাপন করে।
যেমন:
আপনি বিদ্যমান ফোল্ডারের ভিতরে একটি ফাইল তৈরি করতে পারেন, অথবা রুট ডিরেক্টরি/ফোল্ডারে এটি তৈরি করতে পারেন। একটি নতুন ফাইল তৈরি করতে, সেই লোকেশন/ডিরেক্টরি খুলুন যেখানে আপনি ফাইলটি সংরক্ষণ করতে চান এবং _'New file ...'_ আইকনটি নির্বাচন করুন, একটি নাম দিন এবং এন্টার চাপুন।
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
![Create a new file](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.bn.png)
এই ফিচারটি যেকোনো প্রজেক্টে দ্রুত অ্যাক্সেসকে সুপারচার্জ করে।
### ২. রিপোজিটরিতে একটি ফাইল সম্পাদনা এবং সংরক্ষণ করুন
***
vscode.dev ব্যবহার করা সুবিধাজনক যখন আপনি আপনার প্রজেক্টে দ্রুত আপডেট করতে চান এবং কোনো সফটওয়্যার লোকালি লোড করতে চান না।
আপনার কোড আপডেট করতে, 'Explorer' আইকনে ক্লিক করুন, যা অ্যাক্টিভিটি বারে অবস্থিত, রিপোজিটরির ফাইল ও ফোল্ডার দেখতে।
একটি ফাইল নির্বাচন করুন যাতে এটি কোড এলাকায় খুলে যায়, পরিবর্তন করুন এবং সংরক্ষণ করুন।
## আপনার প্রজেক্টে ফাইল সম্পাদনা করা
![Edit a file](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.bn.png)
আপনার রিপোজিটরি খুললে, আপনি পারবেন:
আপনার প্রজেক্ট আপডেট করা শেষ হলে, _`source control`_ আইকনটি নির্বাচন করুন যেখানে আপনি আপনার রিপোজিটরিতে করা নতুন পরিবর্তনগুলো দেখতে পাবেন।
### ১. **নতুন ফাইল তৈরি করুন**
- *এক্সপ্লোরার* সাইডবারে আপনার পছন্দের ফোল্ডারে যান অথবা রুট ব্যবহার করুন।
- _New file ..._ আইকন ক্লিক করুন।
- আপনার ফাইলের নাম দিন, **Enter** চাপুন, এবং আপনার ফাইল তাৎক্ষণিকভাবে উপস্থিত হবে।
আপনার প্রজেক্টে করা পরিবর্তনগুলো দেখতে, _Changes_ ফোল্ডারে থাকা ফাইলগুলো নির্বাচন করুন যা এক্সপ্যান্ডেড অ্যাক্টিভিটি বারে রয়েছে। এটি একটি 'Working Tree' খুলবে যেখানে আপনি ভিজ্যুয়ালি দেখতে পারবেন ফাইলের পরিবর্তনগুলো। লাল রঙ প্রজেক্ট থেকে কিছু বাদ পড়া নির্দেশ করে, আর সবুজ রঙ যোগ করা নির্দেশ করে।
![Create a new file](../images/create-new-file ২. **ফাইল সম্পাদনা এবং সংরক্ষণ করুন**
![View changes](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.bn.png)
- *এক্সপ্লোরার*-এ একটি ফাইল ক্লিক করুন যাতে এটি কোড এরিয়াতে খুলে যায়।
- প্রয়োজন অনুযায়ী আপনার পরিবর্তন করুন।
- VSCode.dev স্বয়ংক্রিয়ভাবে আপনার পরিবর্তন সংরক্ষণ করে, তবে আপনি ম্যানুয়ালি সংরক্ষণ করতে Ctrl+S চাপতে পারেন।
যদি আপনি আপনার করা পরিবর্তনগুলো নিয়ে সন্তুষ্ট হন, তাহলে _Changes_ ফোল্ডারে হোভার করুন এবং পরিবর্তনগুলো স্টেজ করতে _`+`_ বোতামে ক্লিক করুন। স্টেজিং মানে হলো আপনার পরিবর্তনগুলো GitHub এ কমিট করার জন্য প্রস্তুত করা।
![Edit a file](../images/edit-a-file.png. **ভার্সন কন্ট্রোল দিয়ে পরিবর্তন ট্র্যাক এবং কমিট করুন**
যদি আপনি কিছু পরিবর্তন নিয়ে সন্তুষ্ট না হন এবং সেগুলো বাতিল করতে চান, তাহলে _Changes_ ফোল্ডারে হোভার করুন এবং _`undo`_ আইকনটি নির্বাচন করুন।
VSCode.dev-এ **Git** ভার্সন কন্ট্রোল ইন্টিগ্রেটেড রয়েছে!
তারপর একটি _commit message_ টাইপ করুন _(আপনার প্রজেক্টে করা পরিবর্তনের বর্ণনা)_, এবং পরিবর্তনগুলো কমিট ও পুশ করতে _check icon_ এ ক্লিক করুন।
- পরিবর্তন দেখতে _'Source Control'_ আইকন ক্লিক করুন।
- `Changes` ফোল্ডারে থাকা ফাইলগুলোতে সংযোজন (সবুজ) এবং বর্জন (লাল) দেখায়।
![View changes](../images/working-tree.png পরিবর্তনগুলো প্রস্তুত করতে ফাইলের পাশে থাকা `+` ক্লিক করুন।
- **অপ্রয়োজনীয় পরিবর্তন** বাতিল করতে আনডু আইকন ক্লিক করুন।
- একটি স্পষ্ট কমিট বার্তা টাইপ করুন, তারপর চেকমার্ক ক্লিক করে কমিট এবং পুশ করুন।
আপনার প্রজেক্টে কাজ শেষ হলে, উপরের বাম দিকে থাকা _hamburger menu icon_ নির্বাচন করুন যাতে আপনি github.com এ রিপোজিটরিতে ফিরে যেতে পারেন।
GitHub-এ আপনার রিপোজিটরিতে ফিরে যেতে, উপরের বাম দিকে থাকা হ্যামবার্গার মেনু নির্বাচন করুন।
![Stage & commit changes](../../../../8-code-editor/images/edit-vscode.dev.gif)
![Stage & commit changes](../images/edit-vscode.dev Extensions দিয়ে উন্নত করুন
## এক্সটেনশন ব্যবহার করা
এক্সটেনশনগুলো আপনাকে VSCode.dev-এ ভাষা, থিম, ডিবাগার এবং প্রোডাক্টিভিটি টুল যোগ করতে দেয়—যা আপনার কোডিং জীবনকে সহজ এবং আরও মজাদার করে তোলে।
VSCode এ এক্সটেনশন ইনস্টল করলে আপনি আপনার এডিটরে নতুন বৈশিষ্ট্য যোগ করতে এবং ডেভেলপমেন্ট পরিবেশ কাস্টমাইজ করতে পারেন যা আপনার ডেভেলপমেন্ট ওয়ার্কফ্লো উন্নত করে। এই এক্সটেনশনগুলো আপনাকে একাধিক প্রোগ্রামিং ভাষার জন্য সাপোর্ট যোগ করতে সাহায্য করে এবং সাধারণত জেনেরিক এক্সটেনশন বা ভাষা-ভিত্তিক এক্সটেনশন হয়ে থাকে।
### এক্সটেনশন ব্রাউজ এবং পরিচালনা করা
সব উপলব্ধ এক্সটেনশনের তালিকা দেখতে, অ্যাক্টিভিটি বারে _`Extensions icon`_ এ ক্লিক করুন এবং _'Search Extensions in Marketplace'_ লেবেলযুক্ত টেক্সট ফিল্ডে এক্সটেনশনের নাম টাইপ করুন।
আপনি এক্সটেনশনের একটি তালিকা দেখতে পাবেন, যেখানে থাকবে **এক্সটেনশনের নাম, প্রকাশকের নাম, এক বাক্যের বিবরণ, ডাউনলোড সংখ্যা** এবং **স্টার রেটিং**
- অ্যাক্টিভিটি বারে **Extensions আইকন** ক্লিক করুন।
- _'Search Extensions in Marketplace'_ বক্সে একটি এক্সটেনশন অনুসন্ধান করুন
![Extension details](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.bn.png)
![Extension details](../images/extension-details:
- **Installed**: আপনার যোগ করা সমস্ত এক্সটেনশন
- **Popular**: ইন্ডাস্ট্রির প্রিয়
- **Recommended**: আপনার ওয়ার্কফ্লো অনুযায়ী সাজানো
আপনি পূর্বে ইনস্টল করা সব এক্সটেনশন _Installed folder_ এ, বেশিরভাগ ডেভেলপারদের ব্যবহৃত জনপ্রিয় এক্সটেনশন _Popular folder_ এ এবং আপনার জন্য সুপারিশকৃত এক্সটেনশন _recommended folder_ এ দেখতে পারবেন।
![View extensions](
![View extensions](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.bn.png)
### ১. এক্সটেনশন ইনস্টল করুন
***
একটি এক্সটেনশন ইনস্টল করতে, সার্চ ফিল্ডে এক্সটেনশনের নাম টাইপ করুন এবং এক্সটেনশনটি এক্সপ্যান্ডেড অ্যাক্টিভিটি বারে প্রদর্শিত হলে এটি নির্বাচন করুন।
এক্সটেনশন সম্পর্কে অতিরিক্ত তথ্য দেখতে কোড এলাকায় এটি লোড করুন।
আপনি এক্সপ্যান্ডেড অ্যাক্টিভিটি বারে থাকা _নীল ইনস্টল বোতাম_ ব্যবহার করে অথবা কোড এলাকায় থাকা ইনস্টল বোতাম ব্যবহার করে এক্সটেনশনটি ইনস্টল করতে পারেন।
### ১. **এক্সটেনশন ইনস্টল করুন**
![Install extensions](../../../../8-code-editor/images/install-extension.gif)
- সার্চে এক্সটেনশনের নাম লিখুন, এটি ক্লিক করুন এবং এডিটরে বিস্তারিত দেখুন।
- সাইডবারে _বা_ প্রধান কোড এরিয়াতে **নীল Install বোতাম** চাপুন।
### ২. এক্সটেনশন কাস্টমাইজ করুন
![Install extensions](../images/install-extension ২. **এক্সটেনশন কাস্টমাইজ করুন**
এক্সটেনশন ইনস্টল করার পর, আপনি এর আচরণ পরিবর্তন করতে এবং আপনার পছন্দ অনুযায়ী কাস্টমাইজ করতে পারেন।
এটি করতে, _Extensions icon_ নির্বাচন করুন, এবং এবার আপনার এক্সটেনশন _Installed folder_ এ প্রদর্শিত হবে।
_**Gear icon**_ এ ক্লিক করুন এবং _Extensions Setting_ এ যান।
- আপনার ইনস্টল করা এক্সটেনশন খুঁজুন।
- **Gear আইকন** ক্লিক করুন → _Extension Settings_ নির্বাচন করুন যাতে আপনার পছন্দ অনুযায়ী সেটিংস পরিবর্তন করতে পারেন।
![Modify extension settings](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.bn.png)
![Modify extension settings](../images/extension-settings ৩. **এক্সটেনশন পরিচালনা করুন**
আপনি পারবেন:
### ৩. এক্সটেনশন ম্যানেজ করুন
- **Disable:** একটি এক্সটেনশন সাময়িকভাবে বন্ধ করুন কিন্তু ইনস্টল রাখা
- **Uninstall:** স্থায়ীভাবে সরিয়ে ফেলুন যদি আর প্রয়োজন না হয়
এক্সটেনশন ইনস্টল এবং ব্যবহার করার পর, vscode.dev বিভিন্ন প্রয়োজন অনুযায়ী এক্সটেনশন ম্যানেজ করার অপশন প্রদান করে। উদাহরণস্বরূপ, আপনি হয়তো:
এক্সটেনশনটি খুঁজুন, Gear আইকন চাপুন এবং Disable বা Uninstall নির্বাচন করুন, অথবা কোড এরিয়াতে নীল বোতাম ব্যবহার করুন।
- **ডিসেবল:** _(আপনি যখন কোনো এক্সটেনশন সাময়িকভাবে ব্যবহার করতে চান না কিন্তু সম্পূর্ণ আনইনস্টল করতে চান না)_
***
এক্সপ্যান্ডেড অ্যাক্টিভিটি বারে ইনস্টল করা এক্সটেনশন নির্বাচন করুন > Gear icon এ ক্লিক করুন > 'Disable' বা 'Disable (Workspace)' নির্বাচন করুন **অথবা** কোড এলাকায় এক্সটেনশন খুলুন এবং নীল Disable বোতামে ক্লিক করুন।
## অ্যাসাইনমেন্ট
- **আনইনস্টল:** এক্সপ্যান্ডেড অ্যাক্টিভিটি বারে ইনস্টল করা এক্সটেনশন নির্বাচন করুন > Gear icon এ ক্লিক করুন > 'Uninstall' নির্বাচন করুন **অথবা** কোড এলাকায় এক্সটেনশন খুলুন এবং নীল Uninstall বোতামে ক্লিক করুন।
আপনার দক্ষতা পরীক্ষা করুন: [vscode.dev ব্যবহার করে একটি রিজিউম ওয়েবসাইট তৈরি করুন](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## অ্যাসাইনমেন্ট
## আরও অনুসন্ধান এবং স্ব-অধ্যয়ন
[VSCode.dev ব্যবহার করে একটি রিজিউম ওয়েবসাইট তৈরি করুন](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- [VSCode Web Docs](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza)-এর মাধ্যমে আরও গভীরে যান।
- উন্নত ওয়ার্কস্পেস ফিচার, কীবোর্ড শর্টকাট এবং সেটিংস অন্বেষণ করুন।
## রিভিউ এবং স্ব-অধ্যয়ন
***
[VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) এবং এর অন্যান্য বৈশিষ্ট্য সম্পর্কে আরও পড়ুন।
**এখন আপনি প্রস্তুত কোড করতে, তৈরি করতে এবং সহযোগিতা করতে—যেকোনো জায়গা থেকে, যেকোনো ডিভাইসে, VSCode.dev ব্যবহার করে!**
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:20:50+00:00",
"source_file": "AGENTS.md",
"language_code": "bn"
}
-->
# AGENTS.md
## প্রকল্পের সংক্ষিপ্ত বিবরণ
এটি ওয়েব ডেভেলপমেন্টের মৌলিক বিষয় শেখানোর জন্য একটি শিক্ষামূলক কারিকুলাম রিপোজিটরি। কারিকুলামটি মাইক্রোসফট ক্লাউড অ্যাডভোকেটদের দ্বারা তৈরি একটি ১২-সপ্তাহের কোর্স, যেখানে জাভাস্ক্রিপ্ট, CSS এবং HTML নিয়ে ২৪টি হাতে-কলমে শেখার পাঠ অন্তর্ভুক্ত রয়েছে।
### প্রধান উপাদানসমূহ
- **শিক্ষামূলক বিষয়বস্তু**: প্রকল্পভিত্তিক মডিউলে সংগঠিত ২৪টি কাঠামোগত পাঠ
- **প্রায়োগিক প্রকল্পসমূহ**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor, এবং AI Chat Assistant
- **ইন্টারঅ্যাকটিভ কুইজ**: ৪৮টি কুইজ, প্রতিটিতে ৩টি প্রশ্ন (পাঠের আগে/পরে মূল্যায়ন)
- **বহুভাষা সমর্থন**: GitHub Actions এর মাধ্যমে ৫০+ ভাষায় স্বয়ংক্রিয় অনুবাদ
- **প্রযুক্তি**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (AI প্রকল্পের জন্য)
### স্থাপত্য
- পাঠভিত্তিক কাঠামো সহ শিক্ষামূলক রিপোজিটরি
- প্রতিটি পাঠের ফোল্ডারে README, কোড উদাহরণ এবং সমাধান অন্তর্ভুক্ত
- পৃথক ডিরেক্টরিতে স্বতন্ত্র প্রকল্প (quiz-app, বিভিন্ন পাঠ প্রকল্প)
- GitHub Actions ব্যবহার করে অনুবাদ ব্যবস্থা (co-op-translator)
- Docsify এর মাধ্যমে ডকুমেন্টেশন পরিবেশন এবং PDF আকারে উপলব্ধ
## সেটআপ কমান্ডসমূহ
এই রিপোজিটরি মূলত শিক্ষামূলক বিষয়বস্তু ব্যবহারের জন্য। নির্দিষ্ট প্রকল্প নিয়ে কাজ করার জন্য:
### প্রধান রিপোজিটরি সেটআপ
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### কুইজ অ্যাপ সেটআপ (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### ব্যাংক প্রকল্প API (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### ব্রাউজার এক্সটেনশন প্রকল্পসমূহ
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### স্পেস গেম প্রকল্পসমূহ
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### চ্যাট প্রকল্প (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## ডেভেলপমেন্ট ওয়ার্কফ্লো
### বিষয়বস্তু অবদানকারীদের জন্য
1. **রিপোজিটরি ফর্ক করুন** আপনার GitHub অ্যাকাউন্টে
2. **আপনার ফর্ক লোকালি ক্লোন করুন**
3. **আপনার পরিবর্তনের জন্য একটি নতুন ব্রাঞ্চ তৈরি করুন**
4. পাঠের বিষয়বস্তু বা কোড উদাহরণে পরিবর্তন করুন
5. সংশ্লিষ্ট প্রকল্প ডিরেক্টরিতে কোড পরিবর্তন পরীক্ষা করুন
6. অবদান নির্দেশিকা অনুসরণ করে পুল রিকোয়েস্ট জমা দিন
### শিক্ষার্থীদের জন্য
1. রিপোজিটরি ফর্ক বা ক্লোন করুন
2. ক্রমানুসারে পাঠের ডিরেক্টরিতে যান
3. প্রতিটি পাঠের README ফাইল পড়ুন
4. https://ff-quizzes.netlify.app/web/ এ প্রি-লেসন কুইজ সম্পন্ন করুন
5. পাঠের ফোল্ডারে কোড উদাহরণ নিয়ে কাজ করুন
6. অ্যাসাইনমেন্ট এবং চ্যালেঞ্জ সম্পন্ন করুন
7. পোস্ট-লেসন কুইজ নিন
### লাইভ ডেভেলপমেন্ট
- **ডকুমেন্টেশন**: রুটে `docsify serve` চালান (পোর্ট ৩০০০)
- **কুইজ অ্যাপ**: quiz-app ডিরেক্টরিতে `npm run dev` চালান
- **প্রকল্পসমূহ**: HTML প্রকল্পের জন্য VS Code Live Server এক্সটেনশন ব্যবহার করুন
- **API প্রকল্পসমূহ**: সংশ্লিষ্ট API ডিরেক্টরিতে `npm start` চালান
## পরীক্ষার নির্দেশনা
### কুইজ অ্যাপ পরীক্ষা
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### ব্যাংক API পরীক্ষা
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### সাধারণ পরীক্ষার পদ্ধতি
- এটি একটি শিক্ষামূলক রিপোজিটরি, যেখানে ব্যাপক স্বয়ংক্রিয় পরীক্ষা নেই
- ম্যানুয়াল পরীক্ষার লক্ষ্য:
- কোড উদাহরণগুলো ত্রুটি ছাড়াই চলা
- ডকুমেন্টেশনের লিঙ্কগুলো সঠিকভাবে কাজ করা
- প্রকল্প বিল্ড সফলভাবে সম্পন্ন হওয়া
- উদাহরণগুলো সেরা অনুশীলন অনুসরণ করা
### প্রি-সাবমিশন চেক
- `npm run lint` চালান প্যাকেজ.json থাকা ডিরেক্টরিতে
- নিশ্চিত করুন যে মার্কডাউন লিঙ্কগুলো বৈধ
- ব্রাউজার বা Node.js এ কোড উদাহরণ পরীক্ষা করুন
- নিশ্চিত করুন যে অনুবাদ সঠিক কাঠামো বজায় রেখেছে
## কোড স্টাইল নির্দেশিকা
### জাভাস্ক্রিপ্ট
- আধুনিক ES6+ সিনট্যাক্স ব্যবহার করুন
- প্রকল্পে প্রদত্ত স্ট্যান্ডার্ড ESLint কনফিগারেশন অনুসরণ করুন
- শিক্ষামূলক স্পষ্টতার জন্য অর্থবহ ভেরিয়েবল এবং ফাংশন নাম ব্যবহার করুন
- শিক্ষার্থীদের জন্য ধারণা ব্যাখ্যা করতে মন্তব্য যোগ করুন
- যেখানে কনফিগার করা আছে, Prettier ব্যবহার করে ফরম্যাট করুন
### HTML/CSS
- সেমান্টিক HTML5 এলিমেন্ট
- রেসপন্সিভ ডিজাইন নীতিমালা
- স্পষ্ট ক্লাস নামকরণ কনভেনশন
- শিক্ষার্থীদের জন্য CSS কৌশল ব্যাখ্যা করতে মন্তব্য যোগ করুন
### পাইথন
- PEP 8 স্টাইল নির্দেশিকা
- স্পষ্ট, শিক্ষামূলক কোড উদাহরণ
- শিক্ষার জন্য সহায়ক টাইপ হিন্ট যোগ করুন
### মার্কডাউন ডকুমেন্টেশন
- স্পষ্ট শিরোনাম শ্রেণিবিন্যাস
- ভাষা নির্দিষ্টকরণ সহ কোড ব্লক
- অতিরিক্ত সম্পদের লিঙ্ক
- `images/` ডিরেক্টরিতে স্ক্রিনশট এবং ছবি
- অ্যাক্সেসিবিলিটির জন্য ছবির জন্য Alt টেক্সট
### ফাইল সংগঠন
- পাঠগুলো ক্রমানুসারে নম্বরযুক্ত (1-getting-started-lessons, 2-js-basics, ইত্যাদি)
- প্রতিটি প্রকল্পে `solution/` এবং প্রায়ই `start/` বা `your-work/` ডিরেক্টরি থাকে
- পাঠ-নির্দিষ্ট `images/` ফোল্ডারে ছবি সংরক্ষণ
- `translations/{language-code}/` কাঠামোতে অনুবাদ
## বিল্ড এবং ডিপ্লয়মেন্ট
### কুইজ অ্যাপ ডিপ্লয়মেন্ট (Azure Static Web Apps)
কুইজ-অ্যাপ Azure Static Web Apps ডিপ্লয়মেন্টের জন্য কনফিগার করা হয়েছে:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Azure Static Web Apps কনফিগারেশন:
- **অ্যাপ লোকেশন**: `/quiz-app`
- **আউটপুট লোকেশন**: `dist`
- **ওয়ার্কফ্লো**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### ডকুমেন্টেশন PDF তৈরি
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Docsify ডকুমেন্টেশন
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### প্রকল্প-নির্দিষ্ট বিল্ড
প্রতিটি প্রকল্প ডিরেক্টরির নিজস্ব বিল্ড প্রক্রিয়া থাকতে পারে:
- Vue প্রকল্প: `npm run build` প্রোডাকশন বান্ডেল তৈরি করে
- স্ট্যাটিক প্রকল্প: কোনো বিল্ড ধাপ নেই, সরাসরি ফাইল পরিবেশন করুন
## পুল রিকোয়েস্ট নির্দেশিকা
### শিরোনাম ফরম্যাট
পরিবর্তনের ক্ষেত্র নির্দেশ করে স্পষ্ট, বর্ণনামূলক শিরোনাম ব্যবহার করুন:
- `[Quiz-app] Add new quiz for lesson X`
- `[Lesson-3] Fix typo in terrarium project`
- `[Translation] Add Spanish translation for lesson 5`
- `[Docs] Update setup instructions`
### প্রয়োজনীয় চেক
PR জমা দেওয়ার আগে:
1. **কোডের গুণমান**:
- প্রভাবিত প্রকল্প ডিরেক্টরিতে `npm run lint` চালান
- সমস্ত লিন্টিং ত্রুটি এবং সতর্কতা ঠিক করুন
2. **বিল্ড যাচাইকরণ**:
- প্রযোজ্য হলে `npm run build` চালান
- নিশ্চিত করুন যে কোনো বিল্ড ত্রুটি নেই
3. **লিঙ্ক যাচাইকরণ**:
- সমস্ত মার্কডাউন লিঙ্ক পরীক্ষা করুন
- নিশ্চিত করুন যে ছবির রেফারেন্স কাজ করছে
4. **বিষয়বস্তু পর্যালোচনা**:
- বানান এবং ব্যাকরণ যাচাই করুন
- নিশ্চিত করুন যে কোড উদাহরণ সঠিক এবং শিক্ষামূলক
- নিশ্চিত করুন যে অনুবাদ মূল অর্থ বজায় রেখেছে
### অবদান প্রয়োজনীয়তা
- Microsoft CLA-তে সম্মতি দিন (প্রথম PR-এ স্বয়ংক্রিয় চেক)
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) অনুসরণ করুন
- বিস্তারিত নির্দেশিকার জন্য [CONTRIBUTING.md](./CONTRIBUTING.md) দেখুন
- প্রযোজ্য হলে PR বিবরণে ইস্যু নম্বর উল্লেখ করুন
### পর্যালোচনা প্রক্রিয়া
- PR গুলো রক্ষণাবেক্ষণকারী এবং সম্প্রদায় দ্বারা পর্যালোচনা করা হয়
- শিক্ষামূলক স্পষ্টতাকে অগ্রাধিকার দেওয়া হয়
- কোড উদাহরণগুলো বর্তমান সেরা অনুশীলন অনুসরণ করা উচিত
- অনুবাদগুলো সঠিকতা এবং সাংস্কৃতিক উপযুক্ততার জন্য পর্যালোচনা করা হয়
## অনুবাদ ব্যবস্থা
### স্বয়ংক্রিয় অনুবাদ
- co-op-translator ওয়ার্কফ্লো সহ GitHub Actions ব্যবহার করে
- স্বয়ংক্রিয়ভাবে ৫০+ ভাষায় অনুবাদ করে
- মূল ফাইলগুলো প্রধান ডিরেক্টরিতে
- অনুবাদকৃত ফাইলগুলো `translations/{language-code}/` ডিরেক্টরিতে
### ম্যানুয়াল অনুবাদ উন্নতি যোগ করা
1. `translations/{language-code}/` এ ফাইলটি খুঁজুন
2. কাঠামো বজায় রেখে উন্নতি করুন
3. নিশ্চিত করুন যে কোড উদাহরণ কার্যকর থাকে
4. স্থানীয় কুইজ বিষয়বস্তু পরীক্ষা করুন
### অনুবাদ মেটাডেটা
অনুবাদকৃত ফাইলগুলোতে মেটাডেটা হেডার অন্তর্ভুক্ত থাকে:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## ডিবাগিং এবং সমস্যা সমাধান
### সাধারণ সমস্যা
**কুইজ অ্যাপ চালু হচ্ছে না**:
- Node.js সংস্করণ পরীক্ষা করুন (v14+ সুপারিশকৃত)
- `node_modules` এবং `package-lock.json` মুছে ফেলুন, পুনরায় `npm install` চালান
- পোর্ট কনফ্লিক্ট পরীক্ষা করুন (ডিফল্ট: Vite পোর্ট 5173 ব্যবহার করে)
**API সার্ভার চালু হচ্ছে না**:
- নিশ্চিত করুন যে Node.js সংস্করণ ন্যূনতম প্রয়োজনীয়তা পূরণ করছে (node >=10)
- পরীক্ষা করুন পোর্ট ইতিমধ্যে ব্যবহৃত হচ্ছে কিনা
- `npm install` দিয়ে সমস্ত ডিপেনডেন্সি ইনস্টল নিশ্চিত করুন
**ব্রাউজার এক্সটেনশন লোড হচ্ছে না**:
- নিশ্চিত করুন manifest.json সঠিকভাবে ফরম্যাট করা আছে
- ব্রাউজার কনসোলে ত্রুটি পরীক্ষা করুন
- ব্রাউজার-নির্দিষ্ট এক্সটেনশন ইনস্টল নির্দেশিকা অনুসরণ করুন
**পাইথন চ্যাট প্রকল্প সমস্যা**:
- নিশ্চিত করুন OpenAI প্যাকেজ ইনস্টল করা আছে: `pip install openai`
- নিশ্চিত করুন GITHUB_TOKEN পরিবেশ ভেরিয়েবল সেট করা আছে
- GitHub Models অ্যাক্সেস অনুমতি পরীক্ষা করুন
**Docsify ডকস পরিবেশন করছে না**:
- Docsify-cli গ্লোবালি ইনস্টল করুন: `npm install -g docsify-cli`
- রিপোজিটরি রুট ডিরেক্টরি থেকে চালান
- নিশ্চিত করুন যে `docs/_sidebar.md` বিদ্যমান
### ডেভেলপমেন্ট পরিবেশ টিপস
- HTML প্রকল্পের জন্য VS Code এর Live Server এক্সটেনশন ব্যবহার করুন
- ধারাবাহিক ফরম্যাটিংয়ের জন্য ESLint এবং Prettier এক্সটেনশন ইনস্টল করুন
- জাভাস্ক্রিপ্ট ডিবাগিংয়ের জন্য ব্রাউজার DevTools ব্যবহার করুন
- Vue প্রকল্পের জন্য Vue DevTools ব্রাউজার এক্সটেনশন ইনস্টল করুন
### কর্মক্ষমতা বিবেচনা
- অনুবাদকৃত ফাইলের বড় সংখ্যা (৫০+ ভাষা) মানে সম্পূর্ণ ক্লোন বড় হয়
- শুধুমাত্র বিষয়বস্তু নিয়ে কাজ করলে শ্যালো ক্লোন ব্যবহার করুন: `git clone --depth 1`
- ইংরেজি বিষয়বস্তু নিয়ে কাজ করার সময় অনুবাদগুলো অনুসন্ধান থেকে বাদ দিন
- প্রথম রান (npm install, Vite build) এ বিল্ড প্রক্রিয়া ধীর হতে পারে
## নিরাপত্তা বিবেচনা
### পরিবেশ ভেরিয়েবল
- API কী কখনোই রিপোজিটরিতে কমিট করা উচিত নয়
- `.env` ফাইল ব্যবহার করুন (ইতিমধ্যে `.gitignore` এ অন্তর্ভুক্ত)
- প্রকল্প README-তে প্রয়োজনীয় পরিবেশ ভেরিয়েবল ডকুমেন্ট করুন
### পাইথন প্রকল্প
- ভার্চুয়াল পরিবেশ ব্যবহার করুন: `python -m venv venv`
- ডিপেনডেন্সি আপডেট রাখুন
- GitHub টোকেনের ন্যূনতম প্রয়োজনীয় অনুমতি থাকা উচিত
### GitHub Models অ্যাক্সেস
- GitHub Models এর জন্য Personal Access Tokens (PAT) প্রয়োজন
- টোকেনগুলো পরিবেশ ভেরিয়েবল হিসেবে সংরক্ষণ করা উচিত
- কখনোই টোকেন বা ক্রেডেনশিয়াল কমিট করবেন না
## অতিরিক্ত নোট
### লক্ষ্য শ্রোতা
- ওয়েব ডেভেলপমেন্টে সম্পূর্ণ নতুন
- শিক্ষার্থী এবং স্ব-শিক্ষার্থী
- শিক্ষক যারা শ্রেণীকক্ষে কারিকুলাম ব্যবহার করছেন
- বিষয়বস্তু অ্যাক্সেসিবিলিটি এবং ধাপে ধাপে দক্ষতা বৃদ্ধির জন্য ডিজাইন করা হয়েছে
### শিক্ষামূলক দর্শন
- প্রকল্পভিত্তিক শেখার পদ্ধতি
- ঘন ঘন জ্ঞান যাচাই (কুইজ)
- হাতে-কলমে কোডিং অনুশীলন
- বাস্তব জীবনের প্রয়োগ উদাহরণ
- ফ্রেমওয়ার্কের আগে মৌলিক বিষয়গুলোর উপর জোর
### রিপোজিটরি রক্ষণাবেক্ষণ
- শিক্ষার্থী এবং অবদানকারীদের সক্রিয় সম্প্রদায়
- ডিপেনডেন্সি এবং বিষয়বস্তুতে নিয়মিত আপডেট
- রক্ষণাবেক্ষণকারী দ্বারা ইস্যু এবং আলোচনা পর্যবেক্ষণ
- GitHub Actions এর মাধ্যমে অনুবাদ আপডেট স্বয়ংক্রিয়
### সম্পর্কিত সম্পদ
- [Microsoft Learn মডিউল](https://docs.microsoft.com/learn/)
- [Student Hub সম্পদ](https://docs.microsoft.com/learn/student-hub/)
- শিক্ষার্থীদের জন্য [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) সুপারিশকৃত
- অতিরিক্ত কোর্স: Generative AI, Data Science, ML, IoT কারিকুলাম উপলব্ধ
### নির্দিষ্ট প্রকল্প নিয়ে কাজ করা
স্বতন্ত্র প্রকল্পের বিস্তারিত নির্দেশনার জন্য, README ফাইলগুলো দেখুন:
- `quiz-app/README.md` - Vue 3 কুইজ অ্যাপ্লিকেশন
- `7-bank-project/README.md` - প্রমাণীকরণ সহ ব্যাংকিং অ্যাপ্লিকেশন
- `5-browser-extension/README.md` - ব্রাউজার এক্সটেনশন ডেভেলপমেন্ট
- `6-space-game/README.md` - ক্যানভাস-ভিত্তিক গেম ডেভেলপমেন্ট
- `9-chat-project/README.md` - AI চ্যাট অ্যাসিস্ট্যান্ট প্রকল্প
### Monorepo কাঠামো
যদিও এটি একটি ঐতিহ্যবাহী Monorepo নয়, এই রিপোজিটরিতে একাধিক স্বতন্ত্র প্রকল্প রয়েছে:
- প্রতিটি পাঠ স্বতন্ত্র
- প্রকল্পগুলো ডিপেনডেন্সি শেয়ার করে না
- স্বতন্ত্র প্রকল্পে কাজ করুন অন্যগুলো প্রভাবিত না করে
- সম্পূর্ণ কারিকুলাম অভিজ্ঞতার জন্য পুরো রিপোজিটরি ক্লোন করুন
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-28T22:50:11+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T09:11:34+00:00",
"source_file": "README.md",
"language_code": "bn"
}
@ -28,13 +28,13 @@ CO_OP_TRANSLATOR_METADATA:
2. **রিপোজিটরি ক্লোন করুন**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Azure AI Foundry Discord-এ যোগ দিন এবং বিশেষজ্ঞ ও অন্যান্য ডেভেলপারদের সাথে পরিচিত হন**](https://discord.com/invite/ByRwuEEgH4)
# ওয়েব ডেভেলপমেন্টের জন্য শিক্ষার্থীদের - একটি কারিকুলাম
# ওয়েব ডেভেলপমেন্ট ফর বিগিনারস - একটি কারিকুলাম
মাইক্রোসফট ক্লাউড অ্যাডভোকেটদের ১২-সপ্তাহের বিস্তৃত কোর্সের মাধ্যমে ওয়েব ডেভেলপমেন্টের মৌলিক বিষয়গুলো শিখুন। ২৪টি পাঠে জাভাস্ক্রিপ্ট, CSS এবং HTML নিয়ে কাজ করা প্রকল্পের মাধ্যমে শেখানো হয়, যেমন টেরারিয়াম, ব্রাউজার এক্সটেনশন এবং স্পেস গেম। কুইজ, আলোচনা এবং ব্যবহারিক অ্যাসাইনমেন্টের মাধ্যমে অংশগ্রহণ করুন। আমাদের কার্যকর প্রকল্প-ভিত্তিক শিক্ষাদান পদ্ধতির মাধ্যমে আপনার দক্ষতা বৃদ্ধি করুন এবং জ্ঞান ধরে রাখার ক্ষমতা উন্নত করুন। আজই আপনার কোডিং যাত্রা শুরু করুন!
মাইক্রোসফট ক্লাউড অ্যাডভোকেটদের ১২-সপ্তাহের বিস্তৃত কোর্সের মাধ্যমে ওয়েব ডেভেলপমেন্টের মৌলিক বিষয়গুলো শিখুন। প্রতিটি ২৪টি লেসনে জাভাস্ক্রিপ্ট, CSS এবং HTML নিয়ে কাজ করা হয় হাতে-কলমে প্রকল্পের মাধ্যমে, যেমন টেরারিয়াম, ব্রাউজার এক্সটেনশন এবং স্পেস গেম। কুইজ, আলোচনা এবং ব্যবহারিক অ্যাসাইনমেন্টের মাধ্যমে অংশগ্রহণ করুন। প্রকল্প-ভিত্তিক শিক্ষার মাধ্যমে দক্ষতা বৃদ্ধি করুন এবং জ্ঞান ধরে রাখার ক্ষমতা উন্নত করুন। আজই আপনার কোডিং যাত্রা শুরু করুন!
### 🌐 বহু-ভাষার সমর্থন
#### GitHub Action এর মাধ্যমে সমর্থিত (স্বয়ংক্রিয় এবং সর্বদা আপডেটেড)
#### GitHub Action-এর মাধ্যমে সমর্থিত (স্বয়ংক্রিয় এবং সর্বদা আপডেটেড)
[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](./README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
@ -42,13 +42,13 @@ CO_OP_TRANSLATOR_METADATA:
#### 🧑‍🎓 _আপনি কি একজন শিক্ষার্থী?_
[**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) দেখুন যেখানে আপনি শিক্ষার্থীদের জন্য রিসোর্স, স্টুডেন্ট প্যাক এবং এমনকি বিনামূল্যে সার্টিফিকেট ভাউচার পাওয়ার উপায় খুঁজে পাবেন। এই পেজটি বুকমার্ক করুন এবং মাঝে মাঝে চেক করুন কারণ আমরা প্রতি মাসে কন্টেন্ট পরিবর্তন করি।
### 📣 ঘোষণা - _জেনারেটিভ AI ব্যবহার করে নতুন প্রকল্প তৈরি করুন_
নতুন AI অ্যাসিস্ট্যান্ট প্রকল্প যোগ করা হয়েছে, এটি দেখুন [প্রকল্প](./09-chat-project/README.md)
নতুন AI অ্যাসিস্ট্যান্ট প্রকল্প যোগ করা হয়েছে, দেখুন [প্রকল্প](./09-chat-project/README.md)
### 📣 ঘোষণা - _জেনারেটিভ AI এর নতুন কারিকুলাম_ জাভাস্ক্রিপ্টের জন্য প্রকাশিত হয়েছে
### 📣 ঘোষণা - _জেনারেটিভ AI-এর নতুন কারিকুলাম_ জাভাস্ক্রিপ্টের জন্য প্রকাশিত হয়েছে
আমাদের নতুন জেনারেটিভ AI কারিকুলাম মিস করবেন না!
@ -56,162 +56,169 @@ CO_OP_TRANSLATOR_METADATA:
![Background](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.bn.png)
- বেসিক থেকে RAG পর্যন্ত সবকিছু নিয়ে পাঠ
- বেসিক থেকে RAG পর্যন্ত সবকিছু নিয়ে লেসন
- GenAI এবং আমাদের সঙ্গী অ্যাপ ব্যবহার করে ঐতিহাসিক চরিত্রের সাথে ইন্টারঅ্যাক্ট করুন।
- মজাদার এবং আকর্ষণীয় গল্প, আপনি সময় ভ্রমণ করবেন!
![character](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.bn.png)
প্রতিটি পাঠে একটি অ্যাসাইনমেন্ট, একটি জ্ঞান যাচাই এবং একটি চ্যালেঞ্জ অন্তর্ভুক্ত থাকে যা আপনাকে শেখার বিষয়গুলোতে গাইড করবে:
প্রতিটি লেসনে অন্তর্ভুক্ত রয়েছে:
- প্রম্পটিং এবং প্রম্পট ইঞ্জিনিয়ারিং
- টেক্সট এবং ইমেজ অ্যাপ জেনারেশন
- সার্চ অ্যাপস
শুরু করতে ভিজিট করুন [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) ব্যবহার করতে পারেন
#### আপনার রিপোজিটরি তৈরি করুন
আপনার কাজ সহজে সংরক্ষণ করার জন্য, আপনার নিজস্ব কপি তৈরি করার সুপারিশ করা হয়। আপনি পেজের উপরে **Use this template** বাটনে ক্লিক করে এটি করতে পারেন। এটি আপনার GitHub অ্যাকাউন্টে কারিকুলামের একটি কপি সহ একটি নতুন রিপোজিটরি তৈরি করবে।
আপনার কাজ সহজে সংরক্ষণ করতে, আপনার নিজস্ব এই রিপোজিটরির একটি কপি তৈরি করার সুপারিশ করা হয়। আপনি পেজের উপরে **Use this template** বাটনে ক্লিক করে এটি করতে পারেন। এটি আপনার GitHub অ্যাকাউন্টে কারিকুলামের একটি কপি সহ একটি নতুন রিপোজিটরি তৈরি করবে।
নিচের ধাপগুলো অনুসরণ করুন:
1. **রিপোজিটরি ফর্ক করুন**: এই পেজের উপরে ডানদিকে থাকা "Fork" বাটনে ক্লিক করুন।
1. **রিপোজিটরি ফর্ক করুন**: এই পেজের উপরে ডানদিকে থাকা "Fork" বাটনে ক্লিক করুন।
2. **রিপোজিটরি ক্লোন করুন**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Codespace-এ কারিকুলাম চালানো
আপনার তৈরি করা এই রিপোজিটরির কপিতে, **Code** বাটনে ক্লিক করুন এবং **Open with Codespaces** নির্বাচন করুন। এটি আপনার কাজ করার জন্য একটি নতুন Codespace তৈরি করবে।
[!Codespace](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.bn.png)
#### আপনার কম্পিউটারে লোকালি কারিকুলাম চালানো
আপনার কম্পিউটারে লোকালি কারিকুলাম চালানোর জন্য, একটি টেক্সট এডিটর, একটি ব্রাউজার এবং একটি কমান্ড লাইন টুল প্রয়োজন। আমাদের প্রথম পাঠ, [প্রোগ্রামিং ভাষা এবং টুলস অফ দ্য ট্রেডের পরিচিতি](../../1-getting-started-lessons/1-intro-to-programming-languages), আপনাকে এই টুলগুলোর বিভিন্ন অপশন দেখাবে যাতে আপনি আপনার জন্য সেরা অপশনটি বেছে নিতে পারেন।
আপনার কম্পিউটারে লোকালি কারিকুলাম চালানোর জন্য, একটি টেক্সট এডিটর, একটি ব্রাউজার এবং একটি কমান্ড লাইন টুল প্রয়োজন। আমাদের প্রথম লেসন, [প্রোগ্রামিং ভাষা এবং টুলস অফ দ্য ট্রেডের পরিচিতি](../../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) এখান থেকে ডাউনলোড করতে পারেন।
আমাদের সুপারিশ হলো [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) সহ আসে। আপনি [এখানে](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) Visual Studio Code ডাউনলোড করতে পারেন।
1. আপনার রিপোজিটরি কম্পিউটারে ক্লোন করুন। এটি করতে, **Code** বাটনে ক্লিক করুন এবং URL কপি করুন:
1. আপনার রিপোজিটরি আপনার কম্পিউটারে ক্লোন করুন। আপনি **Code** বাটনে ক্লিক করে URL কপি করে এটি করতে পারেন:
[!CodeSpace](./images/createcodespace.png)
[CodeSpace](./images/createcodespace.png)
তারপর, [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) খুলুন এবং নিচের কমান্ডটি চালান, যেখানে `<your-repository-url>` আপনার কপি করা 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) খুলুন এবং নিচের কমান্ডটি চালান, `<your-repository-url>` এর জায়গায় আপনার কপি করা URL বসান:
```bash
git clone <your-repository-url>
```
2. Visual Studio Code-এ ফোল্ডারটি খুলুন। এটি করতে **File** বাটনে ক্লিক করুন।
> **ফোল্ডার খুলুন** এবং আপনি যে ফোল্ডারটি ক্লোন করেছেন সেটি নির্বাচন করুন।
> ভিজ্যুয়াল স্টুডিও কোডের জন্য প্রস্তাবিত এক্সটেনশনসমূহ:
2. Visual Studio Code-এ ফোল্ডারটি খুলুন। আপনি **File** > **Open Folder**-এ ক্লিক করে এবং আপনার ক্লোন করা ফোল্ডারটি নির্বাচন করে এটি করতে পারেন।
> সুপারিশকৃত Visual Studio Code এক্সটেনশন:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - ভিজ্যুয়াল স্টুডিও কোডে HTML পেজ প্রিভিউ করার জন্য
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - কোড দ্রুত লেখার জন্য সহায়ক
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - Visual Studio Code-এর মধ্যে HTML পেজ প্রিভিউ করার জন্য
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - দ্রুত কোড লেখার জন্য সাহায্যকারী
## 📂 প্রতিটি পাঠে অন্তর্ভুক্ত:
## 📂 প্রতিটি লেসনে অন্তর্ভুক্ত রয়েছে:
- ঐচ্ছিক স্কেচনোট
- ঐচ্ছিক সম্পূরক ভিডিও
- পাঠের পূর্বে ওয়ার্মআপ কুইজ
- লিখিত পাঠ
- প্রকল্পভিত্তিক পাঠের জন্য, ধাপে ধাপে প্রকল্প তৈরির গাইড
- প্রি-লেসন ওয়ার্মআপ কুইজ
- লিখিত লেসন
- প্রকল্প-ভিত্তিক লেসনের জন্য, প্রকল্প তৈরি করার ধাপে ধাপে গাইড
- জ্ঞান যাচাই
- একটি চ্যালেঞ্জ
- সম্পূরক পড়াশোনা
- সম্পূরক পাশোনা
- অ্যাসাইনমেন্ট
- [পাঠ-পরবর্তী কুইজ](https://ff-quizzes.netlify.app/web/)
> **কুইজ সম্পর্কে একটি নোট**: সব কুইজ `Quiz-app` ফোল্ডারে অন্তর্ভুক্ত, মোট ৪৮টি কুইজ, প্রতিটিতে তিনটি প্রশ্ন। এগুলো [এখানে](https://ff-quizzes.netlify.app/web/) পাওয়া যাবে। কুইজ অ্যাপটি লোকাল মেশিনে চালানো বা Azure-এ ডিপ্লয় করা যেতে পারে; `quiz-app` ফোল্ডারের নির্দেশনা অনুসরণ করুন।
- [পোস্ট-লেসন কুইজ](https://ff-quizzes.netlify.app/web/)
> **কুইজ সম্পর্কে একটি নোট**: সব কুইজ `Quiz-app` ফোল্ডারে সংরক্ষিত আছে, মোট ৪৮টি কুইজ, প্রতিটিতে তিনটি প্রশ্ন। এগুলো [এখানে](https://ff-quizzes.netlify.app/web/) পাওয়া যাবে। কুইজ অ্যাপটি লোকালভাবে চালানো বা Azure-এ ডিপ্লয় করা যেতে পারে; `quiz-app` ফোল্ডারের নির্দেশনা অনুসরণ করুন।
## 🗃️ পাঠসমূহ
| | প্রকল্পের নাম | শেখানো ধারণাসমূহ | শেখার লক্ষ্য | লিঙ্ককৃত পাঠ | লেখক |
| | প্রকল্পের নাম | শেখানো ধারণা | শেখার লক্ষ্য | সংযুক্ত পাঠ | লেখক |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 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 |
| 03 | শুরু করা | অ্যাক্সেসিবিলিটি | ওয়েব অ্যাক্সেসিবিলিটির মৌলিক বিষয় শিখুন | [অ্যাক্সেসিবিলিটির মৌলিক বিষয়](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | জাভাস্ক্রিপ্ট বেসিক | জাভাস্ক্রিপ্ট ডেটা টাইপ | জাভাস্ক্রিপ্ট ডেটা টাইপের মৌলিক বিষয় শিখুন | [ডেটা টাইপ](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | জাভাস্ক্রিপ্ট বেসিক | ফাংশন এবং মেথড | অ্যাপ্লিকেশনের লজিক প্রবাহ পরিচালনার জন্য ফাংশন এবং মেথড সম্পর্কে জানুন | [ফাংশন এবং মেথড](./2-js-basics/2-functions-methods/README.md) | Jasmine এবং Christopher |
| 06 | জাভাস্ক্রিপ্ট বেসিক | জাভাস্ক্রিপ্ট দিয়ে সিদ্ধান্ত নেওয়া | সিদ্ধান্ত গ্রহণের পদ্ধতি ব্যবহার করে কোডে শর্ত তৈরি করা শিখুন | [সিদ্ধান্ত গ্রহণ](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | জাভাস্ক্রিপ্ট বেসিক | অ্যারে এবং লুপ | জাভাস্ক্রিপ্টে অ্যারে এবং লুপ ব্যবহার করে ডেটা নিয়ে কাজ করুন | [অ্যারে এবং লুপ](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [টেরারিয়াম](./3-terrarium/solution/README.md) | HTML অনুশীলন | একটি অনলাইন টেরারিয়াম তৈরি করতে HTML ব্যবহার করুন, লেআউট তৈরির উপর ফোকাস করুন | [HTML-এর পরিচিতি](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [টেরারিয়াম](./3-terrarium/solution/README.md) | CSS অনুশীলন | অনলাইন টেরারিয়াম স্টাইল করার জন্য CSS ব্যবহার করুন, CSS-এর বেসিক এবং পেজ রেসপন্সিভ করার উপর ফোকাস করুন | [CSS-এর পরিচিতি](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [টেরারিয়াম](./3-terrarium/solution/README.md) | জাভাস্ক্রিপ্ট ক্লোজার, DOM ম্যানিপুলেশন | টেরারিয়ামকে ড্র্যাগ/ড্রপ ইন্টারফেস হিসেবে কাজ করানোর জন্য জাভাস্ক্রিপ্ট তৈরি করুন, ক্লোজার এবং DOM ম্যানিপুলেশনের উপর ফোকাস করুন | [জাভাস্ক্রিপ্ট ক্লোজার, DOM ম্যানিপুলেশন](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 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 |
| 03 | শুরু করা | অ্যাক্সেসিবিলিটি | ওয়েব অ্যাক্সেসিবিলিটির বেসিক শিখুন | [অ্যাক্সেসিবিলিটির মৌলিক বিষ](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS বেসিক | জাভাস্ক্রিপ্ট ডেটা টাইপ | জাভাস্ক্রিপ্ট ডেটা টাইপের বেসিক শিখুন | [ডেটা টাইপ](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS বেসিক | ফাংশন এবং মেথড | অ্যাপ্লিকেশনের লজিক প্রবাহ পরিচালনা করতে ফাংশন এবং মেথড সম্পর্কে জানুন | [ফাংশন এবং মেথড](./2-js-basics/2-functions-methods/README.md) | Jasmine এবং Christopher |
| 06 | JS বেসিক | জাভাস্ক্রিপ্ট দিয়ে সিদ্ধান্ত নেওয়া | সিদ্ধান্ত গ্রহণের পদ্ধতি ব্যবহার করে কোডে শর্ত তৈরি করা শিখুন | [সিদ্ধান্ত নেওয়া](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS বেসিক | অ্যারে এবং লুপ | জাভাস্ক্রিপ্টে অ্যারে এবং লুপ ব্যবহার করে ডেটা নিে কাজ করুন | [অ্যারে এবং লুপ](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [টেরারিাম](./3-terrarium/solution/README.md) | HTML অনুশীলন | একটি অনলাইন টেরারিাম তৈরি করতে HTML ব্যবহার করুন, লেআউট তৈরি করার উপর ফোকাস | [HTML-এর পরিচিতি](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [টেরারিাম](./3-terrarium/solution/README.md) | CSS অনুশীলন | অনলাইন টেরারিয়াম স্টাইল করতে CSS ব্যবহার করুন, CSS-এর বেসিক এবং পেজকে রেসপন্সিভ করার উপর ফোকাস | [CSS-এর পরিচিতি](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [টেরারিাম](./3-terrarium/solution/README.md) | জাভাস্ক্রিপ্ট ক্লোজার, DOM ম্যানিপুলেশন | টেরারিামকে ড্র্যাগ/ড্রপ ইন্টারফেস হিসেবে কার্যকর করতে জাভাস্ক্রিপ্ট তৈরি করুন, ক্লোজার এবং DOM ম্যানিপুলেশনের উপর ফোকাস | [জাভাস্ক্রিপ্ট ক্লোজার, DOM ম্যানিপুলেশন](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [টাইপিং গেম](./4-typing-game/solution/README.md) | টাইপিং গেম তৈরি করুন | কী-বোর্ড ইভেন্ট ব্যবহার করে আপনার জাভাস্ক্রিপ্ট অ্যাপের লজিক চালানোর পদ্ধতি শিখুন | [ইভেন্ট-চালিত প্রোগ্রামিং](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [সবুজ ব্রাউজার এক্সটেনশন](./5-browser-extension/solution/README.md) | ব্রাউজারের সাথে কাজ করা | ব্রাউজার কীভাবে কাজ করে, তাদের ইতিহাস এবং একটি ব্রাউজার এক্সটেনশনের প্রথম উপাদান তৈরি করার পদ্ধতি শিখুন | [ব্রাউজার সম্পর্কে](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [সবুজ ব্রাউজার এক্সটেনশন](./5-browser-extension/solution/README.md) | একটি ফর্ম তৈরি করা, একটি API কল করা এবং স্থানীয় স্টোরেজে ভেরিয়েবল সংরক্ষণ করা | স্থানীয় স্টোরেজে সংরক্ষিত ভেরিয়েবল ব্যবহার করে একটি API কল করার জন্য আপনার ব্রাউজার এক্সটেনশনের জাভাস্ক্রিপ্ট উপাদান তৈরি করুন | [API, ফর্ম এবং স্থানীয় স্টোরেজ](./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 |
| 15 | [স্পেস গেম](./6-space-game/solution/README.md) | জাভাস্ক্রিপ্ট দিয়ে আরও উন্নত গেম ডেভেলপমেন্ট | ক্লাস এবং কম্পোজিশন ব্যবহার করে ইনহেরিটেন্স এবং পাব/সাব প্যাটার্ন সম্পর্কে জানুন, একটি গেম তৈরির প্রস্তুতি হিসেবে | [উন্নত গেম ডেভেলপমেন্টের পরিচিতি](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [স্পেস গেম](./6-space-game/solution/README.md) | ক্যানভাসে আঁকা | ক্যানভাস API সম্পর্কে জানুন, যা স্ক্রিনে উপাদান আঁকতে ব্যবহৃত হয় | [ক্যানভাসে আঁকা](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [স্পেস গেম](./6-space-game/solution/README.md) | স্ক্রিনে উপাদান সরানো | কার্টেসিয়ান কোঅর্ডিনেট এবং ক্যানভাস 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 |
| 12 | [গ্রিন ব্রাউজার এক্সটেনশন](./5-browser-extension/solution/README.md) | ব্রাউজারের সাথে কাজ | ব্রাউজার কীভাবে কাজ করে, এর ইতিহাস এবং ব্রাউজার এক্সটেনশনের প্রথম উপাদান তৈরি করার পদ্ধতি শিখুন | [ব্রাউজার সম্পর্কে](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [গ্রিন ব্রাউজার এক্সটেনশন](./5-browser-extension/solution/README.md) | ফর্ম তৈরি করা, API কল করা এবং লোকাল স্টোরেজে ভেরিয়েবল সংরক্ষণ করা | লোকাল স্টোরেজে সংরক্ষিত ভেরিয়েবল ব্যবহার করে API কল করার জন্য আপনার ব্রাউজার এক্সটেনশনের জাভাস্ক্রিপ্ট উপাদান তৈরি করুন | [API, ফর্ম এবং লোকাল স্টোরেজ](./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 |
| 15 | [স্পেস গেম](./6-space-game/solution/README.md) | জাভাস্ক্রিপ্ট দিে আরও উন্নত গেম ডেভেলপমেন্ট | ক্লাস এবং কম্পোজিশন ব্যবহার করে ইনহেরিটেন্স এবং পাব/সাব প্যাটার্ন সম্পর্কে জানুন, গেম তৈরি করার প্রস্তুতি হিসেবে | [উন্নত গেম ডেভেলপমেন্টের পরিচিতি](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [স্পেস গেম](./6-space-game/solution/README.md) | ক্যানভাসে আঁকা | ক্যানভাস API সম্পর্কে জানুন, যা স্ক্রিনে উপাদান আঁকার জন্য ব্যবহৃত হয় | [ক্যানভাসে আঁকা](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [স্পেস গেম](./6-space-game/solution/README.md) | স্ক্রিনে উপাদান সরানো | কার্টেসিান কোঅর্ডিনেট এবং ক্যানভাস 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 |
| 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 |
| 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 |
| 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 |
| 25 | [ব্রাউজার/ভিএসকোড কোড](../../8-code-editor) | ভিএসকোডের সাথে কাজ করা | কোড এডিটর ব্যবহার করা শিখুন | [ভিএসকোড কোড এডিটর ব্যবহার](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [এআই অ্যাসিস্ট্যান্ট](./9-chat-project/README.md) | এআই নিয়ে কাজ করা | নিজের এআই অ্যাসিস্ট্যান্ট তৈরি করা শিখুন | [এআই অ্যাসিস্ট্যান্ট প্রকল্প](./9-chat-project/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 টেমপ্লেট এবং ওয়েব অ্যাপে রাউট | রাউটিং এবং 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 |
| 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 |
| 25 | [ব্রাউজার/VScode কোড](../../8-code-editor) | VScode নিয়ে কাজ করা | কোড এডিটর ব্যবহার করা শিখুন | [VScode কোড এডিটর ব্যবহার](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI অ্যাসিস্ট্যান্ট](./9-chat-project/README.md) | AI নিয়ে কাজ করা | নিজের AI অ্যাসিস্ট্যান্ট তৈরি করা শিখুন | [AI অ্যাসিস্ট্যান্ট প্রকল্প](./9-chat-project/README.md) | Chris |
## 🏫 শিক্ষ পদ্ধতি
আমাদের কারিকুলাম দুটি মূল শিক্ষণ পদ্ধতির উপর ভিত্তি করে তৈরি:
* প্রকল্প-ভিত্তিক শিক্ষা
* ঘন ঘন কুইজ
এই প্রোগ্রামটি জাভাস্ক্রিপ্ট, HTML এবং CSS-এর মৌলিক বিষয় শেখায়, পাশাপাশি আজকের ওয়েব ডেভেলপারদের ব্যবহৃত সর্বশেষ টুল এবং কৌশলগুলি শেখায়। শিক্ষার্থীরা টাইপিং গেম, ভার্চুয়াল টেরারিয়াম, পরিবেশবান্ধব ব্রাউজার এক্সটেনশন, স্পেস-ইনভেডার-স্টাইল গেম এবং ব্যবসার জন্য একটি ব্যাংকিং অ্যাপ তৈরি করার মাধ্যমে হাতে-কলমে অভিজ্ঞতা অর্জনের সুযোগ পাবে। সিরিজের শেষে, শিক্ষার্থীরা ওয়েব ডেভেলপমেন্ট সম্পর্কে একটি শক্তিশালী ধারণা অর্জন করবে।
এই প্রোগ্রামটি জাভাস্ক্রিপ্ট, HTML এবং CSS-এর মৌলিক বিষয়গুলো শেখায়, পাশাপাশি আজকের ওয়েব ডেভেলপারদের ব্যবহৃত সর্বশেষ টুলস এবং কৌশলগুলো। শিক্ষার্থীরা টাইপিং গেম, ভার্চুয়াল টেরারিয়াম, পরিবেশবান্ধব ব্রাউজার এক্সটেনশন, স্পেস-ইনভেডার-স্টাইল গেম এবং ব্যবসার জন্য একটি ব্যাংকিং অ্যাপ তৈরি করে হাতে-কলমে অভিজ্ঞতা অর্জনের সুযোগ পাবে। সিরিজের শেষে শিক্ষার্থীরা ওয়েব ডেভেলপমেন্ট সম্পর্কে একটি শক্ত ভিত্তি অর্জন করবে।
> 🎓 এই কারিকুলামের প্রথম কয়েকটি পাঠ [Microsoft Learn](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon)-এ একটি [Learn Path](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)-এ একটি [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) হিসেবে নিতে পারেন!
প্রকল্পের সাথে সামঞ্জস্য রেখে বিষয়বস্তু নিশ্চিত করার মাধ্যমে শিক্ষার্থীদের জন্য প্রক্রিয়াটি আরও আকর্ষণীয় হয়ে ওঠে এবং ধারণাগুলির ধারণক্ষমতা বৃদ্ধি পায়। আমরা জাভাস্ক্রিপ্ট বেসিকসের উপর কয়েকটি স্টার্টার পাঠ লিখেছি, যা "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" ভিডিও টিউটোরিয়াল সংগ্রহের একটি ভিডিওর সাথে যুক্ত, যার কিছু লেখক এই কারিকুলামে অবদান রেখেছেন।
প্রকল্পের সাথে সামঞ্জস্য রেখে কন্টেন্ট নিশ্চিত করার মাধ্যমে শিক্ষার্থীদের জন্য প্রক্রিয়াটি আরও আকর্ষণীয় করা হয়েছে এবং ধারণাগুলোর সংরক্ষণ ক্ষমতা বৃদ্ধি পাবে। আমরা জাভাস্ক্রিপ্ট বেসিকের জন্য কয়েকটি স্টার্টার পাঠ লিখেছি, যা "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" ভিডিও টিউটোরিাল সংগ্রহের একটি ভিডিওর সাথে যুক্ত, যার কিছু লেখক এই কারিকুলামে অবদান রেখেছেন।
এছাড়াও, ক্লাসের আগে একটি লো-স্টেক কুইজ শিক্ষার্থীর মনোযোগ একটি বিষয় শেখার দিকে নিয়ে যায়, যখন ক্লাসের পরে একটি দ্বিতীয় কুইজ আরও ধারণক্ষমতা নিশ্চিত করে। এই কারিকুলামটি নমনীয় এবং মজাদার হতে ডিজাইন করা হয়েছে এবং এটি সম্পূর্ণ বা আংশিকভাবে নেওয়া যেতে পারে। প্রকল্পগুলি ছোট থেকে শুরু হয় এবং ১২-সপ্তাহের চক্রের শেষে ক্রমশ জটিল হয়ে ওঠে।
এছাড়াও, ক্লাসের আগে একটি কম ঝুঁকির কুইজ শিক্ষার্থীর একটি বিষয় শেখার উদ্দেশ্য নির্ধারণ করে, এবং ক্লাসের পরে একটি দ্বিতীয় কুইজ আরও ধারণা সংরক্ষণ নিশ্চিত করে। এই কারিকুলামটি নমনীয় এবং মজাদারভাবে ডিজাইন করা হয়েছে এবং এটি সম্পূর্ণ বা আংশিকভাবে নেওয়া যেতে পারে। প্রকল্পগুলো ছোট থেকে শুরু করে ১২-সপ্তাহের চক্রের শেষে ক্রমশ জটিল হয়ে ওঠে।
যদিও আমরা জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কগুলি পরিচয় করানো এড়িয়ে গেছি যাতে ওয়েব ডেভেলপার হিসেবে একটি ফ্রেমওয়ার্ক গ্রহণের আগে প্রয়োজনীয় মৌলিক দক্ষতাগুলি শেখানো যায়, এই কারিকুলামটি সম্পন্ন করার পর একটি ভালো পরবর্তী পদক্ষেপ হবে Node.js সম্পর্কে শেখা। এটি "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)" ভিডিও সংগ্রহের মাধ্যমে শেখা যেতে পারে।
আমরা ইচ্ছাকৃতভাবে জাভাস্ক্রিপ্ট ফ্রেমওয়ার্কগুলো পরিচয় করানো এড়িয়ে গেছি, কারণ ওয়েব ডেভেলপার হিসেবে ফ্রেমওয়ার্ক গ্রহণের আগে প্রয়োজনীয় মৌলিক দক্ষতা শেখার উপর মনোযোগ দেওয়া হয়েছে। এই কারিকুলাম সম্পন্ন করার পর একটি ভালো পরবর্তী পদক্ষেপ হতে পারে 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](CODE_OF_CONDUCT.md) এবং [Contributing](CONTRIBUTING.md) নির্দেশিকা দেখুন। আমরা আপনার গঠনমূলক মতামতকে স্বাগত জানাই!
## 🧭 অফলাইন অ্যাক্সেস
আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশনটি অফলাইনে চালাতে পারেন। এই রিপোটি ফর্ক করুন, আপনার লোকাল মেশিনে [Docsify ইনস্টল](https://docsify.js.org/#/quickstart) করুন, এবং তারপর এই রিপোর রুট ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টে পোর্ট ৩০০০-এ পরিবেশন করা হবে: `localhost:3000`
আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশনটি অফলাইনে চালাতে পারেন। এই রিপোজিি ফর্ক করুন, আপনার লোকাল মেশিনে [Docsify ইনস্টল](https://docsify.js.org/#/quickstart) করুন, এবং তারপর এই রিপোজিটরির রুট ফোল্ডারে `docsify serve` টাইপ করুন। ওেবসাইটটি আপনার লোকালহোস্টে পোর্ট ৩০০০-এ পরিবেশন করা হবে: `localhost:3000`
## 📘 পিডিএফ
## 📘 PDF
সব পাঠের একটি পিডিএফ [এখানে](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) পাওয়া যাবে।
সব পাঠের একটি PDF [এখানে](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) পাওা যাবে।
## 🎒 অন্যান্য কোর্স
আমাদের টিম অন্যান্য কোর্সও তৈরি করে! দেখুন:
- [শুরু করার জন্য জেনারেটিভ এআই](https://aka.ms/genai-beginners)
- [শুরু করার জন্য জেনারেটিভ এআই .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [জাভাস্ক্রিপ্ট দিয়ে জেনারেটিভ এআই](https://github.com/microsoft/generative-ai-with-javascript)
- [জাভা দিয়ে জেনারেটিভ এআই](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [শুরু করার জন্য এআই](https://aka.ms/ai-beginners)
- [ডেটা সায়েন্সের প্রাথমিক পাঠ](https://aka.ms/datascience-beginners)
- [মেশিন লার্নিংয়ের প্রাথমিক পাঠ](https://aka.ms/ml-beginners)
- [সাইবার সিকিউরিটির প্রাথমিক পাঠ](https://github.com/microsoft/Security-101)
- [ওয়েব ডেভেলপমেন্টের প্রাথমিক পাঠ](https://aka.ms/webdev-beginners)
- [ইন্টারনেট অফ থিংসের প্রাথমিক পাঠ](https://aka.ms/iot-beginners)
- [এক্সআর ডেভেলপমেন্টের প্রাথমিক পাঠ](https://github.com/microsoft/xr-development-for-beginners)
- [এজেন্টিক ব্যবহারের জন্য GitHub Copilot আয়ত্ত করা](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [C#/.NET ডেভেলপারদের জন্য GitHub Copilot আয়ত্ত করা](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Generative AI for Beginners](https://aka.ms/genai-beginners)
- [Generative AI for Beginners .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generative AI with JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [Generative AI with Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI for Beginners](https://aka.ms/ai-beginners)
- [Data Science for Beginners](https://aka.ms/datascience-beginners)
- [ML for Beginners](https://aka.ms/ml-beginners)
- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101)
- [Web Dev for Beginners](https://aka.ms/webdev-beginners)
- [IoT for Beginners](https://aka.ms/iot-beginners)
- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners)
- [Mastering GitHub Copilot for Agentic use](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [আপনার নিজস্ব Copilot অ্যাডভেঞ্চার নির্বাচন করুন](https://github.com/microsoft/CopilotAdventures)
## সাহায্য পাওয়া
যদি আপনি আটকে যান বা AI অ্যাপ তৈরি করার বিষয়ে কোনো প্রশ্ন থাকে, যোগ দিন:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
যদি আপনার পণ্য সম্পর্কিত মতামত থাকে বা তৈরি করার সময় কোনো ত্রুটি ঘটে, দেখুন:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## লাইসেন্স
এই রিপোজিটরি MIT লাইসেন্সের অধীনে লাইসেন্সকৃত। আরও তথ্যের জন্য [LICENSE](../../LICENSE) ফাইলটি দেখুন।
@ -219,4 +226,4 @@ CO_OP_TRANSLATOR_METADATA:
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদ প্রদানের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা তার জন্য দায়ী থাকব না।
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,25 +1,46 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-25T20:56:03+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T09:11:17+00:00",
"source_file": "for-teachers.md",
"language_code": "bn"
}
-->
## শিক্ষকদের জন্য
### শিক্ষকদের জন্য
আপনি কি আপনার ক্লাসরুমে এই পাঠ্যক্রম ব্যবহার করতে চান? অনুগ্রহ করে নির্দ্বিধায় ব্যবহার করুন!
আপনার ক্লাসরুমে এই পাঠ্যক্রম ব্যবহার করতে পারেন। এটি GitHub Classroom এবং শীর্ষস্থানীয় LMS প্ল্যাটফর্মগুলোর সাথে সহজেই কাজ করে, এবং এটি আপনার শিক্ষার্থীদের সাথে একটি স্বতন্ত্র রিপোজিটরি হিসেবেও ব্যবহার করা যেতে পারে।
আসলে, আপনি এটি GitHub এর মাধ্যমেই ব্যবহার করতে পারেন GitHub Classroom ব্যবহার করে।
### GitHub Classroom এর সাথে ব্যবহার
এটি করতে, এই রিপোজিটরি ফর্ক করুন। প্রতিটি পাঠের জন্য একটি রিপোজিটরি তৈরি করতে হবে, তাই আপনাকে প্রতিটি ফোল্ডার আলাদা রিপোজিটরিতে বের করতে হবে। এভাবে, [GitHub Classroom](https://classroom.github.com/classrooms) প্রতিটি পাঠ আলাদাভাবে নিতে পারবে।
প্রতি ব্যাচের জন্য পাঠ এবং অ্যাসাইনমেন্ট পরিচালনা করতে, প্রতিটি পাঠের জন্য একটি রিপোজিটরি তৈরি করুন যাতে GitHub Classroom প্রতিটি অ্যাসাইনমেন্ট আলাদাভাবে সংযুক্ত করতে পারে।
এই [সম্পূর্ণ নির্দেশনা](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) আপনাকে ক্লাসরুম সেটআপ করার ধারণা দেবে।
- এই রিপোজিটরি আপনার সংগঠনে ফর্ক করুন।
- প্রতিটি পাঠের জন্য একটি পৃথক রিপোজিটরি তৈরি করুন, প্রতিটি পাঠের ফোল্ডার আলাদা করে একটি রিপোজিটরিতে স্থানান্তর করুন।
- বিকল্প A: প্রতিটি পাঠের জন্য খালি রিপোজিটরি তৈরি করুন এবং পাঠের ফোল্ডারের বিষয়বস্তু সেখানে কপি করুন।
- বিকল্প B: Git ইতিহাস সংরক্ষণ করার পদ্ধতি ব্যবহার করুন (যেমন, একটি ফোল্ডারকে নতুন রিপোজিটরিতে বিভক্ত করা) যদি আপনাকে প্রমাণ রাখতে হয়।
- GitHub Classroom-এ, প্রতিটি পাঠের জন্য একটি অ্যাসাইনমেন্ট তৈরি করুন এবং সংশ্লিষ্ট পাঠের রিপোজিটরির দিকে নির্দেশ করুন।
- সুপারিশকৃত সেটিংস:
- রিপোজিটরির দৃশ্যমানতা: শিক্ষার্থীদের কাজের জন্য প্রাইভেট।
- পাঠের রিপোজিটরির ডিফল্ট ব্রাঞ্চ থেকে স্টার্টার কোড ব্যবহার করুন।
- কুইজ এবং জমা দেওয়ার জন্য ইস্যু এবং পুল রিকোয়েস্ট টেমপ্লেট যোগ করুন।
- যদি আপনার পাঠে অটোগ্রেডিং এবং টেস্ট থাকে, তাহলে সেগুলো কনফিগার করুন।
- সহায়ক কনভেনশন:
- রিপোজিটরির নাম যেমন lesson-01-intro, lesson-02-html ইত্যাদি।
- লেবেল: quiz, assignment, needs-review, late, resubmission।
- প্রতিটি ব্যাচের জন্য ট্যাগ/রিলিজ (যেমন, v2025-term1)।
## Moodle, Canvas বা Blackboard-এ ব্যবহার করা
পরামর্শ: Git কনফ্লিক্ট এড়াতে সিঙ্ক করা ফোল্ডারের (যেমন, OneDrive/Google Drive) ভিতরে রিপোজিটরি সংরক্ষণ করা থেকে বিরত থাকুন।
এই পাঠ্যক্রম এই Learning Management Systems-এ ভালোভাবে কাজ করে! সম্পূর্ণ কন্টেন্টের জন্য [Moodle আপলোড ফাইল](../../../../../../../teaching-files/webdev-moodle.mbz) ব্যবহার করুন, অথবা কিছু কন্টেন্ট সহ [Common Cartridge ফাইল](../../../../../../../teaching-files/webdev-common-cartridge.imscc) চেষ্টা করুন। Moodle Cloud সম্পূর্ণ Common Cartridge এক্সপোর্ট সমর্থন করে না, তাই Moodle ডাউনলোড ফাইল ব্যবহার করা উত্তম যা Canvas-এ আপলোড করা যেতে পারে। এই অভিজ্ঞতা আরও উন্নত করতে আমরা কীভাবে সাহায্য করতে পারি তা আমাদের জানান।
### Moodle, Canvas, বা Blackboard এর সাথে ব্যবহার
এই পাঠ্যক্রমটি সাধারণ LMS ওয়ার্কফ্লো-এর জন্য আমদানি করার প্যাকেজ অন্তর্ভুক্ত করে।
- Moodle: পুরো কোর্স লোড করতে Moodle আপলোড ফাইল [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) ব্যবহার করুন।
- Common Cartridge: বিস্তৃত LMS সামঞ্জস্যের জন্য Common Cartridge ফাইল [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) ব্যবহার করুন।
- নোট:
- Moodle Cloud-এ Common Cartridge সমর্থন সীমিত। উপরের Moodle ফাইলটি পছন্দ করুন, যা Canvas-এও আপলোড করা যেতে পারে।
- আমদানির পরে, আপনার টার্ম শিডিউলের সাথে মডিউল, ডিউ তারিখ এবং কুইজ সেটিংস পর্যালোচনা করুন।
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.bn.png)
> Moodle ক্লাসরুমে পাঠ্যক্রম
@ -27,19 +48,31 @@ CO_OP_TRANSLATOR_METADATA:
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.bn.png)
> Canvas-এ পাঠ্যক্রম
## রিপোজিটরি বর্তমান অবস্থায় ব্যবহার করা
### সরাসরি রিপোজিটরি ব্যবহার করুন (ক্লাসরুম ছাড়া)
যদি আপনি GitHub Classroom ব্যবহার করতে না চান, তাহলে আপনি এই রিপোজিটরি থেকে সরাসরি কোর্স চালাতে পারেন।
আপনি যদি GitHub Classroom ব্যবহার না করে এই রিপোজিটরি বর্তমান অবস্থায় ব্যবহার করতে চান, সেটিও সম্ভব। আপনাকে আপনার শিক্ষার্থীদের সাথে যোগাযোগ করতে হবে কোন পাঠ একসাথে কাজ করতে হবে।
- সিঙ্ক্রোনাস/অনলাইন ফরম্যাট (Zoom/Teams):
- মেন্টর-নেতৃত্বাধীন সংক্ষিপ্ত ওয়ার্মআপ চালান; কুইজের জন্য ব্রেকআউট রুম ব্যবহার করুন।
- কুইজের জন্য একটি সময় উইন্ডো ঘোষণা করুন; শিক্ষার্থীরা GitHub Issues-এ উত্তর জমা দেয়।
- সহযোগী অ্যাসাইনমেন্টের জন্য, শিক্ষার্থীরা পাবলিক পাঠের রিপোজিটরিতে কাজ করে এবং পুল রিকোয়েস্ট খুলে।
- প্রাইভেট/অ্যাসিঙ্ক্রোনাস ফরম্যাট:
- শিক্ষার্থীরা প্রতিটি পাঠ তাদের নিজস্ব **প্রাইভেট** রিপোজিটরিতে ফর্ক করে এবং আপনাকে সহযোগী হিসেবে যোগ করে।
- তারা আপনার ক্লাসরুম রিপোজিটরি বা তাদের প্রাইভেট ফর্কে Issues (কুইজ) এবং Pull Requests (অ্যাসাইনমেন্ট) এর মাধ্যমে জমা দেয়।
অনলাইন ফরম্যাটে (Zoom, Teams বা অন্য) আপনি কুইজের জন্য ব্রেকআউট রুম তৈরি করতে পারেন এবং শিক্ষার্থীদের শেখার জন্য প্রস্তুত করতে সাহায্য করতে পারেন। তারপর শিক্ষার্থীদের কুইজে আমন্ত্রণ জানান এবং নির্দিষ্ট সময়ে তাদের উত্তর 'issues' হিসেবে জমা দিতে বলুন। আপনি একই কাজ অ্যাসাইনমেন্টের জন্য করতে পারেন যদি শিক্ষার্থীরা একসাথে কাজ করতে চান।
### সেরা অনুশীলন
যদি আপনি আরও ব্যক্তিগত ফরম্যাট পছন্দ করেন, তাহলে শিক্ষার্থীদের পাঠ্যক্রমটি পাঠ অনুযায়ী তাদের নিজস্ব GitHub রিপোজিটরিতে ফর্ক করতে বলুন, যা প্রাইভেট রিপোজিটরি হবে, এবং আপনাকে অ্যাক্সেস দিন। এরপর তারা কুইজ এবং অ্যাসাইনমেন্ট ব্যক্তিগতভাবে সম্পন্ন করতে পারে এবং আপনার ক্লাসরুম রিপোজিটরিতে issues-এর মাধ্যমে জমা দিতে পারে।
- Git/GitHub এর বেসিক, Issues এবং PRs নিয়ে একটি ওরিয়েন্টেশন পাঠ প্রদান করুন।
- মাল্টি-স্টেপ কুইজ/অ্যাসাইনমেন্টের জন্য Issues-এ চেকলিস্ট ব্যবহার করুন।
- ক্লাসরুমের নিয়ম স্থাপনের জন্য CONTRIBUTING.md এবং CODE_OF_CONDUCT.md যোগ করুন।
- অ্যাক্সেসিবিলিটি নোট (alt টেক্সট, ক্যাপশন) যোগ করুন এবং প্রিন্টযোগ্য PDF প্রদান করুন।
- প্রতি টার্মে আপনার বিষয়বস্তু ভার্সন করুন এবং প্রকাশের পরে পাঠের রিপোজিটরি ফ্রিজ করুন।
অনলাইন ক্লাসরুম ফরম্যাটে এটি কাজ করার অনেক উপায় আছে। আপনার জন্য কোনটি সবচেয়ে ভালো কাজ করে তা আমাদের জানান!
### মতামত এবং সহায়তা
## আমাদের আপনার মতামত দিন!
আমরা চাই এই পাঠ্যক্রমটি আপনার এবং আপনার শিক্ষার্থীদের জন্য কার্যকর হোক। বাগ, অনুরোধ বা উন্নতির জন্য এই রিপোজিটরিতে একটি নতুন Issue খুলুন, অথবা Teacher Corner-এ একটি আলোচনা শুরু করুন।
আমরা চাই এই পাঠ্যক্রম আপনার এবং আপনার শিক্ষার্থীদের জন্য কার্যকর হোক। আমাদের সাথে [Teacher corner](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)-এ সংযুক্ত হন এবং কোনো অনুরোধ, বাগ বা মতামতের জন্য একটি [**নতুন issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) খুলুন।
---
**অস্বীকৃতি**:
এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতা নিশ্চিত করার চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।

@ -1,17 +1,17 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-28T23:58:32+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T09:34:20+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "br"
}
-->
# Introdução às Linguagens de Programação e Ferramentas Essenciais
# Introdução às Linguagens de Programação e Ferramentas do Ofício
Esta lição aborda os fundamentos das linguagens de programação. Os tópicos abordados aqui se aplicam à maioria das linguagens de programação modernas. Na seção 'Ferramentas Essenciais', você aprenderá sobre softwares úteis que ajudam você como desenvolvedor.
Esta lição aborda os fundamentos das linguagens de programação. Os tópicos abordados aqui se aplicam à maioria das linguagens de programação modernas. Na seção "Ferramentas do Ofício", você aprenderá sobre softwares úteis que ajudam você como desenvolvedor.
![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.br.png)
![Introdução à Programação](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.br.png)
> Sketchnote por [Tomomi Imura](https://twitter.com/girlie_mac)
## Quiz Pré-Aula
@ -24,7 +24,7 @@ Nesta lição, abordaremos:
- O que é programação?
- Tipos de linguagens de programação
- Elementos básicos de um programa
- Softwares úteis e ferramentas para o desenvolvedor profissional
- Softwares e ferramentas úteis para o desenvolvedor profissional
> Você pode fazer esta lição no [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
@ -42,7 +42,7 @@ Linguagens de programação permitem que os desenvolvedores escrevam instruçõe
As linguagens de programação vêm em diferentes formatos e podem servir a diferentes propósitos. Por exemplo, JavaScript é usado principalmente para aplicações web, enquanto Bash é usado principalmente para sistemas operacionais.
*Linguagens de baixo nível* geralmente requerem menos etapas do que *linguagens de alto nível* para que um dispositivo interprete as instruções. No entanto, o que torna as linguagens de alto nível populares é sua legibilidade e suporte. JavaScript é considerado uma linguagem de alto nível.
*Linguagens de baixo nível* geralmente exigem menos etapas do que *linguagens de alto nível* para que um dispositivo interprete as instruções. No entanto, o que torna as linguagens de alto nível populares é sua legibilidade e suporte. JavaScript é considerado uma linguagem de alto nível.
O código a seguir ilustra a diferença entre uma linguagem de alto nível, como JavaScript, e uma linguagem de baixo nível, como o código de montagem ARM.
@ -91,21 +91,21 @@ Acredite ou não, *eles estão fazendo a mesma coisa*: imprimindo uma sequência
Uma única instrução em um programa é chamada de *declaração* e geralmente terá um caractere ou espaçamento de linha que marca onde a instrução termina, ou *termina*. Como um programa termina varia de acordo com cada linguagem.
Declarações dentro de um programa podem depender de dados fornecidos por um usuário ou de outro lugar para executar instruções. Os dados podem alterar o comportamento de um programa, então as linguagens de programação vêm com uma maneira de armazenar temporariamente os dados para que possam ser usados posteriormente. Esses são chamados de *variáveis*. Variáveis são declarações que instruem um dispositivo a salvar dados em sua memória. Variáveis em programas são semelhantes às variáveis em álgebra, onde têm um nome único e seu valor pode mudar ao longo do tempo.
Declarações dentro de um programa podem depender de dados fornecidos por um usuário ou de outra fonte para executar instruções. Os dados podem alterar o comportamento de um programa, então as linguagens de programação vêm com uma maneira de armazenar temporariamente os dados para que possam ser usados posteriormente. Esses são chamados de *variáveis*. Variáveis são declarações que instruem um dispositivo a salvar dados em sua memória. Variáveis em programas são semelhantes às variáveis em álgebra, onde têm um nome único e seu valor pode mudar ao longo do tempo.
Há uma chance de que algumas declarações não sejam executadas por um dispositivo. Isso geralmente é intencional, quando escrito pelo desenvolvedor, ou por acidente, quando ocorre um erro inesperado. Esse tipo de controle sobre um aplicativo o torna mais robusto e fácil de manter. Normalmente, essas mudanças de controle acontecem quando certas condições são atendidas. Uma declaração comum usada na programação moderna para controlar como um programa é executado é a declaração `if..else`.
Há uma chance de que algumas declarações não sejam executadas por um dispositivo. Isso geralmente ocorre por design, quando escrito pelo desenvolvedor, ou por acidente, quando ocorre um erro inesperado. Esse tipo de controle sobre um aplicativo o torna mais robusto e fácil de manter. Normalmente, essas mudanças no controle acontecem quando certas condições são atendidas. Uma declaração comum usada na programação moderna para controlar como um programa é executado é a declaração `if..else`.
✅ Você aprenderá mais sobre esse tipo de declaração em lições subsequentes.
## Ferramentas Essenciais
## Ferramentas do Ofício
[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade")
[![Ferramentas do Ofício](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Ferramentas do Ofício")
> 🎥 Clique na imagem acima para assistir a um vídeo sobre ferramentas
Nesta seção, você aprenderá sobre alguns softwares que podem ser muito úteis ao iniciar sua jornada como desenvolvedor profissional.
Um **ambiente de desenvolvimento** é um conjunto único de ferramentas e recursos que um desenvolvedor usa frequentemente ao escrever software. Algumas dessas ferramentas foram personalizadas para atender às necessidades específicas de um desenvolvedor e podem mudar ao longo do tempo, caso esse desenvolvedor altere suas prioridades no trabalho, em projetos pessoais ou ao usar uma linguagem de programação diferente. Ambientes de desenvolvimento são tão únicos quanto os desenvolvedores que os utilizam.
Um **ambiente de desenvolvimento** é um conjunto único de ferramentas e recursos que um desenvolvedor usa frequentemente ao escrever software. Algumas dessas ferramentas foram personalizadas para atender às necessidades específicas de um desenvolvedor e podem mudar ao longo do tempo, caso o desenvolvedor altere suas prioridades no trabalho, em projetos pessoais ou ao usar uma linguagem de programação diferente. Ambientes de desenvolvimento são tão únicos quanto os desenvolvedores que os utilizam.
### Editores
@ -115,7 +115,7 @@ Os desenvolvedores dependem dos editores por alguns motivos adicionais:
- *Depuração* ajuda a identificar bugs e erros ao passar pelo código linha por linha. Alguns editores possuem recursos de depuração; eles podem ser personalizados e adicionados para linguagens de programação específicas.
- *Realce de sintaxe* adiciona cores e formatação ao texto do código, tornando-o mais fácil de ler. A maioria dos editores permite personalizar o realce de sintaxe.
- *Extensões e Integrações* são ferramentas especializadas para desenvolvedores, criadas por desenvolvedores. Essas ferramentas não foram incluídas no editor base. Por exemplo, muitos desenvolvedores documentam seu código para explicar como ele funciona. Eles podem instalar uma extensão de verificação ortográfica para ajudar a encontrar erros de digitação na documentação. A maioria das extensões é destinada ao uso em um editor específico, e a maioria dos editores vem com uma maneira de pesquisar extensões disponíveis.
- *Extensões e integrações* são ferramentas especializadas para desenvolvedores, criadas por desenvolvedores. Essas ferramentas não foram incluídas no editor base. Por exemplo, muitos desenvolvedores documentam seu código para explicar como ele funciona. Eles podem instalar uma extensão de verificação ortográfica para ajudar a encontrar erros de digitação na documentação. A maioria das extensões é destinada ao uso em um editor específico, e a maioria dos editores vem com uma maneira de pesquisar extensões disponíveis.
- *Personalização* permite que os desenvolvedores criem um ambiente de desenvolvimento único para atender às suas necessidades. A maioria dos editores é extremamente personalizável e também pode permitir que os desenvolvedores criem extensões personalizadas.
#### Editores Populares e Extensões para Desenvolvimento Web
@ -135,9 +135,9 @@ Os desenvolvedores dependem dos editores por alguns motivos adicionais:
### Navegadores
Outra ferramenta crucial é o navegador. Desenvolvedores web dependem do navegador para ver como seu código funciona na web. Ele também é usado para exibir os elementos visuais de uma página web que são escritos no editor, como HTML.
Outra ferramenta crucial é o navegador. Desenvolvedores web dependem do navegador para ver como seu código é executado na web. Ele também é usado para exibir os elementos visuais de uma página web que são escritos no editor, como HTML.
Muitos navegadores vêm com *ferramentas de desenvolvedor* (DevTools) que contêm um conjunto de recursos úteis e informações para ajudar os desenvolvedores a coletar e capturar informações importantes sobre seu aplicativo. Por exemplo: Se uma página web tiver erros, às vezes é útil saber quando eles ocorreram. As DevTools em um navegador podem ser configuradas para capturar essas informações.
Muitos navegadores vêm com *ferramentas de desenvolvedor* (DevTools) que contêm um conjunto de recursos úteis e informações para ajudar os desenvolvedores a coletar e capturar informações importantes sobre seu aplicativo. Por exemplo: se uma página web tiver erros, às vezes é útil saber quando eles ocorreram. As DevTools em um navegador podem ser configuradas para capturar essas informações.
#### Navegadores Populares e DevTools
@ -147,7 +147,7 @@ Muitos navegadores vêm com *ferramentas de desenvolvedor* (DevTools) que contê
### Ferramentas de Linha de Comando
Alguns desenvolvedores preferem uma visão menos gráfica para suas tarefas diárias e dependem da linha de comando para isso. Escrever código exige uma quantidade significativa de digitação, e alguns desenvolvedores preferem não interromper seu fluxo no teclado. Eles usam atalhos de teclado para alternar entre janelas da área de trabalho, trabalhar em diferentes arquivos e usar ferramentas. A maioria das tarefas pode ser realizada com um mouse, mas um benefício da linha de comando é que muito pode ser feito com ferramentas de linha de comando sem a necessidade de alternar entre o mouse e o teclado. Outro benefício da linha de comando é que ela é configurável, permitindo salvar uma configuração personalizada, alterá-la posteriormente e importá-la para outras máquinas de desenvolvimento. Como os ambientes de desenvolvimento são tão únicos para cada desenvolvedor, alguns evitam usar a linha de comando, outros dependem dela totalmente, e alguns preferem uma mistura dos dois.
Alguns desenvolvedores preferem uma visão menos gráfica para suas tarefas diárias e dependem da linha de comando para isso. Escrever código exige uma quantidade significativa de digitação, e alguns desenvolvedores preferem não interromper seu fluxo no teclado. Eles usam atalhos de teclado para alternar entre janelas do desktop, trabalhar em diferentes arquivos e usar ferramentas. A maioria das tarefas pode ser concluída com um mouse, mas um benefício da linha de comando é que muito pode ser feito com ferramentas de linha de comando sem a necessidade de alternar entre o mouse e o teclado. Outro benefício da linha de comando é que ela é configurável, permitindo salvar uma configuração personalizada, alterá-la posteriormente e importá-la para outras máquinas de desenvolvimento. Como os ambientes de desenvolvimento são tão únicos para cada desenvolvedor, alguns evitam usar a linha de comando, outros dependem dela totalmente, e alguns preferem uma mistura dos dois.
### Opções Populares de Linha de Comando
@ -182,7 +182,7 @@ As opções de linha de comando variam de acordo com o sistema operacional que v
### Documentação
Quando um desenvolvedor quer aprender algo novo, ele provavelmente recorrerá à documentação para aprender como usar. Desenvolvedores frequentemente dependem da documentação para guiá-los sobre como usar ferramentas e linguagens corretamente, além de obter um conhecimento mais profundo de como elas funcionam.
Quando um desenvolvedor quer aprender algo novo, ele provavelmente recorrerá à documentação para aprender como usar. Os desenvolvedores frequentemente dependem da documentação para orientá-los sobre como usar ferramentas e linguagens corretamente, além de obter um conhecimento mais profundo de como elas funcionam.
#### Documentação Popular sobre Desenvolvimento Web
@ -211,7 +211,9 @@ Estude um pouco sobre as diferentes linguagens disponíveis para o programador.
[Lendo a Documentação](assignment.md)
> Nota: Ao selecionar ferramentas para sua tarefa, não escolha editores, navegadores ou ferramentas de linha de comando já listados acima.
---
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.

@ -1,23 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-25T23:14:49+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T09:34:57+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "br"
}
-->
# Lendo a Documentação
## Instruções
Existem muitas ferramentas que um desenvolvedor web pode precisar que estão na [documentação MDN sobre ferramentas do lado do cliente](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Selecione 3 ferramentas que não foram abordadas na lição, explique por que um desenvolvedor web as utilizaria e procure uma ferramenta que se enquadre nessa categoria e compartilhe sua documentação. Não utilize o mesmo exemplo de ferramenta mencionado na documentação MDN.
Existem muitas ferramentas que um desenvolvedor web pode precisar, listadas na [documentação MDN sobre ferramentas do lado do cliente](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Selecione **três ferramentas** que **não estão abordadas nesta lição** (excluindo [listar ferramentas específicas ou referir-se ao conteúdo da lição]), explique **por que** um desenvolvedor web usaria cada ferramenta e encontre uma ferramenta que se encaixe em cada categoria. Para cada uma, compartilhe um link para sua documentação oficial (não o exemplo usado no MDN).
**Formato:**
- Nome da ferramenta
- Por que um desenvolvedor web usaria (2-3 frases)
- Link para a documentação
**Extensão:**
- Cada explicação deve ter 2-3 frases.
## Rubrica
Exemplar | Adequado | Precisa Melhorar
--- | --- | -- |
|Explicou por que o desenvolvedor web utilizaria a ferramenta| Explicou como, mas não por que o desenvolvedor utilizaria a ferramenta| Não mencionou como ou por que um desenvolvedor utilizaria a ferramenta |
Exemplar | Adequado | Precisa de Melhorias
--- | --- | --- |
Explicou por que o desenvolvedor web usaria a ferramenta | Explicou como, mas não por que o desenvolvedor usaria a ferramenta | Não mencionou como ou por que um desenvolvedor usaria a ferramenta |
---
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-25T21:57:58+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T09:33:51+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "br"
}
@ -11,13 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Instruções
Imagine que você está criando um carrinho de compras. Escreva uma documentação sobre os tipos de dados que você precisaria para completar sua experiência de compra. Como você chegou às suas escolhas?
Imagine que você está criando um carrinho de compras. Escreva uma documentação sobre os tipos de dados que você precisaria para completar sua experiência de compra. Para cada tipo de dado, explique como e por que você o utilizaria e forneça um exemplo. Os seis tipos de dados do JavaScript são: String, Number, Boolean, Null, Undefined e Object.
## Rubrica
Critérios | Exemplares | Adequado | Precisa de Melhorias
Critérios | Exemplary | Adequado | Precisa Melhorar
--- | --- | --- | --- |
||Os seis tipos de dados são listados e explorados em detalhes, documentando seu uso|Quatro tipos de dados são explorados|Dois tipos de dados são explorados|
Tipos de Dados | Todos os seis tipos de dados são listados, explorados em detalhes e documentados com exemplos | Quatro tipos de dados são explorados com alguma explicação | Dois tipos de dados são explorados com explicação mínima |
---
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte oficial. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.

@ -1,23 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-25T21:12:24+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T09:35:14+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "br"
}
-->
# Pratique seu HTML: Crie um modelo de blog
# Tarefa de Prática de HTML: Criar um Mockup de Blog
## Objetivo
Desenhar e codificar manualmente a estrutura HTML para a página inicial de um blog pessoal. Este exercício ajudará você a praticar HTML semântico, planejamento de layout e organização de código.
## Instruções
Imagine que você está projetando ou redesenhando seu site pessoal. Crie um modelo gráfico do seu site e, em seguida, escreva o código HTML que você usaria para construir os diversos elementos do site. Você pode fazer isso no papel e escanear, ou usar o software de sua escolha, apenas certifique-se de codificar manualmente o HTML.
1. **Desenhe o Mockup do Seu Blog**
- Faça um esboço visual da página inicial do seu blog. Inclua seções principais como cabeçalho, navegação, conteúdo principal, barra lateral e rodapé.
- Você pode usar papel e escanear seu esboço ou utilizar ferramentas digitais (ex.: Figma, Adobe XD, Canva ou até PowerPoint).
2. **Identifique os Elementos HTML**
- Liste os elementos HTML que você planeja usar em cada seção (ex.: `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>`, etc.).
3. **Escreva o Código HTML**
- Codifique manualmente o HTML para o seu mockup. Foque na estrutura semântica e nas melhores práticas.
- Inclua pelo menos 10 elementos HTML distintos.
- Adicione comentários para explicar suas escolhas e estrutura.
4. **Envie Seu Trabalho**
- Faça o upload do seu esboço/mockup e do arquivo HTML.
- Opcionalmente, forneça uma breve reflexão (23 frases) sobre suas decisões de design.
## Rubrica
| Critério | Exemplar | Adequado | Precisa Melhorar |
|------------------|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Mockup Visual | Mockup claro e detalhado com seções identificadas e layout bem pensado | Mockup básico com algumas seções identificadas | Mockup mínimo ou pouco claro; falta identificação das seções |
| Elementos HTML | Usa 10+ elementos HTML semânticos; demonstra compreensão de estrutura e melhores práticas | Usa 59 elementos HTML; alguma estrutura semântica | Usa menos de 5 elementos; falta estrutura semântica |
| Qualidade do Código | Código bem organizado, legível e com comentários; segue os padrões HTML | Código razoavelmente organizado; poucos comentários | Código desorganizado; falta de comentários |
| Reflexão | Reflexão perspicaz sobre escolhas de design e desafios | Reflexão básica | Sem reflexão ou irrelevante |
## Dicas
## Critérios de Avaliação
- Use tags HTML semânticas para melhor acessibilidade e SEO.
- Organize seu código com indentação e comentários.
- Consulte [Referência de Elementos HTML do MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) para orientação.
- Pense em como seu layout pode ser expandido ou estilizado em tarefas futuras.
| Critérios | Exemplário | Adequado | Precisa de Melhorias |
| --------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| | Um layout de blog é representado visualmente com pelo menos 10 elementos de marcação exibidos | Um layout de blog é representado visualmente com cerca de 5 elementos de marcação exibidos | Um layout de blog é representado visualmente com no máximo 3 elementos de marcação exibidos |
---
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.
Este documento foi traduzido usando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução.

@ -1,23 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-25T21:29:53+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T09:35:03+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "br"
}
-->
# Refatoração de CSS
# Tarefa de Refatoração de CSS
## Objetivo
Refatore o projeto do terrário para usar **Flexbox** ou **CSS Grid** na organização do layout. Atualize o HTML e o CSS conforme necessário para alcançar um design moderno e responsivo. Não é necessário implementar elementos arrastáveis—foco apenas no layout e no estilo.
## Instruções
Redefina o estilo do terrário usando Flexbox ou CSS Grid e tire capturas de tela para mostrar que você testou em vários navegadores. Pode ser necessário alterar o markup, então crie uma nova versão do aplicativo com a arte no lugar para sua refatoração. Não se preocupe em tornar os elementos arrastáveis; por enquanto, apenas refatore o HTML e o CSS.
1. **Crie uma nova versão** do aplicativo de terrário. Atualize o HTML e o CSS para utilizar Flexbox ou CSS Grid no layout.
2. **Certifique-se de que a arte e os elementos estejam no lugar** como na versão original.
3. **Teste seu design** em pelo menos dois navegadores diferentes (ex.: Chrome, Firefox, Edge).
4. **Tire capturas de tela** do seu terrário em cada navegador para demonstrar a compatibilidade entre navegadores.
5. **Envie** seu código atualizado e as capturas de tela.
## Critérios de Avaliação
| Critério | Exemplar | Adequado | Necessita Melhorias |
|------------------|-------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| Layout | Totalmente refatorado usando Flexbox ou CSS Grid; visualmente atraente e responsivo | Alguns elementos refatorados; uso parcial de Flexbox ou Grid | Pouco ou nenhum uso de Flexbox ou Grid; layout inalterado |
| Compatibilidade | Capturas de tela fornecidas para vários navegadores; aparência consistente | Capturas de tela para um navegador; pequenas inconsistências | Sem capturas de tela ou grandes inconsistências |
| Qualidade do Código | HTML/CSS limpo e bem organizado; comentários claros | Alguma organização; poucos comentários | Código desorganizado; sem comentários |
## Dicas
## Rubrica
- Revise os guias de [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) e [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/).
- Use as ferramentas de desenvolvedor do navegador para testar a responsividade.
- Comente seu código para maior clareza.
| Critério | Exemplary | Adequado | Precisa Melhorar |
| --------- | ----------------------------------------------------------------- | ----------------------------- | ------------------------------------ |
| | Apresente um terrário completamente reestilizado usando Flexbox ou CSS Grid | Reestilize alguns dos elementos | Não reestilize o terrário de forma alguma |
---
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.

@ -1,156 +1,173 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-28T23:57:03+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T09:33:56+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "br"
}
-->
# Usando um editor de código
***
Esta lição aborda os conceitos básicos de como usar o [VSCode.dev](https://vscode.dev), um editor de código baseado na web, para que você possa fazer alterações no seu código e contribuir com um projeto sem precisar instalar nada no seu computador.
# Usando um Editor de Código: Dominando o [VSCode.dev](https://vscode.dev)
## Objetivos de aprendizado
**Bem-vindo!**
Esta lição vai te levar do básico ao uso avançado do [VSCode.dev](https://vscode.dev)—o poderoso editor de código baseado na web. Você aprenderá a editar código com confiança, gerenciar projetos, rastrear alterações, instalar extensões e colaborar como um profissional—tudo diretamente do navegador, sem necessidade de instalação.
Nesta lição, você aprenderá a:
***
- Usar um editor de código em um projeto de programação
- Acompanhar alterações com controle de versão
- Personalizar o editor para desenvolvimento
## Objetivos de Aprendizagem
### Pré-requisitos
Ao final desta lição, você será capaz de:
Antes de começar, você precisará criar uma conta no [GitHub](https://github.com). Acesse [GitHub](https://github.com/) e crie uma conta, caso ainda não tenha uma.
- Usar eficientemente um editor de código em qualquer projeto, em qualquer lugar
- Rastrear seu trabalho de forma integrada com controle de versão embutido
- Personalizar e otimizar seu fluxo de desenvolvimento com customizações e extensões do editor
### Introdução
***
Um editor de código é uma ferramenta essencial para escrever programas e colaborar em projetos de programação existentes. Assim que você entender os conceitos básicos de um editor e como aproveitar seus recursos, poderá aplicá-los ao escrever código.
## Pré-requisitos
## Começando com o VSCode.dev
O [VSCode.dev](https://vscode.dev) é um editor de código na web. Você não precisa instalar nada para usá-lo, é como abrir qualquer outro site. Para começar, abra o seguinte link: [https://vscode.dev](https://vscode.dev). Se você não estiver conectado ao [GitHub](https://github.com/), siga as instruções para fazer login ou criar uma nova conta e, em seguida, faça login.
Para começar, **crie uma conta gratuita no [GitHub](https://github.com)**, que permite gerenciar repositórios de código e colaborar globalmente. Se você ainda não tem uma conta, [crie uma aqui](https://github.com/).
Depois de carregar, ele deve se parecer com esta imagem:
***
![VSCode.dev padrão](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.br.png)
## Por que usar um editor de código baseado na web?
Existem três seções principais, da esquerda para a direita:
Um **editor de código** como o VSCode.dev é seu centro de comando para escrever, editar e gerenciar código. Com uma interface intuitiva, inúmeros recursos e acesso imediato via navegador, você pode:
1. A _barra de atividades_, que inclui alguns ícones, como a lupa 🔎, a engrenagem ⚙️ e outros.
2. A barra de atividades expandida, que por padrão exibe o _Explorador_, chamada de _barra lateral_.
3. E, finalmente, a área de código à direita.
- Editar projetos em qualquer dispositivo
- Evitar complicações com instalações
- Colaborar e contribuir instantaneamente
Clique em cada um dos ícones para exibir um menu diferente. Quando terminar, clique no _Explorador_ para voltar ao ponto de partida.
Depois de se familiarizar com o VSCode.dev, você estará preparado para lidar com tarefas de programação de qualquer lugar, a qualquer momento.
Quando você começar a criar ou modificar código existente, isso acontecerá na maior área à direita. Você também usará essa área para visualizar o código existente, o que será feito a seguir.
***
## Abrir um repositório do GitHub
A primeira coisa que você precisará fazer é abrir um repositório do GitHub. Existem várias maneiras de abrir um repositório. Nesta seção, você verá duas formas diferentes de abrir um repositório para começar a trabalhar nas alterações.
## Começando com o VSCode.dev
### 1. Com o editor
Acesse **[VSCode.dev](https://vscode.dev)**—sem instalação, sem downloads. Fazer login com o GitHub desbloqueia acesso completo, incluindo sincronização de suas configurações, extensões e repositórios. Se solicitado, conecte sua conta do GitHub.
Use o próprio editor para abrir um repositório remoto. Se você acessar [VSCode.dev](https://vscode.dev), verá um botão _"Open Remote Repository"_:
Após carregar, seu espaço de trabalho terá esta aparência:
![Abrir repositório remoto](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.br.png)
![VSCode.dev padrão](../images/default-vscode-dev tem três seções principais da esquerda para a direita:
- **Barra de atividades:** Ícones como 🔎 (Pesquisar), ⚙️ (Configurações), arquivos, controle de versão, etc.
- **Barra lateral:** Muda de contexto com base no ícone selecionado na barra de atividades (por padrão, *Explorer* para mostrar arquivos).
- **Área de edição/código:** A maior seção à direita—onde você realmente edita e visualiza o código.
Você também pode usar a paleta de comandos. A paleta de comandos é uma caixa de entrada onde você pode digitar qualquer palavra que faça parte de um comando ou ação para encontrar o comando correto a ser executado. Use o menu no canto superior esquerdo, selecione _View_ e, em seguida, escolha _Command Palette_, ou use o atalho de teclado: Ctrl-Shift-P (no MacOS seria Command-Shift-P).
Clique nos ícones para explorar os recursos, mas volte ao _Explorer_ para manter seu lugar.
![Menu da Paleta](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.br.png)
***
Quando o menu abrir, digite _open remote repository_ e selecione a primeira opção. Vários repositórios dos quais você faz parte ou que abriu recentemente aparecerão. Você também pode usar uma URL completa do GitHub para selecionar um. Use a seguinte URL e cole na caixa:
## Abrindo um Repositório do GitHub
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
### Método 1: Pelo Editor
✅ Se for bem-sucedido, você verá todos os arquivos deste repositório carregados no editor de texto.
1. Acesse [VSCode.dev](https://vscode.dev). Clique em **"Open Remote Repository."**
### 2. Usando a URL
![Abrir repositório remoto](../../../../8-code-editor/images/open-remote-repository use o _Command Palette_ (Ctrl-Shift-P ou Cmd-Shift-P no Mac).
Você também pode usar uma URL diretamente para carregar um repositório. Por exemplo, a URL completa para o repositório atual é [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), mas você pode substituir o domínio do GitHub por `VSCode.dev/github` e carregar o repositório diretamente. A URL resultante seria [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![Menu da Paleta](../images/palette-menu.pngopen remote repository.”
- Selecione a opção.
- Cole a URL do seu repositório GitHub (ex.: `https://github.com/microsoft/Web-Dev-For-Beginners`) e pressione Enter.
## Editar arquivos
Se tudo der certo, você verá o projeto inteiro carregado e pronto para edição!
Depois de abrir o repositório no navegador/vscode.dev, o próximo passo será fazer atualizações ou alterações no projeto.
***
### 1. Criar um novo arquivo
### Método 2: Diretamente via URL
Você pode criar um arquivo dentro de uma pasta existente ou na pasta/diretório raiz. Para criar um novo arquivo, abra o local/diretório onde deseja salvar o arquivo e selecione o ícone _'New file ...'_ na barra de atividades _(à esquerda)_, dê um nome ao arquivo e pressione Enter.
Transforme qualquer URL de repositório GitHub para abrir diretamente no VSCode.dev substituindo `github.com` por `vscode.dev/github`.
Ex.:
![Criar um novo arquivo](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.br.png)
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
### 2. Editar e salvar um arquivo no repositório
Este recurso acelera o acesso rápido a QUALQUER projeto.
Usar o vscode.dev é útil sempre que você quiser fazer atualizações rápidas no seu projeto sem precisar carregar nenhum software localmente.
Para atualizar seu código, clique no ícone 'Explorer', também localizado na barra de atividades, para visualizar os arquivos e pastas no repositório.
Selecione um arquivo para abri-lo na área de código, faça suas alterações e salve.
***
![Editar um arquivo](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.br.png)
## Editando Arquivos no Seu Projeto
Depois de terminar de atualizar seu projeto, selecione o ícone _`source control`_, que contém todas as novas alterações feitas no repositório.
Depois de abrir seu repositório, você pode:
Para visualizar as alterações feitas no projeto, selecione o(s) arquivo(s) na pasta `Changes` na barra de atividades expandida. Isso abrirá um 'Working Tree' para você visualizar as alterações feitas no arquivo. Vermelho indica uma exclusão no projeto, enquanto verde indica uma adição.
### 1. **Criar um Novo Arquivo**
- Na barra lateral *Explorer*, navegue até a pasta desejada ou use a raiz.
- Clique no ícone _New file ..._.
- Nomeie seu arquivo, pressione **Enter**, e ele aparecerá instantaneamente.
![Visualizar alterações](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.br.png)
![Criar um novo arquivo](../images/create-new-file 2. **Editar e Salvar Arquivos**
Se estiver satisfeito com as alterações feitas, passe o mouse sobre a pasta `Changes` e clique no botão `+` para preparar as alterações. Preparar significa simplesmente preparar suas alterações para enviá-las ao GitHub.
- Clique em um arquivo no *Explorer* para abri-lo na área de código.
- Faça as alterações necessárias.
- O VSCode.dev salva automaticamente suas alterações, mas você pode pressionar Ctrl+S para salvar manualmente.
Se, no entanto, você não estiver confortável com algumas alterações e quiser descartá-las, passe o mouse sobre a pasta `Changes` e selecione o ícone de `desfazer`.
![Editar um arquivo](../images/edit-a-file.png. **Rastrear e Confirmar Alterações com Controle de Versão**
Depois, digite uma `mensagem de commit` _(uma descrição das alterações feitas no projeto)_, clique no ícone de `check` para confirmar e enviar suas alterações.
O VSCode.dev possui controle de versão **Git** integrado!
Quando terminar de trabalhar no projeto, selecione o `ícone de menu hambúrguer` no canto superior esquerdo para retornar ao repositório no github.com.
- Clique no ícone _'Source Control'_ para visualizar todas as alterações feitas.
- Arquivos na pasta `Changes` mostram adições (verde) e exclusões (vermelho).
![Visualizar alterações](../images/working-tree.png alterações clicando no `+` ao lado dos arquivos para preparar para commit.
- **Descartar** alterações indesejadas clicando no ícone de desfazer.
- Digite uma mensagem clara de commit e clique no check para confirmar e enviar.
![Preparar e confirmar alterações](../../../../8-code-editor/images/edit-vscode.dev.gif)
Para retornar ao seu repositório no GitHub, selecione o menu hambúrguer no canto superior esquerdo.
## Usando extensões
![Preparar e confirmar alterações](../images/edit-vscode.dev Up com Extensões
Instalar extensões no VSCode permite adicionar novos recursos e opções de personalização ao ambiente de desenvolvimento no editor, melhorando seu fluxo de trabalho. Essas extensões também ajudam a adicionar suporte para várias linguagens de programação e geralmente são genéricas ou específicas para uma linguagem.
As extensões permitem adicionar linguagens, temas, depuradores e ferramentas de produtividade ao VSCode.dev—facilitando e tornando sua vida de programador mais divertida.
Para navegar pela lista de todas as extensões disponíveis, clique no ícone _`Extensions`_ na barra de atividades e comece a digitar o nome da extensão no campo de texto rotulado como _'Search Extensions in Marketplace'_.
Você verá uma lista de extensões, cada uma contendo **o nome da extensão, o nome do publicador, uma descrição de uma frase, o número de downloads** e **uma classificação por estrelas**.
### Navegando e Gerenciando Extensões
![Detalhes da extensão](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.br.png)
- Clique no **ícone de Extensões** na barra de atividades.
- Pesquise uma extensão na caixa _'Search Extensions in Marketplace'_.
Você também pode visualizar todas as extensões previamente instaladas expandindo a pasta _`Installed`_, extensões populares usadas pela maioria dos desenvolvedores na pasta _`Popular`_ e extensões recomendadas para você, seja por usuários no mesmo workspace ou com base nos arquivos abertos recentemente, na pasta _`Recommended`_.
![Detalhes da extensão](../images/extension-details:
- **Installed**: Todas as extensões que você adicionou
- **Popular**: Favoritas da indústria
- **Recommended**: Personalizadas para seu fluxo de trabalho
![Visualizar extensões](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.br.png)
![Visualizar extensões](
### 1. Instalar extensões
Para instalar uma extensão, digite o nome da extensão no campo de busca e clique nela para visualizar informações adicionais na área de código assim que ela aparecer na barra de atividades expandida.
***
Você pode clicar no _botão azul de instalar_ na barra de atividades expandida para instalar ou usar o botão de instalação que aparece na área de código ao selecionar a extensão para carregar informações adicionais.
### 1. **Instalar Extensões**
![Instalar extensões](../../../../8-code-editor/images/install-extension.gif)
- Digite o nome da extensão na busca, clique nela e revise os detalhes no editor.
- Clique no **botão azul de Instalar** na barra lateral _ou_ na área principal de código.
### 2. Personalizar extensões
![Instalar extensões](../images/install-extension 2. **Personalizar Extensões**
Depois de instalar a extensão, talvez seja necessário modificar seu comportamento e personalizá-la de acordo com suas preferências. Para fazer isso, selecione o ícone Extensions e, desta vez, sua extensão aparecerá na pasta _Installed_. Clique no _**ícone de engrenagem**_ e navegue até _Extensions Setting_.
- Encontre sua extensão instalada.
- Clique no **ícone de engrenagem** → selecione _Extension Settings_ para ajustar os comportamentos ao seu gosto.
![Modificar configurações da extensão](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.br.png)
![Modificar configurações da extensão](../images/extension-settings 3. **Gerenciar Extensões**
Você pode:
### 3. Gerenciar extensões
- **Desativar:** Desligar temporariamente uma extensão enquanto mantém ela instalada
- **Desinstalar:** Remover permanentemente se não for mais necessária
Depois de instalar e usar sua extensão, o vscode.dev oferece opções para gerenciá-la com base em diferentes necessidades. Por exemplo, você pode:
Encontre a extensão, clique no ícone de engrenagem e selecione Disable ou Uninstall, ou use os botões azuis na área de código.
- **Desativar:** _(Você pode desativar temporariamente uma extensão quando não precisar mais dela, mas não quiser desinstalá-la completamente)_
***
Selecione a extensão instalada na barra de atividades expandida > clique no ícone de engrenagem > selecione 'Disable' ou 'Disable (Workspace)' **OU** abra a extensão na área de código e clique no botão azul Disable.
## Tarefa
- **Desinstalar:** Selecione a extensão instalada na barra de atividades expandida > clique no ícone de engrenagem > selecione 'Uninstall' **OU** abra a extensão na área de código e clique no botão azul Uninstall.
Teste suas habilidades: [Crie um site de currículo usando vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## Tarefa
## Exploração Adicional e Autoestudo
[Crie um site de currículo usando vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- Aprofunde-se com [a documentação oficial do VSCode Web](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Explore recursos avançados de espaço de trabalho, atalhos de teclado e configurações.
## Revisão e Autoestudo
***
Leia mais sobre o [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) e alguns de seus outros recursos.
**Agora você está pronto para codificar, criar e colaborar—de qualquer lugar, em qualquer dispositivo, usando o VSCode.dev!**
---

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:25:01+00:00",
"source_file": "AGENTS.md",
"language_code": "br"
}
-->
# AGENTS.md
## Visão Geral do Projeto
Este é um repositório de currículo educacional para ensinar fundamentos de desenvolvimento web a iniciantes. O currículo é um curso abrangente de 12 semanas desenvolvido pelos Microsoft Cloud Advocates, com 24 aulas práticas que abordam JavaScript, CSS e HTML.
### Componentes Principais
- **Conteúdo Educacional**: 24 aulas estruturadas organizadas em módulos baseados em projetos
- **Projetos Práticos**: Terrário, Jogo de Digitação, Extensão de Navegador, Jogo Espacial, Aplicativo Bancário, Editor de Código e Assistente de Chat com IA
- **Quizzes Interativos**: 48 quizzes com 3 perguntas cada (avaliações pré/pós-aula)
- **Suporte Multilíngue**: Traduções automáticas para mais de 50 idiomas via GitHub Actions
- **Tecnologias**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (para projetos de IA)
### Arquitetura
- Repositório educacional com estrutura baseada em aulas
- Cada pasta de aula contém README, exemplos de código e soluções
- Projetos independentes em diretórios separados (quiz-app, vários projetos de aula)
- Sistema de tradução usando GitHub Actions (co-op-translator)
- Documentação servida via Docsify e disponível em PDF
## Comandos de Configuração
Este repositório é principalmente para consumo de conteúdo educacional. Para trabalhar com projetos específicos:
### Configuração do Repositório Principal
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Configuração do Quiz App (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### API do Projeto Bancário (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Projetos de Extensão de Navegador
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Projetos de Jogo Espacial
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Projeto de Chat (Backend em Python)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Fluxo de Trabalho de Desenvolvimento
### Para Contribuidores de Conteúdo
1. **Faça um fork do repositório** na sua conta do GitHub
2. **Clone o fork** localmente
3. **Crie uma nova branch** para suas alterações
4. Faça alterações no conteúdo das aulas ou nos exemplos de código
5. Teste quaisquer alterações de código nos diretórios de projetos relevantes
6. Envie pull requests seguindo as diretrizes de contribuição
### Para Estudantes
1. Faça um fork ou clone do repositório
2. Navegue pelos diretórios das aulas sequencialmente
3. Leia os arquivos README de cada aula
4. Complete os quizzes pré-aula em https://ff-quizzes.netlify.app/web/
5. Trabalhe nos exemplos de código nas pastas das aulas
6. Complete os exercícios e desafios
7. Faça os quizzes pós-aula
### Desenvolvimento ao Vivo
- **Documentação**: Execute `docsify serve` na raiz (porta 3000)
- **Quiz App**: Execute `npm run dev` no diretório quiz-app
- **Projetos**: Use a extensão Live Server do VS Code para projetos HTML
- **Projetos de API**: Execute `npm start` nos diretórios de API correspondentes
## Instruções de Teste
### Teste do Quiz App
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Teste da API Bancária
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### Abordagem Geral de Teste
- Este é um repositório educacional sem testes automatizados abrangentes
- O teste manual foca em:
- Exemplos de código executando sem erros
- Links na documentação funcionando corretamente
- Builds dos projetos concluindo com sucesso
- Exemplos seguindo boas práticas
### Verificações Antes de Submissão
- Execute `npm run lint` nos diretórios com package.json
- Verifique se os links em markdown são válidos
- Teste os exemplos de código no navegador ou Node.js
- Certifique-se de que as traduções mantêm a estrutura adequada
## Diretrizes de Estilo de Código
### JavaScript
- Use sintaxe moderna ES6+
- Siga as configurações padrão do ESLint fornecidas nos projetos
- Use nomes de variáveis e funções significativos para clareza educacional
- Adicione comentários explicando conceitos para os alunos
- Formate usando Prettier onde configurado
### HTML/CSS
- Elementos semânticos do HTML5
- Princípios de design responsivo
- Convenções claras de nomenclatura de classes
- Comentários explicando técnicas de CSS para os alunos
### Python
- Diretrizes de estilo PEP 8
- Exemplos de código claros e educacionais
- Dicas de tipo onde úteis para aprendizado
### Documentação em Markdown
- Hierarquia clara de títulos
- Blocos de código com especificação de linguagem
- Links para recursos adicionais
- Capturas de tela e imagens em diretórios `images/`
- Texto alternativo para imagens para acessibilidade
### Organização de Arquivos
- Aulas numeradas sequencialmente (1-getting-started-lessons, 2-js-basics, etc.)
- Cada projeto tem diretórios `solution/` e frequentemente `start/` ou `your-work/`
- Imagens armazenadas em pastas `images/` específicas de cada aula
- Traduções na estrutura `translations/{language-code}/`
## Build e Implantação
### Implantação do Quiz App (Azure Static Web Apps)
O quiz-app está configurado para implantação no Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Configuração do Azure Static Web Apps:
- **Localização do aplicativo**: `/quiz-app`
- **Localização de saída**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Geração de PDF da Documentação
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Documentação Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Builds Específicos de Projetos
Cada diretório de projeto pode ter seu próprio processo de build:
- Projetos Vue: `npm run build` cria pacotes de produção
- Projetos estáticos: Sem etapa de build, sirva os arquivos diretamente
## Diretrizes para Pull Requests
### Formato do Título
Use títulos claros e descritivos indicando a área de alteração:
- `[Quiz-app] Adicionar novo quiz para aula X`
- `[Lesson-3] Corrigir erro de digitação no projeto terrário`
- `[Translation] Adicionar tradução para espanhol na aula 5`
- `[Docs] Atualizar instruções de configuração`
### Verificações Necessárias
Antes de enviar um PR:
1. **Qualidade do Código**:
- Execute `npm run lint` nos diretórios de projeto afetados
- Corrija todos os erros e avisos de lint
2. **Verificação de Build**:
- Execute `npm run build` se aplicável
- Certifique-se de que não há erros de build
3. **Validação de Links**:
- Teste todos os links em markdown
- Verifique se as referências de imagens funcionam
4. **Revisão de Conteúdo**:
- Revise para corrigir erros de ortografia e gramática
- Certifique-se de que os exemplos de código estão corretos e educacionais
- Verifique se as traduções mantêm o significado original
### Requisitos de Contribuição
- Concorde com o Microsoft CLA (verificação automatizada no primeiro PR)
- Siga o [Código de Conduta de Código Aberto da Microsoft](https://opensource.microsoft.com/codeofconduct/)
- Consulte [CONTRIBUTING.md](./CONTRIBUTING.md) para diretrizes detalhadas
- Referencie números de issues na descrição do PR, se aplicável
### Processo de Revisão
- PRs revisados por mantenedores e pela comunidade
- Clareza educacional é priorizada
- Exemplos de código devem seguir as melhores práticas atuais
- Traduções revisadas para precisão e adequação cultural
## Sistema de Tradução
### Tradução Automática
- Usa GitHub Actions com workflow co-op-translator
- Traduções automáticas para mais de 50 idiomas
- Arquivos fonte nos diretórios principais
- Arquivos traduzidos em diretórios `translations/{language-code}/`
### Adicionando Melhorias Manuais à Tradução
1. Localize o arquivo em `translations/{language-code}/`
2. Faça melhorias preservando a estrutura
3. Certifique-se de que os exemplos de código permanecem funcionais
4. Teste qualquer conteúdo de quiz localizado
### Metadados de Tradução
Arquivos traduzidos incluem cabeçalho de metadados:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Depuração e Solução de Problemas
### Problemas Comuns
**Quiz app não inicia**:
- Verifique a versão do Node.js (recomendado v14+)
- Exclua `node_modules` e `package-lock.json`, execute `npm install` novamente
- Verifique conflitos de porta (padrão: Vite usa porta 5173)
**Servidor de API não inicia**:
- Verifique se a versão do Node.js atende ao mínimo (node >=10)
- Verifique se a porta já está em uso
- Certifique-se de que todas as dependências estão instaladas com `npm install`
**Extensão de navegador não carrega**:
- Verifique se o manifest.json está formatado corretamente
- Verifique o console do navegador para erros
- Siga as instruções específicas do navegador para instalação de extensões
**Problemas no projeto de chat em Python**:
- Certifique-se de que o pacote OpenAI está instalado: `pip install openai`
- Verifique se a variável de ambiente GITHUB_TOKEN está configurada
- Verifique as permissões de acesso aos modelos do GitHub
**Docsify não serve os documentos**:
- Instale docsify-cli globalmente: `npm install -g docsify-cli`
- Execute a partir do diretório raiz do repositório
- Verifique se `docs/_sidebar.md` existe
### Dicas para Ambiente de Desenvolvimento
- Use VS Code com a extensão Live Server para projetos HTML
- Instale as extensões ESLint e Prettier para formatação consistente
- Use as DevTools do navegador para depurar JavaScript
- Para projetos Vue, instale a extensão Vue DevTools no navegador
### Considerações de Desempenho
- Grande número de arquivos traduzidos (50+ idiomas) significa clones completos grandes
- Use clone superficial se estiver trabalhando apenas no conteúdo: `git clone --depth 1`
- Exclua traduções das buscas ao trabalhar no conteúdo em inglês
- Processos de build podem ser lentos na primeira execução (npm install, build do Vite)
## Considerações de Segurança
### Variáveis de Ambiente
- Chaves de API nunca devem ser comprometidas no repositório
- Use arquivos `.env` (já em `.gitignore`)
- Documente as variáveis de ambiente necessárias nos READMEs dos projetos
### Projetos em Python
- Use ambientes virtuais: `python -m venv venv`
- Mantenha as dependências atualizadas
- Tokens do GitHub devem ter permissões mínimas necessárias
### Acesso aos Modelos do GitHub
- Tokens de Acesso Pessoal (PAT) são necessários para os Modelos do GitHub
- Tokens devem ser armazenados como variáveis de ambiente
- Nunca comprometa tokens ou credenciais
## Notas Adicionais
### Público-alvo
- Iniciantes completos em desenvolvimento web
- Estudantes e autodidatas
- Professores usando o currículo em salas de aula
- O conteúdo é projetado para acessibilidade e construção gradual de habilidades
### Filosofia Educacional
- Abordagem de aprendizado baseada em projetos
- Verificações frequentes de conhecimento (quizzes)
- Exercícios práticos de codificação
- Exemplos de aplicação no mundo real
- Foco nos fundamentos antes de frameworks
### Manutenção do Repositório
- Comunidade ativa de alunos e contribuidores
- Atualizações regulares de dependências e conteúdo
- Issues e discussões monitoradas pelos mantenedores
- Atualizações de tradução automatizadas via GitHub Actions
### Recursos Relacionados
- [Módulos do Microsoft Learn](https://docs.microsoft.com/learn/)
- [Recursos do Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) recomendado para alunos
- Cursos adicionais: IA Generativa, Ciência de Dados, ML, currículos de IoT disponíveis
### Trabalhando com Projetos Específicos
Para instruções detalhadas sobre projetos individuais, consulte os arquivos README em:
- `quiz-app/README.md` - Aplicativo de quiz em Vue 3
- `7-bank-project/README.md` - Aplicativo bancário com autenticação
- `5-browser-extension/README.md` - Desenvolvimento de extensão de navegador
- `6-space-game/README.md` - Desenvolvimento de jogo baseado em Canvas
- `9-chat-project/README.md` - Projeto de assistente de chat com IA
### Estrutura de Monorepo
Embora não seja um monorepo tradicional, este repositório contém vários projetos independentes:
- Cada aula é autônoma
- Projetos não compartilham dependências
- Trabalhe em projetos individuais sem afetar outros
- Clone o repositório inteiro para a experiência completa do currículo
---
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte oficial. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.

@ -1,185 +1,184 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-28T23:46:21+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T09:32:35+00:00",
"source_file": "README.md",
"language_code": "br"
}
-->
[![Licença do GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![Contribuidores do GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![Problemas no GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![Pull Requests no GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Bem-vindos](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Licença do GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![Contribuidores do GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![Problemas no GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![Pull Requests no GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Bem-vindos](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Observadores no GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![Forks no GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![Estrelas no GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![Observadores no GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![Forks no GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![Estrelas no GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![Abrir no Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Abrir%20no%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
[![Abrir no 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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
Siga estas etapas para começar a usar esses recursos:
1. **Faça um Fork do Repositório**: Clique em [![Forks no GitHub](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. **Clone o Repositório**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Junte-se ao Discord do Azure AI Foundry e conecte-se com especialistas e outros desenvolvedores**](https://discord.com/invite/ByRwuEEgH4)
Siga estas etapas para começar a usar esses recursos:
1. **Faça um Fork do Repositório**: Clique [![Forks no GitHub](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. **Clone o Repositório**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Participe do Discord Azure AI Foundry e conheça especialistas e outros desenvolvedores**](https://discord.com/invite/ByRwuEEgH4)
# Desenvolvimento Web para Iniciantes - Um Currículo
# Desenvolvimento Web para Iniciantes - Um Currículo
Aprenda os fundamentos do desenvolvimento web com nosso curso abrangente de 12 semanas oferecido pelos Microsoft Cloud Advocates. Cada uma das 24 aulas explora JavaScript, CSS e HTML por meio de projetos práticos como terrários, extensões de navegador e jogos espaciais. Participe de quizzes, discussões e tarefas práticas. Aprimore suas habilidades e otimize sua retenção de conhecimento com nossa metodologia eficaz baseada em projetos. Comece sua jornada de programação hoje mesmo!
Aprenda os fundamentos do desenvolvimento web com nosso curso abrangente de 12 semanas oferecido pelos Microsoft Cloud Advocates. Cada uma das 24 lições explora JavaScript, CSS e HTML por meio de projetos práticos como terrários, extensões de navegador e jogos espaciais. Participe de quizzes, discussões e tarefas práticas. Melhore suas habilidades e otimize sua retenção de conhecimento com nossa metodologia eficaz baseada em projetos. Comece sua jornada de programação hoje!
### 🌐 Suporte Multilíngue
### 🌐 Suporte Multilíngue
#### Suporte via GitHub Action (Automatizado e Sempre Atualizado)
#### Suporte via GitHub Action (Automatizado e Sempre Atualizado)
[Francês](../fr/README.md) | [Espanhol](../es/README.md) | [Alemão](../de/README.md) | [Russo](../ru/README.md) | [Árabe](../ar/README.md) | [Persa (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinês (Simplificado)](../zh/README.md) | [Chinês (Tradicional, Macau)](../mo/README.md) | [Chinês (Tradicional, Hong Kong)](../hk/README.md) | [Chinês (Tradicional, Taiwan)](../tw/README.md) | [Japonês](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Português (Portugal)](../pt/README.md) | [Português (Brasil)](./README.md) | [Italiano](../it/README.md) | [Polonês](../pl/README.md) | [Turco](../tr/README.md) | [Grego](../el/README.md) | [Tailandês](../th/README.md) | [Sueco](../sv/README.md) | [Dinamarquês](../da/README.md) | [Norueguês](../no/README.md) | [Finlandês](../fi/README.md) | [Holandês](../nl/README.md) | [Hebraico](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonésio](../id/README.md) | [Malaio](../ms/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Suaíli](../sw/README.md) | [Húngaro](../hu/README.md) | [Tcheco](../cs/README.md) | [Eslovaco](../sk/README.md) | [Romeno](../ro/README.md) | [Búlgaro](../bg/README.md) | [Sérvio (Cirílico)](../sr/README.md) | [Croata](../hr/README.md) | [Esloveno](../sl/README.md) | [Ucraniano](../uk/README.md) | [Birmanês (Myanmar)](../my/README.md)
[Francês](../fr/README.md) | [Espanhol](../es/README.md) | [Alemão](../de/README.md) | [Russo](../ru/README.md) | [Árabe](../ar/README.md) | [Persa (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinês (Simplificado)](../zh/README.md) | [Chinês (Tradicional, Macau)](../mo/README.md) | [Chinês (Tradicional, Hong Kong)](../hk/README.md) | [Chinês (Tradicional, Taiwan)](../tw/README.md) | [Japonês](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Português (Portugal)](../pt/README.md) | [Português (Brasil)](./README.md) | [Italiano](../it/README.md) | [Polonês](../pl/README.md) | [Turco](../tr/README.md) | [Grego](../el/README.md) | [Tailandês](../th/README.md) | [Sueco](../sv/README.md) | [Dinamarquês](../da/README.md) | [Norueguês](../no/README.md) | [Finlandês](../fi/README.md) | [Holandês](../nl/README.md) | [Hebraico](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonésio](../id/README.md) | [Malaio](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Suaíli](../sw/README.md) | [Húngaro](../hu/README.md) | [Tcheco](../cs/README.md) | [Eslovaco](../sk/README.md) | [Romeno](../ro/README.md) | [Búlgaro](../bg/README.md) | [Sérvio (Cirílico)](../sr/README.md) | [Croata](../hr/README.md) | [Esloveno](../sl/README.md) | [Ucraniano](../uk/README.md) | [Birmanês (Myanmar)](../my/README.md)
**Se você deseja adicionar mais idiomas, os suportados estão listados [aqui](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Se você deseja ter traduções adicionais, os idiomas suportados estão listados [aqui](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
#### 🧑‍🎓 _Você é estudante?_
#### 🧑‍🎓 _Você é estudante?_
Visite a [**página do Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), onde você encontrará recursos para iniciantes, pacotes para estudantes e até maneiras de obter um voucher de certificado gratuito. Essa é a página que você deve salvar nos favoritos e verificar de tempos em tempos, pois o conteúdo é atualizado mensalmente.
Visite [**Página do Hub de Estudantes**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), onde você encontrará recursos para iniciantes, pacotes para estudantes e até mesmo maneiras de obter um voucher de certificado gratuito. Esta é a página que você deve marcar como favorita e verificar de tempos em tempos, pois trocamos o conteúdo mensalmente.
### 📣 Anúncio - _Novo Projeto para construir usando IA Generativa_
### 📣 Anúncio - _Novo Projeto para construir usando IA Generativa_
Novo projeto de Assistente de IA adicionado, confira [projeto](./09-chat-project/README.md)
Acabamos de adicionar um novo projeto de Assistente de IA, confira [projeto](./09-chat-project/README.md)
### 📣 Anúncio - _Novo Currículo_ sobre IA Generativa para JavaScript foi lançado
### 📣 Anúncio - _Novo Currículo_ sobre IA Generativa para JavaScript foi lançado
Não perca nosso novo currículo de IA Generativa!
Não perca nosso novo currículo de IA Generativa!
Visite [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) para começar!
Visite [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) para começar!
![Fundo](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.br.png)
![Background](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.br.png)
- Aulas cobrindo desde o básico até RAG.
- Interaja com personagens históricos usando GenAI e nosso aplicativo complementar.
- Narrativa divertida e envolvente, você viajará no tempo!
- Lições cobrindo tudo, desde o básico até RAG.
- Interaja com personagens históricos usando GenAI e nosso aplicativo complementar.
- Narrativa divertida e envolvente, você estará viajando no tempo!
![Personagem](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.br.png)
![character](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.br.png)
Cada aula inclui uma tarefa para completar, uma verificação de conhecimento e um desafio para guiá-lo no aprendizado de tópicos como:
- Criação e engenharia de prompts
- Geração de aplicativos de texto e imagem
- Aplicativos de busca
Cada lição inclui uma tarefa para completar, uma verificação de conhecimento e um desafio para guiá-lo no aprendizado de tópicos como:
- Criação de prompts e engenharia de prompts
- Geração de aplicativos de texto e imagem
- Aplicativos de busca
Visite [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) para começar!
Visite [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course) para começar!
## 🌱 Começando
## 🌱 Começando
> **Professores**, incluímos [algumas sugestões](for-teachers.md) sobre como usar este currículo. Adoraríamos receber seu feedback [em nosso fórum de discussões](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
> **Professores**, incluímos [algumas sugestões](for-teachers.md) sobre como usar este currículo. Adoraríamos receber seu feedback [em nosso fórum de discussão](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Estudantes](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, para cada aula, comece com um quiz pré-aula e continue lendo o material da aula, completando as várias atividades e verificando sua compreensão com o quiz pós-aula.
**[Estudantes](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, para cada lição, comece com um quiz pré-aula e siga lendo o material da aula, completando as várias atividades e verificando sua compreensão com o quiz pós-aula.
Para melhorar sua experiência de aprendizado, conecte-se com seus colegas para trabalhar nos projetos juntos! Discussões são incentivadas em nosso [fórum de discussões](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), onde nossa equipe de moderadores estará disponível para responder suas perguntas.
Para melhorar sua experiência de aprendizado, conecte-se com seus colegas para trabalhar nos projetos juntos! Discussões são incentivadas em nosso [fórum de discussão](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), onde nossa equipe de moderadores estará disponível para responder suas perguntas.
Para aprofundar sua educação, recomendamos explorar o [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) para materiais de estudo adicionais.
Para aprofundar sua educação, recomendamos explorar [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) para materiais de estudo adicionais.
### 📋 Configurando seu ambiente
### 📋 Configurando seu ambiente
Este currículo já possui um ambiente de desenvolvimento pronto para uso! Ao começar, você pode optar por executar o currículo em um [Codespace](https://github.com/features/codespaces/) (_um ambiente baseado em navegador, sem necessidade de instalações_), ou localmente no seu computador usando um editor de texto como o [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Este currículo tem um ambiente de desenvolvimento pronto para uso! Ao começar, você pode optar por executar o currículo em um [Codespace](https://github.com/features/codespaces/) (_um ambiente baseado em navegador, sem necessidade de instalações_), ou localmente em seu computador usando um editor de texto como [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Crie seu repositório
Para salvar seu trabalho facilmente, recomendamos que você crie sua própria cópia deste repositório. Você pode fazer isso clicando no botão **Use this template** no topo da página. Isso criará um novo repositório na sua conta do GitHub com uma cópia do currículo.
#### Crie seu repositório
Para salvar seu trabalho facilmente, é recomendado que você crie sua própria cópia deste repositório. Você pode fazer isso clicando no botão **Use this template** no topo da página. Isso criará um novo repositório em sua conta do GitHub com uma cópia do currículo.
Siga estas etapas:
1. **Faça um Fork do Repositório**: Clique no botão "Fork" no canto superior direito desta página.
2. **Clone o Repositório**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
Siga estas etapas:
1. **Faça um Fork do Repositório**: Clique no botão "Fork" no canto superior direito desta página.
2. **Clone o Repositório**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Executando o currículo em um Codespace
#### Executando o currículo em um Codespace
Na sua cópia deste repositório que você criou, clique no botão **Code** e selecione **Open with Codespaces**. Isso criará um novo Codespace para você trabalhar.
Na sua cópia deste repositório que você criou, clique no botão **Code** e selecione **Open with Codespaces**. Isso criará um novo Codespace para você trabalhar.
[!Codespace](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.br.png)
#### Executando o currículo localmente no seu computador
#### Executando o currículo localmente no seu computador
Para executar este currículo localmente no seu computador, você precisará de um editor de texto, um navegador e uma ferramenta de linha de comando. Nossa primeira aula, [Introdução às Linguagens de Programação e Ferramentas de Trabalho](../../1-getting-started-lessons/1-intro-to-programming-languages), guiará você pelas várias opções para cada uma dessas ferramentas, permitindo que você escolha o que funciona melhor para você.
Para executar este currículo localmente no seu computador, você precisará de um editor de texto, um navegador e uma ferramenta de linha de comando. Nossa primeira lição, [Introdução às Linguagens de Programação e Ferramentas de Trabalho](../../1-getting-started-lessons/1-intro-to-programming-languages), orientará você sobre várias opções para cada uma dessas ferramentas, para que você selecione o que funciona melhor para você.
Nossa recomendação é usar o [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) como seu editor, que também possui um [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) integrado. Você pode baixar o Visual Studio Code [aqui](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Nossa recomendação é usar [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) como seu editor, que também possui um [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) integrado. Você pode baixar o Visual Studio Code [aqui](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Clone seu repositório para o seu computador. Você pode fazer isso clicando no botão **Code** e copiando a URL:
1. Clone seu repositório para seu computador. Você pode fazer isso clicando no botão **Code** e copiando a URL:
[!CodeSpace](./images/createcodespace.png)
[CodeSpace](./images/createcodespace.png)
Em seguida, abra o [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) dentro do [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) e execute o seguinte comando, substituindo `<your-repository-url>` pela URL que você acabou de copiar:
Em seguida, abra o [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) dentro do [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) e execute o seguinte comando, substituindo `<your-repository-url>` pela URL que você acabou de copiar:
```bash
git clone <your-repository-url>
```
```
2. Abra a pasta no Visual Studio Code. Você pode fazer isso clicando em **File**
> **Abrir Pasta** e selecionar a pasta que você acabou de clonar.
> Extensões recomendadas para o Visual Studio Code:
2. Abra a pasta no Visual Studio Code. Você pode fazer isso clicando em **File** > **Open Folder** e selecionando a pasta que você acabou de clonar.
> Extensões recomendadas para Visual Studio Code:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - para visualizar páginas HTML diretamente no Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - para ajudar você a escrever código mais rapidamente
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - para visualizar páginas HTML dentro do Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - para ajudar você a escrever código mais rápido
## 📂 Cada aula inclui:
## 📂 Cada lição inclui:
- sketchnote opcional
- vídeo suplementar opcional
- quiz de aquecimento antes da aula
- aula escrita
- para aulas baseadas em projetos, guias passo a passo sobre como construir o projeto
- verificação de conhecimento
- quiz de aquecimento pré-aula
- lição escrita
- para lições baseadas em projetos, guias passo a passo sobre como construir o projeto
- verificações de conhecimento
- um desafio
- leitura suplementar
- tarefa
- [quiz pós-aula](https://ff-quizzes.netlify.app/web/)
> **Uma nota sobre os quizzes**: Todos os quizzes estão contidos na pasta Quiz-app, totalizando 48 quizzes com três perguntas cada. Eles estão disponíveis [aqui](https://ff-quizzes.netlify.app/web/) e podem ser executados localmente ou implantados no Azure; siga as instruções na pasta `quiz-app`.
> **Uma observação sobre os quizzes**: Todos os quizzes estão contidos na pasta Quiz-app, totalizando 48 quizzes com três perguntas cada. Eles estão disponíveis [aqui](https://ff-quizzes.netlify.app/web/). O aplicativo de quiz pode ser executado localmente ou implantado no Azure; siga as instruções na pasta `quiz-app`.
## 🗃️ Aulas
| | Nome do Projeto | Conceitos Ensinados | Objetivos de Aprendizagem | Aula Vinculada | Autor |
| :-: | :---------------------------------------------------------: | :-----------------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------: | :--------------------: |
| 01 | Primeiros Passos | Introdução à Programação e Ferramentas de Trabalho | Aprenda os fundamentos básicos por trás da maioria das linguagens de programação e sobre softwares que ajudam desenvolvedores | [Introdução às Linguagens de Programação e Ferramentas de Trabalho](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Primeiros Passos | Noções Básicas do GitHub, incluindo trabalho em equipe | Como usar o GitHub em seu projeto e colaborar com outros em um código base | [Introdução ao GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Primeiros Passos | Acessibilidade | Aprenda os fundamentos de acessibilidade na web | [Fundamentos de Acessibilidade](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Fundamentos JS | Tipos de Dados em JavaScript | Os fundamentos dos tipos de dados em JavaScript | [Tipos de Dados](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Fundamentos JS | Funções e Métodos | Aprenda sobre funções e métodos para gerenciar o fluxo lógico de uma aplicação | [Funções e Métodos](./2-js-basics/2-functions-methods/README.md) | Jasmine e Christopher |
| 06 | Fundamentos JS | Tomando Decisões com JS | Aprenda como criar condições no seu código usando métodos de tomada de decisão | [Tomando Decisões](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Fundamentos JS | Arrays e Loops | Trabalhe com dados usando arrays e loops em JavaScript | [Arrays e Loops](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrário](./3-terrarium/solution/README.md) | HTML na Prática | Construa o HTML para criar um terrário online, focando na construção de um layout | [Introdução ao HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrário](./3-terrarium/solution/README.md) | CSS na Prática | Construa o CSS para estilizar o terrário online, focando nos fundamentos do CSS, incluindo tornar a página responsiva | [Introdução ao CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrário](./3-terrarium/solution/README.md) | Closures em JavaScript, manipulação do DOM | Construa o JavaScript para fazer o terrário funcionar como uma interface de arrastar/soltar, focando em closures e manipulação do DOM | [Closures em JavaScript, manipulação do DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Jogo de Digitação](./4-typing-game/solution/README.md) | Construa um Jogo de Digitação | Aprenda como usar eventos de teclado para conduzir a lógica do seu aplicativo JavaScript | [Programação Orientada a Eventos](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Extensão Verde para Navegador](./5-browser-extension/solution/README.md) | Trabalhando com Navegadores | Aprenda como os navegadores funcionam, sua história e como estruturar os primeiros elementos de uma extensão para navegador | [Sobre Navegadores](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Extensão Verde para Navegador](./5-browser-extension/solution/README.md) | Construindo um formulário, chamando uma API e armazenando variáveis no armazenamento local | Construa os elementos JavaScript da sua extensão para navegador para chamar uma API usando variáveis armazenadas no armazenamento local | [APIs, Formulários e Armazenamento Local](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Extensão Verde para Navegador](./5-browser-extension/solution/README.md) | Processos em segundo plano no navegador, desempenho na web | Use os processos em segundo plano do navegador para gerenciar o ícone da extensão; aprenda sobre desempenho na web e algumas otimizações | [Tarefas em Segundo Plano e Desempenho](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Jogo Espacial](./6-space-game/solution/README.md) | Desenvolvimento de Jogos Mais Avançado com JavaScript | Aprenda sobre Herança usando Classes e Composição e o padrão Pub/Sub, em preparação para construir um jogo | [Introdução ao Desenvolvimento Avançado de Jogos](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Jogo Espacial](./6-space-game/solution/README.md) | Desenhando no Canvas | Aprenda sobre a API Canvas, usada para desenhar elementos na tela | [Desenhando no Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Jogo Espacial](./6-space-game/solution/README.md) | Movendo elementos pela tela | Descubra como os elementos podem ganhar movimento usando coordenadas cartesianas e a API Canvas | [Movendo Elementos pela Tela](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Jogo Espacial](./6-space-game/solution/README.md) | Detecção de Colisões | Faça os elementos colidirem e reagirem uns aos outros usando teclas pressionadas e forneça uma função de cooldown para garantir o desempenho do jogo | [Detecção de Colisões](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Jogo Espacial](./6-space-game/solution/README.md) | Mantendo a Pontuação | Realize cálculos matemáticos com base no status e desempenho do jogo | [Mantendo a Pontuação](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Jogo Espacial](./6-space-game/solution/README.md) | Finalizando e Reiniciando o Jogo | Aprenda sobre como finalizar e reiniciar o jogo, incluindo limpar ativos e redefinir valores de variáveis | [Condição de Finalização](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [App Bancário](./7-bank-project/solution/README.md) | Templates HTML e Rotas em um App Web | Aprenda como criar a estrutura de arquitetura de um site multipágina usando rotas e templates HTML | [Templates HTML e Rotas](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [App Bancário](./7-bank-project/solution/README.md) | Construindo um Formulário de Login e Registro | Aprenda sobre como construir formulários e lidar com rotinas de validação | [Formulários](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [App Bancário](./7-bank-project/solution/README.md) | Métodos de Busca e Uso de Dados | Como os dados fluem dentro e fora do seu aplicativo, como buscá-los, armazená-los e descartá-los | [Dados](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [App Bancário](./7-bank-project/solution/README.md) | Conceitos de Gerenciamento de Estado | Aprenda como seu aplicativo mantém o estado e como gerenciá-lo programaticamente | [Gerenciamento de Estado](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Editor de Código no Navegador/VScode](../../8-code-editor) | Trabalhando com VScode | Aprenda como usar um editor de código | [Usando o Editor de Código VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [Assistentes de IA](./9-chat-project/README.md) | Trabalhando com IA | Aprenda como construir seu próprio assistente de IA | [Projeto de Assistente de IA](./9-chat-project/README.md) | Chris |
| | Nome do Projeto | Conceitos Ensinados | Objetivos de Aprendizagem | Aula Vinculada | Autor |
| :-: | :----------------------------------------------------------: | :------------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------: | :--------------------: |
| 01 | Primeiros Passos | Introdução à Programação e Ferramentas de Trabalho | Aprenda os fundamentos básicos por trás da maioria das linguagens de programação e sobre softwares que ajudam desenvolvedores | [Introdução às Linguagens de Programação e Ferramentas de Trabalho](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Primeiros Passos | Noções Básicas do GitHub, incluindo trabalho em equipe | Como usar o GitHub em seu projeto e colaborar com outros em uma base de código | [Introdução ao GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Primeiros Passos | Acessibilidade | Aprenda os fundamentos da acessibilidade na web | [Fundamentos de Acessibilidade](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Fundamentos de JS | Tipos de Dados em JavaScript | Os fundamentos dos tipos de dados em JavaScript | [Tipos de Dados](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Fundamentos de JS | Funções e Métodos | Aprenda sobre funções e métodos para gerenciar o fluxo lógico de uma aplicação | [Funções e Métodos](./2-js-basics/2-functions-methods/README.md) | Jasmine e Christopher |
| 06 | Fundamentos de JS | Tomando Decisões com JS | Aprenda a criar condições no seu código usando métodos de tomada de decisão | [Tomando Decisões](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Fundamentos de JS | Arrays e Loops | Trabalhe com dados usando arrays e loops em JavaScript | [Arrays e Loops](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrário](./3-terrarium/solution/README.md) | HTML na Prática | Construa o HTML para criar um terrário online, focando na construção de um layout | [Introdução ao HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrário](./3-terrarium/solution/README.md) | CSS na Prática | Construa o CSS para estilizar o terrário online, focando nos fundamentos do CSS, incluindo tornar a página responsiva | [Introdução ao CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrário](./3-terrarium/solution/README.md) | Closures em JavaScript, manipulação do DOM | Construa o JavaScript para fazer o terrário funcionar como uma interface de arrastar/soltar, focando em closures e manipulação do DOM | [Closures em JavaScript, manipulação do DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Jogo de Digitação](./4-typing-game/solution/README.md) | Construa um Jogo de Digitação | Aprenda a usar eventos de teclado para conduzir a lógica do seu aplicativo JavaScript | [Programação Orientada a Eventos](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Extensão Verde para Navegadores](./5-browser-extension/solution/README.md) | Trabalhando com Navegadores | Aprenda como os navegadores funcionam, sua história e como estruturar os primeiros elementos de uma extensão de navegador | [Sobre Navegadores](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Extensão Verde para Navegadores](./5-browser-extension/solution/README.md) | Construindo um formulário, chamando uma API e armazenando variáveis no local storage | Construa os elementos JavaScript da sua extensão de navegador para chamar uma API usando variáveis armazenadas no local storage | [APIs, Formulários e Local Storage](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Extensão Verde para Navegadores](./5-browser-extension/solution/README.md) | Processos em segundo plano no navegador, desempenho na web | Use os processos em segundo plano do navegador para gerenciar o ícone da extensão; aprenda sobre desempenho na web e algumas otimizações | [Tarefas em Segundo Plano e Desempenho](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Jogo Espacial](./6-space-game/solution/README.md) | Desenvolvimento de Jogos mais Avançado com JavaScript | Aprenda sobre Herança usando Classes e Composição e o padrão Pub/Sub, em preparação para construir um jogo | [Introdução ao Desenvolvimento de Jogos Avançado](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Jogo Espacial](./6-space-game/solution/README.md) | Desenhando no Canvas | Aprenda sobre a API Canvas, usada para desenhar elementos na tela | [Desenhando no Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Jogo Espacial](./6-space-game/solution/README.md) | Movendo elementos pela tela | Descubra como os elementos podem ganhar movimento usando coordenadas cartesianas e a API Canvas | [Movendo Elementos pela Tela](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Jogo Espacial](./6-space-game/solution/README.md) | Detecção de Colisões | Faça os elementos colidirem e reagirem uns aos outros usando teclas pressionadas e forneça uma função de cooldown para garantir o desempenho do jogo | [Detecção de Colisões](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Jogo Espacial](./6-space-game/solution/README.md) | Mantendo a Pontuação | Realize cálculos matemáticos com base no status e desempenho do jogo | [Mantendo a Pontuação](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Jogo Espacial](./6-space-game/solution/README.md) | Finalizando e Reiniciando o Jogo | Aprenda sobre como finalizar e reiniciar o jogo, incluindo limpar ativos e redefinir valores de variáveis | [Condição de Finalização](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Aplicativo Bancário](./7-bank-project/solution/README.md) | Templates HTML e Rotas em um Aplicativo Web | Aprenda a criar a estrutura de arquitetura de um site multipágina usando rotas e templates HTML | [Templates HTML e Rotas](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Aplicativo Bancário](./7-bank-project/solution/README.md) | Construindo um Formulário de Login e Registro | Aprenda sobre como construir formulários e lidar com rotinas de validação | [Formulários](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Aplicativo Bancário](./7-bank-project/solution/README.md) | Métodos de Busca e Uso de Dados | Como os dados fluem para dentro e fora do seu aplicativo, como buscá-los, armazená-los e descartá-los | [Dados](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Aplicativo Bancário](./7-bank-project/solution/README.md) | Conceitos de Gerenciamento de Estado | Aprenda como seu aplicativo mantém o estado e como gerenciá-lo programaticamente | [Gerenciamento de Estado](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Editor de Código Browser/VScode](../../8-code-editor) | Trabalhando com VScode | Aprenda a usar um editor de código | [Usando o Editor de Código VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [Assistentes de IA](./9-chat-project/README.md) | Trabalhando com IA | Aprenda a construir seu próprio assistente de IA | [Projeto de Assistente de IA](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogia
Nosso currículo foi projetado com dois princípios pedagógicos principais em mente:
Nosso currículo foi projetado com dois princípios pedagógicos fundamentais em mente:
* aprendizado baseado em projetos
* quizzes frequentes
O programa ensina os fundamentos de JavaScript, HTML e CSS, bem como as ferramentas e técnicas mais recentes usadas pelos desenvolvedores web de hoje. Os alunos terão a oportunidade de desenvolver experiência prática ao construir um jogo de digitação, um terrário virtual, uma extensão de navegador ecológica, um jogo estilo "space invader" e um aplicativo bancário para empresas. Ao final da série, os alunos terão adquirido uma compreensão sólida sobre desenvolvimento web.
O programa ensina os fundamentos de JavaScript, HTML e CSS, bem como as ferramentas e técnicas mais recentes usadas pelos desenvolvedores web de hoje. Os alunos terão a oportunidade de desenvolver experiência prática construindo um jogo de digitação, um terrário virtual, uma extensão de navegador ecológica, um jogo estilo "space invader" e um aplicativo bancário para empresas. Ao final da série, os alunos terão adquirido uma compreensão sólida do desenvolvimento web.
> 🎓 Você pode fazer as primeiras aulas deste currículo como um [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) no Microsoft Learn!
> 🎓 Você pode fazer as primeiras aulas deste currículo como um [Caminho de Aprendizagem](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) no Microsoft Learn!
Ao garantir que o conteúdo esteja alinhado com os projetos, o processo se torna mais envolvente para os alunos e a retenção dos conceitos será aumentada. Também escrevemos várias aulas introdutórias sobre os fundamentos de JavaScript para apresentar conceitos, acompanhadas de um vídeo da coleção "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", cujos autores contribuíram para este currículo.
Ao garantir que o conteúdo esteja alinhado com os projetos, o processo se torna mais envolvente para os alunos e a retenção dos conceitos será aumentada. Também escrevemos várias aulas introdutórias sobre os fundamentos de JavaScript para apresentar conceitos, acompanhadas de um vídeo da coleção "[Série para Iniciantes: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" de tutoriais em vídeo, alguns dos quais foram contribuídos pelos autores deste currículo.
Além disso, um quiz de baixa pressão antes da aula define a intenção do aluno em aprender um tópico, enquanto um segundo quiz após a aula garante maior retenção. Este currículo foi projetado para ser flexível e divertido e pode ser feito em sua totalidade ou em partes. Os projetos começam pequenos e se tornam cada vez mais complexos ao final do ciclo de 12 semanas.
Além disso, um quiz de baixa pressão antes da aula define a intenção do aluno em aprender um tópico, enquanto um segundo quiz após a aula garante maior retenção. Este currículo foi projetado para ser flexível e divertido e pode ser realizado em sua totalidade ou em partes. Os projetos começam pequenos e se tornam cada vez mais complexos ao final do ciclo de 12 semanas.
Embora tenhamos evitado intencionalmente introduzir frameworks JavaScript para nos concentrar nas habilidades básicas necessárias como desenvolvedor web antes de adotar um framework, um bom próximo passo após concluir este currículo seria aprender sobre Node.js por meio de outra coleção de vídeos: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
Embora tenhamos evitado intencionalmente introduzir frameworks JavaScript para nos concentrar nas habilidades básicas necessárias como desenvolvedor web antes de adotar um framework, um bom próximo passo após concluir este currículo seria aprender sobre Node.js por meio de outra coleção de vídeos: "[Série para Iniciantes: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Visite nosso [Código de Conduta](CODE_OF_CONDUCT.md) e diretrizes de [Contribuição](CONTRIBUTING.md). Agradecemos seu feedback construtivo!
@ -200,19 +199,29 @@ Nossa equipe produz outros cursos! Confira:
- [IA Generativa com JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [IA Generativa com Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [IA para Iniciantes](https://aka.ms/ai-beginners)
- [Ciência de Dados para Iniciantes](https://aka.ms/datascience-beginners)
- [ML para Iniciantes](https://aka.ms/ml-beginners)
- [Cibersegurança para Iniciantes](https://github.com/microsoft/Security-101)
- [Desenvolvimento Web para Iniciantes](https://aka.ms/webdev-beginners)
- [IoT para Iniciantes](https://aka.ms/iot-beginners)
- [Desenvolvimento XR para Iniciantes](https://github.com/microsoft/xr-development-for-beginners)
- [Dominando o GitHub Copilot para Uso Agente](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Dominando o GitHub Copilot para Desenvolvedores C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Escolha Sua Própria Aventura com o Copilot](https://github.com/microsoft/CopilotAdventures)
## Licença
Este repositório está licenciado sob a licença MIT. Consulte o arquivo [LICENSE](../../LICENSE) para mais informações.
- [Ciência de Dados para Iniciantes](https://aka.ms/datascience-beginners)
- [ML para Iniciantes](https://aka.ms/ml-beginners)
- [Cibersegurança para Iniciantes](https://github.com/microsoft/Security-101)
- [Desenvolvimento Web para Iniciantes](https://aka.ms/webdev-beginners)
- [IoT para Iniciantes](https://aka.ms/iot-beginners)
- [Desenvolvimento XR para Iniciantes](https://github.com/microsoft/xr-development-for-beginners)
- [Dominando o GitHub Copilot para Uso Agente](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Dominando o GitHub Copilot para Desenvolvedores C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Escolha Sua Própria Aventura com Copilot](https://github.com/microsoft/CopilotAdventures)
## Obtendo Ajuda
Se você ficar com dúvidas ou tiver perguntas sobre como criar aplicativos de IA, participe:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
Se você tiver feedback sobre o produto ou encontrar erros durante o desenvolvimento, visite:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Licença
Este repositório está licenciado sob a licença MIT. Consulte o arquivo [LICENSE](../../LICENSE) para mais informações.
---

@ -1,45 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-25T20:57:12+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T09:32:21+00:00",
"source_file": "for-teachers.md",
"language_code": "br"
}
-->
## Para Educadores
### Para Educadores
Gostaria de usar este currículo em sua sala de aula? Fique à vontade!
Você está convidado a usar este currículo em sua sala de aula. Ele funciona perfeitamente com o GitHub Classroom e as principais plataformas LMS, e também pode ser usado como um repositório independente com seus alunos.
Na verdade, você pode utilizá-lo diretamente no GitHub, usando o GitHub Classroom.
### Uso com GitHub Classroom
Para isso, faça um fork deste repositório. Você precisará criar um repositório para cada aula, então será necessário extrair cada pasta em um repositório separado. Dessa forma, [GitHub Classroom](https://classroom.github.com/classrooms) poderá identificar cada aula individualmente.
Para gerenciar aulas e tarefas por turma, crie um repositório por aula para que o GitHub Classroom possa vincular cada tarefa de forma independente.
Estas [instruções completas](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) vão te ajudar a configurar sua sala de aula.
- Faça um fork deste repositório para sua organização.
- Crie um repositório separado para cada aula, extraindo cada pasta de aula para seu próprio repositório.
- Opção A: Crie repositórios vazios (um por aula) e copie o conteúdo da pasta de aula para cada um.
- Opção B: Use uma abordagem que preserve o histórico do Git (por exemplo, divida uma pasta em um novo repositório) se precisar de proveniência.
- No GitHub Classroom, crie uma tarefa por aula e aponte para o repositório correspondente.
- Configurações recomendadas:
- Visibilidade do repositório: privada para o trabalho dos alunos.
- Use o código inicial do branch padrão do repositório da aula.
- Adicione templates de issues e pull requests para quizzes e submissões.
- Opcionalmente, configure autograding e testes se suas aulas incluírem esses recursos.
- Convenções que ajudam:
- Nomes de repositórios como lesson-01-intro, lesson-02-html, etc.
- Labels: quiz, assignment, needs-review, late, resubmission.
- Tags/releases por turma (por exemplo, v2025-term1).
## Usando no Moodle, Canvas ou Blackboard
Dica: Evite armazenar repositórios dentro de pastas sincronizadas (por exemplo, OneDrive/Google Drive) para prevenir conflitos do Git no Windows.
Este currículo funciona bem nesses Sistemas de Gerenciamento de Aprendizagem! Use o [arquivo de upload do Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) para o conteúdo completo ou experimente o [arquivo Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc), que contém parte do conteúdo. O Moodle Cloud não suporta exportações completas de Common Cartridge, então é preferível usar o arquivo de download do Moodle, que pode ser carregado no Canvas. Por favor, nos informe como podemos melhorar essa experiência.
### Uso com Moodle, Canvas ou Blackboard
Este currículo inclui pacotes importáveis para fluxos de trabalho comuns em LMS.
- Moodle: Use o arquivo de upload do Moodle [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) para carregar o curso completo.
- Common Cartridge: Use o arquivo Common Cartridge [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) para maior compatibilidade com LMS.
- Observações:
- O Moodle Cloud tem suporte limitado para Common Cartridge. Prefira o arquivo do Moodle acima, que também pode ser carregado no Canvas.
- Após a importação, revise os módulos, datas de entrega e configurações de quizzes para ajustar ao cronograma do seu período.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.br.png)
> O currículo em uma sala de aula no Moodle
> O currículo em uma sala de aula do Moodle
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.br.png)
> O currículo no Canvas
## Usando o repositório como está
### Uso do repositório diretamente (sem Classroom)
Se preferir não usar o GitHub Classroom, você pode executar o curso diretamente deste repositório.
Se você preferir usar este repositório no formato atual, sem utilizar o GitHub Classroom, isso também é possível. Você precisará comunicar aos seus alunos qual aula trabalhar juntos.
- Formatos síncronos/online (Zoom/Teams):
- Realize aquecimentos curtos liderados por mentores; use salas de grupo para quizzes.
- Anuncie um período de tempo para quizzes; os alunos enviam respostas como Issues no GitHub.
- Para tarefas colaborativas, os alunos trabalham em repositórios públicos das aulas e abrem pull requests.
- Formatos privados/assíncronos:
- Os alunos fazem fork de cada aula para seus próprios repositórios **privados** e adicionam você como colaborador.
- Eles enviam via Issues (quizzes) e Pull Requests (tarefas) no repositório da sua sala de aula ou em seus forks privados.
Em um formato online (Zoom, Teams ou outro), você pode formar salas de discussão para os questionários e orientar os alunos para ajudá-los a se preparar para aprender. Depois, convide os alunos para os questionários e peça que enviem suas respostas como 'issues' em um horário determinado. Você pode fazer o mesmo com as tarefas, caso queira que os alunos trabalhem colaborativamente de forma aberta.
### Melhores práticas
Se preferir um formato mais privado, peça aos seus alunos para fazerem fork do currículo, aula por aula, para seus próprios repositórios privados no GitHub e concederem acesso a você. Assim, eles podem completar os questionários e tarefas de forma privada e enviá-los para você via issues no repositório da sua sala de aula.
- Ofereça uma aula de orientação sobre Git/GitHub, Issues e PRs.
- Use checklists em Issues para quizzes/tarefas com várias etapas.
- Adicione CONTRIBUTING.md e CODE_OF_CONDUCT.md para estabelecer normas na sala de aula.
- Inclua notas de acessibilidade (texto alternativo, legendas) e ofereça PDFs imprimíveis.
- Versione seu conteúdo por período e congele os repositórios das aulas após a publicação.
Existem várias maneiras de fazer isso funcionar em um formato de sala de aula online. Por favor, nos informe o que funciona melhor para você!
### Feedback e suporte
## Por favor, compartilhe suas opiniões!
Queremos que este currículo funcione para você e seus alunos. Por favor, abra uma nova Issue neste repositório para relatar bugs, fazer solicitações ou sugerir melhorias, ou inicie uma discussão no Teacher Corner.
Queremos que este currículo funcione para você e seus alunos. Conecte-se conosco no [Teacher corner](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) e abra uma [**nova issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) para quaisquer solicitações, bugs ou feedback.
---
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.

@ -1,50 +1,50 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T10:59:23+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T10:37:07+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "cs"
}
-->
# Úvod do programovacích jazyků a nástrojů
Tato lekce pokrývá základy programovacích jazyků. Témata zde uvedená platí pro většinu moderních programovacích jazyků. V části „Nástroje“ se naučíte o užitečném softwaru, který vám jako vývojáři pomůže.
Tato lekce se zabývá základy programovacích jazyků. Témata zde uvedená platí pro většinu moderních programovacích jazyků. V části „Nástroje“ se naučíte o užitečném softwaru, který vám jako vývojáři pomůže.
![Úvod do programování](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.cs.png)
![Úvod do programování](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.cs.png)
> Sketchnote od [Tomomi Imura](https://twitter.com/girlie_mac)
## Kvíz před lekcí
## Kvíz před lekcí
[Kvíz před lekcí](https://forms.office.com/r/dru4TE0U9n?origin=lprLink)
## Úvod
V této lekci se budeme zabývat:
- Co je programování?
- Typy programovacích jazyků
- Základní prvky programu
- Užitečný software a nástroje pro profesionální vývojáře
- Co je programování?
- Typy programovacích jazyků
- Základní prvky programu
- Užitečný software a nástroje pro profesionálního vývojáře
> Tuto lekci si můžete projít na [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
## Co je programování?
Programování (také známé jako kódování) je proces psaní instrukcí pro zařízení, jako je počítač nebo mobilní zařízení. Tyto instrukce píšeme pomocí programovacího jazyka, který zařízení následně interpretuje. Tyto sady instrukcí mohou být označovány různými názvy, například *program*, *počítačový program*, *aplikace (app)* nebo *spustitelný soubor*.
Programování (také známé jako kódování) je proces psaní instrukcí pro zařízení, jako je počítač nebo mobilní zařízení. Tyto instrukce píšeme pomocí programovacího jazyka, který je následně interpretován zařízením. Tyto sady instrukcí mohou být označovány různými názvy, například *program*, *počítačový program*, *aplikace (app)* nebo *spustitelný soubor*.
*Program* může být cokoliv, co je napsáno pomocí kódu; webové stránky, hry a mobilní aplikace jsou programy. I když je možné vytvořit program bez psaní kódu, základní logika je interpretována zařízením a tato logika byla s největší pravděpodobností napsána pomocí kódu. Program, který *běží* nebo *provádí* kód, vykonává instrukce. Zařízení, na kterém čtete tuto lekci, právě spouští program, aby ji zobrazilo na vaší obrazovce.
*Program* může být cokoli, co je napsáno pomocí kódu; webové stránky, hry a mobilní aplikace jsou programy. I když je možné vytvořit program bez psaní kódu, základní logika je interpretována zařízením a tato logika byla pravděpodobně napsána pomocí kódu. Program, který *běží* nebo *provádí* kód, vykonává instrukce. Zařízení, na kterém čtete tuto lekci, právě běží program, který ji zobrazuje na vašem displeji.
✅ Udělejte si malý průzkum: Kdo je považován za prvního programátora na světě?
✅ Udělejte si malý průzkum: kdo je považován za prvního počítačového programátora na světě?
## Programovací jazyky
Programovací jazyky umožňují vývojářům psát instrukce pro zařízení. Zařízení rozumí pouze binárnímu kódu (1 a 0), což však pro *většinu* vývojářů není příliš efektivní způsob komunikace. Programovací jazyky slouží jako prostředník mezi lidmi a počítači.
Programovací jazyky umožňují vývojářům psát instrukce pro zařízení. Zařízení rozumí pouze binárnímu kódu (1 a 0), což pro *většinu* vývojářů není příliš efektivní způsob komunikace. Programovací jazyky jsou prostředkem komunikace mezi lidmi a počítači.
Programovací jazyky mají různé formáty a mohou sloužit různým účelům. Například JavaScript se primárně používá pro webové aplikace, zatímco Bash se používá hlavně pro operační systémy.
Programovací jazyky mají různé formáty a mohou sloužit různým účelům. Například JavaScript se primárně používá pro webové aplikace, zatímco Bash se primárně používá pro operační systémy.
*Nízké úrovně jazyků* obvykle vyžadují méně kroků, aby zařízení interpretovalo instrukce, než *vysoké úrovně jazyků*. Co však činí vysoké úrovně jazyků populárními, je jejich čitelnost a podpora. JavaScript je považován za jazyk vysoké úrovně.
*Nízké úrovně jazyků* obvykle vyžadují méně kroků než *vysoké úrovně jazyků* pro interpretaci instrukcí zařízením. Co však činí jazyky vysoké úrovně populárními, je jejich čitelnost a podpora. JavaScript je považován za jazyk vysoké úrovně.
Následující kód ilustruje rozdíl mezi jazykem vysoké úrovně (JavaScript) a jazykem nízké úrovně (ARM assembly).
Následující kód ilustruje rozdíl mezi jazykem vysoké úrovně (JavaScript) a jazykem nízké úrovně (ARM assembly code).
```javascript
let number = 10
@ -89,11 +89,11 @@ Věřte nebo ne, *oba dělají totéž*: tisknou Fibonacciho posloupnost až do
## Prvky programu
Jednotlivá instrukce v programu se nazývá *příkaz* a obvykle má znak nebo mezeru, která označuje, kde příkaz končí, nebo *končí*. Způsob, jakým program končí, se liší podle jazyka.
Jedna instrukce v programu se nazývá *příkaz* a obvykle má znak nebo mezeru, která označuje, kde instrukce končí, nebo *terminuje*. Způsob, jakým program terminuje, se liší podle jazyka.
Příkazy v programu mohou záviset na datech poskytnutých uživatelem nebo jiným zdrojem, aby mohly vykonat instrukce. Data mohou změnit chování programu, a proto programovací jazyky obsahují způsob, jak dočasně ukládat data, aby mohla být použita později. Tyto se nazývají *proměnné*. Proměnné jsou příkazy, které zařízení instruují, aby uložilo data do své paměti. Proměnné v programech jsou podobné proměnným v algebře, kde mají jedinečný název a jejich hodnota se může časem měnit.
Příkazy v programu mohou záviset na datech poskytnutých uživatelem nebo jiným zdrojem, aby mohly vykonávat instrukce. Data mohou změnit chování programu, takže programovací jazyky obsahují způsob, jak data dočasně uložit, aby je bylo možné později použít. Tyto se nazývají *proměnné*. Proměnné jsou příkazy, které instruují zařízení, aby uložilo data do své paměti. Proměnné v programech jsou podobné proměnným v algebře, kde mají jedinečný název a jejich hodnota se může časem měnit.
Existuje možnost, že některé příkazy nebudou zařízením vykonány. To je obvykle záměrně napsáno vývojářem nebo náhodou, když dojde k neočekávané chybě. Tento typ kontroly nad aplikací ji činí robustnější a udržovatelnější. Tyto změny v řízení obvykle nastávají, když jsou splněny určité podmínky. Běžným příkazem používaným v moderním programování k řízení běhu programu je příkaz `if..else`.
Existuje možnost, že některé příkazy nebudou zařízením vykonány. To je obvykle záměrné, když je napsáno vývojářem, nebo náhodné, když dojde k neočekávané chybě. Tento typ kontroly nad aplikací ji činí robustnější a udržovatelnější. Typicky k těmto změnám v kontrole dochází, když jsou splněny určité podmínky. Běžný příkaz používaný v moderním programování k řízení toho, jak program běží, je příkaz `if..else`.
✅ O tomto typu příkazu se dozvíte více v následujících lekcích.
@ -103,95 +103,96 @@ Existuje možnost, že některé příkazy nebudou zařízením vykonány. To je
> 🎥 Klikněte na obrázek výše pro video o nástrojích
V této části se dozvíte o některém softwaru, který byste mohli považovat za velmi užitečný na začátku své profesionální vývojářské cesty.
V této části se dozvíte o některém softwaru, který může být velmi užitečný, když začínáte svou profesionální vývojářskou cestu.
**Vývojové prostředí** je jedinečná sada nástrojů a funkcí, které vývojář často používá při psaní softwaru. Některé z těchto nástrojů byly přizpůsobeny specifickým potřebám vývojáře a mohou se časem měnit, pokud vývojář změní priority v práci, osobních projektech nebo při používání jiného programovacího jazyka. Vývojová prostředí jsou stejně jedinečná jako vývojáři, kteří je používají.
**Vývojové prostředí** je jedinečná sada nástrojů a funkcí, které vývojář často používá při psaní softwaru. Některé z těchto nástrojů byly přizpůsobeny specifickým potřebám vývojáře a mohou se časem měnit, pokud vývojář změní priority v práci, osobních projektech nebo při používání jiného programovacího jazyka. Vývojová prostředí jsou tak jedinečná jako vývojáři, kteří je používají.
### Editory
Jedním z nejdůležitějších nástrojů pro vývoj softwaru je editor. Editory jsou místem, kde píšete svůj kód a někdy i místem, kde jej spouštíte.
Jedním z nejdůležitějších nástrojů pro vývoj softwaru je editor. Editory jsou místem, kde píšete svůj kód a někdy i místem, kde svůj kód spouštíte.
Vývojáři spoléhají na editory z několika dalších důvodů:
Vývojáři se na editory spoléhají z několika dalších důvodů:
- *Ladění* pomáhá odhalit chyby a problémy tím, že prochází kód řádek po řádku. Některé editory mají schopnosti ladění; mohou být přizpůsobeny a přidány pro specifické programovací jazyky.
- *Zvýraznění syntaxe* přidává barvy a formátování textu do kódu, což usnadňuje jeho čtení. Většina editorů umožňuje přizpůsobené zvýraznění syntaxe.
- *Rozšíření a integrace* jsou specializované nástroje pro vývojáře, vytvořené vývojáři. Tyto nástroje nejsou součástí základního editoru. Například mnoho vývojářů dokumentuje svůj kód, aby vysvětlili, jak funguje. Mohou si nainstalovat rozšíření pro kontrolu pravopisu, které pomáhá najít překlepy v dokumentaci. Většina rozšíření je určena pro použití v konkrétním editoru a většina editorů umožňuje vyhledávání dostupných rozšíření.
- *Přizpůsobení* umožňuje vývojářům vytvořit jedinečné vývojové prostředí, které vyhovuje jejich potřebám. Většina editorů je extrémně přizpůsobitelná a může také umožnit vývojářům vytvářet vlastní rozšíření.
- *Ladění* pomáhá odhalit chyby a problémy tím, že prochází kód řádek po řádku. Některé editory mají schopnosti ladění; mohou být přizpůsobeny a přidány pro konkrétní programovací jazyky.
- *Zvýraznění syntaxe* přidává barvy a formátování textu do kódu, což usnadňuje jeho čtení. Většina editorů umožňuje přizpůsobené zvýraznění syntaxe.
- *Rozšíření a integrace* jsou specializované nástroje pro vývojáře, od vývojářů. Tyto nástroje nebyly součástí základního editoru. Například mnoho vývojářů dokumentuje svůj kód, aby vysvětlili, jak funguje. Mohou si nainstalovat rozšíření pro kontrolu pravopisu, které pomáhá najít překlepy v dokumentaci. Většina rozšíření je určena pro použití v konkrétním editoru a většina editorů obsahuje způsob, jak vyhledávat dostupná rozšíření.
- *Přizpůsobení* umožňuje vývojářům vytvořit jedinečné vývojové prostředí, které vyhovuje jejich potřebám. Většina editorů je extrémně přizpůsobitelná a může také umožnit vývojářům vytvářet vlastní rozšíření.
#### Populární editory a rozšíření pro webový vývoj
- [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
- [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
- [Atom](https://atom.io/)
- [spell-check](https://atom.io/packages/spell-check)
- [teletype](https://atom.io/packages/teletype)
- [atom-beautify](https://atom.io/packages/atom-beautify)
- [Sublimetext](https://www.sublimetext.com/)
- [emmet](https://emmet.io/)
- [SublimeLinter](http://www.sublimelinter.com/en/stable/)
- [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon)
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
- [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
- [Atom](https://atom.io/)
- [spell-check](https://atom.io/packages/spell-check)
- [teletype](https://atom.io/packages/teletype)
- [atom-beautify](https://atom.io/packages/atom-beautify)
- [Sublimetext](https://www.sublimetext.com/)
- [emmet](https://emmet.io/)
- [SublimeLinter](http://www.sublimelinter.com/en/stable/)
### Prohlížeče
Dalším klíčovým nástrojem je prohlížeč. Weboví vývojáři spoléhají na prohlížeč, aby viděli, jak jejich kód běží na webu. Prohlížeč se také používá k zobrazení vizuálních prvků webové stránky napsaných v editoru, jako je HTML.
Dalším klíčovým nástrojem je prohlížeč. Weboví vývojáři se spoléhají na prohlížeč, aby viděli, jak jejich kód běží na webu. Používá se také k zobrazení vizuálních prvků webové stránky, které jsou napsány v editoru, jako je HTML.
Mnoho prohlížečů obsahuje *nástroje pro vývojáře* (DevTools), které obsahují sadu užitečných funkcí a informací, jež pomáhají vývojářům shromažďovat a zachytávat důležité informace o jejich aplikaci. Například: Pokud má webová stránka chyby, je někdy užitečné vědět, kdy k nim došlo. DevTools v prohlížeči lze nakonfigurovat tak, aby tyto informace zachytily.
Mnoho prohlížečů obsahuje *nástroje pro vývojáře* (DevTools), které obsahují sadu užitečných funkcí a informací, které pomáhají vývojářům shromažďovat a zachytávat důležité informace o jejich aplikaci. Například: Pokud má webová stránka chyby, je někdy užitečné vědět, kdy k nim došlo. DevTools v prohlížeči lze nakonfigurovat tak, aby tyto informace zachytily.
#### Populární prohlížeče a DevTools
- [Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
- [Firefox](https://developer.mozilla.org/docs/Tools)
- [Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
- [Firefox](https://developer.mozilla.org/docs/Tools)
### Nástroje příkazového řádku
Někteří vývojáři preferují méně grafický pohled na své každodenní úkoly a spoléhají na příkazový řádek. Psaní kódu vyžaduje značné množství psaní a někteří vývojáři preferují nepřerušovat svůj tok na klávesnici. Používají klávesové zkratky pro přepínání mezi okny na ploše, práci na různých souborech a používání nástrojů. Většinu úkolů lze provést pomocí myši, ale jednou z výhod příkazového řádku je, že mnoho věcí lze provést bez nutnosti přepínání mezi myší a klávesnicí. Další výhodou příkazového řádku je, že je konfigurovatelný a můžete uložit vlastní konfiguraci, později ji změnit a importovat do jiných vývojových strojů. Protože vývojová prostředí jsou tak jedinečná pro každého vývojáře, někteří se příkazovému řádku vyhýbají, jiní na něm zcela spoléhají a někteří preferují kombinaci obojího.
Někteří vývojáři preferují méně grafický pohled na své každodenní úkoly a spoléhají na příkazový řádek, aby toho dosáhli. Psaní kódu vyžaduje značné množství psaní a někteří vývojáři preferují nepřerušovat svůj tok na klávesnici. Používají klávesové zkratky k přepínání mezi okny na ploše, práci na různých souborech a používání nástrojů. Většinu úkolů lze provést pomocí myši, ale jednou z výhod používání příkazového řádku je, že mnoho věcí lze provést pomocí nástrojů příkazového řádku bez nutnosti přepínání mezi myší a klávesnicí. Další výhodou příkazového řádku je, že je konfigurovatelný a můžete uložit vlastní konfiguraci, později ji změnit a importovat ji do jiných vývojových strojů. Protože vývojová prostředí jsou tak jedinečná pro každého vývojáře, někteří se příkazovému řádku vyhýbají, někteří na něm zcela spoléhají a někteří preferují kombinaci obou.
### Populární možnosti příkazového řádku
Možnosti příkazového řádku se liší podle operačního systému, který používáte.
*💻 = předinstalováno v operačním systému.*
*💻 = je předinstalováno v operačním systému.*
#### Windows
- [Powershell](https://docs.microsoft.com/powershell/scripting/overview?view=powershell-7/?WT.mc_id=academic-77807-sagibbon) 💻
- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (také známý jako CMD) 💻
- [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)
- [mintty](https://mintty.github.io/)
- [Powershell](https://docs.microsoft.com/powershell/scripting/overview?view=powershell-7/?WT.mc_id=academic-77807-sagibbon) 💻
- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (také známý jako CMD) 💻
- [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)
- [mintty](https://mintty.github.io/)
#### MacOS
- [Terminal](https://support.apple.com/guide/terminal/open-or-quit-terminal-apd5265185d-f365-44cb-8b09-71a064a42125/mac) 💻
- [iTerm](https://iterm2.com/)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
- [Terminal](https://support.apple.com/guide/terminal/open-or-quit-terminal-apd5265185d-f365-44cb-8b09-71a064a42125/mac) 💻
- [iTerm](https://iterm2.com/)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
#### Linux
- [Bash](https://www.gnu.org/software/bash/manual/html_node/index.html) 💻
- [KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
- [Bash](https://www.gnu.org/software/bash/manual/html_node/index.html) 💻
- [KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
#### Populární nástroje příkazového řádku
- [Git](https://git-scm.com/) (💻 na většině operačních systémů)
- [NPM](https://www.npmjs.com/)
- [Yarn](https://classic.yarnpkg.com/en/docs/cli/)
- [Git](https://git-scm.com/) (💻 na většině operačních systémů)
- [NPM](https://www.npmjs.com/)
- [Yarn](https://classic.yarnpkg.com/en/docs/cli/)
### Dokumentace
Když se vývojář chce naučit něco nového, pravděpodobně se obrátí na dokumentaci, aby se naučil, jak to používat. Vývojáři často spoléhají na dokumentaci, aby je provedla správným používáním nástrojů a jazyků, a také aby získali hlubší znalosti o tom, jak fungují.
Když se vývojář chce naučit něco nového, pravděpodobně se obrátí na dokumentaci, aby se naučil, jak to používat. Vývojáři se často spoléhají na dokumentaci, která je provede tím, jak správně používat nástroje a jazyky, a také jim poskytne hlubší znalosti o tom, jak fungují.
#### Populární dokumentace o webovém vývoji
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), od Mozilly, vydavatele prohlížeče [Firefox](https://www.mozilla.org/firefox/)
- [Frontend Masters](https://frontendmasters.com/learn/)
- [Web.dev](https://web.dev), od Googlu, vydavatele [Chrome](https://www.google.com/chrome/)
- [Microsoftova vlastní dokumentace pro vývojáře](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), pro [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), od Mozilly, vydavatelů prohlížeče [Firefox](https://www.mozilla.org/firefox/)
- [Frontend Masters](https://frontendmasters.com/learn/)
- [Web.dev](https://web.dev), od Googlu, vydavatelů prohlížeče [Chrome](https://www.google.com/chrome/)
- [Microsoftova vlastní dokumentace pro vývojáře](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), pro [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ Udělejte si průzkum: Nyní, když znáte základy prostředí webového vývojáře, porovnejte a kontrastujte jej s prostředím webového designéra.
✅ Udělejte si průzkum: Nyní, když znáte základy prostředí webového vývojáře, porovnejte a kontrastujte je s prostředím webového designéra.
---
@ -199,18 +200,20 @@ Když se vývojář chce naučit něco nového, pravděpodobně se obrátí na d
Porovnejte některé programovací jazyky. Jaké jsou některé jedinečné vlastnosti JavaScriptu oproti Javě? A co COBOL oproti Go?
## Kvíz po lekci
## Kvíz po lekci
[Kvíz po lekci](https://ff-quizzes.netlify.app/web/)
## Opakování a samostudium
## Přehled a samostudium
Prostudujte si různé jazyky dostupné programátorovi. Zkuste napsat jeden řádek v jednom jazyce a poté ho přepište do dvou dalších. Co jste se naučili?
Prostudujte si různé jazyky dostupné programátorům. Zkuste napsat jeden řádek v jednom jazyce a poté jej přepište do dvou dalších. Co jste se naučili?
## Úkol
## Zadání
[Čtení dokumentace](assignment.md)
[Čtení dokumentace](assignment.md)
> Poznámka: Při výběru nástrojů pro váš úkol nevybírejte editory, prohlížeče nebo nástroje příkazového řádku již uvedené výše.
---
**Upozornění**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o co největší přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.
**Prohlášení**:
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,25 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-28T04:31:44+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T10:37:56+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "cs"
}
-->
# Čtení dokumentace
## Pokyny
## Instrukce
Existuje mnoho nástrojů, které může webový vývojář potřebovat, a které jsou uvedeny v [MDN dokumentaci pro nástroje na straně klienta](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Vyberte **tři nástroje**, které **nejsou pokryty v této lekci** (s výjimkou [uveďte konkrétní nástroje nebo odkaz na obsah lekce]), vysvětlete **proč** by je webový vývojář použil, a najděte nástroj, který odpovídá každé kategorii. Pro každý z nich sdílejte odkaz na jeho oficiální dokumentaci (ne na příklad použitý na MDN).
Existuje mnoho nástrojů, které může webový vývojář potřebovat, a které jsou uvedeny na [MDN dokumentaci pro nástroje na straně klienta](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Vyberte 3 nástroje, které nebyly pokryty v lekci, vysvětlete, proč by je webový vývojář použil, a vyhledejte nástroj, který spadá do této kategorie, a sdílejte jeho dokumentaci. Nepoužívejte stejný příklad nástroje jako v MDN dokumentaci.
**Formát:**
- Název nástroje
- Proč by ho webový vývojář použil (2-3 věty)
- Odkaz na dokumentaci
**Délka:**
- Každé vysvětlení by mělo mít 2-3 věty.
## Hodnocení
Vynikající | Dostatečné | Potřebuje zlepšení
Vynikající | Přiměřené | Vyžaduje zlepšení
--- | --- | -- |
|Vysvětleno, proč by webový vývojář použil nástroj| Vysvětleno, jak, ale ne proč by vývojář použil nástroj| Nebylo zmíněno, jak nebo proč by vývojář použil nástroj |
Vysvětleno, proč by webový vývojář použil nástroj | Vysvětleno, jak, ale ne proč by vývojář použil nástroj | Neuvedeno, jak nebo proč by vývojář použil nástroj |
---
**Prohlášení**:
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro kritické informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-28T04:09:38+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T10:36:31+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "cs"
}
@ -11,15 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Pokyny
Představte si, že vytváříte nákupní košík. Napište dokumentaci o datových typech, které byste potřebovali k dokončení nákupního procesu. Jak jste dospěli ke svým rozhodnutím?
Představte si, že vytváříte nákupní košík. Napište dokumentaci k datovým typům, které byste potřebovali k dokončení nákupního procesu. U každého datového typu vysvětlete, jak a proč byste ho použili, a uveďte příklad. Šest datových typů v JavaScriptu je: String, Number, Boolean, Null, Undefined a Object.
## Hodnocení
Kritéria | Vynikající | Přiměřené | Potřebuje zlepšení
--- | --- | --- | --- |
||Šest datových typů je uvedeno a podrobně prozkoumáno, včetně jejich využití|Čtyři datové typy jsou prozkoumány|Dva datové typy jsou prozkoumány|
Datové typy | Všech šest datových typů je uvedeno, podrobně prozkoumáno a zdokumentováno s příklady | Čtyři datové typy jsou prozkoumány s určitým vysvětlením | Dva datové typy jsou prozkoumány s minimálním vysvětlením |
---
**Prohlášení**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
**Upozornění**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o co největší přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,25 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-28T04:15:14+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T10:38:15+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "cs"
}
-->
# Procvičte si HTML: Vytvořte návrh blogu
# HTML Praktické zadání: Vytvořte návrh blogu
## Instrukce
## Cíl
Představte si, že navrhujete nebo přepracováváte svůj osobní web. Vytvořte grafický návrh svého webu a poté napište HTML kód, který byste použili k vytvoření jednotlivých prvků webu. Můžete to udělat na papíře a naskenovat, nebo použít software dle vašeho výběru, jen se ujistěte, že HTML kód píšete ručně.
Navrhněte a ručně napište HTML strukturu pro úvodní stránku osobního blogu. Toto cvičení vám pomůže procvičit sémantické HTML, plánování rozvržení a organizaci kódu.
## Hodnocení
## Pokyny
| Kritéria | Vynikající | Dostatečné | Potřebuje zlepšení |
| -------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| | Návrh blogu je vizuálně zobrazen s alespoň 10 prvky HTML kódu | Návrh blogu je vizuálně zobrazen s přibližně 5 prvky HTML kódu | Návrh blogu je vizuálně zobrazen s maximálně 3 prvky HTML kódu |
1. **Navrhněte návrh svého blogu**
- Nakreslete vizuální návrh úvodní stránky svého blogu. Zahrňte klíčové sekce, jako jsou záhlaví, navigace, hlavní obsah, postranní panel a zápatí.
- Můžete použít papír a naskenovat svůj návrh, nebo použít digitální nástroje (např. Figma, Adobe XD, Canva nebo dokonce PowerPoint).
2. **Identifikujte HTML prvky**
- Seznamte se s HTML prvky, které plánujete použít pro každou sekci (např. `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>` atd.).
3. **Napište HTML kód**
- Ručně napište HTML pro svůj návrh. Zaměřte se na sémantickou strukturu a osvědčené postupy.
- Zahrňte alespoň 10 různých HTML prvků.
- Přidejte komentáře, které vysvětlí vaše volby a strukturu.
4. **Odevzdejte svou práci**
- Nahrajte svůj návrh/náčrt a svůj HTML soubor.
- Volitelně připojte krátkou reflexi (23 věty) o svých návrhových rozhodnutích.
## Hodnotící kritéria
| Kritérium | Vynikající | Přiměřené | Potřebuje zlepšení |
|------------------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Vizuální návrh | Jasný, detailní návrh s označenými sekcemi a promyšleným rozvržením | Základní návrh s některými označenými sekcemi | Minimální nebo nejasný návrh; chybí označení sekcí |
| HTML prvky | Používá 10+ sémantických HTML prvků; prokazuje pochopení struktury a osvědčených postupů | Používá 59 HTML prvků; částečně sémantická struktura | Používá méně než 5 prvků; chybí sémantická struktura |
| Kvalita kódu | Dobře organizovaný, čitelný kód s komentáři; dodržuje HTML standardy | Většinou organizovaný kód; málo komentářů | Neorganizovaný kód; chybí komentáře |
| Reflexe | Smysluplná reflexe o návrhových rozhodnutích a výzvách | Základní reflexe | Žádná reflexe nebo postrádá relevanci |
## Tipy
- Používejte sémantické HTML značky pro lepší přístupnost a SEO.
- Organizujte svůj kód pomocí odsazení a komentářů.
- Odkazujte na [MDN HTML Elements Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) pro inspiraci.
- Přemýšlejte o tom, jak by vaše rozvržení mohlo být rozšířeno nebo stylizováno v budoucích úkolech.
---
**Prohlášení**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). Ačkoli se snažíme o přesnost, mějte na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,25 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-28T04:17:48+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T10:38:04+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "cs"
}
-->
# Refaktorování CSS
# Úkol na refaktorizaci CSS
## Instrukce
## Cíl
Přepracujte vzhled terária pomocí Flexboxu nebo CSS Grid a pořiďte snímky obrazovky, abyste ukázali, že jste jej otestovali v několika prohlížečích. Možná bude nutné upravit značkování, takže vytvořte novou verzi aplikace s umístěným uměním pro váš refaktor. Nemusíte si dělat starosti s tím, aby byly prvky přetahovatelné; prozatím pouze refaktorujte HTML a CSS.
Refaktorujte projekt terária tak, aby používal **Flexbox** nebo **CSS Grid** pro rozvržení. Aktualizujte HTML a CSS podle potřeby, abyste dosáhli moderního, responzivního designu. Není nutné implementovat prvky, které lze přetahovat zaměřte se pouze na rozvržení a stylování.
## Hodnocení
## Pokyny
| Kritéria | Vynikající | Dostatečné | Vyžaduje zlepšení |
| -------- | --------------------------------------------------------------- | --------------------------- | ----------------------------------- |
| | Představte kompletně přepracované terárium pomocí Flexboxu nebo CSS Grid | Přepracujte několik prvků | Nepřepracujte terárium vůbec |
1. **Vytvořte novou verzi** aplikace terária. Aktualizujte značkování a CSS tak, aby používaly Flexbox nebo CSS Grid pro rozvržení.
2. **Zajistěte, aby umělecké prvky a ostatní komponenty byly na svém místě** stejně jako v původní verzi.
3. **Otestujte svůj design** alespoň ve dvou různých prohlížečích (např. Chrome, Firefox, Edge).
4. **Pořiďte snímky obrazovky** svého terária v každém prohlížeči, abyste prokázali kompatibilitu napříč prohlížeči.
5. **Odevzdejte** svůj aktualizovaný kód a snímky obrazovky.
## Hodnotící kritéria
| Kritérium | Vynikající | Přiměřené | Vyžaduje zlepšení |
|-------------|------------------------------------------------------------------------|--------------------------------------|----------------------------------------|
| Rozvržení | Plně refaktorováno pomocí Flexboxu nebo CSS Grid; vizuálně atraktivní a responzivní | Některé prvky refaktorovány; částečné použití Flexboxu nebo Gridu | Malé nebo žádné použití Flexboxu nebo Gridu; rozvržení nezměněno |
| Kompatibilita napříč prohlížeči | Poskytnuty snímky obrazovky pro více prohlížečů; konzistentní vzhled | Snímky obrazovky pro jeden prohlížeč; drobné nekonzistence | Žádné snímky obrazovky nebo výrazné nekonzistence |
| Kvalita kódu | Čistý, dobře organizovaný HTML/CSS; jasné komentáře | Nějaká organizace; málo komentářů | Neorganizovaný kód; chybí komentáře |
## Tipy
- Projděte si průvodce [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) a [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/).
- Použijte nástroje pro vývojáře v prohlížeči k testování responzivity.
- Komentujte svůj kód pro lepší přehlednost.
---
**Prohlášení**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,174 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T10:57:18+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T10:36:38+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "cs"
}
-->
# Používání editoru kódu
***
Tato lekce se zabývá základy používání [VSCode.dev](https://vscode.dev), webového editoru kódu, který vám umožní upravovat kód a přispívat do projektu bez nutnosti instalace čehokoli na váš počítač.
# Používání editoru kódu: Ovládněte [VSCode.dev](https://vscode.dev)
<!----
TODO: přidat volitelný obrázek
![Používání editoru kódu](../../../../translated_images/webdev101-vscode-dev.f53c14e8dad231ea09d9e07a2db4a01551d2dc6cdf21225038389e11156af023.cs.png)
> Sketchnote od [Jméno autora](https://example.com)
---->
**Vítejte!**
Tato lekce vás provede od základů až po pokročilé používání [VSCode.dev](https://vscode.dev)—výkonného webového editoru kódu. Naučíte se sebevědomě upravovat kód, spravovat projekty, sledovat změny, instalovat rozšíření a spolupracovat jako profesionál—vše přímo z vašeho prohlížeče, bez nutnosti instalace.
<!---
## Kvíz před lekcí
[Kvíz před lekcí](https://ff-quizzes.netlify.app/web/quiz/3)
---->
***
## Cíle učení
V této lekci se naučíte:
Na konci této lekce budete schopni:
- Používat editor kódu v projektu
- Sledovat změny pomocí verzovacího systému
- Přizpůsobit editor pro vývoj
- Efektivně používat editor kódu na jakémkoli projektu, kdekoli
- Plynule sledovat svou práci pomocí integrované správy verzí
- Personalizovat a zlepšit svůj vývojový pracovní postup pomocí úprav editoru a rozšíření
### Předpoklady
***
Než začnete, budete si muset vytvořit účet na [GitHub](https://github.com). Přejděte na [GitHub](https://github.com/) a vytvořte si účet, pokud ho ještě nemáte.
## Předpoklady
### Úvod
Pro začátek si **zaregistrujte bezplatný [GitHub](https://github.com) účet**, který vám umožní spravovat repozitáře kódu a spolupracovat s lidmi po celém světě. Pokud ještě nemáte účet, [vytvořte si ho zde](https://github.com/).
Editor kódu je nezbytný nástroj pro psaní programů a spolupráci na existujících projektech. Jakmile pochopíte základy editoru a naučíte se využívat jeho funkce, budete je moci aplikovat při psaní kódu.
***
## Začínáme s VSCode.dev
[VSCode.dev](https://vscode.dev) je editor kódu na webu. Nemusíte nic instalovat, stačí ho otevřít jako jakoukoli jinou webovou stránku. Chcete-li začít, otevřete následující odkaz: [https://vscode.dev](https://vscode.dev). Pokud nejste přihlášeni na [GitHub](https://github.com/), postupujte podle pokynů k přihlášení nebo vytvoření nového účtu a poté se přihlaste.
Po načtení by měl editor vypadat podobně jako na tomto obrázku:
![Výchozí VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.cs.png)
Existují tři hlavní sekce, od levé strany směrem doprava:
1. _Panel aktivit_, který obsahuje několik ikon, jako lupa 🔎, ozubené kolečko ⚙️ a další.
1. Rozšířený panel aktivit, který ve výchozím nastavení zobrazuje _Průzkumník_, nazývaný _postranní panel_.
1. A nakonec oblast kódu napravo.
## Proč používat webový editor kódu?
Klikněte na každou z ikon, abyste zobrazili různé nabídky. Po dokončení klikněte na _Průzkumník_, abyste se vrátili na výchozí obrazovku.
**Editor kódu**, jako je VSCode.dev, je vaše řídicí centrum pro psaní, úpravu a správu kódu. Díky intuitivnímu rozhraní, množství funkcí a okamžitému přístupu přes prohlížeč můžete:
Když začnete vytvářet nebo upravovat kód, bude se to odehrávat v největší oblasti napravo. Tuto oblast budete také používat k vizualizaci existujícího kódu, což si vyzkoušíte v další části.
- Upravit projekty na jakémkoli zařízení
- Vyhnout se komplikacím s instalacemi
- Okamžitě spolupracovat a přispívat
## Otevření GitHub repozitáře
Jakmile si osvojíte VSCode.dev, budete připraveni zvládnout úkoly spojené s kódováním odkudkoli a kdykoli.
Prvním krokem je otevření GitHub repozitáře. Existuje několik způsobů, jak repozitář otevřít. V této sekci se podíváme na dva různé způsoby, jak začít pracovat na změnách.
***
### 1. Pomocí editoru
## Začínáme s VSCode.dev
Použijte samotný editor k otevření vzdáleného repozitáře. Pokud přejdete na [VSCode.dev](https://vscode.dev), uvidíte tlačítko _"Open Remote Repository"_:
Přejděte na **[VSCode.dev](https://vscode.dev)**—bez instalace, bez stahování. Přihlášení pomocí GitHubu odemkne plný přístup, včetně synchronizace vašich nastavení, rozšíření a repozitářů. Pokud budete vyzváni, připojte svůj GitHub účet.
![Otevřít vzdálený repozitář](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.cs.png)
Po načtení bude vaše pracovní prostředí vypadat takto:
Můžete také použít příkazovou paletu. Příkazová paleta je vstupní pole, do kterého můžete zadat libovolné slovo, které je součástí příkazu nebo akce, abyste našli správný příkaz k provedení. Použijte nabídku vlevo nahoře, poté vyberte _View_ a následně _Command Palette_, nebo použijte klávesovou zkratku: Ctrl-Shift-P (na MacOS Command-Shift-P).
![Výchozí VSCode.dev](../images/default-vscode-dev má tři hlavní sekce zleva doprava:
- **Panel aktivit:** Ikony jako 🔎 (Vyhledávání), ⚙️ (Nastavení), soubory, správa verzí atd.
- **Postranní panel:** Mění kontext podle vybrané ikony v panelu aktivit (výchozí je *Průzkumník* pro zobrazení souborů).
- **Editor/oblast kódu:** Největší sekce napravo—zde budete upravovat a zobrazovat kód.
![Nabídka palety](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.cs.png)
Prozkoumejte funkce klikáním na ikony, ale vraťte se do _Průzkumníka_, abyste si udrželi přehled.
Jakmile se nabídka otevře, napište _open remote repository_ a vyberte první možnost. Zobrazí se seznam repozitářů, kterých jste součástí nebo které jste nedávno otevřeli. Můžete také použít úplnou URL adresu GitHubu k výběru jednoho z nich. Použijte následující URL a vložte ji do pole:
***
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
## Otevření GitHub repozitáře
✅ Pokud se vše podaří, uvidíte všechny soubory tohoto repozitáře načtené v textovém editoru.
### Metoda 1: Z editoru
### 2. Použití URL
1. Přejděte na [VSCode.dev](https://vscode.dev). Klikněte na **"Open Remote Repository."**
Repozitář můžete také načíst přímo pomocí URL. Například úplná URL aktuálního repozitáře je [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), ale můžete nahradit doménu GitHubu `VSCode.dev/github` a načíst repozitář přímo. Výsledná URL by byla [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![Otevřít vzdálený repozitář](../../../../8-code-editor/images/open-remote-repository použijte _Command Palette_ (Ctrl-Shift-P nebo Cmd-Shift-P na Macu).
## Úprava souborů
![Menu palety](../images/palette-menu.png otevřít vzdálený repozitář.”
- Vyberte tuto možnost.
- Vložte URL vašeho GitHub repozitáře (např. `https://github.com/microsoft/Web-Dev-For-Beginners`) a stiskněte Enter.
Jakmile máte repozitář otevřený v prohlížeči/vscode.dev, dalším krokem je provádění aktualizací nebo změn projektu.
Pokud vše proběhne úspěšně, uvidíte celý projekt načtený a připravený k úpravám!
### 1. Vytvoření nového souboru
***
Soubor můžete vytvořit buď uvnitř existující složky, nebo v kořenovém adresáři/složce. Chcete-li vytvořit nový soubor, otevřete umístění/složku, kam chcete soubor uložit, a vyberte ikonu _'New file ...'_ na panelu aktivit _(vlevo)_, pojmenujte ho a stiskněte Enter.
### Metoda 2: Okamžitě přes URL
![Vytvoření nového souboru](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.cs.png)
Přeměňte jakoukoli URL GitHub repozitáře na přímé otevření ve VSCode.dev tím, že nahradíte `github.com` za `vscode.dev/github`.
Např.:
### 2. Úprava a uložení souboru v repozitáři
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
Používání vscode.dev je užitečné, kdykoli chcete rychle aktualizovat svůj projekt bez nutnosti načítání jakéhokoli softwaru lokálně.
Tato funkce výrazně urychluje přístup k JAKÉMUKOLI projektu.
Chcete-li aktualizovat svůj kód, klikněte na ikonu 'Explorer', která se také nachází na panelu aktivit, abyste zobrazili soubory a složky v repozitáři. Vyberte soubor, který chcete otevřít v oblasti kódu, proveďte změny a uložte.
***
![Úprava souboru](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.cs.png)
## Úprava souborů ve vašem projektu
Jakmile dokončíte aktualizaci projektu, vyberte ikonu _`source control`_, která obsahuje všechny nové změny, které jste provedli v repozitáři.
Jakmile je váš repozitář otevřen, můžete:
Chcete-li zobrazit změny, které jste provedli, vyberte soubor(y) ve složce `Changes` na rozšířeném panelu aktivit. Tím se otevře 'Working Tree', kde vizuálně uvidíte změny, které jste provedli v souboru. Červená barva označuje odstranění z projektu, zatímco zelená značí přidání.
### 1. **Vytvořit nový soubor**
- V postranním panelu *Průzkumník* přejděte do požadované složky nebo použijte kořenovou složku.
- Klikněte na ikonu _Nový soubor ..._.
- Pojmenujte soubor, stiskněte **Enter** a váš soubor se okamžitě objeví.
![Zobrazení změn](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.cs.png)
![Vytvořit nový soubor](../images/create-new-file 2. **Upravit a uložit soubory**
Pokud jste spokojeni se změnami, které jste provedli, najeďte na složku `Changes` a klikněte na tlačítko `+`, abyste změny připravili ke commitu. Připravení znamená přípravu změn k jejich odeslání na GitHub.
- Klikněte na soubor v *Průzkumníku*, aby se otevřel v oblasti kódu.
- Proveďte potřebné změny.
- VSCode.dev automaticky ukládá vaše změny, ale můžete je manuálně uložit stisknutím Ctrl+S.
Pokud však nejste spokojeni s některými změnami a chcete je zrušit, najeďte na složku `Changes` a vyberte ikonu `undo`.
![Upravit soubor](../images/edit-a-file.png. **Sledovat a potvrzovat změny pomocí správy verzí**
Poté napište `commit message` _(popis změny, kterou jste provedli v projektu)_, klikněte na ikonu `check`, abyste změny commitovali a odeslali.
VSCode.dev má integrovanou správu verzí **Git**!
Jakmile dokončíte práci na projektu, vyberte ikonu `hamburger menu` vlevo nahoře, abyste se vrátili do repozitáře na github.com.
- Klikněte na ikonu _'Správa verzí'_ pro zobrazení všech provedených změn.
- Soubory ve složce `Changes` ukazují přidání (zeleně) a odstranění (červeně).
![Zobrazit změny](../images/working-tree.png změny kliknutím na `+` vedle souborů pro přípravu na potvrzení.
- **Zrušit** nežádoucí změny kliknutím na ikonu zpět.
- Napište jasnou zprávu o potvrzení, poté klikněte na zaškrtávací políčko pro potvrzení a odeslání.
![Připravení a commit změn](../../../../8-code-editor/images/edit-vscode.dev.gif)
Pro návrat do vašeho repozitáře na GitHubu vyberte hamburger menu v levém horním rohu.
## Používání rozšíření
![Připravit a potvrdit změny](../images/edit-vscode.dev Rozšíření
Instalace rozšíření ve VSCode vám umožní přidat nové funkce a možnosti přizpůsobení vývojového prostředí v editoru, což zlepší váš pracovní postup. Tato rozšíření také pomáhají přidat podporu pro různé programovací jazyky a často jsou buď obecná, nebo zaměřená na konkrétní jazyk.
Rozšíření vám umožní přidat jazyky, témata, ladicí nástroje a nástroje pro produktivitu do VSCode.dev—usnadní a zpříjemní vám práci s kódem.
Chcete-li procházet seznam všech dostupných rozšíření, klikněte na ikonu _`Extensions`_ na panelu aktivit a začněte psát název rozšíření do textového pole označeného _'Search Extensions in Marketplace'_.
Zobrazí se seznam rozšíření, z nichž každé obsahuje **název rozšíření, jméno vydavatele, jednovětný popis, počet stažení** a **hodnocení hvězdičkami**.
### Procházení a správa rozšíření
![Detaily rozšíření](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.cs.png)
- Klikněte na **ikonu Rozšíření** v panelu aktivit.
- Vyhledejte rozšíření v poli _'Search Extensions in Marketplace'_.
Můžete také zobrazit všechna dříve nainstalovaná rozšíření rozbalením složky _`Installed`_, populární rozšíření používaná většinou vývojářů ve složce _`Popular`_ a doporučená rozšíření pro vás buď od uživatelů ve stejném workspace, nebo na základě vašich nedávno otevřených souborů ve složce _`Recommended`_.
![Podrobnosti o rozšíření](../images/extension-details:
- **Nainstalované**: Všechna rozšíření, která jste přidali
- **Populární**: Oblíbené v oboru
- **Doporučené**: Přizpůsobené vašemu pracovnímu postupu
![Zobrazení rozšíření](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.cs.png)
![Zobrazit rozšíření](
### 1. Instalace rozšíření
Chcete-li nainstalovat rozšíření, napište jeho název do vyhledávacího pole a klikněte na něj, abyste zobrazili další informace o rozšíření v oblasti kódu, jakmile se objeví na rozšířeném panelu aktivit.
***
Můžete buď kliknout na _modré tlačítko instalace_ na rozšířeném panelu aktivit, nebo použít tlačítko instalace, které se objeví v oblasti kódu, jakmile vyberete rozšíření k načtení dalších informací.
### 1. **Instalace rozšíření**
![Instalace rozšíření](../../../../8-code-editor/images/install-extension.gif)
- Zadejte název rozšíření do vyhledávání, klikněte na něj a zobrazte podrobnosti v editoru.
- Klikněte na **modré tlačítko Instalovat** v postranním panelu _nebo_ v hlavní oblasti kódu.
### 2. Přizpůsobení rozšíření
![Instalovat rozšíření](../images/install-extension 2. **Přizpůsobení rozšíření**
Po instalaci rozšíření možná budete chtít upravit jeho chování a přizpůsobit ho podle svých preferencí. Chcete-li to provést, vyberte ikonu Extensions, a tentokrát se vaše rozšíření objeví ve složce _Installed_, klikněte na _**ikonu ozubeného kolečka**_ a přejděte na _Extensions Setting_.
- Najděte své nainstalované rozšíření.
- Klikněte na **ikonu ozubeného kola** → vyberte _Nastavení rozšíření_ pro doladění chování podle vašich potřeb.
![Úprava nastavení rozšíření](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.cs.png)
![Upravit nastavení rozšíření](../images/extension-settings 3. **Správa rozšíření**
Můžete:
### 3. Správa rozšíření
- **Deaktivovat:** Dočasně vypnout rozšíření, ale ponechat ho nainstalované
- **Odinstalovat:** Trvale odstranit, pokud již není potřeba
Po instalaci a používání rozšíření nabízí vscode.dev možnosti správy rozšíření podle různých potřeb. Například můžete:
Najděte rozšíření, klikněte na ikonu ozubeného kola a vyberte Deaktivovat nebo Odinstalovat, nebo použijte modrá tlačítka v oblasti kódu.
- **Deaktivovat:** _(Dočasně deaktivujete rozšíření, když ho již nepotřebujete, ale nechcete ho úplně odinstalovat)_
***
Vyberte nainstalované rozšíření na rozšířeném panelu aktivit > klikněte na ikonu ozubeného kolečka > vyberte 'Disable' nebo 'Disable (Workspace)' **NEBO** otevřete rozšíření v oblasti kódu a klikněte na modré tlačítko Disable.
## Zadání
- **Odinstalovat:** Vyberte nainstalované rozšíření na rozšířeném panelu aktivit > klikněte na ikonu ozubeného kolečka > vyberte 'Uninstall' **NEBO** otevřete rozšíření v oblasti kódu a klikněte na modré tlačítko Uninstall.
Otestujte své dovednosti: [Vytvořte webovou stránku životopisu pomocí vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## Zadání
[Vytvořte webovou stránku životopisu pomocí vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
## Další průzkum a samostudium
<!----
## Kvíz po lekci
[Kvíz po lekci](https://ff-quizzes.netlify.app/web/quiz/4)
---->
- Prohlubte své znalosti s [oficiální dokumentací VSCode Web](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Prozkoumejte pokročilé funkce pracovního prostředí, klávesové zkratky a nastavení.
## Přehled a samostudium
***
Přečtěte si více o [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) a některých jeho dalších funkcích.
**Nyní jste připraveni kódovat, tvořit a spolupracovat—odkudkoli, na jakémkoli zařízení, pomocí VSCode.dev!**
---
**Upozornění**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o co největší přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.
**Prohlášení**:
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:37:46+00:00",
"source_file": "AGENTS.md",
"language_code": "cs"
}
-->
# AGENTS.md
## Přehled projektu
Toto je vzdělávací úložiště určené k výuce základů webového vývoje pro začátečníky. Kurikulum je komplexní 12týdenní kurz vyvinutý Microsoft Cloud Advocates, který obsahuje 24 praktických lekcí zaměřených na JavaScript, CSS a HTML.
### Klíčové komponenty
- **Vzdělávací obsah**: 24 strukturovaných lekcí organizovaných do modulů založených na projektech
- **Praktické projekty**: Terárium, hra na psaní, rozšíření pro prohlížeč, vesmírná hra, bankovní aplikace, editor kódu a AI chatovací asistent
- **Interaktivní kvízy**: 48 kvízů, každý s 3 otázkami (před/po lekci)
- **Podpora více jazyků**: Automatické překlady do více než 50 jazyků pomocí GitHub Actions
- **Technologie**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (pro AI projekty)
### Architektura
- Vzdělávací úložiště se strukturou založenou na lekcích
- Každá složka lekce obsahuje README, příklady kódu a řešení
- Samostatné projekty v oddělených adresářích (quiz-app, různé projekty lekcí)
- Systém překladů pomocí GitHub Actions (co-op-translator)
- Dokumentace poskytovaná přes Docsify a dostupná jako PDF
## Příkazy pro nastavení
Toto úložiště je primárně určeno pro konzumaci vzdělávacího obsahu. Pro práci s konkrétními projekty:
### Nastavení hlavního úložiště
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Nastavení aplikace Quiz (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### API bankovního projektu (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Projekty rozšíření pro prohlížeč
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Projekty vesmírné hry
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Projekt chatu (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Pracovní postup vývoje
### Pro přispěvatele obsahu
1. **Forkněte úložiště** na svůj GitHub účet
2. **Naklonujte svůj fork** lokálně
3. **Vytvořte novou větev** pro své změny
4. Proveďte změny v obsahu lekcí nebo příkladech kódu
5. Otestujte změny kódu v relevantních adresářích projektů
6. Odešlete pull requesty podle pokynů pro přispívání
### Pro studenty
1. Forkněte nebo naklonujte úložiště
2. Postupujte sekvenčně v adresářích lekcí
3. Přečtěte si README soubory pro každou lekci
4. Dokončete kvízy před lekcí na https://ff-quizzes.netlify.app/web/
5. Projděte příklady kódu v složkách lekcí
6. Dokončete úkoly a výzvy
7. Absolvujte kvízy po lekci
### Živý vývoj
- **Dokumentace**: Spusťte `docsify serve` v rootu (port 3000)
- **Aplikace Quiz**: Spusťte `npm run dev` v adresáři quiz-app
- **Projekty**: Použijte rozšíření Live Server ve VS Code pro HTML projekty
- **API projekty**: Spusťte `npm start` v příslušných adresářích API
## Pokyny pro testování
### Testování aplikace Quiz
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Testování API bankovního projektu
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### Obecný přístup k testování
- Toto je vzdělávací úložiště bez komplexních automatizovaných testů
- Manuální testování se zaměřuje na:
- Příklady kódu běží bez chyb
- Odkazy v dokumentaci fungují správně
- Projekty se úspěšně sestaví
- Příklady dodržují nejlepší praktiky
### Kontroly před odesláním
- Spusťte `npm run lint` v adresářích s package.json
- Ověřte platnost odkazů v markdownu
- Otestujte příklady kódu v prohlížeči nebo Node.js
- Zkontrolujte, že překlady zachovávají správnou strukturu
## Pokyny pro styl kódu
### JavaScript
- Používejte moderní syntaxi ES6+
- Dodržujte standardní konfigurace ESLint poskytované v projektech
- Používejte smysluplné názvy proměnných a funkcí pro vzdělávací přehlednost
- Přidávejte komentáře vysvětlující koncepty pro studenty
- Formátujte pomocí Prettier, kde je nakonfigurován
### HTML/CSS
- Semantické HTML5 prvky
- Principy responzivního designu
- Jasné konvence pojmenování tříd
- Komentáře vysvětlující techniky CSS pro studenty
### Python
- Pokyny pro styl PEP 8
- Jasné, vzdělávací příklady kódu
- Typové anotace tam, kde jsou užitečné pro výuku
### Dokumentace v Markdownu
- Jasná hierarchie nadpisů
- Bloky kódu se specifikací jazyka
- Odkazy na další zdroje
- Snímky obrazovky a obrázky v adresářích `images/`
- Alternativní text pro obrázky kvůli přístupnosti
### Organizace souborů
- Lekce číslované sekvenčně (1-getting-started-lessons, 2-js-basics, atd.)
- Každý projekt má `solution/` a často `start/` nebo `your-work/` adresáře
- Obrázky uložené v lekci-specifických složkách `images/`
- Překlady ve struktuře `translations/{language-code}/`
## Sestavení a nasazení
### Nasazení aplikace Quiz (Azure Static Web Apps)
Aplikace quiz-app je nakonfigurována pro nasazení na Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Konfigurace Azure Static Web Apps:
- **Umístění aplikace**: `/quiz-app`
- **Umístění výstupu**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Generování PDF dokumentace
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Dokumentace Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Sestavení specifické pro projekt
Každý adresář projektu může mít vlastní proces sestavení:
- Projekty Vue: `npm run build` vytvoří produkční balíčky
- Statické projekty: Žádný krok sestavení, soubory se servírují přímo
## Pokyny pro pull requesty
### Formát názvu
Používejte jasné, popisné názvy označující oblast změny:
- `[Quiz-app] Přidat nový kvíz pro lekci X`
- `[Lesson-3] Opravit překlep v projektu terária`
- `[Translation] Přidat španělský překlad pro lekci 5`
- `[Docs] Aktualizovat pokyny pro nastavení`
### Požadované kontroly
Před odesláním PR:
1. **Kvalita kódu**:
- Spusťte `npm run lint` v ovlivněných adresářích projektů
- Opravte všechny chyby a varování lintingu
2. **Ověření sestavení**:
- Spusťte `npm run build`, pokud je to relevantní
- Ujistěte se, že nejsou žádné chyby sestavení
3. **Validace odkazů**:
- Otestujte všechny odkazy v markdownu
- Ověřte, že odkazy na obrázky fungují
4. **Revize obsahu**:
- Zkontrolujte pravopis a gramatiku
- Ujistěte se, že příklady kódu jsou správné a vzdělávací
- Ověřte, že překlady zachovávají původní význam
### Požadavky na přispívání
- Souhlas s Microsoft CLA (automatická kontrola při prvním PR)
- Dodržování [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Viz [CONTRIBUTING.md](./CONTRIBUTING.md) pro podrobné pokyny
- Odkazujte čísla problémů v popisu PR, pokud je to relevantní
### Proces revize
- PR jsou revidovány správci a komunitou
- Prioritou je vzdělávací přehlednost
- Příklady kódu by měly dodržovat aktuální nejlepší praktiky
- Překlady jsou revidovány z hlediska přesnosti a kulturní vhodnosti
## Systém překladů
### Automatický překlad
- Používá GitHub Actions s workflow co-op-translator
- Automaticky překládá do více než 50 jazyků
- Zdrojové soubory v hlavních adresářích
- Přeložené soubory ve struktuře `translations/{language-code}/`
### Přidání manuálních vylepšení překladu
1. Najděte soubor ve `translations/{language-code}/`
2. Proveďte vylepšení při zachování struktury
3. Ujistěte se, že příklady kódu zůstávají funkční
4. Otestujte jakýkoli lokalizovaný obsah kvízů
### Metadata překladu
Přeložené soubory obsahují záhlaví metadat:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Ladění a řešení problémů
### Běžné problémy
**Aplikace Quiz se nespustí**:
- Zkontrolujte verzi Node.js (doporučeno v14+)
- Smažte `node_modules` a `package-lock.json`, znovu spusťte `npm install`
- Zkontrolujte konflikty portů (výchozí: Vite používá port 5173)
**API server se nespustí**:
- Ověřte, že verze Node.js splňuje minimum (node >=10)
- Zkontrolujte, zda port již není používán
- Ujistěte se, že všechny závislosti jsou nainstalovány pomocí `npm install`
**Rozšíření prohlížeče se nenačte**:
- Ověřte, že manifest.json je správně formátován
- Zkontrolujte chyby v konzoli prohlížeče
- Postupujte podle pokynů pro instalaci rozšíření specifických pro prohlížeč
**Problémy s projektem Python chatu**:
- Ujistěte se, že je nainstalován balíček OpenAI: `pip install openai`
- Ověřte, že je nastavena proměnná prostředí GITHUB_TOKEN
- Zkontrolujte oprávnění přístupu k GitHub Models
**Docsify neobsluhuje dokumenty**:
- Nainstalujte docsify-cli globálně: `npm install -g docsify-cli`
- Spusťte z kořenového adresáře úložiště
- Zkontrolujte, že existuje `docs/_sidebar.md`
### Tipy pro vývojové prostředí
- Používejte VS Code s rozšířením Live Server pro HTML projekty
- Nainstalujte rozšíření ESLint a Prettier pro konzistentní formátování
- Používejte DevTools prohlížeče pro ladění JavaScriptu
- Pro projekty Vue nainstalujte rozšíření Vue DevTools prohlížeče
### Úvahy o výkonu
- Velký počet přeložených souborů (50+ jazyků) znamená, že úplné klony jsou velké
- Použijte mělký klon, pokud pracujete pouze na obsahu: `git clone --depth 1`
- Vyloučte překlady z vyhledávání při práci na obsahu v angličtině
- Procesy sestavení mohou být při prvním spuštění pomalé (npm install, Vite build)
## Úvahy o bezpečnosti
### Proměnné prostředí
- API klíče by nikdy neměly být přidány do úložiště
- Používejte `.env` soubory (již v `.gitignore`)
- Dokumentujte požadované proměnné prostředí v README projektů
### Python projekty
- Používejte virtuální prostředí: `python -m venv venv`
- Udržujte závislosti aktuální
- Tokeny GitHub by měly mít minimální požadovaná oprávnění
### Přístup k GitHub Models
- Vyžadovány osobní přístupové tokeny (PAT) pro GitHub Models
- Tokeny by měly být uloženy jako proměnné prostředí
- Nikdy nepřidávejte tokeny nebo přihlašovací údaje
## Další poznámky
### Cílová skupina
- Úplní začátečníci ve webovém vývoji
- Studenti a samouci
- Učitelé používající kurikulum ve třídách
- Obsah je navržen pro přístupnost a postupné budování dovedností
### Vzdělávací filozofie
- Přístup založený na projektech
- Časté kontroly znalostí (kvízy)
- Praktická cvičení v kódování
- Příklady aplikací z reálného světa
- Důraz na základy před frameworky
### Údržba úložiště
- Aktivní komunita studentů a přispěvatelů
- Pravidelné aktualizace závislostí a obsahu
- Problémy a diskuse monitorovány správci
- Aktualizace překladů automatizované pomocí GitHub Actions
### Související zdroje
- [Microsoft Learn moduly](https://docs.microsoft.com/learn/)
- [Student Hub zdroje](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) doporučený pro studenty
- Další kurzy: Generativní AI, Data Science, ML, IoT kurikula k dispozici
### Práce s konkrétními projekty
Pro podrobné pokyny k jednotlivým projektům viz README soubory v:
- `quiz-app/README.md` - aplikace kvízů Vue 3
- `7-bank-project/README.md` - bankovní aplikace s autentizací
- `5-browser-extension/README.md` - vývoj rozšíření pro prohlížeč
- `6-space-game/README.md` - vývoj hry založené na Canvasu
- `9-chat-project/README.md` - projekt AI chatovacího asistenta
### Struktura monorepo
I když nejde o tradiční monorepo, toto úložiště obsahuje několik nezávislých projektů:
- Každá lekce je samostatná
- Projekty nesdílejí závislosti
- Práce na jednotlivých projektech bez ovlivnění ostatních
- Naklonujte celé úložiště pro plný zážitek z kurikula
---
**Prohlášení**:
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho rodném jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T10:42:04+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T10:35:02+00:00",
"source_file": "README.md",
"language_code": "cs"
}
@ -25,7 +25,7 @@ CO_OP_TRANSLATOR_METADATA:
Postupujte podle těchto kroků, abyste mohli začít používat tyto zdroje:
1. **Forkněte repozitář**: Klikněte [![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. **Naklonujte repozitář**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
2. **Naklonujte repozitář**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Připojte se na Discord Azure AI Foundry a setkejte se s experty a dalšími vývojáři**](https://discord.com/invite/ByRwuEEgH4)
# Webový vývoj pro začátečníky - Kurikulum
@ -36,9 +36,9 @@ Naučte se základy webového vývoje s naším 12týdenním komplexním kurzem
#### Podporováno prostřednictvím GitHub Action (automatizované a vždy aktuální)
[Francouzština](../fr/README.md) | [Španělština](../es/README.md) | [Němčina](../de/README.md) | [Ruština](../ru/README.md) | [Arabština](../ar/README.md) | [Perština (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Čínština (zjednodušená)](../zh/README.md) | [Čínština (tradiční, Macao)](../mo/README.md) | [Čínština (tradiční, Hongkong)](../hk/README.md) | [Čínština (tradiční, Tchaj-wan)](../tw/README.md) | [Japonština](../ja/README.md) | [Korejština](../ko/README.md) | [Hindština](../hi/README.md) | [Bengálština](../bn/README.md) | [Maráthština](../mr/README.md) | [Nepálština](../ne/README.md) | [Paňdžábština (Gurmukhi)](../pa/README.md) | [Portugalština (Portugalsko)](../pt/README.md) | [Portugalština (Brazílie)](../br/README.md) | [Italština](../it/README.md) | [Polština](../pl/README.md) | [Turečtina](../tr/README.md) | [Řečtina](../el/README.md) | [Thajština](../th/README.md) | [Švédština](../sv/README.md) | [Dánština](../da/README.md) | [Norština](../no/README.md) | [Finština](../fi/README.md) | [Nizozemština](../nl/README.md) | [Hebrejština](../he/README.md) | [Vietnamština](../vi/README.md) | [Indonéština](../id/README.md) | [Malajština](../ms/README.md) | [Tagalog (Filipíny)](../tl/README.md) | [Svahilština](../sw/README.md) | [Maďarština](../hu/README.md) | [Čeština](./README.md) | [Slovenština](../sk/README.md) | [Rumunština](../ro/README.md) | [Bulharština](../bg/README.md) | [Srbština (cyrilice)](../sr/README.md) | [Chorvatština](../hr/README.md) | [Slovinština](../sl/README.md) | [Ukrajinština](../uk/README.md) | [Barmština (Myanmar)](../my/README.md)
[Francouzština](../fr/README.md) | [Španělština](../es/README.md) | [Němčina](../de/README.md) | [Ruština](../ru/README.md) | [Arabština](../ar/README.md) | [Perština (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Čínština (zjednodušená)](../zh/README.md) | [Čínština (tradiční, Macao)](../mo/README.md) | [Čínština (tradiční, Hongkong)](../hk/README.md) | [Čínština (tradiční, Tchaj-wan)](../tw/README.md) | [Japonština](../ja/README.md) | [Korejština](../ko/README.md) | [Hindština](../hi/README.md) | [Bengálština](../bn/README.md) | [Maráthština](../mr/README.md) | [Nepálština](../ne/README.md) | [Paňdžábština (Gurmukhi)](../pa/README.md) | [Portugalština (Portugalsko)](../pt/README.md) | [Portugalština (Brazílie)](../br/README.md) | [Italština](../it/README.md) | [Polština](../pl/README.md) | [Turečtina](../tr/README.md) | [Řečtina](../el/README.md) | [Thajština](../th/README.md) | [Švédština](../sv/README.md) | [Dánština](../da/README.md) | [Norština](../no/README.md) | [Finština](../fi/README.md) | [Nizozemština](../nl/README.md) | [Hebrejština](../he/README.md) | [Vietnamština](../vi/README.md) | [Indonéština](../id/README.md) | [Malajština](../ms/README.md) | [Tagalog (Filipínština)](../tl/README.md) | [Svahilština](../sw/README.md) | [Maďarština](../hu/README.md) | [Čeština](./README.md) | [Slovenština](../sk/README.md) | [Rumunština](../ro/README.md) | [Bulharština](../bg/README.md) | [Srbština (cyrilice)](../sr/README.md) | [Chorvatština](../hr/README.md) | [Slovinština](../sl/README.md) | [Ukrajinština](../uk/README.md) | [Barmština (Myanmar)](../my/README.md)
**Pokud si přejete přidat další překlady, seznam podporovaných jazyků najdete [zde](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Pokud si přejete mít podporu dalších jazyků, seznam podporovaných jazyků najdete [zde](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
#### 🧑‍🎓 _Jste student?_
@ -46,7 +46,7 @@ Navštivte [**stránku Student Hub**](https://docs.microsoft.com/learn/student-h
### 📣 Oznámení - _Nový projekt na tvorbu pomocí generativní AI_
Právě přidán nový projekt AI Assistant, podívejte se na něj [projekt](./09-chat-project/README.md)
Právě byl přidán nový projekt AI Assistant, podívejte se na něj [projekt](./09-chat-project/README.md)
### 📣 Oznámení - _Nové kurikulum_ o generativní AI pro JavaScript bylo právě vydáno
@ -62,9 +62,9 @@ Navštivte [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) a za
![Postava](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.cs.png)
Každá lekce obsahuje úkol k dokončení, kontrolu znalostí a výzvu, která vás provede učením témat, jako jsou:
- Tvorba a optimalizace promptů
- Generování textových a obrazových aplikací
Každá lekce obsahuje úkol k dokončení, kontrolu znalostí a výzvu, která vás provede tématy, jako jsou:
- Tvorba promptů a jejich optimalizace
- Generování aplikací pro text a obrázky
- Vyhledávací aplikace
Navštivte [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course) a začněte!
@ -73,119 +73,118 @@ Navštivte [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course
> **Učitelé**, [zahrnuli jsme několik návrhů](for-teachers.md), jak toto kurikulum využít. Budeme rádi za vaši zpětnou vazbu [v našem diskusním fóru](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Studenti](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, u každé lekce začněte přednáškovým kvízem a pokračujte čtením materiálů, plněním různých aktivit a ověřte si své znalosti pomocí kvízu po přednášce.
**[Studenti](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, u každé lekce začněte kvízem před přednáškou, pokračujte čtením materiálů, dokončete různé aktivity a ověřte si své znalosti kvízem po přednášce.
Pro zlepšení vašeho vzdělávacího zážitku se spojte s ostatními studenty a pracujte na projektech společně! Diskuse jsou podporovány v našem [diskusním fóru](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), kde bude náš tým moderátorů k dispozici, aby odpověděl na vaše otázky.
Pro zlepšení vašeho vzdělávacího zážitku se spojte se svými vrstevníky a pracujte na projektech společně! Diskuse jsou vítány v našem [diskusním fóru](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), kde bude náš tým moderátorů k dispozici, aby odpověděl na vaše otázky.
Pro další vzdělávání důrazně doporučujeme prozkoumat [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) pro další studijní materiály.
### 📋 Nastavení vašeho prostředí
Toto kurikulum má připravené vývojové prostředí! Jakmile začnete, můžete si vybrat, zda budete kurikulum spouštět v [Codespace](https://github.com/features/codespaces/) (_prostředí založené na prohlížeči, bez nutnosti instalace_), nebo lokálně na vašem počítači pomocí textového editoru, jako je [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Toto kurikulum má připravené vývojové prostředí! Jakmile začnete, můžete si vybrat, zda budete kurikulum provozovat v [Codespace](https://github.com/features/codespaces/) (_prostředí založené na prohlížeči, bez nutnosti instalace_), nebo lokálně na vašem počítači pomocí textového editoru, jako je [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Vytvořte svůj repozitář
#### Vytvořte si svůj repozitář
Abyste si mohli snadno uložit svou práci, doporučujeme vytvořit si vlastní kopii tohoto repozitáře. Můžete to udělat kliknutím na tlačítko **Use this template** v horní části stránky. Tím se vytvoří nový repozitář ve vašem GitHub účtu s kopií kurikula.
Postupujte podle těchto kroků:
1. **Forkněte repozitář**: Klikněte na tlačítko "Fork" v pravém horním rohu této stránky.
2. **Naklonujte repozitář**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
2. **Naklonujte repozitář**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Spuštění kurikula v Codespace
#### Provozování kurikula v Codespace
Ve vaší kopii tohoto repozitáře, kterou jste vytvořili, klikněte na tlačítko **Code** a vyberte **Open with Codespaces**. Tím se vytvoří nový Codespace, ve kterém můžete pracovat.
[!Codespace](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.cs.png)
#### Spuštění kurikula lokálně na vašem počítači
#### Provozování kurikula lokálně na vašem počítači
Pro spuštění tohoto kurikula lokálně na vašem počítači budete potřebovat textový editor, prohlížeč a nástroj příkazového řádku. Naše první lekce, [Úvod do programovacích jazyků a nástrojů](../../1-getting-started-lessons/1-intro-to-programming-languages), vás provede různými možnostmi pro každý z těchto nástrojů, abyste si mohli vybrat, co vám nejlépe vyhovuje.
Pro provozování tohoto kurikula lokálně na vašem počítači budete potřebovat textový editor, prohlížeč a nástroj příkazového řádku. Naše první lekce, [Úvod do programovacích jazyků a nástrojů](../../1-getting-started-lessons/1-intro-to-programming-languages), vás provede různými možnostmi pro každý z těchto nástrojů, abyste si mohli vybrat, co vám nejlépe vyhovuje.
Naše doporučení je použít [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) jako editor, který má také vestavěný [Terminál](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Visual Studio Code si můžete stáhnout [zde](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Naše doporučení je použít [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) jako váš editor, který má také vestavěný [Terminál](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Visual Studio Code si můžete stáhnout [zde](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Naklonujte svůj repozitář na váš počítač. Můžete to udělat kliknutím na tlačítko **Code** a zkopírováním URL:
[!CodeSpace](./images/createcodespace.png)
[CodeSpace](./images/createcodespace.png)
Poté otevřete [Terminál](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) ve [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) a spusťte následující příkaz, přičemž `<your-repository-url>` nahraďte URL, kterou jste právě zkopírovali:
```bash
git clone <your-repository-url>
```
2. Otevřete složku ve Visual Studio Code. Můžete to udělat kliknutím na **File**
> **Otevřete složku** a vyberte složku, kterou jste právě naklonovali.
> Doporučené rozšíření pro Visual Studio Code:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - pro náhled HTML stránek přímo ve Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - pro rychlejší psaní kódu
## 📂 Každá lekce obsahuje:
- volitelný sketchnote
- volitelné doplňkové video
- zahřívací kvíz před lekcí
- psanou lekci
- u projektově zaměřených lekcí podrobné návody na vytvoření projektu
- kontrolní otázky
- výzvu
- doplňkové čtení
- úkol
- [kvíz po lekci](https://ff-quizzes.netlify.app/web/)
> **Poznámka ke kvízům**: Všechny kvízy jsou obsaženy ve složce Quiz-app, celkem 48 kvízů, každý se třemi otázkami. Jsou dostupné [zde](https://ff-quizzes.netlify.app/web/) a aplikaci pro kvízy lze spustit lokálně nebo nasadit na Azure; postupujte podle pokynů ve složce `quiz-app`.
```
2. Otevřete složku ve Visual Studio Code. Můžete to udělat kliknutím na **File** > **Open Folder** a výběrem složky, kterou jste právě naklonovali.
> Doporučené rozšíření pro Visual Studio Code:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - pro náhled HTML stránek ve Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - pro rychlejší psaní kódu
## 📂 Každá lekce obsahuje:
- volitelný sketchnote
- volitelné doplňkové video
- kvíz na zahřátí před lekcí
- psanou lekci
- u lekcí založených na projektech, podrobné návody, jak projekt vytvořit
- kontrolu znalostí
- výzvu
- doplňkové čtení
- úkol
- [kvíz po lekci](https://ff-quizzes.netlify.app/web/)
> **Poznámka k testům**: Všechny testy jsou obsaženy ve složce Quiz-app, celkem 48 testů, každý obsahuje tři otázky. Jsou dostupné [zde](https://ff-quizzes.netlify.app/web/). Aplikaci pro testy lze spustit lokálně nebo nasadit na Azure; postupujte podle pokynů ve složce `quiz-app`.
## 🗃️ Lekce
| | Název projektu | Probírané koncepty | Cíle učení | Odkaz na lekci | Autor |
| :-: | :--------------------------------------------------------: | :---------------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Začínáme | Úvod do programování a nástroje pro vývojáře | Naučte se základní principy většiny programovacích jazyků a software, který pomáhá profesionálním vývojářům při práci | [Úvod do programovacích jazyků a nástrojů](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Začínáme | Základy GitHubu, včetně týmové spolupráce | Jak používat GitHub ve vašem projektu a jak spolupracovat s ostatními na kódu | [Úvod do GitHubu](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Začínáme | Přístupnost | Naučte se základy přístupnosti webu | [Základy přístupnosti](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Základy JS | Datové typy v JavaScriptu | Základy datových typů v JavaScriptu | [Datové typy](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Základy JS | Funkce a metody | Naučte se o funkcích a metodách pro řízení logiky aplikace | [Funkce a metody](./2-js-basics/2-functions-methods/README.md) | Jasmine a Christopher |
| 06 | Základy JS | Rozhodování v JavaScriptu | Naučte se vytvářet podmínky v kódu pomocí metod pro rozhodování | [Rozhodování](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Základy JS | Pole a cykly | Práce s daty pomocí polí a cyklů v JavaScriptu | [Pole a cykly](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terárium](./3-terrarium/solution/README.md) | HTML v praxi | Vytvořte HTML pro online terárium, zaměřte se na tvorbu rozvržení | [Úvod do HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terárium](./3-terrarium/solution/README.md) | CSS v praxi | Vytvořte CSS pro stylování online terária, zaměřte se na základy CSS včetně responzivního designu | [Úvod do CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terárium](./3-terrarium/solution/README.md) | Uzávěry v JavaScriptu, manipulace DOM | Vytvořte JavaScript pro funkčnost terária jako drag/drop rozhraní, zaměřte se na uzávěry a manipulaci DOM | [Uzávěry a manipulace DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Hra na psaní](./4-typing-game/solution/README.md) | Vytvoření hry na psaní | Naučte se používat události klávesnice pro řízení logiky aplikace | [Programování řízené událostmi](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Rozšíření prohlížeče](./5-browser-extension/solution/README.md) | Práce s prohlížeči | Naučte se, jak fungují prohlížeče, jejich historii a jak vytvořit první prvky rozšíření prohlížeče | [O prohlížečích](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Rozšíření prohlížeče](./5-browser-extension/solution/README.md) | Vytvoření formuláře, volání API a ukládání proměnných do místního úložiště | Vytvořte JavaScriptové prvky rozšíření prohlížeče pro volání API pomocí proměnných uložených v místním úložišti | [API, formuláře a místní úložiště](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Rozšíření prohlížeče](./5-browser-extension/solution/README.md) | Procesy na pozadí v prohlížeči, výkon webu | Použijte procesy na pozadí pro správu ikony rozšíření; naučte se o výkonu webu a optimalizacích | [Procesy na pozadí a výkon](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Vesmírná hra](./6-space-game/solution/README.md) | Pokročilý vývoj her v JavaScriptu | Naučte se o dědičnosti pomocí tříd a kompozice a o vzoru Pub/Sub, jako přípravu na tvorbu hry | [Úvod do pokročilého vývoje her](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Vesmírná hra](./6-space-game/solution/README.md) | Kreslení na plátno | Naučte se používat Canvas API pro kreslení prvků na obrazovku | [Kreslení na plátno](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Vesmírná hra](./6-space-game/solution/README.md) | Pohyb prvků na obrazovce | Objevte, jak mohou prvky získat pohyb pomocí kartézských souřadnic a Canvas API | [Pohyb prvků](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Vesmírná hra](./6-space-game/solution/README.md) | Detekce kolizí | Naučte se, jak prvky kolidují a reagují na sebe pomocí stisků kláves a jak zajistit výkon hry pomocí funkce cooldown | [Detekce kolizí](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Vesmírná hra](./6-space-game/solution/README.md) | Počítání skóre | Provádějte matematické výpočty na základě stavu a výkonu hry | [Počítání skóre](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Vesmírná hra](./6-space-game/solution/README.md) | Ukončení a restartování hry | Naučte se, jak ukončit a restartovat hru, včetně vyčištění prostředků a resetování hodnot proměnných | [Podmínka ukončení](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Bankovní aplikace](./7-bank-project/solution/README.md) | HTML šablony a směrování v aplikaci | Naučte se vytvořit strukturu více stránkové webové aplikace pomocí směrování a HTML šablon | [HTML šablony a směrování](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Bankovní aplikace](./7-bank-project/solution/README.md) | Vytvoření přihlašovacího a registračního formuláře | Naučte se vytvářet formuláře a zpracovávat validační rutiny | [Formuláře](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Bankovní aplikace](./7-bank-project/solution/README.md) | Metody získávání a používání dat | Jak data proudí do vaší aplikace a z ní, jak je získávat, ukládat a mazat | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Bankovní aplikace](./7-bank-project/solution/README.md) | Koncepty správy stavu | Naučte se, jak vaše aplikace uchovává stav a jak jej programově spravovat | [Správa stavu](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Editor kódu VScode](../../8-code-editor) | Práce s VScode | Naučte se používat editor kódu | [Použití editoru VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI asistenti](./9-chat-project/README.md) | Práce s AI | Naučte se vytvořit vlastního AI asistenta | [Projekt AI asistenta](./9-chat-project/README.md) | Chris |
| | Název projektu | Učené koncepty | Výukové cíle | Odkaz na lekci | Autor |
| :-: | :--------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :--------------------: |
| 01 | Začínáme | Úvod do programování a nástroje používané v oboru | Naučte se základní principy většiny programovacích jazyků a software, který pomáhá profesionálním vývojářům při práci | [Úvod do programovacích jazyků a nástrojů](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Začínáme | Základy GitHubu, včetně práce v týmu | Jak používat GitHub ve vašem projektu, jak spolupracovat s ostatními na kódu | [Úvod do GitHubu](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Začínáme | Přístupnost | Naučte se základy webové přístupnosti | [Základy přístupnosti](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Základy JS | Datové typy v JavaScriptu | Základy datových typů v JavaScriptu | [Datové typy](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Základy JS | Funkce a metody | Naučte se o funkcích a metodách pro řízení logiky aplikace | [Funkce a metody](./2-js-basics/2-functions-methods/README.md) | Jasmine a Christopher |
| 06 | Základy JS | Rozhodování v JavaScriptu | Naučte se vytvářet podmínky ve vašem kódu pomocí metod rozhodování | [Rozhodování](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Základy JS | Pole a smyčky | Práce s daty pomocí polí a smyček v JavaScriptu | [Pole a smyčky](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terárium](./3-terrarium/solution/README.md) | HTML v praxi | Vytvořte HTML pro online terárium, zaměřte se na tvorbu rozvržení | [Úvod do HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terárium](./3-terrarium/solution/README.md) | CSS v praxi | Vytvořte CSS pro stylizaci online terária, zaměřte se na základy CSS včetně responzivního designu | [Úvod do CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terárium](./3-terrarium/solution/README.md) | Uzávěry v JavaScriptu, manipulace DOM | Vytvořte JavaScript pro funkci terária jako drag/drop rozhraní, zaměřte se na uzávěry a manipulaci DOM | [Uzávěry v JavaScriptu, manipulace DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Hra na psaní](./4-typing-game/solution/README.md) | Vytvořte hru na psaní | Naučte se používat události klávesnice k řízení logiky vaší JavaScriptové aplikace | [Programování řízené událostmi](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Rozšíření pro prohlížeč](./5-browser-extension/solution/README.md) | Práce s prohlížeči | Naučte se, jak fungují prohlížeče, jejich historii a jak vytvořit první prvky rozšíření pro prohlížeč | [O prohlížečích](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Rozšíření pro prohlížeč](./5-browser-extension/solution/README.md) | Vytvoření formuláře, volání API a ukládání proměnných do lokálního úložiště | Vytvořte JavaScriptové prvky rozšíření pro prohlížeč, které volají API pomocí proměnných uložených v lokálním úložišti | [API, formuláře a lokální úložiště](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Rozšíření pro prohlížeč](./5-browser-extension/solution/README.md) | Procesy na pozadí v prohlížeči, výkon webu | Použijte procesy na pozadí pro správu ikony rozšíření; naučte se o výkonu webu a některých optimalizacích | [Úkoly na pozadí a výkon](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Vesmírná hra](./6-space-game/solution/README.md) | Pokročilý vývoj her s JavaScriptem | Naučte se o dědičnosti pomocí tříd a kompozice a vzoru Pub/Sub, jako přípravu na tvorbu hry | [Úvod do pokročilého vývoje her](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Vesmírná hra](./6-space-game/solution/README.md) | Kreslení na plátno | Naučte se o API Canvas, které se používá k vykreslování prvků na obrazovku | [Kreslení na plátno](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Vesmírná hra](./6-space-game/solution/README.md) | Pohyb prvků po obrazovce | Objevte, jak mohou prvky získat pohyb pomocí kartézských souřadnic a API Canvas | [Pohyb prvků](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Vesmírná hra](./6-space-game/solution/README.md) | Detekce kolizí | Vytvořte kolize mezi prvky a jejich reakce pomocí stisků kláves; přidejte funkci cooldown pro zajištění výkonu hry | [Detekce kolizí](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Vesmírná hra](./6-space-game/solution/README.md) | Počítání skóre | Provádějte matematické výpočty na základě stavu a výkonu hry | [Počítání skóre](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Vesmírná hra](./6-space-game/solution/README.md) | Ukončení a restartování hry | Naučte se o ukončení a restartování hry, včetně čištění prostředků a resetování hodnot proměnných | [Podmínka ukončení](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Bankovní aplikace](./7-bank-project/solution/README.md) | HTML šablony a směrování ve webové aplikaci | Naučte se, jak vytvořit strukturu architektury vícestránkového webu pomocí směrování a HTML šablon | [HTML šablony a směrování](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Bankovní aplikace](./7-bank-project/solution/README.md) | Vytvoření přihlašovacího a registračního formuláře | Naučte se vytvářet formuláře a zpracovávat validační rutiny | [Formuláře](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Bankovní aplikace](./7-bank-project/solution/README.md) | Metody získávání a používání dat | Jak data proudí dovnitř a ven z vaší aplikace, jak je získávat, ukládat a likvidovat | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Bankovní aplikace](./7-bank-project/solution/README.md) | Koncepty správy stavu | Naučte se, jak vaše aplikace uchovává stav a jak jej programově spravovat | [Správa stavu](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Prohlížeč/VScode Code](../../8-code-editor) | Práce s VScode | Naučte se používat editor kódu | [Použití editoru kódu VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Asistenti](./9-chat-project/README.md) | Práce s AI | Naučte se vytvořit vlastního AI asistenta | [Projekt AI asistenta](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogika
Náš učební plán je navržen s ohledem na dva klíčové pedagogické principy:
Náš vzdělávací program je navržen s ohledem na dvě klíčové pedagogické principy:
* učení založené na projektech
* časté kvízy
* časté testy
Program učí základy JavaScriptu, HTML a CSS, stejně jako nejnovější nástroje a techniky používané dnešními webovými vývojáři. Studenti získají praktické zkušenosti vytvořením hry na psaní, virtuálního terária, ekologického rozšíření prohlížeče, hry ve stylu Space Invaders a bankovní aplikace pro firmy. Na konci série budou studenti mít pevné základy ve vývoji webu.
Program učí základy JavaScriptu, HTML a CSS, stejně jako nejnovější nástroje a techniky používané dnešními webovými vývojáři. Studenti budou mít příležitost získat praktické zkušenosti při tvorbě hry na psaní, virtuálního terária, ekologického rozšíření pro prohlížeč, hry ve stylu vesmírných invazí a bankovní aplikace pro firmy. Na konci série získají studenti pevné základy webového vývoje.
> 🎓 První lekce tohoto kurzu si můžete projít jako [učební cestu](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) na Microsoft Learn!
> 🎓 První lekce tohoto vzdělávacího programu můžete absolvovat jako [učební cestu](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) na Microsoft Learn!
Díky propojení obsahu s projekty je proces pro studenty poutavější a zlepšuje se zapamatování konceptů. Také jsme vytvořili několik úvodních lekcí o základech JavaScriptu, které jsou doplněny videi ze série "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", na jejichž tvorbě se podíleli i autoři tohoto kurzu.
Díky tomu, že obsah odpovídá projektům, je proces pro studenty poutavější a zlepšuje se zapamatování konceptů. Také jsme napsali několik úvodních lekcí o základech JavaScriptu, které představují koncepty, doplněné videem ze série "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" s video tutoriály, jejichž někteří autoři přispěli k tomuto vzdělávacímu programu.
Kromě toho nízkostresový kvíz před lekcí nastaví studentovu pozornost na dané téma, zatímco druhý kvíz po lekci zajistí lepší zapamatování. Tento učební plán byl navržen tak, aby byl flexibilní a zábavný, a lze jej absolvovat celý nebo jen jeho části. Projekty začínají jednoduše a postupně se stávají složitějšími během 12týdenního cyklu.
Navíc nízkostresový test před hodinou nastaví záměr studenta na učení daného tématu, zatímco druhý test po hodině zajistí lepší zapamatování. Tento vzdělávací program byl navržen tak, aby byl flexibilní a zábavný, a lze jej absolvovat celý nebo jen jeho část. Projekty začínají malými úkoly a postupně se stávají složitějšími během 12týdenního cyklu.
Záměrně jsme se vyhnuli zavádění JavaScriptových frameworků, abychom se soustředili na základní dovednosti potřebné pro webového vývojáře před přijetím frameworku. Dalším krokem po dokončení tohoto kurzu by mohlo být učení o Node.js prostřednictvím jiné série videí: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
Záměrně jsme se vyhnuli zavádění JavaScriptových frameworků, abychom se soustředili na základní dovednosti potřebné jako webový vývojář před přijetím frameworku. Dobrou další etapou po dokončení tohoto vzdělávacího programu by bylo naučit se o Node.js prostřednictvím další kolekce videí: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Navštivte naše [Pravidla chování](CODE_OF_CONDUCT.md) a [Pokyny pro přispívání](CONTRIBUTING.md). Uvítáme vaši konstruktivní zpětnou vazbu!
> Navštivte naše [Pravidla chování](CODE_OF_CONDUCT.md) a [Pokyny pro přispívání](CONTRIBUTING.md). Uvítáme vaše konstruktivní zpětné vazby!
## 🧭 Offline přístup
Tuto dokumentaci můžete spustit offline pomocí [Docsify](https://docsify.js.org/#/). Forkněte toto repo, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na svůj lokální počítač a poté ve složce root tohoto repozitáře zadejte `docsify serve`. Web bude dostupný na portu 3000 na vašem localhostu: `localhost:3000`.
Tuto dokumentaci můžete spustit offline pomocí [Docsify](https://docsify.js.org/#/). Forkněte tento repozitář, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na svůj lokální počítač a poté v kořenové složce tohoto repozitáře zadejte `docsify serve`. Webová stránka bude spuštěna na portu 3000 na vašem localhostu: `localhost:3000`.
## 📘 PDF
@ -200,21 +199,31 @@ Náš tým vytváří i další kurzy! Podívejte se na:
- [Generativní AI s JavaScriptem](https://github.com/microsoft/generative-ai-with-javascript)
- [Generativní AI s Javou](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI pro začátečníky](https://aka.ms/ai-beginners)
- [Data Science pro začátečníky](https://aka.ms/datascience-beginners)
- [ML pro začátečníky](https://aka.ms/ml-beginners)
- [Kybernetická bezpečnost pro začátečníky](https://github.com/microsoft/Security-101)
- [Webový vývoj pro začátečníky](https://aka.ms/webdev-beginners)
- [IoT pro začátečníky](https://aka.ms/iot-beginners)
- [Vývoj XR pro začátečníky](https://github.com/microsoft/xr-development-for-beginners)
- [Ovládnutí GitHub Copilot pro agentické použití](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Ovládnutí GitHub Copilot pro vývojáře C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Vyberte si vlastní dobrodružství s Copilotem](https://github.com/microsoft/CopilotAdventures)
- [Data Science pro začátečníky](https://aka.ms/datascience-beginners)
- [ML pro začátečníky](https://aka.ms/ml-beginners)
- [Kybernetická bezpečnost pro začátečníky](https://github.com/microsoft/Security-101)
- [Webový vývoj pro začátečníky](https://aka.ms/webdev-beginners)
- [IoT pro začátečníky](https://aka.ms/iot-beginners)
- [Vývoj XR pro začátečníky](https://github.com/microsoft/xr-development-for-beginners)
- [Ovládnutí GitHub Copilot pro párové programování](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Ovládnutí GitHub Copilot pro vývojáře C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Vyberte si vlastní dobrodružství s Copilotem](https://github.com/microsoft/CopilotAdventures)
## Licence
## Získání pomoci
Tento repozitář je licencován pod licencí MIT. Další informace naleznete v souboru [LICENSE](../../LICENSE).
Pokud narazíte na problém nebo máte otázky ohledně vytváření AI aplikací, připojte se:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
Pokud máte zpětnou vazbu k produktu nebo narazíte na chyby při vytváření, navštivte:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Licence
Tento repozitář je licencován pod licencí MIT. Další informace naleznete v souboru [LICENSE](../../LICENSE).
---
**Upozornění**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o co největší přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.
**Prohlášení**:
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,47 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-28T03:22:47+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T10:34:49+00:00",
"source_file": "for-teachers.md",
"language_code": "cs"
}
-->
## Pro pedagogy
### Pro pedagogy
Chtěli byste použít tento výukový plán ve své třídě? Klidně do toho!
Tento učební plán můžete využít ve své třídě. Funguje bez problémů s GitHub Classroom a předními platformami LMS a lze jej také použít jako samostatné úložiště se studenty.
Ve skutečnosti jej můžete použít přímo na GitHubu pomocí GitHub Classroom.
### Použití s GitHub Classroom
Abyste to mohli udělat, forkněte toto repozitáře. Budete muset vytvořit repozitář pro každou lekci, takže budete muset extrahovat každou složku do samostatného repozitáře. Tímto způsobem může [GitHub Classroom](https://classroom.github.com/classrooms) zpracovat každou lekci zvlášť.
Pro správu lekcí a úkolů podle skupin vytvořte jedno úložiště na každou lekci, aby GitHub Classroom mohl připojit každý úkol samostatně.
Tyto [podrobné instrukce](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) vám poskytnou představu, jak nastavit svou třídu.
- Vytvořte fork tohoto úložiště do své organizace.
- Vytvořte samostatné úložiště pro každou lekci extrahováním složky lekce do vlastního úložiště.
- Možnost A: Vytvořte prázdná úložiště (jedno na lekci) a zkopírujte obsah složky lekce do každého z nich.
- Možnost B: Použijte přístup zachovávající historii Git (např. rozdělení složky do nového úložiště), pokud potřebujete zachovat původ.
- V GitHub Classroom vytvořte úkol pro každou lekci a odkažte na odpovídající úložiště lekce.
- Doporučené nastavení:
- Viditelnost úložiště: soukromé pro práci studentů.
- Použijte výchozí kód ze základní větve úložiště lekce.
- Přidejte šablony pro problémy a pull requesty pro kvízy a odevzdání.
- Volitelně nakonfigurujte automatické hodnocení a testy, pokud vaše lekce obsahují tyto prvky.
- Uživatelské konvence, které pomáhají:
- Názvy úložišť jako lesson-01-intro, lesson-02-html, atd.
- Štítky: quiz, assignment, needs-review, late, resubmission.
- Tagy/verze podle skupin (např. v2025-term1).
## Použití v Moodle, Canvas nebo Blackboard
Tip: Vyhněte se ukládání úložišť do synchronizovaných složek (např. OneDrive/Google Drive), abyste předešli konfliktům Git na Windows.
Tento výukový plán skvěle funguje v těchto systémech pro správu výuky! Použijte [soubor pro nahrání do Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) pro kompletní obsah, nebo vyzkoušejte [soubor Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc), který obsahuje část obsahu. Moodle Cloud nepodporuje kompletní exporty Common Cartridge, takže je lepší použít soubor pro Moodle, který lze nahrát do Canvas. Dejte nám vědět, jak můžeme tento proces zlepšit.
### Použití s Moodle, Canvas nebo Blackboard
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.cs.png)
> Výukový plán v prostředí Moodle
Tento učební plán obsahuje importovatelné balíčky pro běžné pracovní postupy LMS.
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.cs.png)
> Výukový plán v prostředí Canvas
- Moodle: Použijte soubor pro nahrání do Moodle [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) k načtení celého kurzu.
- Common Cartridge: Použijte soubor Common Cartridge [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) pro širší kompatibilitu LMS.
- Poznámky:
- Moodle Cloud má omezenou podporu Common Cartridge. Preferujte výše uvedený soubor pro Moodle, který lze také nahrát do Canvas.
- Po importu zkontrolujte moduly, termíny odevzdání a nastavení kvízů, aby odpovídaly vašemu rozvrhu.
## Použití repozitáře tak, jak je
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.cs.png)
> Učební plán v prostředí Moodle
Pokud byste chtěli použít tento repozitář v jeho aktuální podobě, bez použití GitHub Classroom, je to také možné. Budete muset studentům sdělit, kterou lekci mají společně projít.
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.cs.png)
> Učební plán v prostředí Canvas
V online formátu (Zoom, Teams nebo jiném) můžete vytvořit breakout místnosti pro kvízy a mentorovat studenty, aby se připravili na učení. Poté pozvěte studenty ke kvízům a nechte je odevzdat své odpovědi jako 'issues' v určitém čase. Stejný postup můžete použít i pro úkoly, pokud chcete, aby studenti pracovali společně a veřejně.
### Použití úložiště přímo (bez Classroom)
Pokud preferujete soukromější formát, požádejte studenty, aby si forknuli výukový plán, lekci po lekci, do svých vlastních soukromých repozitářů na GitHubu a dali vám k nim přístup. Poté mohou dokončit kvízy a úkoly soukromě a odevzdat je vám prostřednictvím issues ve vašem třídním repozitáři.
Pokud preferujete nepoužívat GitHub Classroom, můžete kurz spustit přímo z tohoto úložiště.
Existuje mnoho způsobů, jak tento výukový plán přizpůsobit online výuce. Dejte nám vědět, co vám funguje nejlépe!
- Synchronní/online formáty (Zoom/Teams):
- Pořádejte krátké úvodní aktivity vedené mentorem; použijte breakout rooms pro kvízy.
- Oznámte časové okno pro kvízy; studenti odevzdávají odpovědi jako GitHub Issues.
- Pro spolupracující úkoly studenti pracují ve veřejných úložištích lekcí a otevírají pull requesty.
- Soukromé/asynchronní formáty:
- Studenti si forkují každou lekci do svých **soukromých** úložišť a přidají vás jako spolupracovníka.
- Odevzdávají prostřednictvím Issues (kvízy) a Pull Requests (úkoly) na vašem úložišti třídy nebo jejich soukromých forcích.
## Podělte se s námi o své názory!
### Nejlepší postupy
Chceme, aby tento výukový plán fungoval pro vás a vaše studenty. Spojte se s námi v [Teacher corner](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) a otevřete [**nový issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) pro jakékoli požadavky, chyby a zpětnou vazbu.
- Poskytněte orientační lekci o základech Git/GitHub, Issues a PRs.
- Používejte kontrolní seznamy v Issues pro vícekrokové kvízy/úkoly.
- Přidejte CONTRIBUTING.md a CODE_OF_CONDUCT.md pro nastavení pravidel třídy.
- Přidejte poznámky o přístupnosti (alt text, titulky) a nabídněte tisknutelné PDF.
- Verziujte svůj obsah podle termínu a zmrazte úložiště lekcí po publikování.
### Zpětná vazba a podpora
Chceme, aby tento učební plán fungoval pro vás a vaše studenty. Prosím, otevřete nový Issue v tomto úložišti pro chyby, požadavky nebo vylepšení, nebo zahajte diskusi v Teacher Corner.
---
**Prohlášení**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
Tento dokument byl přeložen pomocí služby AI pro překlady [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T08:22:39+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T09:59:09+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "da"
}
@ -32,7 +32,7 @@ I denne lektion vil vi dække:
Programmering (også kendt som kodning) er processen med at skrive instruktioner til en enhed som en computer eller mobil enhed. Vi skriver disse instruktioner med et programmeringssprog, som derefter bliver fortolket af enheden. Disse sæt af instruktioner kan kaldes forskellige ting, men *program*, *computerprogram*, *applikation (app)* og *eksekverbar fil* er nogle populære navne.
Et *program* kan være alt, der er skrevet med kode; hjemmesider, spil og telefonapps er programmer. Selvom det er muligt at skabe et program uden at skrive kode, bliver den underliggende logik fortolket af enheden, og den logik er sandsynligvis skrevet med kode. Et program, der *kører* eller *eksekverer* kode, udfører instruktioner. Enheden, du læser denne lektion på, kører et program for at vise den på din skærm.
Et *program* kan være alt, der er skrevet med kode; hjemmesider, spil og telefonapps er programmer. Selvom det er muligt at lave et program uden at skrive kode, bliver den underliggende logik fortolket af enheden, og den logik er sandsynligvis skrevet med kode. Et program, der *kører* eller *eksekverer* kode, udfører instruktioner. Den enhed, du læser denne lektion på, kører et program for at vise den på din skærm.
✅ Lav lidt research: Hvem anses for at være verdens første computerprogrammør?
@ -83,7 +83,7 @@ back add r0,r1
end
```
Tro det eller ej, *de gør begge det samme*: udskriver en Fibonacci-sekvens op til 10.
Tro det eller ej, *de gør begge det samme*: de udskriver en Fibonacci-sekvens op til 10.
✅ En Fibonacci-sekvens er [defineret](https://en.wikipedia.org/wiki/Fibonacci_number) som en række tal, hvor hvert tal er summen af de to foregående, startende fra 0 og 1. De første 10 tal i Fibonacci-sekvensen er 0, 1, 1, 2, 3, 5, 8, 13, 21 og 34.
@ -91,11 +91,11 @@ Tro det eller ej, *de gør begge det samme*: udskriver en Fibonacci-sekvens op t
En enkelt instruktion i et program kaldes en *statement* og vil normalt have et tegn eller en linjeafstand, der markerer, hvor instruktionen slutter, eller *terminerer*. Hvordan et program terminerer varierer med hvert sprog.
Statements i et program kan afhænge af data, der leveres af en bruger eller andetsteds, for at udføre instruktioner. Data kan ændre, hvordan et program opfører sig, så programmeringssprog kommer med en måde at midlertidigt gemme data, så det kan bruges senere. Disse kaldes *variabler*. Variabler er statements, der instruerer en enhed til at gemme data i sin hukommelse. Variabler i programmer ligner variabler i algebra, hvor de har et unikt navn, og deres værdi kan ændre sig over tid.
Statements i et program kan afhænge af data, der leveres af en bruger eller andetsteds, for at udføre instruktioner. Data kan ændre, hvordan et program opfører sig, så programmeringssprog kommer med en måde at midlertidigt gemme data, så det kan bruges senere. Disse kaldes *variabler*. Variabler er statements, der instruerer en enhed i at gemme data i dens hukommelse. Variabler i programmer ligner variabler i algebra, hvor de har et unikt navn, og deres værdi kan ændre sig over tid.
Der er en chance for, at nogle statements ikke bliver eksekveret af en enhed. Dette er normalt med vilje, når det er skrevet af udvikleren, eller ved et uheld, når en uventet fejl opstår. Denne type kontrol over en applikation gør den mere robust og vedligeholdelsesvenlig. Typisk sker disse ændringer i kontrol, når visse betingelser er opfyldt. En almindelig statement, der bruges i moderne programmering til at kontrollere, hvordan et program kører, er `if..else` statement.
✅ Du vil lære mere om denne type statement i efterfølgende lektioner.
✅ Du vil lære mere om denne type statement i senere lektioner.
## Værktøjer
@ -103,7 +103,7 @@ Der er en chance for, at nogle statements ikke bliver eksekveret af en enhed. De
> 🎥 Klik på billedet ovenfor for en video om værktøjer
I dette afsnit lærer du om noget software, som du måske finder meget nyttigt, når du begynder din professionelle udviklingsrejse.
I dette afsnit vil du lære om noget software, som du måske finder meget nyttigt, når du begynder din professionelle udviklingsrejse.
Et **udviklingsmiljø** er et unikt sæt af værktøjer og funktioner, som en udvikler ofte bruger, når de skriver software. Nogle af disse værktøjer er blevet tilpasset til en udviklers specifikke behov og kan ændre sig over tid, hvis den udvikler ændrer prioriteter i arbejde, personlige projekter eller når de bruger et andet programmeringssprog. Udviklingsmiljøer er lige så unikke som de udviklere, der bruger dem.
@ -114,9 +114,9 @@ Et af de mest afgørende værktøjer til softwareudvikling er editoren. Editorer
Udviklere stoler på editorer af flere grunde:
- *Debugging* hjælper med at finde fejl og problemer ved at gennemgå koden linje for linje. Nogle editorer har debugging-funktioner; de kan tilpasses og tilføjes til specifikke programmeringssprog.
- *Syntax highlighting* tilføjer farver og tekstformatering til kode, hvilket gør det lettere at læse. De fleste editorer tillader tilpasset syntax highlighting.
- *Extensions og integrationer* er specialiserede værktøjer for udviklere, lavet af udviklere. Disse værktøjer var ikke indbygget i den grundlæggende editor. For eksempel dokumenterer mange udviklere deres kode for at forklare, hvordan den fungerer. De kan installere en stavekontrol-udvidelse for at finde stavefejl i dokumentationen. De fleste udvidelser er beregnet til brug inden for en specifik editor, og de fleste editorer kommer med en måde at søge efter tilgængelige udvidelser.
- *Tilpasning* gør det muligt for udviklere at skabe et unikt udviklingsmiljø, der passer til deres behov. De fleste editorer er ekstremt tilpasselige og kan også give udviklere mulighed for at skabe egne udvidelser.
- *Syntax highlighting* tilføjer farver og tekstformatering til kode, hvilket gør den lettere at læse. De fleste editorer tillader tilpasset syntax highlighting.
- *Extensions og integrationer* er specialiserede værktøjer til udviklere, lavet af udviklere. Disse værktøjer var ikke indbygget i editorens grundfunktioner. For eksempel dokumenterer mange udviklere deres kode for at forklare, hvordan den fungerer. De kan installere en stavekontrol-udvidelse for at finde stavefejl i dokumentationen. De fleste udvidelser er beregnet til brug inden for en specifik editor, og de fleste editorer har en måde at søge efter tilgængelige udvidelser.
- *Tilpasning* gør det muligt for udviklere at skabe et unikt udviklingsmiljø, der passer til deres behov. De fleste editorer er ekstremt tilpasselige og kan også give udviklere mulighed for at lave egne udvidelser.
#### Populære editorer og webudviklingsudvidelser
@ -137,7 +137,7 @@ Udviklere stoler på editorer af flere grunde:
Et andet afgørende værktøj er browseren. Webudviklere stoler på browseren for at se, hvordan deres kode kører på nettet. Den bruges også til at vise de visuelle elementer på en webside, der er skrevet i editoren, som HTML.
Mange browsere kommer med *udviklerværktøjer* (DevTools), der indeholder et sæt nyttige funktioner og informationer til at hjælpe udviklere med at indsamle og fange vigtig information om deres applikation. For eksempel: Hvis en webside har fejl, kan det nogle gange være nyttigt at vide, hvornår de opstod. DevTools i en browser kan konfigureres til at fange denne information.
Mange browsere kommer med *udviklerværktøjer* (DevTools), der indeholder et sæt nyttige funktioner og informationer, der hjælper udviklere med at indsamle og fange vigtig information om deres applikation. For eksempel: Hvis en webside har fejl, kan det nogle gange være nyttigt at vide, hvornår de opstod. DevTools i en browser kan konfigureres til at fange denne information.
#### Populære browsere og DevTools
@ -147,7 +147,7 @@ Mange browsere kommer med *udviklerværktøjer* (DevTools), der indeholder et s
### Kommandolinjeværktøjer
Nogle udviklere foretrækker en mindre grafisk visning til deres daglige opgaver og stoler på kommandolinjen for at opnå dette. At skrive kode kræver en betydelig mængde tastning, og nogle udviklere foretrækker ikke at forstyrre deres flow på tastaturet. De vil bruge tastaturgenveje til at skifte mellem desktopvinduer, arbejde på forskellige filer og bruge værktøjer. De fleste opgaver kan udføres med en mus, men en fordel ved at bruge kommandolinjen er, at meget kan gøres med kommandolinjeværktøjer uden behov for at skifte mellem mus og tastatur. En anden fordel ved kommandolinjen er, at den kan konfigureres, og du kan gemme en brugerdefineret konfiguration, ændre den senere og importere den til andre udviklingsmaskiner. Fordi udviklingsmiljøer er så unikke for hver udvikler, vil nogle undgå at bruge kommandolinjen, nogle vil stole helt på den, og nogle foretrækker en blanding af de to.
Nogle udviklere foretrækker en mindre grafisk visning til deres daglige opgaver og stoler på kommandolinjen for at opnå dette. At skrive kode kræver en betydelig mængde tastning, og nogle udviklere foretrækker ikke at forstyrre deres flow på tastaturet. De vil bruge tastaturgenveje til at skifte mellem desktop-vinduer, arbejde på forskellige filer og bruge værktøjer. De fleste opgaver kan udføres med en mus, men en fordel ved at bruge kommandolinjen er, at meget kan gøres med kommandolinjeværktøjer uden behov for at skifte mellem mus og tastatur. En anden fordel ved kommandolinjen er, at de er konfigurerbare, og du kan gemme en brugerdefineret konfiguration, ændre den senere og importere den til andre udviklingsmaskiner. Fordi udviklingsmiljøer er så unikke for hver udvikler, vil nogle undgå at bruge kommandolinjen, nogle vil stole helt på den, og nogle foretrækker en blanding af de to.
### Populære kommandolinjevalg
@ -158,7 +158,7 @@ Valg for kommandolinjen vil variere afhængigt af det operativsystem, du bruger.
#### Windows
- [Powershell](https://docs.microsoft.com/powershell/scripting/overview?view=powershell-7/?WT.mc_id=academic-77807-sagibbon) 💻
- [Kommandolinje](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (også kendt som CMD) 💻
- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (også kendt som CMD) 💻
- [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)
- [mintty](https://mintty.github.io/)
@ -205,13 +205,15 @@ Sammenlign nogle programmeringssprog. Hvad er nogle af de unikke træk ved JavaS
## Gennemgang & Selvstudie
Undersøg lidt om de forskellige sprog, der er tilgængelige for programmøren. Prøv at skrive en linje i ét sprog og derefter omskrive den i to andre. Hvad lærte du?
Undersøg lidt om de forskellige sprog, der er tilgængelige for programmøren. Prøv at skrive en linje i ét sprog og omskriv den derefter i to andre. Hvad lærte du?
## Opgave
[Læse dokumentationen](assignment.md)
> Bemærk: Når du vælger værktøjer til din opgave, må du ikke vælge editorer, browsere eller kommandolinjeværktøjer, der allerede er nævnt ovenfor.
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.

@ -1,25 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-26T22:25:33+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T09:59:44+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "da"
}
-->
# Læse dokumentationen
## Instruktioner
Der findes mange værktøjer, som en webudvikler kan have brug for, og som er beskrevet i [MDN-dokumentationen for klient-side værktøjer](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Vælg 3 værktøjer, der ikke er dækket i lektionen, forklar hvorfor en webudvikler ville bruge dem, og søg efter et værktøj, der falder ind under denne kategori, og del dets dokumentation. Brug ikke det samme værktøjseksempel som i MDN-dokumentationen.
Der findes mange værktøjer, som en webudvikler kan have brug for, og som er nævnt i [MDN-dokumentationen for klient-side værktøjer](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Vælg **tre værktøjer**, der **ikke er dækket i denne lektion** (eksklusive [list specifikke værktøjer eller henvis til lektionens indhold]), forklar **hvorfor** en webudvikler ville bruge hvert værktøj, og find et værktøj, der passer til hver kategori. For hvert værktøj skal du dele et link til dets officielle dokumentation (ikke eksemplet brugt på MDN).
**Format:**
- Værktøjets navn
- Hvorfor en webudvikler ville bruge det (2-3 sætninger)
- Link til dokumentation
**Længde:**
- Hver forklaring skal være 2-3 sætninger.
## Bedømmelseskriterier
Eksemplarisk | Tilstrækkelig | Kræver forbedring
--- | --- | -- |
|Forklarede hvorfor en webudvikler ville bruge værktøjet| Forklarede hvordan, men ikke hvorfor en udvikler ville bruge værktøjet| Nævnte ikke hvordan eller hvorfor en udvikler ville bruge værktøjet |
--- | --- | --- |
Forklarede hvorfor en webudvikler ville bruge værktøjet | Forklarede hvordan, men ikke hvorfor en udvikler ville bruge værktøjet | Nævnte ikke hvordan eller hvorfor en udvikler ville bruge værktøjet |
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på at opnå nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på at sikre nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-26T21:50:34+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T09:58:46+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "da"
}
@ -11,15 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Instruktioner
Forestil dig, at du bygger en indkøbskurv. Skriv noget dokumentation om de datatyper, du ville have brug for for at fuldføre din indkøbsoplevelse. Hvordan kom du frem til dine valg?
Forestil dig, at du bygger en indkøbskurv. Skriv dokumentation om de datatyper, du ville have brug for til at fuldføre din shoppingoplevelse. For hver datatype skal du forklare, hvordan og hvorfor du ville bruge den, og give et eksempel. De seks JavaScript-datatyper er: String, Number, Boolean, Null, Undefined og Object.
## Vurderingskriterier
## Bedømmelseskriterier
Kriterier | Fremragende | Tilstrækkelig | Skal forbedres
Kriterier | Fremragende | Tilstrækkelig | Kræver forbedring
--- | --- | --- | --- |
||De seks datatyper er opført og udforsket i detaljer, med dokumentation af deres anvendelse|Fire datatyper er udforsket|To datatyper er udforsket|
Datatyper | Alle seks datatyper er nævnt, udforsket i detaljer og dokumenteret med eksempler | Fire datatyper er udforsket med nogen forklaring | To datatyper er udforsket med minimal forklaring |
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -1,25 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-26T21:31:47+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T10:00:01+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "da"
}
-->
# Øv dig i HTML: Byg en blogmockup
# HTML Øvelsesopgave: Byg en Blog Mockup
## Formål
Design og håndkod HTML-strukturen til en personlig blog-hjemmeside. Denne øvelse vil hjælpe dig med at øve semantisk HTML, layoutplanlægning og kodeorganisering.
## Instruktioner
Forestil dig, at du designer eller redesigner din personlige hjemmeside. Lav en grafisk mockup af din side, og skriv derefter HTML-markuppen ned, som du ville bruge til at bygge de forskellige elementer på siden. Du kan gøre dette på papir og scanne det, eller bruge software efter eget valg bare sørg for at skrive HTML-markuppen manuelt.
1. **Design Din Blog Mockup**
- Lav en visuel skitse af din blog-hjemmeside. Inkluder nøglesektioner som header, navigation, hovedindhold, sidebar og footer.
- Du kan bruge papir og scanne din skitse, eller bruge digitale værktøjer (f.eks. Figma, Adobe XD, Canva eller endda PowerPoint).
2. **Identificer HTML-elementer**
- Lav en liste over de HTML-elementer, du planlægger at bruge til hver sektion (f.eks. `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>` osv.).
3. **Skriv HTML Markup**
- Håndkod HTML til din mockup. Fokusér på semantisk struktur og bedste praksis.
- Inkluder mindst 10 forskellige HTML-elementer.
- Tilføj kommentarer for at forklare dine valg og struktur.
4. **Indsend Dit Arbejde**
- Upload din skitse/mockup og din HTML-fil.
- Valgfrit: Tilføj en kort refleksion (23 sætninger) om dine designbeslutninger.
## Bedømmelseskriterier
| Kriterier | Fremragende | Tilstrækkelig | Kræver Forbedring |
| --------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| | En bloglayout er visuelt repræsenteret med mindst 10 markupelementer vist | En bloglayout er visuelt repræsenteret med omkring 5 markupelementer vist | En bloglayout er visuelt repræsenteret med højst 3 markupelementer vist |
| Kriterier | Fremragende | Tilstrækkelig | Kræver Forbedring |
|------------------|------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Visuel Mockup | Klar, detaljeret mockup med markerede sektioner og gennemtænkt layout | Grundlæggende mockup med nogle markerede sektioner | Minimal eller uklar mockup; mangler sektionmærker |
| HTML-elementer | Bruger 10+ semantiske HTML-elementer; viser forståelse for struktur og bedste praksis | Bruger 59 HTML-elementer; nogen semantisk struktur | Bruger færre end 5 elementer; mangler semantisk struktur |
| Kvalitet af Kode | Velorganiseret, læsbar kode med kommentarer; følger HTML-standarder | Mest organiseret kode; få kommentarer | Uorganiseret kode; mangler kommentarer |
| Refleksion | Indsigtsfuld refleksion over designvalg og udfordringer | Grundlæggende refleksion | Ingen refleksion eller mangler relevans |
## Tips
- Brug semantiske HTML-tags for bedre tilgængelighed og SEO.
- Organisér din kode med indrykning og kommentarer.
- Se [MDN HTML Elements Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) for vejledning.
- Tænk over, hvordan dit layout kan udvides eller styles i fremtidige opgaver.
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -1,25 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-26T21:38:31+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T09:59:52+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "da"
}
-->
# CSS Refaktorering
# CSS Refaktorering Opgave
## Formål
Refaktorer terrarium-projektet til at bruge **Flexbox** eller **CSS Grid** til layout. Opdater HTML og CSS efter behov for at opnå et moderne, responsivt design. Du behøver ikke implementere træk-og-slip-elementer—fokuser kun på layout og styling.
## Instruktioner
Restyl terrariet ved hjælp af enten Flexbox eller CSS Grid, og tag skærmbilleder for at vise, at du har testet det i flere browsere. Du kan være nødt til at ændre markuppen, så opret en ny version af appen med kunsten på plads til din refaktorering. Bekymr dig ikke om at gøre elementerne flytbare; refaktorer kun HTML og CSS for nu.
1. **Opret en ny version** af terrarium-appen. Opdater markeringen og CSS til at bruge Flexbox eller CSS Grid til layout.
2. **Sørg for, at kunst og elementer er på plads** som i den originale version.
3. **Test dit design** i mindst to forskellige browsere (f.eks. Chrome, Firefox, Edge).
4. **Tag skærmbilleder** af dit terrarium i hver browser for at demonstrere kompatibilitet på tværs af browsere.
5. **Indsend** din opdaterede kode og skærmbilleder.
## Bedømmelseskriterier
| Kriterier | Fremragende | Tilstrækkelig | Skal forbedres |
| --------- | ---------------------------------------------------------------- | ----------------------------- | ------------------------------------ |
| | Præsentér et fuldstændigt restylet terrarium ved hjælp af Flexbox eller CSS Grid | Restyl nogle af elementerne | Undlader at restyle terrariet helt |
| Kriterier | Fremragende | Tilstrækkelig | Kræver forbedring |
|-------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| Layout | Fuldt refaktoreret med Flexbox eller CSS Grid; visuelt tiltalende og responsivt | Nogle elementer refaktoreret; delvis brug af Flexbox eller Grid | Lille eller ingen brug af Flexbox eller Grid; layout uændret |
| Kompatibilitet | Skærmbilleder leveret for flere browsere; konsistent udseende | Skærmbilleder for én browser; mindre uoverensstemmelser | Ingen skærmbilleder eller større uoverensstemmelser |
| Kvalitet af kode | Ren, velorganiseret HTML/CSS; klare kommentarer | Noget organisation; få kommentarer | Uorganiseret kode; mangler kommentarer |
## Tips
- Gennemgå [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) og [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) vejledninger.
- Brug browserens udviklerværktøjer til at teste responsivitet.
- Kommenter din kode for klarhed.
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på at sikre nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -1,156 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T08:20:39+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T09:58:53+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "da"
}
-->
# Brug af en kodeeditor
***
Denne lektion dækker det grundlæggende i at bruge [VSCode.dev](https://vscode.dev), en webbaseret kodeeditor, så du kan foretage ændringer i din kode og bidrage til et projekt uden at skulle installere noget på din computer.
# Brug af en kodeeditor: Bliv ekspert i [VSCode.dev](https://vscode.dev)
## Læringsmål
I denne lektion vil du lære at:
- Bruge en kodeeditor i et kodeprojekt
- Holde styr på ændringer med versionskontrol
- Tilpasse editoren til udvikling
**Velkommen!**
Denne lektion tager dig fra det grundlæggende til avanceret brug af [VSCode.dev](https://vscode.dev)—den kraftfulde, webbaserede kodeeditor. Du lærer at redigere kode med selvtillid, administrere projekter, spore ændringer, installere udvidelser og samarbejde som en professionel—alt sammen direkte fra din browser, uden behov for installation.
### Forudsætninger
***
Før du begynder, skal du oprette en konto hos [GitHub](https://github.com). Gå til [GitHub](https://github.com/) og opret en konto, hvis du ikke allerede har en.
## Læringsmål
### Introduktion
Ved afslutningen af denne lektion vil du kunne:
En kodeeditor er et vigtigt værktøj til at skrive programmer og samarbejde om eksisterende kodeprojekter. Når du forstår det grundlæggende i en editor og hvordan du udnytter dens funktioner, kan du anvende dem, når du skriver kode.
- Effektivt bruge en kodeeditor til ethvert projekt, hvor som helst
- Problemfrit spore dit arbejde med indbygget versionskontrol
- Tilpasse og optimere din udviklingsarbejdsgang med editorindstillinger og udvidelser
## Kom godt i gang med VSCode.dev
***
[VSCode.dev](https://vscode.dev) er en kodeeditor på nettet. Du behøver ikke at installere noget for at bruge den, det er lige så nemt som at åbne en hvilken som helst anden hjemmeside. For at komme i gang med editoren skal du åbne følgende link: [https://vscode.dev](https://vscode.dev). Hvis du ikke er logget ind på [GitHub](https://github.com/), skal du følge vejledningen for at logge ind eller oprette en ny konto og derefter logge ind.
## Forudsætninger
Når editoren er indlæst, bør den se nogenlunde sådan ud:
For at komme i gang skal du **tilmelde dig en gratis [GitHub](https://github.com)-konto**, som giver dig mulighed for at administrere kodearkiver og samarbejde globalt. Hvis du ikke har en konto endnu, [opret en her](https://github.com/).
![Standard VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.da.png)
***
Der er tre hovedsektioner, fra venstre mod højre:
## Hvorfor bruge en webbaseret kodeeditor?
1. _Aktivitetsbjælken_, som inkluderer nogle ikoner, som for eksempel forstørrelsesglasset 🔎, tandhjulet ⚙️ og et par andre.
2. Den udvidede aktivitetsbjælke, som som standard viser _Explorer_, kaldet _sidebjælken_.
3. Og til sidst kodeområdet til højre.
En **kodeeditor** som VSCode.dev er dit kommandocenter til at skrive, redigere og administrere kode. Med en intuitiv grænseflade, masser af funktioner og øjeblikkelig adgang via browseren kan du:
Klik på hvert af ikonerne for at vise en anden menu. Når du er færdig, skal du klikke på _Explorer_, så du er tilbage, hvor du startede.
- Redigere projekter på enhver enhed
- Undgå besværet med installationer
- Samarbejde og bidrage med det samme
Når du begynder at oprette kode eller ændre eksisterende kode, sker det i det største område til højre. Du vil også bruge dette område til at visualisere eksisterende kode, hvilket du vil gøre næste gang.
Når du er fortrolig med VSCode.dev, vil du være klar til at tackle kodningsopgaver hvor som helst, når som helst.
## Åbn et GitHub-repository
***
Det første, du skal gøre, er at åbne et GitHub-repository. Der er flere måder at åbne et repository på. I dette afsnit vil du se to forskellige måder, du kan åbne et repository på, så du kan begynde at arbejde med ændringer.
## Kom godt i gang med VSCode.dev
### 1. Med editoren
Gå til **[VSCode.dev](https://vscode.dev)**—ingen installation, ingen downloads. Når du logger ind med GitHub, får du fuld adgang, inklusive synkronisering af dine indstillinger, udvidelser og arkiver. Hvis du bliver bedt om det, skal du forbinde din GitHub-konto.
Brug selve editoren til at åbne et eksternt repository. Hvis du går til [VSCode.dev](https://vscode.dev), vil du se en knap med teksten _"Open Remote Repository"_:
Når du har indlæst, vil din arbejdsplads se sådan ud:
![Åbn eksternt repository](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.da.png)
![Standard VSCode.dev](../images/default-vscode-dev har tre kerneområder fra venstre mod højre:
- **Aktivitetslinje:** Ikoner som 🔎 (Søg), ⚙️ (Indstillinger), filer, kildekontrol osv.
- **Sidebar:** Skifter kontekst baseret på det valgte ikon i aktivitetslinjen (standard er *Explorer* til visning af filer).
- **Editor/kodeområde:** Det største område til højre—hvor du faktisk redigerer og ser kode.
Du kan også bruge kommando-paletten. Kommando-paletten er en inputboks, hvor du kan skrive et hvilket som helst ord, der er en del af en kommando eller handling, for at finde den rigtige kommando at udføre. Brug menuen øverst til venstre, vælg derefter _View_, og vælg derefter _Command Palette_, eller brug følgende tastaturgenvej: Ctrl-Shift-P (på MacOS ville det være Command-Shift-P).
Klik på ikonerne for at udforske funktionerne, men vend tilbage til _Explorer_ for at holde styr på dit sted.
![Palette-menu](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.da.png)
***
Når menuen åbnes, skal du skrive _open remote repository_ og derefter vælge den første mulighed. Flere repositories, som du er en del af, eller som du for nylig har åbnet, vil blive vist. Du kan også bruge en fuld GitHub-URL til at vælge et. Brug følgende URL og indsæt den i boksen:
## Åbning af et GitHub-arkiv
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
### Metode 1: Fra editoren
✅ Hvis det lykkes, vil du se alle filer for dette repository indlæst i teksteditoren.
1. Gå til [VSCode.dev](https://vscode.dev). Klik på **"Open Remote Repository."**
### 2. Brug af URL
![Åbn fjernarkiv](../../../../8-code-editor/images/open-remote-repository brug _Command Palette_ (Ctrl-Shift-P eller Cmd-Shift-P på Mac).
Du kan også bruge en URL direkte til at indlæse et repository. For eksempel er den fulde URL for det aktuelle repository [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), men du kan erstatte GitHub-domænet med `VSCode.dev/github` og indlæse repositoryet direkte. Den resulterende URL ville være [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![Palette-menu](../images/palette-menu.pngopen remote repository.”
- Vælg muligheden.
- Indsæt din GitHub repo URL (f.eks. `https://github.com/microsoft/Web-Dev-For-Beginners`) og tryk Enter.
## Rediger filer
Hvis det lykkes, vil du se hele projektet indlæst og klar til redigering!
Når du har åbnet repositoryet i browseren/vscode.dev, er det næste skridt at foretage opdateringer eller ændringer i projektet.
***
### 1. Opret en ny fil
### Metode 2: Direkte via URL
Du kan enten oprette en fil i en eksisterende mappe eller oprette den i rodmappen. For at oprette en ny fil skal du åbne den placering/mappe, hvor du vil gemme filen, vælge ikonet _'New file ...'_ på aktivitetsbjælken _(venstre)_, give den et navn og trykke enter.
Transformér enhver GitHub repo URL til at åbne direkte i VSCode.dev ved at erstatte `github.com` med `vscode.dev/github`.
F.eks.:
![Opret en ny fil](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.da.png)
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
### 2. Rediger og gem en fil i repositoryet
Denne funktion giver lynhurtig adgang til ethvert projekt.
At bruge vscode.dev er nyttigt, når du hurtigt vil opdatere dit projekt uden at skulle indlæse nogen software lokalt. For at opdatere din kode skal du klikke på 'Explorer'-ikonet, som også findes på aktivitetsbjælken, for at se filer og mapper i repositoryet. Vælg en fil for at åbne den i kodeområdet, foretag dine ændringer og gem.
***
![Rediger en fil](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.da.png)
## Redigering af filer i dit projekt
Når du er færdig med at opdatere dit projekt, skal du vælge ikonet _`source control`_, som indeholder alle de nye ændringer, du har foretaget i dit repository.
Når dit arkiv er åbent, kan du:
For at se de ændringer, du har foretaget i dit projekt, skal du vælge filen(e) i mappen `Changes` i den udvidede aktivitetsbjælke. Dette åbner et 'Working Tree', så du visuelt kan se de ændringer, du har foretaget i filen. Rød viser en fjernelse fra projektet, mens grøn angiver en tilføjelse.
### 1. **Oprette en ny fil**
- I *Explorer*-sidebaren skal du navigere til den ønskede mappe eller bruge roden.
- Klik på _Ny fil ..._ ikonet.
- Navngiv din fil, tryk **Enter**, og din fil vises med det samme.
![Se ændringer](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.da.png)
![Opret en ny fil](../images/create-new-file 2. **Rediger og gem filer**
Hvis du er tilfreds med de ændringer, du har foretaget, skal du holde musen over mappen `Changes` og klikke på `+`-knappen for at stage ændringerne. At stage betyder blot at forberede dine ændringer til at blive committet til GitHub.
- Klik på en fil i *Explorer* for at åbne den i kodeområdet.
- Foretag de nødvendige ændringer.
- VSCode.dev gemmer automatisk dine ændringer, men du kan trykke Ctrl+S for at gemme manuelt.
Hvis du derimod ikke er tilfreds med nogle ændringer og ønsker at kassere dem, skal du holde musen over mappen `Changes` og vælge ikonet `undo`.
![Rediger en fil](../images/edit-a-file.png. **Spor & commit ændringer med versionskontrol**
Derefter skal du skrive en `commit-besked` _(En beskrivelse af den ændring, du har foretaget i projektet)_, klikke på `check-ikonet` for at committe og pushe dine ændringer.
VSCode.dev har integreret **Git** versionskontrol!
Når du er færdig med at arbejde på dit projekt, skal du vælge `hamburger-menuikonet` øverst til venstre for at vende tilbage til repositoryet på github.com.
- Klik på _'Source Control'_ ikonet for at se alle foretagne ændringer.
- Filer i `Changes`-mappen viser tilføjelser (grøn) og sletninger (rød).
![Se ændringer](../images/working-tree.png ændringer ved at klikke på `+` ved siden af filer for at forberede til commit.
- **Forkast** uønskede ændringer ved at klikke på fortryd-ikonet.
- Skriv en klar commit-besked, og klik derefter på fluebenet for at committe og pushe.
![Stage & commit ændringer](../../../../8-code-editor/images/edit-vscode.dev.gif)
For at vende tilbage til dit arkiv på GitHub skal du vælge hamburger-menuen øverst til venstre.
## Brug af udvidelser
![Stage & commit ændringer](../images/edit-vscode.dev Op med udvidelser
At installere udvidelser i VSCode giver dig mulighed for at tilføje nye funktioner og tilpasse udviklingsmiljøet i din editor for at forbedre din udviklingsarbejdsgang. Disse udvidelser hjælper dig også med at tilføje understøttelse af flere programmeringssprog og er ofte enten generiske udvidelser eller sprog-specifikke udvidelser.
Udvidelser giver dig mulighed for at tilføje sprog, temaer, debuggere og produktivitetsværktøjer til VSCode.dev—hvilket gør dit kodningsliv lettere og sjovere.
For at gennemse listen over alle tilgængelige udvidelser skal du klikke på ikonet _`Extensions`_ på aktivitetsbjælken og begynde at skrive navnet på udvidelsen i tekstfeltet mærket _'Search Extensions in Marketplace'_.
Du vil se en liste over udvidelser, hver med **udvidelsens navn, udgiverens navn, en kort beskrivelse, antal downloads** og **en stjernebedømmelse**.
### Gennemse og administrere udvidelser
![Udvidelsesdetaljer](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.da.png)
- Klik på **Udvidelsesikonet** i aktivitetslinjen.
- Søg efter en udvidelse i _'Search Extensions in Marketplace'_ boksen.
Du kan også se alle tidligere installerede udvidelser ved at udvide mappen _`Installed`_, populære udvidelser brugt af de fleste udviklere i mappen _`Popular`_ og anbefalede udvidelser til dig enten af brugere i samme arbejdsområde eller baseret på dine nyligt åbnede filer i mappen _`Recommended`_.
![Udvidelsesdetaljer](../images/extension-details:
- **Installeret**: Alle udvidelser, du har tilføjet
- **Populær**: Branchens favoritter
- **Anbefalet**: Skræddersyet til din arbejdsgang
![Se udvidelser](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.da.png)
![Se udvidelser](
### 1. Installer udvidelser
For at installere en udvidelse skal du skrive udvidelsens navn i søgefeltet og klikke på den for at se yderligere oplysninger om udvidelsen i kodeområdet, når den vises i den udvidede aktivitetsbjælke.
***
Du kan enten klikke på den _blå installer-knap_ i den udvidede aktivitetsbjælke for at installere eller bruge installer-knappen, der vises i kodeområdet, når du vælger udvidelsen for at indlæse yderligere oplysninger.
### 1. **Installer udvidelser**
![Installer udvidelser](../../../../8-code-editor/images/install-extension.gif)
- Indtast udvidelsens navn i søgefeltet, klik på den, og gennemgå detaljerne i editoren.
- Tryk på **den blå Installér-knap** i sidebar _eller_ i hovedkodeområdet.
### 2. Tilpas udvidelser
![Installer udvidelser](../images/install-extension 2. **Tilpas udvidelser**
Efter installation af udvidelsen kan det være nødvendigt at ændre dens adfærd og tilpasse den baseret på dine præferencer. For at gøre dette skal du vælge ikonet Extensions, og denne gang vil din udvidelse vises i mappen _Installed_, klikke på _**Gear-ikonet**_ og navigere til _Extensions Setting_.
- Find din installerede udvidelse.
- Klik på **Gear-ikonet** → vælg _Extension Settings_ for at finjustere funktioner efter dine præferencer.
![Tilpas udvidelsesindstillinger](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.da.png)
![Rediger udvidelsesindstillinger](../images/extension-settings 3. **Administrer udvidelser**
Du kan:
### 3. Administrer udvidelser
- **Deaktivere:** Midlertidigt slå en udvidelse fra, mens den stadig er installeret
- **Afinstallere:** Fjerne den permanent, hvis den ikke længere er nødvendig
Efter installation og brug af din udvidelse tilbyder vscode.dev muligheder for at administrere din udvidelse baseret på forskellige behov. For eksempel kan du vælge at:
Find udvidelsen, tryk på Gear-ikonet, og vælg Deaktiver eller Afinstaller, eller brug de blå knapper i kodeområdet.
- **Deaktivere:** _(Du kan midlertidigt deaktivere en udvidelse, når du ikke længere har brug for den, men ikke ønsker at afinstallere den helt)_
***
Vælg den installerede udvidelse i den udvidede aktivitetsbjælke > klik på Gear-ikonet > vælg 'Disable' eller 'Disable (Workspace)' **ELLER** Åbn udvidelsen i kodeområdet og klik på den blå Disable-knap.
## Opgave
- **Afinstallere:** Vælg den installerede udvidelse i den udvidede aktivitetsbjælke > klik på Gear-ikonet > vælg 'Uninstall' **ELLER** Åbn udvidelsen i kodeområdet og klik på den blå Uninstall-knap.
Test dine færdigheder: [Opret et CV-websted ved hjælp af vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## Opgave
## Yderligere udforskning og selvstudie
[Opret et CV-websted ved hjælp af vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- Gå dybere med [de officielle VSCode Web Docs](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Udforsk avancerede arbejdspladsfunktioner, tastaturgenveje og indstillinger.
## Gennemgang & Selvstudie
***
Læs mere om [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) og nogle af dets andre funktioner.
**Nu er du klar til at kode, skabe og samarbejde—fra hvor som helst, på enhver enhed, ved hjælp af VSCode.dev!**
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på at sikre nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:29:49+00:00",
"source_file": "AGENTS.md",
"language_code": "da"
}
-->
# AGENTS.md
## Projektoversigt
Dette er et uddannelsesmateriale-repository designet til at lære begyndere grundlæggende webudvikling. Curriculumet er et omfattende 12-ugers kursus udviklet af Microsoft Cloud Advocates, med 24 praktiske lektioner, der dækker JavaScript, CSS og HTML.
### Nøglekomponenter
- **Uddannelsesindhold**: 24 strukturerede lektioner organiseret i projektbaserede moduler
- **Praktiske projekter**: Terrarium, Skrivespil, Browserudvidelse, Rumspil, Bankapp, Kodeeditor og AI-chatassistent
- **Interaktive quizzer**: 48 quizzer med 3 spørgsmål hver (før/efter lektion vurderinger)
- **Flersproget support**: Automatiske oversættelser til 50+ sprog via GitHub Actions
- **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (til AI-projekter)
### Arkitektur
- Uddannelsesrepository med lektionbaseret struktur
- Hver lektionmappe indeholder README, kodeeksempler og løsninger
- Selvstændige projekter i separate mapper (quiz-app, diverse lektionprojekter)
- Oversættelsessystem ved hjælp af GitHub Actions (co-op-translator)
- Dokumentation leveret via Docsify og tilgængelig som PDF
## Opsætningskommandoer
Dette repository er primært til forbrug af uddannelsesindhold. For at arbejde med specifikke projekter:
### Opsætning af hovedrepository
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Opsætning af Quiz App (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### Bankprojekt API (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Browserudvidelsesprojekter
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Rumspilsprojekter
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Chatprojekt (Python-backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Udviklingsworkflow
### For indholdsbidragydere
1. **Fork repositoryet** til din GitHub-konto
2. **Klon din fork** lokalt
3. **Opret en ny branch** til dine ændringer
4. Foretag ændringer i lektionindhold eller kodeeksempler
5. Test eventuelle kodeændringer i relevante projektmapper
6. Indsend pull requests i henhold til bidragsretningslinjer
### For lærende
1. Fork eller klon repositoryet
2. Naviger til lektionmapperne i rækkefølge
3. Læs README-filerne for hver lektion
4. Tag før-lektion quizzer på https://ff-quizzes.netlify.app/web/
5. Arbejd gennem kodeeksempler i lektionmapperne
6. Fuldfør opgaver og udfordringer
7. Tag efter-lektion quizzer
### Live udvikling
- **Dokumentation**: Kør `docsify serve` i roden (port 3000)
- **Quiz App**: Kør `npm run dev` i quiz-app mappen
- **Projekter**: Brug VS Code Live Server-udvidelsen til HTML-projekter
- **API-projekter**: Kør `npm start` i de respektive API-mapper
## Testinstruktioner
### Test af Quiz App
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Test af Bank API
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### Generel testtilgang
- Dette er et uddannelsesrepository uden omfattende automatiserede tests
- Manuel test fokuserer på:
- Kodeeksempler kører uden fejl
- Links i dokumentationen fungerer korrekt
- Projektbygninger fuldføres succesfuldt
- Eksempler følger bedste praksis
### Kontroller før indsendelse
- Kør `npm run lint` i mapper med package.json
- Bekræft, at markdown-links er gyldige
- Test kodeeksempler i browser eller Node.js
- Kontroller, at oversættelser bevarer korrekt struktur
## Kodestilretningslinjer
### JavaScript
- Brug moderne ES6+ syntaks
- Følg standard ESLint-konfigurationer leveret i projekterne
- Brug meningsfulde variabel- og funktionsnavne for uddannelsesmæssig klarhed
- Tilføj kommentarer, der forklarer koncepter for lærende
- Formater med Prettier, hvor det er konfigureret
### HTML/CSS
- Semantiske HTML5-elementer
- Principper for responsivt design
- Klare klassifikationsnavne
- Kommentarer, der forklarer CSS-teknikker for lærende
### Python
- PEP 8 stilretningslinjer
- Klare, uddannelsesmæssige kodeeksempler
- Type hints, hvor det er nyttigt for læring
### Markdown-dokumentation
- Klar overskriftsstruktur
- Kodeblokke med sprogspecifikation
- Links til yderligere ressourcer
- Skærmbilleder og billeder i `images/` mapper
- Alt-tekst til billeder for tilgængelighed
### Filorganisation
- Lektioner nummereret sekventielt (1-getting-started-lessons, 2-js-basics, osv.)
- Hvert projekt har `solution/` og ofte `start/` eller `your-work/` mapper
- Billeder gemt i lektion-specifikke `images/` mapper
- Oversættelser i `translations/{language-code}/` struktur
## Bygning og udrulning
### Quiz App udrulning (Azure Static Web Apps)
Quiz-app er konfigureret til udrulning på Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Azure Static Web Apps konfiguration:
- **App placering**: `/quiz-app`
- **Output placering**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Generering af dokumentation som PDF
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Docsify-dokumentation
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Projekt-specifikke bygninger
Hver projektmappe kan have sin egen byggeproces:
- Vue-projekter: `npm run build` skaber produktionsbundter
- Statiske projekter: Ingen byggeproces, server filer direkte
## Retningslinjer for pull requests
### Titelformat
Brug klare, beskrivende titler, der angiver ændringsområdet:
- `[Quiz-app] Tilføj ny quiz til lektion X`
- `[Lesson-3] Ret stavefejl i terrarium-projekt`
- `[Translation] Tilføj spansk oversættelse til lektion 5`
- `[Docs] Opdater opsætningsinstruktioner`
### Påkrævede kontroller
Før indsendelse af en PR:
1. **Kodekvalitet**:
- Kør `npm run lint` i berørte projektmapper
- Ret alle linting-fejl og advarsler
2. **Bygverifikation**:
- Kør `npm run build`, hvis relevant
- Sørg for, at der ikke er byggefejl
3. **Linkvalidering**:
- Test alle markdown-links
- Bekræft, at billedreferencer fungerer
4. **Indholdsrevision**:
- Læs korrektur for stave- og grammatikfejl
- Sørg for, at kodeeksempler er korrekte og uddannelsesmæssige
- Bekræft, at oversættelser bevarer original betydning
### Bidragskrav
- Accepter Microsoft CLA (automatisk kontrol ved første PR)
- Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerede retningslinjer
- Referer til problemnumre i PR-beskrivelsen, hvis relevant
### Reviewproces
- PR'er gennemgås af maintainers og fællesskabet
- Uddannelsesmæssig klarhed prioriteres
- Kodeeksempler skal følge aktuelle bedste praksis
- Oversættelser gennemgås for nøjagtighed og kulturel relevans
## Oversættelsessystem
### Automatisk oversættelse
- Bruger GitHub Actions med co-op-translator workflow
- Oversætter automatisk til 50+ sprog
- Kildemapper i hovedmapper
- Oversatte filer i `translations/{language-code}/` mapper
### Tilføjelse af manuelle oversættelsesforbedringer
1. Find filen i `translations/{language-code}/`
2. Foretag forbedringer, mens strukturen bevares
3. Sørg for, at kodeeksempler forbliver funktionelle
4. Test eventuelt lokaliseret quizindhold
### Oversættelsesmetadata
Oversatte filer inkluderer metadata-header:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Fejlfinding og problemløsning
### Almindelige problemer
**Quiz-app starter ikke**:
- Kontroller Node.js version (v14+ anbefales)
- Slet `node_modules` og `package-lock.json`, kør `npm install` igen
- Kontroller for portkonflikter (standard: Vite bruger port 5173)
**API-server starter ikke**:
- Bekræft, at Node.js version opfylder minimumskrav (node >=10)
- Kontroller, om porten allerede er i brug
- Sørg for, at alle afhængigheder er installeret med `npm install`
**Browserudvidelse indlæses ikke**:
- Bekræft, at manifest.json er korrekt formateret
- Kontroller browserkonsollen for fejl
- Følg browser-specifikke installationsinstruktioner for udvidelser
**Problemer med Python-chatprojekt**:
- Sørg for, at OpenAI-pakken er installeret: `pip install openai`
- Bekræft, at GITHUB_TOKEN miljøvariablen er sat
- Kontroller GitHub Models adgangstilladelser
**Docsify serverer ikke dokumentation**:
- Installer docsify-cli globalt: `npm install -g docsify-cli`
- Kør fra repositoryets rodmappe
- Kontroller, at `docs/_sidebar.md` eksisterer
### Tips til udviklingsmiljø
- Brug VS Code med Live Server-udvidelsen til HTML-projekter
- Installer ESLint og Prettier-udvidelser for konsistent formatering
- Brug browserens DevTools til fejlfinding af JavaScript
- For Vue-projekter, installer Vue DevTools browserudvidelse
### Ydelseshensyn
- Det store antal oversatte filer (50+ sprog) betyder, at fulde kloner er store
- Brug en lav dybde klon, hvis du kun arbejder på indhold: `git clone --depth 1`
- Ekskluder oversættelser fra søgninger, når du arbejder på engelsk indhold
- Byggeprocesser kan være langsomme ved første kørsel (npm install, Vite build)
## Sikkerhedshensyn
### Miljøvariabler
- API-nøgler må aldrig committes til repositoryet
- Brug `.env` filer (allerede i `.gitignore`)
- Dokumenter påkrævede miljøvariabler i projekt-README'er
### Python-projekter
- Brug virtuelle miljøer: `python -m venv venv`
- Hold afhængigheder opdateret
- GitHub tokens bør have minimale nødvendige tilladelser
### GitHub Models adgang
- Personlige adgangstokens (PAT) kræves for GitHub Models
- Tokens bør gemmes som miljøvariabler
- Tokens eller legitimationsoplysninger må aldrig committes
## Yderligere noter
### Målgruppe
- Komplette begyndere inden for webudvikling
- Studerende og selvstændige lærende
- Lærere, der bruger curriculumet i klasseværelser
- Indholdet er designet til tilgængelighed og gradvis færdighedsopbygning
### Uddannelsesfilosofi
- Projektbaseret læringsmetode
- Hyppige videnskontroller (quizzer)
- Praktiske kodningsøvelser
- Eksempler med anvendelse i den virkelige verden
- Fokus på grundlæggende før frameworks
### Repository-vedligeholdelse
- Aktivt fællesskab af lærende og bidragydere
- Regelmæssige opdateringer af afhængigheder og indhold
- Problemer og diskussioner overvåges af maintainers
- Oversættelsesopdateringer automatiseret via GitHub Actions
### Relaterede ressourcer
- [Microsoft Learn-moduler](https://docs.microsoft.com/learn/)
- [Student Hub-ressourcer](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefales til lærende
- Yderligere kurser: Generativ AI, Data Science, ML, IoT curriculum tilgængelige
### Arbejde med specifikke projekter
For detaljerede instruktioner om individuelle projekter, se README-filerne i:
- `quiz-app/README.md` - Vue 3 quiz-applikation
- `7-bank-project/README.md` - Bankapplikation med autentifikation
- `5-browser-extension/README.md` - Udvikling af browserudvidelser
- `6-space-game/README.md` - Canvas-baseret spiludvikling
- `9-chat-project/README.md` - AI-chatassistentprojekt
### Monorepo-struktur
Selvom det ikke er en traditionel monorepo, indeholder dette repository flere uafhængige projekter:
- Hver lektion er selvstændig
- Projekter deler ikke afhængigheder
- Arbejd på individuelle projekter uden at påvirke andre
- Klon hele repoet for den fulde curriculumoplevelse
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på at sikre nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -1,123 +1,126 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T08:04:40+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T09:57:20+00:00",
"source_file": "README.md",
"language_code": "da"
}
-->
[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
Følg disse trin for at komme i gang med at bruge ressourcerne:
1. **Fork repositoryet**: Klik [![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. **Klon repositoryet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Deltag i Azure AI Foundry Discord og mød eksperter og andre udviklere**](https://discord.com/invite/ByRwuEEgH4)
Følg disse trin for at komme i gang med at bruge ressourcerne:
1. **Fork repositoryet**: Klik [![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. **Klon repositoryet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Deltag i Azure AI Foundry Discord og mød eksperter og andre udviklere**](https://discord.com/invite/ByRwuEEgH4)
# Webudvikling for begyndere - Et kursusforløb
# Webudvikling for begyndere - Et pensum
Lær grundprincipperne i webudvikling med vores 12-ugers omfattende kursus fra Microsoft Cloud Advocates. Hver af de 24 lektioner dækker JavaScript, CSS og HTML gennem praktiske projekter som terrarier, browserudvidelser og rumspil. Deltag i quizzer, diskussioner og praktiske opgaver. Forbedr dine færdigheder og optimer din læring med vores effektive projektbaserede undervisningsmetode. Start din koderejse i dag!
Lær grundlæggende webudvikling med vores 12-ugers omfattende kursus fra Microsoft Cloud Advocates. Hver af de 24 lektioner dykker ned i JavaScript, CSS og HTML gennem praktiske projekter som terrarier, browserudvidelser og rumspil. Engager dig med quizzer, diskussioner og praktiske opgaver. Forbedr dine færdigheder og optimer din viden med vores effektive projektbaserede undervisningsmetode. Start din koderejse i dag!
### 🌐 Understøttelse af flere sprog
### 🌐 Understøttelse af flere sprog
#### Understøttet via GitHub Action (Automatisk og altid opdateret)
#### Understøttet via GitHub Action (Automatisk & Altid Opdateret)
[Fransk](../fr/README.md) | [Spansk](../es/README.md) | [Tysk](../de/README.md) | [Russisk](../ru/README.md) | [Arabisk](../ar/README.md) | [Persisk (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Kinesisk (Forenklet)](../zh/README.md) | [Kinesisk (Traditionel, Macau)](../mo/README.md) | [Kinesisk (Traditionel, Hong Kong)](../hk/README.md) | [Kinesisk (Traditionel, Taiwan)](../tw/README.md) | [Japansk](../ja/README.md) | [Koreansk](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalesisk](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugisisk (Portugal)](../pt/README.md) | [Portugisisk (Brasilien)](../br/README.md) | [Italiensk](../it/README.md) | [Polsk](../pl/README.md) | [Tyrkisk](../tr/README.md) | [Græsk](../el/README.md) | [Thai](../th/README.md) | [Svensk](../sv/README.md) | [Dansk](./README.md) | [Norsk](../no/README.md) | [Finsk](../fi/README.md) | [Hollandsk](../nl/README.md) | [Hebraisk](../he/README.md) | [Vietnamesisk](../vi/README.md) | [Indonesisk](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Ungarsk](../hu/README.md) | [Tjekkisk](../cs/README.md) | [Slovakisk](../sk/README.md) | [Rumænsk](../ro/README.md) | [Bulgarsk](../bg/README.md) | [Serbisk (Kyrillisk)](../sr/README.md) | [Kroatisk](../hr/README.md) | [Slovensk](../sl/README.md) | [Ukrainsk](../uk/README.md) | [Burmesisk (Myanmar)](../my/README.md)
[Fransk](../fr/README.md) | [Spansk](../es/README.md) | [Tysk](../de/README.md) | [Russisk](../ru/README.md) | [Arabisk](../ar/README.md) | [Persisk (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Kinesisk (Forenklet)](../zh/README.md) | [Kinesisk (Traditionelt, Macau)](../mo/README.md) | [Kinesisk (Traditionelt, Hong Kong)](../hk/README.md) | [Kinesisk (Traditionelt, Taiwan)](../tw/README.md) | [Japansk](../ja/README.md) | [Koreansk](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugisisk (Portugal)](../pt/README.md) | [Portugisisk (Brasilien)](../br/README.md) | [Italiensk](../it/README.md) | [Polsk](../pl/README.md) | [Tyrkisk](../tr/README.md) | [Græsk](../el/README.md) | [Thai](../th/README.md) | [Svensk](../sv/README.md) | [Dansk](./README.md) | [Norsk](../no/README.md) | [Finsk](../fi/README.md) | [Hollandsk](../nl/README.md) | [Hebraisk](../he/README.md) | [Vietnamesisk](../vi/README.md) | [Indonesisk](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filippinsk)](../tl/README.md) | [Swahili](../sw/README.md) | [Ungarsk](../hu/README.md) | [Tjekkisk](../cs/README.md) | [Slovakisk](../sk/README.md) | [Rumænsk](../ro/README.md) | [Bulgarsk](../bg/README.md) | [Serbisk (Kyrillisk)](../sr/README.md) | [Kroatisk](../hr/README.md) | [Slovensk](../sl/README.md) | [Ukrainsk](../uk/README.md) | [Burmesisk (Myanmar)](../my/README.md)
**Hvis du ønsker yderligere oversættelser, kan understøttede sprog findes [her](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Hvis du ønsker yderligere oversættelser, er understøttede sprog listet [her](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
#### 🧑‍🎓 _Er du studerende?_
#### 🧑‍🎓 _Er du studerende?_
Besøg [**Student Hub-siden**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), hvor du finder ressourcer for begyndere, studenterpakker og endda måder at få en gratis certifikatvoucher. Dette er siden, du bør bogmærke og tjekke regelmæssigt, da vi opdaterer indholdet månedligt.
Besøg [**Student Hub-siden**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), hvor du finder ressourcer for begyndere, studenterpakker og endda måder at få en gratis certifikatvoucher. Dette er siden, du vil bogmærke og tjekke fra tid til anden, da vi skifter indhold månedligt.
### 📣 Meddelelse - _Nyt projekt til opbygning med Generativ AI_
### 📣 Meddelelse - _Nyt projekt at bygge med Generativ AI_
Nyt AI-assistentprojekt er netop tilføjet, tjek det ud [projekt](./09-chat-project/README.md)
Nyt AI-assistentprojekt er netop tilføjet, tjek det ud [projekt](./09-chat-project/README.md)
### 📣 Meddelelse - _Nyt kursusforløb_ om Generativ AI for JavaScript er netop udgivet
### 📣 Meddelelse - _Nyt pensum_ om Generativ AI for JavaScript er netop udgivet
Gå ikke glip af vores nye kursusforløb om Generativ AI!
Gå ikke glip af vores nye pensum om Generativ AI!
Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at komme i gang!
Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at komme i gang!
![Baggrund](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.da.png)
![Baggrund](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.da.png)
- Lektioner, der dækker alt fra grundlæggende til RAG.
- Interager med historiske figurer ved hjælp af GenAI og vores ledsagerapp.
- Sjov og engagerende fortælling, hvor du rejser i tiden!
- Lektioner, der dækker alt fra grundlæggende til RAG.
- Interager med historiske figurer ved hjælp af GenAI og vores ledsagerapp.
- Sjov og engagerende fortælling, du vil rejse i tiden!
![Karakter](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.da.png)
![karakter](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.da.png)
Hver lektion inkluderer en opgave, en videnstest og en udfordring, der guider dig i at lære emner som:
- Prompting og prompt engineering
- Tekst- og billedapp-generering
- Søgeapps
Hver lektion inkluderer en opgave, en videnstest og en udfordring, der guider dig i at lære emner som:
- Prompting og prompt engineering
- Tekst- og billedapp-generering
- Søgeapps
Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at komme i gang!
Besøg [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course) for at komme i gang!
## 🌱 Kom godt i gang
> **Lærere**, vi har [inkluderet nogle forslag](for-teachers.md) til, hvordan dette kursusforløb kan bruges. Vi vil meget gerne høre din feedback [i vores diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Studerende](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, for hver lektion, start med en quiz før lektionen og fortsæt med at læse undervisningsmaterialet, gennemføre de forskellige aktiviteter og teste din forståelse med quizzen efter lektionen.
## 🌱 Kom godt i gang
For at forbedre din læringsoplevelse, forbind dig med dine medstuderende for at arbejde på projekterne sammen! Diskussioner opfordres i vores [diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), hvor vores team af moderatorer vil være tilgængelige for at besvare dine spørgsmål.
> **Lærere**, vi har [inkluderet nogle forslag](for-teachers.md) til, hvordan man bruger dette pensum. Vi vil meget gerne høre din feedback [i vores diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
For at udvide din uddannelse anbefaler vi stærkt at udforske [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) for yderligere studiematerialer.
**[Studerende](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, for hver lektion, start med en quiz før lektionen og fortsæt med at læse lektionens materiale, fuldføre de forskellige aktiviteter og teste din forståelse med quizzen efter lektionen.
### 📋 Opsætning af dit miljø
For at forbedre din læringsoplevelse, forbind med dine medstuderende for at arbejde på projekterne sammen! Diskussioner opfordres i vores [diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), hvor vores team af moderatorer vil være tilgængelige for at besvare dine spørgsmål.
Dette kursusforløb har et udviklingsmiljø klar til brug! Når du starter, kan du vælge at køre kursusforløbet i en [Codespace](https://github.com/features/codespaces/) (_et browserbaseret miljø uden behov for installationer_) eller lokalt på din computer ved hjælp af en teksteditor som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
For at udvide din uddannelse anbefaler vi stærkt at udforske [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) for yderligere studiematerialer.
#### Opret dit repository
For nemt at gemme dit arbejde anbefales det, at du opretter din egen kopi af dette repository. Du kan gøre dette ved at klikke på knappen **Use this template** øverst på siden. Dette vil oprette et nyt repository i din GitHub-konto med en kopi af kursusforløbet.
### 📋 Opsætning af dit miljø
Følg disse trin:
1. **Fork repositoryet**: Klik på "Fork"-knappen øverst til højre på denne side.
2. **Klon repositoryet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
Dette pensum har et udviklingsmiljø klar til brug! Når du kommer i gang, kan du vælge at køre pensum i en [Codespace](https://github.com/features/codespaces/) (_et browserbaseret miljø uden behov for installationer_), eller lokalt på din computer ved hjælp af en teksteditor som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Kør kursusforløbet i en Codespace
#### Opret dit repository
For at du nemt kan gemme dit arbejde, anbefales det, at du opretter din egen kopi af dette repository. Du kan gøre dette ved at klikke på knappen **Use this template** øverst på siden. Dette vil oprette et nyt repository i din GitHub-konto med en kopi af pensum.
I din kopi af dette repository, som du har oprettet, skal du klikke på knappen **Code** og vælge **Open with Codespaces**. Dette vil oprette en ny Codespace, som du kan arbejde i.
Følg disse trin:
1. **Fork repositoryet**: Klik på "Fork"-knappen øverst til højre på denne side.
2. **Klon repositoryet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
[!Codespace](../..)./images/createcodespace.png)
#### Kør pensum i en Codespace
#### Kør kursusforløbet lokalt på din computer
I din kopi af dette repository, som du har oprettet, klik på knappen **Code** og vælg **Open with Codespaces**. Dette vil oprette en ny Codespace, som du kan arbejde i.
For at køre dette kursusforløb lokalt på din computer skal du bruge en teksteditor, en browser og et kommandolinjeværktøj. Vores første lektion, [Introduktion til programmeringssprog og værktøjer](../../1-getting-started-lessons/1-intro-to-programming-languages), vil guide dig gennem forskellige muligheder for hvert af disse værktøjer, så du kan vælge det, der passer bedst til dig.
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.da.png)
Vi anbefaler at bruge [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som din editor, som også har en indbygget [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan downloade Visual Studio Code [her](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Kør pensum lokalt på din computer
1. Klon dit repository til din computer. Du kan gøre dette ved at klikke på knappen **Code** og kopiere URL'en:
For at køre dette pensum lokalt på din computer, skal du bruge en teksteditor, en browser og et kommandolinjeværktøj. Vores første lektion, [Introduktion til programmeringssprog og værktøjer](../../1-getting-started-lessons/1-intro-to-programming-languages), vil guide dig gennem forskellige muligheder for hvert af disse værktøjer, så du kan vælge det, der passer bedst til dig.
[!CodeSpace](./images/createcodespace.png)
Vores anbefaling er at bruge [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som din editor, som også har en indbygget [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan downloade Visual Studio Code [her](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Åbn derefter [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) og kør følgende kommando, hvor `<your-repository-url>` erstattes med den URL, du lige har kopieret:
1. Klon dit repository til din computer. Du kan gøre dette ved at klikke på knappen **Code** og kopiere URL'en:
[CodeSpace](./images/createcodespace.png)
Åbn derefter [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) inden for [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) og kør følgende kommando, hvor du erstatter `<your-repository-url>` med den URL, du lige har kopieret:
```bash
git clone <your-repository-url>
```
```
2. Åbn mappen i Visual Studio Code. Du kan gøre dette ved at klikke på **File** > **Open Folder** og vælge den mappe, du lige har klonet.
2. Åbn mappen i Visual Studio Code. Du kan gøre dette ved at klikke på **File**
> **Åbn mappe** og vælg den mappe, du lige har klonet.
> Anbefalede Visual Studio Code-udvidelser:
> Anbefalede Visual Studio Code-udvidelser:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - til at forhåndsvise HTML-sider direkte i Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - til at hjælpe dig med at skrive kode hurtigere
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - for at forhåndsvise HTML-sider inden for Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - for at hjælpe dig med at skrive kode hurtigere
## 📂 Hver lektion inkluderer:
@ -125,63 +128,62 @@ Vi anbefaler at bruge [Visual Studio Code](https://code.visualstudio.com/?WT.mc_
- valgfri supplerende video
- opvarmningsquiz før lektionen
- skriftlig lektion
- for projektbaserede lektioner, trin-for-trin vejledninger til at bygge projektet
- videnskontroller
- for projektbaserede lektioner, trin-for-trin vejledninger om, hvordan man bygger projektet
- videnstest
- en udfordring
- supplerende læsning
- opgave
- [quiz efter lektionen](https://ff-quizzes.netlify.app/web/)
> **En note om quizzer**: Alle quizzer findes i Quiz-app-mappen, i alt 48 quizzer med tre spørgsmål hver. De er tilgængelige [her](https://ff-quizzes.netlify.app/web/), og quiz-appen kan køres lokalt eller implementeres på Azure; følg instruktionerne i `quiz-app`-mappen.
## 🗃️ Lektioner
| | Projektnavn | Lærte begreber | Læringsmål | Linket lektion | Forfatter |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------: | :-----------------------: |
| 01 | Kom godt i gang | Introduktion til programmering og værktøjer | Lær de grundlæggende principper bag de fleste programmeringssprog og om software, der hjælper professionelle udviklere i deres arbejde | [Introduktion til programmeringssprog og værktøjer](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Kom godt i gang | Grundlæggende om GitHub, inklusiv teamwork | Hvordan man bruger GitHub i dit projekt, og hvordan man samarbejder med andre om en kodebase | [Introduktion til GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Kom godt i gang | Tilgængelighed | Lær det grundlæggende om webtilgængelighed | [Grundlæggende tilgængelighed](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Grundlæggende | JavaScript Datatyper | Det grundlæggende om JavaScript-datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Grundlæggende | Funktioner og metoder | Lær om funktioner og metoder til at styre en applikations logikflow | [Funktioner og metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine og Christopher |
| 06 | JS Grundlæggende | Beslutningstagning med JS | Lær hvordan man skaber betingelser i din kode ved hjælp af beslutningstagende metoder | [Beslutningstagning](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Grundlæggende | Arrays og loops | Arbejd med data ved hjælp af arrays og loops i JavaScript | [Arrays og loops](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praksis | Byg HTML for at skabe et online terrarium med fokus på at bygge et layout | [Introduktion til HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praksis | Byg CSS for at style det online terrarium med fokus på det grundlæggende i CSS, inklusiv at gøre siden responsiv | [Introduktion til CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, DOM-manipulation | Byg JavaScript for at få terrariet til at fungere som en drag/drop-grænseflade med fokus på closures og DOM-manipulation | [JavaScript Closures, DOM-manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | Byg et skrive-spil | Lær hvordan man bruger tastaturbegivenheder til at styre logikken i din JavaScript-app | [Event-drevet programmering](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Arbejde med browsere | Lær hvordan browsere fungerer, deres historie, og hvordan man opbygger de første elementer i en browserudvidelse | [Om browsere](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Bygge en formular, kalde en API og gemme variabler i lokal storage | Byg JavaScript-elementerne i din browserudvidelse for at kalde en API ved hjælp af variabler gemt i lokal storage | [APIs, formularer og lokal storage](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Baggrundsprocesser i browseren, webperformance | Brug browserens baggrundsprocesser til at administrere udvidelsens ikon; lær om webperformance og nogle optimeringer | [Baggrundsopgaver og performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Mere avanceret spiludvikling med JavaScript | Lær om arv ved hjælp af både klasser og komposition samt Pub/Sub-mønsteret som forberedelse til at bygge et spil | [Introduktion til avanceret spiludvikling](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Tegning på canvas | Lær om Canvas API, som bruges til at tegne elementer på en skærm | [Tegning på canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Flytte elementer rundt på skærmen | Opdag hvordan elementer kan få bevægelse ved hjælp af kartesiske koordinater og Canvas API | [Flytte elementer rundt](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Kollisionsdetektion | Få elementer til at kollidere og reagere på hinanden ved hjælp af tastetryk og tilføj en cooldown-funktion for at sikre performance | [Kollisionsdetektion](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Holde styr på point | Udfør matematiske beregninger baseret på spillets status og performance | [Holde styr på point](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Afslutte og genstarte spillet | Lær om at afslutte og genstarte spillet, inklusiv oprydning af aktiver og nulstilling af variabelværdier | [Afslutningsbetingelse](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-skabeloner og ruter i en webapp | Lær hvordan man opbygger strukturen af en multipages hjemmesidearkitektur ved hjælp af routing og HTML-skabeloner | [HTML-skabeloner og ruter](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Bygge en login- og registreringsformular | Lær om at bygge formularer og håndtere valideringsrutiner | [Formularer](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Metoder til at hente og bruge data | Hvordan data flyder ind og ud af din app, hvordan man henter det, gemmer det og bortskaffer det | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Begreber om tilstandsadministration | Lær hvordan din app bevarer tilstand og hvordan man administrerer det programmatisk | [Tilstandsadministration](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Arbejde med VScode | Lær hvordan man bruger en kodeeditor | [Brug VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | Arbejde med AI | Lær hvordan man bygger sin egen AI-assistent | [AI-assistentprojekt](./9-chat-project/README.md) | Chris |
| | Projekt Navn | Lærte Koncepter | Læringsmål | Linket Lektion | Forfatter |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :-----------------------: |
| 01 | Kom godt i gang | Introduktion til programmering og værktøjer til faget | Lær de grundlæggende principper bag de fleste programmeringssprog og om software, der hjælper professionelle udviklere i deres arbejde | [Introduktion til programmeringssprog og værktøjer til faget](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Kom godt i gang | Grundlæggende om GitHub, inklusiv teamwork | Hvordan man bruger GitHub i sit projekt, og hvordan man samarbejder med andre om en kodebase | [Introduktion til GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Kom godt i gang | Tilgængelighed | Lær det grundlæggende om webtilgængelighed | [Grundlæggende om tilgængelighed](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Grundlæggende | JavaScript Datatyper | Det grundlæggende om JavaScript datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Grundlæggende | Funktioner og Metoder | Lær om funktioner og metoder til at styre en applikations logikflow | [Funktioner og Metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine og Christopher |
| 06 | JS Grundlæggende | Beslutningstagning med JS | Lær hvordan man skaber betingelser i sin kode ved hjælp af beslutningstagende metoder | [Beslutningstagning](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Grundlæggende | Arrays og Loops | Arbejd med data ved hjælp af arrays og loops i JavaScript | [Arrays og Loops](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praksis | Byg HTML for at skabe et online terrarium med fokus på at bygge et layout | [Introduktion til HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praksis | Byg CSS for at style det online terrarium med fokus på det grundlæggende i CSS, inklusiv at gøre siden responsiv | [Introduktion til CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, DOM-manipulation | Byg JavaScript for at få terrariet til at fungere som en drag/drop-grænseflade med fokus på closures og DOM-manipulation | [JavaScript Closures, DOM-manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | Byg et Tastaturspil | Lær hvordan man bruger tastaturbegivenheder til at styre logikken i sin JavaScript-app | [Event-Drevet Programmering](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Arbejde med Browsere | Lær hvordan browsere fungerer, deres historie, og hvordan man opbygger de første elementer af en browserudvidelse | [Om Browsere](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Byg en formular, kald en API og gem variabler i lokal lagring | Byg JavaScript-elementerne i din browserudvidelse for at kalde en API ved hjælp af variabler gemt i lokal lagring | [APIs, Formularer og Lokal Lagring](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Baggrundsprocesser i browseren, webydelse | Brug browserens baggrundsprocesser til at administrere udvidelsens ikon; lær om webydelse og nogle optimeringer | [Baggrundsopgaver og Ydelse](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Mere Avanceret Spiludvikling med JavaScript | Lær om arv ved hjælp af både klasser og komposition samt Pub/Sub-mønsteret som forberedelse til at bygge et spil | [Introduktion til Avanceret Spiludvikling](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Tegning på canvas | Lær om Canvas API, der bruges til at tegne elementer på en skærm | [Tegning på Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Flytte elementer rundt på skærmen | Opdag hvordan elementer kan få bevægelse ved hjælp af kartesiske koordinater og Canvas API | [Flytte Elementer Rundt](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Kollisionsdetektion | Få elementer til at kollidere og reagere på hinanden ved hjælp af tastetryk og tilføj en cooldown-funktion for at sikre spillets ydelse | [Kollisionsdetektion](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Holde styr på point | Udfør matematiske beregninger baseret på spillets status og ydelse | [Holde Styr på Point](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Afslutte og genstarte spillet | Lær om at afslutte og genstarte spillet, inklusiv oprydning af aktiver og nulstilling af variabelværdier | [Afslutningsbetingelse](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-skabeloner og ruter i en webapp | Lær hvordan man opbygger arkitekturen for en hjemmeside med flere sider ved hjælp af routing og HTML-skabeloner | [HTML-skabeloner og Ruter](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Byg en Login- og Registreringsformular | Lær om at bygge formularer og håndtere valideringsrutiner | [Formularer](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Metoder til at hente og bruge data | Hvordan data flyder ind og ud af din app, hvordan man henter det, gemmer det og bortskaffer det | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Koncepter for tilstandsadministration | Lær hvordan din app bevarer tilstand og hvordan man administrerer det programmatisk | [Tilstandsadministration](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Arbejde med VScode | Lær hvordan man bruger en kodeeditor | [Brug VScode Kodeeditor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | Arbejde med AI | Lær hvordan man bygger sin egen AI-assistent | [AI Assistent-projekt](./9-chat-project/README.md) | Chris |
## 🏫 Pædagogik
Vores pensum er designet med to centrale pædagogiske principper i tankerne:
Vores pensum er designet med to nøglepædagogiske principper i tankerne:
* projektbaseret læring
* hyppige quizzer
Programmet underviser i grundlæggende JavaScript, HTML og CSS samt de nyeste værktøjer og teknikker, som moderne webudviklere bruger. Studerende får mulighed for at opbygge praktisk erfaring ved at bygge et skrive-spil, et virtuelt terrarium, en miljøvenlig browserudvidelse, et space-invader-lignende spil og en bankapp til virksomheder. Ved slutningen af serien vil de studerende have opnået en solid forståelse af webudvikling.
Programmet underviser i grundlæggende JavaScript, HTML og CSS samt de nyeste værktøjer og teknikker, som nutidens webudviklere bruger. Studerende får mulighed for at opbygge praktisk erfaring ved at bygge et tastaturspil, et virtuelt terrarium, en miljøvenlig browserudvidelse, et space-invader-lignende spil og en bankapp til virksomheder. Ved afslutningen af serien vil de studerende have opnået en solid forståelse af webudvikling.
> 🎓 Du kan tage de første par lektioner i dette pensum som en [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) på Microsoft Learn!
Ved at sikre, at indholdet er knyttet til projekter, bliver processen mere engagerende for de studerende, og fastholdelsen af begreber vil blive forbedret. Vi har også skrevet flere introduktionslektioner i JavaScript-grundlæggende for at introducere begreber, parret med en video fra "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)"-samlingen af videotutorials, hvor nogle af forfatterne har bidraget til dette pensum.
Ved at sikre, at indholdet er i overensstemmelse med projekterne, bliver processen mere engagerende for de studerende, og fastholdelsen af koncepter vil blive forbedret. Vi har også skrevet flere introduktionslektioner i JavaScript-grundlæggende for at introducere koncepter, parret med en video fra "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)"-samlingen af videotutorials, hvor nogle af forfatterne har bidraget til dette pensum.
Derudover sætter en lav-stress quiz før en klasse intentionen hos den studerende mod at lære et emne, mens en anden quiz efter klassen sikrer yderligere fastholdelse. Dette pensum er designet til at være fleksibelt og sjovt og kan tages helt eller delvist. Projekterne starter små og bliver gradvist mere komplekse ved slutningen af den 12-ugers cyklus.
Derudover sætter en lav-stress quiz før en klasse intentionen hos den studerende mod at lære et emne, mens en anden quiz efter klassen sikrer yderligere fastholdelse. Dette pensum er designet til at være fleksibelt og sjovt og kan tages helt eller delvist. Projekterne starter små og bliver gradvist mere komplekse ved afslutningen af den 12-ugers cyklus.
Mens vi bevidst har undgået at introducere JavaScript-frameworks for at koncentrere os om de grundlæggende færdigheder, der er nødvendige som webudvikler, før man adopterer et framework, ville et godt næste skridt efter at have gennemført dette pensum være at lære om Node.js via en anden samling af videoer: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Besøg vores [Code of Conduct](CODE_OF_CONDUCT.md) og [Contributing](CONTRIBUTING.md) retningslinjer. Vi værdsætter din konstruktive feedback!
> Besøg vores [Code of Conduct](CODE_OF_CONDUCT.md) og [Contributing](CONTRIBUTING.md) retningslinjer. Vi byder din konstruktive feedback velkommen!
## 🧭 Offline adgang
@ -193,30 +195,40 @@ Du kan køre denne dokumentation offline ved hjælp af [Docsify](https://docsify
En PDF af alle lektionerne kan findes [her](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Andre kurser
## 🎒 Andre Kurser
Vores team producerer andre kurser! Tjek:
- [Generativ AI for begyndere](https://aka.ms/genai-beginners)
- [Generativ AI for begyndere .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generativ AI for Begyndere](https://aka.ms/genai-beginners)
- [Generativ AI for Begyndere .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generativ AI med JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [Generativ AI med Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI for begyndere](https://aka.ms/ai-beginners)
- [Data Science for begyndere](https://aka.ms/datascience-beginners)
- [ML for begyndere](https://aka.ms/ml-beginners)
- [Cybersikkerhed for begyndere](https://github.com/microsoft/Security-101)
- [Webudvikling for begyndere](https://aka.ms/webdev-beginners)
- [IoT for begyndere](https://aka.ms/iot-beginners)
- [XR-udvikling for begyndere](https://github.com/microsoft/xr-development-for-beginners)
- [Mestre GitHub Copilot til agentisk brug](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Mestre GitHub Copilot for C#/.NET-udviklere](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Vælg dit eget Copilot-eventyr](https://github.com/microsoft/CopilotAdventures)
- [AI for Begyndere](https://aka.ms/ai-beginners)
- [Data Science for Begyndere](https://aka.ms/datascience-beginners)
- [ML for Begyndere](https://aka.ms/ml-beginners)
- [Cybersikkerhed for Begyndere](https://github.com/microsoft/Security-101)
- [Webudvikling for Begyndere](https://aka.ms/webdev-beginners)
- [IoT for Begyndere](https://aka.ms/iot-beginners)
- [XR Udvikling for Begyndere](https://github.com/microsoft/xr-development-for-beginners)
- [Mastering GitHub Copilot til Agentisk brug](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Mastering GitHub Copilot for C#/.NET Udviklere](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Vælg Dit Eget Copilot Eventyr](https://github.com/microsoft/CopilotAdventures)
## Få Hjælp
Hvis du sidder fast eller har spørgsmål om at bygge AI-apps, så deltag i:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
Hvis du har produktfeedback eller oplever fejl under udviklingen, besøg:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Licens
## Licens
Dette repository er licenseret under MIT-licensen. Se [LICENSE](../../LICENSE)-filen for mere information.
Dette repository er licenseret under MIT-licensen. Se [LICENSE](../../LICENSE)-filen for mere information.
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på at sikre nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -1,47 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-26T21:24:52+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T09:57:07+00:00",
"source_file": "for-teachers.md",
"language_code": "da"
}
-->
## For undervisere
### For undervisere
Vil du bruge dette pensum i dit klasseværelse? Du er meget velkommen til det!
Du er velkommen til at bruge dette pensum i din undervisning. Det fungerer problemfrit med GitHub Classroom og førende LMS-platforme, og det kan også bruges som et selvstændigt repo med dine elever.
Faktisk kan du bruge det direkte på GitHub ved at bruge GitHub Classroom.
### Brug med GitHub Classroom
For at gøre det, skal du forgrene dette repo. Du skal oprette et repo for hver lektion, så du bliver nødt til at udtrække hver mappe til et separat repo. På den måde kan [GitHub Classroom](https://classroom.github.com/classrooms) håndtere hver lektion individuelt.
For at administrere lektioner og opgaver pr. hold, opret et repository pr. lektion, så GitHub Classroom kan tilknytte hver opgave uafhængigt.
Disse [fulde instruktioner](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) giver dig en idé om, hvordan du opsætter dit klasseværelse.
- Fork dette repo til din organisation.
- Opret et separat repo for hver lektion ved at udtrække hver lektionmappe til sit eget repository.
- Mulighed A: Opret tomme repos (et pr. lektion) og kopier indholdet af lektionmappen ind i hver.
- Mulighed B: Brug en metode, der bevarer Git-historikken (f.eks. split en mappe til et nyt repo), hvis du har brug for oprindelse.
- I GitHub Classroom, opret en opgave pr. lektion og peg den til det tilsvarende lektionrepo.
- Anbefalede indstillinger:
- Repository-synlighed: privat for elevarbejde.
- Brug startkode fra lektionrepoets standardgren.
- Tilføj issue- og pull request-skabeloner til quizzer og indsendelser.
- Konfigurer eventuelt autogradering og tests, hvis dine lektioner inkluderer dem.
- Konventioner, der hjælper:
- Repository-navne som lesson-01-intro, lesson-02-html osv.
- Labels: quiz, assignment, needs-review, late, resubmission.
- Tags/releases pr. hold (f.eks. v2025-term1).
## Brug i Moodle, Canvas eller Blackboard
Tip: Undgå at gemme repositories i synkroniserede mapper (f.eks. OneDrive/Google Drive) for at forhindre Git-konflikter på Windows.
Dette pensum fungerer godt i disse Learning Management Systems! Brug [Moodle-uploadfilen](../../../../../../../teaching-files/webdev-moodle.mbz) for det fulde indhold, eller prøv [Common Cartridge-filen](../../../../../../../teaching-files/webdev-common-cartridge.imscc), som indeholder noget af indholdet. Moodle Cloud understøtter ikke fulde Common Cartridge-eksporter, så det er bedre at bruge Moodle-downloadfilen, som kan uploades til Canvas. Fortæl os gerne, hvordan vi kan forbedre denne oplevelse.
### Brug med Moodle, Canvas eller Blackboard
Dette pensum inkluderer importbare pakker til almindelige LMS-arbejdsgange.
- Moodle: Brug Moodle-uploadfilen [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) til at indlæse hele kurset.
- Common Cartridge: Brug Common Cartridge-filen [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) for bredere LMS-kompatibilitet.
- Bemærkninger:
- Moodle Cloud har begrænset Common Cartridge-support. Foretræk Moodle-filen ovenfor, som også kan uploades til Canvas.
- Efter import, gennemgå moduler, deadlines og quizindstillinger for at matche din terminsplan.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.da.png)
> Pensum i et Moodle-klasseværelse
> Pensum i et Moodle-klasselokale
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.da.png)
> Pensum i Canvas
## Brug af repoet som det er
### Brug repoet direkte (uden Classroom)
Hvis du ønsker at bruge dette repo, som det er, uden at bruge GitHub Classroom, kan det også lade sig gøre. Du skal blot kommunikere med dine elever om, hvilken lektion de skal arbejde med.
Hvis du foretrækker ikke at bruge GitHub Classroom, kan du køre kurset direkte fra dette repo.
I et onlineformat (Zoom, Teams eller andre) kan du oprette breakout-rum til quizzerne og vejlede eleverne, så de er klar til at lære. Derefter kan du invitere eleverne til quizzerne og få dem til at indsende deres svar som 'issues' på et bestemt tidspunkt. Du kan gøre det samme med opgaver, hvis du ønsker, at eleverne skal arbejde sammen i det åbne.
- Synkrone/online formater (Zoom/Teams):
- Kør korte mentorledede opvarmninger; brug breakout rooms til quizzer.
- Annoncer et tidsvindue for quizzer; elever indsender svar som GitHub Issues.
- Til samarbejdsopgaver arbejder elever i offentlige lektionrepos og åbner pull requests.
- Private/asynkrone formater:
- Elever forker hver lektion til deres egne **private** repos og tilføjer dig som samarbejdspartner.
- De indsender via Issues (quizzer) og Pull Requests (opgaver) på dit klasselokale-repo eller deres private forks.
Hvis du foretrækker et mere privat format, kan du bede dine elever om at forgrene pensum, lektion for lektion, til deres egne private GitHub-repos og give dig adgang. Derefter kan de gennemføre quizzer og opgaver privat og indsende dem til dig via issues på dit klasseværelsesrepo.
### Bedste praksis
Der er mange måder at få dette til at fungere i et online klasseværelsesformat. Fortæl os gerne, hvad der fungerer bedst for dig!
- Giv en introduktionslektion om Git/GitHub-grundlæggende, Issues og PRs.
- Brug tjeklister i Issues til opgaver/quizzer med flere trin.
- Tilføj CONTRIBUTING.md og CODE_OF_CONDUCT.md for at sætte klasselokalenormer.
- Tilføj tilgængelighedsnoter (alt-tekst, undertekster) og tilbyd printbare PDF'er.
- Versionér dit indhold pr. termin og frys lektionrepos efter offentliggørelse.
## Giv os din feedback!
### Feedback og support
Vi ønsker at gøre dette pensum brugbart for dig og dine elever. Kontakt os på [Teacher corner](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) og opret en [**ny issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) for eventuelle ønsker, fejl og feedback.
Vi ønsker, at dette pensum skal fungere for dig og dine elever. Opret venligst et nyt Issue i dette repository for fejl, forespørgsler eller forbedringer, eller start en diskussion i Teacher Corner.
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.

@ -1,15 +1,15 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T14:18:15+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T08:31:00+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "de"
}
-->
# Einführung in Programmiersprachen und Werkzeuge des Handwerks
Diese Lektion behandelt die Grundlagen von Programmiersprachen. Die hier behandelten Themen gelten für die meisten modernen Programmiersprachen. Im Abschnitt "Werkzeuge des Handwerks" lernst du nützliche Software kennen, die dir als Entwickler hilft.
Diese Lektion behandelt die Grundlagen von Programmiersprachen. Die hier behandelten Themen gelten für die meisten modernen Programmiersprachen. Im Abschnitt "Werkzeuge des Handwerks" lernen Sie nützliche Software kennen, die Ihnen als Entwickler hilft.
![Intro Programmierung](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.de.png)
> Sketchnote von [Tomomi Imura](https://twitter.com/girlie_mac)
@ -24,27 +24,27 @@ In dieser Lektion behandeln wir:
- Was ist Programmierung?
- Arten von Programmiersprachen
- Grundelemente eines Programms
- Nützliche Software und Tools für professionelle Entwickler
- Nützliche Software und Werkzeuge für professionelle Entwickler
> Du kannst diese Lektion auf [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon) absolvieren!
> Sie können diese Lektion auf [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon) absolvieren!
## Was ist Programmierung?
Programmierung (auch bekannt als Codierung) ist der Prozess des Schreibens von Anweisungen für ein Gerät wie einen Computer oder ein mobiles Gerät. Wir schreiben diese Anweisungen mit einer Programmiersprache, die dann vom Gerät interpretiert wird. Diese Anweisungen können verschiedene Namen haben, aber *Programm*, *Computerprogramm*, *Anwendung (App)* und *ausführbare Datei* sind einige gängige Begriffe.
Ein *Programm* kann alles sein, was mit Code geschrieben wurde; Websites, Spiele und Handy-Apps sind Programme. Obwohl es möglich ist, ein Programm ohne Code zu erstellen, wird die zugrunde liegende Logik vom Gerät interpretiert, und diese Logik wurde höchstwahrscheinlich mit Code geschrieben. Ein Programm, das *läuft* oder *ausgeführt* wird, führt Anweisungen aus. Das Gerät, mit dem du diese Lektion liest, führt ein Programm aus, um sie auf deinem Bildschirm anzuzeigen.
Ein *Programm* kann alles sein, was mit Code geschrieben wurde; Websites, Spiele und Handy-Apps sind Programme. Obwohl es möglich ist, ein Programm ohne Code zu erstellen, wird die zugrunde liegende Logik vom Gerät interpretiert, und diese Logik wurde höchstwahrscheinlich mit Code geschrieben. Ein Programm, das *läuft* oder *Code ausführt*, führt Anweisungen aus. Das Gerät, mit dem Sie diese Lektion lesen, führt ein Programm aus, um sie auf Ihrem Bildschirm anzuzeigen.
Recherchiere ein wenig: Wer gilt als der erste Computerprogrammierer der Welt?
Machen Sie ein wenig Recherche: Wer gilt als der erste Computerprogrammierer der Welt?
## Programmiersprachen
Programmiersprachen ermöglichen es Entwicklern, Anweisungen für ein Gerät zu schreiben. Geräte können nur Binärdaten (1en und 0en) verstehen, und für *die meisten* Entwickler ist das keine sehr effiziente Art der Kommunikation. Programmiersprachen sind das Mittel der Kommunikation zwischen Menschen und Computern.
Programmiersprachen gibt es in verschiedenen Formaten und sie können unterschiedliche Zwecke erfüllen. Zum Beispiel wird JavaScript hauptsächlich für Webanwendungen verwendet, während Bash hauptsächlich für Betriebssysteme genutzt wird.
Programmiersprachen gibt es in verschiedenen Formaten und sie können unterschiedliche Zwecke erfüllen. Zum Beispiel wird JavaScript hauptsächlich für Webanwendungen verwendet, während Bash hauptsächlich für Betriebssysteme eingesetzt wird.
*Low-Level-Sprachen* erfordern in der Regel weniger Schritte als *High-Level-Sprachen*, damit ein Gerät Anweisungen interpretieren kann. Was High-Level-Sprachen jedoch beliebt macht, ist ihre Lesbarkeit und Unterstützung. JavaScript wird als High-Level-Sprache angesehen.
*Low-Level-Sprachen* erfordern in der Regel weniger Schritte als *High-Level-Sprachen*, damit ein Gerät Anweisungen interpretieren kann. Was High-Level-Sprachen jedoch beliebt macht, ist ihre Lesbarkeit und Unterstützung. JavaScript gilt als High-Level-Sprache.
Der folgende Code zeigt den Unterschied zwischen einer High-Level-Sprache wie JavaScript und einer Low-Level-Sprache wie ARM-Assembler-Code.
Der folgende Code zeigt den Unterschied zwischen einer High-Level-Sprache (JavaScript) und einer Low-Level-Sprache (ARM-Assembler-Code).
```javascript
let number = 10
@ -83,7 +83,7 @@ back add r0,r1
end
```
Glaub es oder nicht, *sie tun beide dasselbe*: Sie geben eine Fibonacci-Sequenz bis 10 aus.
Glauben Sie es oder nicht, *sie tun beide dasselbe*: Sie drucken eine Fibonacci-Sequenz bis 10.
✅ Eine Fibonacci-Sequenz wird [definiert](https://en.wikipedia.org/wiki/Fibonacci_number) als eine Reihe von Zahlen, bei der jede Zahl die Summe der beiden vorhergehenden ist, beginnend mit 0 und 1. Die ersten 10 Zahlen der Fibonacci-Sequenz sind 0, 1, 1, 2, 3, 5, 8, 13, 21 und 34.
@ -91,31 +91,31 @@ Glaub es oder nicht, *sie tun beide dasselbe*: Sie geben eine Fibonacci-Sequenz
Eine einzelne Anweisung in einem Programm wird als *Statement* bezeichnet und hat normalerweise ein Zeichen oder einen Zeilenabstand, der markiert, wo die Anweisung endet oder *terminiert*. Wie ein Programm terminiert, variiert je nach Sprache.
Anweisungen in einem Programm können von Daten abhängen, die von einem Benutzer oder anderswo bereitgestellt werden, um Anweisungen auszuführen. Daten können beeinflussen, wie ein Programm sich verhält, daher bieten Programmiersprachen eine Möglichkeit, Daten vorübergehend zu speichern, damit sie später verwendet werden können. Diese werden als *Variablen* bezeichnet. Variablen sind Anweisungen, die ein Gerät anweisen, Daten in seinem Speicher zu speichern. Variablen in Programmen sind ähnlich wie Variablen in der Algebra, bei denen sie einen eindeutigen Namen haben und ihr Wert sich im Laufe der Zeit ändern kann.
Anweisungen in einem Programm können von Daten abhängen, die von einem Benutzer oder anderswo bereitgestellt werden, um Anweisungen auszuführen. Daten können beeinflussen, wie ein Programm funktioniert, daher bieten Programmiersprachen eine Möglichkeit, Daten vorübergehend zu speichern, damit sie später verwendet werden können. Diese werden *Variablen* genannt. Variablen sind Anweisungen, die ein Gerät anweisen, Daten in seinem Speicher zu speichern. Variablen in Programmen sind ähnlich wie Variablen in der Algebra, da sie einen eindeutigen Namen haben und sich ihr Wert im Laufe der Zeit ändern kann.
Es besteht die Möglichkeit, dass einige Anweisungen von einem Gerät nicht ausgeführt werden. Dies geschieht normalerweise absichtlich, wenn es vom Entwickler geschrieben wurde, oder versehentlich, wenn ein unerwarteter Fehler auftritt. Diese Art der Kontrolle über eine Anwendung macht sie robuster und wartungsfreundlicher. Typischerweise treten diese Änderungen in der Kontrolle auf, wenn bestimmte Bedingungen erfüllt sind. Eine gängige Anweisung, die in der modernen Programmierung verwendet wird, um zu steuern, wie ein Programm läuft, ist die `if..else`-Anweisung.
Du wirst mehr über diese Art von Anweisung in den folgenden Lektionen lernen.
Sie werden mehr über diese Art von Anweisung in den folgenden Lektionen lernen.
## Werkzeuge des Handwerks
[![Werkzeuge des Handwerks](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Werkzeuge des Handwerks")
> 🎥 Klicke auf das Bild oben für ein Video über Tools
> 🎥 Klicken Sie auf das Bild oben für ein Video über Werkzeuge
In diesem Abschnitt lernst du einige Software kennen, die du als nützlich empfinden könntest, wenn du deine professionelle Entwicklerreise beginnst.
In diesem Abschnitt lernen Sie einige Software kennen, die Sie als nützlich empfinden könnten, wenn Sie Ihre professionelle Entwicklerreise beginnen.
Eine **Entwicklungsumgebung** ist eine einzigartige Sammlung von Tools und Funktionen, die ein Entwickler häufig beim Schreiben von Software verwendet. Einige dieser Tools wurden für die spezifischen Bedürfnisse eines Entwicklers angepasst und können sich im Laufe der Zeit ändern, wenn sich die Prioritäten des Entwicklers in der Arbeit, bei persönlichen Projekten oder bei der Verwendung einer anderen Programmiersprache ändern. Entwicklungsumgebungen sind so einzigartig wie die Entwickler, die sie nutzen.
Eine **Entwicklungsumgebung** ist eine einzigartige Sammlung von Werkzeugen und Funktionen, die ein Entwickler häufig beim Schreiben von Software verwendet. Einige dieser Werkzeuge wurden für die spezifischen Bedürfnisse eines Entwicklers angepasst und können sich im Laufe der Zeit ändern, wenn dieser Entwickler seine Prioritäten in der Arbeit, bei persönlichen Projekten oder beim Wechsel zu einer anderen Programmiersprache ändert. Entwicklungsumgebungen sind so einzigartig wie die Entwickler, die sie nutzen.
### Editoren
Eines der wichtigsten Werkzeuge für die Softwareentwicklung ist der Editor. Editoren sind der Ort, an dem du deinen Code schreibst und manchmal auch ausführst.
Eines der wichtigsten Werkzeuge für die Softwareentwicklung ist der Editor. Editoren sind der Ort, an dem Sie Ihren Code schreiben und manchmal auch ausführen.
Entwickler verlassen sich aus mehreren Gründen auf Editoren:
- *Debugging* hilft, Fehler und Probleme aufzudecken, indem der Code Zeile für Zeile durchgegangen wird. Einige Editoren haben Debugging-Funktionen; sie können angepasst und für bestimmte Programmiersprachen hinzugefügt werden.
- *Syntax-Hervorhebung* fügt Farben und Textformatierungen zum Code hinzu, wodurch er leichter lesbar wird. Die meisten Editoren erlauben eine angepasste Syntax-Hervorhebung.
- *Erweiterungen und Integrationen* sind spezialisierte Tools für Entwickler, von Entwicklern. Diese Tools sind nicht in den Basiseditor integriert. Zum Beispiel dokumentieren viele Entwickler ihren Code, um zu erklären, wie er funktioniert. Sie könnten eine Rechtschreibprüfungserweiterung installieren, um Tippfehler in der Dokumentation zu finden. Die meisten Erweiterungen sind für die Verwendung in einem bestimmten Editor gedacht, und die meisten Editoren bieten eine Möglichkeit, nach verfügbaren Erweiterungen zu suchen.
- *Debugging* hilft, Fehler und Probleme aufzudecken, indem der Code Zeile für Zeile durchgegangen wird. Einige Editoren verfügen über Debugging-Funktionen; sie können angepasst und für bestimmte Programmiersprachen hinzugefügt werden.
- *Syntax-Hervorhebung* fügt Farben und Textformatierungen zum Code hinzu, wodurch er leichter lesbar wird. Die meisten Editoren erlauben eine benutzerdefinierte Syntax-Hervorhebung.
- *Erweiterungen und Integrationen* sind spezialisierte Werkzeuge für Entwickler, von Entwicklern. Diese Werkzeuge sind nicht im Basis-Editor enthalten. Zum Beispiel dokumentieren viele Entwickler ihren Code, um zu erklären, wie er funktioniert. Sie könnten eine Rechtschreibprüfungserweiterung installieren, um Tippfehler in der Dokumentation zu finden. Die meisten Erweiterungen sind für die Verwendung in einem bestimmten Editor gedacht, und die meisten Editoren bieten eine Möglichkeit, nach verfügbaren Erweiterungen zu suchen.
- *Anpassung* ermöglicht es Entwicklern, eine einzigartige Entwicklungsumgebung zu schaffen, die ihren Bedürfnissen entspricht. Die meisten Editoren sind extrem anpassbar und erlauben es Entwicklern möglicherweise auch, benutzerdefinierte Erweiterungen zu erstellen.
#### Beliebte Editoren und Webentwicklungs-Erweiterungen
@ -137,7 +137,7 @@ Entwickler verlassen sich aus mehreren Gründen auf Editoren:
Ein weiteres wichtiges Werkzeug ist der Browser. Webentwickler verlassen sich auf den Browser, um zu sehen, wie ihr Code im Web ausgeführt wird. Er wird auch verwendet, um die visuellen Elemente einer Webseite anzuzeigen, die im Editor geschrieben wurden, wie HTML.
Viele Browser verfügen über *Entwicklertools* (DevTools), die eine Reihe hilfreicher Funktionen und Informationen enthalten, um Entwicklern zu helfen, wichtige Informationen über ihre Anwendung zu sammeln und zu erfassen. Zum Beispiel: Wenn eine Webseite Fehler hat, ist es manchmal hilfreich zu wissen, wann sie aufgetreten sind. DevTools in einem Browser können so konfiguriert werden, dass diese Informationen erfasst werden.
Viele Browser verfügen über *Entwicklerwerkzeuge* (DevTools), die eine Reihe hilfreicher Funktionen und Informationen enthalten, um Entwicklern zu helfen, wichtige Informationen über ihre Anwendung zu sammeln und zu erfassen. Zum Beispiel: Wenn eine Webseite Fehler hat, ist es manchmal hilfreich zu wissen, wann sie aufgetreten sind. DevTools in einem Browser können so konfiguriert werden, dass diese Informationen erfasst werden.
#### Beliebte Browser und DevTools
@ -145,9 +145,9 @@ Viele Browser verfügen über *Entwicklertools* (DevTools), die eine Reihe hilfr
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
- [Firefox](https://developer.mozilla.org/docs/Tools)
### Kommandozeilen-Tools
### Kommandozeilen-Werkzeuge
Einige Entwickler bevorzugen eine weniger grafische Ansicht für ihre täglichen Aufgaben und verlassen sich auf die Kommandozeile, um dies zu erreichen. Das Schreiben von Code erfordert eine erhebliche Menge an Tippen, und einige Entwickler bevorzugen es, ihren Arbeitsfluss auf der Tastatur nicht zu unterbrechen. Sie verwenden Tastenkombinationen, um zwischen Desktop-Fenstern zu wechseln, an verschiedenen Dateien zu arbeiten und Tools zu verwenden. Die meisten Aufgaben können mit einer Maus erledigt werden, aber ein Vorteil der Kommandozeile ist, dass vieles mit Kommandozeilen-Tools erledigt werden kann, ohne zwischen Maus und Tastatur wechseln zu müssen. Ein weiterer Vorteil der Kommandozeile ist, dass sie konfigurierbar ist und du eine benutzerdefinierte Konfiguration speichern, später ändern und auf andere Entwicklungsmaschinen importieren kannst. Da Entwicklungsumgebungen so einzigartig für jeden Entwickler sind, vermeiden einige die Kommandozeile, andere verlassen sich vollständig darauf, und wieder andere bevorzugen eine Mischung aus beidem.
Einige Entwickler bevorzugen eine weniger grafische Ansicht für ihre täglichen Aufgaben und verlassen sich auf die Kommandozeile, um dies zu erreichen. Das Schreiben von Code erfordert eine erhebliche Menge an Tippen, und einige Entwickler bevorzugen es, ihren Arbeitsfluss auf der Tastatur nicht zu unterbrechen. Sie verwenden Tastenkombinationen, um zwischen Desktop-Fenstern zu wechseln, an verschiedenen Dateien zu arbeiten und Werkzeuge zu nutzen. Die meisten Aufgaben können mit einer Maus erledigt werden, aber ein Vorteil der Kommandozeile ist, dass vieles mit Kommandozeilen-Werkzeugen erledigt werden kann, ohne zwischen Maus und Tastatur wechseln zu müssen. Ein weiterer Vorteil der Kommandozeile ist, dass sie konfigurierbar ist und Sie eine benutzerdefinierte Konfiguration speichern, später ändern und auf andere Entwicklungsmaschinen importieren können. Da Entwicklungsumgebungen so einzigartig für jeden Entwickler sind, vermeiden einige die Kommandozeile, andere verlassen sich vollständig darauf, und wieder andere bevorzugen eine Mischung aus beidem.
### Beliebte Kommandozeilen-Optionen
@ -174,7 +174,7 @@ Die Optionen für die Kommandozeile unterscheiden sich je nach Betriebssystem.
- [KDE Konsole](https://docs.kde.org/trunk5/en/konsole/konsole/index.html)
- [Powershell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7/?WT.mc_id=academic-77807-sagibbon)
#### Beliebte Kommandozeilen-Tools
#### Beliebte Kommandozeilen-Werkzeuge
- [Git](https://git-scm.com/) (💻 auf den meisten Betriebssystemen)
- [NPM](https://www.npmjs.com/)
@ -182,7 +182,7 @@ Die Optionen für die Kommandozeile unterscheiden sich je nach Betriebssystem.
### Dokumentation
Wenn ein Entwickler etwas Neues lernen möchte, wendet er sich höchstwahrscheinlich an die Dokumentation, um zu erfahren, wie man es benutzt. Entwickler verlassen sich oft auf Dokumentationen, um sich durch die richtige Nutzung von Tools und Sprachen zu führen und auch um ein tieferes Verständnis dafür zu gewinnen, wie sie funktionieren.
Wenn ein Entwickler etwas Neues lernen möchte, wird er sich höchstwahrscheinlich an die Dokumentation wenden, um zu erfahren, wie man es benutzt. Entwickler verlassen sich oft auf Dokumentationen, um sich durch die richtige Verwendung von Werkzeugen und Sprachen zu führen und auch, um ein tieferes Verständnis dafür zu gewinnen, wie sie funktionieren.
#### Beliebte Dokumentationen zur Webentwicklung
@ -192,24 +192,26 @@ Wenn ein Entwickler etwas Neues lernen möchte, wendet er sich höchstwahrschein
- [Microsofts eigene Entwicklerdokumentation](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), für [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
Recherchiere: Jetzt, da du die Grundlagen der Umgebung eines Webentwicklers kennst, vergleiche und kontrastiere sie mit der Umgebung eines Webdesigners.
Machen Sie etwas Recherche: Jetzt, da Sie die Grundlagen der Umgebung eines Webentwicklers kennen, vergleichen und kontrastieren Sie diese mit der Umgebung eines Webdesigners.
---
## 🚀 Herausforderung
Vergleiche einige Programmiersprachen. Was sind einige der einzigartigen Merkmale von JavaScript im Vergleich zu Java? Wie sieht es mit COBOL im Vergleich zu Go aus?
Vergleichen Sie einige Programmiersprachen. Was sind einige der einzigartigen Merkmale von JavaScript im Vergleich zu Java? Wie sieht es mit COBOL im Vergleich zu Go aus?
## Quiz nach der Vorlesung
[Quiz nach der Vorlesung](https://ff-quizzes.netlify.app/web/)
## Überprüfung & Selbststudium
Studier ein wenig über die verschiedenen Sprachen, die einem Programmierer zur Verfügung stehen. Versuche, eine Zeile in einer Sprache zu schreiben und sie dann in zwei anderen neu zu schreiben. Was hast du gelernt?
Studieren Sie ein wenig über die verschiedenen Sprachen, die einem Programmierer zur Verfügung stehen. Versuchen Sie, eine Zeile in einer Sprache zu schreiben und sie dann in zwei anderen neu zu schreiben. Was haben Sie gelernt?
## Aufgabe
[Die Dokumentation lesen](assignment.md)
[Dokumentation lesen](assignment.md)
> Hinweis: Wählen Sie für Ihre Aufgabe keine Editoren, Browser oder Kommandozeilen-Werkzeuge aus, die bereits oben aufgeführt sind.
---

@ -1,23 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-24T13:01:28+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T08:31:38+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "de"
}
-->
# Lesen der Dokumentation
## Anweisungen
Es gibt viele Werkzeuge, die ein Webentwickler benötigen könnte, die in der [MDN-Dokumentation für clientseitige Tools](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview) aufgeführt sind. Wähle 3 Werkzeuge aus, die im Unterricht nicht behandelt wurden, erkläre, warum ein Webentwickler sie verwenden würde, und suche ein Werkzeug, das in diese Kategorie fällt, und teile dessen Dokumentation. Verwende nicht dasselbe Werkzeugbeispiel aus den MDN-Dokumenten.
Es gibt viele Werkzeuge, die ein Webentwickler benötigen könnte, die in der [MDN-Dokumentation für clientseitige Tools](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview) aufgeführt sind. Wählen Sie **drei Werkzeuge**, die **in dieser Lektion nicht behandelt werden** (ausgenommen [spezifische Werkzeuge auflisten oder auf den Inhalt der Lektion verweisen]), erklären Sie **warum** ein Webentwickler jedes Werkzeug verwenden würde, und finden Sie ein Werkzeug, das in jede Kategorie passt. Teilen Sie für jedes Werkzeug einen Link zu seiner offiziellen Dokumentation (nicht das Beispiel, das auf MDN verwendet wird).
**Format:**
- Werkzeugname
- Warum ein Webentwickler es verwenden würde (2-3 Sätze)
- Link zur Dokumentation
**Länge:**
- Jede Erklärung sollte 2-3 Sätze umfassen.
## Bewertungskriterien
Vorbildlich | Angemessen | Verbesserungswürdig
--- | --- | -- |
| Erklärt, warum ein Webentwickler das Werkzeug verwenden würde | Erklärt, wie, aber nicht warum ein Entwickler das Werkzeug verwenden würde | Hat nicht erwähnt, wie oder warum ein Entwickler das Werkzeug verwenden würde |
Erklärt, warum ein Webentwickler das Werkzeug verwenden würde | Erklärt, wie, aber nicht warum ein Entwickler das Werkzeug verwenden würde | Hat nicht erwähnt, wie oder warum ein Entwickler das Werkzeug verwenden würde |
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, weisen wir darauf hin, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen.
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-24T12:24:05+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T08:30:31+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "de"
}
@ -11,13 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Anweisungen
Stellen Sie sich vor, Sie erstellen einen Einkaufswagen. Schreiben Sie eine Dokumentation über die Datentypen, die Sie benötigen, um Ihr Einkaufserlebnis abzuschließen. Wie sind Sie zu Ihren Entscheidungen gekommen?
Stellen Sie sich vor, Sie erstellen einen Einkaufswagen. Schreiben Sie eine Dokumentation über die Datentypen, die Sie benötigen, um Ihr Einkaufserlebnis zu vervollständigen. Erklären Sie für jeden Datentyp, wie und warum Sie ihn verwenden würden, und geben Sie ein Beispiel. Die sechs JavaScript-Datentypen sind: String, Number, Boolean, Null, Undefined und Object.
## Bewertungskriterien
Kriterien | Vorbildlich | Angemessen | Verbesserungswürdig
Kriterium | Vorbildlich | Angemessen | Verbesserungswürdig
--- | --- | --- | --- |
||Die sechs Datentypen werden aufgelistet und ausführlich untersucht, ihre Verwendung wird dokumentiert|Vier Datentypen werden untersucht|Zwei Datentypen werden untersucht|
Datentypen | Alle sechs Datentypen sind aufgeführt, detailliert untersucht und mit Beispielen dokumentiert | Vier Datentypen werden mit einigen Erklärungen untersucht | Zwei Datentypen werden mit minimalen Erklärungen untersucht |
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, weisen wir darauf hin, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen.
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -1,23 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-24T12:02:36+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T08:31:55+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "de"
}
-->
# Übe dein HTML: Erstelle ein Blog-Mockup
# HTML-Übungsaufgabe: Erstellen eines Blog-Layouts
## Ziel
Entwerfen und schreiben Sie die HTML-Struktur für die Startseite eines persönlichen Blogs. Diese Übung hilft Ihnen, semantisches HTML, Layoutplanung und Codeorganisation zu üben.
## Anweisungen
Stell dir vor, du entwirfst oder gestaltest deine persönliche Website neu. Erstelle ein grafisches Mockup deiner Website und schreibe anschließend das HTML-Markup auf, das du verwenden würdest, um die verschiedenen Elemente der Website zu erstellen. Du kannst dies auf Papier machen und einscannen oder eine Software deiner Wahl verwenden stelle nur sicher, dass du das HTML-Markup von Hand codierst.
1. **Entwerfen Sie Ihr Blog-Layout**
- Skizzieren Sie ein visuelles Layout Ihrer Blog-Startseite. Fügen Sie wichtige Bereiche wie Header, Navigation, Hauptinhalt, Sidebar und Footer ein.
- Sie können Papier verwenden und Ihre Skizze scannen oder digitale Tools nutzen (z. B. Figma, Adobe XD, Canva oder sogar PowerPoint).
2. **HTML-Elemente identifizieren**
- Listen Sie die HTML-Elemente auf, die Sie für jeden Bereich verwenden möchten (z. B. `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>` usw.).
3. **HTML-Markup schreiben**
- Schreiben Sie den HTML-Code für Ihr Layout. Konzentrieren Sie sich auf semantische Struktur und Best Practices.
- Verwenden Sie mindestens 10 verschiedene HTML-Elemente.
- Fügen Sie Kommentare hinzu, um Ihre Entscheidungen und die Struktur zu erklären.
4. **Reichen Sie Ihre Arbeit ein**
- Laden Sie Ihre Skizze/Ihr Layout und Ihre HTML-Datei hoch.
- Optional: Schreiben Sie eine kurze Reflexion (23 Sätze) über Ihre Designentscheidungen.
## Bewertungskriterien
| Kriterien | Hervorragend | Angemessen | Verbesserungswürdig |
| --------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| | Ein Blog-Layout wird visuell dargestellt mit mindestens 10 Markup-Elementen | Ein Blog-Layout wird visuell dargestellt mit etwa 5 Markup-Elementen | Ein Blog-Layout wird visuell dargestellt mit höchstens 3 Markup-Elementen |
| Kriterien | Hervorragend | Ausreichend | Verbesserungswürdig |
|------------------|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Visuelles Layout | Klare, detaillierte Skizze mit beschrifteten Bereichen und durchdachtem Layout | Grundlegende Skizze mit einigen beschrifteten Bereichen | Minimale oder unklare Skizze; keine Bereichsbeschriftungen |
| HTML-Elemente | Verwendet 10+ semantische HTML-Elemente; zeigt Verständnis für Struktur und Best Practices | Verwendet 59 HTML-Elemente; teilweise semantische Struktur | Verwendet weniger als 5 Elemente; keine semantische Struktur |
| Codequalität | Gut organisierter, lesbarer Code mit Kommentaren; entspricht HTML-Standards | Meistens organisierter Code; wenige Kommentare | Unorganisierter Code; keine Kommentare |
| Reflexion | Aufschlussreiche Reflexion über Designentscheidungen und Herausforderungen | Grundlegende Reflexion | Keine Reflexion oder irrelevant |
## Tipps
- Verwenden Sie semantische HTML-Tags für bessere Barrierefreiheit und SEO.
- Organisieren Sie Ihren Code mit Einrückungen und Kommentaren.
- Nutzen Sie die [MDN HTML-Elemente-Referenz](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) als Orientierungshilfe.
- Denken Sie darüber nach, wie Ihr Layout in zukünftigen Aufgaben erweitert oder gestaltet werden könnte.
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, weisen wir darauf hin, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen.
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -1,23 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-24T12:10:29+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T08:31:45+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "de"
}
-->
# CSS-Refaktorierung
# CSS-Refactoring-Aufgabe
## Ziel
Überarbeiten Sie das Terrarium-Projekt, um **Flexbox** oder **CSS Grid** für das Layout zu verwenden. Aktualisieren Sie HTML und CSS nach Bedarf, um ein modernes, responsives Design zu erreichen. Sie müssen keine verschiebbaren Elemente implementieren konzentrieren Sie sich nur auf Layout und Styling.
## Anweisungen
Gestalte das Terrarium neu mit entweder Flexbox oder CSS Grid und mache Screenshots, um zu zeigen, dass du es in mehreren Browsern getestet hast. Es könnte notwendig sein, das Markup zu ändern, also erstelle eine neue Version der App mit der Kunst, die für deine Refaktorierung vorgesehen ist. Mach dir keine Sorgen darüber, die Elemente verschiebbar zu machen; refaktoriere vorerst nur das HTML und CSS.
1. **Erstellen Sie eine neue Version** der Terrarium-App. Aktualisieren Sie das Markup und CSS, um Flexbox oder CSS Grid für das Layout zu verwenden.
2. **Stellen Sie sicher, dass die Kunst und die Elemente** wie in der Originalversion vorhanden sind.
3. **Testen Sie Ihr Design** in mindestens zwei verschiedenen Browsern (z. B. Chrome, Firefox, Edge).
4. **Machen Sie Screenshots** Ihres Terrariums in jedem Browser, um die Kompatibilität zwischen den Browsern zu demonstrieren.
5. **Reichen Sie** Ihren aktualisierten Code und die Screenshots ein.
## Bewertungskriterien
| Kriterien | Vorbildlich | Angemessen | Verbesserungswürdig |
| --------- | ---------------------------------------------------------------- | ----------------------------- | ----------------------------------- |
| | Ein vollständig neu gestaltetes Terrarium mit Flexbox oder CSS Grid präsentieren | Einige Elemente neu gestalten | Das Terrarium überhaupt nicht neu gestalten |
| Kriterien | Vorbildlich | Angemessen | Verbesserungswürdig |
|-------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| Layout | Vollständig überarbeitet mit Flexbox oder CSS Grid; visuell ansprechend und responsiv | Einige Elemente überarbeitet; teilweise Verwendung von Flexbox oder Grid | Wenig oder keine Verwendung von Flexbox oder Grid; Layout unverändert |
| Kompatibilität | Screenshots für mehrere Browser bereitgestellt; konsistentes Erscheinungsbild | Screenshots für einen Browser; kleinere Inkonsistenzen | Keine Screenshots oder größere Inkonsistenzen |
| Codequalität | Sauberer, gut organisierter HTML/CSS; klare Kommentare | Teilweise organisiert; wenige Kommentare | Unorganisierter Code; keine Kommentare |
## Tipps
- Überprüfen Sie die [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) und [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) Anleitungen.
- Verwenden Sie die Entwickler-Tools des Browsers, um die Responsivität zu testen.
- Kommentieren Sie Ihren Code für mehr Klarheit.
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, weisen wir darauf hin, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Nutzung dieser Übersetzung entstehen.
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -1,172 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T14:16:25+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T08:30:37+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "de"
}
-->
# Verwendung eines Code-Editors
***
Diese Lektion behandelt die Grundlagen der Nutzung von [VSCode.dev](https://vscode.dev), einem webbasierten Code-Editor, damit du Änderungen an deinem Code vornehmen und zu einem Projekt beitragen kannst, ohne etwas auf deinem Computer installieren zu müssen.
# Verwendung eines Code-Editors: Meistere [VSCode.dev](https://vscode.dev)
<!----
TODO: optionales Bild hinzufügen
![Verwendung eines Code-Editors](../../../../translated_images/webdev101-vscode-dev.f53c14e8dad231ea09d9e07a2db4a01551d2dc6cdf21225038389e11156af023.de.png)
> Sketchnote von [Author name](https://example.com)
---->
**Willkommen!**
Diese Lektion führt dich von den Grundlagen bis zur fortgeschrittenen Nutzung von [VSCode.dev](https://vscode.dev)—dem leistungsstarken, webbasierten Code-Editor. Du lernst, wie du sicher Code bearbeiten, Projekte verwalten, Änderungen verfolgen, Erweiterungen installieren und wie ein Profi zusammenarbeiten kannst—all das direkt im Browser, ohne Installation.
<!---
## Quiz vor der Lektion
[Quiz vor der Lektion](https://ff-quizzes.netlify.app/web/quiz/3)
---->
***
## Lernziele
In dieser Lektion lernst du:
Am Ende dieser Lektion wirst du in der Lage sein:
- Einen Code-Editor in einem Code-Projekt zu verwenden
- Änderungen mit Versionskontrolle zu verfolgen
- Den Editor für die Entwicklung anzupassen
- Einen Code-Editor effizient für jedes Projekt und überall zu nutzen
- Deine Arbeit nahtlos mit integriertem Versionskontrollsystem zu verfolgen
- Deinen Entwicklungsworkflow mit Anpassungen und Erweiterungen des Editors zu personalisieren und zu optimieren
### Voraussetzungen
***
Bevor du beginnst, musst du ein Konto bei [GitHub](https://github.com) erstellen. Navigiere zu [GitHub](https://github.com/) und erstelle ein Konto, falls du noch keines hast.
## Voraussetzungen
### Einführung
Um loszulegen, **melde dich für ein kostenloses [GitHub](https://github.com)-Konto an**, mit dem du Code-Repositories verwalten und weltweit zusammenarbeiten kannst. Falls du noch kein Konto hast, [erstelle hier eines](https://github.com/).
Ein Code-Editor ist ein unverzichtbares Werkzeug zum Schreiben von Programmen und zur Zusammenarbeit an bestehenden Coding-Projekten. Sobald du die Grundlagen eines Editors und dessen Funktionen verstanden hast, kannst du diese beim Schreiben von Code anwenden.
***
## Einstieg in VSCode.dev
## Warum einen webbasierten Code-Editor verwenden?
[VSCode.dev](https://vscode.dev) ist ein Code-Editor im Web. Du musst nichts installieren, um ihn zu nutzen es ist genauso einfach wie das Öffnen einer anderen Website. Um mit dem Editor zu beginnen, öffne den folgenden Link: [https://vscode.dev](https://vscode.dev). Falls du nicht bei [GitHub](https://github.com/) angemeldet bist, folge den Anweisungen, um dich anzumelden oder ein neues Konto zu erstellen und dich dann einzuloggen.
Ein **Code-Editor** wie VSCode.dev ist dein Kontrollzentrum für das Schreiben, Bearbeiten und Verwalten von Code. Mit einer intuitiven Benutzeroberfläche, zahlreichen Funktionen und sofortigem Zugriff über den Browser kannst du:
Sobald der Editor geladen ist, sollte er ähnlich wie dieses Bild aussehen:
- Projekte auf jedem Gerät bearbeiten
- Installationsprobleme vermeiden
- Sofort zusammenarbeiten und Beiträge leisten
![Standardansicht VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.de.png)
Sobald du dich mit VSCode.dev vertraut gemacht hast, bist du bereit, Coding-Aufgaben jederzeit und überall zu meistern.
Es gibt drei Hauptbereiche, von links nach rechts:
***
1. Die _Aktivitätsleiste_, die einige Symbole enthält, wie die Lupe 🔎, das Zahnrad ⚙️ und einige andere.
2. Die erweiterte Aktivitätsleiste, die standardmäßig den _Explorer_ zeigt und als _Seitenleiste_ bezeichnet wird.
3. Und schließlich der Code-Bereich rechts.
## Erste Schritte mit VSCode.dev
Klicke auf jedes der Symbole, um ein anderes Menü anzuzeigen. Wenn du fertig bist, klicke auf den _Explorer_, um wieder zum Ausgangspunkt zurückzukehren.
Navigiere zu **[VSCode.dev](https://vscode.dev)**—keine Installation, keine Downloads. Durch das Anmelden mit GitHub erhältst du vollen Zugriff, einschließlich der Synchronisierung deiner Einstellungen, Erweiterungen und Repositories. Falls du dazu aufgefordert wirst, verbinde dein GitHub-Konto.
Wenn du anfängst, Code zu erstellen oder bestehenden Code zu ändern, geschieht dies im größten Bereich rechts. Du wirst diesen Bereich auch nutzen, um bestehenden Code zu visualisieren, was du als Nächstes tun wirst.
Nach dem Laden sieht dein Arbeitsbereich so aus:
## Ein GitHub-Repository öffnen
![Standard VSCode.dev](../images/default-vscode-dev hat drei Hauptbereiche von links nach rechts:
- **Aktivitätsleiste:** Die Symbole wie 🔎 (Suche), ⚙️ (Einstellungen), Dateien, Quellcodeverwaltung usw.
- **Seitenleiste:** Ändert den Kontext basierend auf dem ausgewählten Symbol in der Aktivitätsleiste (standardmäßig *Explorer*, um Dateien anzuzeigen).
- **Editor-/Code-Bereich:** Der größte Bereich rechts—hier bearbeitest und siehst du deinen Code.
Das Erste, was du tun musst, ist ein GitHub-Repository zu öffnen. Es gibt mehrere Möglichkeiten, ein Repository zu öffnen. In diesem Abschnitt siehst du zwei verschiedene Methoden, wie du ein Repository öffnen kannst, um Änderungen vorzunehmen.
Klicke durch die Symbole, um die Funktionen zu erkunden, kehre aber zum _Explorer_ zurück, um deinen Platz zu behalten.
### 1. Mit dem Editor
***
Verwende den Editor selbst, um ein Remote-Repository zu öffnen. Wenn du zu [VSCode.dev](https://vscode.dev) gehst, siehst du einen Button _"Open Remote Repository"_:
## Öffnen eines GitHub-Repositories
![Remote-Repository öffnen](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.de.png)
### Methode 1: Vom Editor aus
Du kannst auch die Befehls-Palette verwenden. Die Befehls-Palette ist ein Eingabefeld, in das du ein beliebiges Wort eingeben kannst, das Teil eines Befehls oder einer Aktion ist, um den richtigen Befehl auszuführen. Verwende das Menü oben links, wähle dann _View_ und anschließend _Command Palette_, oder nutze die folgende Tastenkombination: Strg-Shift-P (auf MacOS wäre es Command-Shift-P).
1. Gehe zu [VSCode.dev](https://vscode.dev). Klicke auf **"Open Remote Repository."**
![Palette-Menü](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.de.png)
![Remote-Repository öffnen](../../../../8-code-editor/images/open-remote-repository nutze die _Befehls-Palette_ (Strg-Shift-P oder Cmd-Shift-P auf Mac).
Sobald das Menü geöffnet ist, gib _open remote repository_ ein und wähle die erste Option. Mehrere Repositories, an denen du beteiligt bist oder die du kürzlich geöffnet hast, werden angezeigt. Du kannst auch eine vollständige GitHub-URL verwenden, um eines auszuwählen. Verwende die folgende URL und füge sie in das Feld ein:
![Palettenmenü](../images/palette-menu.pngopen remote repository.”
- Wähle die Option aus.
- Füge die URL deines GitHub-Repos ein (z. B. `https://github.com/microsoft/Web-Dev-For-Beginners`) und drücke Enter.
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
Wenn erfolgreich, wird das gesamte Projekt geladen und ist bereit zur Bearbeitung!
✅ Wenn erfolgreich, werden alle Dateien dieses Repositorys im Texteditor geladen.
***
### 2. Mit der URL
### Methode 2: Sofort über die URL
Du kannst auch direkt eine URL verwenden, um ein Repository zu laden. Zum Beispiel lautet die vollständige URL für das aktuelle Repository [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), aber du kannst die GitHub-Domain durch `VSCode.dev/github` ersetzen und das Repository direkt laden. Die resultierende URL wäre [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
Verwandle jede GitHub-Repo-URL, um sie direkt in VSCode.dev zu öffnen, indem du `github.com` durch `vscode.dev/github` ersetzt.
Beispiel:
## Dateien bearbeiten
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
Sobald du das Repository im Browser/vscode.dev geöffnet hast, besteht der nächste Schritt darin, Updates oder Änderungen am Projekt vorzunehmen.
Diese Funktion ermöglicht schnellen Zugriff auf JEDES Projekt.
### 1. Eine neue Datei erstellen
***
Du kannst entweder eine Datei in einem bestehenden Ordner erstellen oder sie im Stammverzeichnis/Ordner anlegen. Um eine neue Datei zu erstellen, öffne einen Speicherort/Ordner, in dem die Datei gespeichert werden soll, und wähle das Symbol _'Neue Datei ...'_ in der Aktivitätsleiste _(links)_, gib ihr einen Namen und drücke Enter.
## Dateien in deinem Projekt bearbeiten
![Neue Datei erstellen](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.de.png)
Sobald dein Repository geöffnet ist, kannst du:
### 2. Eine Datei im Repository bearbeiten und speichern
### 1. **Eine neue Datei erstellen**
- Navigiere in der *Explorer*-Seitenleiste zu deinem gewünschten Ordner oder nutze das Root-Verzeichnis.
- Klicke auf das Symbol _Neue Datei ..._.
- Benenne deine Datei, drücke **Enter**, und deine Datei erscheint sofort.
Die Nutzung von vscode.dev ist hilfreich, wenn du schnelle Updates an deinem Projekt vornehmen möchtest, ohne Software lokal zu laden. Um deinen Code zu aktualisieren, klicke auf das Symbol 'Explorer', das sich ebenfalls in der Aktivitätsleiste befindet, um Dateien und Ordner im Repository anzuzeigen. Wähle eine Datei aus, um sie im Code-Bereich zu öffnen, nimm deine Änderungen vor und speichere sie.
![Neue Datei erstellen](../images/create-new-file 2. **Dateien bearbeiten und speichern**
![Datei bearbeiten](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.de.png)
- Klicke auf eine Datei im *Explorer*, um sie im Code-Bereich zu öffnen.
- Nimm die gewünschten Änderungen vor.
- VSCode.dev speichert deine Änderungen automatisch, du kannst jedoch auch manuell mit Strg+S speichern.
Sobald du mit der Aktualisierung deines Projekts fertig bist, wähle das Symbol _`Source Control`_, das alle neuen Änderungen enthält, die du an deinem Repository vorgenommen hast.
![Datei bearbeiten](../images/edit-a-file.png. **Änderungen mit Versionskontrolle verfolgen und festschreiben**
Um die Änderungen an deinem Projekt anzuzeigen, wähle die Datei(en) im Ordner `Changes` in der erweiterten Aktivitätsleiste aus. Dadurch wird ein 'Working Tree' geöffnet, in dem du die Änderungen an der Datei visuell sehen kannst. Rot zeigt eine Entfernung aus dem Projekt, während Grün eine Hinzufügung bedeutet.
VSCode.dev hat integrierte **Git**-Versionskontrolle!
![Änderungen anzeigen](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.de.png)
- Klicke auf das Symbol _'Quellcodeverwaltung'_, um alle vorgenommenen Änderungen anzuzeigen.
- Dateien im `Changes`-Ordner zeigen Hinzufügungen (grün) und Löschungen (rot).
![Änderungen anzeigen](../images/working-tree.png Änderungen durch Klicken auf das `+` neben den Dateien vorbereiten.
- **Verwerfe** unerwünschte Änderungen durch Klicken auf das Rückgängig-Symbol.
- Gib eine klare Commit-Nachricht ein und klicke dann auf das Häkchen, um zu committen und zu pushen.
Wenn du mit den Änderungen zufrieden bist, die du vorgenommen hast, bewege den Mauszeiger über den Ordner `Changes` und klicke auf die Schaltfläche `+`, um die Änderungen zu stagen. Staging bedeutet einfach, deine Änderungen vorzubereiten, um sie bei GitHub zu committen.
Um zu deinem Repository auf GitHub zurückzukehren, wähle das Hamburger-Menü oben links.
Falls du jedoch mit einigen Änderungen nicht zufrieden bist und sie verwerfen möchtest, bewege den Mauszeiger über den Ordner `Changes` und wähle das Symbol `Undo`.
![Änderungen vorbereiten und committen](../images/edit-vscode.dev Mit Erweiterungen aufrüsten
Gib dann eine `Commit-Nachricht` ein _(Eine Beschreibung der Änderungen, die du am Projekt vorgenommen hast)_, klicke auf das `Check-Symbol`, um die Änderungen zu committen und zu pushen.
Erweiterungen ermöglichen es dir, Sprachen, Themes, Debugger und Produktivitätstools zu VSCode.dev hinzuzufügen—was dein Coding-Leben einfacher und angenehmer macht.
Sobald du mit deinem Projekt fertig bist, wähle das `Hamburger-Menü-Symbol` oben links, um zum Repository auf github.com zurückzukehren.
### Erweiterungen durchsuchen und verwalten
![Änderungen stagen & committen](../../../../8-code-editor/images/edit-vscode.dev.gif)
- Klicke auf das **Erweiterungen-Symbol** in der Aktivitätsleiste.
- Suche nach einer Erweiterung im Feld _'Search Extensions in Marketplace'_.
## Erweiterungen verwenden
![Erweiterungsdetails](../images/extension-details:
- **Installiert**: Alle Erweiterungen, die du hinzugefügt hast
- **Beliebt**: Branchenfavoriten
- **Empfohlen**: Auf deinen Workflow zugeschnitten
Das Installieren von Erweiterungen in VSCode ermöglicht es dir, neue Funktionen und Optionen für eine angepasste Entwicklungsumgebung in deinem Editor hinzuzufügen, um deinen Entwicklungsworkflow zu verbessern. Diese Erweiterungen helfen dir auch, Unterstützung für mehrere Programmiersprachen hinzuzufügen und sind oft entweder generische Erweiterungen oder sprachbasierte Erweiterungen.
![Erweiterungen anzeigen](
Um die Liste aller verfügbaren Erweiterungen zu durchsuchen, klicke auf das Symbol _`Extensions`_ in der Aktivitätsleiste und beginne, den Namen der Erweiterung in das Textfeld mit der Bezeichnung _'Search Extensions in Marketplace'_ einzugeben. Du siehst eine Liste von Erweiterungen, die jeweils **den Namen der Erweiterung, den Namen des Herausgebers, eine kurze Beschreibung, die Anzahl der Downloads** und **eine Sternebewertung** enthalten.
![Details zu Erweiterungen](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.de.png)
***
Du kannst auch alle zuvor installierten Erweiterungen anzeigen, indem du den Ordner _`Installed`_ erweiterst, beliebte Erweiterungen, die von den meisten Entwicklern verwendet werden, im Ordner _`Popular`_ und empfohlene Erweiterungen für dich entweder von Benutzern im selben Arbeitsbereich oder basierend auf deinen zuletzt geöffneten Dateien im Ordner _`Recommended`_.
### 1. **Erweiterungen installieren**
![Erweiterungen anzeigen](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.de.png)
- Gib den Namen der Erweiterung in die Suche ein, klicke darauf und überprüfe die Details im Editor.
- Drücke die **blaue Installieren-Schaltfläche** in der Seitenleiste _oder_ im Haupt-Code-Bereich.
### 1. Erweiterungen installieren
![Erweiterungen installieren](../images/install-extension 2. **Erweiterungen anpassen**
Um eine Erweiterung zu installieren, gib den Namen der Erweiterung in das Suchfeld ein und klicke darauf, um zusätzliche Informationen über die Erweiterung im Code-Bereich anzuzeigen, sobald sie in der erweiterten Aktivitätsleiste erscheint.
- Finde deine installierte Erweiterung.
- Klicke auf das **Zahnrad-Symbol** → wähle _Erweiterungseinstellungen_, um das Verhalten nach deinen Wünschen anzupassen.
Du kannst entweder auf die _blaue Installationsschaltfläche_ in der erweiterten Aktivitätsleiste klicken, um die Erweiterung zu installieren, oder die Installationsschaltfläche verwenden, die im Code-Bereich erscheint, sobald du die Erweiterung auswählst, um zusätzliche Informationen zu laden.
![Erweiterungseinstellungen ändern](../images/extension-settings 3. **Erweiterungen verwalten**
Du kannst:
![Erweiterungen installieren](../../../../8-code-editor/images/install-extension.gif)
- **Deaktivieren:** Eine Erweiterung vorübergehend ausschalten, während sie installiert bleibt
- **Deinstallieren:** Sie dauerhaft entfernen, wenn sie nicht mehr benötigt wird
### 2. Erweiterungen anpassen
Finde die Erweiterung, klicke auf das Zahnrad-Symbol und wähle Deaktivieren oder Deinstallieren, oder nutze die blauen Schaltflächen im Code-Bereich.
Nach der Installation der Erweiterung musst du möglicherweise deren Verhalten ändern und sie basierend auf deinen Präferenzen anpassen. Um dies zu tun, wähle das Symbol Extensions aus, und diesmal wird deine Erweiterung im Ordner _Installed_ angezeigt. Klicke auf das _**Zahnrad-Symbol**_ und navigiere zu _Extensions Setting_.
***
![Einstellungen für Erweiterungen ändern](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.de.png)
### 3. Erweiterungen verwalten
Nach der Installation und Nutzung deiner Erweiterung bietet vscode.dev Optionen, um deine Erweiterung basierend auf verschiedenen Bedürfnissen zu verwalten. Zum Beispiel kannst du:
- **Deaktivieren:** _(Du kannst eine Erweiterung vorübergehend deaktivieren, wenn du sie nicht mehr benötigst, sie aber nicht vollständig deinstallieren möchtest)_
Wähle die installierte Erweiterung in der erweiterten Aktivitätsleiste aus > klicke auf das Zahnrad-Symbol > wähle 'Disable' oder 'Disable (Workspace)' **ODER** öffne die Erweiterung im Code-Bereich und klicke auf die blaue Schaltfläche Disable.
- **Deinstallieren:** Wähle die installierte Erweiterung in der erweiterten Aktivitätsleiste aus > klicke auf das Zahnrad-Symbol > wähle 'Uninstall' **ODER** öffne die Erweiterung im Code-Bereich und klicke auf die blaue Schaltfläche Uninstall.
## Aufgabe
---
Teste deine Fähigkeiten: [Erstelle eine Lebenslauf-Website mit vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
## Aufgabe
***
[Erstelle eine Lebenslauf-Website mit vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
## Weiterführende Erkundung und Selbststudium
<!----
## Quiz nach der Lektion
[Quiz nach der Lektion](https://ff-quizzes.netlify.app/web/quiz/4)
---->
- Vertiefe dein Wissen mit [den offiziellen VSCode-Web-Dokumenten](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Erkunde erweiterte Arbeitsbereichsfunktionen, Tastenkombinationen und Einstellungen.
## Überprüfung & Selbststudium
***
Lies mehr über [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) und einige seiner anderen Funktionen.
**Jetzt bist du bereit, zu programmieren, zu erstellen und zusammenzuarbeiten—von überall, auf jedem Gerät, mit VSCode.dev!**
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, weisen wir darauf hin, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:13:31+00:00",
"source_file": "AGENTS.md",
"language_code": "de"
}
-->
# AGENTS.md
## Projektübersicht
Dies ist ein Bildungsrepository, das Grundlagen der Webentwicklung für Anfänger vermittelt. Der Lehrplan ist ein umfassender 12-wöchiger Kurs, der von den Microsoft Cloud Advocates entwickelt wurde und 24 praxisorientierte Lektionen zu JavaScript, CSS und HTML umfasst.
### Hauptkomponenten
- **Bildungsinhalte**: 24 strukturierte Lektionen, organisiert in projektbasierte Module
- **Praktische Projekte**: Terrarium, Schreibspiel, Browser-Erweiterung, Weltraumspiel, Banking-App, Code-Editor und KI-Chat-Assistent
- **Interaktive Quizze**: 48 Quizze mit jeweils 3 Fragen (Vor-/Nach-Lektionen-Bewertungen)
- **Mehrsprachige Unterstützung**: Automatische Übersetzungen in über 50 Sprachen via GitHub Actions
- **Technologien**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (für KI-Projekte)
### Architektur
- Bildungsrepository mit lektionenbasierter Struktur
- Jeder Lektionenordner enthält README, Codebeispiele und Lösungen
- Eigenständige Projekte in separaten Verzeichnissen (quiz-app, verschiedene Lektionenprojekte)
- Übersetzungssystem mit GitHub Actions (co-op-translator)
- Dokumentation wird über Docsify bereitgestellt und ist als PDF verfügbar
## Setup-Befehle
Dieses Repository dient hauptsächlich dem Konsum von Bildungsinhalten. Für die Arbeit mit spezifischen Projekten:
### Hauptrepository-Setup
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Quiz-App-Setup (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### Bankprojekt-API (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Browser-Erweiterungsprojekte
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Weltraumspiel-Projekte
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Chat-Projekt (Python-Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Entwicklungsworkflow
### Für Inhaltsbeitragende
1. **Forken Sie das Repository** in Ihrem GitHub-Konto
2. **Klonen Sie Ihren Fork** lokal
3. **Erstellen Sie einen neuen Branch** für Ihre Änderungen
4. Nehmen Sie Änderungen an den Lektioneninhalten oder Codebeispielen vor
5. Testen Sie alle Codeänderungen in den relevanten Projektverzeichnissen
6. Reichen Sie Pull-Requests gemäß den Beitragsrichtlinien ein
### Für Lernende
1. Forken oder klonen Sie das Repository
2. Navigieren Sie nacheinander durch die Lektionenverzeichnisse
3. Lesen Sie die README-Dateien jeder Lektion
4. Machen Sie die Vor-Lektionen-Quizze unter https://ff-quizzes.netlify.app/web/
5. Arbeiten Sie die Codebeispiele in den Lektionenordnern durch
6. Bearbeiten Sie Aufgaben und Herausforderungen
7. Machen Sie die Nach-Lektionen-Quizze
### Live-Entwicklung
- **Dokumentation**: Führen Sie `docsify serve` im Root-Verzeichnis aus (Port 3000)
- **Quiz-App**: Führen Sie `npm run dev` im quiz-app-Verzeichnis aus
- **Projekte**: Verwenden Sie die Live Server-Erweiterung von VS Code für HTML-Projekte
- **API-Projekte**: Führen Sie `npm start` in den jeweiligen API-Verzeichnissen aus
## Testanweisungen
### Quiz-App-Test
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Bank-API-Test
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### Allgemeiner Testansatz
- Dies ist ein Bildungsrepository ohne umfassende automatisierte Tests
- Manuelles Testen konzentriert sich auf:
- Codebeispiele laufen fehlerfrei
- Links in der Dokumentation funktionieren korrekt
- Projekt-Builds werden erfolgreich abgeschlossen
- Beispiele folgen Best Practices
### Vorabprüfungen
- Führen Sie `npm run lint` in Verzeichnissen mit package.json aus
- Überprüfen Sie, ob Markdown-Links gültig sind
- Testen Sie Codebeispiele im Browser oder mit Node.js
- Stellen Sie sicher, dass Übersetzungen die richtige Struktur beibehalten
## Richtlinien für Code-Stil
### JavaScript
- Verwenden Sie moderne ES6+ Syntax
- Folgen Sie den standardmäßigen ESLint-Konfigurationen in den Projekten
- Verwenden Sie aussagekräftige Variablen- und Funktionsnamen für Bildungszwecke
- Fügen Sie Kommentare hinzu, die Konzepte für Lernende erklären
- Formatieren Sie mit Prettier, wo konfiguriert
### HTML/CSS
- Semantische HTML5-Elemente
- Prinzipien des responsiven Designs
- Klare Klassennamen-Konventionen
- Kommentare, die CSS-Techniken für Lernende erklären
### Python
- PEP 8 Stilrichtlinien
- Klare, bildungsorientierte Codebeispiele
- Typ-Hinweise, wo hilfreich für das Lernen
### Markdown-Dokumentation
- Klare Überschriftenhierarchie
- Codeblöcke mit Sprachspezifikation
- Links zu zusätzlichen Ressourcen
- Screenshots und Bilder in `images/` Verzeichnissen
- Alt-Text für Bilder für Barrierefreiheit
### Dateiorganisation
- Lektionen nummeriert in Reihenfolge (1-getting-started-lessons, 2-js-basics, etc.)
- Jedes Projekt hat `solution/` und oft `start/` oder `your-work/` Verzeichnisse
- Bilder werden in lektionenspezifischen `images/` Ordnern gespeichert
- Übersetzungen in `translations/{language-code}/` Struktur
## Build und Deployment
### Quiz-App-Deployment (Azure Static Web Apps)
Die quiz-app ist für die Bereitstellung auf Azure Static Web Apps konfiguriert:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Azure Static Web Apps Konfiguration:
- **App-Standort**: `/quiz-app`
- **Ausgabe-Standort**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Dokumentations-PDF-Erstellung
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Docsify-Dokumentation
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Projekt-spezifische Builds
Jedes Projektverzeichnis kann seinen eigenen Build-Prozess haben:
- Vue-Projekte: `npm run build` erstellt Produktions-Bundles
- Statische Projekte: Kein Build-Schritt, Dateien direkt bereitstellen
## Richtlinien für Pull-Requests
### Titel-Format
Verwenden Sie klare, beschreibende Titel, die den Bereich der Änderung angeben:
- `[Quiz-app] Neues Quiz für Lektion X hinzufügen`
- `[Lesson-3] Tippfehler im Terrarium-Projekt beheben`
- `[Translation] Spanische Übersetzung für Lektion 5 hinzufügen`
- `[Docs] Setup-Anweisungen aktualisieren`
### Erforderliche Prüfungen
Vor dem Einreichen eines PR:
1. **Codequalität**:
- Führen Sie `npm run lint` in den betroffenen Projektverzeichnissen aus
- Beheben Sie alle Linting-Fehler und -Warnungen
2. **Build-Verifizierung**:
- Führen Sie `npm run build` aus, falls zutreffend
- Stellen Sie sicher, dass keine Build-Fehler auftreten
3. **Link-Validierung**:
- Testen Sie alle Markdown-Links
- Überprüfen Sie, ob Bildreferenzen funktionieren
4. **Inhaltsprüfung**:
- Korrekturlesen auf Rechtschreibung und Grammatik
- Sicherstellen, dass Codebeispiele korrekt und lehrreich sind
- Überprüfen, ob Übersetzungen die ursprüngliche Bedeutung beibehalten
### Beitragsanforderungen
- Zustimmung zur Microsoft CLA (automatische Prüfung beim ersten PR)
- Befolgen Sie den [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Siehe [CONTRIBUTING.md](./CONTRIBUTING.md) für detaillierte Richtlinien
- Verweisen Sie auf Issue-Nummern in der PR-Beschreibung, falls zutreffend
### Überprüfungsprozess
- PRs werden von Maintainer und der Community überprüft
- Bildungsverständlichkeit hat Priorität
- Codebeispiele sollten aktuellen Best Practices folgen
- Übersetzungen werden auf Genauigkeit und kulturelle Angemessenheit geprüft
## Übersetzungssystem
### Automatische Übersetzung
- Verwendet GitHub Actions mit co-op-translator Workflow
- Übersetzt automatisch in über 50 Sprachen
- Quelldateien in Hauptverzeichnissen
- Übersetzte Dateien in `translations/{language-code}/` Verzeichnissen
### Manuelle Verbesserungen an Übersetzungen hinzufügen
1. Datei im `translations/{language-code}/` Verzeichnis finden
2. Verbesserungen vornehmen, während die Struktur erhalten bleibt
3. Sicherstellen, dass Codebeispiele weiterhin funktionieren
4. Lokalisierte Quiz-Inhalte testen
### Übersetzungs-Metadaten
Übersetzte Dateien enthalten einen Metadaten-Header:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Debugging und Fehlerbehebung
### Häufige Probleme
**Quiz-App startet nicht**:
- Überprüfen Sie die Node.js-Version (v14+ empfohlen)
- Löschen Sie `node_modules` und `package-lock.json`, führen Sie `npm install` erneut aus
- Überprüfen Sie auf Portkonflikte (Standard: Vite verwendet Port 5173)
**API-Server startet nicht**:
- Überprüfen Sie, ob die Node.js-Version die Mindestanforderungen erfüllt (node >=10)
- Überprüfen Sie, ob der Port bereits verwendet wird
- Stellen Sie sicher, dass alle Abhängigkeiten mit `npm install` installiert sind
**Browser-Erweiterung lädt nicht**:
- Überprüfen Sie, ob manifest.json korrekt formatiert ist
- Überprüfen Sie die Browser-Konsole auf Fehler
- Befolgen Sie die browser-spezifischen Installationsanweisungen für Erweiterungen
**Probleme mit Python-Chat-Projekt**:
- Stellen Sie sicher, dass das OpenAI-Paket installiert ist: `pip install openai`
- Überprüfen Sie, ob die Umgebungsvariable GITHUB_TOKEN gesetzt ist
- Überprüfen Sie die Zugriffsberechtigungen für GitHub Models
**Docsify dient keine Dokumentation**:
- Installieren Sie docsify-cli global: `npm install -g docsify-cli`
- Führen Sie es aus dem Root-Verzeichnis des Repositorys aus
- Überprüfen Sie, ob `docs/_sidebar.md` existiert
### Tipps zur Entwicklungsumgebung
- Verwenden Sie VS Code mit der Live Server-Erweiterung für HTML-Projekte
- Installieren Sie ESLint und Prettier-Erweiterungen für konsistente Formatierung
- Verwenden Sie die DevTools des Browsers zum Debuggen von JavaScript
- Für Vue-Projekte installieren Sie die Vue DevTools Browser-Erweiterung
### Leistungserwägungen
- Eine große Anzahl übersetzter Dateien (50+ Sprachen) bedeutet, dass vollständige Klone groß sind
- Verwenden Sie einen flachen Klon, wenn Sie nur an Inhalten arbeiten: `git clone --depth 1`
- Schließen Sie Übersetzungen von Suchvorgängen aus, wenn Sie an englischen Inhalten arbeiten
- Build-Prozesse können beim ersten Lauf langsam sein (npm install, Vite build)
## Sicherheitsüberlegungen
### Umgebungsvariablen
- API-Schlüssel sollten niemals im Repository gespeichert werden
- Verwenden Sie `.env` Dateien (bereits in `.gitignore`)
- Dokumentieren Sie erforderliche Umgebungsvariablen in den Projekt-READMEs
### Python-Projekte
- Verwenden Sie virtuelle Umgebungen: `python -m venv venv`
- Halten Sie Abhängigkeiten aktuell
- GitHub-Token sollten minimale erforderliche Berechtigungen haben
### GitHub Models Zugriff
- Persönliche Zugriffstoken (PAT) erforderlich für GitHub Models
- Token sollten als Umgebungsvariablen gespeichert werden
- Token oder Anmeldeinformationen niemals commiten
## Zusätzliche Hinweise
### Zielgruppe
- Vollständige Anfänger in der Webentwicklung
- Studenten und Selbstlernende
- Lehrer, die den Lehrplan im Unterricht verwenden
- Inhalte sind für Barrierefreiheit und schrittweisen Kompetenzaufbau konzipiert
### Bildungsphilosophie
- Projektbasierter Lernansatz
- Häufige Wissensüberprüfungen (Quizze)
- Praktische Codierungsübungen
- Beispiele aus der realen Welt
- Fokus auf Grundlagen vor Frameworks
### Repository-Wartung
- Aktive Community von Lernenden und Beitragenden
- Regelmäßige Updates von Abhängigkeiten und Inhalten
- Issues und Diskussionen werden von Maintainer überwacht
- Übersetzungsupdates automatisiert über GitHub Actions
### Verwandte Ressourcen
- [Microsoft Learn Module](https://docs.microsoft.com/learn/)
- [Student Hub Ressourcen](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) empfohlen für Lernende
- Zusätzliche Kurse: Generative KI, Data Science, ML, IoT Lehrpläne verfügbar
### Arbeit mit spezifischen Projekten
Für detaillierte Anweisungen zu einzelnen Projekten, siehe die README-Dateien in:
- `quiz-app/README.md` - Vue 3 Quiz-Anwendung
- `7-bank-project/README.md` - Banking-Anwendung mit Authentifizierung
- `5-browser-extension/README.md` - Entwicklung von Browser-Erweiterungen
- `6-space-game/README.md` - Canvas-basiertes Spiel
- `9-chat-project/README.md` - KI-Chat-Assistent-Projekt
### Monorepo-Struktur
Obwohl kein traditionelles Monorepo, enthält dieses Repository mehrere unabhängige Projekte:
- Jede Lektion ist eigenständig
- Projekte teilen keine Abhängigkeiten
- Arbeiten Sie an einzelnen Projekten, ohne andere zu beeinflussen
- Klonen Sie das gesamte Repository für das vollständige Curriculum-Erlebnis
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -1,220 +1,231 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T14:03:49+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T08:29:14+00:00",
"source_file": "README.md",
"language_code": "de"
}
-->
[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub-Lizenz](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub-Mitwirkende](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub-Issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub-Pull-Requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Willkommen](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![GitHub-Beobachter](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub-Forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub-Sterne](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![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)
[![In Visual Studio Code öffnen](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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
Folgen Sie diesen Schritten, um mit diesen Ressourcen zu beginnen:
1. **Repository forken**: Klicken Sie auf [![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. **Repository klonen**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Treten Sie dem Azure AI Foundry Discord bei und treffen Sie Experten und andere Entwickler**](https://discord.com/invite/ByRwuEEgH4)
Folgen Sie diesen Schritten, um mit diesen Ressourcen zu beginnen:
1. **Repository forken**: Klicken Sie auf [![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. **Repository klonen**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Treten Sie dem Azure AI Foundry Discord bei und treffen Sie Experten und andere Entwickler**](https://discord.com/invite/ByRwuEEgH4)
# Webentwicklung für Anfänger Ein Lehrplan
# Webentwicklung für Anfänger Ein Lehrplan
Lernen Sie die Grundlagen der Webentwicklung mit unserem 12-wöchigen umfassenden Kurs von Microsoft Cloud Advocates. Jede der 24 Lektionen behandelt JavaScript, CSS und HTML durch praktische Projekte wie Terrarien, Browser-Erweiterungen und Weltraumspiele. Nehmen Sie an Quizfragen, Diskussionen und praktischen Aufgaben teil. Verbessern Sie Ihre Fähigkeiten und optimieren Sie Ihr Wissen mit unserer effektiven projektbasierten Pädagogik. Beginnen Sie noch heute Ihre Programmierreise!
Lernen Sie die Grundlagen der Webentwicklung mit unserem 12-wöchigen umfassenden Kurs von Microsoft Cloud Advocates. Jede der 24 Lektionen behandelt JavaScript, CSS und HTML durch praktische Projekte wie Terrarien, Browser-Erweiterungen und Weltraumspiele. Nehmen Sie an Quizfragen, Diskussionen und praktischen Aufgaben teil. Verbessern Sie Ihre Fähigkeiten und optimieren Sie Ihr Wissen mit unserer effektiven projektbasierten Pädagogik. Starten Sie noch heute Ihre Programmierreise!
### 🌐 Mehrsprachige Unterstützung
### 🌐 Mehrsprachige Unterstützung
#### Unterstützt durch GitHub Action (Automatisch & Immer aktuell)
#### Unterstützt durch GitHub Action (Automatisiert & Immer aktuell)
[Französisch](../fr/README.md) | [Spanisch](../es/README.md) | [Deutsch](./README.md) | [Russisch](../ru/README.md) | [Arabisch](../ar/README.md) | [Persisch (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinesisch (vereinfacht)](../zh/README.md) | [Chinesisch (traditionell, Macau)](../mo/README.md) | [Chinesisch (traditionell, Hongkong)](../hk/README.md) | [Chinesisch (traditionell, Taiwan)](../tw/README.md) | [Japanisch](../ja/README.md) | [Koreanisch](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalisch](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalesisch](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugiesisch (Portugal)](../pt/README.md) | [Portugiesisch (Brasilien)](../br/README.md) | [Italienisch](../it/README.md) | [Polnisch](../pl/README.md) | [Türkisch](../tr/README.md) | [Griechisch](../el/README.md) | [Thailändisch](../th/README.md) | [Schwedisch](../sv/README.md) | [Dänisch](../da/README.md) | [Norwegisch](../no/README.md) | [Finnisch](../fi/README.md) | [Niederländisch](../nl/README.md) | [Hebräisch](../he/README.md) | [Vietnamesisch](../vi/README.md) | [Indonesisch](../id/README.md) | [Malaiisch](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Ungarisch](../hu/README.md) | [Tschechisch](../cs/README.md) | [Slowakisch](../sk/README.md) | [Rumänisch](../ro/README.md) | [Bulgarisch](../bg/README.md) | [Serbisch (kyrillisch)](../sr/README.md) | [Kroatisch](../hr/README.md) | [Slowenisch](../sl/README.md) | [Ukrainisch](../uk/README.md) | [Birmanisch (Myanmar)](../my/README.md)
[Französisch](../fr/README.md) | [Spanisch](../es/README.md) | [Deutsch](./README.md) | [Russisch](../ru/README.md) | [Arabisch](../ar/README.md) | [Persisch (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinesisch (vereinfacht)](../zh/README.md) | [Chinesisch (traditionell, Macau)](../mo/README.md) | [Chinesisch (traditionell, Hongkong)](../hk/README.md) | [Chinesisch (traditionell, Taiwan)](../tw/README.md) | [Japanisch](../ja/README.md) | [Koreanisch](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalisch](../bn/README.md) | [Marathi](../mr/README.md) | [Nepalesisch](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portugiesisch (Portugal)](../pt/README.md) | [Portugiesisch (Brasilien)](../br/README.md) | [Italienisch](../it/README.md) | [Polnisch](../pl/README.md) | [Türkisch](../tr/README.md) | [Griechisch](../el/README.md) | [Thailändisch](../th/README.md) | [Schwedisch](../sv/README.md) | [Dänisch](../da/README.md) | [Norwegisch](../no/README.md) | [Finnisch](../fi/README.md) | [Niederländisch](../nl/README.md) | [Hebräisch](../he/README.md) | [Vietnamesisch](../vi/README.md) | [Indonesisch](../id/README.md) | [Malaiisch](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Ungarisch](../hu/README.md) | [Tschechisch](../cs/README.md) | [Slowakisch](../sk/README.md) | [Rumänisch](../ro/README.md) | [Bulgarisch](../bg/README.md) | [Serbisch (kyrillisch)](../sr/README.md) | [Kroatisch](../hr/README.md) | [Slowenisch](../sl/README.md) | [Ukrainisch](../uk/README.md) | [Birmanisch (Myanmar)](../my/README.md)
**Wenn Sie zusätzliche Übersetzungen wünschen, finden Sie die unterstützten Sprachen [hier](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Falls Sie zusätzliche Übersetzungen wünschen, finden Sie unterstützte Sprachen [hier](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
#### 🧑‍🎓 _Sind Sie ein Student?_
#### 🧑‍🎓 _Sind Sie ein Student?_
Besuchen Sie die [**Student Hub Seite**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), wo Sie Ressourcen für Anfänger, Studentenpakete und sogar Möglichkeiten finden, einen kostenlosen Zertifikatsgutschein zu erhalten. Dies ist die Seite, die Sie als Lesezeichen speichern und regelmäßig besuchen sollten, da wir den Inhalt monatlich wechseln.
Besuchen Sie die [**Student Hub Seite**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), wo Sie Ressourcen für Anfänger, Studentenpakete und sogar Möglichkeiten finden, einen kostenlosen Zertifikatsgutschein zu erhalten. Diese Seite sollten Sie sich als Lesezeichen speichern und regelmäßig besuchen, da wir den Inhalt monatlich aktualisieren.
### 📣 Ankündigung - _Neues Projekt mit Generativer KI_
### 📣 Ankündigung - _Neues Projekt mit Generativer KI_
Ein neues KI-Assistent-Projekt wurde gerade hinzugefügt, sehen Sie es sich [hier](./09-chat-project/README.md) an.
Ein neues Projekt für einen KI-Assistenten wurde gerade hinzugefügt, schauen Sie es sich [hier](./09-chat-project/README.md) an.
### 📣 Ankündigung - _Neuer Lehrplan_ zu Generativer KI für JavaScript wurde gerade veröffentlicht
### 📣 Ankündigung - _Neuer Lehrplan_ zu Generativer KI für JavaScript wurde gerade veröffentlicht
Verpassen Sie nicht unseren neuen Lehrplan zur Generativen KI!
Verpassen Sie nicht unseren neuen Lehrplan zur Generativen KI!
Besuchen Sie [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course), um loszulegen!
Besuchen Sie [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course), um loszulegen!
![Hintergrund](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.de.png)
![Hintergrund](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.de.png)
- Lektionen, die alles von den Grundlagen bis zu RAG abdecken.
- Interagieren Sie mit historischen Charakteren mithilfe von GenAI und unserer Begleit-App.
- Spaßige und fesselnde Erzählung, Sie werden durch die Zeit reisen!
- Lektionen, die alles von den Grundlagen bis zu RAG abdecken.
- Interagieren Sie mit historischen Charakteren mithilfe von GenAI und unserer Begleit-App.
- Eine unterhaltsame und spannende Erzählung Sie werden durch die Zeit reisen!
![Charakter](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.de.png)
![Charakter](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.de.png)
Jede Lektion enthält eine Aufgabe, ein Wissensquiz und eine Herausforderung, die Ihnen helfen, Themen wie folgende zu lernen:
- Prompting und Prompt-Engineering
- Text- und Bild-App-Generierung
- Such-Apps
Jede Lektion enthält eine Aufgabe, ein Wissensquiz und eine Herausforderung, um Themen wie folgende zu erlernen:
- Prompting und Prompt-Engineering
- Text- und Bild-App-Generierung
- Suchanwendungen
Besuchen Sie [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course), um loszulegen!
Besuchen Sie [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course), um loszulegen!
## 🌱 Erste Schritte
## 🌱 Erste Schritte
> **Lehrer**, wir haben [einige Vorschläge](for-teachers.md) aufgenommen, wie Sie diesen Lehrplan nutzen können. Wir würden uns über Ihr Feedback [in unserem Diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) freuen!
> **Lehrer**, wir haben [einige Vorschläge](for-teachers.md) hinzugefügt, wie Sie diesen Lehrplan nutzen können. Wir freuen uns über Ihr Feedback [in unserem Diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Lernende](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, beginnen Sie jede Lektion mit einem Quiz vor der Vorlesung und arbeiten Sie sich durch das Vorlesungsmaterial, die verschiedenen Aktivitäten und überprüfen Sie Ihr Verständnis mit dem Quiz nach der Vorlesung.
**[Lernende](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, beginnen Sie jede Lektion mit einem Quiz vor der Vorlesung und arbeiten Sie sich durch das Vorlesungsmaterial, die verschiedenen Aktivitäten und überprüfen Sie Ihr Verständnis mit dem Quiz nach der Vorlesung.
Um Ihr Lernerlebnis zu verbessern, verbinden Sie sich mit Ihren Mitlernenden, um gemeinsam an den Projekten zu arbeiten! Diskussionen sind in unserem [Diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) willkommen, wo unser Team von Moderatoren Ihre Fragen beantworten wird.
Um Ihr Lernerlebnis zu verbessern, verbinden Sie sich mit Ihren Mitlernenden, um gemeinsam an den Projekten zu arbeiten! Diskussionen sind in unserem [Diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) willkommen, wo unser Team von Moderatoren Ihre Fragen beantworten wird.
Um Ihre Ausbildung weiterzuführen, empfehlen wir Ihnen dringend, [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) für zusätzliche Lernmaterialien zu erkunden.
Um Ihre Ausbildung weiterzuführen, empfehlen wir Ihnen dringend, [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) für zusätzliche Lernmaterialien zu erkunden.
### 📋 Einrichten Ihrer Umgebung
### 📋 Einrichten Ihrer Umgebung
Dieser Lehrplan hat eine einsatzbereite Entwicklungsumgebung! Wenn Sie beginnen, können Sie den Lehrplan entweder in einem [Codespace](https://github.com/features/codespaces/) (_eine browserbasierte Umgebung, keine Installationen erforderlich_) oder lokal auf Ihrem Computer mit einem Texteditor wie [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ausführen.
Dieser Lehrplan hat eine einsatzbereite Entwicklungsumgebung! Zu Beginn können Sie den Lehrplan entweder in einem [Codespace](https://github.com/features/codespaces/) (_eine browserbasierte Umgebung, keine Installationen erforderlich_) oder lokal auf Ihrem Computer mit einem Texteditor wie [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ausführen.
#### Erstellen Sie Ihr Repository
Um Ihre Arbeit einfach zu speichern, wird empfohlen, dass Sie Ihre eigene Kopie dieses Repositorys erstellen. Sie können dies tun, indem Sie oben auf der Seite auf die Schaltfläche **Use this template** klicken. Dadurch wird ein neues Repository in Ihrem GitHub-Konto mit einer Kopie des Lehrplans erstellt.
#### Erstellen Sie Ihr Repository
Um Ihre Arbeit einfach zu speichern, wird empfohlen, eine eigene Kopie dieses Repositorys zu erstellen. Sie können dies tun, indem Sie auf die Schaltfläche **Use this template** oben auf der Seite klicken. Dadurch wird ein neues Repository in Ihrem GitHub-Konto mit einer Kopie des Lehrplans erstellt.
Folgen Sie diesen Schritten:
1. **Repository forken**: Klicken Sie auf die Schaltfläche "Fork" oben rechts auf dieser Seite.
2. **Repository klonen**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
Folgen Sie diesen Schritten:
1. **Repository forken**: Klicken Sie auf die Schaltfläche "Fork" oben rechts auf dieser Seite.
2. **Repository klonen**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Ausführen des Lehrplans in einem Codespace
#### Den Lehrplan in einem Codespace ausführen
In Ihrer Kopie dieses Repositorys, die Sie erstellt haben, klicken Sie auf die Schaltfläche **Code** und wählen **Open with Codespaces**. Dadurch wird ein neuer Codespace erstellt, in dem Sie arbeiten können.
In Ihrer Kopie dieses Repositorys, die Sie erstellt haben, klicken Sie auf die Schaltfläche **Code** und wählen **Open with Codespaces**. Dadurch wird ein neuer Codespace für Sie erstellt, in dem Sie arbeiten können.
[!Codespace](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.de.png)
#### Ausführen des Lehrplans lokal auf Ihrem Computer
#### Den Lehrplan lokal auf Ihrem Computer ausführen
Um diesen Lehrplan lokal auf Ihrem Computer auszuführen, benötigen Sie einen Texteditor, einen Browser und ein Befehlszeilentool. Unsere erste Lektion, [Einführung in Programmiersprachen und Tools](../../1-getting-started-lessons/1-intro-to-programming-languages), führt Sie durch verschiedene Optionen für jedes dieser Tools, damit Sie auswählen können, was am besten für Sie funktioniert.
Um diesen Lehrplan lokal auf Ihrem Computer auszuführen, benötigen Sie einen Texteditor, einen Browser und ein Befehlszeilentool. Unsere erste Lektion, [Einführung in Programmiersprachen und Werkzeuge](../../1-getting-started-lessons/1-intro-to-programming-languages), führt Sie durch verschiedene Optionen für jedes dieser Werkzeuge, damit Sie auswählen können, was am besten für Sie funktioniert.
Unsere Empfehlung ist die Verwendung von [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) als Editor, der auch ein integriertes [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) enthält. Sie können Visual Studio Code [hier](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) herunterladen.
Unsere Empfehlung ist die Verwendung von [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) als Editor, der auch ein integriertes [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) enthält. Sie können Visual Studio Code [hier](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) herunterladen.
1. Klonen Sie Ihr Repository auf Ihren Computer. Sie können dies tun, indem Sie auf die Schaltfläche **Code** klicken und die URL kopieren:
1. Klonen Sie Ihr Repository auf Ihren Computer. Sie können dies tun, indem Sie auf die Schaltfläche **Code** klicken und die URL kopieren:
[!CodeSpace](./images/createcodespace.png)
[CodeSpace](./images/createcodespace.png)
Öffnen Sie dann [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) innerhalb von [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) und führen Sie den folgenden Befehl aus, wobei Sie `<your-repository-url>` durch die gerade kopierte URL ersetzen:
Öffnen Sie dann [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) innerhalb von [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) und führen Sie den folgenden Befehl aus, wobei Sie `<your-repository-url>` durch die gerade kopierte URL ersetzen:
```bash
git clone <your-repository-url>
```
```
2. Öffnen Sie den Ordner in Visual Studio Code. Sie können dies tun, indem Sie auf **Datei** klicken.
> **Ordner öffnen** und den Ordner auswählen, den du gerade geklont hast.
> Empfohlene Visual Studio Code-Erweiterungen:
2. Öffnen Sie den Ordner in Visual Studio Code. Sie können dies tun, indem Sie auf **Datei** > **Ordner öffnen** klicken und den gerade geklonten Ordner auswählen.
> Empfohlene Visual Studio Code-Erweiterungen:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - um HTML-Seiten direkt in Visual Studio Code zu betrachten
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - um HTML-Seiten direkt in Visual Studio Code anzuzeigen
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - um schneller Code zu schreiben
## 📂 Jede Lektion beinhaltet:
## 📂 Jede Lektion enthält:
- optionale Sketchnotes
- optionales Sketchnote
- optionales ergänzendes Video
- Quiz zur Aufwärmung vor der Lektion
- Quiz vor der Lektion
- schriftliche Lektion
- bei projektbasierten Lektionen: Schritt-für-Schritt-Anleitungen zum Erstellen des Projekts
- für projektbasierte Lektionen Schritt-für-Schritt-Anleitungen zum Erstellen des Projekts
- Wissensüberprüfungen
- eine Herausforderung
- ergänzende Lektüre
- Aufgaben
- Aufgabe
- [Quiz nach der Lektion](https://ff-quizzes.netlify.app/web/)
> **Eine Anmerkung zu den Quizzes**: Alle Quizzes befinden sich im Ordner "Quiz-app", insgesamt 48 Quizzes mit jeweils drei Fragen. Sie sind [hier](https://ff-quizzes.netlify.app/web/) verfügbar. Die Quiz-App kann lokal ausgeführt oder auf Azure bereitgestellt werden; folgen Sie den Anweisungen im Ordner `quiz-app`.
> **Eine Anmerkung zu den Quiz**: Alle Quiz befinden sich im Ordner Quiz-app, insgesamt 48 Quiz mit jeweils drei Fragen. Sie sind [hier](https://ff-quizzes.netlify.app/web/) verfügbar. Die Quiz-App kann lokal ausgeführt oder auf Azure bereitgestellt werden; folgen Sie den Anweisungen im Ordner `quiz-app`.
## 🗃️ Lektionen
| | Projektname | Vermittelte Konzepte | Lernziele | Verlinkte Lektion | Autor:in |
| :-: | :------------------------------------------------------: | :------------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------: | :----------------------: |
| 01 | Erste Schritte | Einführung in die Programmierung und Werkzeuge der Branche | Lernen Sie die Grundlagen der meisten Programmiersprachen und die Software kennen, die professionelle Entwickler:innen nutzen | [Einführung in Programmiersprachen und Werkzeuge der Branche](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Erste Schritte | Grundlagen von GitHub, inklusive Teamarbeit | Wie man GitHub in Projekten nutzt und mit anderen an einem Code-Bestand zusammenarbeitet | [Einführung in GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Erste Schritte | Barrierefreiheit | Grundlagen der Barrierefreiheit im Web | [Grundlagen der Barrierefreiheit](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS-Grundlagen | JavaScript-Datentypen | Die Grundlagen der JavaScript-Datentypen | [Datentypen](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS-Grundlagen | Funktionen und Methoden | Lernen, wie Funktionen und Methoden den logischen Ablauf einer Anwendung steuern | [Funktionen und Methoden](./2-js-basics/2-functions-methods/README.md) | Jasmine und Christopher |
| 06 | JS-Grundlagen | Entscheidungen mit JS treffen | Lernen, wie man Bedingungen im Code mit Entscheidungsstrukturen erstellt | [Entscheidungen treffen](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS-Grundlagen | Arrays und Schleifen | Arbeiten mit Daten mithilfe von Arrays und Schleifen in JavaScript | [Arrays und Schleifen](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML in der Praxis | Erstellen Sie das HTML für ein Online-Terrarium, mit Fokus auf Layoutgestaltung | [Einführung in HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS in der Praxis | Erstellen Sie das CSS, um das Online-Terrarium zu gestalten, mit Fokus auf die Grundlagen von CSS und responsivem Design | [Einführung in CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, DOM-Manipulation | Schreiben Sie das JavaScript, um das Terrarium als Drag-and-Drop-Oberfläche funktionsfähig zu machen, mit Fokus auf Closures und DOM-Manipulation | [JavaScript Closures, DOM-Manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Tipp-Spiel](./4-typing-game/solution/README.md) | Ein Tipp-Spiel erstellen | Lernen, wie man Tastaturereignisse nutzt, um die Logik einer JavaScript-App zu steuern | [Ereignisgesteuerte Programmierung](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Grüne Browser-Erweiterung](./5-browser-extension/solution/README.md) | Arbeiten mit Browsern | Lernen, wie Browser funktionieren, ihre Geschichte und wie man die ersten Elemente einer Browser-Erweiterung erstellt | [Über Browser](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Grüne Browser-Erweiterung](./5-browser-extension/solution/README.md) | Formulare erstellen, eine API aufrufen und Variablen im lokalen Speicher speichern | Erstellen Sie die JavaScript-Elemente Ihrer Browser-Erweiterung, um eine API mit Variablen aus dem lokalen Speicher aufzurufen | [APIs, Formulare und lokaler Speicher](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Grüne Browser-Erweiterung](./5-browser-extension/solution/README.md) | Hintergrundprozesse im Browser, Web-Performance | Nutzen Sie die Hintergrundprozesse des Browsers, um das Symbol der Erweiterung zu verwalten; lernen Sie Optimierungen für die Web-Performance | [Hintergrundaufgaben und Performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Fortgeschrittene Spieleentwicklung mit JavaScript | Lernen Sie Vererbung mit Klassen und Komposition sowie das Pub/Sub-Muster, als Vorbereitung auf die Spieleentwicklung | [Einführung in fortgeschrittene Spieleentwicklung](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Zeichnen auf Canvas | Lernen Sie die Canvas-API kennen, um Elemente auf einem Bildschirm zu zeichnen | [Zeichnen auf Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Elemente auf dem Bildschirm bewegen | Entdecken Sie, wie Elemente mithilfe kartesischer Koordinaten und der Canvas-API Bewegung erhalten | [Elemente bewegen](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Kollisionserkennung | Lassen Sie Elemente kollidieren und aufeinander reagieren, nutzen Sie Tastendrücke und implementieren Sie eine Abkühlfunktion für die Spielperformance | [Kollisionserkennung](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Punktestand führen | Führen Sie mathematische Berechnungen basierend auf dem Spielstatus und der Performance durch | [Punktestand führen](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Spiel beenden und neu starten | Lernen Sie, wie man ein Spiel beendet und neu startet, einschließlich der Bereinigung von Ressourcen und Zurücksetzung von Variablen | [Endbedingung](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking-App](./7-bank-project/solution/README.md) | HTML-Templates und Routen in einer Web-App | Lernen Sie, wie man die Struktur einer mehrseitigen Website mit Routing und HTML-Templates erstellt | [HTML-Templates und Routen](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking-App](./7-bank-project/solution/README.md) | Login- und Registrierungsformular erstellen | Lernen Sie, wie man Formulare erstellt und Validierungsroutinen implementiert | [Formulare](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking-App](./7-bank-project/solution/README.md) | Methoden zum Abrufen und Verwenden von Daten | Wie Daten in Ihre App fließen, wie man sie abruft, speichert und verwaltet | [Daten](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking-App](./7-bank-project/solution/README.md) | Konzepte des Zustandsmanagements | Lernen Sie, wie Ihre App den Zustand beibehält und wie man ihn programmatisch verwaltet | [Zustandsmanagement](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Arbeiten mit VScode | Lernen Sie, wie man einen Code-Editor verwendet | [VScode Code-Editor verwenden](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [KI-Assistenten](./9-chat-project/README.md) | Arbeiten mit KI | Lernen Sie, wie man einen eigenen KI-Assistenten erstellt | [KI-Assistent-Projekt](./9-chat-project/README.md) | Chris |
| | Projektname | Vermittelte Konzepte | Lernziele | Verlinkte Lektion | Autor |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Erste Schritte | Einführung in die Programmierung und Werkzeuge der Branche | Lernen Sie die grundlegenden Prinzipien der meisten Programmiersprachen und die Software kennen, die professionelle Entwickler nutzen | [Einführung in Programmiersprachen und Werkzeuge der Branche](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Erste Schritte | Grundlagen von GitHub, einschließlich Teamarbeit | Erfahren Sie, wie Sie GitHub in Ihrem Projekt nutzen und mit anderen an einer Codebasis zusammenarbeiten können | [Einführung in GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Erste Schritte | Barrierefreiheit | Lernen Sie die Grundlagen der Barrierefreiheit im Web | [Grundlagen der Barrierefreiheit](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS-Grundlagen | JavaScript-Datentypen | Die Grundlagen der JavaScript-Datentypen | [Datentypen](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS-Grundlagen | Funktionen und Methoden | Lernen Sie Funktionen und Methoden kennen, um den Logikfluss einer Anwendung zu steuern | [Funktionen und Methoden](./2-js-basics/2-functions-methods/README.md) | Jasmine und Christopher |
| 06 | JS-Grundlagen | Entscheidungen mit JS treffen | Lernen Sie, wie Sie Bedingungen in Ihrem Code mit Entscheidungsfindungsmethoden erstellen können | [Entscheidungen treffen](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS-Grundlagen | Arrays und Schleifen | Arbeiten Sie mit Daten mithilfe von Arrays und Schleifen in JavaScript | [Arrays und Schleifen](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML in der Praxis | Erstellen Sie das HTML, um ein Online-Terrarium zu bauen, mit Fokus auf Layoutgestaltung | [Einführung in HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS in der Praxis | Erstellen Sie das CSS, um das Online-Terrarium zu gestalten, mit Fokus auf die Grundlagen von CSS und responsivem Design | [Einführung in CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, DOM-Manipulation | Erstellen Sie das JavaScript, um das Terrarium als Drag-and-Drop-Oberfläche funktionsfähig zu machen, mit Fokus auf Closures und DOM-Manipulation | [JavaScript Closures, DOM-Manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Tipp-Spiel](./4-typing-game/solution/README.md) | Ein Tipp-Spiel erstellen | Lernen Sie, wie Sie Tastaturereignisse nutzen können, um die Logik Ihrer JavaScript-App zu steuern | [Ereignisgesteuerte Programmierung](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Grüne Browser-Erweiterung](./5-browser-extension/solution/README.md) | Arbeiten mit Browsern | Lernen Sie, wie Browser funktionieren, ihre Geschichte und wie Sie die ersten Elemente einer Browser-Erweiterung erstellen | [Über Browser](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Grüne Browser-Erweiterung](./5-browser-extension/solution/README.md) | Ein Formular erstellen, eine API aufrufen und Variablen im lokalen Speicher speichern | Erstellen Sie die JavaScript-Elemente Ihrer Browser-Erweiterung, um eine API mit Variablen aus dem lokalen Speicher aufzurufen | [APIs, Formulare und lokaler Speicher](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Grüne Browser-Erweiterung](./5-browser-extension/solution/README.md) | Hintergrundprozesse im Browser, Web-Performance | Nutzen Sie die Hintergrundprozesse des Browsers, um das Symbol der Erweiterung zu verwalten; lernen Sie Optimierungen für die Web-Performance kennen | [Hintergrundaufgaben und Performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Fortgeschrittene Spieleentwicklung mit JavaScript | Lernen Sie Vererbung mit Klassen und Komposition sowie das Pub/Sub-Muster kennen, um ein Spiel vorzubereiten | [Einführung in fortgeschrittene Spieleentwicklung](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Zeichnen auf Canvas | Lernen Sie die Canvas-API kennen, die verwendet wird, um Elemente auf einem Bildschirm zu zeichnen | [Zeichnen auf Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Elemente auf dem Bildschirm bewegen | Entdecken Sie, wie Elemente mit kartesischen Koordinaten und der Canvas-API Bewegung erhalten können | [Elemente bewegen](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Kollisionserkennung | Lassen Sie Elemente miteinander kollidieren und aufeinander reagieren, nutzen Sie Tasteneingaben und implementieren Sie eine Abkühlfunktion für die Spielperformance | [Kollisionserkennung](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Punkte zählen | Führen Sie mathematische Berechnungen basierend auf dem Spielstatus und der Performance durch | [Punkte zählen](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Weltraum-Spiel](./6-space-game/solution/README.md) | Spiel beenden und neu starten | Lernen Sie, wie Sie das Spiel beenden und neu starten, einschließlich der Bereinigung von Assets und dem Zurücksetzen von Variablen | [Endbedingung](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking-App](./7-bank-project/solution/README.md) | HTML-Vorlagen und Routen in einer Web-App | Lernen Sie, wie Sie die Architektur einer mehrseitigen Website mit Routing und HTML-Vorlagen erstellen können | [HTML-Vorlagen und Routen](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking-App](./7-bank-project/solution/README.md) | Ein Login- und Registrierungsformular erstellen | Lernen Sie, wie Sie Formulare erstellen und Validierungsroutinen handhaben können | [Formulare](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking-App](./7-bank-project/solution/README.md) | Methoden zum Abrufen und Verwenden von Daten | Lernen Sie, wie Daten in Ihre App fließen, wie Sie sie abrufen, speichern und entsorgen können | [Daten](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking-App](./7-bank-project/solution/README.md) | Konzepte des Zustandsmanagements | Lernen Sie, wie Ihre App den Zustand beibehält und wie Sie ihn programmatisch verwalten können | [Zustandsmanagement](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Arbeiten mit VScode | Lernen Sie, wie Sie einen Code-Editor verwenden | [VScode Code-Editor verwenden](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [KI-Assistenten](./9-chat-project/README.md) | Arbeiten mit KI | Lernen Sie, wie Sie Ihren eigenen KI-Assistenten erstellen | [KI-Assistent-Projekt](./9-chat-project/README.md) | Chris |
## 🏫 Pädagogik
Unser Lehrplan basiert auf zwei zentralen pädagogischen Prinzipien:
* projektbasiertes Lernen
* häufige Quizzes
* häufige Quiz
Das Programm vermittelt die Grundlagen von JavaScript, HTML und CSS sowie die neuesten Tools und Techniken, die von heutigen Webentwickler:innen genutzt werden. Die Studierenden haben die Möglichkeit, praktische Erfahrungen zu sammeln, indem sie ein Tipp-Spiel, ein virtuelles Terrarium, eine umweltfreundliche Browser-Erweiterung, ein Weltraum-Spiel im Stil von Space Invaders und eine Banking-App für Unternehmen entwickeln. Am Ende der Serie haben die Studierenden ein solides Verständnis für Webentwicklung erlangt.
Das Programm vermittelt die Grundlagen von JavaScript, HTML und CSS sowie die neuesten Werkzeuge und Techniken, die von heutigen Webentwicklern verwendet werden. Die Studierenden haben die Möglichkeit, praktische Erfahrungen zu sammeln, indem sie ein Tipp-Spiel, ein virtuelles Terrarium, eine umweltfreundliche Browser-Erweiterung, ein Weltraum-Spiel im Stil von Space Invaders und eine Banking-App für Unternehmen entwickeln. Am Ende der Serie haben die Studierenden ein solides Verständnis für Webentwicklung erlangt.
> 🎓 Die ersten Lektionen dieses Lehrplans können Sie als [Lernpfad](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) auf Microsoft Learn absolvieren!
> 🎓 Sie können die ersten Lektionen dieses Lehrplans als [Lernpfad](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) auf Microsoft Learn absolvieren!
Indem der Inhalt projektbasiert gestaltet ist, wird der Lernprozess für die Studierenden ansprechender und die Behaltensleistung der Konzepte wird verbessert. Wir haben außerdem mehrere Einführungslektionen zu JavaScript-Grundlagen geschrieben, die mit einem Video aus der Sammlung "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" kombiniert sind, von denen einige Autor:innen zu diesem Lehrplan beigetragen haben.
Indem sichergestellt wird, dass die Inhalte mit Projekten übereinstimmen, wird der Lernprozess für die Studierenden ansprechender gestaltet und die Behaltensrate der Konzepte erhöht. Wir haben auch mehrere Einführungslektionen zu JavaScript-Grundlagen geschrieben, die mit einem Video aus der Sammlung "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" kombiniert sind, deren Autoren teilweise zu diesem Lehrplan beigetragen haben.
Darüber hinaus setzt ein niedrigschwelliges Quiz vor einer Lektion den Fokus der Studierenden auf das Lernen eines Themas, während ein zweites Quiz nach der Lektion die Behaltensleistung weiter fördert. Dieser Lehrplan wurde flexibel und unterhaltsam gestaltet und kann vollständig oder teilweise absolviert werden. Die Projekte beginnen klein und werden im Laufe des 12-wöchigen Zyklus zunehmend komplexer.
Darüber hinaus setzt ein niedrigschwelliges Quiz vor einer Klasse die Absicht der Studierenden, ein Thema zu lernen, während ein zweites Quiz nach der Klasse die Behaltensrate weiter erhöht. Dieser Lehrplan wurde so gestaltet, dass er flexibel und unterhaltsam ist und entweder vollständig oder teilweise absolviert werden kann. Die Projekte beginnen klein und werden im Laufe des 12-wöchigen Zyklus zunehmend komplexer.
Obwohl wir bewusst darauf verzichtet haben, JavaScript-Frameworks einzuführen, um uns auf die grundlegenden Fähigkeiten zu konzentrieren, die als Webentwickler:in benötigt werden, bevor ein Framework verwendet wird, wäre ein guter nächster Schritt nach Abschluss dieses Lehrplans das Erlernen von Node.js über eine weitere Videosammlung: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
Obwohl wir bewusst darauf verzichtet haben, JavaScript-Frameworks einzuführen, um uns auf die grundlegenden Fähigkeiten zu konzentrieren, die ein Webentwickler vor der Einführung eines Frameworks benötigt, wäre ein guter nächster Schritt nach Abschluss dieses Lehrplans das Lernen über Node.js durch eine weitere Videosammlung: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Besuchen Sie unsere [Verhaltensregeln](CODE_OF_CONDUCT.md) und [Richtlinien für Beiträge](CONTRIBUTING.md). Wir freuen uns über Ihr konstruktives Feedback!
## 🧭 Offline-Zugriff
Sie können diese Dokumentation offline mit [Docsify](https://docsify.js.org/#/) ausführen. Forken Sie dieses Repository, [installieren Sie Docsify](https://docsify.js.org/#/quickstart) auf Ihrem lokalen Rechner und geben Sie dann im Stammverzeichnis dieses Repos `docsify serve` ein. Die Website wird auf Port 3000 auf Ihrem localhost bereitgestellt: `localhost:3000`.
Sie können diese Dokumentation offline mit [Docsify](https://docsify.js.org/#/) ausführen. Forken Sie dieses Repository, [installieren Sie Docsify](https://docsify.js.org/#/quickstart) auf Ihrem lokalen Rechner und geben Sie dann im Stammordner dieses Repos `docsify serve` ein. Die Website wird auf Port 3000 auf Ihrem localhost bereitgestellt: `localhost:3000`.
## 📘 PDF
Eine PDF-Version aller Lektionen finden Sie [hier](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
Ein PDF mit allen Lektionen finden Sie [hier](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Weitere Kurse
Unser Team erstellt weitere Kurse! Schauen Sie sich an:
- [Generative KI für Anfänger:innen](https://aka.ms/genai-beginners)
- [Generative KI für Anfänger:innen .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generative KI für Anfänger](https://aka.ms/genai-beginners)
- [Generative KI für Anfänger .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generative KI mit JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [Generative KI mit Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [KI für Anfänger:innen](https://aka.ms/ai-beginners)
- [Datenwissenschaft für Anfänger](https://aka.ms/datascience-beginners)
- [ML für Anfänger](https://aka.ms/ml-beginners)
- [Cybersicherheit für Anfänger](https://github.com/microsoft/Security-101)
- [Webentwicklung für Anfänger](https://aka.ms/webdev-beginners)
- [IoT für Anfänger](https://aka.ms/iot-beginners)
- [XR-Entwicklung für Anfänger](https://github.com/microsoft/xr-development-for-beginners)
- [GitHub Copilot meistern für agentischen Einsatz](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [GitHub Copilot meistern für C#/.NET-Entwickler](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Wähle dein eigenes Copilot-Abenteuer](https://github.com/microsoft/CopilotAdventures)
- [KI für Anfänger](https://aka.ms/ai-beginners)
- [Datenwissenschaft für Anfänger](https://aka.ms/datascience-beginners)
- [Maschinelles Lernen für Anfänger](https://aka.ms/ml-beginners)
- [Cybersicherheit für Anfänger](https://github.com/microsoft/Security-101)
- [Webentwicklung für Anfänger](https://aka.ms/webdev-beginners)
- [IoT für Anfänger](https://aka.ms/iot-beginners)
- [XR-Entwicklung für Anfänger](https://github.com/microsoft/xr-development-for-beginners)
- [GitHub Copilot für Agentic-Nutzung meistern](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [GitHub Copilot für C#/.NET-Entwickler meistern](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Wähle dein eigenes Copilot-Abenteuer](https://github.com/microsoft/CopilotAdventures)
## Hilfe erhalten
Falls du feststeckst oder Fragen zum Erstellen von KI-Anwendungen hast, tritt bei:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
Falls du Produktfeedback geben möchtest oder Fehler beim Erstellen auftreten, besuche:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Lizenz
Dieses Repository ist unter der MIT-Lizenz lizenziert. Weitere Informationen findest du in der [LICENSE](../../LICENSE)-Datei.
Dieses Repository ist unter der MIT-Lizenz lizenziert. Siehe die [LICENSE](../../LICENSE)-Datei für weitere Informationen.
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, weisen wir darauf hin, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -1,45 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-24T11:54:33+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T08:28:59+00:00",
"source_file": "for-teachers.md",
"language_code": "de"
}
-->
## Für Lehrkräfte
### Für Lehrkräfte
Möchten Sie dieses Curriculum in Ihrem Unterricht verwenden? Sehr gerne!
Sie können dieses Curriculum gerne in Ihrem Unterricht verwenden. Es funktioniert nahtlos mit GitHub Classroom und führenden LMS-Plattformen und kann auch als eigenständiges Repository mit Ihren Schülern genutzt werden.
Tatsächlich können Sie es direkt auf GitHub nutzen, indem Sie GitHub Classroom verwenden.
### Verwendung mit GitHub Classroom
Dazu müssen Sie dieses Repository forken. Sie benötigen ein separates Repository für jede Lektion, daher müssen Sie jeden Ordner in ein eigenes Repository extrahieren. Auf diese Weise kann [GitHub Classroom](https://classroom.github.com/classrooms) jede Lektion einzeln erfassen.
Um Lektionen und Aufgaben pro Kohorte zu verwalten, erstellen Sie ein Repository pro Lektion, damit GitHub Classroom jede Aufgabe unabhängig verknüpfen kann.
Diese [vollständigen Anweisungen](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) geben Ihnen eine Vorstellung davon, wie Sie Ihr Klassenzimmer einrichten können.
- Forken Sie dieses Repository in Ihre Organisation.
- Erstellen Sie ein separates Repository für jede Lektion, indem Sie jeden Lektionen-Ordner in ein eigenes Repository extrahieren.
- Option A: Erstellen Sie leere Repositories (eines pro Lektion) und kopieren Sie die Inhalte des Lektionen-Ordners in jedes.
- Option B: Verwenden Sie einen Ansatz, der den Git-Verlauf beibehält (z. B. einen Ordner in ein neues Repository aufteilen), falls Sie die Herkunft benötigen.
- Erstellen Sie in GitHub Classroom eine Aufgabe pro Lektion und verweisen Sie auf das entsprechende Lektionen-Repository.
- Empfohlene Einstellungen:
- Repository-Sichtbarkeit: privat für die Arbeit der Schüler.
- Verwenden Sie Starter-Code aus dem Standard-Branch des Lektionen-Repositories.
- Fügen Sie Issue- und Pull-Request-Vorlagen für Quizfragen und Einreichungen hinzu.
- Konfigurieren Sie optional Autograding und Tests, falls Ihre Lektionen diese enthalten.
- Hilfreiche Konventionen:
- Repository-Namen wie lesson-01-intro, lesson-02-html usw.
- Labels: quiz, assignment, needs-review, late, resubmission.
- Tags/Releases pro Kohorte (z. B. v2025-term1).
## Nutzung in Moodle, Canvas oder Blackboard
Tipp: Vermeiden Sie es, Repositories in synchronisierten Ordnern (z. B. OneDrive/Google Drive) zu speichern, um Git-Konflikte unter Windows zu verhindern.
Dieses Curriculum funktioniert hervorragend in diesen Learning Management Systemen! Verwenden Sie die [Moodle-Datei](../../../../../../../teaching-files/webdev-moodle.mbz) für den vollständigen Inhalt oder probieren Sie die [Common Cartridge-Datei](../../../../../../../teaching-files/webdev-common-cartridge.imscc), die einen Teil des Inhalts enthält. Moodle Cloud unterstützt keine vollständigen Common Cartridge-Exporte, daher ist es besser, die Moodle-Download-Datei zu verwenden, die in Canvas hochgeladen werden kann. Bitte teilen Sie uns mit, wie wir diese Erfahrung verbessern können.
### Verwendung mit Moodle, Canvas oder Blackboard
![Moodle](/teaching-files/moodle.png)
Dieses Curriculum enthält importierbare Pakete für gängige LMS-Workflows.
- Moodle: Verwenden Sie die Moodle-Upload-Datei [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz), um den gesamten Kurs zu laden.
- Common Cartridge: Verwenden Sie die Common-Cartridge-Datei [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) für eine breitere LMS-Kompatibilität.
- Hinweise:
- Moodle Cloud unterstützt Common Cartridge nur eingeschränkt. Bevorzugen Sie die oben genannte Moodle-Datei, die auch in Canvas hochgeladen werden kann.
- Überprüfen Sie nach dem Import die Module, Fälligkeitsdaten und Quiz-Einstellungen, um sie an Ihren Semesterplan anzupassen.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.de.png)
> Das Curriculum in einem Moodle-Klassenzimmer
![Canvas](/teaching-files/canvas.png)
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.de.png)
> Das Curriculum in Canvas
## Nutzung des Repos in der aktuellen Form
### Direkte Nutzung des Repositories (ohne Classroom)
Wenn Sie GitHub Classroom nicht verwenden möchten, können Sie den Kurs direkt aus diesem Repository durchführen.
Wenn Sie dieses Repository in seiner aktuellen Form verwenden möchten, ohne GitHub Classroom zu nutzen, ist das ebenfalls möglich. Sie müssten Ihren Schülern mitteilen, welche Lektion Sie gemeinsam durcharbeiten möchten.
- Synchrone/Online-Formate (Zoom/Teams):
- Führen Sie kurze mentorengeleitete Warm-ups durch; nutzen Sie Breakout-Räume für Quizfragen.
- Geben Sie ein Zeitfenster für Quizfragen bekannt; Schüler reichen Antworten als GitHub-Issues ein.
- Für kollaborative Aufgaben arbeiten Schüler in öffentlichen Lektionen-Repositories und öffnen Pull-Requests.
- Private/asynchrone Formate:
- Schüler forken jede Lektion in ihre eigenen **privaten** Repositories und fügen Sie als Kollaborator hinzu.
- Sie reichen Quizfragen über Issues und Aufgaben über Pull-Requests in Ihrem Classroom-Repository oder ihren privaten Forks ein.
In einem Online-Format (Zoom, Teams oder andere) könnten Sie Breakout-Räume für die Quizfragen bilden und die Schüler betreuen, um sie auf das Lernen vorzubereiten. Anschließend laden Sie die Schüler zu den Quizfragen ein und lassen sie ihre Antworten zu einem bestimmten Zeitpunkt als 'Issues' einreichen. Dasselbe könnten Sie mit Aufgaben machen, wenn Sie möchten, dass die Schüler offen und kollaborativ arbeiten.
### Best Practices
Wenn Sie ein privateres Format bevorzugen, bitten Sie Ihre Schüler, das Curriculum Lektion für Lektion in ihre eigenen privaten GitHub-Repositories zu forken und Ihnen Zugriff zu gewähren. Dann können sie Quizfragen und Aufgaben privat bearbeiten und diese über Issues in Ihrem Klassenzimmer-Repository einreichen.
- Bieten Sie eine Orientierungslektion zu den Grundlagen von Git/GitHub, Issues und PRs an.
- Verwenden Sie Checklisten in Issues für mehrstufige Quizfragen/Aufgaben.
- Fügen Sie CONTRIBUTING.md und CODE_OF_CONDUCT.md hinzu, um Klassennormen festzulegen.
- Fügen Sie Barrierefreiheitshinweise (Alt-Text, Untertitel) hinzu und bieten Sie druckbare PDFs an.
- Versionieren Sie Ihre Inhalte pro Semester und frieren Sie Lektionen-Repositories nach der Veröffentlichung ein.
Es gibt viele Möglichkeiten, dies in einem Online-Klassenzimmer-Format umzusetzen. Bitte teilen Sie uns mit, was für Sie am besten funktioniert!
### Feedback und Unterstützung
## Teilen Sie uns Ihre Meinung mit!
Wir möchten, dass dieses Curriculum für Sie und Ihre Schüler funktioniert. Bitte öffnen Sie ein neues Issue in diesem Repository für Fehler, Anfragen oder Verbesserungen, oder starten Sie eine Diskussion in der Teacher Corner.
Wir möchten dieses Curriculum für Sie und Ihre Schüler optimal gestalten. Kontaktieren Sie uns in der [Lehrerecke](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) und eröffnen Sie ein [**neues Issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) für Anfragen, Fehler und Feedback.
---
**Haftungsausschluss**:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.

@ -1,18 +1,18 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T07:20:58+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T09:47:46+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "el"
}
-->
# Εισαγωγή στις Γλώσσες Προγραμματισμού και Εργαλεία του Επαγγέλματος
# Εισαγωγή στις Γλώσσες Προγραμματισμού και τα Εργαλεία του Επαγγέλματος
Αυτό το μάθημα καλύπτει τα βασικά των γλωσσών προγραμματισμού. Τα θέματα που καλύπτονται εδώ ισχύουν για τις περισσότερες σύγχρονες γλώσσες προγραμματισμού σήμερα. Στην ενότητα "Εργαλεία του Επαγγέλματος", θα μάθετε για χρήσιμο λογισμικό που σας βοηθά ως προγραμματιστή.
Αυτό το μάθημα καλύπτει τις βασικές αρχές των γλωσσών προγραμματισμού. Τα θέματα που καλύπτονται εδώ ισχύουν για τις περισσότερες σύγχρονες γλώσσες προγραμματισμού. Στην ενότητα "Εργαλεία του Επαγγέλματος", θα μάθετε για χρήσιμα λογισμικά που σας βοηθούν ως προγραμματιστές.
![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.el.png)
> Σημειώσεις από [Tomomi Imura](https://twitter.com/girlie_mac)
![Εισαγωγή στον Προγραμματισμό](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.el.png)
> Σκίτσο από την [Tomomi Imura](https://twitter.com/girlie_mac)
## Ερωτηματολόγιο πριν το μάθημα
[Ερωτηματολόγιο πριν το μάθημα](https://forms.office.com/r/dru4TE0U9n?origin=lprLink)
@ -30,21 +30,21 @@ CO_OP_TRANSLATOR_METADATA:
## Τι είναι ο Προγραμματισμός;
Ο προγραμματισμός (γνωστός και ως κωδικοποίηση) είναι η διαδικασία γραφής οδηγιών για μια συσκευή, όπως ένας υπολογιστής ή μια κινητή συσκευή. Γράφουμε αυτές τις οδηγίες με μια γλώσσα προγραμματισμού, η οποία στη συνέχεια ερμηνεύεται από τη συσκευή. Αυτά τα σύνολα οδηγιών μπορεί να αναφέρονται με διάφορα ονόματα, όπως *πρόγραμμα*, *πρόγραμμα υπολογιστή*, *εφαρμογή (app)* και *εκτελέσιμο*.
Ο προγραμματισμός (γνωστός και ως κωδικοποίηση) είναι η διαδικασία γραφής οδηγιών για μια συσκευή, όπως έναν υπολογιστή ή μια κινητή συσκευή. Γράφουμε αυτές τις οδηγίες με μια γλώσσα προγραμματισμού, η οποία στη συνέχεια ερμηνεύεται από τη συσκευή. Αυτά τα σύνολα οδηγιών μπορεί να αναφέρονται με διάφορα ονόματα, όπως *πρόγραμμα*, *πρόγραμμα υπολογιστή*, *εφαρμογή (app)* και *εκτελέσιμο*.
Ένα *πρόγραμμα* μπορεί να είναι οτιδήποτε έχει γραφτεί με κώδικα: ιστοσελίδες, παιχνίδια και εφαρμογές κινητών είναι προγράμματα. Παρόλο που είναι δυνατό να δημιουργηθεί ένα πρόγραμμα χωρίς να γραφτεί κώδικας, η υποκείμενη λογική ερμηνεύεται από τη συσκευή και αυτή η λογική πιθανότατα έχει γραφτεί με κώδικα. Ένα πρόγραμμα που *τρέχει* ή *εκτελεί* κώδικα εκτελεί οδηγίες. Η συσκευή που χρησιμοποιείτε για να διαβάσετε αυτό το μάθημα τρέχει ένα πρόγραμμα για να το εμφανίσει στην οθόνη σας.
Ένα *πρόγραμμα* μπορεί να είναι οτιδήποτε έχει γραφτεί με κώδικα: ιστοσελίδες, παιχνίδια και εφαρμογές κινητών είναι προγράμματα. Παρόλο που είναι δυνατό να δημιουργηθεί ένα πρόγραμμα χωρίς να γραφτεί κώδικας, η υποκείμενη λογική ερμηνεύεται από τη συσκευή και αυτή η λογική πιθανότατα έχει γραφτεί με κώδικα. Ένα πρόγραμμα που *εκτελείται* ή *τρέχει* κώδικα εκτελεί οδηγίες. Η συσκευή που χρησιμοποιείτε για να διαβάσετε αυτό το μάθημα τρέχει ένα πρόγραμμα για να το εμφανίσει στην οθόνη σας.
✅ Κάντε λίγη έρευνα: ποιος θεωρείται ότι ήταν ο πρώτος προγραμματιστής υπολογιστών στον κόσμο;
## Γλώσσες Προγραμματισμού
Οι γλώσσες προγραμματισμού επιτρέπουν στους προγραμματιστές να γράφουν οδηγίες για μια συσκευή. Οι συσκευές μπορούν να κατανοήσουν μόνο δυαδικό (1s και 0s), και για *τους περισσότερους* προγραμματιστές αυτός δεν είναι ένας πολύ αποτελεσματικός τρόπος επικοινωνίας. Οι γλώσσες προγραμματισμού είναι το μέσο επικοινωνίας μεταξύ ανθρώπων και υπολογιστών.
Οι γλώσσες προγραμματισμού επιτρέπουν στους προγραμματιστές να γράφουν οδηγίες για μια συσκευή. Οι συσκευές μπορούν να κατανοήσουν μόνο δυαδικό κώδικα (1s και 0s), και για *τους περισσότερους* προγραμματιστές αυτός δεν είναι ένας πολύ αποτελεσματικός τρόπος επικοινωνίας. Οι γλώσσες προγραμματισμού είναι το μέσο επικοινωνίας μεταξύ ανθρώπων και υπολογιστών.
Οι γλώσσες προγραμματισμού έχουν διαφορετικές μορφές και μπορεί να εξυπηρετούν διαφορετικούς σκοπούς. Για παράδειγμα, η JavaScript χρησιμοποιείται κυρίως για εφαρμογές ιστού, ενώ η Bash χρησιμοποιείται κυρίως για λειτουργικά συστήματα.
*Γλώσσες χαμηλού επιπέδου* συνήθως απαιτούν λιγότερα βήματα από *γλώσσες υψηλού επιπέδου* για να ερμηνεύσει μια συσκευή τις οδηγίες. Ωστόσο, αυτό που κάνει τις γλώσσες υψηλού επιπέδου δημοφιλείς είναι η αναγνωσιμότητα και η υποστήριξή τους. Η JavaScript θεωρείται γλώσσα υψηλού επιπέδου.
*Γλώσσες χαμηλού επιπέδου* συνήθως απαιτούν λιγότερα βήματα για να ερμηνεύσει μια συσκευή τις οδηγίες σε σύγκριση με *γλώσσες υψηλού επιπέδου*. Ωστόσο, αυτό που κάνει τις γλώσσες υψηλού επιπέδου δημοφιλείς είναι η αναγνωσιμότητα και η υποστήριξή τους. Η JavaScript θεωρείται γλώσσα υψηλού επιπέδου.
Ο παρακάτω κώδικας δείχνει τη διαφορά μεταξύ μιας γλώσσας υψηλού επιπέδου με JavaScript και μιας γλώσσας χαμηλού επιπέδου με κώδικα ARM assembly.
Ο παρακάτω κώδικας δείχνει τη διαφορά μεταξύ μιας γλώσσας υψηλού επιπέδου (JavaScript) και μιας γλώσσας χαμηλού επιπέδου (ARM assembly code).
```javascript
let number = 10
@ -89,33 +89,33 @@ back add r0,r1
## Στοιχεία ενός Προγράμματος
Μια μεμονωμένη οδηγία σε ένα πρόγραμμα ονομάζεται *δήλωση* και συνήθως έχει έναν χαρακτήρα ή διάστημα γραμμής που υποδεικνύει πού τελειώνει ή *τερματίζει* η οδηγία. Ο τρόπος τερματισμού ενός προγράμματος διαφέρει ανάλογα με τη γλώσσα.
Μια μεμονωμένη οδηγία σε ένα πρόγραμμα ονομάζεται *δήλωση* και συνήθως έχει έναν χαρακτήρα ή διάστημα γραμμής που υποδεικνύει πού τελειώνει η οδηγία ή *τερματίζει*. Ο τρόπος τερματισμού ενός προγράμματος διαφέρει ανάλογα με τη γλώσσα.
Οι δηλώσεις μέσα σε ένα πρόγραμμα μπορεί να βασίζονται σε δεδομένα που παρέχονται από έναν χρήστη ή από αλλού για να εκτελέσουν οδηγίες. Τα δεδομένα μπορούν να αλλάξουν τον τρόπο που συμπεριφέρεται ένα πρόγραμμα, γι' αυτό οι γλώσσες προγραμματισμού διαθέτουν έναν τρόπο προσωρινής αποθήκευσης δεδομένων ώστε να μπορούν να χρησιμοποιηθούν αργότερα. Αυτά ονομάζονται *μεταβλητές*. Οι μεταβλητές είναι δηλώσεις που δίνουν οδηγίες σε μια συσκευή να αποθηκεύσει δεδομένα στη μνήμη της. Οι μεταβλητές στα προγράμματα είναι παρόμοιες με τις μεταβλητές στην άλγεβρα, όπου έχουν ένα μοναδικό όνομα και η τιμή τους μπορεί να αλλάξει με την πάροδο του χρόνου.
Οι δηλώσεις μέσα σε ένα πρόγραμμα μπορεί να βασίζονται σε δεδομένα που παρέχονται από έναν χρήστη ή από αλλού για να εκτελέσουν οδηγίες. Τα δεδομένα μπορούν να αλλάξουν τη συμπεριφορά ενός προγράμματος, γι' αυτό οι γλώσσες προγραμματισμού διαθέτουν έναν τρόπο προσωρινής αποθήκευσης δεδομένων ώστε να μπορούν να χρησιμοποιηθούν αργότερα. Αυτά ονομάζονται *μεταβλητές*. Οι μεταβλητές είναι δηλώσεις που δίνουν οδηγίες σε μια συσκευή να αποθηκεύσει δεδομένα στη μνήμη της. Οι μεταβλητές στα προγράμματα είναι παρόμοιες με τις μεταβλητές στην άλγεβρα, όπου έχουν ένα μοναδικό όνομα και η τιμή τους μπορεί να αλλάξει με την πάροδο του χρόνου.
Υπάρχει πιθανότητα κάποιες δηλώσεις να μην εκτελεστούν από μια συσκευή. Αυτό συνήθως γίνεται σκόπιμα όταν γράφεται από τον προγραμματιστή ή κατά λάθος όταν προκύπτει ένα απρόσμενο σφάλμα. Αυτός ο τύπος ελέγχου πάνω σε μια εφαρμογή την καθιστά πιο ανθεκτική και ευκολότερη στη συντήρηση. Συνήθως, αυτές οι αλλαγές στον έλεγχο συμβαίνουν όταν πληρούνται ορισμένες συνθήκες. Μια κοινή δήλωση που χρησιμοποιείται στον σύγχρονο προγραμματισμό για τον έλεγχο του τρόπου λειτουργίας ενός προγράμματος είναι η δήλωση `if..else`.
Υπάρχει πιθανότητα ορισμένες δηλώσεις να μην εκτελεστούν από μια συσκευή. Αυτό συμβαίνει συνήθως από σχεδιασμό όταν γράφεται από τον προγραμματιστή ή κατά λάθος όταν προκύψει ένα απρόσμενο σφάλμα. Αυτός ο τύπος ελέγχου πάνω σε μια εφαρμογή την καθιστά πιο ανθεκτική και ευκολότερη στη συντήρηση. Συνήθως, αυτές οι αλλαγές στον έλεγχο συμβαίνουν όταν πληρούνται ορισμένες συνθήκες. Μια κοινή δήλωση που χρησιμοποιείται στον σύγχρονο προγραμματισμό για τον έλεγχο του τρόπου λειτουργίας ενός προγράμματος είναι η δήλωση `if..else`.
✅ Θα μάθετε περισσότερα για αυτόν τον τύπο δήλωσης σε επόμενα μαθήματα.
## Εργαλεία του Επαγγέλματος
[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade")
[![Εργαλεία του Επαγγέλματος](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Εργαλεία του Επαγγέλματος")
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με τα εργαλεία
Σε αυτή την ενότητα, θα μάθετε για κάποιο λογισμικό που μπορεί να βρείτε πολύ χρήσιμο καθώς ξεκινάτε το επαγγελματικό σας ταξίδι στον προγραμματισμό.
Σε αυτή την ενότητα, θα μάθετε για ορισμένα λογισμικά που μπορεί να βρείτε πολύ χρήσιμα καθώς ξεκινάτε το επαγγελματικό σας ταξίδι στον προγραμματισμό.
Ένα **περιβάλλον ανάπτυξης** είναι ένα μοναδικό σύνολο εργαλείων και χαρακτηριστικών που χρησιμοποιεί συχνά ένας προγραμματιστής κατά τη συγγραφή λογισμικού. Ορισμένα από αυτά τα εργαλεία έχουν προσαρμοστεί για τις συγκεκριμένες ανάγκες ενός προγραμματιστή και μπορεί να αλλάξουν με την πάροδο του χρόνου αν ο προγραμματιστής αλλάξει προτεραιότητες στη δουλειά, στα προσωπικά του έργα ή όταν χρησιμοποιεί διαφορετική γλώσσα προγραμματισμού. Τα περιβάλλοντα ανάπτυξης είναι τόσο μοναδικά όσο και οι προγραμματιστές που τα χρησιμοποιούν.
### Επεξεργαστές Κώδικα
Ένα από τα πιο κρίσιμα εργαλεία για την ανάπτυξη λογισμικού είναι ο επεξεργαστής κώδικα. Οι επεξεργαστές είναι το μέρος όπου γράφετε τον κώδικά σας και μερικές φορές όπου εκτελείτε τον κώδικά σας.
Ένα από τα πιο κρίσιμα εργαλεία για την ανάπτυξη λογισμικού είναι ο επεξεργαστής κώδικα. Οι επεξεργαστές είναι το μέρος όπου γράφετε τον κώδικά σας και μερικές φορές το μέρος όπου τον εκτελείτε.
Οι προγραμματιστές βασίζονται στους επεξεργαστές για μερικούς επιπλέον λόγους:
- *Εντοπισμός σφαλμάτων* βοηθά στην αποκάλυψη σφαλμάτων και λαθών περνώντας τον κώδικα γραμμή προς γραμμή. Ορισμένοι επεξεργαστές διαθέτουν δυνατότητες εντοπισμού σφαλμάτων που μπορούν να προσαρμοστούν και να προστεθούν για συγκεκριμένες γλώσσες προγραμματισμού.
- *Χρωματική επισήμανση σύνταξης* προσθέτει χρώματα και μορφοποίηση κειμένου στον κώδικα, καθιστώντας τον ευκολότερο στην ανάγνωση. Οι περισσότεροι επεξεργαστές επιτρέπουν προσαρμοσμένη χρωματική επισήμανση σύνταξης.
- *Επεκτάσεις και Ενσωματώσεις* είναι εξειδικευμένα εργαλεία για προγραμματιστές, από προγραμματιστές. Αυτά τα εργαλεία δεν περιλαμβάνονταν στον βασικό επεξεργαστή. Για παράδειγμα, πολλοί προγραμματιστές τεκμηριώνουν τον κώδικά τους για να εξηγήσουν πώς λειτουργεί. Μπορεί να εγκαταστήσουν μια επέκταση ορθογραφικού ελέγχου για να εντοπίσουν τυπογραφικά λάθη μέσα στην τεκμηρίωση. Οι περισσότερες επεκτάσεις προορίζονται για χρήση μέσα σε έναν συγκεκριμένο επεξεργαστή και οι περισσότεροι επεξεργαστές διαθέτουν έναν τρόπο αναζήτησης διαθέσιμων επεκτάσεων.
- *Χρωματισμός σύνταξης* προσθέτει χρώματα και μορφοποίηση κειμένου στον κώδικα, καθιστώντας τον ευκολότερο στην ανάγνωση. Οι περισσότεροι επεξεργαστές επιτρέπουν προσαρμοσμένο χρωματισμό σύνταξης.
- *Επεκτάσεις και Ενσωματώσεις* είναι εξειδικευμένα εργαλεία για προγραμματιστές, από προγραμματιστές. Αυτά τα εργαλεία δεν περιλαμβάνονταν στον βασικό επεξεργαστή. Για παράδειγμα, πολλοί προγραμματιστές τεκμηριώνουν τον κώδικά τους για να εξηγήσουν πώς λειτουργεί. Μπορεί να εγκαταστήσουν μια επέκταση ορθογραφικού ελέγχου για να εντοπίσουν τυπογραφικά λάθη μέσα στην τεκμηρίωση. Οι περισσότερες επεκτάσεις προορίζονται για χρήση μέσα σε έναν συγκεκριμένο επεξεργαστή, και οι περισσότεροι επεξεργαστές διαθέτουν έναν τρόπο αναζήτησης διαθέσιμων επεκτάσεων.
- *Προσαρμογή* επιτρέπει στους προγραμματιστές να δημιουργήσουν ένα μοναδικό περιβάλλον ανάπτυξης που να ταιριάζει στις ανάγκες τους. Οι περισσότεροι επεξεργαστές είναι εξαιρετικά προσαρμόσιμοι και μπορεί επίσης να επιτρέπουν στους προγραμματιστές να δημιουργούν προσαρμοσμένες επεκτάσεις.
#### Δημοφιλείς Επεξεργαστές και Επεκτάσεις για Ανάπτυξη Ιστού
@ -135,7 +135,7 @@ back add r0,r1
### Περιηγητές
Ένα άλλο κρίσιμο εργαλείο είναι ο περιηγητής. Οι προγραμματιστές ιστού βασίζονται στον περιηγητή για να δουν πώς τρέχει ο κώδικάς τους στο διαδίκτυο. Χρησιμοποιείται επίσης για την εμφάνιση των οπτικών στοιχείων μιας ιστοσελίδας που έχουν γραφτεί στον επεξεργαστή, όπως το HTML.
Ένα άλλο κρίσιμο εργαλείο είναι ο περιηγητής. Οι προγραμματιστές ιστού βασίζονται στον περιηγητή για να δουν πώς εκτελείται ο κώδικάς τους στον ιστό. Χρησιμοποιείται επίσης για την εμφάνιση των οπτικών στοιχείων μιας ιστοσελίδας που έχουν γραφτεί στον επεξεργαστή, όπως το HTML.
Πολλοί περιηγητές διαθέτουν *εργαλεία προγραμματιστή* (DevTools) που περιέχουν ένα σύνολο χρήσιμων χαρακτηριστικών και πληροφοριών για να βοηθήσουν τους προγραμματιστές να συλλέξουν και να καταγράψουν σημαντικές πληροφορίες σχετικά με την εφαρμογή τους. Για παράδειγμα: Εάν μια ιστοσελίδα έχει σφάλματα, είναι μερικές φορές χρήσιμο να γνωρίζουμε πότε συνέβησαν. Τα DevTools σε έναν περιηγητή μπορούν να ρυθμιστούν ώστε να καταγράφουν αυτές τις πληροφορίες.
@ -147,7 +147,7 @@ back add r0,r1
### Εργαλεία Γραμμής Εντολών
Ορισμένοι προγραμματιστές προτιμούν μια λιγότερο γραφική προβολή για τις καθημερινές τους εργασίες και βασίζονται στη γραμμή εντολών για να το πετύχουν αυτό. Η γραφή κώδικα απαιτεί σημαντική ποσότητα πληκτρολόγησης και ορισμένοι προγραμματιστές προτιμούν να μην διακόπτουν τη ροή τους στο πληκτρολόγιο. Χρησιμοποιούν συντομεύσεις πληκτρολογίου για να εναλλάσσονται μεταξύ παραθύρων επιφάνειας εργασίας, να εργάζονται σε διαφορετικά αρχεία και να χρησιμοποιούν εργαλεία. Οι περισσότερες εργασίες μπορούν να ολοκληρωθούν με το ποντίκι, αλλά ένα πλεονέκτημα της γραμμής εντολών είναι ότι πολλά μπορούν να γίνουν με εργαλεία γραμμής εντολών χωρίς την ανάγκη εναλλαγής μεταξύ ποντικιού και πληκτρολογίου. Ένα άλλο πλεονέκτημα της γραμμής εντολών είναι ότι είναι παραμετροποιήσιμη και μπορείτε να αποθηκεύσετε μια προσαρμοσμένη ρύθμιση, να την αλλάξετε αργότερα και να την εισαγάγετε σε άλλες μηχανές ανάπτυξης. Επειδή τα περιβάλλοντα ανάπτυξης είναι τόσο μοναδικά για κάθε προγραμματιστή, κάποιοι θα αποφύγουν τη χρήση της γραμμής εντολών, κάποιοι θα βασίζονται αποκλειστικά σε αυτήν και κάποιοι προτιμούν έναν συνδυασμό των δύο.
Ορισμένοι προγραμματιστές προτιμούν μια λιγότερο γραφική προβολή για τις καθημερινές τους εργασίες και βασίζονται στη γραμμή εντολών για να το πετύχουν αυτό. Η γραφή κώδικα απαιτεί σημαντική ποσότητα πληκτρολόγησης και ορισμένοι προγραμματιστές προτιμούν να μην διακόπτουν τη ροή τους στο πληκτρολόγιο. Χρησιμοποιούν συντομεύσεις πληκτρολογίου για να εναλλάσσονται μεταξύ παραθύρων επιφάνειας εργασίας, να εργάζονται σε διαφορετικά αρχεία και να χρησιμοποιούν εργαλεία. Οι περισσότερες εργασίες μπορούν να ολοκληρωθούν με το ποντίκι, αλλά ένα πλεονέκτημα της γραμμής εντολών είναι ότι πολλά μπορούν να γίνουν με εργαλεία γραμμής εντολών χωρίς την ανάγκη εναλλαγής μεταξύ ποντικιού και πληκτρολογίου. Ένα άλλο πλεονέκτημα της γραμμής εντολών είναι ότι είναι παραμετροποιήσιμη και μπορείτε να αποθηκεύσετε μια προσαρμοσμένη διαμόρφωση, να την αλλάξετε αργότερα και να την εισαγάγετε σε άλλες μηχανές ανάπτυξης. Επειδή τα περιβάλλοντα ανάπτυξης είναι τόσο μοναδικά για κάθε προγραμματιστή, ορισμένοι θα αποφύγουν τη χρήση της γραμμής εντολών, άλλοι θα βασίζονται αποκλειστικά σε αυτήν, και άλλοι προτιμούν έναν συνδυασμό των δύο.
### Δημοφιλείς Επιλογές Γραμμής Εντολών
@ -182,16 +182,15 @@ back add r0,r1
### Τεκμηρίωση
Όταν ένας προγραμματιστής θέλει να μάθει κάτι νέο, πιθανότατα θα στραφεί στην τεκμηρίωση για να μάθει πώς να το χρησιμοποιήσει. Οι προγραμματιστές συχνά βασίζονται στην τεκμηρίωση για να τους καθοδηγήσει σχετικά με το πώς να χρησιμοποιούν εργαλεία και γλώσσες σωστά, καθώς και για να αποκτήσουν βαθύτερη γνώση του πώς λειτουργούν.
Όταν ένας προγραμματιστής θέλει να μάθει κάτι νέο, πιθανότατα θα στραφεί στην τεκμηρίωση για να μάθει πώς να το χρησιμοποιήσει. Οι προγραμματιστές συχνά βασίζονται στην τεκμηρίωση για να τους καθοδηγήσει σχετικά με το πώς να χρησιμοποιούν εργαλεία και γλώσσες σωστά, καθώς και για να αποκτήσουν βαθύτερη γνώση για το πώς λειτουργούν.
#### Δημοφιλείς Πηγές Τεκμηρίωσης για Ανάπτυξη Ιστού
#### Δημοφιλή Τεκμηρίωση για Ανάπτυξη Ιστού
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), από τη Mozilla, τους εκδότες του περιηγητή [Firefox](https://www.mozilla.org/firefox/)
- [Frontend Masters](https://frontendmasters.com/learn/)
- [Web.dev](https://web.dev), από τη Google, εκδότες του [Chrome](https://www.google.com/chrome/)
- [Microsoft's own developer docs](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers
- [Web.dev](https://web.dev), από τη Google, εκδότες του [Chrome](https://www.google.com
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,25 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-26T22:25:13+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T09:48:32+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "el"
}
-->
# Ανάγνωση των Εγγράφων
## Οδηγίες
Υπάρχουν πολλά εργαλεία που μπορεί να χρειαστεί ένας web developer, τα οποία βρίσκονται στην [τεκμηρίωση του MDN για εργαλεία client-side](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Επιλέξτε 3 εργαλεία που δεν καλύπτονται στο μάθημα, εξηγήστε γιατί ένας web developer θα τα χρησιμοποιούσε και αναζητήστε ένα εργαλείο που ανήκει σε αυτήν την κατηγορία και μοιραστείτε την τεκμηρίωσή του. Μην χρησιμοποιήσετε το ίδιο παράδειγμα εργαλείου από την τεκμηρίωση του MDN.
Υπάρχουν πολλά εργαλεία που μπορεί να χρειαστεί ένας προγραμματιστής ιστού, τα οποία αναφέρονται στην [τεκμηρίωση του MDN για εργαλεία client-side](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Επιλέξτε **τρία εργαλεία** που **δεν καλύπτονται σε αυτό το μάθημα** (εξαιρώντας [αναφέρετε συγκεκριμένα εργαλεία ή περιεχόμενο του μαθήματος]), εξηγήστε **γιατί** ένας προγραμματιστής ιστού θα χρησιμοποιούσε κάθε εργαλείο και βρείτε ένα εργαλείο που ταιριάζει σε κάθε κατηγορία. Για κάθε εργαλείο, μοιραστείτε έναν σύνδεσμο προς την επίσημη τεκμηρίωσή του (όχι το παράδειγμα που χρησιμοποιείται στο MDN).
**Μορφή:**
- Όνομα εργαλείου
- Γιατί ένας προγραμματιστής ιστού θα το χρησιμοποιούσε (2-3 προτάσεις)
- Σύνδεσμος προς την τεκμηρίωση
**Μήκος:**
- Κάθε εξήγηση πρέπει να είναι 2-3 προτάσεις.
## Κριτήρια Αξιολόγησης
## Κριτήρια αξιολόγησης
Εξαιρετικό | Επαρκές | Χρειάζεται Βελτίωση
Εξαιρετικό | Επαρκές | Χρειάζεται βελτίωση
--- | --- | -- |
|Εξήγησε γιατί ένας web developer θα χρησιμοποιούσε το εργαλείο| Εξήγησε πώς, αλλά όχι γιατί ένας developer θα χρησιμοποιούσε το εργαλείο| Δεν ανέφερε πώς ή γιατί ένας developer θα χρησιμοποιούσε το εργαλείο |
Εξήγησε γιατί ένας προγραμματιστής ιστού θα χρησιμοποιούσε το εργαλείο | Εξήγησε πώς, αλλά όχι γιατί ένας προγραμματιστής θα χρησιμοποιούσε το εργαλείο | Δεν ανέφερε πώς ή γιατί ένας προγραμματιστής θα χρησιμοποιούσε το εργαλείο |
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-26T21:50:15+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T09:47:07+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "el"
}
@ -11,15 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Οδηγίες
Φανταστείτε ότι δημιουργείτε ένα καλάθι αγορών. Γράψτε κάποια τεκμηρίωση για τους τύπους δεδομένων που θα χρειαστείτε για να ολοκληρώσετε την εμπειρία αγορών σας. Πώς καταλήξατε στις επιλογές σας;
Φανταστείτε ότι δημιουργείτε ένα καλάθι αγορών. Γράψτε τεκμηρίωση για τους τύπους δεδομένων που θα χρειαστείτε για να ολοκληρώσετε την εμπειρία αγορών. Για κάθε τύπο δεδομένων, εξηγήστε πώς και γιατί θα τον χρησιμοποιούσατε και δώστε ένα παράδειγμα. Οι έξι τύποι δεδομένων της JavaScript είναι: String, Number, Boolean, Null, Undefined και Object.
## Κριτήρια Αξιολόγησης
Κριτήρια | Εξαιρετικό | Επαρκές | Χρειάζεται Βελτίωση
Κριτήριο | Εξαιρετικό | Επαρκές | Χρειάζεται Βελτίωση
--- | --- | --- | --- |
||Οι έξι τύποι δεδομένων αναφέρονται και εξετάζονται λεπτομερώς, τεκμηριώνοντας τη χρήση τους|Εξετάζονται τέσσερις τύποι δεδομένων|Εξετάζονται δύο τύποι δεδομένων|
Τύποι Δεδομένων | Και οι έξι τύποι δεδομένων αναφέρονται, εξετάζονται λεπτομερώς και τεκμηριώνονται με παραδείγματα | Τέσσερις τύποι δεδομένων εξετάζονται με κάποια εξήγηση | Δύο τύποι δεδομένων εξετάζονται με ελάχιστη εξήγηση |
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,25 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-26T21:31:26+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T09:48:52+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "el"
}
-->
# Εξασκήσου στο HTML: Δημιουργία μακέτας ιστολογίου
# Άσκηση Πρακτικής HTML: Δημιουργία Μακέτας Blog
## Στόχος
Σχεδιάστε και γράψτε τον HTML κώδικα για τη δομή μιας αρχικής σελίδας προσωπικού blog. Αυτή η άσκηση θα σας βοηθήσει να εξασκηθείτε στη χρήση της σημασιολογικής HTML, στον σχεδιασμό διάταξης και στην οργάνωση του κώδικα.
## Οδηγίες
Φαντάσου ότι σχεδιάζεις ή επανασχεδιάζεις την προσωπική σου ιστοσελίδα. Δημιούργησε μια γραφική μακέτα της ιστοσελίδας σου και στη συνέχεια γράψε τον HTML κώδικα που θα χρησιμοποιούσες για να δημιουργήσεις τα διάφορα στοιχεία της ιστοσελίδας. Μπορείς να το κάνεις σε χαρτί και να το σκανάρεις ή να χρησιμοποιήσεις λογισμικό της επιλογής σου, απλώς βεβαιώσου ότι ο HTML κώδικας είναι γραμμένος χειροκίνητα.
1. **Σχεδιάστε τη Μακέτα του Blog σας**
- Δημιουργήστε ένα οπτικό σχέδιο της αρχικής σελίδας του blog σας. Συμπεριλάβετε βασικές ενότητες όπως κεφαλίδα, πλοήγηση, κύριο περιεχόμενο, πλαϊνή στήλη και υποσέλιδο.
- Μπορείτε να χρησιμοποιήσετε χαρτί και να σκανάρετε το σχέδιό σας ή να χρησιμοποιήσετε ψηφιακά εργαλεία (π.χ., Figma, Adobe XD, Canva ή ακόμα και PowerPoint).
2. **Καθορίστε τα HTML Στοιχεία**
- Καταγράψτε τα HTML στοιχεία που σκοπεύετε να χρησιμοποιήσετε για κάθε ενότητα (π.χ., `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>` κ.λπ.).
3. **Γράψτε τον HTML Κώδικα**
- Γράψτε τον HTML κώδικα για τη μακέτα σας. Εστιάστε στη σημασιολογική δομή και στις βέλτιστες πρακτικές.
- Συμπεριλάβετε τουλάχιστον 10 διαφορετικά HTML στοιχεία.
- Προσθέστε σχόλια για να εξηγήσετε τις επιλογές και τη δομή σας.
4. **Υποβάλετε τη Δουλειά σας**
- Ανεβάστε το σχέδιο/μακέτα σας και το αρχείο HTML.
- Προαιρετικά, γράψτε μια σύντομη ανάλυση (23 προτάσεις) για τις σχεδιαστικές σας αποφάσεις.
## Κριτήρια Αξιολόγησης
| Κριτήρια | Εξαιρετικό | Επαρκές | Χρειάζεται Βελτίωση |
| -------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| | Η διάταξη του ιστολογίου παρουσιάζεται οπτικά με τουλάχιστον 10 στοιχεία κώδικα | Η διάταξη του ιστολογίου παρουσιάζεται οπτικά με περίπου 5 στοιχεία κώδικα | Η διάταξη του ιστολογίου παρουσιάζεται οπτικά με το πολύ 3 στοιχεία κώδικα |
| Κριτήριο | Εξαιρετικό | Επαρκές | Χρειάζεται Βελτίωση |
|------------------|--------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Οπτική Μακέτα | Καθαρή, λεπτομερής μακέτα με ονοματισμένες ενότητες και προσεγμένη διάταξη | Βασική μακέτα με ορισμένες ονοματισμένες ενότητες | Ελάχιστη ή ασαφής μακέτα· λείπουν οι ονομασίες των ενοτήτων |
| HTML Στοιχεία | Χρήση 10+ σημασιολογικών HTML στοιχείων· δείχνει κατανόηση της δομής και των βέλτιστων πρακτικών | Χρήση 59 HTML στοιχείων· κάποια σημασιολογική δομή | Χρήση λιγότερων από 5 στοιχείων· έλλειψη σημασιολογικής δομής |
| Ποιότητα Κώδικα | Καλά οργανωμένος, ευανάγνωστος κώδικας με σχόλια· ακολουθεί τα πρότυπα HTML | Κυρίως οργανωμένος κώδικας· λίγα σχόλια | Ανοργάνωτος κώδικας· έλλειψη σχολίων |
| Ανάλυση | Εμπεριστατωμένη ανάλυση για τις σχεδιαστικές επιλογές και τις προκλήσεις | Βασική ανάλυση | Χωρίς ανάλυση ή έλλειψη συνάφειας |
## Συμβουλές
- Χρησιμοποιήστε σημασιολογικές HTML ετικέτες για καλύτερη προσβασιμότητα και SEO.
- Οργανώστε τον κώδικα σας με εσοχές και σχόλια.
- Ανατρέξτε στο [MDN HTML Elements Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) για καθοδήγηση.
- Σκεφτείτε πώς η διάταξή σας θα μπορούσε να επεκταθεί ή να μορφοποιηθεί σε μελλοντικές ασκήσεις.
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,25 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-26T21:38:09+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T09:48:40+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "el"
}
-->
# Αναδιάρθρωση CSS
# Ανάθεση Αναδιάρθρωσης CSS
## Στόχος
Αναδιαρθρώστε το έργο terrarium ώστε να χρησιμοποιεί **Flexbox** ή **CSS Grid** για τη διάταξη. Ενημερώστε το HTML και το CSS όπως απαιτείται για να επιτύχετε έναν σύγχρονο, ευέλικτο σχεδιασμό. Δεν χρειάζεται να υλοποιήσετε στοιχεία που μπορούν να μετακινηθούν—επικεντρωθείτε μόνο στη διάταξη και το στυλ.
## Οδηγίες
Ανασχεδιάστε το terrarium χρησιμοποιώντας είτε Flexbox είτε CSS Grid και τραβήξτε στιγμιότυπα οθόνης για να δείξετε ότι το έχετε δοκιμάσει σε διάφορους περιηγητές. Ίσως χρειαστεί να αλλάξετε τη δομή του κώδικα, οπότε δημιουργήστε μια νέα έκδοση της εφαρμογής με την τέχνη στη θέση της για την αναδιάρθρωση. Μην ανησυχείτε για το να κάνετε τα στοιχεία μετακινούμενα· προς το παρόν, αναδιαρθρώστε μόνο το HTML και το CSS.
1. **Δημιουργήστε μια νέα έκδοση** της εφαρμογής terrarium. Ενημερώστε τη σήμανση και το CSS ώστε να χρησιμοποιούν Flexbox ή CSS Grid για τη διάταξη.
2. **Βεβαιωθείτε ότι η τέχνη και τα στοιχεία είναι στη θέση τους** όπως στην αρχική έκδοση.
3. **Δοκιμάστε τον σχεδιασμό σας** σε τουλάχιστον δύο διαφορετικούς περιηγητές (π.χ., Chrome, Firefox, Edge).
4. **Τραβήξτε στιγμιότυπα οθόνης** του terrarium σας σε κάθε περιηγητή για να αποδείξετε τη συμβατότητα μεταξύ περιηγητών.
5. **Υποβάλετε** τον ενημερωμένο κώδικα και τα στιγμιότυπα οθόνης.
## Κριτήρια Αξιολόγησης
| Κριτήριο | Εξαιρετικό | Επαρκές | Χρειάζεται Βελτίωση |
| -------- | ----------------------------------------------------------------- | ----------------------------- | ------------------------------------ |
| | Παρουσιάστε ένα πλήρως ανασχεδιασμένο terrarium χρησιμοποιώντας Flexbox ή CSS Grid | Ανασχεδιάστε μερικά από τα στοιχεία | Αποτυχία να ανασχεδιάσετε το terrarium καθόλου |
| Κριτήριο | Εξαιρετικό | Επαρκές | Χρειάζεται Βελτίωση |
|------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| Διάταξη | Πλήρως αναδιαρθρωμένο με χρήση Flexbox ή CSS Grid· οπτικά ελκυστικό και ευέλικτο | Μερική αναδιάρθρωση· μερική χρήση Flexbox ή Grid | Ελάχιστη ή καθόλου χρήση Flexbox ή Grid· αμετάβλητη διάταξη |
| Συμβατότητα Με Περιηγητές | Παρέχονται στιγμιότυπα για πολλούς περιηγητές· συνεπής εμφάνιση | Στιγμιότυπα για έναν περιηγητή· μικρές ασυνέπειες | Χωρίς στιγμιότυπα ή μεγάλες ασυνέπειες |
| Ποιότητα Κώδικα | Καθαρό, καλά οργανωμένο HTML/CSS· σαφή σχόλια | Κάποια οργάνωση· λίγα σχόλια | Ανοργάνωτος κώδικας· χωρίς σχόλια |
## Συμβουλές
- Ανατρέξτε στους οδηγούς για [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) και [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/).
- Χρησιμοποιήστε τα εργαλεία προγραμματιστών του περιηγητή για να δοκιμάσετε την ευελιξία.
- Σχολιάστε τον κώδικά σας για μεγαλύτερη σαφήνεια.
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,158 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T07:17:30+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T09:47:13+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "el"
}
-->
# Χρήση ενός επεξεργαστή κώδικα
***
Αυτό το μάθημα καλύπτει τα βασικά της χρήσης του [VSCode.dev](https://vscode.dev), ενός επεξεργαστή κώδικα βασισμένου στον ιστό, ώστε να μπορείτε να κάνετε αλλαγές στον κώδικά σας και να συνεισφέρετε σε ένα έργο χωρίς να εγκαταστήσετε τίποτα στον υπολογιστή σας.
# Χρήση ενός Επεξεργαστή Κώδικα: Κατακτώντας το [VSCode.dev](https://vscode.dev)
## Στόχοι μάθησης
**Καλώς ήρθατε!**
Αυτό το μάθημα σας καθοδηγεί από τα βασικά έως τη προχωρημένη χρήση του [VSCode.dev](https://vscode.dev)—του ισχυρού, διαδικτυακού επεξεργαστή κώδικα. Θα μάθετε πώς να επεξεργάζεστε κώδικα με αυτοπεποίθηση, να διαχειρίζεστε έργα, να παρακολουθείτε αλλαγές, να εγκαθιστάτε επεκτάσεις και να συνεργάζεστε σαν επαγγελματίας—όλα από τον περιηγητή σας, χωρίς να απαιτείται εγκατάσταση.
Σε αυτό το μάθημα, θα μάθετε πώς να:
***
- Χρησιμοποιείτε έναν επεξεργαστή κώδικα σε ένα έργο κώδικα
- Παρακολουθείτε αλλαγές με έλεγχο εκδόσεων
- Προσαρμόζετε τον επεξεργαστή για ανάπτυξη
## Στόχοι Μάθησης
### Προαπαιτούμενα
Μέχρι το τέλος αυτού του μαθήματος, θα μπορείτε:
Πριν ξεκινήσετε, θα χρειαστεί να δημιουργήσετε έναν λογαριασμό στο [GitHub](https://github.com). Μεταβείτε στο [GitHub](https://github.com/) και δημιουργήστε έναν λογαριασμό αν δεν έχετε ήδη.
- Να χρησιμοποιείτε αποτελεσματικά έναν επεξεργαστή κώδικα σε οποιοδήποτε έργο, οπουδήποτε
- Να παρακολουθείτε τη δουλειά σας με ενσωματωμένο έλεγχο εκδόσεων
- Να εξατομικεύετε και να βελτιώνετε τη ροή εργασίας ανάπτυξης με προσαρμογές και επεκτάσεις του επεξεργαστή
### Εισαγωγή
***
Ένας επεξεργαστής κώδικα είναι ένα απαραίτητο εργαλείο για τη συγγραφή προγραμμάτων και τη συνεργασία σε υπάρχοντα έργα κώδικα. Μόλις κατανοήσετε τα βασικά ενός επεξεργαστή και πώς να αξιοποιήσετε τις δυνατότητές του, θα μπορείτε να τα εφαρμόσετε κατά τη συγγραφή κώδικα.
## Προαπαιτούμενα
## Ξεκινώντας με το VSCode.dev
Το [VSCode.dev](https://vscode.dev) είναι ένας επεξεργαστής κώδικα στον ιστό. Δεν χρειάζεται να εγκαταστήσετε τίποτα για να το χρησιμοποιήσετε, όπως ακριβώς ανοίγετε οποιονδήποτε άλλο ιστότοπο. Για να ξεκινήσετε με τον επεξεργαστή, ανοίξτε τον παρακάτω σύνδεσμο: [https://vscode.dev](https://vscode.dev). Αν δεν έχετε συνδεθεί στο [GitHub](https://github.com/), ακολουθήστε τις οδηγίες για να συνδεθείτε ή να δημιουργήσετε έναν νέο λογαριασμό και στη συνέχεια συνδεθείτε.
Για να ξεκινήσετε, **εγγραφείτε για έναν δωρεάν λογαριασμό [GitHub](https://github.com)**, ο οποίος σας επιτρέπει να διαχειρίζεστε αποθετήρια κώδικα και να συνεργάζεστε παγκοσμίως. Αν δεν έχετε λογαριασμό ακόμα, [δημιουργήστε έναν εδώ](https://github.com/).
Μόλις φορτώσει, θα πρέπει να μοιάζει με την παρακάτω εικόνα:
***
![Προεπιλεγμένο VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.el.png)
## Γιατί να Χρησιμοποιήσετε έναν Διαδικτυακό Επεξεργαστή Κώδικα;
Υπάρχουν τρεις κύριες ενότητες, ξεκινώντας από τα αριστερά και προχωρώντας προς τα δεξιά:
Ένας **επεξεργαστής κώδικα** όπως το VSCode.dev είναι το κέντρο ελέγχου σας για τη συγγραφή, επεξεργασία και διαχείριση κώδικα. Με ένα διαισθητικό περιβάλλον, πληθώρα λειτουργιών και άμεση πρόσβαση μέσω του περιηγητή, μπορείτε:
1. Η _γραμμή δραστηριοτήτων_ που περιλαμβάνει μερικά εικονίδια, όπως ο μεγεθυντικός φακός 🔎, το γρανάζι ⚙️ και μερικά άλλα.
2. Η επεκταμένη γραμμή δραστηριοτήτων που από προεπιλογή εμφανίζει τον _Εξερευνητή_, που ονομάζεται _πλευρική γραμμή_.
3. Και τέλος, η περιοχή κώδικα στα δεξιά.
- Να επεξεργάζεστε έργα σε οποιαδήποτε συσκευή
- Να αποφεύγετε την ταλαιπωρία των εγκαταστάσεων
- Να συνεργάζεστε και να συνεισφέρετε άμεσα
Κάντε κλικ σε κάθε ένα από τα εικονίδια για να εμφανίσετε διαφορετικά μενού. Όταν τελειώσετε, κάντε κλικ στον _Εξερευνητή_ για να επιστρέψετε εκεί που ξεκινήσατε.
Μόλις εξοικειωθείτε με το VSCode.dev, θα είστε έτοιμοι να αντιμετωπίσετε εργασίες προγραμματισμού από οπουδήποτε, οποιαδήποτε στιγμή.
Όταν αρχίσετε να δημιουργείτε ή να τροποποιείτε κώδικα, αυτό θα συμβεί στη μεγαλύτερη περιοχή στα δεξιά. Θα χρησιμοποιήσετε αυτήν την περιοχή για να δείτε και τον υπάρχοντα κώδικα, κάτι που θα κάνετε στη συνέχεια.
***
## Άνοιγμα ενός αποθετηρίου GitHub
Το πρώτο πράγμα που θα χρειαστείτε είναι να ανοίξετε ένα αποθετήριο GitHub. Υπάρχουν πολλοί τρόποι για να ανοίξετε ένα αποθετήριο. Σε αυτή την ενότητα θα δείτε δύο διαφορετικούς τρόπους για να ανοίξετε ένα αποθετήριο ώστε να ξεκινήσετε να εργάζεστε σε αλλαγές.
## Ξεκινώντας με το VSCode.dev
### 1. Με τον επεξεργαστή
Μεταβείτε στο **[VSCode.dev](https://vscode.dev)**—χωρίς εγκατάσταση, χωρίς λήψεις. Η σύνδεση με το GitHub ξεκλειδώνει πλήρη πρόσβαση, συμπεριλαμβανομένου του συγχρονισμού των ρυθμίσεων, των επεκτάσεων και των αποθετηρίων σας. Αν σας ζητηθεί, συνδέστε τον λογαριασμό σας στο GitHub.
Χρησιμοποιήστε τον ίδιο τον επεξεργαστή για να ανοίξετε ένα απομακρυσμένο αποθετήριο. Αν μεταβείτε στο [VSCode.dev](https://vscode.dev), θα δείτε ένα κουμπί _"Open Remote Repository"_:
Αφού φορτώσει, ο χώρος εργασίας σας θα μοιάζει με αυτόν:
![Άνοιγμα απομακρυσμένου αποθετηρίου](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.el.png)
![Default VSCode.dev](../images/default-vscode-dev έχει τρία βασικά τμήματα από αριστερά προς τα δεξιά:
- **Γραμμή δραστηριοτήτων:** Τα εικονίδια όπως 🔎 (Αναζήτηση), ⚙️ (Ρυθμίσεις), αρχεία, έλεγχος πηγαίου κώδικα κ.λπ.
- **Πλευρική γραμμή:** Αλλάζει το περιεχόμενο ανάλογα με το εικονίδιο της γραμμής δραστηριοτήτων που επιλέγεται (προεπιλογή στο *Explorer* για προβολή αρχείων).
- **Περιοχή επεξεργασίας/κώδικα:** Το μεγαλύτερο τμήμα στα δεξιά—όπου θα επεξεργάζεστε και θα βλέπετε τον κώδικα.
Μπορείτε επίσης να χρησιμοποιήσετε την παλέτα εντολών. Η παλέτα εντολών είναι ένα πλαίσιο εισαγωγής όπου μπορείτε να πληκτρολογήσετε οποιαδήποτε λέξη που αποτελεί μέρος μιας εντολής ή μιας ενέργειας για να βρείτε τη σωστή εντολή προς εκτέλεση. Χρησιμοποιήστε το μενού επάνω αριστερά, επιλέξτε _View_ και στη συνέχεια επιλέξτε _Command Palette_, ή χρησιμοποιήστε τη συντόμευση πληκτρολογίου: Ctrl-Shift-P (σε MacOS είναι Command-Shift-P).
Κάντε κλικ στα εικονίδια για να εξερευνήσετε τις λειτουργίες, αλλά επιστρέψτε στο _Explorer_ για να διατηρήσετε τη θέση σας.
![Μενού Παλέτας](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.el.png)
***
Μόλις ανοίξει το μενού, πληκτρολογήστε _open remote repository_ και στη συνέχεια επιλέξτε την πρώτη επιλογή. Πολλαπλά αποθετήρια στα οποία συμμετέχετε ή που έχετε ανοίξει πρόσφατα θα εμφανιστούν. Μπορείτε επίσης να χρησιμοποιήσετε ένα πλήρες URL GitHub για να επιλέξετε ένα. Χρησιμοποιήστε το παρακάτω URL και επικολλήστε το στο πλαίσιο:
## Άνοιγμα ενός Αποθετηρίου GitHub
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
### Μέθοδος 1: Από τον Επεξεργαστή
Αν η διαδικασία είναι επιτυχής, θα δείτε όλα τα αρχεία αυτού του αποθετηρίου να φορτώνονται στον επεξεργαστή κειμένου.
1. Μεταβείτε στο [VSCode.dev](https://vscode.dev). Κάντε κλικ στο **"Open Remote Repository."**
### 2. Χρησιμοποιώντας το URL
![Open remote repository](../../../../8-code-editor/images/open-remote-repository χρησιμοποιήστε το _Command Palette_ (Ctrl-Shift-P ή Cmd-Shift-P σε Mac).
Μπορείτε επίσης να χρησιμοποιήσετε ένα URL απευθείας για να φορτώσετε ένα αποθετήριο. Για παράδειγμα, το πλήρες URL για το τρέχον αποθετήριο είναι [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), αλλά μπορείτε να αντικαταστήσετε τον τομέα GitHub με `VSCode.dev/github` και να φορτώσετε το αποθετήριο απευθείας. Το προκύπτον URL θα είναι [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![Palette Menu](../images/palette-menu.pngopen remote repository.”
- Επιλέξτε την επιλογή.
- Επικολλήστε τη διεύθυνση URL του αποθετηρίου GitHub σας (π.χ., `https://github.com/microsoft/Web-Dev-For-Beginners`) και πατήστε Enter.
## Επεξεργασία αρχείων
Αν είναι επιτυχές, θα δείτε ολόκληρο το έργο φορτωμένο και έτοιμο για επεξεργασία!
Αφού ανοίξετε το αποθετήριο στον περιηγητή/ vscode.dev, το επόμενο βήμα είναι να κάνετε ενημερώσεις ή αλλαγές στο έργο.
***
### 1. Δημιουργία νέου αρχείου
### Μέθοδος 2: Άμεσα μέσω URL
Μπορείτε είτε να δημιουργήσετε ένα αρχείο μέσα σε έναν υπάρχοντα φάκελο είτε να το δημιουργήσετε στον ριζικό κατάλογο/φάκελο. Για να δημιουργήσετε ένα νέο αρχείο, ανοίξτε μια τοποθεσία/κατάλογο όπου θέλετε να αποθηκευτεί το αρχείο και επιλέξτε το εικονίδιο _'New file ...'_ στη γραμμή δραστηριοτήτων _(αριστερά)_, δώστε του ένα όνομα και πατήστε enter.
Μετατρέψτε οποιαδήποτε διεύθυνση URL αποθετηρίου GitHub ώστε να ανοίγει απευθείας στο VSCode.dev αντικαθιστώντας το `github.com` με `vscode.dev/github`.
Π.χ.:
![Δημιουργία νέου αρχείου](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.el.png)
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
### 2. Επεξεργασία και αποθήκευση αρχείου στο αποθετήριο
Αυτή η λειτουργία επιταχύνει την άμεση πρόσβαση σε ΟΠΟΙΟΔΗΠΟΤΕ έργο.
Η χρήση του vscode.dev είναι χρήσιμη όποτε θέλετε να κάνετε γρήγορες ενημερώσεις στο έργο σας χωρίς να φορτώσετε οποιοδήποτε λογισμικό τοπικά.
Για να ενημερώσετε τον κώδικά σας, κάντε κλικ στο εικονίδιο 'Explorer', που βρίσκεται επίσης στη γραμμή δραστηριοτήτων, για να δείτε αρχεία και φακέλους στο αποθετήριο.
Επιλέξτε ένα αρχείο για να το ανοίξετε στην περιοχή κώδικα, κάντε τις αλλαγές σας και αποθηκεύστε.
***
![Επεξεργασία αρχείου](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.el.png)
## Επεξεργασία Αρχείων στο Έργο Σας
Μόλις ολοκληρώσετε την ενημέρωση του έργου σας, επιλέξτε το εικονίδιο _`source control`_ που περιέχει όλες τις νέες αλλαγές που έχετε κάνει στο αποθετήριο.
Μόλις ανοίξετε το αποθετήριο σας, μπορείτε:
Για να δείτε τις αλλαγές που κάνατε στο έργο σας, επιλέξτε το(α) αρχείο(α) στον φάκελο `Changes` στην επεκταμένη γραμμή δραστηριοτήτων. Αυτό θα ανοίξει ένα 'Working Tree' για να δείτε οπτικά τις αλλαγές που κάνατε στο αρχείο. Το κόκκινο δείχνει μια αφαίρεση από το έργο, ενώ το πράσινο υποδηλώνει μια προσθήκη.
### 1. **Δημιουργία Νέου Αρχείου**
- Στην πλευρική γραμμή *Explorer*, μεταβείτε στον επιθυμητό φάκελο ή χρησιμοποιήστε τη ρίζα.
- Κάντε κλικ στο εικονίδιο _New file ..._.
- Ονομάστε το αρχείο σας, πατήστε **Enter**, και το αρχείο σας εμφανίζεται άμεσα.
![Προβολή αλλαγών](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.el.png)
![Create a new file](../images/create-new-file 2. **Επεξεργασία και Αποθήκευση Αρχείων**
Αν είστε ικανοποιημένοι με τις αλλαγές που κάνατε, τοποθετήστε τον δείκτη του ποντικιού πάνω από τον φάκελο `Changes` και κάντε κλικ στο κουμπί `+` για να προετοιμάσετε τις αλλαγές. Η προετοιμασία σημαίνει απλώς την προετοιμασία των αλλαγών σας για να τις δεσμεύσετε στο GitHub.
- Κάντε κλικ σε ένα αρχείο στο *Explorer* για να το ανοίξετε στην περιοχή κώδικα.
- Κάντε τις αλλαγές σας όπως χρειάζεται.
- Το VSCode.dev αποθηκεύει αυτόματα τις αλλαγές σας, αλλά μπορείτε να πατήσετε Ctrl+S για χειροκίνητη αποθήκευση.
Αν, ωστόσο, δεν είστε άνετοι με κάποιες αλλαγές και θέλετε να τις απορρίψετε, τοποθετήστε τον δείκτη του ποντικιού πάνω από τον φάκελο `Changes` και επιλέξτε το εικονίδιο `undo`.
![Edit a file](../images/edit-a-file.png. **Παρακολούθηση & Δέσμευση Αλλαγών με Έλεγχο Εκδόσεων**
Στη συνέχεια, πληκτρολογήστε ένα `commit message` _(Μια περιγραφή της αλλαγής που κάνατε στο έργο)_, κάντε κλικ στο εικονίδιο `check` για να δεσμεύσετε και να προωθήσετε τις αλλαγές σας.
Το VSCode.dev διαθέτει ενσωματωμένο **Git** για έλεγχο εκδόσεων!
Μόλις τελειώσετε με το έργο σας, επιλέξτε το εικονίδιο `hamburger menu` επάνω αριστερά για να επιστρέψετε στο αποθετήριο στο github.com.
- Κάντε κλικ στο εικονίδιο _'Source Control'_ για να δείτε όλες τις αλλαγές που έγιναν.
- Τα αρχεία στον φάκελο `Changes` δείχνουν προσθήκες (πράσινο) και διαγραφές (κόκκινο).
![View changes](../images/working-tree.png αλλαγές κάνοντας κλικ στο `+` δίπλα στα αρχεία για προετοιμασία για δέσμευση.
- **Απορρίψτε** ανεπιθύμητες αλλαγές κάνοντας κλικ στο εικονίδιο αναίρεσης.
- Πληκτρολογήστε ένα σαφές μήνυμα δέσμευσης και στη συνέχεια κάντε κλικ στο σημάδι επιλογής για δέσμευση και ώθηση.
![Προετοιμασία & δέσμευση αλλαγών](../../../../8-code-editor/images/edit-vscode.dev.gif)
Για να επιστρέψετε στο αποθετήριο σας στο GitHub, επιλέξτε το μενού hamburger στην επάνω αριστερή γωνία.
## Χρήση επεκτάσεων
![Stage & commit changes](../images/edit-vscode.dev Up with Extensions
Η εγκατάσταση επεκτάσεων στο VSCode σας επιτρέπει να προσθέσετε νέες δυνατότητες και επιλογές προσαρμογής του περιβάλλοντος ανάπτυξης στον επεξεργαστή σας, βελτιώνοντας τη ροή εργασίας ανάπτυξης. Αυτές οι επεκτάσεις βοηθούν επίσης στην προσθήκη υποστήριξης για πολλές γλώσσες προγραμματισμού και είναι συχνά είτε γενικές επεκτάσεις είτε επεκτάσεις βασισμένες σε γλώσσες.
Οι επεκτάσεις σας επιτρέπουν να προσθέσετε γλώσσες, θέματα, αποσφαλματωτές και εργαλεία παραγωγικότητας στο VSCode.dev—κάνοντας τη ζωή σας στον προγραμματισμό πιο εύκολη και διασκεδαστική.
Για να περιηγηθείτε στη λίστα όλων των διαθέσιμων επεκτάσεων, κάντε κλικ στο εικονίδιο _`Extensions`_ στη γραμμή δραστηριοτήτων και αρχίστε να πληκτρολογείτε το όνομα της επέκτασης στο πεδίο κειμένου με την ένδειξη _'Search Extensions in Marketplace'_.
Θα δείτε μια λίστα επεκτάσεων, καθεμία από τις οποίες περιέχει **το όνομα της επέκτασης, το όνομα του εκδότη, μια περιγραφή μιας πρότασης, τον αριθμό λήψεων** και **μια βαθμολογία με αστέρια**.
### Περιήγηση και Διαχείριση Επεκτάσεων
![Λεπτομέρειες επέκτασης](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.el.png)
- Κάντε κλικ στο **Εικονίδιο Επεκτάσεων** στη γραμμή δραστηριοτήτων.
- Αναζητήστε μια επέκταση στο πλαίσιο _'Search Extensions in Marketplace'_.
Μπορείτε επίσης να δείτε όλες τις προηγουμένως εγκατεστημένες επεκτάσεις επεκτείνοντας τον φάκελο _`Installed`_, δημοφιλείς επεκτάσεις που χρησιμοποιούνται από τους περισσότερους προγραμματιστές στον φάκελο _`Popular`_ και προτεινόμενες επεκτάσεις για εσάς είτε από χρήστες στον ίδιο χώρο εργασίας είτε με βάση τα πρόσφατα ανοιγμένα αρχεία σας στον φάκελο _`Recommended`_.
![Extension details](../images/extension-details:
- **Installed**: Όλες οι επεκτάσεις που έχετε προσθέσει
- **Popular**: Αγαπημένα της βιομηχανίας
- **Recommended**: Προσαρμοσμένες στη ροή εργασίας σας
![Προβολή επεκτάσεων](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.el.png)
![View extensions](
### 1. Εγκατάσταση επεκτάσεων
Για να εγκαταστήσετε μια επέκταση, πληκτρολογήστε το όνομα της επέκτασης στο πεδίο αναζήτησης και κάντε κλικ πάνω της για να δείτε πρόσθετες πληροφορίες σχετικά με την επέκταση στην περιοχή κώδικα μόλις εμφανιστεί στην επεκταμένη γραμμή δραστηριοτήτων.
***
Μπορείτε είτε να κάνετε κλικ στο _μπλε κουμπί εγκατάστασης_ στην επεκταμένη γραμμή δραστηριοτήτων για να την εγκαταστήσετε είτε να χρησιμοποιήσετε το κουμπί εγκατάστασης που εμφανίζεται στην περιοχή κώδικα μόλις επιλέξετε την επέκταση για να φορτώσετε πρόσθετες πληροφορίες.
### 1. **Εγκατάσταση Επεκτάσεων**
![Εγκατάσταση επεκτάσεων](../../../../8-code-editor/images/install-extension.gif)
- Εισάγετε το όνομα της επέκτασης στην αναζήτηση, κάντε κλικ σε αυτήν και δείτε τις λεπτομέρειες στον επεξεργαστή.
- Πατήστε το **μπλε κουμπί Εγκατάστασης** στην πλευρική γραμμή _ή_ στην κύρια περιοχή κώδικα.
### 2. Προσαρμογή επεκτάσεων
![Install extensions](../images/install-extension 2. **Εξατομίκευση Επεκτάσεων**
Μετά την εγκατάσταση της επέκτασης, ίσως χρειαστεί να τροποποιήσετε τη συμπεριφορά της και να την προσαρμόσετε με βάση τις προτιμήσεις σας. Για να το κάνετε αυτό, επιλέξτε το εικονίδιο Extensions και αυτή τη φορά η επέκταση σας θα εμφανιστεί στον φάκελο _Installed_, κάντε κλικ στο _**Gear icon**_ και μεταβείτε στις _Extensions Setting_.
- Βρείτε την εγκατεστημένη επέκταση σας.
- Κάντε κλικ στο **Εικονίδιο Ρυθμίσεων** → επιλέξτε _Extension Settings_ για να προσαρμόσετε τις συμπεριφορές σύμφωνα με τις προτιμήσεις σας.
![Τροποποίηση ρυθμίσεων επέκτασης](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.el.png)
![Modify extension settings](../images/extension-settings 3. **Διαχείριση Επεκτάσεων**
Μπορείτε:
### 3. Διαχείριση επεκτάσεων
- **Απενεργοποίηση:** Να απενεργοποιήσετε προσωρινά μια επέκταση ενώ την κρατάτε εγκατεστημένη
- **Απεγκατάσταση:** Να την αφαιρέσετε μόνιμα αν δεν τη χρειάζεστε πλέον
Μετά την εγκατάσταση και χρήση της επέκτασης, το vscode.dev προσφέρει επιλογές για τη διαχείριση της επέκτασης με βάση διαφορετικές ανάγκες. Για παράδειγμα, μπορείτε να επιλέξετε να:
Βρείτε την επέκταση, πατήστε το εικονίδιο Ρυθμίσεων και επιλέξτε Disable ή Uninstall, ή χρησιμοποιήστε τα μπλε κουμπιά στην περιοχή κώδικα.
- **Απενεργοποιήσετε:** _(Μπορείτε προσωρινά να απενεργοποιήσετε μια επέκταση όταν δεν τη χρειάζεστε πλέον αλλά δεν θέλετε να την απεγκαταστήσετε εντελώς)_
***
Επιλέξτε την εγκατεστημένη επέκταση στην επεκταμένη γραμμή δραστηριοτήτων > κάντε κλικ στο Gear icon > επιλέξτε 'Disable' ή 'Disable (Workspace)' **Ή** Ανοίξτε την επέκταση στην περιοχή κώδικα και κάντε κλικ στο μπλε κουμπί Disable.
## Εργασία
- **Απεγκαταστήσετε:** Επιλέξτε την εγκατεστημένη επέκταση στην επεκταμένη γραμμή δραστηριοτήτων > κάντε κλικ στο Gear icon > επιλέξτε 'Uninstall' **Ή** Ανοίξτε την επέκταση στην περιοχή κώδικα και κάντε κλικ στο μπλε κουμπί Uninstall.
Δοκιμάστε τις δεξιότητές σας: [Δημιουργήστε έναν ιστότοπο βιογραφικού χρησιμοποιώντας το vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## Εργασία
## Περαιτέρω Εξερεύνηση και Αυτοδιδασκαλία
[Δημιουργήστε έναν ιστότοπο βιογραφικού χρησιμοποιώντας το vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- Εμβαθύνετε με [τα επίσημα έγγραφα του VSCode Web](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Εξερευνήστε προηγμένες λειτουργίες χώρου εργασίας, συντομεύσεις πληκτρολογίου και ρυθμίσεις.
## Ανασκόπηση & Αυτομελέτη
***
Διαβάστε περισσότερα για το [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) και μερικές από τις άλλες δυνατότητές του.
**Τώρα είστε έτοιμοι να προγραμματίσετε, να δημιουργήσετε και να συνεργαστείτε—από οπουδήποτε, σε οποιαδήποτε συσκευή, χρησιμοποιώντας το VSCode.dev!**
---
**Αποποίηση Ευθύνης**:
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -0,0 +1,397 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:27:37+00:00",
"source_file": "AGENTS.md",
"language_code": "el"
}
-->
# AGENTS.md
## Επισκόπηση Έργου
Αυτό είναι ένα αποθετήριο εκπαιδευτικού προγράμματος για τη διδασκαλία των βασικών αρχών ανάπτυξης ιστοσελίδων σε αρχάριους. Το πρόγραμμα είναι ένα ολοκληρωμένο 12-εβδομαδιαίο μάθημα που έχει αναπτυχθεί από τους Microsoft Cloud Advocates, περιλαμβάνοντας 24 πρακτικά μαθήματα που καλύπτουν JavaScript, CSS και HTML.
### Βασικά Στοιχεία
- **Εκπαιδευτικό Περιεχόμενο**: 24 δομημένα μαθήματα οργανωμένα σε έργα
- **Πρακτικά Έργα**: Terrarium, Παιχνίδι Πληκτρολόγησης, Επέκταση Περιηγητή, Παιχνίδι Διαστήματος, Εφαρμογή Τραπεζικής, Επεξεργαστής Κώδικα και Βοηθός Συνομιλίας AI
- **Διαδραστικά Κουίζ**: 48 κουίζ με 3 ερωτήσεις το καθένα (πριν/μετά το μάθημα)
- **Υποστήριξη Πολλών Γλωσσών**: Αυτόματες μεταφράσεις για 50+ γλώσσες μέσω GitHub Actions
- **Τεχνολογίες**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (για έργα AI)
### Αρχιτεκτονική
- Εκπαιδευτικό αποθετήριο με δομή βασισμένη σε μαθήματα
- Κάθε φάκελος μαθήματος περιέχει README, παραδείγματα κώδικα και λύσεις
- Αυτόνομα έργα σε ξεχωριστούς φακέλους (quiz-app, διάφορα έργα μαθημάτων)
- Σύστημα μετάφρασης μέσω GitHub Actions (co-op-translator)
- Τεκμηρίωση που εξυπηρετείται μέσω Docsify και διαθέσιμη ως PDF
## Εντολές Ρύθμισης
Αυτό το αποθετήριο προορίζεται κυρίως για κατανάλωση εκπαιδευτικού περιεχομένου. Για εργασία με συγκεκριμένα έργα:
### Ρύθμιση Κύριου Αποθετηρίου
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Ρύθμιση Εφαρμογής Κουίζ (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### API Τραπεζικού Έργου (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Έργα Επέκτασης Περιηγητή
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Έργα Παιχνιδιού Διαστήματος
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Έργο Συνομιλίας (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Ροή Εργασίας Ανάπτυξης
### Για Συνεισφέροντες Περιεχομένου
1. **Κάντε fork το αποθετήριο** στον λογαριασμό σας στο GitHub
2. **Κλωνοποιήστε το fork σας** τοπικά
3. **Δημιουργήστε ένα νέο branch** για τις αλλαγές σας
4. Κάντε αλλαγές στο περιεχόμενο των μαθημάτων ή στα παραδείγματα κώδικα
5. Δοκιμάστε τις αλλαγές κώδικα στους αντίστοιχους φακέλους έργων
6. Υποβάλετε pull requests ακολουθώντας τις οδηγίες συνεισφοράς
### Για Μαθητές
1. Κάντε fork ή κλωνοποιήστε το αποθετήριο
2. Πλοηγηθείτε στους φακέλους μαθημάτων με τη σειρά
3. Διαβάστε τα αρχεία README για κάθε μάθημα
4. Ολοκληρώστε τα κουίζ πριν το μάθημα στο https://ff-quizzes.netlify.app/web/
5. Εργαστείτε στα παραδείγματα κώδικα στους φακέλους μαθημάτων
6. Ολοκληρώστε τις εργασίες και τις προκλήσεις
7. Κάντε τα κουίζ μετά το μάθημα
### Ζωντανή Ανάπτυξη
- **Τεκμηρίωση**: Εκτελέστε `docsify serve` στη ρίζα (port 3000)
- **Εφαρμογή Κουίζ**: Εκτελέστε `npm run dev` στον φάκελο quiz-app
- **Έργα**: Χρησιμοποιήστε την επέκταση Live Server του VS Code για έργα HTML
- **API Έργα**: Εκτελέστε `npm start` στους αντίστοιχους φακέλους API
## Οδηγίες Δοκιμών
### Δοκιμή Εφαρμογής Κουίζ
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Δοκιμή API Τραπεζικού Έργου
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### Γενική Προσέγγιση Δοκιμών
- Αυτό είναι ένα εκπαιδευτικό αποθετήριο χωρίς ολοκληρωμένες αυτοματοποιημένες δοκιμές
- Η χειροκίνητη δοκιμή επικεντρώνεται σε:
- Εκτέλεση παραδειγμάτων κώδικα χωρίς σφάλματα
- Σωστή λειτουργία συνδέσμων στην τεκμηρίωση
- Επιτυχής ολοκλήρωση κατασκευών έργων
- Συμμόρφωση παραδειγμάτων με βέλτιστες πρακτικές
### Έλεγχοι Πριν την Υποβολή
- Εκτελέστε `npm run lint` στους φακέλους με package.json
- Επαληθεύστε ότι οι σύνδεσμοι markdown είναι έγκυροι
- Δοκιμάστε παραδείγματα κώδικα σε περιηγητή ή Node.js
- Ελέγξτε ότι οι μεταφράσεις διατηρούν τη σωστή δομή
## Οδηγίες Στυλ Κώδικα
### JavaScript
- Χρησιμοποιήστε σύγχρονη σύνταξη ES6+
- Ακολουθήστε τις τυπικές ρυθμίσεις ESLint που παρέχονται στα έργα
- Χρησιμοποιήστε κατανοητά ονόματα μεταβλητών και συναρτήσεων για εκπαιδευτική σαφήνεια
- Προσθέστε σχόλια που εξηγούν έννοιες για τους μαθητές
- Μορφοποιήστε χρησιμοποιώντας Prettier όπου έχει ρυθμιστεί
### HTML/CSS
- Χρησιμοποιήστε σημασιολογικά στοιχεία HTML5
- Εφαρμόστε αρχές σχεδιασμού για ανταπόκριση
- Χρησιμοποιήστε σαφείς συμβάσεις ονοματοδοσίας κλάσεων
- Προσθέστε σχόλια που εξηγούν τεχνικές CSS για τους μαθητές
### Python
- Ακολουθήστε τις οδηγίες στυλ PEP 8
- Παρέχετε σαφή, εκπαιδευτικά παραδείγματα κώδικα
- Χρησιμοποιήστε τύπους όπου είναι χρήσιμοι για μάθηση
### Τεκμηρίωση Markdown
- Σαφής ιεραρχία επικεφαλίδων
- Μπλοκ κώδικα με καθορισμό γλώσσας
- Σύνδεσμοι σε πρόσθετους πόρους
- Στιγμιότυπα οθόνης και εικόνες στους φακέλους `images/`
- Εναλλακτικό κείμενο για εικόνες για προσβασιμότητα
### Οργάνωση Αρχείων
- Μαθήματα αριθμημένα διαδοχικά (1-getting-started-lessons, 2-js-basics, κ.λπ.)
- Κάθε έργο έχει φακέλους `solution/` και συχνά `start/` ή `your-work/`
- Εικόνες αποθηκευμένες σε φακέλους `images/` συγκεκριμένων μαθημάτων
- Μεταφράσεις στη δομή `translations/{language-code}/`
## Κατασκευή και Ανάπτυξη
### Ανάπτυξη Εφαρμογής Κουίζ (Azure Static Web Apps)
Η εφαρμογή quiz-app είναι ρυθμισμένη για ανάπτυξη σε Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Ρύθμιση Azure Static Web Apps:
- **Τοποθεσία εφαρμογής**: `/quiz-app`
- **Τοποθεσία εξόδου**: `dist`
- **Ροή εργασίας**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Δημιουργία PDF Τεκμηρίωσης
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Τεκμηρίωση Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Κατασκευές Ειδικών Έργων
Κάθε φάκελος έργου μπορεί να έχει τη δική του διαδικασία κατασκευής:
- Έργα Vue: `npm run build` δημιουργεί παραγωγικά πακέτα
- Στατικά έργα: Χωρίς βήμα κατασκευής, εξυπηρετήστε αρχεία απευθείας
## Οδηγίες Pull Request
### Μορφή Τίτλου
Χρησιμοποιήστε σαφείς, περιγραφικούς τίτλους που υποδεικνύουν την περιοχή αλλαγής:
- `[Quiz-app] Προσθήκη νέου κουίζ για το μάθημα X`
- `[Lesson-3] Διόρθωση τυπογραφικού στο έργο terrarium`
- `[Translation] Προσθήκη ισπανικής μετάφρασης για το μάθημα 5`
- `[Docs] Ενημέρωση οδηγιών ρύθμισης`
### Απαιτούμενοι Έλεγχοι
Πριν την υποβολή PR:
1. **Ποιότητα Κώδικα**:
- Εκτελέστε `npm run lint` στους επηρεαζόμενους φακέλους έργων
- Διορθώστε όλα τα σφάλματα και τις προειδοποιήσεις linting
2. **Επαλήθευση Κατασκευής**:
- Εκτελέστε `npm run build` αν είναι απαραίτητο
- Βεβαιωθείτε ότι δεν υπάρχουν σφάλματα κατασκευής
3. **Επαλήθευση Συνδέσμων**:
- Δοκιμάστε όλους τους συνδέσμους markdown
- Επαληθεύστε ότι οι αναφορές εικόνων λειτουργούν
4. **Ανασκόπηση Περιεχομένου**:
- Ελέγξτε για ορθογραφικά και γραμματικά λάθη
- Βεβαιωθείτε ότι τα παραδείγματα κώδικα είναι σωστά και εκπαιδευτικά
- Επαληθεύστε ότι οι μεταφράσεις διατηρούν το αρχικό νόημα
### Απαιτήσεις Συνεισφοράς
- Συμφωνήστε με το Microsoft CLA (αυτοματοποιημένος έλεγχος στο πρώτο PR)
- Ακολουθήστε τον [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Δείτε το [CONTRIBUTING.md](./CONTRIBUTING.md) για λεπτομερείς οδηγίες
- Αναφέρετε αριθμούς ζητημάτων στην περιγραφή PR αν είναι απαραίτητο
### Διαδικασία Ανασκόπησης
- Τα PR ανασκοπούνται από συντηρητές και την κοινότητα
- Δίνεται προτεραιότητα στη εκπαιδευτική σαφήνεια
- Τα παραδείγματα κώδικα πρέπει να ακολουθούν τις τρέχουσες βέλτιστες πρακτικές
- Οι μεταφράσεις ανασκοπούνται για ακρίβεια και πολιτισμική καταλληλότητα
## Σύστημα Μετάφρασης
### Αυτόματη Μετάφραση
- Χρησιμοποιεί GitHub Actions με ροή εργασίας co-op-translator
- Μεταφράζει αυτόματα σε 50+ γλώσσες
- Αρχεία πηγής στους κύριους φακέλους
- Μεταφρασμένα αρχεία στη δομή `translations/{language-code}/`
### Προσθήκη Βελτιώσεων Χειροκίνητης Μετάφρασης
1. Εντοπίστε το αρχείο στο `translations/{language-code}/`
2. Κάντε βελτιώσεις διατηρώντας τη δομή
3. Βεβαιωθείτε ότι τα παραδείγματα κώδικα παραμένουν λειτουργικά
4. Δοκιμάστε οποιοδήποτε τοπικό περιεχόμενο κουίζ
### Μεταδεδομένα Μετάφρασης
Τα μεταφρασμένα αρχεία περιλαμβάνουν κεφαλίδα μεταδεδομένων:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Εντοπισμός Σφαλμάτων και Αντιμετώπιση Προβλημάτων
### Συνηθισμένα Προβλήματα
**Η εφαρμογή κουίζ δεν ξεκινά**:
- Ελέγξτε την έκδοση Node.js (συνιστάται v14+)
- Διαγράψτε `node_modules` και `package-lock.json`, εκτελέστε ξανά `npm install`
- Ελέγξτε για συγκρούσεις θύρας (προεπιλογή: Vite χρησιμοποιεί θύρα 5173)
**Ο διακομιστής API δεν ξεκινά**:
- Βεβαιωθείτε ότι η έκδοση Node.js πληροί το ελάχιστο (node >=10)
- Ελέγξτε αν η θύρα είναι ήδη σε χρήση
- Βεβαιωθείτε ότι όλες οι εξαρτήσεις έχουν εγκατασταθεί με `npm install`
**Η επέκταση περιηγητή δεν φορτώνει**:
- Επαληθεύστε ότι το manifest.json είναι σωστά μορφοποιημένο
- Ελέγξτε την κονσόλα του περιηγητή για σφάλματα
- Ακολουθήστε τις οδηγίες εγκατάστασης επέκτασης για συγκεκριμένο περιηγητή
**Προβλήματα έργου συνομιλίας Python**:
- Βεβαιωθείτε ότι το πακέτο OpenAI είναι εγκατεστημένο: `pip install openai`
- Επαληθεύστε ότι η μεταβλητή περιβάλλοντος GITHUB_TOKEN έχει οριστεί
- Ελέγξτε τα δικαιώματα πρόσβασης στα GitHub Models
**Το Docsify δεν εξυπηρετεί την τεκμηρίωση**:
- Εγκαταστήστε το docsify-cli παγκοσμίως: `npm install -g docsify-cli`
- Εκτελέστε από τον ριζικό φάκελο του αποθετηρίου
- Ελέγξτε ότι υπάρχει το `docs/_sidebar.md`
### Συμβουλές Περιβάλλοντος Ανάπτυξης
- Χρησιμοποιήστε το VS Code με την επέκταση Live Server για έργα HTML
- Εγκαταστήστε τις επεκτάσεις ESLint και Prettier για συνεπή μορφοποίηση
- Χρησιμοποιήστε τα DevTools του περιηγητή για αποσφαλμάτωση JavaScript
- Για έργα Vue, εγκαταστήστε την επέκταση Vue DevTools στον περιηγητή
### Σκέψεις Απόδοσης
- Ο μεγάλος αριθμός μεταφρασμένων αρχείων (50+ γλώσσες) σημαίνει ότι οι πλήρεις κλωνοποιήσεις είναι μεγάλες
- Χρησιμοποιήστε shallow clone αν εργάζεστε μόνο στο περιεχόμενο: `git clone --depth 1`
- Εξαιρέστε τις μεταφράσεις από τις αναζητήσεις όταν εργάζεστε στο αγγλικό περιεχόμενο
- Οι διαδικασίες κατασκευής μπορεί να είναι αργές στην πρώτη εκτέλεση (npm install, Vite build)
## Σκέψεις Ασφαλείας
### Μεταβλητές Περιβάλλοντος
- Τα κλειδιά API δεν πρέπει ποτέ να δεσμεύονται στο αποθετήριο
- Χρησιμοποιήστε αρχεία `.env` (ήδη στο `.gitignore`)
- Τεκμηριώστε τις απαιτούμενες μεταβλητές περιβάλλοντος στα README των έργων
### Έργα Python
- Χρησιμοποιήστε εικονικά περιβάλλοντα: `python -m venv venv`
- Διατηρήστε τις εξαρτήσεις ενημερωμένες
- Τα GitHub tokens πρέπει να έχουν τα ελάχιστα απαιτούμενα δικαιώματα
### Πρόσβαση στα GitHub Models
- Απαιτούνται Personal Access Tokens (PAT) για τα GitHub Models
- Τα tokens πρέπει να αποθηκεύονται ως μεταβλητές περιβάλλοντος
- Ποτέ μην δεσμεύετε tokens ή διαπιστευτήρια
## Πρόσθετες Σημειώσεις
### Στόχος Κοινού
- Απόλυτοι αρχάριοι στην ανάπτυξη ιστοσελίδων
- Μαθητές και αυτοδίδακτοι
- Εκπαιδευτικοί που χρησιμοποιούν το πρόγραμμα σε τάξεις
- Το περιεχόμενο είναι σχεδιασμένο για προσβασιμότητα και σταδιακή ανάπτυξη δεξιοτήτων
### Εκπαιδευτική Φιλοσοφία
- Προσέγγιση μάθησης βασισμένη σε έργα
- Συχνές αξιολογήσεις γνώσεων (κουίζ)
- Πρακτικές ασκήσεις κώδικα
- Παραδείγματα εφαρμογών πραγματικού κόσμου
- Εστίαση στα θεμελιώδη πριν από τα frameworks
### Συντήρηση Αποθετηρίου
- Ενεργή κοινότητα μαθητών και συνεισφερόντων
- Τακτικές ενημερώσεις εξαρτήσεων και περιεχομένου
- Ζητήματα και συζητήσεις παρακολουθούνται από συντηρητές
- Ενημερώσεις μεταφράσεων αυτοματοποιημένες μέσω GitHub Actions
### Σχετικοί Πόροι
- [Microsoft Learn modules](https://docs.microsoft.com/learn/)
- [Πόροι Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,206 +1,227 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T06:55:58+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T09:45:27+00:00",
"source_file": "README.md",
"language_code": "el"
}
-->
[![Άδεια GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![Συνεισφέροντες GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![Θέματα GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![Αιτήματα έλξης GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Άδεια GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![Συνεργάτες GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![Θέματα GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![Αιτήματα GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Παρατηρητές GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![Forks GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![Αστέρια GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![Παρατηρητές GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![Forks GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![Αστέρια GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![Άνοιγμα στο 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)
[![Άνοιγμα στο 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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε να χρησιμοποιείτε αυτούς τους πόρους:
1. **Κάντε Fork το Αποθετήριο**: Πατήστε [![Forks GitHub](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`
3. [**Γίνετε μέλος στο Azure AI Foundry Discord και γνωρίστε ειδικούς και άλλους προγραμματιστές**](https://discord.com/invite/ByRwuEEgH4)
Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε να χρησιμοποιείτε αυτούς τους πόρους:
1. **Κάντε Fork το Αποθετήριο**: Πατήστε [![Forks GitHub](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`
3. [**Γίνετε μέλος στο Azure AI Foundry Discord και γνωρίστε ειδικούς και άλλους προγραμματιστές**](https://discord.com/invite/ByRwuEEgH4)
# Ανάπτυξη Ιστού για Αρχάριους - Ένα Πρόγραμμα Σπουδών
# Ανάπτυξη Ιστού για Αρχάριους - Ένα Πρόγραμμα Σπουδών
Μάθετε τα βασικά της ανάπτυξης ιστού με το 12-εβδομάδων ολοκληρωμένο μάθημα από τους Microsoft Cloud Advocates. Κάθε ένα από τα 24 μαθήματα εστιάζει σε JavaScript, CSS και HTML μέσω πρακτικών έργων όπως τεραριούμ, επεκτάσεις προγράμματος περιήγησης και παιχνίδια διαστήματος. Συμμετέχετε σε κουίζ, συζητήσεις και πρακτικές εργασίες. Βελτιώστε τις δεξιότητές σας και ενισχύστε τη διατήρηση της γνώσης σας με την αποτελεσματική παιδαγωγική μας που βασίζεται σε έργα. Ξεκινήστε το ταξίδι σας στον προγραμματισμό σήμερα!
Μάθετε τα βασικά της ανάπτυξης ιστού με το 12-εβδομαδιαίο ολοκληρωμένο μάθημα από τους Microsoft Cloud Advocates. Κάθε ένα από τα 24 μαθήματα εστιάζει σε JavaScript, CSS και HTML μέσω πρακτικών έργων όπως terrariums, επεκτάσεις προγράμματος περιήγησης και παιχνίδια διαστήματος. Συμμετέχετε σε κουίζ, συζητήσεις και πρακτικές εργασίες. Βελτιώστε τις δεξιότητές σας και ενισχύστε τη γνώση σας με την αποτελεσματική παιδαγωγική που βασίζεται σε έργα. Ξεκινήστε το ταξίδι σας στον προγραμματισμό σήμερα!
### 🌐 Υποστήριξη Πολλαπλών Γλωσσών
### 🌐 Υποστήριξη Πολλών Γλωσσών
#### Υποστηρίζεται μέσω GitHub Action (Αυτοματοποιημένο & Πάντα Ενημερωμένο)
#### Υποστηρίζεται μέσω GitHub Action (Αυτοματοποιημένο & Πάντα Ενημερωμένο)
[Γαλλικά](../fr/README.md) | [Ισπανικά](../es/README.md) | [Γερμανικά](../de/README.md) | [Ρωσικά](../ru/README.md) | [Αραβικά](../ar/README.md) | [Περσικά (Φαρσί)](../fa/README.md) | [Ουρντού](../ur/README.md) | [Κινέζικα (Απλοποιημένα)](../zh/README.md) | [Κινέζικα (Παραδοσιακά, Μακάο)](../mo/README.md) | [Κινέζικα (Παραδοσιακά, Χονγκ Κονγκ)](../hk/README.md) | [Κινέζικα (Παραδοσιακά, Ταϊβάν)](../tw/README.md) | [Ιαπωνικά](../ja/README.md) | [Κορεατικά](../ko/README.md) | [Χίντι](../hi/README.md) | [Βεγγαλικά](../bn/README.md) | [Μαραθικά](../mr/README.md) | [Νεπαλικά](../ne/README.md) | [Παντζάμπι (Γκουρμούκι)](../pa/README.md) | [Πορτογαλικά (Πορτογαλία)](../pt/README.md) | [Πορτογαλικά (Βραζιλία)](../br/README.md) | [Ιταλικά](../it/README.md) | [Πολωνικά](../pl/README.md) | [Τουρκικά](../tr/README.md) | [Ελληνικά](./README.md) | [Ταϊλανδικά](../th/README.md) | [Σουηδικά](../sv/README.md) | [Δανικά](../da/README.md) | [Νορβηγικά](../no/README.md) | [Φινλανδικά](../fi/README.md) | [Ολλανδικά](../nl/README.md) | [Εβραϊκά](../he/README.md) | [Βιετναμέζικα](../vi/README.md) | [Ινδονησιακά](../id/README.md) | [Μαλαισιακά](../ms/README.md) | [Ταγκάλογκ (Φιλιππινέζικα)](../tl/README.md) | [Σουαχίλι](../sw/README.md) | [Ουγγρικά](../hu/README.md) | [Τσέχικα](../cs/README.md) | [Σλοβακικά](../sk/README.md) | [Ρουμανικά](../ro/README.md) | [Βουλγαρικά](../bg/README.md) | [Σερβικά (Κυριλλικά)](../sr/README.md) | [Κροατικά](../hr/README.md) | [Σλοβενικά](../sl/README.md) | [Ουκρανικά](../uk/README.md) | [Βιρμανικά (Μιανμάρ)](../my/README.md)
[Γαλλικά](../fr/README.md) | [Ισπανικά](../es/README.md) | [Γερμανικά](../de/README.md) | [Ρωσικά](../ru/README.md) | [Αραβικά](../ar/README.md) | [Περσικά (Φαρσί)](../fa/README.md) | [Ουρντού](../ur/README.md) | [Κινέζικα (Απλοποιημένα)](../zh/README.md) | [Κινέζικα (Παραδοσιακά, Μακάου)](../mo/README.md) | [Κινέζικα (Παραδοσιακά, Χονγκ Κονγκ)](../hk/README.md) | [Κινέζικα (Παραδοσιακά, Ταϊβάν)](../tw/README.md) | [Ιαπωνικά](../ja/README.md) | [Κορεατικά](../ko/README.md) | [Χίντι](../hi/README.md) | [Μπενγκάλι](../bn/README.md) | [Μαραθικά](../mr/README.md) | [Νεπαλικά](../ne/README.md) | [Παντζάμπι (Γκουρμούκι)](../pa/README.md) | [Πορτογαλικά (Πορτογαλία)](../pt/README.md) | [Πορτογαλικά (Βραζιλία)](../br/README.md) | [Ιταλικά](../it/README.md) | [Πολωνικά](../pl/README.md) | [Τουρκικά](../tr/README.md) | [Ελληνικά](./README.md) | [Ταϊλανδικά](../th/README.md) | [Σουηδικά](../sv/README.md) | [Δανικά](../da/README.md) | [Νορβηγικά](../no/README.md) | [Φινλανδικά](../fi/README.md) | [Ολλανδικά](../nl/README.md) | [Εβραϊκά](../he/README.md) | [Βιετναμέζικα](../vi/README.md) | [Ινδονησιακά](../id/README.md) | [Μαλαισιανά](../ms/README.md) | [Ταγκαλόγκ (Φιλιππινέζικα)](../tl/README.md) | [Σουαχίλι](../sw/README.md) | [Ουγγρικά](../hu/README.md) | [Τσέχικα](../cs/README.md) | [Σλοβακικά](../sk/README.md) | [Ρουμανικά](../ro/README.md) | [Βουλγαρικά](../bg/README.md) | [Σερβικά (Κυριλλικά)](../sr/README.md) | [Κροατικά](../hr/README.md) | [Σλοβενικά](../sl/README.md) | [Ουκρανικά](../uk/README.md) | [Βιρμανικά (Μιανμάρ)](../my/README.md)
**Αν θέλετε να υποστηριχθούν επιπλέον γλώσσες, οι διαθέσιμες γλώσσες αναφέρονται [εδώ](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)**
#### 🧑‍🎓 _Είστε φοιτητής;_
#### 🧑‍🎓 _Είστε φοιτητής;_
Επισκεφθείτε τη [**Σελίδα Φοιτητών**](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) όπου θα βρείτε πόρους για αρχάριους, πακέτα για φοιτητές και ακόμη και τρόπους για να αποκτήσετε δωρεάν πιστοποιητικό. Αυτή είναι η σελίδα που πρέπει να προσθέσετε στους σελιδοδείκτες σας και να ελέγχετε τακτικά, καθώς το περιεχόμενο αλλάζει κάθε μήνα.
### 📣 Ανακοίνωση - _Νέο Έργο για Δημιουργία με Γενετική Τεχνητή Νοημοσύνη_
### 📣 Ανακοίνωση - _Νέο Έργο με Χρήση Γενετικής Τεχνητής Νοημοσύνης_
Προστέθηκε νέο έργο AI Assistant, δείτε το [έργο](./09-chat-project/README.md)
Μόλις προστέθηκε νέο έργο AI Assistant, δείτε το [έργο](./09-chat-project/README.md)
### 📣 Ανακοίνωση - _Νέο Πρόγραμμα Σπουδών_ για Γενετική Τεχνητή Νοημοσύνη με JavaScript
### 📣 Ανακοίνωση - _Νέο Πρόγραμμα Σπουδών_ για Γενετική Τεχνητή Νοημοσύνη με JavaScript
Μην χάσετε το νέο μας πρόγραμμα σπουδών για Γενετική Τεχνητή Νοημοσύνη!
Μην χάσετε το νέο πρόγραμμα σπουδών για Γενετική Τεχνητή Νοημοσύνη!
Επισκεφθείτε [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) για να ξεκινήσετε!
Επισκεφθείτε [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) για να ξεκινήσετε!
![Φόντο](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.el.png)
![Φόντο](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.el.png)
- Μαθήματα που καλύπτουν τα πάντα, από τα βασικά έως το RAG.
- Αλληλεπιδράστε με ιστορικές προσωπικότητες χρησιμοποιώντας το GenAI και την εφαρμογή συνοδείας μας.
- Διασκεδαστική και συναρπαστική αφήγηση, θα ταξιδέψετε στον χρόνο!
- Μαθήματα που καλύπτουν τα πάντα, από τα βασικά έως το RAG.
- Αλληλεπιδράστε με ιστορικές προσωπικότητες χρησιμοποιώντας GenAI και την εφαρμογή μας.
- Διασκεδαστική και ενδιαφέρουσα αφήγηση, θα ταξιδέψετε στον χρόνο!
![χαρακτήρας](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.el.png)
![Χαρακτήρας](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.el.png)
Κάθε μάθημα περιλαμβάνει μια εργασία για ολοκλήρωση, έναν έλεγχο γνώσεων και μια πρόκληση για να σας καθοδηγήσει σε θέματα όπως:
- Δημιουργία και βελτιστοποίηση προτροπών
- Δημιουργία εφαρμογών κειμένου και εικόνας
- Εφαρμογές αναζήτησης
Κάθε μάθημα περιλαμβάνει μια εργασία για ολοκλήρωση, έναν έλεγχο γνώσεων και μια πρόκληση για να σας καθοδηγήσει σε θέματα όπως:
- Δημιουργία και σχεδιασμός προτροπών
- Εφαρμογές δημιουργίας κειμένου και εικόνας
- Εφαρμογές αναζήτησης
Επισκεφθείτε [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).
#### Δημιουργήστε το αποθετήριό σας
Για να αποθηκεύσετε εύκολα τη δουλειά σας, συνιστάται να δημιουργήσετε το δικό σας αντίγραφο αυτού του αποθετηρίου. Μπορείτε να το κάνετε πατώντας το κουμπί **Use this template** στην κορυφή της σελίδας. Αυτό θα δημιουργήσει ένα νέο αποθετήριο στον λογαριασμό σας στο GitHub με ένα αντίγραφο του προγράμματος σπουδών.
#### Δημιουργήστε το αποθετήριό σας
Για να αποθηκεύσετε εύκολα τη δουλειά σας, συνιστάται να δημιουργήσετε ένα αντίγραφο αυτού του αποθετηρίου. Μπορείτε να το κάνετε πατώντας το κουμπί **Use this template** στην κορυφή της σελίδας. Αυτό θα δημιουργήσει ένα νέο αποθετήριο στον λογαριασμό σας στο GitHub με ένα αντίγραφο του προγράμματος σπουδών.
Ακολουθήστε αυτά τα βήματα:
1. **Κάντε Fork το Αποθετήριο**: Πατήστε το κουμπί "Fork" στην επάνω δεξιά γωνία αυτής της σελίδας.
2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
Ακολουθήστε αυτά τα βήματα:
1. **Κάντε Fork το Αποθετήριο**: Πατήστε το κουμπί "Fork" στην επάνω δεξιά γωνία αυτής της σελίδας.
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](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.el.png)
#### Εκτέλεση του προγράμματος σπουδών τοπικά στον υπολογιστή σας
#### Εκτέλεση του προγράμματος σπουδών τοπικά στον υπολογιστή σας
Για να εκτελέσετε αυτό το πρόγραμμα σπουδών τοπικά στον υπολογιστή σας, θα χρειαστείτε έναν επεξεργαστή κειμένου, ένα πρόγραμμα περιήγησης και ένα εργαλείο γραμμής εντολών. Το πρώτο μας μάθημα, [Εισαγωγή στις Γλώσσες Προγραμματισμού και τα Εργαλεία του Επαγγέλματος](../../1-getting-started-lessons/1-intro-to-programming-languages), θα σας καθοδηγήσει στις διάφορες επιλογές για καθένα από αυτά τα εργαλεία, ώστε να επιλέξετε αυτό που σας ταιριάζει καλύτερα.
Για να εκτελέσετε αυτό το πρόγραμμα σπουδών τοπικά στον υπολογιστή σας, θα χρειαστείτε έναν επεξεργαστή κειμένου, έναν περιηγητή και ένα εργαλείο γραμμής εντολών. Το πρώτο μας μάθημα, [Εισαγωγή στις Γλώσσες Προγραμματισμού και Εργαλεία](../../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).
Η πρότασή μας είναι να χρησιμοποιήσετε το [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. Κλωνοποιήστε το αποθετήριό σας στον υπολογιστή σας. Μπορείτε να το κάνετε πατώντας το κουμπί **Code** και αντιγράφοντας το URL:
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
git clone <your-repository-url>
```
```
2. Ανοίξτε τον φάκελο στο Visual Studio Code. Μπορείτε να το κάνετε πατώντας **File**.
> **Άνοιγμα Φακέλου** και επιλογή του φακέλου που μόλις κλωνοποιήσατε.
> Προτεινόμενες επεκτάσεις για το Visual Studio Code:
2. Ανοίξτε τον φάκελο στο Visual Studio Code. Μπορείτε να το κάνετε πατώντας **File** > **Open Folder** και επιλέγοντας τον φάκελο που μόλις κλωνοποιήσατε.
> Συνιστώμενες επεκτάσεις για το 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) - για να γράφετε κώδικα πιο γρήγορα
> * [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) - για να σας βοηθήσει να γράφετε κώδικα πιο γρήγορα
## 📂 Κάθε μάθημα περιλαμβάνει:
- προαιρετική σκίτσο-σημείωση
- προαιρετικό σκίτσο
- προαιρετικό συμπληρωματικό βίντεο
- κουίζ προθέρμανσης πριν το μάθημα
- γραπτό μάθημα
- για μαθήματα που βασίζονται σε έργα, βήμα-βήμα οδηγίες για την κατασκευή του έργου
- έλεγχος γνώσεων
- μία πρόκληση
- για μαθήματα που βασίζονται σε έργα, οδηγίες βήμα προς βήμα για την κατασκευή του έργου
- έλεγχοι γνώσεων
- μια πρόκληση
- συμπληρωματική ανάγνωση
- εργασία
- [κουίζ μετά το μάθημα](https://ff-quizzes.netlify.app/web/)
> **Σημείωση για τα κουίζ**: Όλα τα κουίζ βρίσκονται στον φάκελο Quiz-app, συνολικά 48 κουίζ με τρεις ερωτήσεις το καθένα. Είναι διαθέσιμα [εδώ](https://ff-quizzes.netlify.app/web/) και η εφαρμογή κουίζ μπορεί να εκτελεστεί τοπικά ή να αναπτυχθεί στο Azure. Ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`.
## 🗃️ Μαθήματα
| | Όνομα Έργου | Διδασκόμενες Έννοιες | Μαθησιακοί Στόχοι | Συνδεδεμένο Μάθημα | Συγγραφέας |
| | Όνομα Έργου | Διδασκόμενες Έννοιες | Στόχοι Μάθησης | Συνδεδεμένο Μάθημα | Συγγραφέας |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 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 |
| 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 |
| 03 | Ξεκινώντας | Προσβασιμότητα | Μάθετε τα βασικά της προσβασιμότητας στον ιστό | [Βασικές Αρχές Προσβασιμότητας](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 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 |
| 04 | Βασικά JS | Τύποι Δεδομένων JavaScript | Τα βασικά των τύπων δεδομένων JavaScript | [Τύποι Δεδομένων](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Βασικά JS | Συναρτήσεις και Μέθοδοι | Μάθετε για τις συναρτήσεις και τις μεθόδους για τη διαχείριση της λογικής ροής μιας εφαρμογής | [Συναρτήσεις και Μέθοδοι](./2-js-basics/2-functions-methods/README.md) | Jasmine και Christopher |
| 06 | Βασικά JS | Λήψη Αποφάσεων με JS | Μάθετε πώς να δημιουργείτε συνθήκες στον κώδικά σας χρησιμοποιώντας μεθόδους λήψης αποφάσεων | [Λήψη Αποφάσεων](./2-js-basics/3-making-decisions/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 |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS στην Πράξη | Δημιουργήστε το CSS για να στυλιζάρετε το online terrarium, εστιάζοντας στα βασικά του CSS, συμπεριλαμβανομένης της προσαρμογής της σελίδας | [Εισαγωγή στο CSS](./3-terrarium/2-intro-to-css/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 | [Typing Game](./4-typing-game/solution/README.md) | Δημιουργία Παιχνιδιού Πληκτρολόγησης | Μάθετε πώς να χρησιμοποιείτε γεγονότα πληκτρολογίου για να καθοδηγήσετε τη λογική της εφαρμογής σας | [Προγραμματισμός με Γεγονότα](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Εργασία με Περιηγητές | Μάθετε πώς λειτουργούν οι περιηγητές, την ιστορία τους, και πώς να δημιουργήσετε τα πρώτα στοιχεία μιας επέκτασης περιηγητή | [Σχετικά με τους Περιηγητές](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Δημιουργία φόρμας, κλήση API και αποθήκευση μεταβλητών σε τοπική αποθήκευση | Δημιουργήστε τα στοιχεία JavaScript της επέκτασης περιηγητή σας για να καλέσετε ένα API χρησιμοποιώντας μεταβλητές αποθηκευμένες σε τοπική αποθήκευση | [APIs, Φόρμες και Τοπική Αποθήκευση](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Διεργασίες στο παρασκήνιο του περιηγητή, απόδοση ιστού | Χρησιμοποιήστε τις διεργασίες παρασκηνίου του περιηγητή για να διαχειριστείτε το εικονίδιο της επέκτασης. Μάθετε για την απόδοση ιστού και κάποιες βελτιστοποιήσεις | [Διεργασίες Παρασκηνίου και Απόδοση](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Πιο Προχωρημένη Ανάπτυξη Παιχνιδιών με JavaScript | Μάθετε για την Κληρονομικότητα χρησιμοποιώντας τόσο Κλάσεις όσο και Σύνθεση και το μοτίβο Pub/Sub, ως προετοιμασία για τη δημιουργία παιχνιδιού | [Εισαγωγή στην Προχωρημένη Ανάπτυξη Παιχνιδιών](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Σχεδίαση σε καμβά | Μάθετε για το Canvas API, που χρησιμοποιείται για τη σχεδίαση στοιχείων στην οθόνη | [Σχεδίαση σε Καμβά](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Μετακίνηση στοιχείων στην οθόνη | Ανακαλύψτε πώς τα στοιχεία μπορούν να αποκτήσουν κίνηση χρησιμοποιώντας τις καρτεσιανές συντεταγμένες και το Canvas API | [Μετακίνηση Στοιχείων](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Ανίχνευση συγκρούσεων | Κάντε τα στοιχεία να συγκρούονται και να αντιδρούν μεταξύ τους χρησιμοποιώντας πατήματα πλήκτρων και παρέχετε μια λειτουργία ψύξης για την απόδοση του παιχνιδιού | [Ανίχνευση Συγκρούσεων](./6-space-game/4-collision-detection/README.md) | Chris |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS στην Πράξη | Δημιουργήστε το CSS για να στυλιζάρετε το online terrarium, εστιάζοντας στα βασικά του CSS, συμπεριλαμβανομένου του να κάνετε τη σελίδα responsive | [Εισαγωγή στο CSS](./3-terrarium/2-intro-to-css/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 | [Typing Game](./4-typing-game/solution/README.md) | Δημιουργία Παιχνιδιού Πληκτρολόγησης | Μάθετε πώς να χρησιμοποιείτε συμβάντα πληκτρολογίου για να καθοδηγήσετε τη λογική της εφαρμογής JavaScript | [Προγραμματισμός με Βάση Συμβάντα](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Εργασία με Περιηγητές | Μάθετε πώς λειτουργούν οι περιηγητές, την ιστορία τους και πώς να δημιουργήσετε τα πρώτα στοιχεία μιας επέκτασης περιηγητή | [Σχετικά με τους Περιηγητές](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Δημιουργία φόρμας, κλήση API και αποθήκευση μεταβλητών σε τοπική αποθήκευση | Δημιουργήστε τα στοιχεία JavaScript της επέκτασης περιηγητή σας για να καλέσετε ένα API χρησιμοποιώντας μεταβλητές που αποθηκεύονται σε τοπική αποθήκευση | [APIs, Φόρμες και Τοπική Αποθήκευση](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Διεργασίες παρασκηνίου στον περιηγητή, απόδοση ιστού | Χρησιμοποιήστε τις διεργασίες παρασκηνίου του περιηγητή για να διαχειριστείτε το εικονίδιο της επέκτασης. Μάθετε για την απόδοση ιστού και κάποιες βελτιστοποιήσεις | [Διεργασίες Παρασκηνίου και Απόδοση](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Πιο Προχωρημένη Ανάπτυξη Παιχνιδιών με JavaScript | Μάθετε για την Κληρονομικότητα χρησιμοποιώντας τόσο Κλάσεις όσο και Σύνθεση και το μοτίβο Pub/Sub, ως προετοιμασία για τη δημιουργία ενός παιχνιδιού | [Εισαγωγή στην Προχωρημένη Ανάπτυξη Παιχνιδιών](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Σχεδίαση σε καμβά | Μάθετε για το API του Καμβά, που χρησιμοποιείται για να σχεδιάσετε στοιχεία στην οθόνη | [Σχεδίαση σε Καμβά](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Μετακίνηση στοιχείων στην οθόνη | Ανακαλύψτε πώς τα στοιχεία μπορούν να αποκτήσουν κίνηση χρησιμοποιώντας τις καρτεσιανές συντεταγμένες και το API του Καμβά | [Μετακίνηση Στοιχείων](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Ανίχνευση σύγκρουσης | Κάντε τα στοιχεία να συγκρούονται και να αντιδρούν μεταξύ τους χρησιμοποιώντας πατήματα πλήκτρων και παρέχετε μια λειτουργία ψύξης για να εξασφαλίσετε την απόδοση του παιχνιδιού | [Ανίχνευση Σύγκρουσης](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Καταγραφή σκορ | Εκτελέστε μαθηματικούς υπολογισμούς με βάση την κατάσταση και την απόδοση του παιχνιδιού | [Καταγραφή Σκορ](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Τερματισμός και επανεκκίνηση παιχνιδιού | Μάθετε για τον τερματισμό και την επανεκκίνηση του παιχνιδιού, συμπεριλαμβανομένου του καθαρισμού πόρων και της επαναφοράς τιμών μεταβλητών | [Συνθήκη Τερματισμού](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | Πρότυπα HTML και Διαδρομές σε μια Εφαρμογή Ιστού | Μάθετε πώς να δημιουργείτε τη δομή της αρχιτεκτονικής μιας ιστοσελίδας πολλαπλών σελίδων χρησιμοποιώντας διαδρομές και πρότυπα HTML | [Πρότυπα HTML και Διαδρομές](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Δημιουργία Φόρμας Εισόδου και Εγγραφής | Μάθετε για τη δημιουργία φορμών και τη διαχείριση ρουτινών επικύρωσης | [Φόρμες](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Μέθοδοι Ανάκτησης και Χρήσης Δεδομένων | Πώς τα δεδομένα ρέουν μέσα και έξω από την εφαρμογή σας, πώς να τα ανακτάτε, να τα αποθηκεύετε και να τα διαχειρίζεστε | [Δεδομένα](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Έννοιες Διαχείρισης Κατάστασης | Μάθετε πώς η εφαρμογή σας διατηρεί την κατάσταση και πώς να τη διαχειρίζεστε προγραμματιστικά | [Διαχείριση Κατάστασης](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Εργασία με το VScode | Μάθετε πώς να χρησιμοποιείτε έναν επεξεργαστή κώδικα | [Χρήση του VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Τερματισμός και επανεκκίνηση του παιχνιδιού | Μάθετε για τον τερματισμό και την επανεκκίνηση του παιχνιδιού, συμπεριλαμβανομένου του καθαρισμού των πόρων και της επαναφοράς των τιμών μεταβλητών | [Συνθήκη Τερματισμού](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | Πρότυπα HTML και Διαδρομές σε μια Εφαρμογή Ιστού | Μάθετε πώς να δημιουργείτε τη δομή της αρχιτεκτονικής μιας ιστοσελίδας πολλαπλών σελίδων χρησιμοποιώντας δρομολόγηση και πρότυπα HTML | [Πρότυπα HTML και Διαδρομές](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Δημιουργία Φόρμας Εισόδου και Εγγραφής | Μάθετε για τη δημιουργία φορμών και τη διαχείριση διαδικασιών επικύρωσης | [Φόρμες](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Μέθοδοι Ανάκτησης και Χρήσης Δεδομένων | Πώς τα δεδομένα ρέουν μέσα και έξω από την εφαρμογή σας, πώς να τα ανακτήσετε, να τα αποθηκεύσετε και να τα διαχειριστείτε | [Δεδομένα](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Έννοιες Διαχείρισης Κατάστασης | Μάθετε πώς η εφαρμογή σας διατηρεί κατάσταση και πώς να τη διαχειριστείτε προγραμματιστικά | [Διαχείριση Κατάστασης](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Εργασία με VScode | Μάθετε πώς να χρησιμοποιείτε έναν επεξεργαστή κώδικα | [Χρήση του 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](./9-chat-project/README.md) | Chris |
## 🏫 Παιδαγωγική
Το πρόγραμμα σπουδών μας έχει σχεδιαστεί με δύο βασικές παιδαγωγικές αρχές:
* μάθηση μέσω έργων
* μάθηση με βάση έργα
* συχνά κουίζ
Το πρόγραμμα διδάσκει τα βασικά της JavaScript, HTML και CSS, καθώς και τα πιο σύγχρονα εργαλεία και τεχνικές που χρησιμοποιούν οι σημερινοί προγραμματιστές ιστού. Οι μαθητές θα έχουν την ευκαιρία να αποκτήσουν πρακτική εμπειρία δημιουργώντας ένα παιχνίδι πληκτρολόγησης, ένα εικονικό terrarium, μια φιλική προς το περιβάλλον επέκταση περιηγητή, ένα παιχνίδι τύπου space-invader και μια τραπεζική εφαρμογή για επιχειρήσεις. Μέχρι το τέλος της σειράς, οι μαθητές θα έχουν αποκτήσει μια σταθερή κατανόηση της ανάπτυξης ιστού.
Το πρόγραμμα διδάσκει τα βασικά της 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 για να εισαγάγουμε έννοιες, συνοδευόμενα από ένα βίντεο από τη συλλογή "[Σειρά για Αρχάριους: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", μερικοί από τους συγγραφείς της οποίας συνέβαλαν σε αυτό το πρόγραμμα σπουδών.
Με την εξασφάλιση ότι το περιεχόμενο ευθυγραμμίζεται με τα έργα, η διαδικασία γίνεται πιο ενδιαφέρουσα για τους μαθητές και η διατήρηση των εννοιών ενισχύεται. Γράψαμε επίσης αρκετά εισαγωγικά μαθήματα στα βασικά της JavaScript για την εισαγωγή εννοιών, συνοδευόμενα από ένα βίντεο από τη συλλογή "[Σειρά για Αρχάριους: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" βίντεο-μαθημάτων, μερικοί από τους συγγραφείς των οποίων συνέβαλαν σε αυτό το πρόγραμμα σπουδών.
Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν από το μάθημα θέτει την πρόθεση του μαθητή προς την εκμάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά το μάθημα εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σπουδών σχεδιάστηκε για να είναι ευέλικτο και διασκεδαστικό και μπορεί να παρακολουθηθεί ολόκληρο ή εν μέρει. Τα έργα ξεκινούν μικρά και γίνονται όλο και πιο περίπλοκα μέχρι το τέλος του 12-εβδομάδων κύκλου.
Επιπλέον, ένα κουίζ χαμηλού κινδύνου πριν από την τάξη θέτει την πρόθεση του μαθητή προς την εκμάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά την τάξη εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σπουδών σχεδιάστηκε για να είναι ευέλικτο και διασκεδαστικό και μπορεί να παρακολουθηθεί ολόκληρο ή εν μέρει. Τα έργα ξεκινούν μικρά και γίνονται ολοένα και πιο περίπλοκα μέχρι το τέλος του 12-εβδομαδιαίου κύκλου.
Ενώ αποφύγαμε σκόπιμα την εισαγωγή πλαισίων JavaScript για να επικεντρωθούμε στις βασικές δεξιότητες που χρειάζονται ως προγραμματιστής ιστού πριν από την υιοθέτηση ενός πλαισίου, ένα καλό επόμενο βήμα μετά την ολοκλήρωση αυτού του προγράμματος σπουδών θα ήταν η εκμάθηση του Node.js μέσω μιας άλλης συλλογής βίντεο: "[Σειρά για Αρχάριους: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
Ενώ έχουμε σκοπίμως αποφύγει την εισαγωγή πλαισίων JavaScript για να επικεντρωθούμε στις βασικές δεξιότητες που χρειάζονται ως προγραμματιστής ιστού πριν από την υιοθέτηση ενός πλαισίου, ένα καλό επόμενο βήμα για την ολοκλήρωση αυτού του προγράμματος σπουδών θα ήταν η εκμάθηση του Node.js μέσω μιας άλλης συλλογής βίντεο: "[Σειρά για Αρχάριους: 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/#/). Κλωνοποιήστε αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό σας υπολογιστή και στη συνέχεια, στον ριζικό φάκελο αυτού του αποθετηρίου, πληκτρολογήστε `docsify serve`. Ο ιστότοπος θα εξυπηρετηθεί στη θύρα 3000 στον τοπικό σας διακομιστή: `localhost
- [Επιστήμη Δεδομένων για Αρχάριους](https://aka.ms/datascience-beginners)
- [Μηχανική Μάθηση για Αρχάριους](https://aka.ms/ml-beginners)
- [Κυβερνοασφάλεια για Αρχάριους](https://github.com/microsoft/Security-101)
- [Ανάπτυξη Ιστού για Αρχάριους](https://aka.ms/webdev-beginners)
- [IoT για Αρχάριους](https://aka.ms/iot-beginners)
- [Ανάπτυξη XR για Αρχάριους](https://github.com/microsoft/xr-development-for-beginners)
- [Κατανόηση του GitHub Copilot για Χρήση με Πρακτορικό Στυλ](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Κατανόηση του GitHub Copilot για Προγραμματιστές C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Επιλέξτε τη Δική σας Περιπέτεια με το Copilot](https://github.com/microsoft/CopilotAdventures)
Μπορείτε να εκτελέσετε αυτήν την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork αυτό το repo, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό σας υπολογιστή και στη συνέχεια, στον ριζικό φάκελο αυτού του repo, πληκτρολογήστε `docsify serve`. Ο ιστότοπος θα εξυπηρετείται στην θύρα 3000 του localhost σας: `localhost:3000`.
## 📘 PDF
Ένα PDF με όλα τα μαθήματα μπορείτε να βρείτε [εδώ](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Άλλα Μαθήματα
Η ομάδα μας παράγει και άλλα μαθήματα! Δείτε:
- [Generative AI για Αρχάριους](https://aka.ms/genai-beginners)
- [Generative AI για Αρχάριους .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generative AI με JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [Generative AI με Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI για Αρχάριους](https://aka.ms/ai-beginners)
- [Επιστήμη Δεδομένων για Αρχάριους](https://aka.ms/datascience-beginners)
- [ML για Αρχάριους](https://aka.ms/ml-beginners)
- [Κυβερνοασφάλεια για Αρχάριους](https://github.com/microsoft/Security-101)
- [
- [Επιλέξτε τη δική σας περιπέτεια με το Copilot](https://github.com/microsoft/CopilotAdventures)
## Λήψη Βοήθειας
Αν κολλήσετε ή έχετε ερωτήσεις σχετικά με την ανάπτυξη εφαρμογών AI, συμμετάσχετε:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
Αν έχετε σχόλια για το προϊόν ή αντιμετωπίζετε σφάλματα κατά την ανάπτυξη, επισκεφθείτε:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_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) για περισσότερες πληροφορίες.
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,47 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-26T21:24:13+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T09:45:08+00:00",
"source_file": "for-teachers.md",
"language_code": "el"
}
-->
## Για Εκπαιδευτικούς
### Για Εκπαιδευτικούς
Θέλετε να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών στην τάξη σας; Μη διστάσετε να το κάνετε!
Είστε ευπρόσδεκτοι να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών στην τάξη σας. Λειτουργεί άψογα με το GitHub Classroom και κορυφαίες πλατφόρμες LMS, ενώ μπορεί επίσης να χρησιμοποιηθεί ως ανεξάρτητο αποθετήριο με τους μαθητές σας.
Στην πραγματικότητα, μπορείτε να το χρησιμοποιήσετε απευθείας στο GitHub μέσω του GitHub Classroom.
### Χρήση με το GitHub Classroom
Για να το κάνετε αυτό, κάντε fork αυτό το αποθετήριο. Θα χρειαστεί να δημιουργήσετε ένα αποθετήριο για κάθε μάθημα, οπότε θα πρέπει να εξαγάγετε κάθε φάκελο σε ξεχωριστό αποθετήριο. Με αυτόν τον τρόπο, το [GitHub Classroom](https://classroom.github.com/classrooms) μπορεί να αναγνωρίσει κάθε μάθημα ξεχωριστά.
Για να διαχειριστείτε μαθήματα και εργασίες ανά ομάδα, δημιουργήστε ένα αποθετήριο ανά μάθημα ώστε το GitHub Classroom να μπορεί να συνδέσει κάθε εργασία ανεξάρτητα.
Αυτές οι [πλήρεις οδηγίες](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) θα σας δώσουν μια ιδέα για το πώς να οργανώσετε την τάξη σας.
- Κάντε fork αυτό το αποθετήριο στον οργανισμό σας.
- Δημιουργήστε ξεχωριστό αποθετήριο για κάθε μάθημα εξάγοντας κάθε φάκελο μαθήματος σε δικό του αποθετήριο.
- Επιλογή Α: Δημιουργήστε κενά αποθετήρια (ένα για κάθε μάθημα) και αντιγράψτε τα περιεχόμενα του φακέλου μαθήματος σε καθένα.
- Επιλογή Β: Χρησιμοποιήστε μια μέθοδο που διατηρεί το ιστορικό του Git (π.χ., διαχωρισμός φακέλου σε νέο αποθετήριο) αν χρειάζεστε προέλευση.
- Στο GitHub Classroom, δημιουργήστε μια εργασία ανά μάθημα και συνδέστε την με το αντίστοιχο αποθετήριο μαθήματος.
- Συνιστώμενες ρυθμίσεις:
- Ορατότητα αποθετηρίου: ιδιωτική για τη δουλειά των μαθητών.
- Χρησιμοποιήστε αρχικό κώδικα από το προεπιλεγμένο branch του αποθετηρίου μαθήματος.
- Προσθέστε πρότυπα για θέματα και pull requests για κουίζ και υποβολές.
- Προαιρετικά, ρυθμίστε αυτόματη βαθμολόγηση και τεστ αν τα μαθήματά σας τα περιλαμβάνουν.
- Συμβάσεις που βοηθούν:
- Ονόματα αποθετηρίων όπως lesson-01-intro, lesson-02-html, κ.λπ.
- Ετικέτες: quiz, assignment, needs-review, late, resubmission.
- Tags/releases ανά ομάδα (π.χ., v2025-term1).
## Χρήση σε Moodle, Canvas ή Blackboard
Συμβουλή: Αποφύγετε την αποθήκευση αποθετηρίων μέσα σε συγχρονισμένους φακέλους (π.χ., OneDrive/Google Drive) για να αποτρέψετε συγκρούσεις Git στα Windows.
Αυτό το πρόγραμμα σπουδών λειτουργεί καλά σε αυτά τα Συστήματα Διαχείρισης Μάθησης! Χρησιμοποιήστε το [αρχείο μεταφόρτωσης Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) για το πλήρες περιεχόμενο ή δοκιμάστε το [αρχείο Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc), το οποίο περιέχει μέρος του περιεχομένου. Το Moodle Cloud δεν υποστηρίζει πλήρεις εξαγωγές Common Cartridge, οπότε είναι προτιμότερο να χρησιμοποιήσετε το αρχείο λήψης Moodle, το οποίο μπορεί να μεταφορτωθεί στο Canvas. Ενημερώστε μας πώς μπορούμε να βελτιώσουμε αυτήν την εμπειρία.
### Χρήση με Moodle, Canvas ή Blackboard
Αυτό το πρόγραμμα σπουδών περιλαμβάνει πακέτα εισαγωγής για κοινές ροές εργασίας LMS.
- Moodle: Χρησιμοποιήστε το αρχείο μεταφόρτωσης Moodle [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) για να φορτώσετε ολόκληρο το μάθημα.
- Common Cartridge: Χρησιμοποιήστε το αρχείο Common Cartridge [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) για ευρύτερη συμβατότητα LMS.
- Σημειώσεις:
- Το Moodle Cloud έχει περιορισμένη υποστήριξη Common Cartridge. Προτιμήστε το αρχείο Moodle παραπάνω, το οποίο μπορεί επίσης να μεταφορτωθεί στο Canvas.
- Μετά την εισαγωγή, ελέγξτε τα modules, τις ημερομηνίες λήξης και τις ρυθμίσεις κουίζ ώστε να ταιριάζουν με το πρόγραμμα του εξαμήνου σας.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.el.png)
> Το πρόγραμμα σπουδών σε τάξη Moodle
> Το πρόγραμμα σπουδών σε μια τάξη Moodle
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.el.png)
> Το πρόγραμμα σπουδών στο Canvas
## Χρήση του αποθετηρίου όπως είναι
### Χρήση του αποθετηρίου απευθείας (χωρίς Classroom)
Αν θέλετε να χρησιμοποιήσετε αυτό το αποθετήριο όπως είναι, χωρίς τη χρήση του GitHub Classroom, αυτό είναι επίσης εφικτό. Θα χρειαστεί να επικοινωνήσετε με τους μαθητές σας για να τους ενημερώσετε ποιο μάθημα να δουλέψουν μαζί.
Αν προτιμάτε να μην χρησιμοποιήσετε το GitHub Classroom, μπορείτε να τρέξετε το μάθημα απευθείας από αυτό το αποθετήριο.
Σε μια διαδικτυακή μορφή (Zoom, Teams ή άλλο), μπορείτε να δημιουργήσετε ομάδες εργασίας για τα κουίζ και να καθοδηγήσετε τους μαθητές ώστε να είναι έτοιμοι να μάθουν. Στη συνέχεια, προσκαλέστε τους μαθητές στα κουίζ και ζητήστε τους να υποβάλουν τις απαντήσεις τους ως 'issues' σε συγκεκριμένη χρονική στιγμή. Μπορείτε να κάνετε το ίδιο και με τις εργασίες, αν θέλετε οι μαθητές να δουλέψουν συνεργατικά σε δημόσιο περιβάλλον.
- Συγχρονισμένες/διαδικτυακές μορφές (Zoom/Teams):
- Διεξάγετε σύντομες εισαγωγές με καθοδήγηση από μέντορα· χρησιμοποιήστε breakout rooms για κουίζ.
- Ανακοινώστε ένα χρονικό παράθυρο για κουίζ· οι μαθητές υποβάλλουν απαντήσεις ως GitHub Issues.
- Για συνεργατικές εργασίες, οι μαθητές δουλεύουν σε δημόσια αποθετήρια μαθημάτων και ανοίγουν pull requests.
- Ιδιωτικές/ασύγχρονες μορφές:
- Οι μαθητές κάνουν fork κάθε μάθημα στα δικά τους **ιδιωτικά** αποθετήρια και σας προσθέτουν ως συνεργάτη.
- Υποβάλλουν μέσω Issues (κουίζ) και Pull Requests (εργασίες) στο αποθετήριο της τάξης σας ή στα ιδιωτικά τους forks.
Αν προτιμάτε μια πιο ιδιωτική μορφή, ζητήστε από τους μαθητές σας να κάνουν fork το πρόγραμμα σπουδών, μάθημα προς μάθημα, στα δικά τους ιδιωτικά αποθετήρια GitHub και να σας δώσουν πρόσβαση. Έπειτα, μπορούν να ολοκληρώσουν τα κουίζ και τις εργασίες ιδιωτικά και να σας τα υποβάλουν μέσω issues στο αποθετήριο της τάξης σας.
### Καλές πρακτικές
Υπάρχουν πολλοί τρόποι να κάνετε αυτό να λειτουργήσει σε μια διαδικτυακή τάξη. Ενημερώστε μας τι λειτουργεί καλύτερα για εσάς!
- Παρέχετε ένα εισαγωγικό μάθημα για βασικά του Git/GitHub, Issues και PRs.
- Χρησιμοποιήστε λίστες ελέγχου στα Issues για κουίζ/εργασίες πολλών βημάτων.
- Προσθέστε CONTRIBUTING.md και CODE_OF_CONDUCT.md για να ορίσετε κανόνες της τάξης.
- Προσθέστε σημειώσεις προσβασιμότητας (alt text, λεζάντες) και προσφέρετε εκτυπώσιμα PDFs.
- Δημιουργήστε εκδόσεις του περιεχομένου σας ανά εξάμηνο και "παγώστε" τα αποθετήρια μαθημάτων μετά τη δημοσίευση.
## Παρακαλούμε δώστε μας τη γνώμη σας!
### Ανατροφοδότηση και υποστήριξη
Θέλουμε να κάνουμε αυτό το πρόγραμμα σπουδών να λειτουργεί για εσάς και τους μαθητές σας. Συνδεθείτε μαζί μας στη [Γωνιά Εκπαιδευτικών](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) και ανοίξτε ένα [**νέο θέμα**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) για οποιαδήποτε αιτήματα, σφάλματα και σχόλια.
Θέλουμε αυτό το πρόγραμμα σπουδών να λειτουργεί για εσάς και τους μαθητές σας. Ανοίξτε ένα νέο Issue σε αυτό το αποθετήριο για σφάλματα, αιτήματα ή βελτιώσεις, ή ξεκινήστε μια συζήτηση στο Teacher Corner.
---
**Αποποίηση Ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

@ -1,15 +1,15 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T13:27:32+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T08:21:58+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "en"
}
-->
# Introduction to Programming Languages and Tools of the Trade
This lesson introduces the fundamentals of programming languages. The topics discussed here are relevant to most modern programming languages. In the 'Tools of the Trade' section, you'll explore software that can assist you as a developer.
This lesson introduces the fundamentals of programming languages. The topics discussed here are relevant to most modern programming languages today. In the 'Tools of the Trade' section, you'll explore software that can assist you as a developer.
![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.en.png)
> Sketchnote by [Tomomi Imura](https://twitter.com/girlie_mac)
@ -19,30 +19,30 @@ This lesson introduces the fundamentals of programming languages. The topics dis
## Introduction
In this lesson, you'll learn about:
In this lesson, we will cover:
- What programming is
- Different types of programming languages
- Types of programming languages
- Basic components of a program
- Software and tools that are useful for professional developers
- Useful software and tools for professional developers
> You can access this lesson on [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
> You can take this lesson on [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
## What is Programming?
Programming, often called coding, is the act of writing instructions for devices like computers or mobile phones. These instructions are written using a programming language, which the device interprets. These instructions can be referred to by various names, such as *program*, *computer program*, *application (app)*, or *executable*.
Programming (also called coding) is the process of writing instructions for a device, such as a computer or mobile device. These instructions are written using a programming language, which the device interprets. These sets of instructions may be referred to by various names, such as *program*, *computer program*, *application (app)*, or *executable*.
A *program* is essentially anything created using code—websites, games, and mobile apps are all examples of programs. While some programs can be created without directly writing code, the underlying logic is still interpreted by the device, and that logic is typically written in code. A program that is *running* or *executing* is actively performing the instructions it contains. The device you're using to read this lesson is running a program to display it on your screen.
A *program* can be anything created with code—websites, games, and phone apps are all programs. While it's possible to create a program without writing code, the underlying logic is interpreted by the device, and that logic is most likely written in code. A program that is *running* or *executing* code is carrying out instructions. The device you're using to read this lesson is running a program to display it on your screen.
✅ Research task: Who is considered the world's first computer programmer?
## Programming Languages
Programming languages allow developers to write instructions for devices. Since devices only understand binary (1s and 0s), programming languages serve as a more efficient way for humans to communicate with computers.
Programming languages allow developers to write instructions for a device. Devices only understand binary (1s and 0s), which is not an efficient way for *most* developers to communicate. Programming languages act as a bridge between humans and computers.
Programming languages come in various formats and are designed for different purposes. For instance, JavaScript is primarily used for web applications, while Bash is mainly used for operating systems.
Programming languages come in various formats and serve different purposes. For instance, JavaScript is primarily used for web applications, while Bash is mainly used for operating systems.
*Low-level languages* require fewer steps for a device to interpret instructions compared to *high-level languages*. However, high-level languages are popular because they are easier to read and have better support. JavaScript is an example of a high-level language.
*Low-level languages* typically require fewer steps for a device to interpret instructions compared to *high-level languages*. However, high-level languages are popular due to their readability and support. JavaScript is considered a high-level language.
The following code demonstrates the difference between a high-level language (JavaScript) and a low-level language (ARM assembly code).
@ -83,17 +83,17 @@ back add r0,r1
end
```
Believe it or not, *both codes perform the same task*: printing a Fibonacci sequence up to 10.
Believe it or not, *both are doing the same thing*: printing a Fibonacci sequence up to 10.
✅ A Fibonacci sequence is [defined](https://en.wikipedia.org/wiki/Fibonacci_number) as a series of numbers where each number is the sum of the two preceding ones, starting from 0 and 1. The first 10 numbers in the Fibonacci sequence are 0, 1, 1, 2, 3, 5, 8, 13, 21, and 34.
## Elements of a Program
A single instruction in a program is called a *statement*. Statements usually have a specific character or spacing that marks where the instruction ends, or *terminates*. The way a program terminates depends on the programming language.
A single instruction in a program is called a *statement*. Statements usually have a character or line spacing that marks where the instruction ends, or *terminates*. The way a program terminates varies by language.
Statements in a program often rely on data provided by a user or other sources to execute instructions. Since data can influence how a program behaves, programming languages include ways to temporarily store data for later use. These are called *variables*. Variables are instructions that tell a device to save data in its memory. In programming, variables are similar to those in algebra—they have unique names and their values can change over time.
Statements in a program may depend on data provided by a user or other sources to execute instructions. Data can influence how a program behaves, so programming languages include ways to temporarily store data for later use. These are called *variables*. Variables are statements that instruct a device to save data in its memory. Variables in programs are similar to variables in algebra, where they have a unique name and their value can change over time.
Not all statements in a program will necessarily be executed. This can happen intentionally, as designed by the developer, or accidentally due to unexpected errors. Controlling how a program runs makes it more robust and easier to maintain. Typically, these changes in control occur when certain conditions are met. A common statement used in modern programming to manage program flow is the `if..else` statement.
Some statements may not be executed by a device. This can happen intentionally, as designed by the developer, or accidentally due to unexpected errors. This type of control over an application makes it more robust and maintainable. Typically, these changes in control occur when certain conditions are met. A common statement used in modern programming to control program flow is the `if..else` statement.
✅ You'll learn more about this type of statement in future lessons.
@ -101,22 +101,22 @@ Not all statements in a program will necessarily be executed. This can happen in
[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade")
> 🎥 Click the image above to watch a video about development tools.
> 🎥 Click the image above to watch a video about tooling
In this section, you'll explore software that can be helpful as you begin your journey as a professional developer.
In this section, you'll explore software that can be very useful as you begin your journey as a professional developer.
A **development environment** is a personalized set of tools and features that developers use frequently when writing software. These tools are often tailored to meet a developer's specific needs and may evolve over time as priorities shift, personal projects change, or new programming languages are adopted. Development environments are as unique as the developers who use them.
A **development environment** is a unique set of tools and features that developers frequently use when writing software. These tools may be customized to meet a developer's specific needs and can evolve over time as priorities shift, personal projects change, or different programming languages are used. Development environments are as unique as the developers who use them.
### Editors
One of the most essential tools for software development is the editor. Editors are where developers write and sometimes run their code.
One of the most essential tools for software development is the editor. Editors are where you write your code and sometimes where you run it.
Editors are valuable for several reasons:
Developers rely on editors for several reasons:
- *Debugging* helps identify bugs and errors by allowing developers to step through their code line by line. Some editors include debugging features that can be customized for specific programming languages.
- *Syntax highlighting* uses colors and text formatting to make code easier to read. Most editors allow developers to customize syntax highlighting.
- *Extensions and integrations* are additional tools created by developers for developers. These tools are not part of the base editor. For example, developers often document their code to explain how it works. A spell-check extension can help identify typos in the documentation. Most extensions are designed for specific editors, and editors typically include a way to search for available extensions.
- *Customization* allows developers to create a unique development environment tailored to their needs. Most editors are highly customizable and may even allow developers to create their own extensions.
- *Debugging* helps identify bugs and errors by stepping through the code line by line. Some editors have built-in debugging capabilities, which can be customized for specific programming languages.
- *Syntax highlighting* adds colors and text formatting to code, making it easier to read. Most editors allow syntax highlighting customization.
- *Extensions and Integrations* are specialized tools created by developers for developers. These tools are not part of the base editor. For example, many developers document their code to explain how it works. They might install a spell-check extension to catch typos in the documentation. Most extensions are designed for specific editors, and most editors include a way to search for available extensions.
- *Customization* allows developers to tailor their development environment to their needs. Most editors are highly customizable and may even allow developers to create custom extensions.
#### Popular Editors and Web Development Extensions
@ -128,6 +128,7 @@ Editors are valuable for several reasons:
- [spell-check](https://atom.io/packages/spell-check)
- [teletype](https://atom.io/packages/teletype)
- [atom-beautify](https://atom.io/packages/atom-beautify)
- [Sublimetext](https://www.sublimetext.com/)
- [emmet](https://emmet.io/)
- [SublimeLinter](http://www.sublimelinter.com/en/stable/)
@ -136,7 +137,7 @@ Editors are valuable for several reasons:
Another essential tool is the browser. Web developers use browsers to test how their code runs on the web. Browsers also display the visual elements of a web page written in the editor, such as HTML.
Many browsers include *developer tools* (DevTools), which provide features and information to help developers gather and analyze important details about their applications. For example, if a web page encounters errors, DevTools can be configured to capture information about when and why the errors occurred.
Many browsers include *developer tools* (DevTools), which offer features and information to help developers gather and analyze important details about their applications. For example, if a web page has errors, DevTools can be configured to capture information about when the errors occurred.
#### Popular Browsers and DevTools
@ -146,7 +147,7 @@ Many browsers include *developer tools* (DevTools), which provide features and i
### Command Line Tools
Some developers prefer a less graphical interface for their daily tasks and rely on the command line. Writing code involves a lot of typing, and some developers prefer not to interrupt their workflow by switching between the keyboard and mouse. Using keyboard shortcuts, they can navigate between windows, work on different files, and use tools efficiently. While most tasks can be completed with a mouse, the command line allows developers to perform many actions without switching between input devices. Additionally, command line tools are highly configurable, enabling developers to save custom configurations, modify them later, and transfer them to other machines. Since development environments are highly personal, some developers avoid the command line, others rely on it entirely, and some use a mix of both.
Some developers prefer a less graphical interface for their daily tasks and rely on the command line. Writing code involves a lot of typing, and some developers prefer not to disrupt their workflow by switching between the keyboard and mouse. They use keyboard shortcuts to navigate between desktop windows, work on different files, and use tools. While most tasks can be completed with a mouse, the command line allows developers to perform many tasks without switching between the mouse and keyboard. Another advantage of the command line is its configurability—you can save custom configurations, modify them later, and import them to other development machines. Since development environments are highly personalized, some developers avoid the command line, others rely on it entirely, and some prefer a mix of both.
### Popular Command Line Options
@ -160,7 +161,7 @@ Command line options vary depending on the operating system.
- [Command Line](https://docs.microsoft.com/windows-server/administration/windows-commands/windows-commands/?WT.mc_id=academic-77807-sagibbon) (also known as CMD) 💻
- [Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)
- [mintty](https://mintty.github.io/)
#### MacOS
- [Terminal](https://support.apple.com/guide/terminal/open-or-quit-terminal-apd5265185d-f365-44cb-8b09-71a064a42125/mac) 💻
@ -185,10 +186,10 @@ When developers want to learn something new, they often turn to documentation fo
#### Popular Documentation on Web Development
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), created by Mozilla, the publishers of the [Firefox](https://www.mozilla.org/firefox/) browser
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), from Mozilla, the publishers of the [Firefox](https://www.mozilla.org/firefox/) browser
- [Frontend Masters](https://frontendmasters.com/learn/)
- [Web.dev](https://web.dev), created by Google, the publishers of [Chrome](https://www.google.com/chrome/)
- [Microsoft's developer documentation](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), for [Microsoft Edge](https://www.microsoft.com/edge)
- [Web.dev](https://web.dev), from Google, publishers of [Chrome](https://www.google.com/chrome/)
- [Microsoft's own developer docs](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), for [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ Research task: Now that you understand the basics of a web developer's environment, compare it with a web designer's environment.
@ -197,7 +198,7 @@ When developers want to learn something new, they often turn to documentation fo
## 🚀 Challenge
Compare some programming languages. What are the unique characteristics of JavaScript compared to Java? How about COBOL versus Go?
Compare some programming languages. What are some unique characteristics of JavaScript vs. Java? How about COBOL vs. Go?
## Post-Lecture Quiz
[Post-lecture quiz](https://ff-quizzes.netlify.app/web/)
@ -210,7 +211,9 @@ Explore the different programming languages available. Try writing a line of cod
[Reading the Docs](assignment.md)
> Note: When selecting tools for your assignment, do not choose editors, browsers, or command line tools already listed above.
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -1,25 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-28T12:00:48+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T08:22:30+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "en"
}
-->
# Reading the Docs
## Instructions
There are many tools that a web developer might need, which are listed in the [MDN documentation for client-side tooling](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Choose 3 tools that were not covered in the lesson, explain why a web developer would use them, and find a tool within this category to share its documentation. Avoid using the same tool examples provided in the MDN documentation.
There are many tools that a web developer may need that are listed on the [MDN documentation for client-side tooling](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Select **three tools** that are **not covered in this lesson** (excluding [list specific tools or refer to lesson content]), explain **why** a web developer would use each tool, and find a tool that fits each category. For each, share a link to its official documentation (not the example used on MDN).
**Format:**
- Tool name
- Why a web developer would use it (2-3 sentences)
- Link to documentation
**Length:**
- Each explanation should be 2-3 sentences.
## Rubric
Exemplary | Adequate | Needs Improvement
--- | --- | --- |
| Explained why a web developer would use the tool | Explained how, but not why a developer would use the tool | Did not mention how or why a developer would use the tool |
--- | --- | -- |
Explained why web developer would use tool | Explained how, but not why developer would use tool | Did not mention how or why a developer would use tool |
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may include errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is advised. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-28T11:46:22+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T08:21:17+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "en"
}
@ -11,15 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Instructions
Imagine you are creating a shopping cart. Write some documentation about the data types you would need to create a complete shopping experience. How did you decide on your choices?
Imagine you are creating a shopping cart. Write documentation on the data types you would need to enhance the shopping experience. For each data type, explain its purpose and usage, and provide an example. The six JavaScript data types are: String, Number, Boolean, Null, Undefined, and Object.
## Rubric
Criteria | Exemplary | Adequate | Needs Improvement
--- | --- | --- | --- |
||The six data types are listed and thoroughly explained, including their purpose|Four data types are explained|Two data types are explained|
Data Types | All six data types are listed, thoroughly explained, and accompanied by examples | Four data types are explained with some detail | Two data types are briefly mentioned with minimal explanation |
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may include errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is advised. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -1,25 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-28T11:50:03+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T08:22:44+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "en"
}
-->
# Practice your HTML: Build a blog mockup
# HTML Practice Assignment: Build a Blog Mockup
## Objective
Create and hand-code the HTML structure for a personal blog homepage. This task will help you practice using semantic HTML, planning layouts, and organizing your code.
## Instructions
Imagine you are designing or redesigning your personal website. Create a visual mockup of your site, and then write the HTML markup you would use to construct the various elements of the site. You can do this on paper and scan it, or use software of your choice—just make sure to hand-code the HTML markup.
1. **Design Your Blog Mockup**
- Draw a visual representation of your blog homepage. Include essential sections like the header, navigation, main content, sidebar, and footer.
- You can sketch it on paper and scan it, or use digital tools (e.g., Figma, Adobe XD, Canva, or even PowerPoint).
2. **Identify HTML Elements**
- Make a list of the HTML elements you intend to use for each section (e.g., `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>`, etc.).
3. **Write the HTML Markup**
- Hand-code the HTML for your mockup, focusing on semantic structure and best practices.
- Use at least 10 different HTML elements.
- Add comments to explain your choices and structure.
4. **Submit Your Work**
- Upload your sketch/mockup along with your HTML file.
- Optionally, write a short reflection (23 sentences) about your design decisions.
## Rubric
| Criteria | Outstanding | Satisfactory | Needs Improvement |
| -------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| | A blog layout is visually represented with at least 10 elements of markup shown | A blog layout is visually represented with around 5 elements of markup shown | A blog layout is visually represented with no more than 3 elements of markup shown|
| Criteria | Outstanding | Satisfactory | Needs Improvement |
|------------------|-------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Visual Mockup | Detailed and clear mockup with labeled sections and a thoughtful layout | Basic mockup with some labeled sections | Incomplete or unclear mockup; missing section labels |
| HTML Elements | Includes 10+ semantic HTML elements; shows understanding of structure and best practices | Includes 59 HTML elements; some semantic structure | Includes fewer than 5 elements; lacks semantic structure |
| Code Quality | Code is well-organized, readable, and includes comments; adheres to HTML standards | Code is mostly organized; few comments | Code is disorganized; lacks comments |
| Reflection | Provides meaningful insights into design choices and challenges | Offers a basic reflection | No reflection or lacks relevance |
## Tips
- Use semantic HTML tags to improve accessibility and SEO.
- Organize your code with proper indentation and comments.
- Refer to [MDN HTML Elements Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) for guidance.
- Consider how your layout could be expanded or styled in future assignments.
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may include errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is advised. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -1,23 +1,39 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-28T11:51:52+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T08:22:36+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "en"
}
-->
# CSS Refactoring
# CSS Refactoring Assignment
## Objective
Refactor the terrarium project to use **Flexbox** or **CSS Grid** for layout. Update the HTML and CSS as needed to achieve a modern, responsive design. You do not need to implement draggable elements—focus solely on layout and styling.
## Instructions
Restyle the terrarium using either Flexbox or CSS Grid, and take screenshots to demonstrate that you have tested it on multiple browsers. You may need to modify the markup, so create a new version of the app with the artwork in place for your refactor. Don't worry about making the elements draggable; for now, focus only on refactoring the HTML and CSS.
1. **Create a new version** of the terrarium app. Modify the HTML and CSS to utilize Flexbox or CSS Grid for layout.
2. **Ensure all artwork and elements are properly displayed** as in the original version.
3. **Test your design** in at least two different browsers (e.g., Chrome, Firefox, Edge).
4. **Take screenshots** of your terrarium in each browser to showcase cross-browser compatibility.
5. **Submit** your updated code along with the screenshots.
## Rubric
| Criteria | Exemplary | Adequate | Needs Improvement |
| -------- | ----------------------------------------------------------------- | ----------------------------- | ------------------------------------ |
| | Present a completely restyled terrarium using Flexbox or CSS Grid | Restyle a few of the elements | Fail to restyle the terrarium at all |
| Criteria | Outstanding | Satisfactory | Needs Improvement |
|------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| Layout | Fully refactored using Flexbox or CSS Grid; visually appealing and responsive | Partial refactoring; some use of Flexbox or Grid | Minimal or no use of Flexbox or Grid; layout unchanged |
| Cross-Browser | Screenshots provided for multiple browsers; consistent appearance | Screenshots for one browser; minor inconsistencies | No screenshots or major inconsistencies |
| Code Quality | Clean, well-structured HTML/CSS; clear comments | Some structure; few comments | Disorganized code; lacks comments |
## Tips
- Refer to [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) and [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) guides.
- Use browser developer tools to check responsiveness.
- Add comments to your code for better clarity.
---

@ -1,156 +1,192 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T13:25:55+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T08:21:41+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "en"
}
-->
# Using a code editor
***
This lesson introduces the basics of using [VSCode.dev](https://vscode.dev), a web-based code editor, so you can modify your code and contribute to a project without needing to install anything on your computer.
# Using a Code Editor: Mastering [VSCode.dev](https://vscode.dev)
## Learning objectives
**Welcome!**
This lesson will guide you from the basics to advanced usage of [VSCode.dev](https://vscode.dev)—a powerful, web-based code editor. You'll learn how to confidently edit code, manage projects, track changes, install extensions, and collaborate like a professional—all directly from your browser, with no installation required.
In this lesson, you will learn how to:
***
- Use a code editor in a coding project
- Track changes with version control
- Customize the editor for development
## Learning Objectives
### Prerequisites
By the end of this lesson, youll be able to:
Before starting, you need to create an account on [GitHub](https://github.com). Visit [GitHub](https://github.com/) and sign up if you dont already have an account.
- Use a code editor efficiently for any project, anywhere
- Track your work seamlessly with built-in version control
- Customize and enhance your development workflow with editor settings and extensions
### Introduction
***
A code editor is a vital tool for writing programs and collaborating on coding projects. Once you understand the basics of an editor and how to use its features, you can apply them to your coding tasks.
## Prerequisites
## Getting started with VSCode.dev
To get started, **sign up for a free [GitHub](https://github.com) account**, which allows you to manage code repositories and collaborate globally. If you dont have an account yet, [create one here](https://github.com/).
[VSCode.dev](https://vscode.dev) is a web-based code editor. You dont need to install anything to use it—just open it like any other website. To get started, visit [https://vscode.dev](https://vscode.dev). If youre not signed in to [GitHub](https://github.com/), follow the prompts to log in or create a new account.
***
Once it loads, the interface should look something like this:
## Why Use a Web-based Code Editor?
A **code editor** like VSCode.dev serves as your command center for writing, editing, and managing code. With its intuitive interface, extensive features, and instant browser access, you can:
- Work on projects from any device
- Skip the hassle of installations
- Collaborate and contribute instantly
Once youre comfortable with VSCode.dev, youll be ready to tackle coding tasks anytime, anywhere.
***
## Getting Started with VSCode.dev
Visit **[VSCode.dev](https://vscode.dev)**—no installation or downloads required. Signing in with GitHub unlocks full functionality, including syncing your settings, extensions, and repositories. If prompted, connect your GitHub account.
After loading, your workspace will look like this:
![Default VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.en.png)
There are three main sections, from left to right:
It has three main sections from left to right:
- **Activity bar:** Icons like 🔎 (Search), ⚙️ (Settings), files, source control, etc.
- **Sidebar:** Changes context based on the selected activity bar icon (defaults to *Explorer* to display files).
- **Editor/code area:** The largest section on the right—where youll edit and view code.
1. The _activity bar_, which includes icons like the magnifying glass 🔎, the gear ⚙️, and others.
2. The expanded activity bar, which defaults to the _Explorer_, also called the _side bar_.
3. The code area on the right.
Click through the icons to explore features, but return to the _Explorer_ to stay organized.
Click on each icon to explore different menus. When finished, return to the _Explorer_ to start where you began.
***
When you create or modify code, it will happen in the large area on the right. This is also where youll view existing code, as youll see next.
## Opening a GitHub Repository
## Open a GitHub repository
### Method 1: From the Editor
To begin, you need to open a GitHub repository. There are several ways to do this. Below are two methods for opening a repository so you can start making changes.
1. Go to [VSCode.dev](https://vscode.dev). Click **"Open Remote Repository."**
### 1. Using the editor
![Open remote repository](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.en.png)
You can open a remote repository directly from the editor. When you visit [VSCode.dev](https://vscode.dev), youll see an _"Open Remote Repository"_ button:
2. Use the _Command Palette_ (Ctrl-Shift-P, or Cmd-Shift-P on Mac).
![Open remote repository](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.en.png)
![Palette Menu](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.en.png)
Alternatively, you can use the command palette. The command palette is a search box where you can type commands or actions to find and execute them. Open it by selecting _View_ from the top-left menu, then choosing _Command Palette_, or by using the keyboard shortcut Ctrl-Shift-P (on macOS, Command-Shift-P).
- Select "Open remote repository."
- Paste your GitHub repo URL (e.g., `https://github.com/microsoft/Web-Dev-For-Beginners`) and press Enter.
![Palette Menu](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.en.png)
If successful, the entire project will load and be ready for editing!
Once the menu opens, type _open remote repository_ and select the first option. Youll see a list of repositories youre part of or have recently opened. You can also paste a full GitHub URL into the box. Use the following URL:
***
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
### Method 2: Instantly via URL
✅ If successful, the repositorys files will load in the text editor.
Transform any GitHub repo URL to open directly in VSCode.dev by replacing `github.com` with `vscode.dev/github`.
For example:
### 2. Using the URL
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
You can also load a repository directly using its URL. For example, the full URL for the current repository is [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners). Replace the GitHub domain with `VSCode.dev/github` to load the repository directly. The resulting URL would be [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
This feature makes accessing any project quick and easy.
## Edit files
***
Once the repository is open in your browser or vscode.dev, the next step is to make updates or changes to the project.
## Editing Files in Your Project
### 1. Create a new file
Once your repository is open, you can:
You can create a file in an existing folder or in the root directory. To create a new file, navigate to the desired location, click the _'New file ...'_ icon in the activity bar (on the left), name the file, and press Enter.
### 1. **Create a New File**
- In the *Explorer* sidebar, navigate to your desired folder or use the root.
- Click the _New file ..._ icon.
- Name your file, press **Enter**, and it will appear instantly.
![Create a new file](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.en.png)
### 2. Edit and save a file in the repository
Using vscode.dev is convenient for making quick updates to your project without installing software locally. To update your code, click the _Explorer_ icon in the activity bar to view the repositorys files and folders. Select a file to open it in the code area, make your changes, and save.
### 2. **Edit and Save Files**
- Click on a file in the *Explorer* to open it in the code area.
- Make your changes as needed.
- VSCode.dev automatically saves your changes, but you can press Ctrl+S to save manually.
![Edit a file](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.en.png)
After updating your project, click the _`source control`_ icon to view all the changes youve made to the repository.
### 3. **Track & Commit Changes with Version Control**
To review your changes, select the file(s) in the `Changes` folder in the expanded activity bar. This will open a 'Working Tree' where you can visually inspect the changes. Red indicates deletions, while green shows additions.
VSCode.dev includes integrated **Git** version control!
![View changes](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.en.png)
- Click the _'Source Control'_ icon to view all changes made.
- Files in the `Changes` folder show additions (green) and deletions (red).
![View changes](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.en.png)
If youre satisfied with your changes, hover over the `Changes` folder and click the `+` button to stage them. Staging prepares your changes for committing to GitHub.
- Stage changes by clicking the `+` next to files to prepare for commit.
- **Discard** unwanted changes by clicking the undo icon.
- Type a clear commit message, then click the checkmark to commit and push.
If you want to discard certain changes, hover over the `Changes` folder and click the `undo` icon.
To return to your repository on GitHub, select the hamburger menu at the top left.
Finally, type a `commit message` (a description of your changes), click the `check icon` to commit and push your changes.
![Stage & commit changes](../../../../translated_images/edit-vscode-dev.2a58bb663e7d19e04e7ccdc9fc645155a15de1e6e9797056df7cca697a3cf7b6.en.png)
When youre done, click the `hamburger menu icon` in the top-left corner to return to the repository on github.com.
***
![Stage & commit changes](../../../../8-code-editor/images/edit-vscode.dev.gif)
## Leveling Up with Extensions
## Using extensions
Extensions allow you to add languages, themes, debuggers, and productivity tools to VSCode.dev—making coding easier and more enjoyable.
Extensions in VSCode add new features and customization options to improve your development workflow. They also provide support for multiple programming languages and can be either general-purpose or language-specific.
### Browsing and Managing Extensions
To browse available extensions, click the _`Extensions icon`_ in the activity bar and type the extensions name in the _'Search Extensions in Marketplace'_ field. Youll see a list of extensions, each showing **the extension name, publisher, a brief description, download count**, and **star rating**.
- Click the **Extensions icon** on the activity bar.
- Search for an extension in the _'Search Extensions in Marketplace'_ box.
![Extension details](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.en.png)
![Extension details](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.en.png)
You can also view:
- Previously installed extensions in the _`Installed folder`_
- Popular extensions in the _`Popular folder`_
- Recommended extensions based on your workspace or recently opened files in the _`Recommended folder`_
- **Installed**: All extensions youve added
- **Popular**: Industry favorites
- **Recommended**: Tailored to your workflow
![View extensions](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.en.png)
![View extensions](../../../../translated_images/view-extensions.2eed53221678066045e3684b9dabaafff07f590c7dfaec736457d0ac0017e867.en.png)
### 1. Install Extensions
***
To install an extension, type its name in the search field. Once it appears, click it to view more details in the code area. Then, click the _blue install button_ in either the activity bar or the code area.
### 1. **Install Extensions**
![Install extensions](../../../../8-code-editor/images/install-extension.gif)
- Enter the extensions name in the search bar, click it, and review details in the editor.
- Hit the **blue Install button** in the sidebar _or_ in the main code area.
### 2. Customize Extensions
![Install extensions](../../../../translated_images/install-extension.84dd866e187d79492aa2c41b18f3878eeadaa70fece7a11ef63e2627dcc8792c.en.png)
After installing an extension, you may want to adjust its settings. To do this, click the _Extensions icon_, find your extension in the _Installed folder_, click the _**Gear icon**_, and navigate to _Extensions Setting_.
### 2. **Customize Extensions**
![Modify extension settings](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.en.png)
- Find your installed extension.
- Click the **Gear icon** → select _Extension Settings_ to adjust behaviors to your preferences.
### 3. Manage Extensions
![Modify extension settings](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.en.png)
You can manage your extensions based on your needs. For example:
### 3. **Manage Extensions**
You can:
- **Disable:** Temporarily turn off an extension without uninstalling it.
To disable, select the installed extension in the activity bar, click the Gear icon, and choose 'Disable' or 'Disable (Workspace).' Alternatively, open the extension in the code area and click the blue Disable button.
- **Disable:** Temporarily turn off an extension while keeping it installed
- **Uninstall:** Permanently remove it if no longer needed
- **Uninstall:** Remove an extension completely.
To uninstall, select the installed extension in the activity bar, click the Gear icon, and choose 'Uninstall.' Alternatively, open the extension in the code area and click the blue Uninstall button.
Find the extension, hit the Gear icon, and select Disable or Uninstall, or use the blue buttons in the code area.
---
***
## Assignment
[Create a resume website using vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
Test your skills: [Create a resume website using vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
***
## Further Exploration and Self-Study
- Dive deeper with [the official VSCode Web Docs](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Explore advanced workspace features, keyboard shortcuts, and settings.
## Review & Self Study
***
Learn more about [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) and its additional features.
**Now youre ready to code, create, and collaborate—from anywhere, on any device, using VSCode.dev!**
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:11:50+00:00",
"source_file": "AGENTS.md",
"language_code": "en"
}
-->
# AGENTS.md
## Project Overview
This repository provides an educational curriculum designed to teach web development fundamentals to beginners. It is a comprehensive 12-week course created by Microsoft Cloud Advocates, featuring 24 hands-on lessons that cover JavaScript, CSS, and HTML.
### Key Components
- **Educational Content**: 24 structured lessons organized into project-based modules
- **Practical Projects**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor, and AI Chat Assistant
- **Interactive Quizzes**: 48 quizzes with 3 questions each (pre- and post-lesson assessments)
- **Multi-language Support**: Automated translations for over 50 languages via GitHub Actions
- **Technologies**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (for AI projects)
### Architecture
- Repository structured around lessons
- Each lesson folder includes a README, code examples, and solutions
- Standalone projects in separate directories (quiz-app, various lesson projects)
- Translation system powered by GitHub Actions (co-op-translator)
- Documentation served via Docsify and available as PDF
## Setup Commands
This repository is primarily intended for educational content consumption. For working with specific projects:
### Main Repository Setup
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Quiz App Setup (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### Bank Project API (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Browser Extension Projects
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Space Game Projects
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Chat Project (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Development Workflow
### For Content Contributors
1. **Fork the repository** to your GitHub account
2. **Clone your fork** locally
3. **Create a new branch** for your changes
4. Modify lesson content or code examples
5. Test any code changes in relevant project directories
6. Submit pull requests following contribution guidelines
### For Learners
1. Fork or clone the repository
2. Navigate through lesson directories sequentially
3. Read the README files for each lesson
4. Complete pre-lesson quizzes at https://ff-quizzes.netlify.app/web/
5. Work through code examples in lesson folders
6. Complete assignments and challenges
7. Take post-lesson quizzes
### Live Development
- **Documentation**: Run `docsify serve` in the root directory (port 3000)
- **Quiz App**: Run `npm run dev` in the quiz-app directory
- **Projects**: Use the VS Code Live Server extension for HTML projects
- **API Projects**: Run `npm start` in the respective API directories
## Testing Instructions
### Quiz App Testing
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Bank API Testing
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### General Testing Approach
- This is an educational repository without comprehensive automated tests
- Manual testing focuses on:
- Ensuring code examples run without errors
- Verifying links in documentation work correctly
- Confirming project builds complete successfully
- Checking that examples follow best practices
### Pre-submission Checks
- Run `npm run lint` in directories with package.json
- Verify markdown links are valid
- Test code examples in a browser or Node.js
- Ensure translations maintain proper structure
## Code Style Guidelines
### JavaScript
- Use modern ES6+ syntax
- Follow standard ESLint configurations provided in projects
- Use meaningful variable and function names for educational clarity
- Add comments explaining concepts for learners
- Format using Prettier where configured
### HTML/CSS
- Use semantic HTML5 elements
- Apply responsive design principles
- Follow clear class naming conventions
- Include comments explaining CSS techniques for learners
### Python
- Adhere to PEP 8 style guidelines
- Provide clear, educational code examples
- Use type hints where helpful for learning
### Markdown Documentation
- Maintain a clear heading hierarchy
- Include code blocks with language specification
- Provide links to additional resources
- Store screenshots and images in `images/` directories
- Add alt text for images to ensure accessibility
### File Organization
- Lessons are numbered sequentially (1-getting-started-lessons, 2-js-basics, etc.)
- Each project includes `solution/` and often `start/` or `your-work/` directories
- Images are stored in lesson-specific `images/` folders
- Translations are organized in `translations/{language-code}/` directories
## Build and Deployment
### Quiz App Deployment (Azure Static Web Apps)
The quiz-app is configured for deployment on Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Azure Static Web Apps configuration:
- **App location**: `/quiz-app`
- **Output location**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Documentation PDF Generation
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Docsify Documentation
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Project-specific Builds
Each project directory may have its own build process:
- Vue projects: `npm run build` creates production bundles
- Static projects: No build step, serve files directly
## Pull Request Guidelines
### Title Format
Use clear, descriptive titles indicating the area of change:
- `[Quiz-app] Add new quiz for lesson X`
- `[Lesson-3] Fix typo in terrarium project`
- `[Translation] Add Spanish translation for lesson 5`
- `[Docs] Update setup instructions`
### Required Checks
Before submitting a PR:
1. **Code Quality**:
- Run `npm run lint` in affected project directories
- Fix all linting errors and warnings
2. **Build Verification**:
- Run `npm run build` if applicable
- Ensure no build errors
3. **Link Validation**:
- Test all markdown links
- Verify image references work
4. **Content Review**:
- Proofread for spelling and grammar
- Ensure code examples are correct and educational
- Verify translations maintain original meaning
### Contribution Requirements
- Agree to Microsoft CLA (automated check on first PR)
- Follow the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- See [CONTRIBUTING.md](./CONTRIBUTING.md) for detailed guidelines
- Reference issue numbers in PR descriptions if applicable
### Review Process
- PRs are reviewed by maintainers and the community
- Educational clarity is prioritized
- Code examples should follow current best practices
- Translations are reviewed for accuracy and cultural appropriateness
## Translation System
### Automated Translation
- Powered by GitHub Actions with the co-op-translator workflow
- Automatically translates to over 50 languages
- Source files are located in main directories
- Translated files are stored in `translations/{language-code}/` directories
### Adding Manual Translation Improvements
1. Locate the file in `translations/{language-code}/`
2. Make improvements while preserving the structure
3. Ensure code examples remain functional
4. Test any localized quiz content
### Translation Metadata
Translated files include a metadata header:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Debugging and Troubleshooting
### Common Issues
**Quiz app fails to start**:
- Check Node.js version (v14+ recommended)
- Delete `node_modules` and `package-lock.json`, then run `npm install` again
- Check for port conflicts (default: Vite uses port 5173)
**API server won't start**:
- Verify Node.js version meets the minimum requirement (node >=10)
- Check if the port is already in use
- Ensure all dependencies are installed with `npm install`
**Browser extension won't load**:
- Verify that manifest.json is properly formatted
- Check the browser console for errors
- Follow browser-specific extension installation instructions
**Python chat project issues**:
- Ensure the OpenAI package is installed: `pip install openai`
- Verify the GITHUB_TOKEN environment variable is set
- Check GitHub Models access permissions
**Docsify not serving docs**:
- Install docsify-cli globally: `npm install -g docsify-cli`
- Run from the repository root directory
- Check that `docs/_sidebar.md` exists
### Development Environment Tips
- Use VS Code with the Live Server extension for HTML projects
- Install ESLint and Prettier extensions for consistent formatting
- Use browser DevTools for debugging JavaScript
- For Vue projects, install the Vue DevTools browser extension
### Performance Considerations
- The large number of translated files (50+ languages) makes full clones sizable
- Use shallow clone if only working on content: `git clone --depth 1`
- Exclude translations from searches when working on English content
- Build processes may be slow on the first run (npm install, Vite build)
## Security Considerations
### Environment Variables
- API keys should never be committed to the repository
- Use `.env` files (already included in `.gitignore`)
- Document required environment variables in project READMEs
### Python Projects
- Use virtual environments: `python -m venv venv`
- Keep dependencies updated
- GitHub tokens should have minimal required permissions
### GitHub Models Access
- Personal Access Tokens (PAT) are required for GitHub Models
- Tokens should be stored as environment variables
- Never commit tokens or credentials
## Additional Notes
### Target Audience
- Complete beginners in web development
- Students and self-learners
- Teachers using the curriculum in classrooms
- Content is designed for accessibility and gradual skill-building
### Educational Philosophy
- Project-based learning approach
- Frequent knowledge checks (quizzes)
- Hands-on coding exercises
- Real-world application examples
- Focus on fundamentals before frameworks
### Repository Maintenance
- Active community of learners and contributors
- Regular updates to dependencies and content
- Issues and discussions monitored by maintainers
- Translation updates automated via GitHub Actions
### Related Resources
- [Microsoft Learn modules](https://docs.microsoft.com/learn/)
- [Student Hub resources](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) recommended for learners
- Additional courses: Generative AI, Data Science, ML, IoT curricula available
### Working with Specific Projects
For detailed instructions on individual projects, refer to the README files in:
- `quiz-app/README.md` - Vue 3 quiz application
- `7-bank-project/README.md` - Banking application with authentication
- `5-browser-extension/README.md` - Browser extension development
- `6-space-game/README.md` - Canvas-based game development
- `9-chat-project/README.md` - AI chat assistant project
### Monorepo Structure
While not a traditional monorepo, this repository contains multiple independent projects:
- Each lesson is self-contained
- Projects don't share dependencies
- Work on individual projects without affecting others
- Clone the entire repository for the full curriculum experience
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -1,166 +1,229 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T13:14:52+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T08:20:05+00:00",
"source_file": "README.md",
"language_code": "en"
}
-->
> **Open Folder** and selecting the folder where you cloned the repository.
[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
3. Install the necessary dependencies. Open the terminal in Visual Studio Code and run the following command:
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
@@INLINE_CODE_1@@
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
4. Start the development server. Run the following command in the terminal:
[![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)
@@INLINE_CODE_2@@
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
5. Open your browser and navigate to @@INLINE_CODE_3@@ to view the curriculum.
Follow these steps to start using these resources:
1. **Fork the Repository**: Click [![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. **Clone the Repository**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Join The Azure AI Foundry Discord and connect with experts and fellow developers**](https://discord.com/invite/ByRwuEEgH4)
---
# Web Development for Beginners - A Curriculum
### 🛠️ Contributing
Learn the basics of web development with this 12-week comprehensive course from Microsoft Cloud Advocates. The 24 lessons cover JavaScript, CSS, and HTML through hands-on projects like terrariums, browser extensions, and space games. Engage with quizzes, discussions, and practical assignments. Strengthen your skills and improve knowledge retention with our project-based learning approach. Start your coding journey today!
We welcome contributions to improve this curriculum! If you find any issues or have suggestions, feel free to open an issue or submit a pull request. Check out our [contributing guide](./CONTRIBUTING.md) for more details.
### 🌐 Multi-Language Support
---
#### Supported via GitHub Action (Automated & Always Up-to-Date)
### 📚 Curriculum Overview
[French](../fr/README.md) | [Spanish](../es/README.md) | [German](../de/README.md) | [Russian](../ru/README.md) | [Arabic](../ar/README.md) | [Persian (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chinese (Simplified)](../zh/README.md) | [Chinese (Traditional, Macau)](../mo/README.md) | [Chinese (Traditional, Hong Kong)](../hk/README.md) | [Chinese (Traditional, Taiwan)](../tw/README.md) | [Japanese](../ja/README.md) | [Korean](../ko/README.md) | [Hindi](../hi/README.md) | [Bengali](../bn/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Portuguese (Portugal)](../pt/README.md) | [Portuguese (Brazil)](../br/README.md) | [Italian](../it/README.md) | [Polish](../pl/README.md) | [Turkish](../tr/README.md) | [Greek](../el/README.md) | [Thai](../th/README.md) | [Swedish](../sv/README.md) | [Danish](../da/README.md) | [Norwegian](../no/README.md) | [Finnish](../fi/README.md) | [Dutch](../nl/README.md) | [Hebrew](../he/README.md) | [Vietnamese](../vi/README.md) | [Indonesian](../id/README.md) | [Malay](../ms/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Swahili](../sw/README.md) | [Hungarian](../hu/README.md) | [Czech](../cs/README.md) | [Slovak](../sk/README.md) | [Romanian](../ro/README.md) | [Bulgarian](../bg/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Croatian](../hr/README.md) | [Slovenian](../sl/README.md) | [Ukrainian](../uk/README.md) | [Burmese (Myanmar)](../my/README.md)
This curriculum is divided into 12 weeks, with 24 lessons covering the following topics:
**If you'd like additional translations, supported languages are listed [here](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
1. **Getting Started**: Introduction to programming languages, tools, and setting up your environment.
2. **HTML Basics**: Learn the structure of web pages and how to create them.
3. **CSS Basics**: Style your web pages and make them visually appealing.
4. **JavaScript Basics**: Add interactivity to your web pages.
5. **Advanced JavaScript**: Dive deeper into JavaScript concepts like functions, objects, and APIs.
6. **Web Accessibility**: Ensure your web pages are accessible to everyone.
7. **Responsive Design**: Make your web pages look great on all devices.
8. **Web Performance**: Optimize your web pages for speed and efficiency.
9. **Browser Extensions**: Learn how to create your own browser extensions.
10. **Space Game Project**: Build a fun and interactive game using JavaScript.
11. **Terrarium Project**: Create a virtual terrarium using HTML, CSS, and JavaScript.
12. **Final Project**: Apply everything you've learned to create a complete web application.
#### 🧑‍🎓 _Are you a student?_
---
Visit [**Student Hub page**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) for beginner resources, student packs, and even opportunities to get a free certificate voucher. Bookmark this page and check back regularly as content is updated monthly.
### 📣 Stay Connected
### 📣 Announcement - _New Project to build using Generative AI_
Join our community on [Discord](https://discord.com/invite/ByRwuEEgH4) to connect with other learners, ask questions, and share your progress. Follow us on [GitHub](https://github.com/microsoft/Web-Dev-For-Beginners) for updates and new content.
A new AI Assistant project has been added—check it out [here](./09-chat-project/README.md).
---
### 📣 Announcement - _New Curriculum_ on Generative AI for JavaScript
### 🌟 Acknowledgments
Don't miss our new Generative AI curriculum!
This curriculum was created by Microsoft Cloud Advocates to help beginners learn web development. Special thanks to all contributors who have helped improve and expand this resource.
Visit [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) to get started!
---
![Background](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.en.png)
- Lessons covering everything from basics to Retrieval-Augmented Generation (RAG).
- Interact with historical characters using GenAI and our companion app.
- Fun and engaging narrative—you'll be time traveling!
![character](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.en.png)
Each lesson includes assignments, knowledge checks, and challenges to help you learn topics like:
- Prompting and prompt engineering
- Text and image app generation
- Search apps
Visit [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) to get started!
## 🌱 Getting Started
> **Teachers**, we have [included some suggestions](for-teachers.md) on how to use this curriculum. We'd love your feedback [in our discussion forum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Learners](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, for each lesson, start with a pre-lecture quiz, read the lecture material, complete the activities, and check your understanding with the post-lecture quiz.
To enhance your learning experience, collaborate with peers on projects! Discussions are encouraged in our [discussion forum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), where moderators are available to answer your questions.
For further learning, explore [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) for additional study materials.
### 📋 Setting up your environment
This curriculum comes with a ready-to-use development environment! You can choose to run it in a [Codespace](https://github.com/features/codespaces/) (_browser-based, no installation required_), or locally on your computer using a text editor like [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Create your repository
To save your work, create your own copy of this repository. Click the **Use this template** button at the top of the page to create a new repository in your GitHub account with a copy of the curriculum.
Ready to start your web development journey? Fork the repository, set up your environment, and dive into the lessons! Happy coding!
> **Open Folder** and select the folder you just cloned.
> Recommended Visual Studio Code extensions:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - to preview HTML pages within Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - to help you write code faster
## 📂 Each lesson includes:
- optional sketchnote
- optional supplemental video
- pre-lesson warmup quiz
- written lesson
- for project-based lessons, step-by-step guides on how to build the project
- knowledge checks
- a challenge
- supplemental reading
- assignment
- [post-lesson quiz](https://ff-quizzes.netlify.app/web/)
Follow these steps:
1. **Fork the Repository**: Click the "Fork" button at the top-right corner of this page.
2. **Clone the Repository**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Running the curriculum in a Codespace
In your copy of this repository, click the **Code** button and select **Open with Codespaces**. This will create a new Codespace for you to work in.
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.en.png)
#### Running the curriculum locally on your computer
To run this curriculum locally, you'll need a text editor, a browser, and a command-line tool. The first lesson, [Introduction to Programming Languages and Tools of the Trade](../../1-getting-started-lessons/1-intro-to-programming-languages), will guide you through various options for these tools so you can choose what works best for you.
We recommend using [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) as your editor, which includes a built-in [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). You can download Visual Studio Code [here](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Clone your repository to your computer. Click the **Code** button and copy the URL:
[CodeSpace](./images/createcodespace.png)
Then, open [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) within [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) and run the following command, replacing `<your-repository-url>` with the URL you just copied:
```bash
git clone <your-repository-url>
```
2. Open the folder in Visual Studio Code. Click **File** > **Open Folder** and select the folder you just cloned.
> Recommended Visual Studio Code extensions:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - to preview HTML pages within Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - to help you write code faster
## 📂 Each lesson includes:
- Optional sketchnote
- Optional supplemental video
- Pre-lesson warmup quiz
- Written lesson
- For project-based lessons, step-by-step guides on how to build the project
- Knowledge checks
- A challenge
- Supplemental reading
- Assignment
- [Post-lesson quiz](https://ff-quizzes.netlify.app/web/)
> **A note about quizzes**: All quizzes are located in the Quiz-app folder, with a total of 48 quizzes, each containing three questions. They are available [here](https://ff-quizzes.netlify.app/web/). The quiz app can be run locally or deployed to Azure; follow the instructions in the `quiz-app` folder.
## 🗃️ Lessons
| | Project Name | Concepts Taught | Learning Objectives | Linked Lesson | Author |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Getting Started | Introduction to Programming and Tools of the Trade | Learn the basic principles behind most programming languages and the software that helps professional developers do their work | [Intro to Programming Languages and Tools of the Trade](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 01 | Getting Started | Introduction to Programming and Tools of the Trade | Learn the basic foundations of most programming languages and the software that helps professional developers in their work | [Intro to Programming Languages and Tools of the Trade](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Getting Started | Basics of GitHub, includes working with a team | Learn how to use GitHub in your project and collaborate with others on a codebase | [Intro to GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Getting Started | Accessibility | Learn the basics of web accessibility | [Accessibility Fundamentals](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Basics | JavaScript Data Types | Learn the basics of JavaScript data types | [Data Types](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Basics | Functions and Methods | Learn about functions and methods to manage an application's logic flow | [Functions and Methods](./2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher |
| 03 | Getting Started | Accessibility | Learn the fundamentals of web accessibility | [Accessibility Fundamentals](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Basics | JavaScript Data Types | Understand the basics of JavaScript data types | [Data Types](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Basics | Functions and Methods | Learn about functions and methods to manage the logic flow of an application | [Functions and Methods](./2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher |
| 06 | JS Basics | Making Decisions with JS | Learn how to create conditions in your code using decision-making methods | [Making Decisions](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Basics | Arrays and Loops | Work with data using arrays and loops in JavaScript | [Arrays and Loops](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML in Practice | Build the HTML to create an online terrarium, focusing on building a layout | [Introduction to HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS in Practice | Build the CSS to style the online terrarium, focusing on the basics of CSS, including making the page responsive | [Introduction to CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML in Practice | Build the HTML to create an online terrarium, focusing on layout creation | [Introduction to HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS in Practice | Build the CSS to style the online terrarium, focusing on CSS basics, including making the page responsive | [Introduction to CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, DOM manipulation | Build the JavaScript to make the terrarium function as a drag/drop interface, focusing on closures and DOM manipulation | [JavaScript Closures, DOM manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | Build a Typing Game | Learn how to use keyboard events to drive the logic of your JavaScript app | [Event-Driven Programming](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Working with Browsers | Learn how browsers work, their history, and how to scaffold the first elements of a browser extension | [About Browsers](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Building a form, calling an API and storing variables in local storage | Build the JavaScript elements of your browser extension to call an API using variables stored in 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 processes in the browser, web performance | Use the browser's background processes to manage the extension's icon; learn about web performance and some optimizations to make | [Background Tasks and Performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | More Advanced Game Development with JavaScript | Learn about Inheritance using both Classes and Composition and the Pub/Sub pattern, in preparation for building a game | [Introduction to Advanced Game Development](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Drawing to canvas | Learn about the Canvas API, used to draw elements to a screen | [Drawing to Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Moving elements around the screen | Discover how elements can gain motion using the cartesian coordinates and the Canvas API | [Moving Elements Around](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Collision detection | Make elements collide and react to each other using keypresses and provide a cooldown function to ensure performance of the game | [Collision Detection](./6-space-game/4-collision-detection/README.md) | Chris |
| 15 | [Space Game](./6-space-game/solution/README.md) | More Advanced Game Development with JavaScript | Learn about inheritance using both classes and composition, and the Pub/Sub pattern, in preparation for building a game | [Introduction to Advanced Game Development](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Drawing to canvas | Learn about the Canvas API, used to draw elements on a screen | [Drawing to Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Moving elements around the screen | Discover how elements can gain motion using Cartesian coordinates and the Canvas API | [Moving Elements Around](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Collision detection | Make elements collide and react to each other using keypresses, and provide a cooldown function to ensure game performance | [Collision Detection](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Keeping score | Perform math calculations based on the game's status and performance | [Keeping Score](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Ending and restarting the game | Learn about ending and restarting the game, including cleaning up assets and resetting variable values | [The Ending Condition](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | HTML Templates and Routes in a Web App | Learn how to create the scaffold of a multipage website's architecture using routing and HTML templates | [HTML Templates and Routes](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Build a Login and Registration Form | Learn about building forms and handling validation routines | [Forms](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Methods of Fetching and Using Data | How data flows in and out of your app, how to fetch it, store it, and dispose of it | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Methods of Fetching and Using Data | Understand how data flows in and out of your app, how to fetch it, store it, and dispose of it | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Concepts of State Management | Learn how your app retains state and how to manage it programmatically | [State Management](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Working with VScode | Learn how to use a code editor | [Use VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | Working with AI | Learn how to build your own AI assistant | [AI Assistant project](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogy
Our curriculum is designed with two key pedagogical principles in mind:
Our curriculum is designed with two key teaching principles in mind:
* project-based learning
* frequent quizzes
The program teaches the fundamentals of JavaScript, HTML, and CSS, as well as the latest tools and techniques used by today's web developers. Students will have the opportunity to develop hands-on experience by building a typing game, virtual terrarium, eco-friendly browser extension, space-invader-style game, and a banking app for businesses. By the end of the series, students will have gained a solid understanding of web development.
The program covers the fundamentals of JavaScript, HTML, and CSS, along with the latest tools and techniques used by modern web developers. Students will gain hands-on experience by building projects such as a typing game, virtual terrarium, eco-friendly browser extension, space-invader-style game, and a banking app for businesses. By the end of the series, students will have a solid understanding of web development.
> 🎓 You can take the first few lessons in this curriculum as a [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) on Microsoft Learn!
By ensuring that the content aligns with projects, the process is made more engaging for students and retention of concepts will be enhanced. We also wrote several starter lessons in JavaScript basics to introduce concepts, paired with a video from the "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" collection of video tutorials, some of whose authors contributed to this curriculum.
By aligning the content with projects, the learning process becomes more engaging for students, and concept retention is enhanced. We also included several introductory lessons on JavaScript basics, paired with videos from the "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" collection of tutorials, some of which were authored by contributors to this curriculum.
In addition, a low-stakes quiz before a class sets the intention of the student towards learning a topic, while a second quiz after class ensures further retention. This curriculum was designed to be flexible and fun and can be taken in whole or in part. The projects start small and become increasingly complex by the end of the 12-week cycle.
Additionally, a low-stakes quiz before class helps set the student's focus on the topic, while a second quiz after class reinforces retention. This curriculum is designed to be flexible and enjoyable, and it can be completed in full or in part. The projects start small and gradually increase in complexity over the 12-week cycle.
While we have purposefully avoided introducing JavaScript frameworks to concentrate on the basic skills needed as a web developer before adopting a framework, a good next step to completing this curriculum would be learning about Node.js via another collection of videos: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
While we intentionally avoided introducing JavaScript frameworks to focus on the essential skills needed as a web developer before adopting a framework, a good next step after completing this curriculum would be learning about Node.js through another video series: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Visit our [Code of Conduct](CODE_OF_CONDUCT.md) and [Contributing](CONTRIBUTING.md) guidelines. We welcome your constructive feedback!
## 🧭 Offline access
You can run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork this repo, [install Docsify](https://docsify.js.org/#/quickstart) on your local machine, and then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`.
You can run this documentation offline using [Docsify](https://docsify.js.org/#/). Fork this repository, [install Docsify](https://docsify.js.org/#/quickstart) on your local machine, and then in the root folder of this repository, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`.
## 📘 PDF
A PDF of all of the lessons can be found [here](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
A PDF of all the lessons can be found [here](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Other Courses
Our team produces other courses! Check out:
Our team offers other courses! Check out:
- [Generative AI for Beginners](https://aka.ms/genai-beginners)
- [Generative AI for Beginners .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generative AI with JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [Generative AI with Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI for Beginners](https://aka.ms/ai-beginners)
- [Data Science for Beginners](https://aka.ms/datascience-beginners)
- [ML for Beginners](https://aka.ms/ml-beginners)
- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101)
- [Web Dev for Beginners](https://aka.ms/webdev-beginners)
- [IoT for Beginners](https://aka.ms/iot-beginners)
- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners)
- [Mastering GitHub Copilot for Agentic use](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures)
- [Data Science for Beginners](https://aka.ms/datascience-beginners)
- [ML for Beginners](https://aka.ms/ml-beginners)
- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101)
- [Web Dev for Beginners](https://aka.ms/webdev-beginners)
- [IoT for Beginners](https://aka.ms/iot-beginners)
- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners)
- [Mastering GitHub Copilot for Agentic use](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures)
## Getting Help
If you encounter difficulties or have questions about creating AI applications, join:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
If you have product feedback or experience issues during development, visit:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## License
This repository is licensed under the MIT license. See the [LICENSE](../../LICENSE) file for more information.
This repository is licensed under the MIT license. Refer to the [LICENSE](../../LICENSE) file for more details.
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -1,25 +1,46 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-28T11:13:15+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T08:19:51+00:00",
"source_file": "for-teachers.md",
"language_code": "en"
}
-->
## For Educators
### For Educators
Would you like to use this curriculum in your classroom? Feel free to do so!
Feel free to use this curriculum in your classroom. It integrates smoothly with GitHub Classroom and popular LMS platforms, and it can also be used as a standalone repository with your students.
In fact, you can use it directly on GitHub by leveraging GitHub Classroom.
### Using GitHub Classroom
To get started, fork this repository. You'll need to create a separate repository for each lesson, so you'll need to extract each folder into its own repository. This way, [GitHub Classroom](https://classroom.github.com/classrooms) can handle each lesson individually.
To manage lessons and assignments for each cohort, create a separate repository for each lesson so GitHub Classroom can link each assignment individually.
These [detailed instructions](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) will guide you on how to set up your classroom.
- Fork this repository to your organization.
- Create a dedicated repository for each lesson by extracting each lesson folder into its own repository.
- Option A: Create empty repositories (one per lesson) and copy the contents of the lesson folder into each.
- Option B: Use a method that preserves Git history (e.g., splitting a folder into a new repository) if you need to maintain provenance.
- In GitHub Classroom, set up an assignment for each lesson and link it to the corresponding lesson repository.
- Recommended settings:
- Repository visibility: private for student submissions.
- Use starter code from the default branch of the lesson repository.
- Add issue and pull request templates for quizzes and submissions.
- Optionally configure autograding and tests if your lessons include them.
- Helpful conventions:
- Repository names like lesson-01-intro, lesson-02-html, etc.
- Labels: quiz, assignment, needs-review, late, resubmission.
- Tags/releases for each cohort (e.g., v2025-term1).
## Using it in Moodle, Canvas, or Blackboard
Tip: Avoid storing repositories in synced folders (e.g., OneDrive/Google Drive) to prevent Git conflicts on Windows.
This curriculum is compatible with these Learning Management Systems! You can use the [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) for the complete content or try the [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc), which includes part of the content. Note that Moodle Cloud does not support full Common Cartridge exports, so it's better to use the Moodle download file, which can also be uploaded into Canvas. Let us know how we can enhance this experience for you.
### Using Moodle, Canvas, or Blackboard
This curriculum includes importable packages for common LMS workflows.
- Moodle: Use the Moodle upload file [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) to load the entire course.
- Common Cartridge: Use the Common Cartridge file [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) for broader LMS compatibility.
- Notes:
- Moodle Cloud has limited support for Common Cartridge files. Prefer the Moodle file above, which can also be uploaded into Canvas.
- After importing, review modules, due dates, and quiz settings to align with your term schedule.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.en.png)
> The curriculum displayed in a Moodle classroom
@ -27,21 +48,31 @@ This curriculum is compatible with these Learning Management Systems! You can us
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.en.png)
> The curriculum displayed in Canvas
## Using the repository as is
### Using the Repository Directly (Without GitHub Classroom)
If you'd prefer to use this repository as it currently stands, without GitHub Classroom, that's also an option. You'll need to coordinate with your students on which lesson to work through together.
If you choose not to use GitHub Classroom, you can run the course directly from this repository.
In an online format (Zoom, Teams, or similar), you could create breakout rooms for quizzes and mentor students to prepare them for learning. Then, invite students to complete the quizzes and submit their answers as 'issues' at a designated time. You could follow the same approach for assignments if you want students to collaborate openly.
- Synchronous/online formats (Zoom/Teams):
- Conduct short mentor-led warmups; use breakout rooms for quizzes.
- Announce a time window for quizzes; students submit their answers as GitHub Issues.
- For collaborative assignments, students work in public lesson repositories and submit pull requests.
- Private/asynchronous formats:
- Students fork each lesson into their own **private** repositories and add you as a collaborator.
- They submit via Issues (quizzes) and Pull Requests (assignments) on your classroom repository or their private forks.
If you'd rather use a more private format, ask your students to fork the curriculum, lesson by lesson, into their own private GitHub repositories and grant you access. This way, they can complete quizzes and assignments privately and submit them to you via issues on your classroom repository.
### Best Practices
There are many ways to adapt this for an online classroom setting. Let us know what works best for you!
- Offer an introductory lesson on Git/GitHub basics, Issues, and Pull Requests.
- Use checklists in Issues for multi-step quizzes/assignments.
- Add CONTRIBUTING.md and CODE_OF_CONDUCT.md to establish classroom norms.
- Include accessibility notes (alt text, captions) and provide printable PDFs.
- Version your content for each term and freeze lesson repositories after publishing.
## Please share your feedback!
### Feedback and Support
We want this curriculum to be as effective as possible for you and your students. Connect with us in the [Teacher corner](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) and open a [**new issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) to share your requests, report bugs, or provide feedback.
We want this curriculum to be effective for you and your students. Please open a new Issue in this repository for bugs, suggestions, or improvements, or start a discussion in the Teacher Corner.
---
**Disclaimer**:
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may include errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is advised. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.
This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we aim for accuracy, please note that automated translations may contain errors or inaccuracies. The original document in its native language should be regarded as the authoritative source. For critical information, professional human translation is recommended. We are not responsible for any misunderstandings or misinterpretations resulting from the use of this translation.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T14:01:21+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T08:27:55+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "es"
}
@ -26,15 +26,15 @@ En esta lección, cubriremos:
- Elementos básicos de un programa
- Software y herramientas útiles para el desarrollador profesional
> ¡Puedes tomar esta lección en [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
> Puedes tomar esta lección en [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
## ¿Qué es la Programación?
La programación (también conocida como codificación) es el proceso de escribir instrucciones para un dispositivo como una computadora o un dispositivo móvil. Escribimos estas instrucciones con un lenguaje de programación, que luego es interpretado por el dispositivo. Estos conjuntos de instrucciones pueden ser conocidos por varios nombres, pero *programa*, *programa de computadora*, *aplicación (app)* y *ejecutable* son algunos nombres populares.
La programación (también conocida como codificación) es el proceso de escribir instrucciones para un dispositivo como una computadora o un dispositivo móvil. Escribimos estas instrucciones con un lenguaje de programación, que luego es interpretado por el dispositivo. Estos conjuntos de instrucciones pueden ser llamados de varias maneras, pero *programa*, *programa de computadora*, *aplicación (app)* y *ejecutable* son algunos nombres populares.
Un *programa* puede ser cualquier cosa escrita con código; sitios web, juegos y aplicaciones para teléfonos son programas. Aunque es posible crear un programa sin escribir código, la lógica subyacente es interpretada por el dispositivo y esa lógica probablemente fue escrita con código. Un programa que está *ejecutando* o *procesando* código está llevando a cabo instrucciones. El dispositivo con el que estás leyendo esta lección está ejecutando un programa para mostrarla en tu pantalla.
Un *programa* puede ser cualquier cosa escrita con código; sitios web, juegos y aplicaciones móviles son programas. Aunque es posible crear un programa sin escribir código, la lógica subyacente es interpretada por el dispositivo y esa lógica probablemente fue escrita con código. Un programa que está *ejecutando* o *procesando* código está llevando a cabo instrucciones. El dispositivo con el que estás leyendo esta lección está ejecutando un programa para mostrarla en tu pantalla.
✅ Investiga un poco: ¿quién es considerado el primer programador de computadoras del mundo?
✅ Investiga un poco: ¿Quién es considerado el primer programador de computadoras del mundo?
## Lenguajes de Programación
@ -83,17 +83,17 @@ back add r0,r1
end
```
Aunque no lo creas, *ambos están haciendo lo mismo*: imprimir una secuencia de Fibonacci hasta el número 10.
Créelo o no, *ambos están haciendo lo mismo*: imprimir una secuencia de Fibonacci hasta el número 10.
✅ Una secuencia de Fibonacci se [define](https://en.wikipedia.org/wiki/Fibonacci_number) como un conjunto de números en el que cada número es la suma de los dos anteriores, comenzando desde 0 y 1. Los primeros 10 números de la secuencia de Fibonacci son 0, 1, 1, 2, 3, 5, 8, 13, 21 y 34.
## Elementos de un Programa
Una sola instrucción en un programa se llama *sentencia* y usualmente tendrá un carácter o un espacio en la línea que marca dónde termina o *finaliza*. La forma en que un programa finaliza varía según el lenguaje.
Una sola instrucción en un programa se llama *sentencia* y usualmente tendrá un carácter o espacio de línea que marca dónde termina la instrucción, o *termina*. Cómo termina un programa varía según el lenguaje.
Las sentencias dentro de un programa pueden depender de datos proporcionados por un usuario o de otra fuente para llevar a cabo instrucciones. Los datos pueden cambiar cómo se comporta un programa, por lo que los lenguajes de programación incluyen una forma de almacenar temporalmente datos para usarlos más tarde. Estos se llaman *variables*. Las variables son sentencias que instruyen a un dispositivo a guardar datos en su memoria. Las variables en los programas son similares a las variables en álgebra, donde tienen un nombre único y su valor puede cambiar con el tiempo.
Las sentencias dentro de un programa pueden depender de datos proporcionados por un usuario o de otro lugar para llevar a cabo instrucciones. Los datos pueden cambiar cómo se comporta un programa, por lo que los lenguajes de programación vienen con una forma de almacenar temporalmente datos para que puedan ser utilizados más tarde. Estos se llaman *variables*. Las variables son sentencias que instruyen a un dispositivo a guardar datos en su memoria. Las variables en los programas son similares a las variables en álgebra, donde tienen un nombre único y su valor puede cambiar con el tiempo.
Es posible que algunas sentencias no sean ejecutadas por un dispositivo. Esto suele ser intencional cuando lo escribe el desarrollador o accidental cuando ocurre un error inesperado. Este tipo de control sobre una aplicación la hace más robusta y mantenible. Normalmente, estos cambios en el control ocurren cuando se cumplen ciertas condiciones. Una sentencia común utilizada en la programación moderna para controlar cómo se ejecuta un programa es la sentencia `if..else`.
Es posible que algunas sentencias no sean ejecutadas por un dispositivo. Esto generalmente ocurre por diseño cuando lo escribe el desarrollador o por accidente cuando ocurre un error inesperado. Este tipo de control sobre una aplicación la hace más robusta y mantenible. Por lo general, estos cambios en el control ocurren cuando se cumplen ciertas condiciones. Una sentencia común utilizada en la programación moderna para controlar cómo se ejecuta un programa es la sentencia `if..else`.
✅ Aprenderás más sobre este tipo de sentencia en lecciones posteriores.
@ -105,17 +105,17 @@ Es posible que algunas sentencias no sean ejecutadas por un dispositivo. Esto su
En esta sección, aprenderás sobre algunos programas que pueden ser muy útiles al comenzar tu camino como desarrollador profesional.
Un **entorno de desarrollo** es un conjunto único de herramientas y características que un desarrollador utiliza con frecuencia al escribir software. Algunas de estas herramientas han sido personalizadas para las necesidades específicas de un desarrollador y pueden cambiar con el tiempo si ese desarrollador cambia de prioridades en el trabajo, proyectos personales o cuando utiliza un lenguaje de programación diferente. Los entornos de desarrollo son tan únicos como los desarrolladores que los usan.
Un **entorno de desarrollo** es un conjunto único de herramientas y características que un desarrollador utiliza frecuentemente al escribir software. Algunas de estas herramientas han sido personalizadas para las necesidades específicas de un desarrollador y pueden cambiar con el tiempo si ese desarrollador cambia sus prioridades en el trabajo, proyectos personales o cuando utiliza un lenguaje de programación diferente. Los entornos de desarrollo son tan únicos como los desarrolladores que los usan.
### Editores
Una de las herramientas más cruciales para el desarrollo de software es el editor. Los editores son donde escribes tu código y, a veces, donde ejecutas tu código.
Los desarrolladores confían en los editores por varias razones adicionales:
Los desarrolladores dependen de los editores por varias razones adicionales:
- *Depuración* ayuda a descubrir errores y fallos al analizar el código línea por línea. Algunos editores tienen capacidades de depuración; pueden personalizarse y añadirse para lenguajes de programación específicos.
- *Depuración* ayuda a descubrir errores y fallos al analizar el código línea por línea. Algunos editores tienen capacidades de depuración; pueden ser personalizados y añadidos para lenguajes de programación específicos.
- *Resaltado de sintaxis* agrega colores y formato de texto al código, haciéndolo más fácil de leer. La mayoría de los editores permiten personalizar el resaltado de sintaxis.
- *Extensiones e integraciones* son herramientas especializadas para desarrolladores, creadas por desarrolladores. Estas herramientas no están integradas en el editor base. Por ejemplo, muchos desarrolladores documentan su código para explicar cómo funciona. Pueden instalar una extensión de corrección ortográfica para ayudar a encontrar errores tipográficos en la documentación. La mayoría de las extensiones están diseñadas para usarse dentro de un editor específico, y la mayoría de los editores incluyen una forma de buscar extensiones disponibles.
- *Extensiones e Integraciones* son herramientas especializadas para desarrolladores, creadas por desarrolladores. Estas herramientas no están integradas en el editor base. Por ejemplo, muchos desarrolladores documentan su código para explicar cómo funciona. Pueden instalar una extensión de corrección ortográfica para ayudar a encontrar errores tipográficos en la documentación. La mayoría de las extensiones están destinadas a ser utilizadas dentro de un editor específico, y la mayoría de los editores vienen con una forma de buscar extensiones disponibles.
- *Personalización* permite a los desarrolladores crear un entorno de desarrollo único que se adapte a sus necesidades. La mayoría de los editores son extremadamente personalizables y también pueden permitir a los desarrolladores crear extensiones personalizadas.
#### Editores Populares y Extensiones para Desarrollo Web
@ -135,7 +135,7 @@ Los desarrolladores confían en los editores por varias razones adicionales:
### Navegadores
Otra herramienta crucial es el navegador. Los desarrolladores web confían en el navegador para ver cómo su código se ejecuta en la web. También se utiliza para mostrar los elementos visuales de una página web que se escriben en el editor, como HTML.
Otra herramienta crucial es el navegador. Los desarrolladores web dependen del navegador para ver cómo su código se ejecuta en la web. También se utiliza para mostrar los elementos visuales de una página web que se escriben en el editor, como HTML.
Muchos navegadores vienen con *herramientas para desarrolladores* (DevTools) que contienen un conjunto de características útiles e información para ayudar a los desarrolladores a recopilar y capturar información importante sobre su aplicación. Por ejemplo: Si una página web tiene errores, a veces es útil saber cuándo ocurrieron. Las DevTools en un navegador pueden configurarse para capturar esta información.
@ -147,11 +147,11 @@ Muchos navegadores vienen con *herramientas para desarrolladores* (DevTools) que
### Herramientas de Línea de Comandos
Algunos desarrolladores prefieren una vista menos gráfica para sus tareas diarias y confían en la línea de comandos para lograrlo. Escribir código requiere una cantidad significativa de tipeo y algunos desarrolladores prefieren no interrumpir su flujo en el teclado. Usan atajos de teclado para cambiar entre ventanas del escritorio, trabajar en diferentes archivos y usar herramientas. La mayoría de las tareas pueden completarse con un mouse, pero una ventaja de usar la línea de comandos es que se puede hacer mucho sin necesidad de cambiar entre el mouse y el teclado. Otra ventaja de la línea de comandos es que son configurables y puedes guardar una configuración personalizada, cambiarla más tarde e importarla a otras máquinas de desarrollo. Dado que los entornos de desarrollo son tan únicos para cada desarrollador, algunos evitarán usar la línea de comandos, otros dependerán completamente de ella y algunos preferirán una combinación de ambas.
Algunos desarrolladores prefieren una vista menos gráfica para sus tareas diarias y dependen de la línea de comandos para lograrlo. Escribir código requiere una cantidad significativa de tipeo y algunos desarrolladores prefieren no interrumpir su flujo en el teclado. Utilizan atajos de teclado para cambiar entre ventanas del escritorio, trabajar en diferentes archivos y usar herramientas. La mayoría de las tareas se pueden completar con un mouse, pero una ventaja de usar la línea de comandos es que se puede hacer mucho con herramientas de línea de comandos sin necesidad de cambiar entre el mouse y el teclado. Otra ventaja de la línea de comandos es que son configurables y puedes guardar una configuración personalizada, cambiarla más tarde e importarla a otras máquinas de desarrollo. Debido a que los entornos de desarrollo son tan únicos para cada desarrollador, algunos evitarán usar la línea de comandos, otros dependerán completamente de ella y algunos preferirán una mezcla de ambos.
### Opciones Populares de Línea de Comandos
Las opciones para la línea de comandos variarán según el sistema operativo que uses.
Las opciones para la línea de comandos variarán según el sistema operativo que utilices.
*💻 = viene preinstalado en el sistema operativo.*
@ -182,7 +182,7 @@ Las opciones para la línea de comandos variarán según el sistema operativo qu
### Documentación
Cuando un desarrollador quiere aprender algo nuevo, lo más probable es que recurra a la documentación para aprender a usarlo. Los desarrolladores a menudo confían en la documentación para guiarlos sobre cómo usar herramientas y lenguajes correctamente, y también para obtener un conocimiento más profundo de cómo funcionan.
Cuando un desarrollador quiere aprender algo nuevo, probablemente recurrirá a la documentación para aprender cómo usarlo. Los desarrolladores suelen depender de la documentación para guiarlos sobre cómo usar herramientas y lenguajes correctamente, y también para obtener un conocimiento más profundo de cómo funcionan.
#### Documentación Popular sobre Desarrollo Web
@ -192,7 +192,7 @@ Cuando un desarrollador quiere aprender algo nuevo, lo más probable es que recu
- [Documentación para desarrolladores de Microsoft](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), para [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ Investiga un poco: Ahora que conoces los conceptos básicos del entorno de un desarrollador web, compáralo y contrástalo con el entorno de un diseñador web.
✅ Investiga: Ahora que conoces los conceptos básicos del entorno de un desarrollador web, compáralo con el entorno de un diseñador web.
---
@ -205,13 +205,15 @@ Compara algunos lenguajes de programación. ¿Cuáles son algunas de las caracte
## Revisión y Autoestudio
Estudia un poco sobre los diferentes lenguajes disponibles para el programador. Intenta escribir una línea en un lenguaje y luego reescríbela en otros dos. ¿Qué aprendiste?
Estudia un poco sobre los diferentes lenguajes disponibles para el programador. Intenta escribir una línea en un lenguaje y luego reescribirla en otros dos. ¿Qué aprendiste?
## Tarea
[Leer la Documentación](assignment.md)
> Nota: Al seleccionar herramientas para tu tarea, no elijas editores, navegadores o herramientas de línea de comandos ya listados arriba.
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -1,23 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-24T13:01:21+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T08:28:32+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "es"
}
-->
# Leyendo la Documentación
## Instrucciones
Existen muchas herramientas que un desarrollador web puede necesitar y que se encuentran en la [documentación de MDN sobre herramientas del lado del cliente](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Selecciona 3 herramientas que no se hayan cubierto en la lección, explica por qué un desarrollador web las usaría y busca una herramienta que pertenezca a esta categoría para compartir su documentación. No utilices el mismo ejemplo de herramienta que aparece en la documentación de MDN.
Hay muchas herramientas que un desarrollador web puede necesitar que están enumeradas en la [documentación de MDN sobre herramientas del lado del cliente](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview). Selecciona **tres herramientas** que **no estén cubiertas en esta lección** (excluyendo [lista de herramientas específicas o referencia al contenido de la lección]), explica **por qué** un desarrollador web usaría cada herramienta y encuentra una herramienta que encaje en cada categoría. Para cada una, comparte un enlace a su documentación oficial (no el ejemplo usado en MDN).
**Formato:**
- Nombre de la herramienta
- Por qué un desarrollador web la usaría (2-3 oraciones)
- Enlace a la documentación
**Extensión:**
- Cada explicación debe tener 2-3 oraciones.
## Rúbrica
Ejemplar | Adecuado | Necesita Mejorar
Excepcional | Adecuado | Necesita Mejorar
--- | --- | -- |
|Explicó por qué un desarrollador web usaría la herramienta| Explicó cómo, pero no por qué un desarrollador usaría la herramienta| No mencionó cómo ni por qué un desarrollador usaría la herramienta |
Explicó por qué un desarrollador web usaría la herramienta | Explicó cómo, pero no por qué un desarrollador usaría la herramienta | No mencionó cómo ni por qué un desarrollador usaría la herramienta |
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-24T12:23:59+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T08:27:26+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "es"
}
@ -11,13 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## Instrucciones
Imagina que estás creando un carrito de compras. Escribe algo de documentación sobre los tipos de datos que necesitarías para completar tu experiencia de compra. ¿Cómo llegaste a tus elecciones?
Imagina que estás creando un carrito de compras. Escribe documentación sobre los tipos de datos que necesitarías para completar tu experiencia de compra. Para cada tipo de dato, explica cómo y por qué lo usarías, y proporciona un ejemplo. Los seis tipos de datos de JavaScript son: String, Number, Boolean, Null, Undefined y Object.
## Rúbrica
## Rubrica
Criterios | Ejemplar | Adecuado | Necesita Mejorar
--- | --- | --- | --- |
||Se enumeran y exploran en detalle los seis tipos de datos, documentando su uso|Se exploran cuatro tipos de datos|Se exploran dos tipos de datos|
Tipos de Datos | Los seis tipos de datos están listados, explorados en detalle y documentados con ejemplos | Cuatro tipos de datos están explorados con alguna explicación | Dos tipos de datos están explorados con una explicación mínima |
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -1,23 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-24T12:02:29+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T08:28:47+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "es"
}
-->
# Practica tu HTML: Crea un diseño de blog
# Asignación de Práctica HTML: Crear un Modelo de Blog
## Objetivo
Diseñar y codificar manualmente la estructura HTML para la página principal de un blog personal. Este ejercicio te ayudará a practicar HTML semántico, planificación de diseño y organización de código.
## Instrucciones
Imagina que estás diseñando o rediseñando tu sitio web personal. Crea un diseño gráfico de tu sitio y luego escribe el marcado HTML que usarías para construir los diversos elementos del sitio. Puedes hacerlo en papel y escanearlo, o usar el software de tu elección, solo asegúrate de escribir el marcado HTML a mano.
1. **Diseña el Modelo de tu Blog**
- Haz un boceto visual de la página principal de tu blog. Incluye secciones clave como encabezado, navegación, contenido principal, barra lateral y pie de página.
- Puedes usar papel y escanear tu boceto, o utilizar herramientas digitales (por ejemplo, Figma, Adobe XD, Canva o incluso PowerPoint).
2. **Identifica los Elementos HTML**
- Haz una lista de los elementos HTML que planeas usar para cada sección (por ejemplo, `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>`, etc.).
3. **Escribe el Código HTML**
- Codifica manualmente el HTML para tu modelo. Enfócate en la estructura semántica y las mejores prácticas.
- Incluye al menos 10 elementos HTML distintos.
- Agrega comentarios para explicar tus elecciones y estructura.
4. **Entrega tu Trabajo**
- Sube tu boceto/modelo y tu archivo HTML.
- Opcionalmente, proporciona una breve reflexión (23 oraciones) sobre tus decisiones de diseño.
## Rúbrica
| Criterios | Ejemplar | Adecuado | Necesita Mejorar |
| --------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| | Un diseño de blog está representado visualmente con al menos 10 elementos de marcado mostrados | Un diseño de blog está representado visualmente con alrededor de 5 elementos de marcado mostrados | Un diseño de blog está representado visualmente con como máximo 3 elementos de marcado mostrados |
| Criterios | Sobresaliente | Adecuado | Necesita Mejorar |
|------------------|--------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| Modelo Visual | Modelo claro y detallado con secciones etiquetadas y diseño bien pensado | Modelo básico con algunas secciones etiquetadas | Modelo mínimo o poco claro; carece de etiquetas en las secciones |
| Elementos HTML | Usa 10+ elementos HTML semánticos; demuestra comprensión de estructura y mejores prácticas | Usa 59 elementos HTML; algo de estructura semántica | Usa menos de 5 elementos; carece de estructura semántica |
| Calidad del Código | Código bien organizado, legible y con comentarios; sigue los estándares HTML | Código mayormente organizado; pocos comentarios | Código desorganizado; carece de comentarios |
| Reflexión | Reflexión profunda sobre las decisiones de diseño y los desafíos | Reflexión básica | Sin reflexión o carece de relevancia |
## Consejos
- Usa etiquetas HTML semánticas para mejorar la accesibilidad y el SEO.
- Organiza tu código con indentación y comentarios.
- Consulta la [Referencia de Elementos HTML de MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) para orientación.
- Piensa en cómo tu diseño podría ampliarse o estilizarse en futuras asignaciones.
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -1,23 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-24T12:10:23+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T08:28:39+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "es"
}
-->
# Refactorización de CSS
# Tarea de Refactorización de CSS
## Objetivo
Refactorizar el proyecto del terrario para usar **Flexbox** o **CSS Grid** en el diseño. Actualiza el HTML y CSS según sea necesario para lograr un diseño moderno y responsivo. No es necesario implementar elementos arrastrables; céntrate únicamente en el diseño y el estilo.
## Instrucciones
Rediseña el terrario utilizando Flexbox o CSS Grid, y toma capturas de pantalla para demostrar que lo has probado en varios navegadores. Es posible que necesites modificar el marcado, así que crea una nueva versión de la aplicación con el arte en su lugar para tu refactorización. No te preocupes por hacer que los elementos sean arrastrables; por ahora, solo refactoriza el HTML y CSS.
1. **Crea una nueva versión** de la aplicación del terrario. Actualiza el marcado y el CSS para usar Flexbox o CSS Grid en el diseño.
2. **Asegúrate de que el arte y los elementos estén en su lugar** como en la versión original.
3. **Prueba tu diseño** en al menos dos navegadores diferentes (por ejemplo, Chrome, Firefox, Edge).
4. **Toma capturas de pantalla** de tu terrario en cada navegador para demostrar la compatibilidad entre navegadores.
5. **Entrega** tu código actualizado y las capturas de pantalla.
## Rúbrica
| Criterios | Ejemplar | Adecuado | Necesita Mejoras |
| --------- | ---------------------------------------------------------------- | ----------------------------- | ------------------------------------ |
| | Presenta un terrario completamente rediseñado usando Flexbox o CSS Grid | Rediseña algunos de los elementos | No logra rediseñar el terrario en absoluto |
| Criterios | Ejemplar | Adecuado | Necesita Mejorar |
|------------------|--------------------------------------------------------------------------|---------------------------------------|----------------------------------------|
| Diseño | Totalmente refactorizado usando Flexbox o CSS Grid; visualmente atractivo y responsivo | Algunos elementos refactorizados; uso parcial de Flexbox o Grid | Poco o ningún uso de Flexbox o Grid; diseño sin cambios |
| Compatibilidad entre navegadores | Capturas de pantalla proporcionadas para múltiples navegadores; apariencia consistente | Capturas de pantalla para un navegador; pequeñas inconsistencias | Sin capturas de pantalla o grandes inconsistencias |
| Calidad del código | HTML/CSS limpio y bien organizado; comentarios claros | Algo organizado; pocos comentarios | Código desorganizado; sin comentarios |
## Consejos
- Revisa las guías de [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) y [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/).
- Usa las herramientas de desarrollo del navegador para probar la capacidad de respuesta.
- Comenta tu código para mayor claridad.
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -1,158 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T13:59:46+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T08:27:31+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "es"
}
-->
# Usando un editor de código
***
Esta lección cubre los conceptos básicos de cómo usar [VSCode.dev](https://vscode.dev), un editor de código basado en la web, para que puedas realizar cambios en tu código y contribuir a un proyecto sin necesidad de instalar nada en tu computadora.
# Usando un Editor de Código: Dominando [VSCode.dev](https://vscode.dev)
## Objetivos de aprendizaje
**¡Bienvenido!**
Esta lección te llevará desde lo básico hasta el uso avanzado de [VSCode.dev](https://vscode.dev), el potente editor de código basado en la web. Aprenderás a editar código con confianza, gestionar proyectos, rastrear cambios, instalar extensiones y colaborar como un profesional, todo desde tu navegador, sin necesidad de instalación.
En esta lección, aprenderás a:
***
- Usar un editor de código en un proyecto de programación
- Rastrear cambios con control de versiones
- Personalizar el editor para el desarrollo
## Objetivos de Aprendizaje
### Prerrequisitos
Al final de esta lección, serás capaz de:
Antes de comenzar, necesitarás crear una cuenta en [GitHub](https://github.com). Dirígete a [GitHub](https://github.com/) y crea una cuenta si aún no lo has hecho.
- Usar eficientemente un editor de código en cualquier proyecto, en cualquier lugar
- Rastrear tu trabajo sin problemas con el control de versiones integrado
- Personalizar y optimizar tu flujo de trabajo de desarrollo con personalizaciones y extensiones del editor
### Introducción
***
Un editor de código es una herramienta esencial para escribir programas y colaborar en proyectos de programación existentes. Una vez que entiendas los conceptos básicos de un editor y cómo aprovechar sus funciones, podrás aplicarlos al escribir código.
## Prerrequisitos
## Comenzando con VSCode.dev
[VSCode.dev](https://vscode.dev) es un editor de código en la web. No necesitas instalar nada para usarlo, es como abrir cualquier otro sitio web. Para comenzar con el editor, abre el siguiente enlace: [https://vscode.dev](https://vscode.dev). Si no has iniciado sesión en [GitHub](https://github.com/), sigue las indicaciones para iniciar sesión o crear una cuenta nueva y luego inicia sesión.
Para comenzar, **regístrate para obtener una cuenta gratuita en [GitHub](https://github.com)**, lo que te permitirá gestionar repositorios de código y colaborar a nivel mundial. Si aún no tienes una cuenta, [créala aquí](https://github.com/).
Una vez que se cargue, debería verse similar a esta imagen:
***
![VSCode.dev por defecto](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.es.png)
## ¿Por qué usar un editor de código basado en la web?
Hay tres secciones principales, comenzando desde la izquierda y moviéndose hacia la derecha:
Un **editor de código** como VSCode.dev es tu centro de comando para escribir, editar y gestionar código. Con una interfaz intuitiva, muchas funciones y acceso inmediato a través del navegador, puedes:
1. La _barra de actividad_, que incluye algunos íconos, como la lupa 🔎, el engranaje ⚙️ y algunos otros.
2. La barra de actividad expandida, que por defecto muestra el _Explorador_, llamada la _barra lateral_.
3. Y finalmente, el área de código a la derecha.
- Editar proyectos en cualquier dispositivo
- Evitar la molestia de instalaciones
- Colaborar y contribuir al instante
Haz clic en cada uno de los íconos para mostrar un menú diferente. Una vez que termines, haz clic en el _Explorador_ para volver al punto de inicio.
Una vez que te sientas cómodo con VSCode.dev, estarás preparado para abordar tareas de programación desde cualquier lugar y en cualquier momento.
Cuando empieces a crear código o modificar código existente, esto sucederá en el área más grande a la derecha. Usarás esta área para visualizar código existente también, lo cual harás a continuación.
***
## Abrir un repositorio de GitHub
Lo primero que necesitarás es abrir un repositorio de GitHub. Hay múltiples formas de abrir un repositorio. En esta sección verás dos maneras diferentes de abrir un repositorio para comenzar a trabajar en los cambios.
## Comenzando con VSCode.dev
### 1. Con el editor
Navega a **[VSCode.dev](https://vscode.dev)**: sin instalaciones, sin descargas. Iniciar sesión con GitHub desbloquea acceso completo, incluyendo la sincronización de tus configuraciones, extensiones y repositorios. Si se te solicita, conecta tu cuenta de GitHub.
Usa el propio editor para abrir un repositorio remoto. Si vas a [VSCode.dev](https://vscode.dev), verás un botón de _"Abrir repositorio remoto"_:
Después de cargar, tu espacio de trabajo se verá así:
![Abrir repositorio remoto](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.es.png)
![VSCode.dev por defecto](../images/default-vscode-dev tiene tres secciones principales de izquierda a derecha:
- **Barra de actividades:** Los íconos como 🔎 (Buscar), ⚙️ (Configuraciones), archivos, control de código fuente, etc.
- **Barra lateral:** Cambia de contexto según el ícono seleccionado en la barra de actividades (por defecto es *Explorador* para mostrar archivos).
- **Área de edición/código:** La sección más grande a la derecha, donde realmente editarás y verás el código.
También puedes usar la paleta de comandos. La paleta de comandos es un cuadro de entrada donde puedes escribir cualquier palabra que sea parte de un comando o acción para encontrar el comando correcto para ejecutar. Usa el menú en la parte superior izquierda, luego selecciona _Ver_ y elige _Paleta de comandos_, o utiliza el siguiente atajo de teclado: Ctrl-Shift-P (en MacOS sería Command-Shift-P).
Haz clic en los íconos para explorar las funciones, pero regresa al _Explorador_ para mantener tu lugar.
![Menú de paleta](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.es.png)
***
Una vez que se abra el menú, escribe _abrir repositorio remoto_ y selecciona la primera opción. Aparecerán múltiples repositorios de los que formas parte o que has abierto recientemente. También puedes usar una URL completa de GitHub para seleccionar uno. Usa la siguiente URL y pégala en el cuadro:
## Abrir un repositorio de GitHub
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
### Método 1: Desde el editor
✅ Si es exitoso, verás todos los archivos de este repositorio cargados en el editor de texto.
1. Ve a [VSCode.dev](https://vscode.dev). Haz clic en **"Abrir repositorio remoto."**
### 2. Usando la URL
![Abrir repositorio remoto](../../../../8-code-editor/images/open-remote-repository usa el _Command Palette_ (Ctrl-Shift-P, o Cmd-Shift-P en Mac).
También puedes usar directamente una URL para cargar un repositorio. Por ejemplo, la URL completa del repositorio actual es [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners), pero puedes reemplazar el dominio de GitHub con `VSCode.dev/github` y cargar el repositorio directamente. La URL resultante sería [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![Menú de paleta](../images/palette-menu.pngabrir repositorio remoto.”
- Selecciona la opción.
- Pega la URL de tu repositorio de GitHub (por ejemplo, `https://github.com/microsoft/Web-Dev-For-Beginners`) y presiona Enter.
## Editar archivos
Si todo sale bien, verás el proyecto completo cargado y listo para editar.
Una vez que hayas abierto el repositorio en el navegador/vscode.dev, el siguiente paso será realizar actualizaciones o cambios en el proyecto.
***
### 1. Crear un archivo nuevo
### Método 2: Al instante vía URL
Puedes crear un archivo dentro de una carpeta existente o en el directorio/carpeta raíz. Para crear un archivo nuevo, abre una ubicación/directorio donde quieras guardar el archivo y selecciona el ícono _'Nuevo archivo ...'_ en la barra de actividad _(izquierda)_, dale un nombre y presiona enter.
Transforma cualquier URL de repositorio de GitHub para abrir directamente en VSCode.dev reemplazando `github.com` con `vscode.dev/github`.
Ejemplo:
![Crear un archivo nuevo](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.es.png)
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
### 2. Editar y guardar un archivo en el repositorio
Esta función acelera el acceso rápido a cualquier proyecto.
Usar vscode.dev es útil cuando quieres realizar actualizaciones rápidas a tu proyecto sin tener que cargar ningún software localmente.
Para actualizar tu código, haz clic en el ícono 'Explorador', también ubicado en la barra de actividad, para ver los archivos y carpetas en el repositorio.
Selecciona un archivo para abrirlo en el área de código, realiza tus cambios y guarda.
***
![Editar un archivo](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.es.png)
## Editar archivos en tu proyecto
Una vez que hayas terminado de actualizar tu proyecto, selecciona el ícono _`control de origen`_, que contiene todos los nuevos cambios que has realizado en tu repositorio.
Una vez que tu repositorio esté abierto, puedes:
Para ver los cambios que realizaste en tu proyecto, selecciona los archivos en la carpeta `Cambios` en la barra de actividad expandida. Esto abrirá un 'Árbol de trabajo' para que visualices los cambios realizados en el archivo. El color rojo muestra una omisión en el proyecto, mientras que el verde indica una adición.
### 1. **Crear un nuevo archivo**
- En la barra lateral *Explorador*, navega a la carpeta deseada o usa la raíz.
- Haz clic en el ícono _Nuevo archivo ..._.
- Nombra tu archivo, presiona **Enter**, y tu archivo aparecerá al instante.
![Ver cambios](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.es.png)
![Crear un nuevo archivo](../images/create-new-file 2. **Editar y guardar archivos**
Si estás satisfecho con los cambios realizados, pasa el cursor sobre la carpeta `Cambios` y haz clic en el botón `+` para preparar los cambios. Preparar simplemente significa que estás preparando tus cambios para confirmarlos en GitHub.
- Haz clic en un archivo en el *Explorador* para abrirlo en el área de código.
- Realiza los cambios que necesites.
- VSCode.dev guarda automáticamente tus cambios, pero puedes presionar Ctrl+S para guardar manualmente.
Si no estás cómodo con algunos cambios y deseas descartarlos, pasa el cursor sobre la carpeta `Cambios` y selecciona el ícono `deshacer`.
![Editar un archivo](../images/edit-a-file.png. **Rastrear y confirmar cambios con control de versiones**
Luego, escribe un `mensaje de confirmación` _(Una descripción del cambio que realizaste en el proyecto)_, haz clic en el ícono de verificación para confirmar y enviar tus cambios.
¡VSCode.dev tiene integrado el control de versiones **Git**!
Una vez que hayas terminado de trabajar en tu proyecto, selecciona el ícono del `menú hamburguesa` en la parte superior izquierda para regresar al repositorio en github.com.
- Haz clic en el ícono _'Control de código fuente'_ para ver todos los cambios realizados.
- Los archivos en la carpeta `Changes` muestran adiciones (verde) y eliminaciones (rojo).
![Ver cambios](../images/working-tree.png cambios haciendo clic en el `+` junto a los archivos para prepararlos para confirmar.
- **Descartar** cambios no deseados haciendo clic en el ícono de deshacer.
- Escribe un mensaje claro de confirmación, luego haz clic en la marca de verificación para confirmar y enviar.
![Preparar y confirmar cambios](../../../../8-code-editor/images/edit-vscode.dev.gif)
Para regresar a tu repositorio en GitHub, selecciona el menú hamburguesa en la parte superior izquierda.
## Usando extensiones
![Preparar y confirmar cambios](../images/edit-vscode.dev con extensiones
Instalar extensiones en VSCode te permite agregar nuevas funciones y opciones de personalización al entorno de desarrollo en tu editor para mejorar tu flujo de trabajo. Estas extensiones también te ayudan a agregar soporte para múltiples lenguajes de programación y suelen ser extensiones genéricas o basadas en lenguajes.
Las extensiones te permiten agregar lenguajes, temas, depuradores y herramientas de productividad a VSCode.dev, haciendo tu vida de programación más fácil y divertida.
Para explorar la lista de todas las extensiones disponibles, haz clic en el ícono _`Extensiones`_ en la barra de actividad y comienza a escribir el nombre de la extensión en el campo de texto etiquetado como _'Buscar extensiones en el Marketplace'_.
Verás una lista de extensiones, cada una con **el nombre de la extensión, el nombre del editor, una descripción breve, el número de descargas** y **una calificación por estrellas**.
### Navegar y gestionar extensiones
![Detalles de extensiones](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.es.png)
- Haz clic en el **ícono de Extensiones** en la barra de actividades.
- Busca una extensión en el cuadro _'Buscar extensiones en el Marketplace'_.
También puedes ver todas las extensiones previamente instaladas expandiendo la carpeta _`Instaladas`_, extensiones populares utilizadas por la mayoría de los desarrolladores en la carpeta _`Populares`_ y extensiones recomendadas para ti, ya sea por usuarios en el mismo espacio de trabajo o basadas en tus archivos abiertos recientemente en la carpeta _`Recomendadas`_.
![Detalles de la extensión](../images/extension-details:
- **Instaladas**: Todas las extensiones que has agregado
- **Populares**: Favoritas de la industria
- **Recomendadas**: Adaptadas a tu flujo de trabajo
![Ver extensiones](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.es.png)
![Ver extensiones](
### 1. Instalar extensiones
Para instalar una extensión, escribe el nombre de la extensión en el campo de búsqueda y haz clic en ella para ver información adicional sobre la extensión en el área de código una vez que aparezca en la barra de actividad expandida.
***
Puedes hacer clic en el _botón azul de instalar_ en la barra de actividad expandida para instalarla o usar el botón de instalar que aparece en el área de código una vez que seleccionas la extensión para cargar información adicional.
### 1. **Instalar extensiones**
![Instalar extensiones](../../../../8-code-editor/images/install-extension.gif)
- Ingresa el nombre de la extensión en la búsqueda, haz clic en ella y revisa los detalles en el editor.
- Presiona el **botón azul de Instalar** en la barra lateral _o_ en el área principal de código.
### 2. Personalizar extensiones
![Instalar extensiones](../images/install-extension 2. **Personalizar extensiones**
Después de instalar la extensión, es posible que necesites modificar su comportamiento y personalizarla según tus preferencias. Para hacerlo, selecciona el ícono de Extensiones, y esta vez, tu extensión aparecerá en la carpeta _Instaladas_, haz clic en el _**ícono de engranaje**_ y navega a _Configuración de extensiones_.
- Encuentra tu extensión instalada.
- Haz clic en el **ícono de engranaje** → selecciona _Configuraciones de la extensión_ para ajustar los comportamientos a tu gusto.
![Modificar configuración de extensiones](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.es.png)
![Modificar configuraciones de la extensión](../images/extension-settings 3. **Gestionar extensiones**
Puedes:
### 3. Administrar extensiones
- **Deshabilitar:** Apagar temporalmente una extensión mientras la mantienes instalada
- **Desinstalar:** Eliminarla permanentemente si ya no la necesitas
Después de instalar y usar tu extensión, vscode.dev ofrece opciones para administrar tu extensión según diferentes necesidades. Por ejemplo, puedes elegir:
Encuentra la extensión, presiona el ícono de engranaje y selecciona Deshabilitar o Desinstalar, o usa los botones azules en el área de código.
- **Deshabilitar:** _(Puedes deshabilitar temporalmente una extensión cuando ya no la necesites pero no quieras desinstalarla completamente)_
***
Selecciona la extensión instalada en la barra de actividad expandida > haz clic en el ícono de engranaje > selecciona 'Deshabilitar' o 'Deshabilitar (Espacio de trabajo)' **O** abre la extensión en el área de código y haz clic en el botón azul Deshabilitar.
## Tarea
- **Desinstalar:** Selecciona la extensión instalada en la barra de actividad expandida > haz clic en el ícono de engranaje > selecciona 'Desinstalar' **O** abre la extensión en el área de código y haz clic en el botón azul Desinstalar.
Pon a prueba tus habilidades: [Crea un sitio web de currículum usando vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## Tarea
## Exploración adicional y autoestudio
[Crear un sitio web de currículum usando vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- Profundiza con [la documentación oficial de VSCode Web](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza).
- Explora funciones avanzadas del espacio de trabajo, atajos de teclado y configuraciones.
## Revisión y autoestudio
***
Lee más sobre [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) y algunas de sus otras características.
**¡Ahora estás listo para programar, crear y colaborar desde cualquier lugar, en cualquier dispositivo, usando VSCode.dev!**
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:12:55+00:00",
"source_file": "AGENTS.md",
"language_code": "es"
}
-->
# AGENTS.md
## Resumen del Proyecto
Este es un repositorio de currículo educativo diseñado para enseñar los fundamentos del desarrollo web a principiantes. El currículo es un curso completo de 12 semanas desarrollado por los Microsoft Cloud Advocates, que incluye 24 lecciones prácticas sobre JavaScript, CSS y HTML.
### Componentes Clave
- **Contenido Educativo**: 24 lecciones estructuradas organizadas en módulos basados en proyectos
- **Proyectos Prácticos**: Terrario, Juego de Escritura, Extensión de Navegador, Juego Espacial, Aplicación Bancaria, Editor de Código y Asistente de Chat con IA
- **Cuestionarios Interactivos**: 48 cuestionarios con 3 preguntas cada uno (evaluaciones antes y después de las lecciones)
- **Soporte Multilingüe**: Traducciones automáticas a más de 50 idiomas mediante GitHub Actions
- **Tecnologías**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (para proyectos de IA)
### Arquitectura
- Repositorio educativo con estructura basada en lecciones
- Cada carpeta de lección contiene README, ejemplos de código y soluciones
- Proyectos independientes en directorios separados (quiz-app, varios proyectos de lecciones)
- Sistema de traducción utilizando GitHub Actions (co-op-translator)
- Documentación servida mediante Docsify y disponible en formato PDF
## Comandos de Configuración
Este repositorio está diseñado principalmente para el consumo de contenido educativo. Para trabajar con proyectos específicos:
### Configuración del Repositorio Principal
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Configuración de la Aplicación de Cuestionarios (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### API del Proyecto Bancario (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### Proyectos de Extensión de Navegador
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### Proyectos del Juego Espacial
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### Proyecto de Chat (Backend en Python)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## Flujo de Trabajo de Desarrollo
### Para Contribuidores de Contenido
1. **Haz un fork del repositorio** en tu cuenta de GitHub
2. **Clona tu fork** localmente
3. **Crea una nueva rama** para tus cambios
4. Realiza cambios en el contenido de las lecciones o ejemplos de código
5. Prueba los cambios de código en los directorios de proyectos relevantes
6. Envía pull requests siguiendo las pautas de contribución
### Para Estudiantes
1. Haz un fork o clona el repositorio
2. Navega por los directorios de las lecciones en orden
3. Lee los archivos README de cada lección
4. Completa los cuestionarios previos a la lección en https://ff-quizzes.netlify.app/web/
5. Trabaja con los ejemplos de código en las carpetas de las lecciones
6. Completa las tareas y desafíos
7. Realiza los cuestionarios posteriores a la lección
### Desarrollo en Vivo
- **Documentación**: Ejecuta `docsify serve` en la raíz (puerto 3000)
- **Aplicación de Cuestionarios**: Ejecuta `npm run dev` en el directorio quiz-app
- **Proyectos**: Usa la extensión Live Server de VS Code para proyectos HTML
- **Proyectos API**: Ejecuta `npm start` en los directorios API correspondientes
## Instrucciones de Pruebas
### Pruebas de la Aplicación de Cuestionarios
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### Pruebas de la API Bancaria
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### Enfoque General de Pruebas
- Este es un repositorio educativo sin pruebas automatizadas completas
- Las pruebas manuales se centran en:
- Ejecución de ejemplos de código sin errores
- Funcionamiento correcto de los enlaces en la documentación
- Construcción exitosa de los proyectos
- Cumplimiento de las mejores prácticas en los ejemplos
### Verificaciones Antes de Enviar
- Ejecuta `npm run lint` en los directorios con package.json
- Verifica que los enlaces en markdown sean válidos
- Prueba los ejemplos de código en el navegador o Node.js
- Asegúrate de que las traducciones mantengan la estructura adecuada
## Pautas de Estilo de Código
### JavaScript
- Usa sintaxis moderna ES6+
- Sigue las configuraciones estándar de ESLint proporcionadas en los proyectos
- Usa nombres de variables y funciones significativos para mayor claridad educativa
- Agrega comentarios explicando conceptos para los estudiantes
- Formatea usando Prettier donde esté configurado
### HTML/CSS
- Elementos semánticos de HTML5
- Principios de diseño responsivo
- Convenciones claras para nombrar clases
- Comentarios explicando técnicas de CSS para los estudiantes
### Python
- Directrices de estilo PEP 8
- Ejemplos de código claros y educativos
- Indicaciones de tipo donde sean útiles para el aprendizaje
### Documentación en Markdown
- Jerarquía clara de encabezados
- Bloques de código con especificación de lenguaje
- Enlaces a recursos adicionales
- Capturas de pantalla e imágenes en directorios `images/`
- Texto alternativo para imágenes para accesibilidad
### Organización de Archivos
- Lecciones numeradas secuencialmente (1-getting-started-lessons, 2-js-basics, etc.)
- Cada proyecto tiene directorios `solution/` y, a menudo, `start/` o `your-work/`
- Imágenes almacenadas en carpetas `images/` específicas de cada lección
- Traducciones en la estructura `translations/{language-code}/`
## Construcción y Despliegue
### Despliegue de la Aplicación de Cuestionarios (Azure Static Web Apps)
La aplicación quiz-app está configurada para el despliegue en Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Configuración de Azure Static Web Apps:
- **Ubicación de la aplicación**: `/quiz-app`
- **Ubicación de salida**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Generación de Documentación en PDF
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Documentación con Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### Construcciones Específicas de Proyectos
Cada directorio de proyecto puede tener su propio proceso de construcción:
- Proyectos Vue: `npm run build` crea paquetes de producción
- Proyectos estáticos: Sin paso de construcción, sirve los archivos directamente
## Pautas para Pull Requests
### Formato del Título
Usa títulos claros y descriptivos que indiquen el área de cambio:
- `[Quiz-app] Añadir nuevo cuestionario para la lección X`
- `[Lesson-3] Corregir error tipográfico en el proyecto terrario`
- `[Translation] Añadir traducción al español para la lección 5`
- `[Docs] Actualizar instrucciones de configuración`
### Verificaciones Requeridas
Antes de enviar un PR:
1. **Calidad del Código**:
- Ejecuta `npm run lint` en los directorios de proyectos afectados
- Corrige todos los errores y advertencias de linting
2. **Verificación de Construcción**:
- Ejecuta `npm run build` si aplica
- Asegúrate de que no haya errores de construcción
3. **Validación de Enlaces**:
- Prueba todos los enlaces en markdown
- Verifica que las referencias a imágenes funcionen
4. **Revisión de Contenido**:
- Revisa ortografía y gramática
- Asegúrate de que los ejemplos de código sean correctos y educativos
- Verifica que las traducciones mantengan el significado original
### Requisitos de Contribución
- Aceptar el Microsoft CLA (verificación automática en el primer PR)
- Seguir el [Código de Conducta de Código Abierto de Microsoft](https://opensource.microsoft.com/codeofconduct/)
- Consulta [CONTRIBUTING.md](./CONTRIBUTING.md) para pautas detalladas
- Referencia números de issues en la descripción del PR si aplica
### Proceso de Revisión
- Los PRs son revisados por mantenedores y la comunidad
- Se prioriza la claridad educativa
- Los ejemplos de código deben seguir las mejores prácticas actuales
- Las traducciones son revisadas para precisión y adecuación cultural
## Sistema de Traducción
### Traducción Automática
- Utiliza GitHub Actions con el workflow co-op-translator
- Traduce automáticamente a más de 50 idiomas
- Archivos fuente en directorios principales
- Archivos traducidos en `translations/{language-code}/`
### Añadir Mejoras Manuales a Traducciones
1. Localiza el archivo en `translations/{language-code}/`
2. Realiza mejoras manteniendo la estructura
3. Asegúrate de que los ejemplos de código sigan siendo funcionales
4. Prueba cualquier contenido de cuestionarios localizado
### Metadatos de Traducción
Los archivos traducidos incluyen un encabezado de metadatos:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## Depuración y Resolución de Problemas
### Problemas Comunes
**La aplicación de cuestionarios no inicia**:
- Verifica la versión de Node.js (se recomienda v14+)
- Elimina `node_modules` y `package-lock.json`, ejecuta `npm install` nuevamente
- Verifica conflictos de puertos (por defecto: Vite usa el puerto 5173)
**El servidor API no inicia**:
- Verifica que la versión de Node.js cumpla con el mínimo (node >=10)
- Comprueba si el puerto ya está en uso
- Asegúrate de que todas las dependencias estén instaladas con `npm install`
**La extensión de navegador no se carga**:
- Verifica que manifest.json esté correctamente formateado
- Revisa la consola del navegador para errores
- Sigue las instrucciones específicas del navegador para instalar extensiones
**Problemas con el proyecto de chat en Python**:
- Asegúrate de que el paquete OpenAI esté instalado: `pip install openai`
- Verifica que la variable de entorno GITHUB_TOKEN esté configurada
- Revisa los permisos de acceso a GitHub Models
**Docsify no sirve la documentación**:
- Instala docsify-cli globalmente: `npm install -g docsify-cli`
- Ejecuta desde el directorio raíz del repositorio
- Verifica que `docs/_sidebar.md` exista
### Consejos para el Entorno de Desarrollo
- Usa VS Code con la extensión Live Server para proyectos HTML
- Instala las extensiones ESLint y Prettier para un formato consistente
- Usa las herramientas de desarrollo del navegador para depurar JavaScript
- Para proyectos Vue, instala la extensión Vue DevTools en el navegador
### Consideraciones de Rendimiento
- El gran número de archivos traducidos (más de 50 idiomas) hace que los clones completos sean grandes
- Usa un clon superficial si solo trabajas en contenido: `git clone --depth 1`
- Excluye las traducciones de las búsquedas cuando trabajes en contenido en inglés
- Los procesos de construcción pueden ser lentos en la primera ejecución (npm install, construcción con Vite)
## Consideraciones de Seguridad
### Variables de Entorno
- Las claves de API nunca deben ser comprometidas en el repositorio
- Usa archivos `.env` (ya incluidos en `.gitignore`)
- Documenta las variables de entorno requeridas en los archivos README de los proyectos
### Proyectos en Python
- Usa entornos virtuales: `python -m venv venv`
- Mantén las dependencias actualizadas
- Los tokens de GitHub deben tener permisos mínimos requeridos
### Acceso a GitHub Models
- Se requieren Tokens de Acceso Personal (PAT) para GitHub Models
- Los tokens deben almacenarse como variables de entorno
- Nunca comprometas tokens o credenciales
## Notas Adicionales
### Público Objetivo
- Principiantes completos en desarrollo web
- Estudiantes y autodidactas
- Profesores que usan el currículo en aulas
- El contenido está diseñado para accesibilidad y desarrollo gradual de habilidades
### Filosofía Educativa
- Enfoque de aprendizaje basado en proyectos
- Verificaciones frecuentes de conocimiento (cuestionarios)
- Ejercicios prácticos de codificación
- Ejemplos de aplicación en el mundo real
- Enfoque en fundamentos antes de frameworks
### Mantenimiento del Repositorio
- Comunidad activa de estudiantes y contribuyentes
- Actualizaciones regulares de dependencias y contenido
- Issues y discusiones monitoreados por mantenedores
- Actualizaciones de traducción automatizadas mediante GitHub Actions
### Recursos Relacionados
- [Módulos de Microsoft Learn](https://docs.microsoft.com/learn/)
- [Recursos del Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) recomendado para estudiantes
- Cursos adicionales: Generative AI, Ciencia de Datos, ML, currículos de IoT disponibles
### Trabajando con Proyectos Específicos
Para instrucciones detalladas sobre proyectos individuales, consulta los archivos README en:
- `quiz-app/README.md` - Aplicación de cuestionarios en Vue 3
- `7-bank-project/README.md` - Aplicación bancaria con autenticación
- `5-browser-extension/README.md` - Desarrollo de extensiones de navegador
- `6-space-game/README.md` - Desarrollo de juegos basados en Canvas
- `9-chat-project/README.md` - Proyecto de asistente de chat con IA
### Estructura Monorepo
Aunque no es un monorepo tradicional, este repositorio contiene múltiples proyectos independientes:
- Cada lección es autónoma
- Los proyectos no comparten dependencias
- Trabaja en proyectos individuales sin afectar a otros
- Clona el repositorio completo para la experiencia completa del currículo
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que surjan del uso de esta traducción.

@ -1,120 +1,120 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T13:47:40+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T08:26:16+00:00",
"source_file": "README.md",
"language_code": "es"
}
-->
[![Licencia de GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![Contribuidores de GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![Problemas de GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![Solicitudes de extracción de GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Licencia de GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![Contribuidores de GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![Problemas de GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![Solicitudes de extracción de GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Observadores de GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![Forks de GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![Estrellas de GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![Seguidores de GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![Forks de GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![Estrellas de GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![Abrir en 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)
[![Abrir en 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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
[![Discord de Microsoft Azure AI Foundry](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
Sigue estos pasos para comenzar a usar estos recursos:
1. **Haz un Fork del Repositorio**: Haz clic en [![Forks de GitHub](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. **Clona el Repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Únete al Discord de Azure AI Foundry y conecta con expertos y otros desarrolladores**](https://discord.com/invite/ByRwuEEgH4)
Sigue estos pasos para comenzar a usar estos recursos:
1. **Haz un fork del repositorio**: Haz clic en [![Forks de GitHub](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. **Clona el repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Únete al Discord de Azure AI Foundry y conecta con expertos y otros desarrolladores**](https://discord.com/invite/ByRwuEEgH4)
# Desarrollo Web para Principiantes - Un Currículo
# Desarrollo Web para Principiantes - Un Currículo
Aprende los fundamentos del desarrollo web con nuestro curso integral de 12 semanas creado por Microsoft Cloud Advocates. Cada una de las 24 lecciones explora JavaScript, CSS y HTML a través de proyectos prácticos como terrarios, extensiones de navegador y juegos espaciales. Participa en cuestionarios, discusiones y tareas prácticas. Mejora tus habilidades y optimiza tu retención de conocimientos con nuestra efectiva pedagogía basada en proyectos. ¡Comienza tu viaje en la programación hoy mismo!
Aprende los fundamentos del desarrollo web con nuestro curso integral de 12 semanas creado por Microsoft Cloud Advocates. Cada una de las 24 lecciones explora JavaScript, CSS y HTML a través de proyectos prácticos como terrarios, extensiones de navegador y juegos espaciales. Participa en cuestionarios, discusiones y tareas prácticas. Mejora tus habilidades y optimiza tu aprendizaje con nuestra metodología basada en proyectos. ¡Comienza tu viaje en la programación hoy mismo!
### 🌐 Soporte Multilenguaje
### 🌐 Soporte Multilingüe
#### Soporte a través de GitHub Action (Automatizado y Siempre Actualizado)
#### Disponible a través de GitHub Action (Automatizado y siempre actualizado)
[Francés](../fr/README.md) | [Español](./README.md) | [Alemán](../de/README.md) | [Ruso](../ru/README.md) | [Árabe](../ar/README.md) | [Persa (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chino (Simplificado)](../zh/README.md) | [Chino (Tradicional, Macao)](../mo/README.md) | [Chino (Tradicional, Hong Kong)](../hk/README.md) | [Chino (Tradicional, Taiwán)](../tw/README.md) | [Japonés](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalí](../bn/README.md) | [Maratí](../mr/README.md) | [Nepalí](../ne/README.md) | [Panyabí (Gurmukhi)](../pa/README.md) | [Portugués (Portugal)](../pt/README.md) | [Portugués (Brasil)](../br/README.md) | [Italiano](../it/README.md) | [Polaco](../pl/README.md) | [Turco](../tr/README.md) | [Griego](../el/README.md) | [Tailandés](../th/README.md) | [Sueco](../sv/README.md) | [Danés](../da/README.md) | [Noruego](../no/README.md) | [Finlandés](../fi/README.md) | [Holandés](../nl/README.md) | [Hebreo](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonesio](../id/README.md) | [Malayo](../ms/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Suajili](../sw/README.md) | [Húngaro](../hu/README.md) | [Checo](../cs/README.md) | [Eslovaco](../sk/README.md) | [Rumano](../ro/README.md) | [Búlgaro](../bg/README.md) | [Serbio (Cirílico)](../sr/README.md) | [Croata](../hr/README.md) | [Esloveno](../sl/README.md) | [Ucraniano](../uk/README.md) | [Birmano (Myanmar)](../my/README.md)
[Francés](../fr/README.md) | [Español](./README.md) | [Alemán](../de/README.md) | [Ruso](../ru/README.md) | [Árabe](../ar/README.md) | [Persa (Farsi)](../fa/README.md) | [Urdu](../ur/README.md) | [Chino (Simplificado)](../zh/README.md) | [Chino (Tradicional, Macao)](../mo/README.md) | [Chino (Tradicional, Hong Kong)](../hk/README.md) | [Chino (Tradicional, Taiwán)](../tw/README.md) | [Japonés](../ja/README.md) | [Coreano](../ko/README.md) | [Hindi](../hi/README.md) | [Bengalí](../bn/README.md) | [Maratí](../mr/README.md) | [Nepalí](../ne/README.md) | [Punyabí (Gurmukhi)](../pa/README.md) | [Portugués (Portugal)](../pt/README.md) | [Portugués (Brasil)](../br/README.md) | [Italiano](../it/README.md) | [Polaco](../pl/README.md) | [Turco](../tr/README.md) | [Griego](../el/README.md) | [Tailandés](../th/README.md) | [Sueco](../sv/README.md) | [Danés](../da/README.md) | [Noruego](../no/README.md) | [Finlandés](../fi/README.md) | [Holandés](../nl/README.md) | [Hebreo](../he/README.md) | [Vietnamita](../vi/README.md) | [Indonesio](../id/README.md) | [Malayo](../ms/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Suajili](../sw/README.md) | [Húngaro](../hu/README.md) | [Checo](../cs/README.md) | [Eslovaco](../sk/README.md) | [Rumano](../ro/README.md) | [Búlgaro](../bg/README.md) | [Serbio (Cirílico)](../sr/README.md) | [Croata](../hr/README.md) | [Esloveno](../sl/README.md) | [Ucraniano](../uk/README.md) | [Birmano (Myanmar)](../my/README.md)
**Si deseas que se admitan idiomas adicionales, consulta la lista [aquí](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
**Si deseas que se admitan idiomas adicionales, consulta la lista [aquí](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
#### 🧑‍🎓 _¿Eres estudiante?_
#### 🧑‍🎓 _¿Eres estudiante?_
Visita la [**página del Centro para Estudiantes**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) donde encontrarás recursos para principiantes, paquetes para estudiantes e incluso formas de obtener un cupón para un certificado gratuito. Esta es la página que querrás marcar como favorita y revisar de vez en cuando, ya que cambiamos el contenido mensualmente.
Visita la [**página del Student Hub**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) donde encontrarás recursos para principiantes, paquetes para estudiantes e incluso formas de obtener un voucher para un certificado gratuito. Es una página que querrás marcar como favorita y revisar de vez en cuando, ya que el contenido se actualiza mensualmente.
### 📣 Anuncio - _Nuevo Proyecto para construir usando Generative AI_
### 📣 Anuncio - _Nuevo Proyecto para construir usando IA Generativa_
¡Nuevo proyecto de Asistente de IA recién agregado! Échale un vistazo [proyecto](./09-chat-project/README.md)
Acabamos de añadir un nuevo proyecto de asistente de IA, échale un vistazo [proyecto](./09-chat-project/README.md)
### 📣 Anuncio - _Nuevo Currículo_ sobre Generative AI para JavaScript recién lanzado
### 📣 Anuncio - _Nuevo Currículo_ sobre IA Generativa para JavaScript recién lanzado
¡No te pierdas nuestro nuevo currículo de Generative AI!
¡No te pierdas nuestro nuevo currículo de IA Generativa!
Visita [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) para comenzar.
Visita [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) para comenzar.
![Fondo](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.es.png)
![Fondo](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.es.png)
- Lecciones que cubren desde lo básico hasta RAG.
- Interactúa con personajes históricos usando GenAI y nuestra app complementaria.
- Una narrativa divertida y atractiva, ¡viajarás en el tiempo!
- Lecciones que cubren desde lo básico hasta RAG.
- Interactúa con personajes históricos usando GenAI y nuestra aplicación complementaria.
- Narrativa divertida y atractiva, ¡viajarás en el tiempo!
![Personaje](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.es.png)
![Personaje](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.es.png)
Cada lección incluye una tarea para completar, una evaluación de conocimientos y un desafío para guiarte en el aprendizaje de temas como:
- Creación de prompts y diseño de prompts
- Generación de aplicaciones de texto e imágenes
- Aplicaciones de búsqueda
Cada lección incluye una tarea para completar, una evaluación de conocimientos y un desafío para guiarte en temas como:
- Creación de prompts y ingeniería de prompts
- Generación de aplicaciones de texto e imagen
- Aplicaciones de búsqueda
Visita [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) para comenzar.
Visita [https://aka.ms/genai-js-course](../../[https:/aka.ms/genai-js-course) para comenzar.
## 🌱 Comenzando
## 🌱 Comenzando
> **Profesores**, hemos [incluido algunas sugerencias](for-teachers.md) sobre cómo usar este currículo. Nos encantaría recibir tus comentarios [en nuestro foro de discusión](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner).
> **Profesores**, hemos [incluido algunas sugerencias](for-teachers.md) sobre cómo usar este currículo. Nos encantaría recibir sus comentarios [en nuestro foro de discusión](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner).
**[Estudiantes](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, para cada lección, comienza con un cuestionario previo a la clase, sigue leyendo el material de la lección, completa las diversas actividades y verifica tu comprensión con el cuestionario posterior a la clase.
**[Estudiantes](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, para cada lección, comienza con un cuestionario previo a la clase y continúa leyendo el material de la lección, completando las diversas actividades y verificando tu comprensión con el cuestionario posterior a la clase.
Para mejorar tu experiencia de aprendizaje, conéctate con tus compañeros para trabajar juntos en los proyectos. Las discusiones son bienvenidas en nuestro [foro de discusión](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), donde nuestro equipo de moderadores estará disponible para responder tus preguntas.
Para mejorar tu experiencia de aprendizaje, conecta con tus compañeros para trabajar juntos en los proyectos. Las discusiones son bienvenidas en nuestro [foro de discusión](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), donde nuestro equipo de moderadores estará disponible para responder tus preguntas.
Para continuar con tu educación, te recomendamos explorar [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) para materiales de estudio adicionales.
Para continuar tu educación, recomendamos explorar [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) para materiales de estudio adicionales.
### 📋 Configurando tu entorno
### 📋 Configurando tu entorno
¡Este currículo tiene un entorno de desarrollo listo para usar! Al comenzar, puedes elegir ejecutar el currículo en un [Codespace](https://github.com/features/codespaces/) (_un entorno basado en navegador, sin necesidad de instalaciones_), o localmente en tu computadora usando un editor de texto como [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Este currículo tiene un entorno de desarrollo listo para usar. Al comenzar, puedes elegir ejecutar el currículo en un [Codespace](https://github.com/features/codespaces/) (_un entorno basado en navegador, sin necesidad de instalaciones_), o localmente en tu computadora usando un editor de texto como [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Crea tu repositorio
Para que puedas guardar tu trabajo fácilmente, se recomienda que crees tu propia copia de este repositorio. Puedes hacerlo haciendo clic en el botón **Use this template** en la parte superior de la página. Esto creará un nuevo repositorio en tu cuenta de GitHub con una copia del currículo.
#### Crea tu repositorio
Para guardar tu trabajo fácilmente, se recomienda que crees tu propia copia de este repositorio. Puedes hacerlo haciendo clic en el botón **Use this template** en la parte superior de la página. Esto creará un nuevo repositorio en tu cuenta de GitHub con una copia del currículo.
Sigue estos pasos:
1. **Haz un Fork del Repositorio**: Haz clic en el botón "Fork" en la esquina superior derecha de esta página.
2. **Clona el Repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
Sigue estos pasos:
1. **Haz un fork del repositorio**: Haz clic en el botón "Fork" en la esquina superior derecha de esta página.
2. **Clona el repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Ejecutando el currículo en un Codespace
#### Ejecutando el currículo en un Codespace
En tu copia de este repositorio que creaste, haz clic en el botón **Code** y selecciona **Open with Codespaces**. Esto creará un nuevo Codespace para que trabajes en él.
En tu copia de este repositorio que creaste, haz clic en el botón **Code** y selecciona **Open with Codespaces**. Esto creará un nuevo Codespace para que trabajes.
[!Codespace](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.es.png)
#### Ejecutando el currículo localmente en tu computadora
#### Ejecutando el currículo localmente en tu computadora
Para ejecutar este currículo localmente en tu computadora, necesitarás un editor de texto, un navegador y una herramienta de línea de comandos. Nuestra primera lección, [Introducción a los Lenguajes de Programación y Herramientas del Oficio](../../1-getting-started-lessons/1-intro-to-programming-languages), te guiará a través de varias opciones para cada una de estas herramientas para que selecciones la que mejor funcione para ti.
Para ejecutar este currículo localmente en tu computadora, necesitarás un editor de texto, un navegador y una herramienta de línea de comandos. Nuestra primera lección, [Introducción a los Lenguajes de Programación y Herramientas del Oficio](../../1-getting-started-lessons/1-intro-to-programming-languages), te guiará a través de varias opciones para cada una de estas herramientas para que selecciones la que mejor funcione para ti.
Nuestra recomendación es usar [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) como tu editor, que también tiene un [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) integrado. Puedes descargar Visual Studio Code [aquí](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
Nuestra recomendación es usar [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) como tu editor, que también tiene un [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) integrado. Puedes descargar Visual Studio Code [aquí](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Clona tu repositorio en tu computadora. Puedes hacerlo haciendo clic en el botón **Code** y copiando la URL:
1. Clona tu repositorio en tu computadora. Puedes hacerlo haciendo clic en el botón **Code** y copiando la URL:
[!CodeSpace](./images/createcodespace.png)
[CodeSpace](./images/createcodespace.png)
Luego, abre [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) dentro de [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) y ejecuta el siguiente comando, reemplazando `<your-repository-url>` con la URL que acabas de copiar:
Luego, abre el [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) dentro de [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) y ejecuta el siguiente comando, reemplazando `<your-repository-url>` con la URL que acabas de copiar:
```bash
git clone <your-repository-url>
```
```
2. Abre la carpeta en Visual Studio Code. Puedes hacerlo haciendo clic en **File**.
> **Abrir carpeta** y seleccionar la carpeta que acabas de clonar.
> Extensiones recomendadas para Visual Studio Code:
2. Abre la carpeta en Visual Studio Code. Puedes hacerlo haciendo clic en **File** > **Open Folder** y seleccionando la carpeta que acabas de clonar.
> Extensiones recomendadas para Visual Studio Code:
>
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - para previsualizar páginas HTML dentro de Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - para ayudarte a escribir código más rápido
@ -126,44 +126,43 @@ Nuestra recomendación es usar [Visual Studio Code](https://code.visualstudio.co
- cuestionario de calentamiento previo a la lección
- lección escrita
- para lecciones basadas en proyectos, guías paso a paso sobre cómo construir el proyecto
- comprobaciones de conocimiento
- evaluaciones de conocimiento
- un desafío
- lectura complementaria
- tarea
- [cuestionario posterior a la lección](https://ff-quizzes.netlify.app/web/)
> **Una nota sobre los cuestionarios**: Todos los cuestionarios están contenidos en la carpeta Quiz-app, un total de 48 cuestionarios de tres preguntas cada uno. Están disponibles [aquí](https://ff-quizzes.netlify.app/web/). La aplicación de cuestionarios puede ejecutarse localmente o desplegarse en Azure; sigue las instrucciones en la carpeta `quiz-app`.
## 🗃️ Lecciones
| | Nombre del Proyecto | Conceptos Enseñados | Objetivos de Aprendizaje | Lección Vinculada | Autor |
| | Nombre del Proyecto | Conceptos Enseñados | Objetivos de Aprendizaje | Lección Vinculada | Autor |
| :-: | :-------------------------------------------------------------: | :------------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------: | :--------------------: |
| 01 | Primeros Pasos | Introducción a la Programación y Herramientas del Oficio | Aprende los fundamentos básicos detrás de la mayoría de los lenguajes de programación y sobre el software que usan los desarrolladores profesionales | [Introducción a los Lenguajes de Programación y Herramientas del Oficio](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Primeros Pasos | Conceptos básicos de GitHub, incluye trabajo en equipo | Cómo usar GitHub en tu proyecto, cómo colaborar con otros en una base de código | [Introducción a GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 01 | Primeros Pasos | Introducción a la Programación y Herramientas del Oficio | Aprende los fundamentos básicos detrás de la mayoría de los lenguajes de programación y sobre el software que ayuda a los desarrolladores profesionales en su trabajo | [Introducción a los Lenguajes de Programación y Herramientas del Oficio](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Primeros Pasos | Conceptos básicos de GitHub, incluye trabajo en equipo | Cómo usar GitHub en tu proyecto y colaborar con otros en una base de código | [Introducción a GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Primeros Pasos | Accesibilidad | Aprende los conceptos básicos de accesibilidad web | [Fundamentos de Accesibilidad](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | Fundamentos de JS | Tipos de Datos en JavaScript | Los conceptos básicos de los tipos de datos en JavaScript | [Tipos de Datos](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Fundamentos de JS | Funciones y Métodos | Aprende sobre funciones y métodos para gestionar el flujo lógico de una aplicación | [Funciones y Métodos](./2-js-basics/2-functions-methods/README.md) | Jasmine y Christopher |
| 06 | Fundamentos de JS | Tomando Decisiones con JS | Aprende a crear condiciones en tu código utilizando métodos de toma de decisiones | [Tomando Decisiones](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Fundamentos de JS | Arreglos y Bucles | Trabaja con datos utilizando arreglos y bucles en JavaScript | [Arreglos y Bucles](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrario](./3-terrarium/solution/README.md) | HTML en la Práctica | Construye el HTML para crear un terrario en línea, enfocándote en construir un diseño | [Introducción a HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrario](./3-terrarium/solution/README.md) | CSS en la Práctica | Construye el CSS para estilizar el terrario en línea, enfocándote en los conceptos básicos de CSS, incluyendo hacer la página responsiva | [Introducción a CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 04 | Conceptos Básicos de JS | Tipos de Datos en JavaScript | Los conceptos básicos de los tipos de datos en JavaScript | [Tipos de Datos](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | Conceptos Básicos de JS | Funciones y Métodos | Aprende sobre funciones y métodos para gestionar el flujo lógico de una aplicación | [Funciones y Métodos](./2-js-basics/2-functions-methods/README.md) | Jasmine y Christopher |
| 06 | Conceptos Básicos de JS | Tomando Decisiones con JS | Aprende cómo crear condiciones en tu código utilizando métodos de toma de decisiones | [Tomando Decisiones](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | Conceptos Básicos de JS | Arrays y Bucles | Trabaja con datos utilizando arrays y bucles en JavaScript | [Arrays y Bucles](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrario](./3-terrarium/solution/README.md) | HTML en Práctica | Construye el HTML para crear un terrario en línea, enfocándote en construir un diseño | [Introducción a HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrario](./3-terrarium/solution/README.md) | CSS en Práctica | Construye el CSS para estilizar el terrario en línea, enfocándote en los conceptos básicos de CSS, incluyendo hacer la página responsiva | [Introducción a CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrario](./3-terrarium/solution/README.md) | Closures en JavaScript, manipulación del DOM | Construye el JavaScript para que el terrario funcione como una interfaz de arrastrar/soltar, enfocándote en closures y manipulación del DOM | [Closures en JavaScript, manipulación del DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Juego de Mecanografía](./4-typing-game/solution/README.md) | Construye un Juego de Mecanografía | Aprende a usar eventos de teclado para dirigir la lógica de tu aplicación JavaScript | [Programación Basada en Eventos](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Extensión de Navegador Verde](./5-browser-extension/solution/README.md) | Trabajando con Navegadores | Aprende cómo funcionan los navegadores, su historia, y cómo estructurar los primeros elementos de una extensión de navegador | [Sobre Navegadores](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Extensión de Navegador Verde](./5-browser-extension/solution/README.md) | Construcción de un formulario, llamada a una API y almacenamiento de variables en local storage | Construye los elementos de JavaScript de tu extensión de navegador para llamar a una API utilizando variables almacenadas en local storage | [APIs, Formularios y Local Storage](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Extensión de Navegador Verde](./5-browser-extension/solution/README.md) | Procesos en segundo plano en el navegador, rendimiento web | Usa los procesos en segundo plano del navegador para gestionar el ícono de la extensión; aprende sobre rendimiento web y algunas optimizaciones | [Tareas en Segundo Plano y Rendimiento](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Juego Espacial](./6-space-game/solution/README.md) | Desarrollo de Juegos Más Avanzado con JavaScript | Aprende sobre Herencia utilizando tanto Clases como Composición y el patrón Pub/Sub, en preparación para construir un juego | [Introducción al Desarrollo de Juegos Avanzado](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Juego Espacial](./6-space-game/solution/README.md) | Dibujo en Canvas | Aprende sobre la API de Canvas, utilizada para dibujar elementos en una pantalla | [Dibujo en Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Juego Espacial](./6-space-game/solution/README.md) | Moviendo elementos en la pantalla | Descubre cómo los elementos pueden ganar movimiento utilizando coordenadas cartesianas y la API de Canvas | [Moviendo Elementos](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Juego Espacial](./6-space-game/solution/README.md) | Detección de colisiones | Haz que los elementos colisionen y reaccionen entre sí utilizando teclas y proporciona una función de enfriamiento para garantizar el rendimiento del juego | [Detección de Colisiones](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Juego Espacial](./6-space-game/solution/README.md) | Manteniendo el puntaje | Realiza cálculos matemáticos basados en el estado y rendimiento del juego | [Manteniendo el Puntaje](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Juego Espacial](./6-space-game/solution/README.md) | Finalizando y reiniciando el juego | Aprende sobre cómo finalizar y reiniciar el juego, incluyendo limpiar recursos y restablecer valores de variables | [La Condición de Finalización](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [App Bancaria](./7-bank-project/solution/README.md) | Plantillas HTML y Rutas en una Aplicación Web | Aprende cómo crear la estructura de la arquitectura de un sitio web multipágina utilizando rutas y plantillas HTML | [Plantillas HTML y Rutas](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [App Bancaria](./7-bank-project/solution/README.md) | Construcción de un Formulario de Inicio de Sesión y Registro | Aprende sobre la construcción de formularios y manejo de rutinas de validación | [Formularios](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [App Bancaria](./7-bank-project/solution/README.md) | Métodos para Obtener y Usar Datos | Cómo los datos fluyen dentro y fuera de tu aplicación, cómo obtenerlos, almacenarlos y desecharlos | [Datos](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [App Bancaria](./7-bank-project/solution/README.md) | Conceptos de Gestión de Estado | Aprende cómo tu aplicación retiene el estado y cómo gestionarlo programáticamente | [Gestión de Estado](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Editor de Código/Navegador VScode](../../8-code-editor) | Trabajando con VScode | Aprende a usar un editor de código | [Usar el Editor de Código VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [Asistentes de IA](./9-chat-project/README.md) | Trabajando con IA | Aprende a construir tu propio asistente de IA | [Proyecto de Asistente de IA](./9-chat-project/README.md) | Chris |
| 11 | [Juego de Escritura](./4-typing-game/solution/README.md) | Construye un Juego de Escritura | Aprende cómo usar eventos de teclado para dirigir la lógica de tu aplicación JavaScript | [Programación Basada en Eventos](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Extensión de Navegador Verde](./5-browser-extension/solution/README.md) | Trabajando con Navegadores | Aprende cómo funcionan los navegadores, su historia y cómo estructurar los primeros elementos de una extensión de navegador | [Sobre Navegadores](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Extensión de Navegador Verde](./5-browser-extension/solution/README.md) | Construcción de un formulario, llamada a una API y almacenamiento de variables en local storage | Construye los elementos JavaScript de tu extensión de navegador para llamar a una API utilizando variables almacenadas en local storage | [APIs, Formularios y Local Storage](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Extensión de Navegador Verde](./5-browser-extension/solution/README.md) | Procesos en segundo plano en el navegador, rendimiento web | Utiliza los procesos en segundo plano del navegador para gestionar el ícono de la extensión; aprende sobre rendimiento web y algunas optimizaciones | [Tareas en Segundo Plano y Rendimiento](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Juego Espacial](./6-space-game/solution/README.md) | Desarrollo de Juegos Más Avanzado con JavaScript | Aprende sobre Herencia utilizando Clases y Composición, y el patrón Pub/Sub, en preparación para construir un juego | [Introducción al Desarrollo de Juegos Avanzado](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Juego Espacial](./6-space-game/solution/README.md) | Dibujando en Canvas | Aprende sobre la API de Canvas, utilizada para dibujar elementos en una pantalla | [Dibujando en Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Juego Espacial](./6-space-game/solution/README.md) | Moviendo elementos en la pantalla | Descubre cómo los elementos pueden adquirir movimiento utilizando coordenadas cartesianas y la API de Canvas | [Moviendo Elementos](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Juego Espacial](./6-space-game/solution/README.md) | Detección de colisiones | Haz que los elementos colisionen y reaccionen entre sí utilizando teclas y proporciona una función de enfriamiento para garantizar el rendimiento del juego | [Detección de Colisiones](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Juego Espacial](./6-space-game/solution/README.md) | Manteniendo el puntaje | Realiza cálculos matemáticos basados en el estado y rendimiento del juego | [Manteniendo el Puntaje](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Juego Espacial](./6-space-game/solution/README.md) | Finalizando y reiniciando el juego | Aprende sobre cómo finalizar y reiniciar el juego, incluyendo limpiar recursos y restablecer valores de variables | [Condición de Finalización](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Aplicación Bancaria](./7-bank-project/solution/README.md) | Plantillas HTML y Rutas en una Aplicación Web | Aprende cómo crear la estructura de la arquitectura de un sitio web multipágina utilizando rutas y plantillas HTML | [Plantillas HTML y Rutas](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Aplicación Bancaria](./7-bank-project/solution/README.md) | Construcción de un Formulario de Inicio de Sesión y Registro | Aprende sobre la construcción de formularios y manejo de rutinas de validación | [Formularios](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Aplicación Bancaria](./7-bank-project/solution/README.md) | Métodos para Obtener y Usar Datos | Cómo los datos fluyen dentro y fuera de tu aplicación, cómo obtenerlos, almacenarlos y eliminarlos | [Datos](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Aplicación Bancaria](./7-bank-project/solution/README.md) | Conceptos de Gestión de Estado | Aprende cómo tu aplicación retiene el estado y cómo gestionarlo programáticamente | [Gestión de Estado](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Editor de Código en Navegador/VScode](../../8-code-editor) | Trabajando con VScode | Aprende cómo usar un editor de código | [Usar el Editor de Código VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [Asistentes de IA](./9-chat-project/README.md) | Trabajando con IA | Aprende cómo construir tu propio asistente de IA | [Proyecto de Asistente de IA](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogía
@ -171,21 +170,21 @@ Nuestro plan de estudios está diseñado con dos principios pedagógicos clave e
* aprendizaje basado en proyectos
* cuestionarios frecuentes
El programa enseña los fundamentos de JavaScript, HTML y CSS, así como las herramientas y técnicas más recientes utilizadas por los desarrolladores web actuales. Los estudiantes tendrán la oportunidad de adquirir experiencia práctica construyendo un juego de mecanografía, un terrario virtual, una extensión de navegador ecológica, un juego estilo invasores del espacio y una aplicación bancaria para empresas. Al final de la serie, los estudiantes habrán adquirido una comprensión sólida del desarrollo web.
El programa enseña los fundamentos de JavaScript, HTML y CSS, así como las herramientas y técnicas más recientes utilizadas por los desarrolladores web actuales. Los estudiantes tendrán la oportunidad de adquirir experiencia práctica construyendo un juego de escritura, un terrario virtual, una extensión de navegador ecológica, un juego estilo "space invaders" y una aplicación bancaria para empresas. Al final de la serie, los estudiantes habrán adquirido una sólida comprensión del desarrollo web.
> 🎓 ¡Puedes tomar las primeras lecciones de este plan de estudios como un [Camino de Aprendizaje](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) en Microsoft Learn!
Al asegurarnos de que el contenido esté alineado con proyectos, el proceso se vuelve más atractivo para los estudiantes y se mejora la retención de conceptos. También escribimos varias lecciones introductorias sobre los fundamentos de JavaScript para presentar conceptos, acompañadas de un video de la colección "[Serie para Principiantes: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", algunos de cuyos autores contribuyeron a este plan de estudios.
Al garantizar que el contenido esté alineado con los proyectos, el proceso se vuelve más atractivo para los estudiantes y se mejora la retención de conceptos. También escribimos varias lecciones introductorias sobre los conceptos básicos de JavaScript para presentar ideas, acompañadas de un video de la colección "[Serie para Principiantes: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)", algunos de cuyos autores contribuyeron a este plan de estudios.
Además, un cuestionario de baja presión antes de una clase establece la intención del estudiante hacia el aprendizaje de un tema, mientras que un segundo cuestionario después de la clase asegura una mayor retención. Este plan de estudios fue diseñado para ser flexible y divertido, y puede tomarse en su totalidad o en parte. Los proyectos comienzan pequeños y se vuelven cada vez más complejos al final del ciclo de 12 semanas.
Además, un cuestionario de bajo riesgo antes de una clase establece la intención del estudiante hacia el aprendizaje de un tema, mientras que un segundo cuestionario después de la clase asegura una mayor retención. Este plan de estudios fue diseñado para ser flexible y divertido, y puede tomarse en su totalidad o en parte. Los proyectos comienzan pequeños y se vuelven cada vez más complejos al final del ciclo de 12 semanas.
Aunque hemos evitado intencionalmente introducir frameworks de JavaScript para concentrarnos en las habilidades básicas necesarias como desarrollador web antes de adoptar un framework, un buen siguiente paso después de completar este plan de estudios sería aprender sobre Node.js a través de otra colección de videos: "[Serie para Principiantes: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Visita nuestro [Código de Conducta](CODE_OF_CONDUCT.md) y las pautas de [Contribución](CONTRIBUTING.md). ¡Agradecemos tus comentarios constructivos!
> Visita nuestras pautas de [Código de Conducta](CODE_OF_CONDUCT.md) y [Contribución](CONTRIBUTING.md). ¡Agradecemos tus comentarios constructivos!
## 🧭 Acceso sin conexión
Puedes ejecutar esta documentación sin conexión utilizando [Docsify](https://docsify.js.org/#/). Haz un fork de este repositorio, [instala Docsify](https://docsify.js.org/#/quickstart) en tu máquina local, y luego en la carpeta raíz de este repositorio, escribe `docsify serve`. El sitio web se servirá en el puerto 3000 de tu localhost: `localhost:3000`.
Puedes ejecutar esta documentación sin conexión utilizando [Docsify](https://docsify.js.org/#/). Haz un fork de este repositorio, [instala Docsify](https://docsify.js.org/#/quickstart) en tu máquina local y luego, en la carpeta raíz de este repositorio, escribe `docsify serve`. El sitio web se servirá en el puerto 3000 de tu localhost: `localhost:3000`.
## 📘 PDF
@ -193,28 +192,38 @@ Un PDF de todas las lecciones se puede encontrar [aquí](https://microsoft.githu
## 🎒 Otros Cursos
¡Nuestro equipo produce otros cursos! Echa un vistazo a:
- [IA Generativa para Principiantes](https://aka.ms/genai-beginners)
- [IA Generativa para Principiantes .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [IA Generativa con JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [IA Generativa con Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [IA para Principiantes](https://aka.ms/ai-beginners)
- [Ciencia de Datos para Principiantes](https://aka.ms/datascience-beginners)
- [Aprendizaje Automático para Principiantes](https://aka.ms/ml-beginners)
- [Ciberseguridad para Principiantes](https://github.com/microsoft/Security-101)
- [Desarrollo Web para Principiantes](https://aka.ms/webdev-beginners)
- [IoT para Principiantes](https://aka.ms/iot-beginners)
- [Desarrollo XR para Principiantes](https://github.com/microsoft/xr-development-for-beginners)
- [Dominando GitHub Copilot para Uso Agente](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Dominando GitHub Copilot para Desarrolladores de C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Elige Tu Propia Aventura con Copilot](https://github.com/microsoft/CopilotAdventures)
¡Nuestro equipo produce otros cursos! Échales un vistazo:
- [Generative AI for Beginners](https://aka.ms/genai-beginners)
- [Generative AI for Beginners .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [Generative AI with JavaScript](https://github.com/microsoft/generative-ai-with-javascript)
- [Generative AI with Java](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [AI for Beginners](https://aka.ms/ai-beginners)
- [Data Science for Beginners](https://aka.ms/datascience-beginners)
- [ML for Beginners](https://aka.ms/ml-beginners)
- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101)
- [Web Dev for Beginners](https://aka.ms/webdev-beginners)
- [IoT for Beginners](https://aka.ms/iot-beginners)
- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners)
- [Mastering GitHub Copilot for Agentic use](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [Elige Tu Propia Aventura con Copilot](https://github.com/microsoft/CopilotAdventures)
## Obtener Ayuda
Si te quedas atascado o tienes preguntas sobre cómo construir aplicaciones de IA, únete a:
[![Azure AI Foundry Discord](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
Si tienes comentarios sobre el producto o encuentras errores mientras desarrollas, visita:
[![Azure AI Foundry Developer Forum](https://img.shields.io/badge/GitHub-Azure_AI_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Licencia
Este repositorio está licenciado bajo la licencia MIT. Consulta el archivo [LICENSE](../../LICENSE) para más información.
Este repositorio está licenciado bajo la licencia MIT. Consulta el archivo [LICENSE](../../LICENSE) para más información.
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Si bien nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -1,45 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-24T11:54:22+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T08:26:01+00:00",
"source_file": "for-teachers.md",
"language_code": "es"
}
-->
## Para Educadores
### Para Educadores
¿Te gustaría usar este plan de estudios en tu aula? ¡Siéntete libre de hacerlo!
Estás invitado a usar este plan de estudios en tu aula. Funciona perfectamente con GitHub Classroom y las principales plataformas LMS, y también puede utilizarse como un repositorio independiente con tus estudiantes.
De hecho, puedes usarlo directamente en GitHub utilizando GitHub Classroom.
### Uso con GitHub Classroom
Para hacerlo, haz un fork de este repositorio. Necesitarás crear un repositorio para cada lección, por lo que tendrás que extraer cada carpeta en un repositorio separado. De esta manera, [GitHub Classroom](https://classroom.github.com/classrooms) podrá identificar cada lección por separado.
Para gestionar lecciones y tareas por grupo, crea un repositorio por lección para que GitHub Classroom pueda vincular cada tarea de forma independiente.
Estas [instrucciones completas](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) te darán una idea de cómo configurar tu aula.
- Haz un fork de este repositorio en tu organización.
- Crea un repositorio separado para cada lección extrayendo cada carpeta de lección en su propio repositorio.
- Opción A: Crea repositorios vacíos (uno por lección) y copia el contenido de la carpeta de la lección en cada uno.
- Opción B: Usa un enfoque que preserve el historial de Git (por ejemplo, dividir una carpeta en un nuevo repositorio) si necesitas mantener la procedencia.
- En GitHub Classroom, crea una tarea por lección y vincúlala al repositorio correspondiente.
- Configuración recomendada:
- Visibilidad del repositorio: privado para el trabajo de los estudiantes.
- Usa el código inicial de la rama predeterminada del repositorio de la lección.
- Agrega plantillas de issues y pull requests para cuestionarios y entregas.
- Opcionalmente, configura autoevaluación y pruebas si tus lecciones las incluyen.
- Convenciones útiles:
- Nombres de repositorios como lesson-01-intro, lesson-02-html, etc.
- Etiquetas: quiz, assignment, needs-review, late, resubmission.
- Tags/releases por grupo (por ejemplo, v2025-term1).
## Usándolo en Moodle, Canvas o Blackboard
Consejo: Evita almacenar repositorios dentro de carpetas sincronizadas (por ejemplo, OneDrive/Google Drive) para prevenir conflictos de Git en Windows.
¡Este plan de estudios funciona muy bien en estos Sistemas de Gestión de Aprendizaje! Usa el [archivo de carga para Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) para obtener el contenido completo, o prueba el [archivo Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc), que contiene parte del contenido. Moodle Cloud no admite exportaciones completas de Common Cartridge, por lo que es preferible usar el archivo de descarga de Moodle, que se puede cargar en Canvas. Por favor, háznos saber cómo podemos mejorar esta experiencia.
### Uso con Moodle, Canvas o Blackboard
![Moodle](/teaching-files/moodle.png)
Este plan de estudios incluye paquetes importables para flujos de trabajo comunes en LMS.
- Moodle: Usa el archivo de carga de Moodle [Moodle upload file](../../../../../../../teaching-files/webdev-moodle.mbz) para cargar el curso completo.
- Common Cartridge: Usa el archivo Common Cartridge [Common Cartridge file](../../../../../../../teaching-files/webdev-common-cartridge.imscc) para una mayor compatibilidad con LMS.
- Notas:
- Moodle Cloud tiene soporte limitado para Common Cartridge. Es preferible usar el archivo de Moodle mencionado anteriormente, que también puede cargarse en Canvas.
- Después de importar, revisa los módulos, fechas de entrega y configuraciones de cuestionarios para ajustarlos al calendario de tu periodo.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.es.png)
> El plan de estudios en un aula de Moodle
![Canvas](/teaching-files/canvas.png)
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.es.png)
> El plan de estudios en Canvas
## Usando el repositorio tal como está
### Uso del repositorio directamente (sin Classroom)
Si prefieres no usar GitHub Classroom, puedes ejecutar el curso directamente desde este repositorio.
Si prefieres usar este repositorio tal como está, sin utilizar GitHub Classroom, también es posible. Necesitarás comunicarte con tus estudiantes para indicarles qué lección trabajar juntos.
- Formatos sincrónicos/en línea (Zoom/Teams):
- Realiza calentamientos breves dirigidos por mentores; usa salas de grupo para cuestionarios.
- Anuncia una ventana de tiempo para los cuestionarios; los estudiantes envían respuestas como Issues en GitHub.
- Para tareas colaborativas, los estudiantes trabajan en repositorios públicos de lecciones y abren pull requests.
- Formatos privados/asincrónicos:
- Los estudiantes hacen fork de cada lección en sus propios repositorios **privados** y te agregan como colaborador.
- Envían sus entregas mediante Issues (cuestionarios) y Pull Requests (tareas) en tu repositorio de aula o en sus forks privados.
En un formato en línea (Zoom, Teams u otro), podrías formar salas de trabajo para los cuestionarios y guiar a los estudiantes para que se preparen para aprender. Luego, invítalos a realizar los cuestionarios y a enviar sus respuestas como 'issues' en un momento determinado. Podrías hacer lo mismo con las tareas si deseas que los estudiantes trabajen de manera colaborativa y abierta.
### Mejores prácticas
Si prefieres un formato más privado, pide a tus estudiantes que hagan un fork del plan de estudios, lección por lección, en sus propios repositorios privados de GitHub y te den acceso. De esta manera, podrán completar cuestionarios y tareas de forma privada y enviártelos a través de issues en tu repositorio de aula.
- Ofrece una lección de orientación sobre conceptos básicos de Git/GitHub, Issues y PRs.
- Usa listas de verificación en Issues para cuestionarios/tareas de varios pasos.
- Agrega CONTRIBUTING.md y CODE_OF_CONDUCT.md para establecer normas en el aula.
- Incluye notas de accesibilidad (texto alternativo, subtítulos) y ofrece PDFs imprimibles.
- Versiona tu contenido por periodo y congela los repositorios de lecciones después de publicarlos.
Hay muchas maneras de hacer que esto funcione en un aula en línea. ¡Por favor, cuéntanos qué funciona mejor para ti!
### Comentarios y soporte
## ¡Danos tu opinión!
Queremos que este plan de estudios funcione para ti y tus estudiantes. Por favor, abre un nuevo Issue en este repositorio para reportar errores, realizar solicitudes o sugerir mejoras, o inicia una discusión en el Teacher Corner.
Queremos que este plan de estudios funcione para ti y tus estudiantes. Conéctate con nosotros en el [Teacher corner](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) y abre un [**nuevo issue**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) para cualquier solicitud, error o comentario.
---
**Descargo de responsabilidad**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción.

@ -1,18 +1,18 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T14:37:11+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T08:41:20+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "fa"
}
-->
# معرفی زبان‌های برنامه‌نویسی و ابزارهای مورد استفاده
این درس به اصول اولیه زبان‌های برنامه‌نویسی می‌پردازد. موضوعات مطرح شده در اینجا برای اکثر زبان‌های برنامه‌نویسی مدرن امروز کاربرد دارند. در بخش «ابزارهای مورد استفاده»، با نرم‌افزارهای مفیدی که به عنوان یک توسعه‌دهنده به شما کمک می‌کنند، آشنا خواهید شد.
این درس به اصول اولیه زبان‌های برنامه‌نویسی می‌پردازد. موضوعات مطرحشده در اینجا برای اکثر زبان‌های برنامه‌نویسی مدرن امروزی کاربرد دارند. در بخش «ابزارهای مورد استفاده»، با نرم‌افزارهای مفیدی که به عنوان یک توسعه‌دهنده به شما کمک می‌کنند، آشنا خواهید شد.
![Intro Programming](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.fa.png)
> یادداشت تصویری توسط [Tomomi Imura](https://twitter.com/girlie_mac)
![برنامه‌نویسی مقدماتی](../../../../translated_images/webdev101-programming.d6e3f98e61ac4bff0b27dcbf1c3f16c8ed46984866f2d29988929678b0058fde.fa.png)
> طراحی توسط [Tomomi Imura](https://twitter.com/girlie_mac)
## آزمون پیش از درس
[آزمون پیش از درس](https://forms.office.com/r/dru4TE0U9n?origin=lprLink)
@ -30,19 +30,19 @@ CO_OP_TRANSLATOR_METADATA:
## برنامه‌نویسی چیست؟
برنامه‌نویسی (که به آن کدنویسی نیز گفته می‌شود) فرآیند نوشتن دستورالعمل‌ها برای دستگاهی مانند کامپیوتر یا دستگاه موبایل است. ما این دستورالعمل‌ها را با یک زبان برنامه‌نویسی می‌نویسیم که سپس توسط دستگاه تفسیر می‌شود. این مجموعه دستورالعمل‌ها ممکن است با نام‌های مختلفی شناخته شوند، اما *برنامه*، *برنامه کامپیوتری*، *اپلیکیشن (برنامه)* و *اجرایی* از جمله نام‌های رایج هستند.
برنامه‌نویسی (که به آن کدنویسی نیز گفته می‌شود) فرآیند نوشتن دستورالعمل‌ها برای دستگاهی مانند کامپیوتر یا دستگاه موبایل است. این دستورالعمل‌ها را با یک زبان برنامه‌نویسی می‌نویسیم که سپس توسط دستگاه تفسیر می‌شود. این مجموعه دستورالعمل‌ها ممکن است با نام‌های مختلفی شناخته شوند، اما *برنامه*، *برنامه کامپیوتری*، *اپلیکیشن (برنامه)* و *اجرایی* از جمله نام‌های رایج هستند.
یک *برنامه* می‌تواند هر چیزی باشد که با کد نوشته شده است؛ وب‌سایت‌ها، بازی‌ها و اپلیکیشن‌های موبایل همگی برنامه هستند. اگرچه ممکن است بتوان برنامه‌ای بدون نوشتن کد ایجاد کرد، اما منطق زیرین آن توسط دستگاه تفسیر می‌شود و این منطق به احتمال زیاد با کد نوشته شده است. برنامه‌ای که در حال *اجرا* یا *تفسیر* کد است، در حال انجام دستورالعمل‌هاست. دستگاهی که با آن این درس را می‌خوانید، در حال اجرای برنامه‌ای است که آن را روی صفحه نمایش شما چاپ می‌کند.
یک *برنامه* می‌تواند هر چیزی باشد که با کد نوشته شده است؛ وب‌سایت‌ها، بازی‌ها و اپلیکیشن‌های موبایل همگی برنامه هستند. در حالی که ممکن است بتوان یک برنامه را بدون نوشتن کد ایجاد کرد، منطق زیرین آن توسط دستگاه تفسیر می‌شود و این منطق به احتمال زیاد با کد نوشته شده است. برنامه‌ای که در حال *اجرا* یا *تفسیر* کد است، در حال انجام دستورالعمل‌ها است. دستگاهی که با آن این درس را می‌خوانید، در حال اجرای برنامه‌ای است که آن را روی صفحه نمایش شما چاپ می‌کند.
✅ کمی تحقیق کنید: چه کسی به عنوان اولین برنامه‌نویس کامپیوتر در جهان شناخته می‌شود؟
## زبان‌های برنامه‌نویسی
زبان‌های برنامه‌نویسی به توسعه‌دهندگان امکان نوشتن دستورالعمل‌ها برای دستگاه‌ها را می‌دهند. دستگاه‌ها فقط می‌توانند باینری (۰ و ۱) را درک کنند، و برای *اکثر* توسعه‌دهندگان این روش ارتباط چندان کارآمد نیست. زبان‌های برنامه‌نویسی وسیله‌ای برای ارتباط بین انسان‌ها و کامپیوترها هستند.
زبان‌های برنامه‌نویسی به توسعه‌دهندگان امکان می‌دهند دستورالعمل‌هایی برای دستگاه بنویسند. دستگاه‌ها فقط می‌توانند باینری (0 و 1) را درک کنند، و برای *اکثر* توسعه‌دهندگان این روش ارتباط چندان کارآمد نیست. زبان‌های برنامه‌نویسی وسیله‌ای برای ارتباط بین انسان‌ها و کامپیوترها هستند.
زبان‌های برنامه‌نویسی در قالب‌های مختلفی ارائه می‌شوند و ممکن است اهداف متفاوتی داشته باشند. به عنوان مثال، JavaScript عمدتاً برای اپلیکیشن‌های وب استفاده می‌شود، در حالی که Bash عمدتاً برای سیستم‌عامل‌ها کاربرد دارد.
زبان‌های برنامه‌نویسی در قالب‌های مختلفی ارائه می‌شوند و ممکن است اهداف متفاوتی داشته باشند. به عنوان مثال، JavaScript عمدتاً برای اپلیکیشن‌های وب استفاده می‌شود، در حالی که Bash عمدتاً برای سیستم‌عامل‌ها استفاده می‌شود.
*زبان‌های سطح پایین* معمولاً به مراحل کمتری نسبت به *زبان‌های سطح بالا* برای تفسیر دستورالعمل‌ها توسط دستگاه نیاز دارند. با این حال، چیزی که زبان‌های سطح بالا را محبوب می‌کند، خوانایی و پشتیبانی آن‌هاست. JavaScript به عنوان یک زبان سطح بالا شناخته می‌شود.
*زبان‌های سطح پایین* معمولاً به مراحل کمتری نسبت به *زبان‌های سطح بالا* برای تفسیر دستورالعمل‌ها توسط دستگاه نیاز دارند. با این حال، چیزی که زبان‌های سطح بالا را محبوب می‌کند، خوانایی و پشتیبانی آن‌ها است. JavaScript به عنوان یک زبان سطح بالا شناخته می‌شود.
کد زیر تفاوت بین یک زبان سطح بالا با JavaScript و یک زبان سطح پایین با کد اسمبلی ARM را نشان می‌دهد.
@ -83,40 +83,40 @@ back add r0,r1
end
```
باور کنید یا نه، *هر دو یک کار را انجام می‌دهند*: چاپ دنباله فیبوناچی تا عدد ۱۰.
باور کنید یا نه، *هر دو یک کار را انجام می‌دهند*: چاپ دنباله فیبوناچی تا عدد 10.
✅ دنباله فیبوناچی [تعریف شده است](https://en.wikipedia.org/wiki/Fibonacci_number) به عنوان مجموعه‌ای از اعداد که هر عدد مجموع دو عدد قبلی خود است، شروع از ۰ و ۱. ده عدد اول دنباله فیبوناچی عبارتند از: ۰، ۱، ۱، ۲، ۳، ۵، ۸، ۱۳، ۲۱ و ۳۴.
✅ دنباله فیبوناچی [تعریف شده است](https://en.wikipedia.org/wiki/Fibonacci_number) به عنوان مجموعه‌ای از اعداد که هر عدد مجموع دو عدد قبلی است، شروع از 0 و 1. ده عدد اول دنباله فیبوناچی عبارتند از: 0، 1، 1، 2، 3، 5، 8، 13، 21 و 34.
## عناصر یک برنامه
یک دستورالعمل واحد در یک برنامه *بیانیه* نامیده می‌شود و معمولاً دارای یک کاراکتر یا فاصله خط است که نشان می‌دهد دستورالعمل کجا پایان می‌یابد یا *خاتمه می‌یابد*. نحوه خاتمه یک برنامه بسته به هر زبان متفاوت است.
بیانیه‌های داخل یک برنامه ممکن است برای اجرای دستورالعمل‌ها به داده‌هایی که توسط کاربر یا از جای دیگری ارائه شده‌اند، وابسته باشند. داده‌ها می‌توانند نحوه رفتار یک برنامه را تغییر دهند، بنابراین زبان‌های برنامه‌نویسی راهی برای ذخیره موقت داده‌ها ارائه می‌دهند تا بعداً بتوان از آن‌ها استفاده کرد. این‌ها *متغیرها* نامیده می‌شوند. متغیرها بیانیه‌هایی هستند که به دستگاه دستور می‌دهند داده‌ها را در حافظه خود ذخیره کند. متغیرها در برنامه‌ها مشابه متغیرها در جبر هستند، جایی که آن‌ها دارای یک نام منحصر به فرد هستند و مقدارشان ممکن است با گذشت زمان تغییر کند.
بیانیه‌های داخل یک برنامه ممکن است برای اجرای دستورالعمل‌ها به داده‌هایی که توسط کاربر یا از جای دیگری ارائه شده‌اند، وابسته باشند. داده‌ها می‌توانند نحوه رفتار یک برنامه را تغییر دهند، بنابراین زبان‌های برنامه‌نویسی راهی برای ذخیره موقت داده‌ها ارائه می‌دهند تا بعداً بتوان از آن‌ها استفاده کرد. این‌ها *متغیرها* نامیده می‌شوند. متغیرها بیانیه‌هایی هستند که به دستگاه دستور می‌دهند داده‌ها را در حافظه خود ذخیره کند. متغیرها در برنامه‌ها مشابه متغیرها در جبر هستند، جایی که آن‌ها دارای نامی منحصر به فرد هستند و مقدارشان ممکن است در طول زمان تغییر کند.
احتمال دارد برخی بیانیه‌ها توسط دستگاه اجرا نشوند. این معمولاً به طراحی توسعه‌دهنده یا به صورت تصادفی زمانی که یک خطای غیرمنتظره رخ می‌دهد، اتفاق می‌افتد. این نوع کنترل بر یک اپلیکیشن آن را قوی‌تر و قابل نگهداری‌تر می‌کند. معمولاً این تغییرات در کنترل زمانی اتفاق می‌افتد که شرایط خاصی برآورده شوند. یک بیانیه رایج که در برنامه‌نویسی مدرن برای کنترل نحوه اجرای یک برنامه استفاده می‌شود، بیانیه `if..else` است.
احتمال دارد برخی بیانیه‌ها توسط دستگاه اجرا نشوند. این معمولاً به طراحی توسعه‌دهنده یا به صورت تصادفی زمانی که یک خطای غیرمنتظره رخ می‌دهد، بستگی دارد. این نوع کنترل بر یک اپلیکیشن آن را قوی‌تر و قابل نگهداری‌تر می‌کند. معمولاً این تغییرات در کنترل زمانی اتفاق می‌افتد که شرایط خاصی برآورده شوند. یک بیانیه رایج که در برنامه‌نویسی مدرن برای کنترل نحوه اجرای یک برنامه استفاده می‌شود، بیانیه `if..else` است.
✅ در درس‌های بعدی بیشتر درباره این نوع بیانیه یاد خواهید گرفت.
## ابزارهای مورد استفاده
[![Tools of the Trade](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Tools of the Trade")
[![ابزارهای مورد استفاده](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "ابزارهای مورد استفاده")
> 🎥 روی تصویر بالا کلیک کنید تا ویدیویی درباره ابزارها مشاهده کنید
> 🎥 روی تصویر بالا کلیک کنید تا ویدئویی درباره ابزارها مشاهده کنید
در این بخش، با برخی نرم‌افزارهایی که ممکن است در آغاز مسیر توسعه حرفه‌ای خود بسیار مفید بیابید، آشنا خواهید شد.
یک **محیط توسعه** مجموعه‌ای منحصر به فرد از ابزارها و ویژگی‌هایی است که یک توسعه‌دهنده اغلب هنگام نوشتن نرم‌افزار از آن‌ها استفاده می‌کند. برخی از این ابزارها برای نیازهای خاص توسعه‌دهنده سفارشی شده‌اند و ممکن است با گذشت زمان تغییر کنند اگر آن توسعه‌دهنده اولویت‌های کاری، پروژه‌های شخصی یا زبان برنامه‌نویسی خود را تغییر دهد. محیط‌های توسعه به اندازه توسعه‌دهندگانی که از آن‌ها استفاده می‌کنند، منحصر به فرد هستند.
یک **محیط توسعه** مجموعه‌ای منحصر به فرد از ابزارها و ویژگی‌هایی است که یک توسعه‌دهنده اغلب هنگام نوشتن نرم‌افزار از آن‌ها استفاده می‌کند. برخی از این ابزارها برای نیازهای خاص یک توسعه‌دهنده سفارشی شده‌اند و ممکن است در طول زمان تغییر کنند اگر آن توسعه‌دهنده اولویت‌های کاری، پروژه‌های شخصی یا زبان برنامه‌نویسی خود را تغییر دهد. محیط‌های توسعه به اندازه توسعه‌دهندگانی که از آن‌ها استفاده می‌کنند، منحصر به فرد هستند.
### ویرایشگرها
یکی از مهم‌ترین ابزارها برای توسعه نرم‌افزار، ویرایشگر است. ویرایشگرها جایی هستند که کد خود را می‌نویسید و گاهی اوقات کد خود را اجرا می‌کنید.
توسعه‌دهندگان به دلایل دیگری نیز به ویرایشگرها وابسته هستند:
توسعه‌دهندگان به دلایل دیگری نیز به ویرایشگرها متکی هستند:
- *اشکال‌زدایی* به کشف باگ‌ها و خطاها با بررسی خط به خط کد کمک می‌کند. برخی ویرایشگرها قابلیت‌های اشکال‌زدایی دارند؛ این قابلیت‌ها می‌توانند برای زبان‌های برنامه‌نویسی خاص سفارشی و اضافه شوند.
- *برجسته‌سازی سینتکس* رنگ‌ها و قالب‌بندی متن را به کد اضافه می‌کند و خواندن آن را آسان‌تر می‌کند. اکثر ویرایشگرها امکان برجسته‌سازی سینتکس سفارشی را فراهم می‌کنند.
- *افزونه‌ها و یکپارچه‌سازی‌ها* ابزارهای تخصصی برای توسعه‌دهندگان هستند که توسط توسعه‌دهندگان ساخته شده‌اند. این ابزارها در ویرایشگر پایه وجود ندارند. به عنوان مثال، بسیاری از توسعه‌دهندگان کد خود را مستند می‌کنند تا توضیح دهند چگونه کار می‌کند. آن‌ها ممکن است یک افزونه بررسی املایی نصب کنند تا اشتباهات تایپی در مستندات را پیدا کنند. اکثر افزونه‌ها برای استفاده در یک ویرایشگر خاص طراحی شده‌اند و اکثر ویرایشگرها راهی برای جستجوی افزونه‌های موجود ارائه می‌دهند.
- *سفارشی‌سازی* به توسعه‌دهندگان امکان ایجاد یک محیط توسعه منحصر به فرد برای نیازهایشان را می‌دهد. اکثر ویرایشگرها بسیار قابل سفارشی‌سازی هستند و ممکن است به توسعه‌دهندگان اجازه دهند افزونه‌های سفارشی ایجاد کنند.
- *برجسته‌سازی نحو* رنگ‌ها و قالب‌بندی متن را به کد اضافه می‌کند و خواندن آن را آسان‌تر می‌کند. اکثر ویرایشگرها امکان برجسته‌سازی نحو سفارشی را فراهم می‌کنند.
- *افزونه‌ها و یکپارچه‌سازی‌ها* ابزارهای تخصصی برای توسعه‌دهندگان هستند که توسط توسعه‌دهندگان ساخته شده‌اند. این ابزارها در ویرایشگر پایه وجود ندارند. به عنوان مثال، بسیاری از توسعه‌دهندگان کد خود را مستند می‌کنند تا توضیح دهند چگونه کار می‌کند. آن‌ها ممکن است یک افزونه بررسی املای کلمات نصب کنند تا اشتباهات تایپی در مستندات را پیدا کنند. اکثر افزونه‌ها برای استفاده در یک ویرایشگر خاص طراحی شده‌اند و اکثر ویرایشگرها راهی برای جستجوی افزونه‌های موجود ارائه می‌دهند.
- *سفارشی‌سازی* به توسعه‌دهندگان امکان می‌دهد یک محیط توسعه منحصر به فرد برای نیازهای خود ایجاد کنند. اکثر ویرایشگرها بسیار قابل سفارشی‌سازی هستند و ممکن است به توسعه‌دهندگان اجازه دهند افزونه‌های سفارشی ایجاد کنند.
#### ویرایشگرهای محبوب و افزونه‌های توسعه وب
@ -135,9 +135,9 @@ back add r0,r1
### مرورگرها
یکی دیگر از ابزارهای مهم مرورگر است. توسعه‌دهندگان وب به مرورگر برای مشاهده نحوه اجرای کدشان در وب وابسته هستند. همچنین از مرورگر برای نمایش عناصر بصری یک صفحه وب که در ویرایشگر نوشته شده‌اند، مانند HTML، استفاده می‌شود.
یکی دیگر از ابزارهای مهم مرورگر است. توسعه‌دهندگان وب به مرورگر متکی هستند تا ببینند کد آن‌ها چگونه در وب اجرا می‌شود. همچنین از مرورگر برای نمایش عناصر بصری یک صفحه وب که در ویرایشگر نوشته شده‌اند، مانند HTML، استفاده می‌شود.
بسیاری از مرورگرها دارای *ابزارهای توسعه‌دهنده* (DevTools) هستند که مجموعه‌ای از ویژگی‌ها و اطلاعات مفید برای کمک به توسعه‌دهندگان در جمع‌آوری و ثبت اطلاعات مهم درباره اپلیکیشن‌شان ارائه می‌دهند. به عنوان مثال: اگر یک صفحه وب خطاهایی داشته باشد، گاهی اوقات دانستن زمان وقوع آن‌ها مفید است. ابزارهای توسعه‌دهنده در مرورگر می‌توانند برای ثبت این اطلاعات تنظیم شوند.
بسیاری از مرورگرها دارای *ابزارهای توسعه‌دهنده* (DevTools) هستند که مجموعه‌ای از ویژگی‌ها و اطلاعات مفید برای کمک به توسعه‌دهندگان در جمع‌آوری و ثبت اطلاعات مهم درباره اپلیکیشن خود ارائه می‌دهند. به عنوان مثال: اگر یک صفحه وب خطاهایی داشته باشد، گاهی اوقات دانستن زمان وقوع آن‌ها مفید است. ابزارهای توسعه‌دهنده در مرورگر می‌توانند برای ثبت این اطلاعات تنظیم شوند.
#### مرورگرهای محبوب و ابزارهای توسعه‌دهنده
@ -147,7 +147,7 @@ back add r0,r1
### ابزارهای خط فرمان
برخی توسعه‌دهندگان ترجیح می‌دهند برای وظایف روزانه خود از نمای گرافیکی کمتری استفاده کنند و به خط فرمان متکی باشند. نوشتن کد نیاز به تایپ زیادی دارد و برخی توسعه‌دهندگان ترجیح می‌دهند جریان کاری خود را روی صفحه کلید مختل نکنند. آن‌ها از میانبرهای صفحه کلید برای جابجایی بین پنجره‌های دسکتاپ، کار روی فایل‌های مختلف و استفاده از ابزارها استفاده می‌کنند. اکثر وظایف را می‌توان با ماوس انجام داد، اما یکی از مزایای استفاده از خط فرمان این است که بسیاری از کارها را می‌توان بدون نیاز به جابجایی بین ماوس و صفحه کلید انجام داد. مزیت دیگر خط فرمان این است که قابل تنظیم است و می‌توانید یک تنظیم سفارشی ذخیره کنید، بعداً آن را تغییر دهید و به ماشین‌های توسعه دیگر وارد کنید. از آنجا که محیط‌های توسعه بسیار منحصر به فرد هستند، برخی توسعه‌دهندگان از خط فرمان اجتناب می‌کنند، برخی کاملاً به آن متکی هستند و برخی ترکیبی از این دو را ترجیح می‌دهند.
برخی توسعه‌دهندگان ترجیح می‌دهند برای وظایف روزانه خود از نمای گرافیکی کمتری استفاده کنند و به خط فرمان متکی باشند. نوشتن کد نیازمند تایپ زیادی است و برخی توسعه‌دهندگان ترجیح می‌دهند جریان کاری خود را روی صفحه‌کلید مختل نکنند. آن‌ها از میانبرهای صفحه‌کلید برای جابجایی بین پنجره‌های دسکتاپ، کار روی فایل‌های مختلف و استفاده از ابزارها استفاده می‌کنند. اکثر وظایف را می‌توان با ماوس انجام داد، اما یکی از مزایای استفاده از خط فرمان این است که بسیاری از کارها را می‌توان با ابزارهای خط فرمان انجام داد بدون نیاز به جابجایی بین ماوس و صفحه‌کلید. یکی دیگر از مزایای خط فرمان این است که قابل تنظیم است و می‌توانید یک تنظیم سفارشی ذخیره کنید، بعداً آن را تغییر دهید و به ماشین‌های توسعه دیگر وارد کنید. از آنجا که محیط‌های توسعه بسیار منحصر به فرد هستند، برخی توسعه‌دهندگان از خط فرمان اجتناب می‌کنند، برخی کاملاً به آن متکی هستند و برخی ترکیبی از این دو را ترجیح می‌دهند.
### گزینه‌های محبوب خط فرمان
@ -186,19 +186,19 @@ back add r0,r1
#### مستندات محبوب در توسعه وب
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web)، از Mozilla، ناشرین مرورگر [Firefox](https://www.mozilla.org/firefox/)
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web)، از Mozilla، ناشر مرورگر [Firefox](https://www.mozilla.org/firefox/)
- [Frontend Masters](https://frontendmasters.com/learn/)
- [Web.dev](https://web.dev)، از Google، ناشرین مرورگر [Chrome](https://www.google.com/chrome/)
- [Web.dev](https://web.dev)، از Google، ناشر مرورگر [Chrome](https://www.google.com/chrome/)
- [مستندات توسعه‌دهندگان مایکروسافت](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers)، برای [Microsoft Edge](https://www.microsoft.com/edge)
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ کمی تحقیق کنید: حالا که اصول محیط توسعه‌دهنده وب را می‌دانید، آن را با محیط یک طراح وب مقایسه کنید.
✅ کمی تحقیق کنید: اکنون که اصول محیط توسعه‌دهنده وب را می‌دانید، آن را با محیط یک طراح وب مقایسه کنید.
---
## 🚀 چالش
برخی زبان‌های برنامه‌نویسی را مقایسه کنید. چه ویژگی‌های منحصر به فردی در JavaScript در مقابل Java وجود دارد؟ در مورد COBOL در مقابل Go چطور؟
برخی زبان‌های برنامه‌نویسی را مقایسه کنید. چه ویژگی‌های منحصر به فردی بین JavaScript و Java وجود دارد؟ چگونه COBOL با Go مقایسه می‌شود؟
## آزمون پس از درس
[آزمون پس از درس](https://ff-quizzes.netlify.app/web/)
@ -211,7 +211,9 @@ back add r0,r1
[مطالعه مستندات](assignment.md)
> توجه: هنگام انتخاب ابزارها برای تکلیف خود، ویرایشگرها، مرورگرها یا ابزارهای خط فرمانی که در بالا ذکر شده‌اند را انتخاب نکنید.
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,23 +1,31 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ce4deaec80130d3a0a3c906568459fc",
"translation_date": "2025-08-24T13:01:34+00:00",
"original_hash": "9e2f84e351a6fcb44bfc4066d98525f0",
"translation_date": "2025-10-03T08:42:08+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/assignment.md",
"language_code": "fa"
}
-->
# خواندن مستندات
## دستورالعمل‌ها
ابزارهای زیادی وجود دارند که یک توسعه‌دهنده وب ممکن است به آن‌ها نیاز داشته باشد و در [مستندات MDN برای ابزارهای سمت کاربر](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview) فهرست شده‌اند. سه ابزار که در درس پوشش داده نشده‌اند را انتخاب کنید، توضیح دهید چرا یک توسعه‌دهنده وب ممکن است از آن استفاده کند، و یک ابزار که در این دسته‌بندی قرار می‌گیرد را جستجو کرده و مستندات آن را به اشتراک بگذارید. از مثال‌های ابزار مشابه در مستندات MDN استفاده نکنید.
ابزارهای زیادی وجود دارند که یک توسعه‌دهنده وب ممکن است به آن‌ها نیاز داشته باشد و در [مستندات MDN برای ابزارهای سمت کاربر](https://developer.mozilla.org/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Overview) فهرست شده‌اند. **سه ابزار** را انتخاب کنید که **در این درس پوشش داده نشده‌اند** (به جز [ابزارهای خاص فهرست‌شده یا محتوای درس])، توضیح دهید **چرا** یک توسعه‌دهنده وب از هر ابزار استفاده می‌کند و یک ابزار مناسب برای هر دسته پیدا کنید. برای هر ابزار، لینک مستندات رسمی آن را به اشتراک بگذارید (نه مثالی که در MDN استفاده شده است).
**فرمت:**
- نام ابزار
- چرا یک توسعه‌دهنده وب از آن استفاده می‌کند (۲-۳ جمله)
- لینک به مستندات
**طول:**
- هر توضیح باید ۲-۳ جمله باشد.
## معیار ارزیابی
عالی | کافی | نیاز به بهبود
عالی | قابل قبول | نیاز به بهبود
--- | --- | -- |
|توضیح داده شده چرا یک توسعه‌دهنده وب ممکن است از ابزار استفاده کند| توضیح داده شده چگونه، اما نه چرا یک توسعه‌دهنده ممکن است از ابزار استفاده کند| اشاره‌ای به چگونگی یا چرایی استفاده یک توسعه‌دهنده از ابزار نشده است |
توضیح داده شده که چرا توسعه‌دهنده وب از ابزار استفاده می‌کند | توضیح داده شده که چگونه، اما نه چرا توسعه‌دهنده از ابزار استفاده می‌کند | ذکر نشده که چگونه یا چرا توسعه‌دهنده از ابزار استفاده می‌کند |
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادقتی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,8 +1,8 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "3869244ceda606c4969d8cdd82679867",
"translation_date": "2025-08-24T12:24:11+00:00",
"original_hash": "de0ec12c337394806425c7fd2f003b62",
"translation_date": "2025-10-03T08:40:48+00:00",
"source_file": "2-js-basics/1-data-types/assignment.md",
"language_code": "fa"
}
@ -11,13 +11,15 @@ CO_OP_TRANSLATOR_METADATA:
## دستورالعمل‌ها
تصور کنید که در حال ساخت یک سبد خرید هستید. مستندی درباره انواع داده‌هایی که برای تکمیل تجربه خرید خود نیاز دارید بنویسید. چگونه به انتخاب‌های خود رسیدید؟
تصور کنید که در حال ساخت یک سبد خرید هستید. مستنداتی درباره انواع داده‌هایی که برای تکمیل تجربه خرید نیاز دارید بنویسید. برای هر نوع داده، توضیح دهید که چگونه و چرا از آن استفاده می‌کنید و یک مثال ارائه دهید. شش نوع داده در جاوااسکریپت عبارتند از: String، Number، Boolean، Null، Undefined و Object.
## معیار ارزیابی
معیار | عالی | کافی | نیاز به بهبود
معیار | عالی | قابل قبول | نیاز به بهبود
--- | --- | --- | --- |
||شش نوع داده فهرست شده و به طور کامل بررسی شده‌اند و استفاده از آن‌ها مستند شده است|چهار نوع داده بررسی شده‌اند|دو نوع داده بررسی شده‌اند|
انواع داده‌ها | هر شش نوع داده فهرست شده، به طور کامل بررسی شده و با مثال مستند شده‌اند | چهار نوع داده بررسی شده با توضیحات نسبی | دو نوع داده بررسی شده با توضیحات حداقلی |
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان بومی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,23 +1,53 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "970776c81401c9aacb34f365edac6b53",
"translation_date": "2025-08-24T12:02:43+00:00",
"original_hash": "5a764667bbe82aa72ac0a67f4c97ff4a",
"translation_date": "2025-10-03T08:42:24+00:00",
"source_file": "3-terrarium/1-intro-to-html/assignment.md",
"language_code": "fa"
}
-->
# تمرین HTML: ساخت یک طرح اولیه وبلاگ
# تمرین HTML: ساخت یک نمونه اولیه وبلاگ
## هدف
طراحی و کدنویسی دستی ساختار HTML برای صفحه اصلی یک وبلاگ شخصی. این تمرین به شما کمک می‌کند تا HTML معنایی، برنامه‌ریزی چیدمان و سازماندهی کد را تمرین کنید.
## دستورالعمل‌ها
تصور کنید که در حال طراحی یا بازطراحی وب‌سایت شخصی خود هستید. یک طرح گرافیکی از سایت خود ایجاد کنید و سپس کدهای HTML مورد نیاز برای ساخت عناصر مختلف سایت را بنویسید. می‌توانید این کار را روی کاغذ انجام دهید و آن را اسکن کنید، یا از نرم‌افزار دلخواه خود استفاده کنید، فقط مطمئن شوید که کدهای HTML را به صورت دستی بنویسید.
1. **طراحی نمونه اولیه وبلاگ**
- یک طرح بصری از صفحه اصلی وبلاگ خود رسم کنید. بخش‌های کلیدی مانند هدر، ناوبری، محتوای اصلی، نوار کناری و فوتر را شامل کنید.
- می‌توانید از کاغذ استفاده کرده و طرح خود را اسکن کنید، یا از ابزارهای دیجیتال (مانند Figma، Adobe XD، Canva یا حتی PowerPoint) استفاده کنید.
2. **شناسایی عناصر HTML**
- لیستی از عناصر HTML که قصد دارید برای هر بخش استفاده کنید تهیه کنید (مانند `<header>`, `<nav>`, `<main>`, `<article>`, `<aside>`, `<footer>`, `<section>`, `<h1>``<h6>`, `<p>`, `<img>`, `<ul>`, `<li>`, `<a>` و غیره).
3. **نوشتن کد HTML**
- کد HTML مربوط به نمونه اولیه خود را به صورت دستی بنویسید. بر ساختار معنایی و بهترین شیوه‌ها تمرکز کنید.
- حداقل ۱۰ عنصر HTML مختلف را شامل کنید.
- برای توضیح انتخاب‌ها و ساختار خود، کامنت اضافه کنید.
4. **ارسال کار**
- طرح/نمونه اولیه و فایل HTML خود را آپلود کنید.
- به صورت اختیاری، یک بازتاب کوتاه (۲–۳ جمله) درباره تصمیمات طراحی خود ارائه دهید.
## معیار ارزیابی
| معیار | عالی | قابل قبول | نیاز به بهبود |
| ----------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| | یک طرح وبلاگ به صورت بصری نمایش داده شده و حداقل ۱۰ عنصر کدنویسی HTML در آن مشخص است | یک طرح وبلاگ به صورت بصری نمایش داده شده و حدود ۵ عنصر کدنویسی HTML در آن مشخص است | یک طرح وبلاگ به صورت بصری نمایش داده شده و حداکثر ۳ عنصر کدنویسی HTML در آن مشخص است |
| معیار | عالی | قابل قبول | نیاز به بهبود |
|------------------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| نمونه اولیه بصری | نمونه اولیه واضح و دقیق با بخش‌های برچسب‌گذاری شده و چیدمان متفکرانه | نمونه اولیه پایه با برخی بخش‌های برچسب‌گذاری شده | نمونه اولیه حداقلی یا نامشخص؛ فاقد برچسب بخش‌ها |
| عناصر HTML | استفاده از ۱۰+ عنصر HTML معنایی؛ نشان‌دهنده درک ساختار و بهترین شیوه‌ها | استفاده از ۵–۹ عنصر HTML؛ برخی ساختار معنایی | استفاده از کمتر از ۵ عنصر؛ فاقد ساختار معنایی |
| کیفیت کد | کد سازماندهی شده، خوانا با کامنت‌ها؛ مطابق با استانداردهای HTML | کد تا حدی سازماندهی شده؛ کامنت‌های کم | کد نامنظم؛ فاقد کامنت‌ها |
| بازتاب | بازتابی بینش‌مند درباره انتخاب‌های طراحی و چالش‌ها | بازتاب پایه | بدون بازتاب یا فاقد ارتباط |
## نکات
- از تگ‌های HTML معنایی برای دسترسی بهتر و SEO استفاده کنید.
- کد خود را با تورفتگی و کامنت‌ها سازماندهی کنید.
- برای راهنمایی به [مرجع عناصر HTML در MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) مراجعه کنید.
- به این فکر کنید که چیدمان شما چگونه می‌تواند در تمرین‌های آینده گسترش یا استایل‌دهی شود.
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,23 +1,41 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d4d75af51aaccfe9af778f792c62919",
"translation_date": "2025-08-24T12:10:35+00:00",
"original_hash": "a212cc22a18eddf9046b7a16dfbafd8b",
"translation_date": "2025-10-03T08:42:15+00:00",
"source_file": "3-terrarium/2-intro-to-css/assignment.md",
"language_code": "fa"
}
-->
# بازسازی CSS
# تکلیف بازسازی CSS
## هدف
بازسازی پروژه تراریوم با استفاده از **Flexbox** یا **CSS Grid** برای چیدمان. HTML و CSS را به‌روزرسانی کنید تا طراحی مدرن و واکنش‌گرا ایجاد شود. نیازی به پیاده‌سازی عناصر قابل کشیدن نیست—فقط بر چیدمان و استایل تمرکز کنید.
## دستورالعمل‌ها
تراریوم را با استفاده از Flexbox یا CSS Grid بازطراحی کنید و از آن اسکرین‌شات بگیرید تا نشان دهید که آن را در چندین مرورگر آزمایش کرده‌اید. ممکن است نیاز باشد که نشانه‌گذاری را تغییر دهید، بنابراین نسخه جدیدی از برنامه با هنر موجود برای بازطراحی خود ایجاد کنید. نگران قابل‌کشیدن بودن عناصر نباشید؛ فعلاً فقط HTML و CSS را بازطراحی کنید.
1. **یک نسخه جدید** از اپلیکیشن تراریوم ایجاد کنید. مارک‌آپ و CSS را به‌روزرسانی کنید تا از Flexbox یا CSS Grid برای چیدمان استفاده شود.
2. **اطمینان حاصل کنید که هنر و عناصر** همانند نسخه اصلی در جای خود قرار دارند.
3. **طراحی خود را آزمایش کنید** در حداقل دو مرورگر مختلف (مانند Chrome، Firefox، Edge).
4. **از تراریوم خود در هر مرورگر اسکرین‌شات بگیرید** تا سازگاری بین مرورگرها را نشان دهید.
5. **کد به‌روزرسانی‌شده و اسکرین‌شات‌ها را ارسال کنید.**
## معیار ارزیابی
| معیار | عالی | قابل قبول | نیاز به بهبود |
|-------------|---------------------------------------------------------------------------|-------------------------------------|-----------------------------------------|
| چیدمان | کاملاً بازسازی‌شده با استفاده از Flexbox یا CSS Grid؛ زیبا و واکنش‌گرا | برخی عناصر بازسازی‌شده؛ استفاده جزئی از Flexbox یا Grid | استفاده کم یا عدم استفاده از Flexbox یا Grid؛ چیدمان بدون تغییر |
| سازگاری بین مرورگرها | اسکرین‌شات‌ها برای چندین مرورگر ارائه شده؛ ظاهر سازگار | اسکرین‌شات برای یک مرورگر؛ ناسازگاری جزئی | بدون اسکرین‌شات یا ناسازگاری‌های عمده |
| کیفیت کد | HTML/CSS تمیز و سازمان‌یافته؛ کامنت‌های واضح | کمی سازمان‌یافته؛ کامنت‌های کم | کد نامرتب؛ بدون کامنت |
## نکات
## معیارها
- راهنماهای [Flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) و [CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) را مرور کنید.
- از ابزارهای توسعه‌دهنده مرورگر برای آزمایش واکنش‌گرایی استفاده کنید.
- کد خود را برای وضوح کامنت‌گذاری کنید.
| معیار | عالی | قابل قبول | نیاز به بهبود |
| --------- | ----------------------------------------------------------------- | -------------------------- | ---------------------------------- |
| | ارائه یک تراریوم کاملاً بازطراحی‌شده با استفاده از Flexbox یا CSS Grid | بازطراحی چند عنصر | عدم بازطراحی تراریوم به طور کامل |
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان بومی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه انسانی حرفه‌ای استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,158 +1,175 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "1ba61d96a11309a2a6ea507496dcf7e5",
"translation_date": "2025-08-29T14:35:25+00:00",
"original_hash": "f8d4b0284f3fc1de7eb65073d8338cca",
"translation_date": "2025-10-03T08:40:54+00:00",
"source_file": "8-code-editor/1-using-a-code-editor/README.md",
"language_code": "fa"
}
-->
# استفاده از ویرایشگر کد
***
این درس اصول اولیه استفاده از [VSCode.dev](https://vscode.dev)، یک ویرایشگر کد مبتنی بر وب را پوشش می‌دهد تا بتوانید بدون نصب هیچ نرم‌افزاری روی کامپیوتر خود، کدهای خود را تغییر دهید و در یک پروژه مشارکت کنید.
# استفاده از ویرایشگر کد: تسلط بر [VSCode.dev](https://vscode.dev)
## اهداف یادگیری
در این درس، شما یاد می‌گیرید که:
- از یک ویرایشگر کد در یک پروژه کدنویسی استفاده کنید
- تغییرات را با کنترل نسخه پیگیری کنید
- ویرایشگر را برای توسعه سفارشی‌سازی کنید
**خوش آمدید!**
این درس شما را از اصول اولیه تا استفاده پیشرفته از [VSCode.dev](https://vscode.dev)—ویرایشگر کد قدرتمند مبتنی بر وب، هدایت می‌کند. شما یاد خواهید گرفت که چگونه با اطمینان کد را ویرایش کنید، پروژه‌ها را مدیریت کنید، تغییرات را دنبال کنید، افزونه‌ها را نصب کنید و مانند یک حرفه‌ای همکاری کنید—همه این‌ها از طریق مرورگر، بدون نیاز به نصب.
### پیش‌نیازها
***
قبل از شروع، باید یک حساب کاربری در [GitHub](https://github.com) ایجاد کنید. به [GitHub](https://github.com/) بروید و اگر هنوز حسابی ندارید، یک حساب کاربری ایجاد کنید.
## اهداف یادگیری
### مقدمه
در پایان این درس، شما قادر خواهید بود:
ویرایشگر کد یک ابزار ضروری برای نوشتن برنامه‌ها و همکاری در پروژه‌های کدنویسی موجود است. وقتی اصول اولیه یک ویرایشگر و نحوه استفاده از ویژگی‌های آن را درک کنید، می‌توانید آن‌ها را هنگام نوشتن کد به کار ببرید.
- به طور مؤثر از یک ویرایشگر کد برای هر پروژه، در هر مکان استفاده کنید
- با کنترل نسخه داخلی، کار خود را به راحتی دنبال کنید
- جریان کاری توسعه خود را با شخصی‌سازی و افزونه‌های ویرایشگر بهبود دهید
## شروع به کار با VSCode.dev
***
[VSCode.dev](https://vscode.dev) یک ویرایشگر کد مبتنی بر وب است. برای استفاده از آن نیازی به نصب هیچ چیزی ندارید، درست مانند باز کردن هر وب‌سایت دیگری. برای شروع با این ویرایشگر، لینک زیر را باز کنید: [https://vscode.dev](https://vscode.dev). اگر وارد [GitHub](https://github.com/) نشده‌اید، دستورالعمل‌ها را دنبال کنید تا وارد شوید یا یک حساب جدید ایجاد کنید و سپس وارد شوید.
## پیش‌نیازها
پس از بارگذاری، باید چیزی شبیه به این تصویر ببینید:
برای شروع، **یک حساب کاربری رایگان [GitHub](https://github.com) ایجاد کنید** که به شما امکان مدیریت مخازن کد و همکاری جهانی را می‌دهد. اگر هنوز حساب کاربری ندارید، [اینجا یک حساب ایجاد کنید](https://github.com/).
![پیش‌فرض VSCode.dev](../../../../translated_images/default-vscode-dev.5d06881d65c1b3234ce50cd9ed3b0028e6031ad5f5b441bcbed96bfa6311f6d0.fa.png)
***
سه بخش اصلی وجود دارد که از سمت چپ به راست حرکت می‌کنند:
## چرا از یک ویرایشگر کد مبتنی بر وب استفاده کنیم؟
1. _نوار فعالیت_ که شامل چند آیکون مانند ذره‌بین 🔎، چرخ‌دنده ⚙️ و چند آیکون دیگر است.
2. نوار فعالیت گسترش‌یافته که به طور پیش‌فرض به _Explorer_ تنظیم شده و به آن _نوار کناری_ گفته می‌شود.
3. و در نهایت، ناحیه کد در سمت راست.
یک **ویرایشگر کد** مانند VSCode.dev مرکز فرماندهی شما برای نوشتن، ویرایش و مدیریت کد است. با رابط کاربری ساده، ویژگی‌های فراوان و دسترسی فوری از طریق مرورگر، شما می‌توانید:
روی هر یک از آیکون‌ها کلیک کنید تا منوی متفاوتی نمایش داده شود. پس از اتمام، روی _Explorer_ کلیک کنید تا به جایی که شروع کرده‌اید بازگردید.
- پروژه‌ها را روی هر دستگاهی ویرایش کنید
- از دردسر نصب‌ها اجتناب کنید
- فوراً همکاری و مشارکت کنید
وقتی شروع به ایجاد یا تغییر کد می‌کنید، این کار در بزرگ‌ترین ناحیه سمت راست انجام می‌شود. از این ناحیه برای مشاهده کد موجود نیز استفاده خواهید کرد، که در مرحله بعدی انجام می‌دهید.
وقتی با VSCode.dev راحت شدید، آماده خواهید بود تا وظایف کدنویسی را از هر مکان و در هر زمان انجام دهید.
## باز کردن یک مخزن GitHub
***
اولین چیزی که نیاز دارید باز کردن یک مخزن GitHub است. روش‌های مختلفی برای باز کردن یک مخزن وجود دارد. در این بخش، دو روش مختلف برای باز کردن یک مخزن را مشاهده می‌کنید تا بتوانید تغییرات را شروع کنید.
## شروع کار با VSCode.dev
### 1. با استفاده از ویرایشگر
به **[VSCode.dev](https://vscode.dev)** بروید—بدون نصب، بدون دانلود. ورود با GitHub دسترسی کامل را باز می‌کند، از جمله همگام‌سازی تنظیمات، افزونه‌ها و مخازن شما. اگر درخواست شد، حساب GitHub خود را متصل کنید.
از خود ویرایشگر برای باز کردن یک مخزن از راه دور استفاده کنید. اگر به [VSCode.dev](https://vscode.dev) بروید، دکمه‌ای با عنوان _"Open Remote Repository"_ خواهید دید:
پس از بارگذاری، محیط کاری شما به این شکل خواهد بود:
![باز کردن مخزن از راه دور](../../../../translated_images/open-remote-repository.bd9c2598b8949e7fc283cdfc8f4050c6205a7c7c6d3f78c4b135115d037d6fa2.fa.png)
![Default VSCode.dev](../images/default-vscode-dev سه بخش اصلی از چپ به راست دارد:
- **نوار فعالیت:** آیکون‌هایی مانند 🔎 (جستجو)، ⚙️ (تنظیمات)، فایل‌ها، کنترل منبع و غیره.
- **نوار کناری:** بسته به آیکون انتخاب شده در نوار فعالیت تغییر می‌کند (به طور پیش‌فرض روی *Explorer* برای نمایش فایل‌ها تنظیم شده است).
- **ناحیه ویرایش/کد:** بزرگ‌ترین بخش در سمت راست—جایی که شما واقعاً کد را ویرایش و مشاهده می‌کنید.
همچنین می‌توانید از الت دستورات_ استفاده کنید. پالت دستورات یک جعبه ورودی است که می‌توانید هر کلمه‌ای که بخشی از یک دستور یا عمل است را تایپ کنید تا دستور مناسب را پیدا کنید. از منوی بالا سمت چپ استفاده کنید، سپس _View_ را انتخاب کنید و سپس _Command Palette_ را انتخاب کنید، یا از میانبر صفحه‌کلید زیر استفاده کنید: Ctrl-Shift-P (در MacOS، Command-Shift-P).
روی آیکون‌ها کلیک کنید تا ویژگی‌ها را بررسی کنید، اما برای حفظ جایگاه خود به _Explorer_ بازگردید.
![منوی پالت](../../../../translated_images/palette-menu.4946174e07f426226afcdad707d19b8d5150e41591c751c45b5dee213affef91.fa.png)
***
پس از باز شدن منو، _open remote repository_ را تایپ کنید و سپس اولین گزینه را انتخاب کنید. مخازن متعددی که شما بخشی از آن‌ها هستید یا اخیراً باز کرده‌اید نمایش داده می‌شوند. همچنین می‌توانید از یک URL کامل GitHub برای انتخاب یکی استفاده کنید. از URL زیر استفاده کنید و آن را در جعبه وارد کنید:
## باز کردن یک مخزن GitHub
```
https://github.com/microsoft/Web-Dev-For-Beginners
```
### روش ۱: از طریق ویرایشگر
✅ اگر موفق باشید، تمام فایل‌های این مخزن در ویرایشگر متن بارگذاری می‌شوند.
1. به [VSCode.dev](https://vscode.dev) بروید. روی **"Open Remote Repository"** کلیک کنید.
### 2. با استفاده از URL
![Open remote repository](../../../../8-code-editor/images/open-remote-repository از _Command Palette_ (Ctrl-Shift-P، یا Cmd-Shift-P در مک) استفاده کنید.
همچنین می‌توانید مستقیماً از یک URL برای بارگذاری یک مخزن استفاده کنید. به عنوان مثال، URL کامل مخزن فعلی [https://github.com/microsoft/Web-Dev-For-Beginners](https://github.com/microsoft/Web-Dev-For-Beginners) است، اما می‌توانید دامنه GitHub را با `VSCode.dev/github` جایگزین کنید و مخزن را مستقیماً بارگذاری کنید. URL حاصل این خواهد بود: [https://vscode.dev/github/microsoft/Web-Dev-For-Beginners](https://vscode.dev/github/microsoft/Web-Dev-For-Beginners).
![Palette Menu](../images/palette-menu.pngopen remote repository.”
- گزینه را انتخاب کنید.
- URL مخزن GitHub خود را وارد کنید (مثلاً `https://github.com/microsoft/Web-Dev-For-Beginners`) و Enter را فشار دهید.
## ویرایش فایل‌ها
اگر موفقیت‌آمیز باشد، کل پروژه بارگذاری شده و آماده ویرایش خواهد بود!
پس از باز کردن مخزن در مرورگر/vscode.dev، مرحله بعدی ایجاد به‌روزرسانی‌ها یا تغییرات در پروژه است.
***
### 1. ایجاد یک فایل جدید
### روش ۲: باز کردن فوری از طریق URL
می‌توانید یک فایل را در یک پوشه موجود ایجاد کنید یا آن را در دایرکتوری/پوشه اصلی ایجاد کنید. برای ایجاد یک فایل جدید، مکانی/دایرکتوری را که می‌خواهید فایل در آن ذخیره شود باز کنید و آیکون _'New file ...'_ را در نوار فعالیت _(سمت چپ)_ انتخاب کنید، یک نام به آن بدهید و Enter را بزنید.
هر URL مخزن GitHub را تغییر دهید تا مستقیماً در VSCode.dev باز شود، با جایگزینی `github.com` با `vscode.dev/github`.
مثال:
![ایجاد یک فایل جدید](../../../../translated_images/create-new-file.2814e609c2af9aeb6c6fd53156c503ac91c3d538f9cac63073b2dd4a7631f183.fa.png)
- GitHub: `https://github.com/microsoft/Web-Dev-For-Beginners`
- VSCode.dev: `https://vscode.dev/github/microsoft/Web-Dev-For-Beginners`
### 2. ویرایش و ذخیره یک فایل در مخزن
این ویژگی دسترسی سریع به هر پروژه‌ای را فوق‌العاده می‌کند.
استفاده از vscode.dev زمانی مفید است که بخواهید به سرعت پروژه خود را به‌روزرسانی کنید بدون اینکه نیاز به بارگذاری نرم‌افزار محلی داشته باشید.
برای به‌روزرسانی کد خود، روی آیکون 'Explorer' که در نوار فعالیت قرار دارد کلیک کنید تا فایل‌ها و پوشه‌های موجود در مخزن را مشاهده کنید.
یک فایل را انتخاب کنید تا در ناحیه کد باز شود، تغییرات خود را اعمال کنید و ذخیره کنید.
***
![ویرایش یک فایل](../../../../translated_images/edit-a-file.52c0ee665ef19f08119d62d63f395dfefddc0a4deb9268d73bfe791f52c5807a.fa.png)
## ویرایش فایل‌ها در پروژه شما
پس از اتمام به‌روزرسانی پروژه، آیکون _`source control`_ را انتخاب کنید که شامل تمام تغییرات جدیدی است که در مخزن خود ایجاد کرده‌اید.
پس از باز کردن مخزن خود، می‌توانید:
برای مشاهده تغییراتی که در پروژه خود ایجاد کرده‌اید، فایل(ها) را در پوشه `Changes` در نوار فعالیت گسترش‌یافته انتخاب کنید. این کار یک 'درخت کاری' برای شما باز می‌کند تا تغییراتی که در فایل ایجاد کرده‌اید را به صورت بصری مشاهده کنید. رنگ قرمز نشان‌دهنده حذف از پروژه است، در حالی که رنگ سبز نشان‌دهنده اضافه شدن است.
### ۱. **ایجاد یک فایل جدید**
- در نوار کناری *Explorer*، به پوشه مورد نظر خود بروید یا از ریشه استفاده کنید.
- روی آیکون _New file ..._ کلیک کنید.
- نام فایل خود را وارد کنید، Enter را فشار دهید و فایل شما فوراً ظاهر می‌شود.
![مشاهده تغییرات](../../../../translated_images/working-tree.c58eec08e6335c79cc708c0c220c0b7fea61514bd3c7fb7471905a864aceac7c.fa.png)
![Create a new file](../images/create-new-file ۲. **ویرایش و ذخیره فایل‌ها**
اگر از تغییراتی که ایجاد کرده‌اید راضی هستید، روی پوشه `Changes` حرکت کنید و دکمه `+` را برای مرحله‌بندی تغییرات کلیک کنید. مرحله‌بندی به معنای آماده‌سازی تغییرات شما برای ثبت در GitHub است.
- روی یک فایل در *Explorer* کلیک کنید تا در ناحیه کد باز شود.
- تغییرات مورد نیاز خود را انجام دهید.
- VSCode.dev تغییرات شما را به طور خودکار ذخیره می‌کند، اما می‌توانید با فشار دادن Ctrl+S به صورت دستی ذخیره کنید.
اگر با برخی تغییرات راحت نیستید و می‌خواهید آن‌ها را لغو کنید، روی پوشه `Changes` حرکت کنید و آیکون `undo` را انتخاب کنید.
![Edit a file](../images/edit-a-file.png. **ردیابی و ثبت تغییرات با کنترل نسخه**
سپس، یک `پیام ثبت` تایپ کنید _(توضیحی از تغییراتی که در پروژه ایجاد کرده‌اید)_، روی آیکون `تیک` کلیک کنید تا تغییرات را ثبت و ارسال کنید.
VSCode.dev دارای کنترل نسخه **Git** داخلی است!
پس از اتمام کار روی پروژه خود، آیکون `منوی همبرگری` در بالا سمت چپ را انتخاب کنید تا به مخزن در github.com بازگردید.
- روی آیکون _'Source Control'_ کلیک کنید تا تمام تغییرات انجام شده را مشاهده کنید.
- فایل‌های موجود در پوشه `Changes` نشان‌دهنده اضافه‌ها (سبز) و حذف‌ها (قرمز) هستند.
![View changes](../images/working-tree.png تغییرات را با کلیک روی `+` کنار فایل‌ها برای آماده‌سازی ثبت کنید.
- **لغو** تغییرات ناخواسته با کلیک روی آیکون بازگشت.
- یک پیام ثبت واضح تایپ کنید، سپس روی علامت چک کلیک کنید تا ثبت و ارسال شود.
![مرحله‌بندی و ثبت تغییرات](../../../../8-code-editor/images/edit-vscode.dev.gif)
برای بازگشت به مخزن خود در GitHub، منوی همبرگری در بالا سمت چپ را انتخاب کنید.
## استفاده از افزونه‌ها
![Stage & commit changes](../images/edit-vscode.dev Up with Extensions
نصب افزونه‌ها در VSCode به شما امکان می‌دهد ویژگی‌های جدید اضافه کنید و گزینه‌های محیط توسعه سفارشی را در ویرایشگر خود برای بهبود جریان کاری توسعه خود اضافه کنید. این افزونه‌ها همچنین به شما کمک می‌کنند از چندین زبان برنامه‌نویسی پشتیبانی کنید و اغلب یا افزونه‌های عمومی هستند یا افزونه‌های مبتنی بر زبان.
افزونه‌ها به شما امکان می‌دهند زبان‌ها، تم‌ها، دیباگرها و ابزارهای بهره‌وری را به VSCode.dev اضافه کنید—که زندگی کدنویسی شما را آسان‌تر و سرگرم‌کننده‌تر می‌کند.
برای مرور لیست تمام افزونه‌های موجود، روی آیکون _`Extensions`_ در نوار فعالیت کلیک کنید و شروع به تایپ نام افزونه در فیلد متنی با عنوان _'Search Extensions in Marketplace'_ کنید.
لیستی از افزونه‌ها را مشاهده خواهید کرد که هر کدام شامل **نام افزونه، نام ناشر، یک توضیح یک‌جمله‌ای، تعداد دانلودها** و **رتبه‌بندی ستاره‌ای** است.
### مرور و مدیریت افزونه‌ها
![جزئیات افزونه](../../../../translated_images/extension-details.9f8f1fd4e9eb2de5069ae413119eb8ee43172776383ebe2f7cf640e11df2e106.fa.png)
- روی آیکون **Extensions** در نوار فعالیت کلیک کنید.
- یک افزونه را در جعبه _'Search Extensions in Marketplace'_ جستجو کنید.
همچنین می‌توانید تمام افزونه‌های نصب‌شده قبلی را با گسترش پوشه _`Installed`_، افزونه‌های محبوب مورد استفاده اکثر توسعه‌دهندگان در پوشه _`Popular`_ و افزونه‌های پیشنهادی برای شما را بر اساس کاربران در همان فضای کاری یا فایل‌های اخیراً بازشده در پوشه _`Recommended`_ مشاهده کنید.
![Extension details](../images/extension-details:
- **Installed**: تمام افزونه‌هایی که اضافه کرده‌اید
- **Popular**: موارد محبوب در صنعت
- **Recommended**: متناسب با جریان کاری شما
![مشاهده افزونه‌ها](../../../../translated_images/extensions.eca0e0c7f59a10b5c88be7fe24b3e32cca6b6058b35a49026c3a9d80b1813b7c.fa.png)
![View extensions](
### 1. نصب افزونه‌ها
برای نصب یک افزونه، نام آن را در فیلد جستجو تایپ کنید و پس از ظاهر شدن در نوار فعالیت گسترش‌یافته، روی آن کلیک کنید تا اطلاعات بیشتری درباره افزونه در ناحیه کد مشاهده کنید.
***
می‌توانید یا روی دکمه _نصب آبیرنگ_ در نوار فعالیت گسترش‌یافته کلیک کنید یا از دکمه نصب که در ناحیه کد ظاهر می‌شود استفاده کنید.
### ۱. **نصب افزونه‌ها**
![نصب افزونه‌ها](../../../../8-code-editor/images/install-extension.gif)
- نام افزونه را در جستجو وارد کنید، روی آن کلیک کنید و جزئیات را در ویرایشگر بررسی کنید.
- دکمه **آبی نصب** را در نوار کناری ا_ در ناحیه اصلی کد فشار دهید.
### 2. سفارشی‌سازی افزونه‌ها
![Install extensions](../images/install-extension ۲. **شخصی‌سازی افزونه‌ها**
پس از نصب افزونه، ممکن است نیاز داشته باشید رفتار آن را تغییر دهید و بر اساس ترجیحات خود سفارشی‌سازی کنید. برای انجام این کار، آیکون Extensions را انتخاب کنید و این بار افزونه شما در پوشه _Installed_ ظاهر می‌شود، روی آیکون _**چرخ‌دنده**_ کلیک کنید و به _Extensions Setting_ بروید.
- افزونه نصب شده خود را پیدا کنید.
- روی **آیکون چرخ‌دنده** کلیک کنید → گزینه _Extension Settings_ را انتخاب کنید تا رفتارها را به دلخواه تنظیم کنید.
![تنظیمات افزونه](../../../../translated_images/extension-settings.21c752ae4f4cdb78a867f140ccd0680e04619d0c44bb4afb26373e54b829d934.fa.png)
![Modify extension settings](../images/extension-settings ۳. **مدیریت افزونه‌ها**
شما می‌توانید:
### 3. مدیریت افزونه‌ها
- **غیرفعال کردن:** به طور موقت یک افزونه را خاموش کنید در حالی که نصب شده باقی می‌ماند
- **حذف:** به طور دائمی آن را حذف کنید اگر دیگر نیازی به آن ندارید
پس از نصب و استفاده از افزونه، vscode.dev گزینه‌هایی برای مدیریت افزونه شما بر اساس نیازهای مختلف ارائه می‌دهد. به عنوان مثال، ممکن است بخواهید:
افزونه را پیدا کنید، روی آیکون چرخ‌دنده کلیک کنید و گزینه Disable یا Uninstall را انتخاب کنید، یا از دکمه‌های آبی در ناحیه کد استفاده کنید.
- **غیرفعال کردن:** _(وقتی موقتاً نیازی به افزونه ندارید اما نمی‌خواهید آن را به طور کامل حذف کنید)_
***
افزونه نصب‌شده را در نوار فعالیت گسترش‌یافته انتخاب کنید > روی آیکون چرخ‌دنده کلیک کنید > 'Disable' یا 'Disable (Workspace)' را انتخاب کنید **یا** افزونه را در ناحیه کد باز کنید و روی دکمه آبی Disable کلیک کنید.
## تکلیف
- **حذف نصب:** افزونه نصب‌شده را در نوار فعالیت گسترش‌یافته انتخاب کنید > روی آیکون چرخ‌دنده کلیک کنید > 'Uninstall' را انتخاب کنید **یا** افزونه را در ناحیه کد باز کنید و روی دکمه آبی Uninstall کلیک کنید.
مهارت‌های خود را آزمایش کنید: [یک وب‌سایت رزومه با استفاده از vscode.dev ایجاد کنید](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
---
***
## تکلیف
## بررسی بیشتر و مطالعه خودآموز
[ایجاد یک وب‌سایت رزومه با استفاده از vscode.dev](https://github.com/microsoft/Web-Dev-For-Beginners/blob/main/8-code-editor/1-using-a-code-editor/assignment.md)
- با [مستندات رسمی وب VSCode](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) عمیق‌تر شوید.
- ویژگی‌های پیشرفته محیط کاری، میانبرهای صفحه کلید و تنظیمات را بررسی کنید.
## مرور و مطالعه شخصی
***
بیشتر درباره [VSCode.dev](https://code.visualstudio.com/docs/editor/vscode-web?WT.mc_id=academic-0000-alfredodeza) و برخی از ویژگی‌های دیگر آن بخوانید.
**اکنون آماده هستید تا کدنویسی، ایجاد و همکاری کنید—از هر مکان، روی هر دستگاه، با استفاده از VSCode.dev!**
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -0,0 +1,415 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:15:19+00:00",
"source_file": "AGENTS.md",
"language_code": "fa"
}
-->
# AGENTS.md
## نمای کلی پروژه
این مخزن یک برنامه آموزشی برای آموزش اصول توسعه وب به مبتدیان است. این برنامه آموزشی یک دوره جامع ۱۲ هفته‌ای است که توسط Microsoft Cloud Advocates توسعه داده شده و شامل ۲۴ درس عملی در زمینه جاوااسکریپت، CSS و HTML می‌باشد.
### اجزای کلیدی
- **محتوای آموزشی**: ۲۴ درس ساختارمند که به صورت ماژول‌های مبتنی بر پروژه سازماندهی شده‌اند
- **پروژه‌های عملی**: Terrarium، بازی تایپ، افزونه مرورگر، بازی فضایی، اپلیکیشن بانکی، ویرایشگر کد، و دستیار چت هوش مصنوعی
- **آزمون‌های تعاملی**: ۴۸ آزمون با ۳ سوال در هر آزمون (ارزیابی‌های قبل و بعد از درس)
- **پشتیبانی چندزبانه**: ترجمه‌های خودکار به بیش از ۵۰ زبان از طریق GitHub Actions
- **فناوری‌ها**: HTML، CSS، جاوااسکریپت، Vue.js 3، Vite، Node.js، Express، Python (برای پروژه‌های هوش مصنوعی)
### معماری
- مخزن آموزشی با ساختار مبتنی بر درس
- هر پوشه درس شامل README، مثال‌های کد و راه‌حل‌ها است
- پروژه‌های مستقل در دایرکتوری‌های جداگانه (quiz-app، پروژه‌های مختلف درس)
- سیستم ترجمه با استفاده از GitHub Actions (co-op-translator)
- مستندات از طریق Docsify ارائه شده و به صورت PDF در دسترس است
## دستورات راه‌اندازی
این مخزن عمدتاً برای مصرف محتوای آموزشی است. برای کار با پروژه‌های خاص:
### راه‌اندازی مخزن اصلی
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### راه‌اندازی اپلیکیشن آزمون (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### API پروژه بانکی (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### پروژه‌های افزونه مرورگر
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### پروژه‌های بازی فضایی
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### پروژه چت (پشتیبان Python)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## جریان کاری توسعه
### برای مشارکت‌کنندگان محتوا
1. **مخزن را فورک کنید** به حساب GitHub خود
2. **فورک خود را به صورت محلی کلون کنید**
3. **یک شاخه جدید ایجاد کنید** برای تغییرات خود
4. تغییرات را در محتوای درس یا مثال‌های کد اعمال کنید
5. تغییرات کد را در دایرکتوری‌های پروژه مربوطه آزمایش کنید
6. درخواست‌های pull را مطابق با دستورالعمل‌های مشارکت ارسال کنید
### برای یادگیرندگان
1. مخزن را فورک یا کلون کنید
2. به ترتیب به دایرکتوری‌های درس بروید
3. فایل‌های README هر درس را بخوانید
4. آزمون‌های قبل از درس را در https://ff-quizzes.netlify.app/web/ تکمیل کنید
5. مثال‌های کد را در پوشه‌های درس انجام دهید
6. تکالیف و چالش‌ها را کامل کنید
7. آزمون‌های بعد از درس را انجام دهید
### توسعه زنده
- **مستندات**: دستور `docsify serve` را در ریشه اجرا کنید (پورت ۳۰۰۰)
- **اپلیکیشن آزمون**: دستور `npm run dev` را در دایرکتوری quiz-app اجرا کنید
- **پروژه‌ها**: از افزونه Live Server در VS Code برای پروژه‌های HTML استفاده کنید
- **پروژه‌های API**: دستور `npm start` را در دایرکتوری‌های API مربوطه اجرا کنید
## دستورالعمل‌های آزمایش
### آزمایش اپلیکیشن آزمون
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### آزمایش API بانکی
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### رویکرد کلی آزمایش
- این مخزن آموزشی فاقد آزمایش‌های خودکار جامع است
- آزمایش دستی بر موارد زیر تمرکز دارد:
- اجرای مثال‌های کد بدون خطا
- کارکرد صحیح لینک‌های مستندات
- تکمیل موفقیت‌آمیز ساخت پروژه‌ها
- رعایت بهترین شیوه‌ها در مثال‌ها
### بررسی‌های قبل از ارسال
- دستور `npm run lint` را در دایرکتوری‌هایی که package.json دارند اجرا کنید
- اعتبار لینک‌های markdown را بررسی کنید
- مثال‌های کد را در مرورگر یا Node.js آزمایش کنید
- اطمینان حاصل کنید که ترجمه‌ها ساختار مناسب را حفظ کرده‌اند
## دستورالعمل‌های سبک کدنویسی
### جاوااسکریپت
- استفاده از سینتکس مدرن ES6+
- پیروی از تنظیمات استاندارد ESLint ارائه شده در پروژه‌ها
- استفاده از نام‌های متغیر و تابع معنادار برای وضوح آموزشی
- افزودن توضیحات برای توضیح مفاهیم به یادگیرندگان
- قالب‌بندی با استفاده از Prettier در صورت پیکربندی
### HTML/CSS
- استفاده از عناصر معنایی HTML5
- اصول طراحی واکنش‌گرا
- کنوانسیون‌های نام‌گذاری کلاس واضح
- توضیحات برای توضیح تکنیک‌های CSS به یادگیرندگان
### Python
- دستورالعمل‌های سبک PEP 8
- مثال‌های کد واضح و آموزشی
- استفاده از نوع‌دهی در صورت مفید بودن برای یادگیری
### مستندات Markdown
- سلسله‌مراتب واضح در عناوین
- بلوک‌های کد با مشخصات زبان
- لینک به منابع اضافی
- تصاویر و اسکرین‌شات‌ها در دایرکتوری‌های `images/`
- متن جایگزین برای تصاویر جهت دسترسی‌پذیری
### سازماندهی فایل‌ها
- درس‌ها به صورت ترتیبی شماره‌گذاری شده‌اند (1-getting-started-lessons، 2-js-basics، و غیره)
- هر پروژه دارای دایرکتوری‌های `solution/` و اغلب `start/` یا `your-work/` است
- تصاویر در پوشه‌های `images/` مربوط به درس ذخیره می‌شوند
- ترجمه‌ها در ساختار `translations/{language-code}/` قرار دارند
## ساخت و استقرار
### استقرار اپلیکیشن آزمون (Azure Static Web Apps)
اپلیکیشن آزمون برای استقرار در Azure Static Web Apps پیکربندی شده است:
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
پیکربندی Azure Static Web Apps:
- **محل اپلیکیشن**: `/quiz-app`
- **محل خروجی**: `dist`
- **جریان کاری**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### تولید PDF مستندات
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### مستندات Docsify
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### ساخت‌های خاص پروژه
هر دایرکتوری پروژه ممکن است فرآیند ساخت خود را داشته باشد:
- پروژه‌های Vue: دستور `npm run build` بسته‌های تولیدی ایجاد می‌کند
- پروژه‌های استاتیک: مرحله ساخت ندارند، فایل‌ها را مستقیماً ارائه دهید
## دستورالعمل‌های درخواست Pull
### قالب عنوان
از عناوین واضح و توصیفی که ناحیه تغییر را نشان می‌دهند استفاده کنید:
- `[Quiz-app] افزودن آزمون جدید برای درس X`
- `[Lesson-3] اصلاح اشتباه تایپی در پروژه terrarium`
- `[Translation] افزودن ترجمه اسپانیایی برای درس ۵`
- `[Docs] به‌روزرسانی دستورالعمل‌های راه‌اندازی`
### بررسی‌های مورد نیاز
قبل از ارسال PR:
1. **کیفیت کد**:
- دستور `npm run lint` را در دایرکتوری‌های پروژه‌های تحت تأثیر اجرا کنید
- تمام خطاها و هشدارهای linting را اصلاح کنید
2. **تأیید ساخت**:
- دستور `npm run build` را در صورت لزوم اجرا کنید
- اطمینان حاصل کنید که هیچ خطای ساخت وجود ندارد
3. **اعتبارسنجی لینک‌ها**:
- تمام لینک‌های markdown را آزمایش کنید
- اطمینان حاصل کنید که ارجاعات تصاویر کار می‌کنند
4. **بررسی محتوا**:
- از نظر املایی و گرامری بازخوانی کنید
- اطمینان حاصل کنید که مثال‌های کد صحیح و آموزشی هستند
- بررسی کنید که ترجمه‌ها معنای اصلی را حفظ کرده‌اند
### الزامات مشارکت
- موافقت با Microsoft CLA (بررسی خودکار در اولین PR)
- پیروی از [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- دستورالعمل‌های دقیق را در [CONTRIBUTING.md](./CONTRIBUTING.md) مشاهده کنید
- در صورت لزوم شماره‌های مسئله را در توضیحات PR ذکر کنید
### فرآیند بررسی
- PRها توسط نگهدارندگان و جامعه بررسی می‌شوند
- وضوح آموزشی در اولویت است
- مثال‌های کد باید از بهترین شیوه‌های فعلی پیروی کنند
- ترجمه‌ها از نظر دقت و مناسب بودن فرهنگی بررسی می‌شوند
## سیستم ترجمه
### ترجمه خودکار
- از GitHub Actions با جریان کاری co-op-translator استفاده می‌کند
- به طور خودکار به بیش از ۵۰ زبان ترجمه می‌شود
- فایل‌های منبع در دایرکتوری‌های اصلی
- فایل‌های ترجمه شده در دایرکتوری‌های `translations/{language-code}/`
### افزودن بهبودهای ترجمه دستی
1. فایل را در `translations/{language-code}/` پیدا کنید
2. بهبودها را در حالی که ساختار را حفظ می‌کنید اعمال کنید
3. اطمینان حاصل کنید که مثال‌های کد همچنان کار می‌کنند
4. هر محتوای آزمون محلی‌سازی شده را آزمایش کنید
### متادیتای ترجمه
فایل‌های ترجمه شده شامل سربرگ متادیتا هستند:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## اشکال‌زدایی و رفع مشکلات
### مشکلات رایج
**اپلیکیشن آزمون اجرا نمی‌شود**:
- نسخه Node.js را بررسی کنید (v14+ توصیه می‌شود)
- `node_modules` و `package-lock.json` را حذف کنید، دوباره `npm install` اجرا کنید
- بررسی کنید که آیا تضاد پورت وجود دارد (پیش‌فرض: Vite از پورت 5173 استفاده می‌کند)
**سرور API اجرا نمی‌شود**:
- اطمینان حاصل کنید که نسخه Node.js حداقل مورد نیاز را دارد (node >=10)
- بررسی کنید که آیا پورت قبلاً استفاده شده است
- اطمینان حاصل کنید که تمام وابستگی‌ها با `npm install` نصب شده‌اند
**افزونه مرورگر بارگذاری نمی‌شود**:
- اطمینان حاصل کنید که manifest.json به درستی قالب‌بندی شده است
- کنسول مرورگر را برای خطاها بررسی کنید
- دستورالعمل‌های نصب افزونه مرورگر خاص را دنبال کنید
**مشکلات پروژه چت Python**:
- اطمینان حاصل کنید که بسته OpenAI نصب شده است: `pip install openai`
- بررسی کنید که متغیر محیطی GITHUB_TOKEN تنظیم شده است
- دسترسی به مدل‌های GitHub را بررسی کنید
**Docsify مستندات را ارائه نمی‌دهد**:
- Docsify-cli را به صورت جهانی نصب کنید: `npm install -g docsify-cli`
- از دایرکتوری ریشه مخزن اجرا کنید
- بررسی کنید که `docs/_sidebar.md` وجود دارد
### نکات محیط توسعه
- از VS Code با افزونه Live Server برای پروژه‌های HTML استفاده کنید
- افزونه‌های ESLint و Prettier را برای قالب‌بندی سازگار نصب کنید
- از ابزارهای توسعه مرورگر برای اشکال‌زدایی جاوااسکریپت استفاده کنید
- برای پروژه‌های Vue، افزونه Vue DevTools مرورگر را نصب کنید
### ملاحظات عملکرد
- تعداد زیادی فایل ترجمه شده (بیش از ۵۰ زبان) به این معنی است که کلون‌های کامل بزرگ هستند
- اگر فقط روی محتوا کار می‌کنید از کلون سطحی استفاده کنید: `git clone --depth 1`
- ترجمه‌ها را از جستجوها حذف کنید وقتی روی محتوای انگلیسی کار می‌کنید
- فرآیندهای ساخت ممکن است در اولین اجرا کند باشند (npm install، Vite build)
## ملاحظات امنیتی
### متغیرهای محیطی
- کلیدهای API هرگز نباید به مخزن متعهد شوند
- از فایل‌های `.env` استفاده کنید (قبلاً در `.gitignore` قرار گرفته‌اند)
- متغیرهای محیطی مورد نیاز را در READMEهای پروژه مستند کنید
### پروژه‌های Python
- از محیط‌های مجازی استفاده کنید: `python -m venv venv`
- وابستگی‌ها را به‌روز نگه دارید
- توکن‌های GitHub باید حداقل مجوزهای مورد نیاز را داشته باشند
### دسترسی به مدل‌های GitHub
- توکن‌های دسترسی شخصی (PAT) برای مدل‌های GitHub مورد نیاز است
- توکن‌ها باید به عنوان متغیرهای محیطی ذخیره شوند
- هرگز توکن‌ها یا اطلاعات محرمانه را متعهد نکنید
## یادداشت‌های اضافی
### مخاطبان هدف
- مبتدیان کامل در توسعه وب
- دانش‌آموزان و یادگیرندگان خودآموز
- معلمانی که از برنامه آموزشی در کلاس‌ها استفاده می‌کنند
- محتوا برای دسترسی‌پذیری و ایجاد مهارت تدریجی طراحی شده است
### فلسفه آموزشی
- رویکرد یادگیری مبتنی بر پروژه
- بررسی‌های مکرر دانش (آزمون‌ها)
- تمرین‌های کدنویسی عملی
- مثال‌های کاربردی در دنیای واقعی
- تمرکز بر اصول قبل از فریم‌ورک‌ها
### نگهداری مخزن
- جامعه فعال یادگیرندگان و مشارکت‌کنندگان
- به‌روزرسانی‌های منظم وابستگی‌ها و محتوا
- مسائل و بحث‌ها توسط نگهدارندگان نظارت می‌شود
- به‌روزرسانی‌های ترجمه به صورت خودکار از طریق GitHub Actions
### منابع مرتبط
- [ماژول‌های Microsoft Learn](https://docs.microsoft.com/learn/)
- [منابع Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) برای یادگیرندگان توصیه می‌شود
- دوره‌های اضافی: هوش مصنوعی مولد، علم داده، یادگیری ماشین، برنامه‌های IoT در دسترس هستند
### کار با پروژه‌های خاص
برای دستورالعمل‌های دقیق در مورد پروژه‌های فردی، به فایل‌های README در موارد زیر مراجعه کنید:
- `quiz-app/README.md` - اپلیکیشن آزمون Vue 3
- `7-bank-project/README.md` - اپلیکیشن بانکی با احراز هویت
- `5-browser-extension/README.md` - توسعه افزونه مرورگر
- `6-space-game/README.md` - توسعه بازی مبتنی بر Canvas
- `9-chat-project/README.md` - پروژه دستیار چت هوش مصنوعی
### ساختار Monorepo
اگرچه یک Monorepo سنتی نیست، این مخزن شامل چندین پروژه مستقل است:
- هر درس به صورت خودکفا است
- پروژه‌ها وابستگی‌ها را به اشتراک نمی‌گذارند
- روی پروژه‌های فردی کار کنید بدون اینکه بر دیگران تأثیر بگذارید
- کل مخزن را برای تجربه کامل برنامه آموزشی کلون کنید
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال هرگونه سوءتفاهم یا تفسیر نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,167 +1,166 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "687c62646ad5595f1ba733edc294cdae",
"translation_date": "2025-08-29T14:20:28+00:00",
"original_hash": "3bea83a071750b68d3c8755f1155f805",
"translation_date": "2025-10-03T08:39:14+00:00",
"source_file": "README.md",
"language_code": "fa"
}
-->
[![مجوز GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![مشارکت‌کنندگان GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![مشکلات GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![درخواست‌های کششی GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRها خوش‌آمدید](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![مجوز GitHub](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE)
[![مشارکت‌کنندگان GitHub](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/)
[![مشکلات GitHub](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/)
[![درخواست‌های کشش GitHub](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/)
[![PRها خوش‌آمدید](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![تماشاچیان GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![انشعاب‌های GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![ستاره‌های GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![تماشاچیان GitHub](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/)
[![انشعابات GitHub](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/)
[![ستاره‌های GitHub](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![](https://dcbadge.vercel.app/api/server/ByRwuEEgH4)](https://discord.gg/zxKYvhSnVp?WT.mc_id=academic-000002-leestott)
[![باز کردن در 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)
[![باز کردن در 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)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
[![Microsoft Azure AI Foundry Discord](https://dcbadge.limes.pink/api/server/ByRwuEEgH4)](https://discord.com/invite/ByRwuEEgH4)
برای شروع استفاده از این منابع، مراحل زیر را دنبال کنید:
1. **انشعاب مخزن**: کلیک کنید [![انشعاب‌های GitHub](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`
3. [**به دیسکورد Azure AI Foundry بپیوندید و با کارشناسان و توسعه‌دهندگان دیگر ملاقات کنید**](https://discord.com/invite/ByRwuEEgH4)
برای شروع استفاده از این منابع، مراحل زیر را دنبال کنید:
1. **انشعاب مخزن**: کلیک کنید [![انشعابات GitHub](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`
3. [**به Discord Azure AI Foundry بپیوندید و با کارشناسان و توسعه‌دهندگان دیگر ملاقات کنید**](https://discord.com/invite/ByRwuEEgH4)
# توسعه وب برای مبتدیان - یک برنامه آموزشی
# توسعه وب برای مبتدیان - یک برنامه آموزشی
اصول توسعه وب را با دوره جامع ۱۲ هفته‌ای ما که توسط Microsoft Cloud Advocates ارائه شده است، بیاموزید. هر یک از ۲۴ درس به صورت عملی به موضوعاتی مانند جاوااسکریپت، CSS و HTML می‌پردازد و پروژه‌هایی مانند تراریوم‌ها، افزونه‌های مرورگر و بازی‌های فضایی را شامل می‌شود. با آزمون‌ها، بحث‌ها و تکالیف عملی درگیر شوید. مهارت‌های خود را تقویت کنید و دانش خود را با روش آموزشی مبتنی بر پروژه ما بهینه کنید. امروز سفر کدنویسی خود را آغاز کنید!
با دوره جامع ۱۲ هفته‌ای ما از Microsoft Cloud Advocates، اصول توسعه وب را بیاموزید. هر یک از ۲۴ درس به صورت عملی به JavaScript، CSS و HTML می‌پردازد و پروژه‌هایی مانند تراریوم‌ها، افزونه‌های مرورگر و بازی‌های فضایی را شامل می‌شود. با آزمون‌ها، بحث‌ها و تکالیف عملی درگیر شوید. مهارت‌های خود را تقویت کنید و دانش خود را با روش آموزشی مبتنی بر پروژه ما بهینه کنید. امروز سفر کدنویسی خود را آغاز کنید!
### 🌐 پشتیبانی چندزبانه
### 🌐 پشتیبانی چندزبانه
#### پشتیبانی شده از طریق GitHub Action (خودکار و همیشه به‌روز)
#### پشتیبانی شده از طریق GitHub Action (خودکار و همیشه به‌روز)
[فرانسوی](../fr/README.md) | [اسپانیایی](../es/README.md) | [آلمانی](../de/README.md) | [روسی](../ru/README.md) | [عربی](../ar/README.md) | [فارسی](./README.md) | [اردو](../ur/README.md) | [چینی (ساده‌شده)](../zh/README.md) | [چینی (سنتی، ماکائو)](../mo/README.md) | [چینی (سنتی، هنگ‌کنگ)](../hk/README.md) | [چینی (سنتی، تایوان)](../tw/README.md) | [ژاپنی](../ja/README.md) | [کره‌ای](../ko/README.md) | [هندی](../hi/README.md) | [بنگالی](../bn/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پنجابی (گورمخی)](../pa/README.md) | [پرتغالی (پرتغال)](../pt/README.md) | [پرتغالی (برزیل)](../br/README.md) | [ایتالیایی](../it/README.md) | [لهستانی](../pl/README.md) | [ترکی](../tr/README.md) | [یونانی](../el/README.md) | [تایلندی](../th/README.md) | [سوئدی](../sv/README.md) | [دانمارکی](../da/README.md) | [نروژی](../no/README.md) | [فنلاندی](../fi/README.md) | [هلندی](../nl/README.md) | [عبری](../he/README.md) | [ویتنامی](../vi/README.md) | [اندونزیایی](../id/README.md) | [مالایی](../ms/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [سواحیلی](../sw/README.md) | [مجاری](../hu/README.md) | [چکی](../cs/README.md) | [اسلواکی](../sk/README.md) | [رومانیایی](../ro/README.md) | [بلغاری](../bg/README.md) | [صربی (سیریلیک)](../sr/README.md) | [کرواتی](../hr/README.md) | [اسلوونیایی](../sl/README.md) | [اوکراینی](../uk/README.md) | [برمه‌ای (میانمار)](../my/README.md)
[فرانسوی](../fr/README.md) | [اسپانیایی](../es/README.md) | [آلمانی](../de/README.md) | [روسی](../ru/README.md) | [عربی](../ar/README.md) | [فارسی](./README.md) | [اردو](../ur/README.md) | [چینی (ساده‌شده)](../zh/README.md) | [چینی (سنتی، ماکائو)](../mo/README.md) | [چینی (سنتی، هنگ‌کنگ)](../hk/README.md) | [چینی (سنتی، تایوان)](../tw/README.md) | [ژاپنی](../ja/README.md) | [کره‌ای](../ko/README.md) | [هندی](../hi/README.md) | [بنگالی](../bn/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پنجابی (گرمکی)](../pa/README.md) | [پرتغالی (پرتغال)](../pt/README.md) | [پرتغالی (برزیل)](../br/README.md) | [ایتالیایی](../it/README.md) | [لهستانی](../pl/README.md) | [ترکی](../tr/README.md) | [یونانی](../el/README.md) | [تایلندی](../th/README.md) | [سوئدی](../sv/README.md) | [دانمارکی](../da/README.md) | [نروژی](../no/README.md) | [فنلاندی](../fi/README.md) | [هلندی](../nl/README.md) | [عبری](../he/README.md) | [ویتنامی](../vi/README.md) | [اندونزیایی](../id/README.md) | [مالایی](../ms/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [سواحیلی](../sw/README.md) | [مجاری](../hu/README.md) | [چکی](../cs/README.md) | [اسلواکی](../sk/README.md) | [رومانیایی](../ro/README.md) | [بلغاری](../bg/README.md) | [صربی (سیریلیک)](../sr/README.md) | [کرواتی](../hr/README.md) | [اسلوونیایی](../sl/README.md) | [اوکراینی](../uk/README.md) | [برمه‌ای (میانمار)](../my/README.md)
**اگر می‌خواهید زبان‌های ترجمه اضافی پشتیبانی شوند، لیست زبان‌های موجود [اینجا](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) موجود است**
#### 🧑‍🎓 _آیا دانشجو هستید؟_
#### 🧑‍🎓 _آیا شما دانشجو هستید؟_
به [**صفحه مرکز دانشجویی**](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) مراجعه کنید، جایی که منابع مبتدی، بسته‌های دانشجویی و حتی راه‌هایی برای دریافت گواهی رایگان را پیدا خواهید کرد. این صفحه‌ای است که باید نشانک‌گذاری کنید و هر از گاهی بررسی کنید، زیرا محتوای آن ماهانه تغییر می‌کند.
### 📣 اعلان - _پروژه جدید برای ساخت با استفاده از هوش مصنوعی تولیدی_
### 📣 اطلاعیه - _پروژه جدید برای ساخت با استفاده از هوش مصنوعی تولیدی_
پروژه دستیار هوش مصنوعی جدید به تازگی اضافه شده است، آن را بررسی کنید [پروژه](./09-chat-project/README.md)
پروژه دستیار هوش مصنوعی جدید به تازگی اضافه شده است، آن را بررسی کنید [پروژه](./09-chat-project/README.md)
### 📣 اعلان - _برنامه آموزشی جدید_ در مورد هوش مصنوعی تولیدی برای جاوااسکریپت به تازگی منتشر شده است
### 📣 اطلاعیه - _برنامه آموزشی جدید_ در مورد هوش مصنوعی تولیدی برای JavaScript به تازگی منتشر شده است
برنامه آموزشی جدید هوش مصنوعی تولیدی ما را از دست ندهید!
برنامه آموزشی جدید هوش مصنوعی تولیدی ما را از دست ندهید!
به [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) مراجعه کنید تا شروع کنید!
به [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) مراجعه کنید تا شروع کنید!
![پس‌زمینه](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.fa.png)
![پس‌زمینه](../../translated_images/background.148a8d43afde57303419a663f50daf586681bc2fabf833f66ef6954073983c66.fa.png)
- درس‌هایی که همه چیز را از اصول اولیه تا RAG پوشش می‌دهند.
- تعامل با شخصیت‌های تاریخی با استفاده از GenAI و برنامه همراه ما.
- روایت سرگرم‌کننده و جذاب، شما در حال سفر در زمان خواهید بود!
- درس‌هایی که همه چیز را از اصول تا RAG پوشش می‌دهند.
- تعامل با شخصیت‌های تاریخی با استفاده از GenAI و برنامه همراه ما.
- روایت سرگرم‌کننده و جذاب، شما در حال سفر در زمان خواهید بود!
![شخصیت](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.fa.png)
![شخصیت](../../translated_images/character.5c0dd8e067ffd693c16e2c5b7412ab075a2215ce31f998305639fa3a05e14fbe.fa.png)
هر درس شامل یک تکلیف برای تکمیل، یک بررسی دانش و یک چالش است که شما را در یادگیری موضوعاتی مانند:
- مهندسی درخواست‌ها
- تولید برنامه‌های متنی و تصویری
- برنامه‌های جستجو
هر درس شامل یک تکلیف برای تکمیل، یک بررسی دانش و یک چالش است که شما را در یادگیری موضوعاتی مانند:
- مهندسی درخواست‌ها
- تولید برنامه‌های متن و تصویر
- برنامه‌های جستجو
به [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) اجرا کنید.
#### ایجاد مخزن خود
برای اینکه بتوانید به راحتی کار خود را ذخیره کنید، توصیه می‌شود که یک نسخه از این مخزن ایجاد کنید. می‌توانید این کار را با کلیک بر روی دکمه **Use this template** در بالای صفحه انجام دهید. این کار یک مخزن جدید در حساب GitHub شما با یک نسخه از برنامه آموزشی ایجاد می‌کند.
#### ایجاد مخزن خود
برای اینکه بتوانید به راحتی کار خود را ذخیره کنید، توصیه می‌شود که یک نسخه از این مخزن ایجاد کنید. می‌توانید این کار را با کلیک بر روی دکمه **Use this template** در بالای صفحه انجام دهید. این کار یک مخزن جدید در حساب GitHub شما با یک نسخه از برنامه آموزشی ایجاد می‌کند.
مراحل زیر را دنبال کنید:
1. **انشعاب مخزن**: روی دکمه "Fork" در گوشه بالا-راست این صفحه کلیک کنید.
2. **کلون کردن مخزن**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
مراحل زیر را دنبال کنید:
1. **انشعاب مخزن**: روی دکمه "Fork" در گوشه بالا-راست این صفحه کلیک کنید.
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](../..)./images/createcodespace.png)
![Codespace](../../translated_images/createcodespace.0238bbf4d7a8d955fa8fa7f7b6602a3cb6499a24708fbee589f83211c5a613b7.fa.png)
#### اجرای برنامه آموزشی به صورت محلی روی کامپیوتر شما
#### اجرای برنامه آموزشی به صورت محلی روی کامپیوتر شما
برای اجرای این برنامه آموزشی به صورت محلی روی کامپیوتر خود، به یک ویرایشگر متن، یک مرورگر و یک ابزار خط فرمان نیاز دارید. درس اول ما، [مقدمه‌ای بر زبان‌های برنامه‌نویسی و ابزارهای مورد استفاده](../../1-getting-started-lessons/1-intro-to-programming-languages)، شما را با گزینه‌های مختلف برای هر یک از این ابزارها آشنا می‌کند تا بتوانید آنچه برای شما مناسب است را انتخاب کنید.
برای اجرای این برنامه آموزشی به صورت محلی روی کامپیوتر خود، به یک ویرایشگر متن، یک مرورگر و یک ابزار خط فرمان نیاز دارید. درس اول ما، [مقدمه‌ای بر زبان‌های برنامه‌نویسی و ابزارهای مورد استفاده](../../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) را از اینجا دانلود کنید.
توصیه ما این است که از [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 انجام دهید:
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 که به تازگی کپی کرده‌اید:
سپس، [ترمینال](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
git clone <your-repository-url>
```
```
2. پوشه را در Visual Studio Code باز کنید. می‌توانید این کار را با کلیک بر روی **File** انجام دهید.
> **باز کردن پوشه** و انتخاب پوشه‌ای که به‌تازگی کلون کرده‌اید.
> افزونه‌های پیشنهادی برای Visual Studio Code:
2. پوشه را در Visual Studio Code باز کنید. می‌توانید این کار را با کلیک بر روی **File** > **Open Folder** و انتخاب پوشه‌ای که به تازگی کلون کرده‌اید انجام دهید.
> افزونه‌های توصیه‌شده برای 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) - برای کمک به نوشتن سریع‌تر کد
## 📂 هر درس شامل موارد زیر است:
- یادداشت‌های تصویری اختیاری
- اسکچ‌نوت اختیاری
- ویدئوی تکمیلی اختیاری
- آزمون گرم‌آپ قبل از درس
- درس نوشتاری
- آزمون گرم‌آپ پیش از درس
- درس نوشته‌شده
- برای درس‌های مبتنی بر پروژه، راهنمای گام‌به‌گام برای ساخت پروژه
- بررسی دانش
- یک چالش
- مطالعه تکمیلی
- تکلیف
- [آزمون بعد از درس](https://ff-quizzes.netlify.app/web/)
> **نکته‌ای درباره آزمون‌ها**: تمام آزمون‌ها در پوشه Quiz-app قرار دارند، مجموعاً ۴۸ آزمون با سه سؤال در هر آزمون. این آزمون‌ها [اینجا](https://ff-quizzes.netlify.app/web/) در دسترس هستند. اپلیکیشن آزمون را می‌توان به صورت محلی اجرا کرد یا در Azure مستقر کرد؛ دستورالعمل‌ها را در پوشه `quiz-app` دنبال کنید.
- [آزمون پس از درس](https://ff-quizzes.netlify.app/web/)
> **نکته‌ای درباره آزمون‌ها**: تمام آزمون‌ها در پوشه Quiz-app قرار دارند، شامل ۴۸ آزمون که هر کدام سه سوال دارند. این آزمون‌ها [اینجا](https://ff-quizzes.netlify.app/web/) در دسترس هستند. اپلیکیشن آزمون را می‌توان به صورت محلی اجرا کرد یا در Azure مستقر کرد؛ دستورالعمل‌ها را در پوشه `quiz-app` دنبال کنید.
## 🗃️ درس‌ها
| | نام پروژه | مفاهیم آموزش داده شده | اهداف یادگیری | درس مرتبط | نویسنده |
| :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 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 |
| 04 | اصول JS | انواع داده در جاوااسکریپت | اصول اولیه انواع داده در جاوااسکریپت | [انواع داده](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | اصول JS | توابع و متدها | یادگیری درباره توابع و متدها برای مدیریت جریان منطقی اپلیکیشن | [توابع و متدها](./2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher |
| 06 | اصول JS | تصمیم‌گیری با جاوااسکریپت | یادگیری نحوه ایجاد شرایط در کد با استفاده از روش‌های تصمیم‌گیری | [تصمیم‌گیری](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | اصول JS | آرایه‌ها و حلقه‌ها | کار با داده‌ها با استفاده از آرایه‌ها و حلقه‌ها در جاوااسکریپت | [آرایه‌ها و حلقه‌ها](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 04 | اصول جاوااسکریپت | انواع داده در جاوااسکریپت | اصول اولیه انواع داده در جاوااسکریپت | [انواع داده](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | اصول جاوااسکریپت | توابع و متدها | یادگیری درباره توابع و متدها برای مدیریت جریان منطقی یک اپلیکیشن | [توابع و متدها](./2-js-basics/2-functions-methods/README.md) | Jasmine و Christopher |
| 06 | اصول جاوااسکریپت | تصمیم‌گیری با جاوااسکریپت | یادگیری نحوه ایجاد شرایط در کد با استفاده از روش‌های تصمیم‌گیری | [تصمیم‌گیری](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | اصول جاوااسکریپت | آرایه‌ها و حلقه‌ها | کار با داده‌ها با استفاده از آرایه‌ها و حلقه‌ها در جاوااسکریپت | [آرایه‌ها و حلقه‌ها](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [تراریوم](./3-terrarium/solution/README.md) | HTML در عمل | ساخت HTML برای ایجاد یک تراریوم آنلاین، با تمرکز بر ساخت یک طرح‌بندی | [مقدمه‌ای بر HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [تراریوم](./3-terrarium/solution/README.md) | CSS در عمل | ساخت CSS برای استایل‌دهی به تراریوم آنلاین، با تمرکز بر اصول CSS شامل واکنش‌گرا کردن صفحه | [مقدمه‌ای بر CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [تراریوم](./3-terrarium/solution/README.md) | Closureهای جاوااسکریپت، دستکاری DOM | ساخت جاوااسکریپت برای عملکرد تراریوم به عنوان یک رابط کشیدن و رها کردن، با تمرکز بر Closureها و دستکاری DOM | [Closureهای جاوااسکریپت، دستکاری DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 09 | [تراریوم](./3-terrarium/solution/README.md) | CSS در عمل | ساخت CSS برای استایل‌دهی به تراریوم آنلاین، با تمرکز بر اصول اولیه CSS شامل واکنش‌گرایی صفحه | [مقدمه‌ای بر CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [تراریوم](./3-terrarium/solution/README.md) | Closureهای جاوااسکریپت، دستکاری DOM | ساخت جاوااسکریپت برای عملکرد تراریوم به عنوان یک رابط کشیدن/رها کردن، با تمرکز بر Closureها و دستکاری DOM | [Closureهای جاوااسکریپت، دستکاری DOM](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [بازی تایپ](./4-typing-game/solution/README.md) | ساخت یک بازی تایپ | یادگیری نحوه استفاده از رویدادهای صفحه‌کلید برای هدایت منطق اپلیکیشن جاوااسکریپت | [برنامه‌نویسی مبتنی بر رویداد](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [افزونه مرورگر سبز](./5-browser-extension/solution/README.md) | کار با مرورگرها | یادگیری نحوه عملکرد مرورگرها، تاریخچه آن‌ها، و نحوه ایجاد اولین عناصر یک افزونه مرورگر | [درباره مرورگرها](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [افزونه مرورگر سبز](./5-browser-extension/solution/README.md) | ساخت فرم، فراخوانی API و ذخیره متغیرها در حافظه محلی | ساخت عناصر جاوااسکریپت افزونه مرورگر برای فراخوانی API با استفاده از متغیرهای ذخیره‌شده در حافظه محلی | [APIها، فرم‌ها، و حافظه محلی](./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 |
| 15 | [بازی فضایی](./6-space-game/solution/README.md) | توسعه بازی پیشرفته‌تر با جاوااسکریپت | یادگیری درباره وراثت با استفاده از کلاس‌ها و ترکیب و الگوی Pub/Sub، به عنوان مقدمه‌ای برای ساخت بازی | [مقدمه‌ای بر توسعه بازی پیشرفته](./6-space-game/1-introduction/README.md) | Chris |
| 15 | [بازی فضایی](./6-space-game/solution/README.md) | توسعه بازی پیشرفته‌تر با جاوااسکریپت | یادگیری درباره وراثت با استفاده از کلاس‌ها و ترکیب و الگوی Pub/Sub، به منظور آماده‌سازی برای ساخت بازی | [مقدمه‌ای بر توسعه بازی پیشرفته](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [بازی فضایی](./6-space-game/solution/README.md) | رسم روی Canvas | یادگیری درباره API Canvas، که برای رسم عناصر روی صفحه استفاده می‌شود | [رسم روی Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [بازی فضایی](./6-space-game/solution/README.md) | حرکت دادن عناصر روی صفحه | کشف نحوه حرکت دادن عناصر با استفاده از مختصات کارتزین و API Canvas | [حرکت دادن عناصر](./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 |
| 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 و مسیرها در یک اپلیکیشن وب | یادگیری نحوه ایجاد ساختار معماری یک وب‌سایت چندصفحه‌ای با استفاده از مسیرها و قالب‌های 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 |
| 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 |
| 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 |
| 25 | [ویرایشگر کد مرورگر/VScode](../../8-code-editor) | کار با VScode | یادگیری نحوه استفاده از یک ویرایشگر کد | [استفاده از ویرایشگر کد VScode](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [دستیارهای هوش مصنوعی](./9-chat-project/README.md) | کار با هوش مصنوعی | یادگیری نحوه ساخت دستیار هوش مصنوعی خود | [پروژه دستیار هوش مصنوعی](./9-chat-project/README.md) | Chris |
@ -171,21 +170,21 @@ CO_OP_TRANSLATOR_METADATA:
* یادگیری مبتنی بر پروژه
* آزمون‌های مکرر
این برنامه اصول اولیه جاوااسکریپت، HTML و CSS، و همچنین ابزارها و تکنیک‌های جدیدی که توسط توسعه‌دهندگان وب امروزی استفاده می‌شود را آموزش می‌دهد. دانش‌آموزان فرصت کسب تجربه عملی را با ساخت بازی تایپ، تراریوم مجازی، افزونه مرورگر سازگار با محیط زیست، بازی سبک مهاجم فضایی، و اپلیکیشن بانکی برای کسب‌وکارها خواهند داشت. تا پایان این دوره، دانش‌آموزان درک جامعی از توسعه وب کسب خواهند کرد.
این برنامه اصول اولیه جاوااسکریپت، HTML و CSS، و همچنین ابزارها و تکنیک‌های جدیدی که توسط توسعه‌دهندگان وب امروزی استفاده می‌شود را آموزش می‌دهد. دانش‌آموزان فرصت خواهند داشت تا تجربه عملی کسب کنند و بازی تایپ، تراریوم مجازی، افزونه مرورگر سازگار با محیط زیست، بازی سبک مهاجم فضایی، و اپلیکیشن بانکی برای کسب‌وکارها بسازند. تا پایان این دوره، دانش‌آموزان درک جامعی از توسعه وب خواهند داشت.
> 🎓 شما می‌توانید چند درس اول این برنامه درسی را به عنوان [مسیر یادگیری](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 بگذرانید!
با اطمینان از اینکه محتوا با پروژه‌ها هماهنگ است، فرآیند برای دانش‌آموزان جذاب‌تر می‌شود و حفظ مفاهیم تقویت خواهد شد. همچنین، ما چند درس مقدماتی در اصول جاوااسکریپت نوشتیم تا مفاهیم را معرفی کنیم، همراه با ویدئویی از مجموعه "[سری مبتدیان: جاوااسکریپت](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" از مجموعه آموزش‌های ویدئویی، که برخی از نویسندگان آن در این برنامه درسی مشارکت داشتند.
با اطمینان از اینکه محتوا با پروژه‌ها هماهنگ است، فرآیند برای دانش‌آموزان جذاب‌تر می‌شود و حفظ مفاهیم تقویت خواهد شد. همچنین چند درس مقدماتی در اصول جاوااسکریپت نوشتیم تا مفاهیم را معرفی کنیم، همراه با ویدئویی از مجموعه "[سری مبتدیان: جاوااسکریپت](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" از آموزش‌های ویدئویی، که برخی از نویسندگان آن در این برنامه درسی مشارکت داشتند.
علاوه بر این، یک آزمون کم‌فشار قبل از کلاس، قصد دانش‌آموز را به سمت یادگیری یک موضوع تنظیم می‌کند، در حالی که یک آزمون دوم بعد از کلاس، حفظ بیشتر را تضمین می‌کند. این برنامه درسی به گونه‌ای طراحی شده است که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان آن را به طور کامل یا جزئی گذراند. پروژه‌ها کوچک شروع می‌شوند و تا پایان چرخه ۱۲ هفته‌ای به طور فزاینده‌ای پیچیده می‌شوند.
علاوه بر این، یک آزمون کم‌فشار قبل از کلاس، توجه دانش‌آموز را به یادگیری یک موضوع جلب می‌کند، در حالی که یک آزمون دوم بعد از کلاس، حفظ بیشتر را تضمین می‌کند. این برنامه درسی به گونه‌ای طراحی شده است که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان آن را به صورت کامل یا جزئی گذراند. پروژه‌ها کوچک شروع می‌شوند و تا پایان چرخه ۱۲ هفته‌ای به طور فزاینده‌ای پیچیده می‌شوند.
در حالی که ما عمداً از معرفی فریم‌ورک‌های جاوااسکریپت اجتناب کردیم تا بر مهارت‌های پایه‌ای مورد نیاز به عنوان یک توسعه‌دهنده وب قبل از پذیرش یک فریم‌ورک تمرکز کنیم، یک گام بعدی خوب پس از تکمیل این برنامه درسی یادگیری درباره Node.js از طریق مجموعه دیگری از ویدئوها خواهد بود: "[سری مبتدیان: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
در حالی که ما عمداً از معرفی فریم‌ورک‌های جاوااسکریپت اجتناب کردیم تا بر مهارت‌های پایه‌ای مورد نیاز به عنوان یک توسعه‌دهنده وب قبل از پذیرش یک فریم‌ورک تمرکز کنیم، گام بعدی خوب پس از تکمیل این برنامه درسی می‌تواند یادگیری درباره Node.js از طریق مجموعه دیگری از ویدئوها باشد: "[سری مبتدیان: 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` را تایپ کنید. وب‌سایت روی پورت ۳۰۰۰ در localhost شما ارائه خواهد شد: `localhost:3000`.
شما می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را Fork کنید، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی دستگاه محلی خود، و سپس در پوشه اصلی این مخزن، دستور `docsify serve` را تایپ کنید. وب‌سایت روی پورت ۳۰۰۰ در localhost شما اجرا خواهد شد: `localhost:3000`.
## 📘 PDF
@ -193,28 +192,38 @@ CO_OP_TRANSLATOR_METADATA:
## 🎒 دوره‌های دیگر
تیم ما دوره‌های دیگری تولید می‌کند! بررسی کنید:
تیم ما دوره‌های دیگری نیز تولید می‌کند! بررسی کنید:
- [هوش مصنوعی مولد برای مبتدیان](https://aka.ms/genai-beginners)
- [هوش مصنوعی مولد برای مبتدیان .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet)
- [هوش مصنوعی مولد با جاوااسکریپت](https://github.com/microsoft/generative-ai-with-javascript)
- [هوش مصنوعی مولد با جاوا](https://github.com/microsoft/Generative-AI-for-beginners-java)
- [هوش مصنوعی برای مبتدیان](https://aka.ms/ai-beginners)
- [علم داده برای مبتدیان](https://aka.ms/datascience-beginners)
- [یادگیری ماشین برای مبتدیان](https://aka.ms/ml-beginners)
- [امنیت سایبری برای مبتدیان](https://github.com/microsoft/Security-101)
- [توسعه وب برای مبتدیان](https://aka.ms/webdev-beginners)
- [اینترنت اشیا برای مبتدیان](https://aka.ms/iot-beginners)
- [توسعه XR برای مبتدیان](https://github.com/microsoft/xr-development-for-beginners)
- [تسلط بر GitHub Copilot برای استفاده هوشمندانه](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [تسلط بر GitHub Copilot برای توسعه‌دهندگان C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [ماجراجویی خود را با Copilot انتخاب کنید](https://github.com/microsoft/CopilotAdventures)
- [علم داده برای مبتدیان](https://aka.ms/datascience-beginners)
- [یادگیری ماشین برای مبتدیان](https://aka.ms/ml-beginners)
- [امنیت سایبری برای مبتدیان](https://github.com/microsoft/Security-101)
- [توسعه وب برای مبتدیان](https://aka.ms/webdev-beginners)
- [اینترنت اشیا برای مبتدیان](https://aka.ms/iot-beginners)
- [توسعه XR برای مبتدیان](https://github.com/microsoft/xr-development-for-beginners)
- [استفاده حرفه‌ای از GitHub Copilot برای برنامه‌نویسی مشارکتی](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming)
- [استفاده حرفه‌ای از GitHub Copilot برای توسعه‌دهندگان C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers)
- [ماجراجویی خود را با Copilot انتخاب کنید](https://github.com/microsoft/CopilotAdventures)
## دریافت کمک
اگر در ساخت برنامه‌های هوش مصنوعی گیر کردید یا سوالی دارید، به اینجا بپیوندید:
[![دیسکورد Azure AI Foundry](https://img.shields.io/badge/Discord-Azure_AI_Foundry_Community_Discord-blue?style=for-the-badge&logo=discord&color=5865f2&logoColor=fff)](https://aka.ms/foundry/discord)
اگر بازخوردی درباره محصول دارید یا در هنگام ساخت با خطا مواجه شدید، به اینجا مراجعه کنید:
[![فروم توسعه‌دهندگان Azure AI Foundry](https://img.shields.io/badge/GitHub-Azure_AI_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](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادقتی‌هایی باشند. سند اصلی به زبان بومی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,45 +1,78 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "75cb51f7ca9ea0b097ef4a1287e9290c",
"translation_date": "2025-08-24T11:54:43+00:00",
"original_hash": "71009af209f81cc01a1f2d324200375f",
"translation_date": "2025-10-03T08:38:59+00:00",
"source_file": "for-teachers.md",
"language_code": "fa"
}
-->
## برای معلمان
### برای مربیان
آیا دوست دارید از این برنامه درسی در کلاس خود استفاده کنید؟ لطفاً با خیال راحت این کار را انجام دهید!
شما می‌توانید از این برنامه درسی در کلاس خود استفاده کنید. این برنامه به‌طور یکپارچه با GitHub Classroom و پلتفرم‌های LMS پیشرو کار می‌کند و همچنین می‌توان آن را به‌عنوان یک مخزن مستقل با دانش‌آموزان استفاده کرد.
در واقع، می‌توانید از آن مستقیماً در گیت‌هاب با استفاده از GitHub Classroom استفاده کنید.
### استفاده با GitHub Classroom
برای این کار، این مخزن را فورک کنید. شما نیاز دارید برای هر درس یک مخزن جداگانه ایجاد کنید، بنابراین باید هر پوشه را به یک مخزن جداگانه استخراج کنید. به این ترتیب، [GitHub Classroom](https://classroom.github.com/classrooms) می‌تواند هر درس را به صورت جداگانه شناسایی کند.
برای مدیریت درس‌ها و تکالیف به‌صورت گروهی، برای هر درس یک مخزن جداگانه ایجاد کنید تا GitHub Classroom بتواند هر تکلیف را به‌طور مستقل پیوست کند.
این [دستورالعمل‌های کامل](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) به شما ایده‌ای از نحوه تنظیم کلاس درس می‌دهد.
- این مخزن را به سازمان خود فورک کنید.
- برای هر درس یک مخزن جداگانه ایجاد کنید و پوشه درس مربوطه را به مخزن خودش منتقل کنید.
- گزینه اول: مخازن خالی ایجاد کنید (یکی برای هر درس) و محتوای پوشه درس را به هر کدام کپی کنید.
- گزینه دوم: از رویکردی که تاریخچه Git را حفظ می‌کند استفاده کنید (مثلاً تقسیم یک پوشه به یک مخزن جدید) اگر به سابقه نیاز دارید.
- در GitHub Classroom، برای هر درس یک تکلیف ایجاد کنید و آن را به مخزن درس مربوطه متصل کنید.
- تنظیمات پیشنهادی:
- دید مخزن: خصوصی برای کار دانش‌آموزان.
- استفاده از کد اولیه از شاخه پیش‌فرض مخزن درس.
- افزودن قالب‌های Issue و Pull Request برای آزمون‌ها و ارسال‌ها.
- در صورت وجود، به‌صورت اختیاری تنظیمات خودکار نمره‌دهی و آزمون‌ها را پیکربندی کنید.
- کنوانسیون‌هایی که کمک می‌کنند:
- نام‌های مخزن مانند lesson-01-intro، lesson-02-html و غیره.
- برچسب‌ها: quiz، assignment، needs-review، late، resubmission.
- برچسب‌ها/نسخه‌ها برای هر گروه (مثلاً v2025-term1).
## استفاده در Moodle، Canvas یا Blackboard
نکته: از ذخیره مخازن داخل پوشه‌های همگام‌سازی شده (مانند OneDrive/Google Drive) خودداری کنید تا از تضادهای Git در ویندوز جلوگیری شود.
این برنامه درسی در این سیستم‌های مدیریت یادگیری به خوبی کار می‌کند! از [فایل آپلود Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) برای محتوای کامل استفاده کنید، یا [فایل Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc) را امتحان کنید که شامل بخشی از محتوا است. Moodle Cloud از خروجی‌های کامل Common Cartridge پشتیبانی نمی‌کند، بنابراین بهتر است از فایل دانلود Moodle استفاده کنید که می‌تواند در Canvas آپلود شود. لطفاً به ما اطلاع دهید که چگونه می‌توانیم این تجربه را بهبود دهیم.
### استفاده با Moodle، Canvas یا Blackboard
![Moodle](/teaching-files/moodle.png)
> برنامه درسی در یک کلاس Moodle
این برنامه درسی شامل بسته‌های قابل وارد کردن برای جریان‌های کاری رایج LMS است.
![Canvas](/teaching-files/canvas.png)
- Moodle: از فایل آپلود Moodle [فایل آپلود Moodle](../../../../../../../teaching-files/webdev-moodle.mbz) برای بارگذاری کل دوره استفاده کنید.
- Common Cartridge: از فایل Common Cartridge [فایل Common Cartridge](../../../../../../../teaching-files/webdev-common-cartridge.imscc) برای سازگاری گسترده‌تر LMS استفاده کنید.
- نکات:
- Moodle Cloud پشتیبانی محدودی از Common Cartridge دارد. فایل Moodle بالا را ترجیح دهید که همچنین می‌تواند در Canvas بارگذاری شود.
- پس از وارد کردن، ماژول‌ها، تاریخ‌های سررسید و تنظیمات آزمون را بررسی کنید تا با برنامه ترم شما مطابقت داشته باشد.
![Moodle](../../translated_images/moodle.94eb93d714a50cb2c97435b408017dee224348b61bc86203ffd43a4f4e57b95f.fa.png)
> برنامه درسی در کلاس Moodle
![Canvas](../../translated_images/canvas.fbd605ff8e5b8aff567d398528ce113db304446b90b9cad55c654de3fdfcda34.fa.png)
> برنامه درسی در Canvas
## استفاده از مخزن به شکل فعلی
### استفاده مستقیم از مخزن (بدون Classroom)
اگر ترجیح می‌دهید از GitHub Classroom استفاده نکنید، می‌توانید دوره را مستقیماً از این مخزن اجرا کنید.
اگر می‌خواهید از این مخزن به همان شکلی که هست استفاده کنید، بدون استفاده از GitHub Classroom، این کار نیز امکان‌پذیر است. شما باید با دانش‌آموزان خود هماهنگ کنید که کدام درس را با هم مرور کنند.
- فرمت‌های هم‌زمان/آنلاین (Zoom/Teams):
- گرم کردن‌های کوتاه با هدایت مربی اجرا کنید؛ از اتاق‌های گروهی برای آزمون‌ها استفاده کنید.
- یک بازه زمانی برای آزمون‌ها اعلام کنید؛ دانش‌آموزان پاسخ‌ها را به‌عنوان Issues در GitHub ارسال کنند.
- برای تکالیف گروهی، دانش‌آموزان در مخازن عمومی درس کار کنند و Pull Request باز کنند.
- فرمت‌های خصوصی/غیرهم‌زمان:
- دانش‌آموزان هر درس را به مخازن **خصوصی** خود فورک کنند و شما را به‌عنوان همکار اضافه کنند.
- آن‌ها از طریق Issues (آزمون‌ها) و Pull Requests (تکالیف) در مخزن کلاس شما یا فورک‌های خصوصی خود ارسال کنند.
در یک قالب آنلاین (Zoom، Teams یا دیگر ابزارها) می‌توانید اتاق‌های گروهی برای آزمون‌ها تشکیل دهید و دانش‌آموزان را راهنمایی کنید تا برای یادگیری آماده شوند. سپس دانش‌آموزان را به آزمون‌ها دعوت کنید و از آنها بخواهید پاسخ‌های خود را به عنوان 'issues' در یک زمان مشخص ارسال کنند. می‌توانید همین کار را با تکالیف انجام دهید اگر می‌خواهید دانش‌آموزان به صورت گروهی و در فضای باز کار کنند.
### بهترین روش‌ها
اگر یک قالب خصوصی‌تر را ترجیح می‌دهید، از دانش‌آموزان بخواهید برنامه درسی را درس به درس به مخازن گیت‌هاب خودشان به صورت خصوصی فورک کنند و به شما دسترسی بدهند. سپس می‌توانند آزمون‌ها و تکالیف را به صورت خصوصی تکمیل کرده و از طریق issues در مخزن کلاس شما به شما ارسال کنند.
- یک درس جهت‌یابی درباره اصول Git/GitHub، Issues و PRs ارائه دهید.
- از چک‌لیست‌ها در Issues برای آزمون‌ها/تکالیف چندمرحله‌ای استفاده کنید.
- CONTRIBUTING.md و CODE_OF_CONDUCT.md را اضافه کنید تا هنجارهای کلاس را تنظیم کنید.
- یادداشت‌های دسترسی (متن جایگزین، زیرنویس‌ها) اضافه کنید و فایل‌های PDF قابل چاپ ارائه دهید.
- محتوای خود را برای هر ترم نسخه‌بندی کنید و مخازن درس را پس از انتشار قفل کنید.
راه‌های زیادی برای اجرای این برنامه درسی در یک کلاس آنلاین وجود دارد. لطفاً به ما اطلاع دهید که چه چیزی برای شما بهتر کار می‌کند!
### بازخورد و پشتیبانی
## لطفاً نظرات خود را با ما در میان بگذارید!
ما می‌خواهیم این برنامه درسی برای شما و دانش‌آموزانتان مفید باشد. لطفاً برای گزارش اشکالات، درخواست‌ها یا بهبودها یک Issue جدید در این مخزن باز کنید یا در Teacher Corner بحثی را آغاز کنید.
ما می‌خواهیم این برنامه درسی برای شما و دانش‌آموزانتان مفید باشد. با ما در [گوشه معلمان](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner) ارتباط برقرار کنید و یک [**issue جدید**](https://github.com/microsoft/Web-Dev-For-Beginners/issues/new/choose) برای هرگونه درخواست، اشکال یا بازخورد باز کنید.
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه انسانی حرفه‌ای استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.

@ -1,13 +1,13 @@
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "2dcbb9259dee4f20a4f08d9a1aa2bd4c",
"translation_date": "2025-08-29T00:48:25+00:00",
"original_hash": "2581528206a2a01c3a0b9c88e039b7bc",
"translation_date": "2025-10-03T10:05:38+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "fi"
}
-->
# Johdanto ohjelmointikieliin ja työkaluihin
# Johdatus ohjelmointikieliin ja työkaluihin
Tässä oppitunnissa käsitellään ohjelmointikielten perusteita. Aiheet, joita käsitellään, pätevät useimpiin nykyaikaisiin ohjelmointikieliin. "Työkalut"-osiossa opit hyödyllisestä ohjelmistosta, joka auttaa sinua kehittäjänä.
@ -24,27 +24,27 @@ Tässä oppitunnissa käsitellään:
- Mitä ohjelmointi on?
- Ohjelmointikielten tyypit
- Ohjelman peruselementit
- Hyödylliset ohjelmistot ja työkalut ammattilaiskehittäjälle
- Hyödyllinen ohjelmisto ja työkalut ammattilaiskehittäjälle
> Voit suorittaa tämän oppitunnin [Microsoft Learnissa](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
> Voit käydä tämän oppitunnin [Microsoft Learnissa](https://docs.microsoft.com/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
## Mitä ohjelmointi on?
Ohjelmointi (tunnetaan myös nimellä koodaus) on prosessi, jossa kirjoitetaan ohjeita laitteelle, kuten tietokoneelle tai mobiililaitteelle. Kirjoitamme nämä ohjeet ohjelmointikielellä, jonka laite tulkitsee. Näitä ohjejoukkoja voidaan kutsua eri nimillä, kuten *ohjelma*, *tietokoneohjelma*, *sovellus (app)* tai *suoritettava tiedosto*.
Ohjelmointi (tunnetaan myös nimellä koodaus) on prosessi, jossa kirjoitetaan ohjeita laitteelle, kuten tietokoneelle tai mobiililaitteelle. Kirjoitamme nämä ohjeet ohjelmointikielellä, jonka laite tulkitsee. Näitä ohjeita voidaan kutsua eri nimillä, kuten *ohjelma*, *tietokoneohjelma*, *sovellus (app)* ja *suoritettava tiedosto*.
*Ohjelma* voi olla mitä tahansa, mikä on kirjoitettu koodilla; verkkosivustot, pelit ja puhelinsovellukset ovat ohjelmia. Vaikka ohjelman voi luoda ilman koodin kirjoittamista, laitteen tulkitsema logiikka on todennäköisesti kirjoitettu koodilla. Ohjelma, joka *suorittaa* tai *ajaa* koodia, toteuttaa ohjeita. Laite, jolla luet tätä oppituntia, suorittaa ohjelmaa, joka näyttää sen näytölläsi.
*Ohjelma* voi olla mitä tahansa, mikä on kirjoitettu koodilla; verkkosivustot, pelit ja puhelinsovellukset ovat ohjelmia. Vaikka ohjelman luominen ilman koodin kirjoittamista on mahdollista, laitteen tulkitsema logiikka on todennäköisesti kirjoitettu koodilla. Ohjelma, joka *suorittaa* tai *ajaa* koodia, toteuttaa ohjeita. Laite, jolla luet tätä oppituntia, suorittaa ohjelmaa, joka näyttää sen näytölläsi.
✅ Tee hieman tutkimusta: Kuka on historian ensimmäinen tietokoneohjelmoija?
✅ Tee hieman tutkimusta: kuka on maailman ensimmäinen tietokoneohjelmoija?
## Ohjelmointikielet
Ohjelmointikielet mahdollistavat kehittäjien kirjoittaa ohjeita laitteelle. Laitteet ymmärtävät vain binäärikoodia (1:t ja 0:t), ja *useimmille* kehittäjille se ei ole kovin tehokas tapa kommunikoida. Ohjelmointikielet toimivat välineenä ihmisten ja tietokoneiden välisessä viestinnässä.
Ohjelmointikielet mahdollistavat kehittäjien ohjeiden kirjoittamisen laitteelle. Laitteet ymmärtävät vain binäärikoodia (1:t ja 0:t), ja *useimmille* kehittäjille se ei ole kovin tehokas tapa kommunikoida. Ohjelmointikielet ovat väline ihmisten ja tietokoneiden väliseen viestintään.
Ohjelmointikielet voivat olla eri muodoissa ja palvella eri tarkoituksia. Esimerkiksi JavaScriptiä käytetään pääasiassa verkkosovelluksissa, kun taas Bashia käytetään pääasiassa käyttöjärjestelmissä.
Ohjelmointikielet ovat erilaisia ja voivat palvella eri tarkoituksia. Esimerkiksi JavaScriptia käytetään pääasiassa verkkosovelluksissa, kun taas Bashia käytetään pääasiassa käyttöjärjestelmissä.
*Matalan tason kielet* vaativat yleensä vähemmän vaiheita laitteen ohjeiden tulkitsemiseksi kuin *korkean tason kielet*. Korkean tason kielten suosio perustuu kuitenkin niiden luettavuuteen ja tukeen. JavaScriptiä pidetään korkean tason kielenä.
*Matalan tason kielet* vaativat yleensä vähemmän vaiheita laitteen ohjeiden tulkitsemiseksi kuin *korkean tason kielet*. Korkean tason kielet ovat kuitenkin suosittuja niiden luettavuuden ja tuen vuoksi. JavaScriptia pidetään korkean tason kielenä.
Seuraava koodi havainnollistaa eroa korkean tason kielen (JavaScript) ja matalan tason kielen (ARM-assembly) välillä.
Seuraava koodi havainnollistaa eroa korkean tason kielen (JavaScript) ja matalan tason kielen (ARM assembly code) välillä.
```javascript
let number = 10
@ -83,29 +83,29 @@ back add r0,r1
end
```
Uskokaa tai älkää, *ne tekevät saman asian*: tulostavat Fibonacci-sekvenssin luvut 10 asti.
Uskokaa tai älkää, *ne tekevät saman asian*: tulostavat Fibonacci-sekvenssin 10:een asti.
✅ Fibonacci-sekvenssi [määritellään](https://en.wikipedia.org/wiki/Fibonacci_number) joukoksi lukuja, joissa jokainen luku on kahden edeltävän luvun summa, alkaen 0:sta ja 1:stä. Ensimmäiset 10 Fibonacci-sekvenssin lukua ovat 0, 1, 1, 2, 3, 5, 8, 13, 21 ja 34.
✅ Fibonacci-sekvenssi [määritellään](https://en.wikipedia.org/wiki/Fibonacci_number) numeroryhmäksi, jossa jokainen numero on kahden edeltävän numeron summa, alkaen 0:sta ja 1:stä. Ensimmäiset 10 Fibonacci-sekvenssin numeroa ovat 0, 1, 1, 2, 3, 5, 8, 13, 21 ja 34.
## Ohjelman elementit
Yksittäistä ohjetta ohjelmassa kutsutaan *lauseeksi*, ja sillä on yleensä merkki tai riviväli, joka osoittaa, missä ohje päättyy eli *päättyy*. Ohjelman päättymistapa vaihtelee kielen mukaan.
Yksittäistä ohjetta ohjelmassa kutsutaan *lauseeksi*, ja sillä on yleensä merkki tai riviväli, joka osoittaa, missä ohje päättyy eli *terminoituu*. Ohjelman päättymistapa vaihtelee kielen mukaan.
Ohjelman lauseet voivat perustua käyttäjän tai muun lähteen antamiin tietoihin ohjeiden suorittamiseksi. Tiedot voivat muuttaa ohjelman toimintaa, joten ohjelmointikielissä on tapa tallentaa tietoja väliaikaisesti myöhempää käyttöä varten. Näitä kutsutaan *muuttujiksi*. Muuttujat ovat lauseita, jotka ohjeistavat laitteen tallentamaan tietoja muistiinsa. Muuttujat ohjelmissa ovat samanlaisia kuin muuttujat algebrassa: niillä on yksilöllinen nimi, ja niiden arvo voi muuttua ajan myötä.
Ohjelman lauseet voivat perustua käyttäjän tai muun lähteen antamiin tietoihin ohjeiden suorittamiseksi. Tiedot voivat muuttaa ohjelman käyttäytymistä, joten ohjelmointikielissä on tapa tallentaa tietoja väliaikaisesti myöhempää käyttöä varten. Näitä kutsutaan *muuttujiksi*. Muuttujat ovat lauseita, jotka ohjeistavat laitteen tallentamaan tietoja muistiinsa. Muuttujat ohjelmissa ovat samanlaisia kuin muuttujat algebrassa, joissa niillä on yksilöllinen nimi ja niiden arvo voi muuttua ajan myötä.
On mahdollista, että jotkin lauseet eivät tule suoritetuiksi laitteella. Tämä tapahtuu yleensä kehittäjän suunnitelman mukaisesti tai vahingossa odottamattoman virheen sattuessa. Tällainen sovelluksen hallinta tekee siitä kestävämmän ja helpommin ylläpidettävän. Tyypillisesti nämä hallinnan muutokset tapahtuvat, kun tietyt ehdot täyttyvät. Yksi yleinen lause nykyaikaisessa ohjelmoinnissa ohjelman suorittamisen hallintaan on `if..else`-lause.
On mahdollista, että jotkut lauseet eivät tule laitteen suorittamiksi. Tämä tapahtuu yleensä tarkoituksella, kun kehittäjä on kirjoittanut ohjelman näin, tai vahingossa, kun odottamaton virhe tapahtuu. Tällainen sovelluksen hallinta tekee siitä kestävämmän ja helpommin ylläpidettävän. Tyypillisesti nämä hallinnan muutokset tapahtuvat, kun tietyt ehdot täyttyvät. Yksi yleinen lause, jota käytetään nykyaikaisessa ohjelmoinnissa ohjelman suorittamisen hallintaan, on `if..else`-lause.
✅ Opit lisää tämän tyyppisistä lauseista seuraavissa oppitunneissa.
✅ Opit lisää tämän tyyppisestä lauseesta myöhemmissä oppitunneissa.
## Työkalut
[![Työkalut](https://img.youtube.com/vi/69WJeXGBdxg/0.jpg)](https://youtube.com/watch?v=69WJeXGBdxg "Työkalut")
> 🎥 Klikkaa yllä olevaa kuvaa katsoaksesi videon työkaluista
> 🎥 Klikkaa yllä olevaa kuvaa nähdäksesi videon työkaluista
Tässä osiossa opit ohjelmistoista, jotka voivat olla erittäin hyödyllisiä, kun aloitat ammatillisen kehittäjän urasi.
**Kehitysympäristö** on ainutlaatuinen joukko työkaluja ja ominaisuuksia, joita kehittäjä käyttää usein ohjelmistoa kirjoittaessaan. Jotkut näistä työkaluista on räätälöity kehittäjän erityistarpeisiin, ja ne voivat muuttua ajan myötä, jos kehittäjä muuttaa työnsä painopisteitä, henkilökohtaisia projektejaan tai käyttämäänsä ohjelmointikieltä. Kehitysympäristöt ovat yhtä ainutlaatuisia kuin niitä käyttävät kehittäjät.
**Kehitysympäristö** on ainutlaatuinen joukko työkaluja ja ominaisuuksia, joita kehittäjä käyttää usein ohjelmistoa kirjoittaessaan. Jotkut näistä työkaluista on räätälöity kehittäjän erityistarpeisiin, ja ne voivat muuttua ajan myötä, jos kehittäjä muuttaa työprioriteettejaan, henkilökohtaisia projektejaan tai käyttää eri ohjelmointikieltä. Kehitysympäristöt ovat yhtä ainutlaatuisia kuin kehittäjät, jotka niitä käyttävät.
### Editorit
@ -113,10 +113,10 @@ Yksi tärkeimmistä ohjelmistokehityksen työkaluista on editori. Editoreissa ki
Kehittäjät luottavat editoreihin muutamasta lisäsyystä:
- *Virheenkorjaus* auttaa löytämään virheitä ja ongelmia käymällä koodia läpi rivi riviltä. Joissakin editoreissa on virheenkorjausominaisuuksia, jotka voidaan räätälöidä ja lisätä tiettyjä ohjelmointikieliä varten.
- *Syntaksin korostus* lisää värejä ja tekstimuotoiluja koodiin, mikä helpottaa sen lukemista. Useimmat editorit sallivat mukautetun syntaksin korostuksen.
- *Laajennukset ja integraatiot* ovat kehittäjien kehittämiä erikoistyökaluja. Nämä työkalut eivät ole osa editorin perusominaisuuksia. Esimerkiksi monet kehittäjät dokumentoivat koodinsa selittääkseen, miten se toimii. He voivat asentaa oikeinkirjoituksen tarkistuslaajennuksen löytääkseen kirjoitusvirheitä dokumentaatiosta. Useimmat laajennukset on tarkoitettu käytettäväksi tietyssä editorissa, ja useimmissa editoreissa on tapa etsiä saatavilla olevia laajennuksia.
- *Mukauttaminen* mahdollistaa kehittäjien luoda ainutlaatuisen kehitysympäristön omiin tarpeisiinsa. Useimmat editorit ovat erittäin muokattavissa ja voivat myös sallia kehittäjien luoda omia laajennuksia.
- *Virheenkorjaus* auttaa löytämään virheitä ja ongelmia käymällä koodia läpi rivi riviltä. Joissakin editoreissa on virheenkorjausominaisuuksia; niitä voidaan räätälöidä ja lisätä tiettyjä ohjelmointikieliä varten.
- *Syntaksin korostus* lisää värejä ja tekstimuotoiluja koodiin, mikä tekee siitä helpommin luettavan. Useimmat editorit sallivat mukautetun syntaksin korostuksen.
- *Laajennukset ja integraatiot* ovat kehittäjien kehittämiä erikoistyökaluja. Nämä työkalut eivät ole osa editorin perustoimintoja. Esimerkiksi monet kehittäjät dokumentoivat koodinsa selittääkseen, miten se toimii. He voivat asentaa oikeinkirjoituksen tarkistuslaajennuksen löytääkseen kirjoitusvirheitä dokumentaatiosta. Useimmat laajennukset on tarkoitettu käytettäväksi tietyn editorin sisällä, ja useimmat editorit sisältävät tavan etsiä saatavilla olevia laajennuksia.
- *Mukauttaminen* mahdollistaa kehittäjien luoda ainutlaatuisen kehitysympäristön tarpeidensa mukaan. Useimmat editorit ovat erittäin mukautettavia ja voivat myös sallia kehittäjien luoda omia laajennuksia.
#### Suositut editorit ja verkkokehityksen laajennukset
@ -137,9 +137,9 @@ Kehittäjät luottavat editoreihin muutamasta lisäsyystä:
Toinen tärkeä työkalu on selain. Verkkokehittäjät luottavat selaimeen nähdäkseen, miten heidän koodinsa toimii verkossa. Selainta käytetään myös näyttämään verkkosivun visuaaliset elementit, jotka on kirjoitettu editorissa, kuten HTML.
Monissa selaimissa on *kehittäjätyökalut* (DevTools), jotka sisältävät joukon hyödyllisiä ominaisuuksia ja tietoja, jotka auttavat kehittäjiä keräämään ja tallentamaan tärkeitä tietoja sovelluksestaan. Esimerkiksi: Jos verkkosivulla on virheitä, on joskus hyödyllistä tietää, milloin ne tapahtuivat. Selaimen kehittäjätyökalut voidaan määrittää tallentamaan nämä tiedot.
Monet selaimet sisältävät *kehittäjätyökaluja* (DevTools), jotka sisältävät joukon hyödyllisiä ominaisuuksia ja tietoja, jotka auttavat kehittäjiä keräämään ja tallentamaan tärkeää tietoa sovelluksestaan. Esimerkiksi: Jos verkkosivulla on virheitä, on joskus hyödyllistä tietää, milloin ne tapahtuivat. Selaimen DevTools voidaan konfiguroida keräämään nämä tiedot.
#### Suositut selaimet ja kehittäjätyökalut
#### Suositut selaimet ja DevTools
- [Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)
- [Chrome](https://developers.google.com/web/tools/chrome-devtools/)
@ -147,13 +147,13 @@ Monissa selaimissa on *kehittäjätyökalut* (DevTools), jotka sisältävät jou
### Komentorivityökalut
Jotkut kehittäjät suosivat vähemmän graafista näkymää päivittäisiin tehtäviinsä ja luottavat komentoriviin niiden suorittamisessa. Koodin kirjoittaminen vaatii paljon kirjoittamista, ja jotkut kehittäjät haluavat olla keskeyttämättä näppäimistön käyttöä. He käyttävät näppäinoikoteitä vaihtaakseen työpöytäikkunoiden välillä, työskennelläkseen eri tiedostojen parissa ja käyttää työkaluja. Useimmat tehtävät voidaan suorittaa hiirellä, mutta yksi komentorivin eduista on, että paljon voidaan tehdä komentorivityökaluilla ilman tarvetta vaihtaa hiiren ja näppäimistön välillä. Toinen komentorivin etu on, että ne ovat muokattavissa, ja voit tallentaa mukautetun kokoonpanon, muuttaa sitä myöhemmin ja tuoda sen muihin kehityskoneisiin. Koska kehitysympäristöt ovat niin ainutlaatuisia jokaiselle kehittäjälle, jotkut välttävät komentorivin käyttöä, jotkut luottavat siihen täysin, ja jotkut suosivat näiden kahden yhdistelmää.
Jotkut kehittäjät suosivat vähemmän graafista näkymää päivittäisiin tehtäviinsä ja luottavat komentoriviin tämän saavuttamiseksi. Koodin kirjoittaminen vaatii paljon näppäimistön käyttöä, ja jotkut kehittäjät haluavat olla keskeyttämättä työskentelyään näppäimistöllä. He käyttävät näppäinoikoteitä vaihtaakseen työpöytäikkunoiden välillä, työskennelläkseen eri tiedostoissa ja käyttää työkaluja. Useimmat tehtävät voidaan suorittaa hiirellä, mutta yksi komentorivin etu on, että paljon voidaan tehdä komentorivityökaluilla ilman tarvetta vaihtaa hiiren ja näppäimistön välillä. Toinen komentorivin etu on, että ne ovat konfiguroitavissa, ja voit tallentaa mukautetun konfiguraation, muuttaa sitä myöhemmin ja tuoda sen muihin kehityskoneisiin. Koska kehitysympäristöt ovat niin ainutlaatuisia jokaiselle kehittäjälle, jotkut välttävät komentorivin käyttöä, jotkut luottavat siihen täysin, ja jotkut suosivat näiden kahden yhdistelmää.
### Suositut komentorivivaihtoehdot
Komentorivivaihtoehdot vaihtelevat käyttämäsi käyttöjärjestelmän mukaan.
*💻 = esiasennettu käyttöjärjestelmään.*
*💻 = tulee esiasennettuna käyttöjärjestelmään.*
#### Windows
@ -182,9 +182,9 @@ Komentorivivaihtoehdot vaihtelevat käyttämäsi käyttöjärjestelmän mukaan.
### Dokumentaatio
Kun kehittäjä haluaa oppia jotain uutta, hän todennäköisesti kääntyy dokumentaation puoleen oppiakseen, miten sitä käytetään. Kehittäjät luottavat usein dokumentaatioon oppiakseen käyttämään työkaluja ja kieliä oikein sekä saadakseen syvempää tietoa niiden toiminnasta.
Kun kehittäjä haluaa oppia jotain uutta, hän todennäköisesti kääntyy dokumentaation puoleen oppiakseen, miten sitä käytetään. Kehittäjät luottavat usein dokumentaatioon saadakseen ohjeita työkalujen ja kielten oikeasta käytöstä sekä syvempää tietoa niiden toiminnasta.
#### Suosittu verkkokehityksen dokumentaatio
#### Suosittu dokumentaatio verkkokehityksestä
- [Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web), Mozillalta, [Firefox](https://www.mozilla.org/firefox/)-selaimen julkaisijoilta
- [Frontend Masters](https://frontendmasters.com/learn/)
@ -192,26 +192,28 @@ Kun kehittäjä haluaa oppia jotain uutta, hän todennäköisesti kääntyy doku
- [Microsoftin oma kehittäjädokumentaatio](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers), [Microsoft Edge](https://www.microsoft.com/edge)-selaimelle
- [W3 Schools](https://www.w3schools.com/where_to_start.asp)
✅ Tee tutkimusta: Nyt kun tiedät verkkokehittäjän ympäristön perusteet, vertaa sitä verkkosuunnittelijan ympäristöön.
✅ Tee tutkimusta: Nyt kun tiedät verkkokehittäjän ympäristön perusteet, vertaa ja kontrastoi sitä verkkosuunnittelijan ympäristöön.
---
## 🚀 Haaste
Vertaa joitakin ohjelmointikieliä. Mitkä ovat JavaScriptin ja Javan ainutlaatuiset piirteet? Entä COBOL ja Go?
Vertaa joitakin ohjelmointikieliä. Mitkä ovat JavaScriptin ja Javan ainutlaatuiset piirteet? Entä COBOL vs. Go?
## Oppitunnin jälkeinen kysely
## Jälkikysely
[Jälkikysely](https://ff-quizzes.netlify.app/web/)
## Kertaus ja itseopiskelu
Tutki hieman eri kieliä, joita ohjelmoijalla on käytettävissään. Yritä kirjoittaa yksi rivi yhdellä kielellä ja kirjoita se sitten kahdella muulla kielellä. Mitä opit?
Tutki hieman eri kieliä, joita ohjelmoija voi käyttää. Yritä kirjoittaa yksi rivi yhdellä kielellä ja kirjoita se sitten uudelleen kahdella muulla. Mitä opit?
## Tehtävä
[Dokumentaation lukeminen](assignment.md)
> Huom: Kun valitset työkaluja tehtävääsi, älä valitse edellä mainittuja editoreita, selaimia tai komentorivityökaluja.
---
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Pyrimme tarkkuuteen, mutta huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulee pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskääntämistä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save