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

pull/1774/head
localizeflow[bot] 2 weeks ago
parent 0b6b7a0605
commit 932ab48db9

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T12:30:42+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T22:22:40+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "pa"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T12:42:53+00:00",
"translation_date": "2026-03-27T22:30:40+00:00",
"source_file": "AGENTS.md",
"language_code": "pa"
},

@ -1,37 +1,37 @@
# AGENTS.md
## ਪ੍ਰੋਜੈਕਟ ਓਵਰਵਿਊ
## Project Overview
ਇਹ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਨੂੰ ਵੈੱਬ ਡਿਵੈਲਪਮੈਂਟ ਦੇ ਮੁਢਲਾ ਤੱਤ ਸਿਖਾਣ ਲਈ ਇੱਕ ਸਿੱਖਿਆਤਮਕ ਕੋਰਸ-ਪਾਠ ਰੀਪੋਜ਼ਟਰੀ ਹੈ। ਇਸ ਕੋਰਸ-ਪਾਠ ਨੂੰ ਮਾਈਕਰੋਸੌਫਟ ਕਲਾਉਡ ਅਡਵੋਕੇਟਸ ਵੱਲੋਂ ਵਿਕਸਤ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ 12 ਹਫ਼ਤਿਆਂ ਦਾ ਵਿਸਤ੍ਰਿਤ ਕੋਰਸ ਹੈ, ਜਿਸ ਵਿੱਚ 24 ਹਥਿਆਰਵੰਦ ਸਬਕ ਹਨ ਜੋ ਜਾਵਾਸਕ੍ਰਿਪਟ, CSS ਅਤੇ HTML ਨੂੰ ਕਵਰ ਕਰਦੇ ਹਨ।
ਇਹ ਵੈੱਬ ਵਿਕਾਸ ਬੁਨਿਆਦੀਆਂ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਹੋਣ ਵਾਲਿਆਂ ਨੂੰ ਸਿਖਾਉਣ ਲਈ ਇੱਕ ਸਿੱਖਿਆ ਗ੍ਰਹਿ ਹੈ। ਇਹ ਪਾਠਕ੍ਰਮ Microsoft Cloud Advocates ਦੁਆਰਾ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਇੱਕ ਵਿਆਪਕ 12 ਹਫਤਿਆਂ ਦਾ ਕੋਰਸ ਹੈ, ਜਿਸ ਵਿੱਚ 24 ਪ੍ਰਯੋਗਾਤਮਕ ਪਾਠ ਹਨ ਜੋ ਜਾਵਾਸਕ੍ਰਿਪਟ, CSS, ਅਤੇ HTML ਨੂੰ ਕਵਰ ਕਰਦੇ ਹਨ।
### ਮੁੱਖ ਹਿੱਸੇ
### Key Components
- **ਸਿੱਖਿਆਤਮਕ ਸਮੱਗਰੀ**: 24 ਸੰਜੋਏ ਹੋਏ ਸਬਕ ਪ੍ਰੋਜੈਕਟ-ਆਧਾਰਿਤ ਮੋਡੀਊਲਾਂ ਵਿੱਚ ਵੰਡੇ ਹੋਏ
- **ਵਿਆਹਰਕ ਪ੍ਰੋਜੈਕਟ**: ਟੈਰੀਅਰੀਅਮ, ਟਾਈਪਿੰਗ ਗੇਮ, ਬ੍ਰਾਊਜ਼ਰ ਐਕਸਟੈਂਸ਼ਨ, ਸਪੇਸ ਗੇਮ, ਬੈਂਕਿੰਗ ਐਪ, ਕੋਡ ਐਡੀਟਰ ਅਤੇ AI ਚੈਟ ਸਹਾਇਕ
- **ਇੰਟਰਐਕਟਿਵ ਕਵਿਜ਼**: 48 ਕਵਿਜ਼, ਹਰ ਇੱਕ ਵਿੱਚ 3 ਪ੍ਰਸ਼ਨ (ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਦੇ ਸਬਕ ਮੁਲਾਂਕਣ)
- **ਬਹੁ-ਭਾਸ਼ਾ ਸਹਾਇਤਾ**: 50+ ਭਾਸ਼ਾਵਾਂ ਲਈ ਗਿਟਹਬ ਐਕਸ਼ਨਾਂ ਰਾਹੀਂ ਆਟੋਮੇਟਿਕ ਅਨੁਵਾਦ
- **ਤਕਨਾਲੋਜੀਜ਼**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (AI ਪ੍ਰੋਜੈਕਟ ਲਈ)
- **ਸਿੱਖਿਆ ਸਮੱਗਰੀ**: ਪ੍ਰਾਜੈਕਟਾਂ-ਅਧਾਰਿਤ ਮੋਡਿਊਲਾਂ ਵਿੱਚ ਸੁਗਠਿਤ 24 ਪਾਠ
- **ਅਮਲੀ ਪਰਿਯੋਜਨਾਵਾਂ**: ਟੇਰਾਰਿਯਮ, ਟਾਈਪਿੰਗ ਗੇਮ, ਬਰਾਊਜ਼ਰ ਐਕਸਟੈਂਸ਼ਨ, ਸਪੇਸ ਗੇਮ, ਬੈਂਕਿੰਗ ਐਪ, ਕੋਡ ਏਡੀਟਰ, ਅਤੇ AI ਚੈਟ ਸਹਾਇਕ
- **ਇੰਟਰੇਕਟਿਵ ਕੁਈਜ਼**: 48 ਕੁਈਜ਼ ਹਰ ਇੱਕ ਵਿੱਚ 3 ਸਵਾਲ (ਪ੍ਰੀ/ਪੋਸਟ-ਪਾਠ ਮੁਲਾਂਕਣ)
- **ਬਹੁ-ਭਾਸ਼ਾ ਸਹਾਇਤਾ**: GitHub Actions ਰਾਹੀਂ 50+ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦ
- **ਟੈਕਨੋਲੋਜੀਜ਼**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (AI ਪਰਿਯੋਜਨਾਵਾਂ ਲਈ)
### ਆਰਕੀਟੈਕਚਰ
### Architecture
- ਸਿੱਖਿਆਤਮਕ ਰੀਪੋਜ਼ਟਰੀ ਸਬਕ ਅਧਾਰਤ ਢਾਂਚੇ ਨਾਲ
- ਹਰ ਸਬਕ ਫੋਲਡਰ ਵਿੱਚ README, ਕੋਡ ਉਦਾਹਰਨ ਅਤੇ ਸਮਾਧਾਨ ਹਨ
- ਵੱਖ-ਵੱਖ ਡਾਇਰੈਕਟਰੀਜ਼ ਵਿੱਚ ਅਲੱਗ-ਅਲੱਗ ਪ੍ਰੋਜੈਕਟ (quiz-app, ਵੱਖ-ਵੱਖ ਸਬਕ ਪ੍ਰੋਜੈਕਟ)
- ਅਨੁਵਾਦ ਸਿਸਟਮ ਜੋ ਗਿਟਹਬ ਐਕਸ਼ਨਾਂ (co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ
- ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ Docsify ਰਾਹੀਂ ਪਰੋਵਾਈਡ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ PDF ਵਜੋਂ ਉਪਲਬਧ ਹੈ
- ਪਾਠ-ਅਧਾਰਿਤ ਡھانਚਾ ਵਾਲਾ ਸਿੱਖਿਆ ਗ੍ਰਹਿ
- ਹਰ ਪਾਠ ਫੋਲਡਰ ਵਿੱਚ README, ਕੋਡ ਉਦਾਹਰਨਾਂ, ਅਤੇ ਹੱਲ ਹੁੰਦੇ ਹਨ
- ਵੱਖ-ਵੱਖ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਖੁਦਮੁਖਤਿਆਰ ਪਰਿਯੋਜਨਾਵਾਂ (quiz-app, ਵੱਖ-ਵੱਖ ਪਾਠ ਪ੍ਰਾਜੈਕਟ)
- GitHub Actions (co-op-translator) ਵੱਲੋਂ ਅਨੁਵਾਦ ਪ੍ਰਣਾਲੀ
- Docsify ਰਾਹੀਂ ਦਸਤਾਵੇਜ਼ ਕੀਤੇ ਗਏ ਅਤੇ PDF ਵਜੋਂ ਉਪਲਬਧ
## ਸੈਟਅਪ ਕਮਾਂਡਾਂ
## Setup Commands
ਇਹ ਰੀਪੋਜ਼ਟਰੀ ਮੁੱਖ ਤੌਰ 'ਤੇ ਸਿੱਖਿਆਤਮਕ ਸਮੱਗਰੀ ਨੂੰ ਵਰਤਣ ਲਈ ਹੈ। ਖਾਸ ਪ੍ਰੋਜੈਕਟਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ:
ਇਹ ਗ੍ਰਹਿ ਮੁੱਖ ਤੌਰ 'ਤੇ ਸਿੱਖਿਆ ਸਮੱਗਰੀ ਖਪਤ ਲਈ ਹੈ। ਖਾਸ ਪਰਿਯੋਜਨਾਵਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ:
### ਮੁੱਖ ਰੀਪੋਜ਼ਟਰੀ ਸੈਟਅਪ
### Main Repository Setup
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### ਕਵਿਜ਼ ਐਪ ਸੈਟਅਪ (Vue 3 + Vite)
### Quiz App Setup (Vue 3 + Vite)
```bash
cd quiz-app
@ -41,242 +41,242 @@ npm run build # ਉਤਪਾਦਨ ਲਈ ਬਣਾਓ
npm run lint # ESLint ਚਲਾਓ
```
### ਬੈਂਕ ਪ੍ਰੋਜੈਕਟ API (Node.js + Express)
### Bank Project API (Node.js + Express)
```bash
cd 7-bank-project/api
npm install
npm start # ਏਪੀਆਈ ਸਰਵਰ ੁਰੂ ਕਰੋ
npm start # ਏਪੀਆਈ ਸਰਵਰ ਸ਼ੁਰੂ ਕਰੋ
npm run lint # ESLint ਚਲਾਓ
npm run format # ਪ੍ਰਿਟੀਅਰ ਨਾਲ ਫਾਰਮੈਟ ਕਰੋ
npm run format # Prettier ਨਾਲ ਫਾਰਮੈਟ ਕਰੋ
```
### ਬ੍ਰਾਊਜ਼ਰ ਐਕਸਟੈਂਸ਼ਨ ਪ੍ਰੋਜੈਕਟ
### Browser Extension Projects
```bash
cd 5-browser-extension/solution
npm install
# ਬ੍ਰਾਉਜ਼ਰ-ਖਾਸ ਐਕਸਟੈਂਸ਼ਨ ਲੋਡਿੰਗ ਨਿਰਦੇਸ਼ਾਂ ਦਾ ਪਾਲਣ ਕਰੋ
# ਬ੍ਰਾਉਜ਼ਰ-ਖਾਸ ਐਕਸਟੈਂਸ਼ਨ ਲੋਡਿੰਗ ਹਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ
```
### ਸਪੇਸ ਗੇਮ ਪ੍ਰੋਜੈਕਟ
### Space Game Projects
```bash
cd 6-space-game/solution
npm install
# index.html ਨੂੰ ਬ੍ਰਾਉਜ਼ਰ ਵਿਚ ਖੋਲ੍ਹੋ ਜਾਂ ਲਾਈਵ ਸਰਵਰ ਦੀ ਵਰਤੋਂ ਕਰੋ
# index.html ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ ਜਾਂ ਲਾਈਵ ਸਰਵਰ ਵਰਤੋ
```
### ਚੈਟ ਪ੍ਰੋਜੈਕਟ (Python ਬੈਕਐਂਡ)
### Chat Project (Python Backend)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# GITHUB_TOKEN ਵਾਤਾਵਰ ਵੈਰੀਏਬਲ ਸੈੱਟ ਕਰੋ
# GITHUB_TOKEN ਵਾਤਾਵਰ ਵੈਰੀਏਬਲ ਸੈੱਟ ਕਰੋ
python api.py
```
## ਵਿਕਾਸ ਵਰਕਫਲੋ
## Development Workflow
### ਸਮੱਗਰੀ ਯੋਗਦਾਨਕਾਰਾਂ ਲਈ
### For Content Contributors
1. ਆਪਣੀ GitHub ਖਾਤੇ ਵਿੱਚ ਰੀਪੋਜ਼ਟਰੀ ਨੂੰ ਫੋਰਕ ਕਰੋ
2. ਆਪਣੇ ਫੋਰਕ ਨੂੰ ਲੋਕਲ ਕਲੋਨ ਕਰੋ
3. ਆਪਣੇ ਬਦਲਾਅ ਲਈ ਨਵਾਂ ਬ੍ਰਾਂਚ ਬਣਾਓ
4. ਸਬਕ ਸਮੱਗਰੀ ਜਾਂ ਕੋਡ ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਕਰੋ
5. ਸੰਬੰਧਤ ਪ੍ਰੋਜੈਕਟ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਕੋਈ ਵੀ ਕੋਡ ਤਬਦੀਲੀਆਂ ਟੈਸਟ ਕਰੋ
6. ਯੋਗਦਾਨ ਨਿਯਮਾਂ ਦੇ ਅਨੁਸਾਰ ਪੁਲ ਰਿਕਵੇਸਟ ਭੇਜੋ
1. **ਗ੍ਰਹਿ ਨੂੰ ਫੋਰਕ ਕਰੋ** ਆਪਣੇ GitHub ਖਾਤੇ 'ਤੇ
2. **ਆਪਣੇ ਫੋਰਕ ਨੂੰ ਕਲੋਨ ਕਰੋ** ਸਥਾਨਕ ਤੌਰ 'ਤੇ
3. **ਆਪਣੇ ਬਦਲਾਅ ਲਈ ਨਵੀਂ ਸ਼ਾਖਾ ਬਣਾਓ**
4. ਪਾਠ ਸਮੱਗਰੀ ਜਾਂ ਕੋਡ ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਬਦਲਾਅ ਕਰੋ
5. ਸੰਬੰਧਤ ਪਰਿਯੋਜਨਾ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਕੋਈ ਵੀ ਕੋਡ ਬਦਲਾਅ ਟੈਸਟ ਕਰੋ
6. ਯੋਗਦਾਨ ਦਿਓਣੀਆਂ ਹਦਾਇਤਾਂ ਦੇ ਅਨੁਸਾਰ ਪੁੱਲ ਰਿਕਵੇਸਟ ਭੇਜੋ
### ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ
### For Learners
1. ਰੀਪੋਜ਼ਟਰੀ ਨੂੰ ਫੋਰਕ ਜਾਂ ਕਲੋਨ ਕਰੋ
2. ਸਬਕ ਡਾਇਰੈਕਟਰੀਜ਼ ਵਿੱਚ ਕ੍ਰਮਵਾਰ ਜਾਓ
3. ਹਰ ਸਬਕ ਲਈ README ਫਾਇਲ ਪੜ੍ਹੋ
4. ਪਹਿਲਾਂ ਦੇ ਸਬਕਾਂ ਲਈ ਕਵਿਜ਼ https://ff-quizzes.netlify.app/web/ ਤੇ ਪੂਰੇ ਕਰੋ
5. ਸਬਕ ਫੋਲਡਰਾਂ ਵਿੱਚ ਦਿੱਤੇ ਕੋਡ ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਕੰਮ ਕਰੋ
6. ਅਸਾਈਨਮੈਂਟਾਂ ਅਤੇ ਚੈਲੈਂਜਾਂ ਪੂਰੇ ਕਰੋ
7. ਸਬਕ ਬਾਅਦ ਦੇ ਕਵਿਜ਼ ਕਰ ਲਵੋ
1. ਗ੍ਰਹਿ ਨੂੰ ਫੋਰਕ ਜਾਂ ਕਲੋਨ ਕਰੋ
2. ਪਾਠ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਲੜੀਵਾਰ ਜਾਓ
3. ਹਰ ਪਾਠ ਲਈ README ਫਾਈਲਾਂ ਪੜ੍ਹੋ
4. https://ff-quizzes.netlify.app/web/ 'ਤੇ ਪ੍ਰੀ-ਪਾਠ ਕੁਈਜ਼ ਪੂਰੇ ਕਰੋ
5. ਪਾਠ ਫੋਲਡਰਾਂ ਵਿੱਚ ਕੋਡ ਉਦਾਹਰਨਾਂ 'ਤੇ ਕੰਮ ਕਰੋ
6. ਅਸਾਈਨਮੈਂਟ ਅਤੇ ਚੈਲੈਂਜ ਪੂਰੇ ਕਰੋ
7. ਪੋਸਟ-ਪਾਠ ਕੁਈਜ਼ ਲਓ
### ਲਾਈਵ ਡਿਵੈਲਪਮੈਂਟ
### Live Development
- **ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ**: ਮੁੱਖ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ `docsify serve` ਦੌੜਾਓ (ਪੋਰਟ 3000)
- **ਕਵਿਜ਼ ਐਪ**: quiz-app ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ `npm run dev` ਚਲਾਓ
- **੍ਰੋਜੈਕਟਸ**: VS ਕੋਡ ਲਾਈਵ ਸਰਵਰ ਐਕਸਟੈਂਸ਼ਨ ਨਾਲ HTML ਪ੍ਰੋਜੈਕਟ ਚਲਾਓ
- **API ਪ੍ਰੋਜੈਕਟਸ**: ਸੰਬੰਧਤ API ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ `npm start` ਚਲਾਓ
- **ਦਸਤਾਵੇਜ਼**: ਰੂਟ ਵਿੱਚ `docsify serve` ਚਲਾਓ (ਪੋਰਟ 3000)
- **Quiz App**: quiz-app ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ `npm run dev` ਚਲਾਓ
- **ਰਿਯੋਜਨਾਵਾਂ**: HTML ਪਰਿਯੋਜਨਾਵਾਂ ਲਈ VS Code Live Server ਐਕਸਟੈਂਸ਼ਨ ਵਰਤੋਂ
- **API ਪਰਿਯੋਜਨਾਵਾਂ**: ਸੰਬੰਧਤ API ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ `npm start` ਚਲਾਓ
## ਟੈਸਟਿੰਗ ਦੇ ਨਿਰਦੇਸ਼
## Testing Instructions
### ਕਵਿਜ਼ ਐਪ ਟੈਸਟਿੰਗ
### Quiz App Testing
```bash
cd quiz-app
npm run lint # ਕੋਡ ਸਟਾਈਲ ਮੁੱਦੇ ਚੈੱਕ ਕਰੋ
npm run build # ਬਣावट ਸਫਲ ਹੋਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ
npm run lint # ਕੋਡ ਸ਼ੈਲੀ ਸਮੱਸਿਆਵਾਂ ਦੀ ਜਾਂਚ ਕਰੋ
npm run build # ਬਣਾਉਣ ਦੀ ਸਫਲਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ
```
### ਬੈਂਕ API ਟੈਸਟਿੰਗ
### Bank API Testing
```bash
cd 7-bank-project/api
npm run lint # ਕੋਡ ਸ਼ੈਲੀ ਸਮੱਸਿਆਵਾਂ ਲਈ ਜਾਂਚ ਕਰੋ
node server.js # ਯਕੀਨੀ ਬਣਾਉ ਕਿ ਸਰਵਰ ਬਿਨਾਂ ਗਲਤੀਆਂ ਦੇ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ
npm run lint # ਕੋਡ ਅੰਦਾਜ਼ ਸਮੱਸਿਆਵਾਂ ਦੀ ਜਾਂਚ ਕਰੋ
node server.js # ਸਰਵਰ ਬਿਨਾਂ ਵਿੱਚ ਤਰੁੱਟੀਆਂ ਦੇ ਸ਼ੁਰੂ ਹੋਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ
```
### ਆਮ ਟੈਸਟਿੰਗ ਪਹੁੰਚ
### General Testing Approach
- ਇਹ ਸਿੱਖਿਆਤਮਕ ਰੀਪੋਜ਼ਟਰੀ ਹੈ ਜਿਸ ਵਿੱਚ ਵਿਸਤ੍ਰਿਤ ਆਟੋਮੇਟਿਕ ਟੈਸਟ ਨਹੀਂ ਹਨ
- ਹੱਥੋਂ ਟੈਸਟਿੰਗ ਤੇ ਧਿਆਨ:
- ਕੋਡ ਉਦਾਹਰਨ ਬਿਨਾਂ ਗਲਤੀ ਦੇ ਚੱਲਣ
- ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ ਵਿੱਚ ਦਿੱਤੇ ਲਿੰਕ ਸਹੀ ਕੰਮ ਕਰਦੇ ਹਨ
- ਪ੍ਰੋਜੈਕਟ ਬਿਲਡ ਸਫਲ ਰਹਿਣ
- ਉਦਾਹਰਨਾਂ ਵਧੀਆ ਅਮਲਾਂ ਦੀ ਪਾਲਣਾ ਕਰ
- ਇਹ ਸਿੱਖਿਆ ਗ੍ਰਹਿ ਵਿਸਤ੍ਰਿਤ ਸਵੈਚਾਲਿਤ ਟੈਸਟਾਂ ਦੇ ਬਿਨਾਂ ਹੈ
- ਮੈਨੂਅਲ ਟੈਸਟਿੰਗ ਧਿਆਨ ਦਿੰਦੀ ਹੈ:
- ਕੋਡ ਉਦਾਹਰਨਾਂ ਬਿਨਾਂ ਗਲਤੀਆਂ ਚੱਲਦੀਆਂ ਹਨ
- ਦਸਤਾਵੇਜ਼ੀ ਲਿੰਕ ਠੀਕ ਕੰਮ ਕਰਦੇ ਹਨ
- ਪਰਿਯੋਜਨਾ ਬਿਲਡ ਸਫਲ ਹੋ ਜਾਂਦੇ ਹਨ
- ਉਦਾਹਰਨਾਂ ਸਾਰਥਕ ਪद्धਤੀਆਂ ਦੀ ਪਾਲਣਾ ਕਰਦੀਆਂ ਹ
### ਪੇਸ਼ਕੀ ਤੱਯਾਰੀ ਜਾਂਚ
### Pre-submission Checks
- ਉਹਨਾਂ ਡਾਇਰੈਕਟਰੀਜ਼ ਵਿੱਚ ਜਿੱਥੇ package.json ਹੈ, `npm run lint` ਚਲਾਓ
- ਮਾਰਕਡਾਊਨ ਲਿੰਕਾਂ ਦੀ ਜਾਂਚ ਕਰੋ
- ਕੋਡ ਉਦਾਹਰਨਾਂ ਨੂੰ ਬ੍ਰਾਊਜ਼ਰ ਜਾਂ Node.js ਵਿੱਚ ਟੈਸਟ ਕਰੋ
- ਅਨੁਵਾਦਾਂ ਦੀ ਸਹੀ ਬਣਤਰ ਨੂੰ ਜਾਂਚੋ
- package.json ਵਾਲੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ `npm run lint` ਚਲਾਓ
- ਮਾਰਕਡਾਉਨ ਲਿੰਕਾਂ ਦੀ ਸਹੀਤਾ ਕੱਰੂ
- ਬ੍ਰਾਊਜ਼ਰ ਜਾਂ Node.js ਵਿੱਚ ਕੋਡ ਉਦਾਹਰਨਾਂ ਟੈਸਟ ਕਰੋ
- ਅਨੁਵਾਦਾਂ ਦੀ ਢਾਂਚਾਗਤ ਸਹੀਤਾ ਨੂੰ ਜਾਂਚੋ
## ਕੋਡ ਸ਼ੈਲੀ ਦੇ ਨਿਰਦੇਸ਼
## Code Style Guidelines
### ਜਾਵਾਸਕ੍ਰਿਪਟ
### JavaScript
- ਆਧੁਨਿਕ ES6+ ਵਾਕਯਾਂਸ਼ ਵਰਤੋਂ
- ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਦਿੱਤੇ standaard ESLint ਸੰਰਚਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ
- ਸਿੱਖਣ ਲਈ ਸਮਝਦਾਰ ਵੈਰੀਏਬਲ ਅਤੇ ਫੰਕਸ਼ਨ ਨਾਮ ਵਰਤੋਂ
- ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ ਸਿਧਾਂਤ ਸਮਝਾਉਣ ਵਾਲੇ ਕਮੈਂਟ ਸ਼ਾਮਲ ਕਰੋ
- ਜਿੱਥੇ ਲੋੜ ਹੋਵੇ Prettier ਨਾਲ ਫਾਰਮੈਟ ਕਰੋ
- ਆਧੁਨਿਕ ES6+ ਸਿੰਟੈਕਸ ਵਰਤੋਂ
- ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਦਿੱਤੇ ਗਏ ਅਮਾਨਤ ESLint ਸੰਰਚਨਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ
- ਸਿੱਖਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਵੈਰੀਏਬਲ ਅਤੇ ਫੰਕਸ਼ਨ ਨਾਮ ਵਰਤੋਂ
- ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ ਵਿਚਾਰ ਵਿਆਖਿਆ ਕਰਨ ਵਾਲੀਆਂ ਟਿੱਪਣੀਆਂ ਸ਼ਾਮਲ ਕਰੋ
- ਜਿੱਥੇ ਸੰਰਚਿਤ ਹੋਵੇ Prettier ਨਾਲ ਫਾਰਮੈਟਿੰਗ ਕਰੋ
### HTML/CSS
- ਸੈਂਟਮੈਟਿਕ HTML5 ਤੱਤਾਂ ਦੀ ਵਰਤੋਂ
- ਰਿਸਪਾਂਸਿਵ ਡਿਜ਼ਾਈਨ ਸਿਧਾਂਤਾਂ ਦੀ ਪਾਲਣਾ
- ਸਾਫ ਕਲਾਸ ਨਾਂਮਕਰਨ ਪ੍ਰਣਾਲੀ
- CSS ਤਕਨੀਕਾਂ ਨੂੰ ਸਮਝਾਉਂਦੇ ਕਮੈਂਟ
- Semantic HTML5 ਤੱਤ
- ਪ੍ਰਤੀਕ੍ਰਿਆਸ਼ੀਲ ਡਿਜ਼ਾਈਨ ਸਿਧਾਂਤ
- ਸਾਫ ਸੀਝੀ ਕਲਾਸ ਨਾਮਕਰਨ ਪਰੰਪਰਾਵਾਂ
- CSS ਤਕਨੀਕਾਂ ਨੂੰ ਸਮਝਾਉਂਦੀਆਂ ਟਿੱਪਣੀਆਂ ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ
### ਪਾਇਥਨ
### Python
- PEP 8 ਸ਼ੈਲੀ ਨਿਰਦੇਸ਼
- ਸਪਸ਼ਟ ਅਤੇ ਸਿੱਖਿਆਤਮਕ ਕੋਡ ਉਦਾਹਰਨਾਂ
- ਸਿੱਖਣ ਵਿੱਚ ਮਦਦ ਲਈ ਟਾਈਪ ਹਿੰਟ
- PEP 8 ਸ਼ੈਲੀ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼
- ਸਾਫ, ਸਿੱਖਣਯੋਗ ਕੋਡ ਉਦਾਹਰਨਾਂ
- ਸਿੱਖਣ ਵਿੱਚ ਮਦਦ ਲਈ ਟਾਈਪ ਹਿੰਟ
### ਮਾਰਕਡਾਊਨ ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ
### Markdown Documentation
- ਸਾਫ਼ ਸਿਰਲੇਖ ਅਨੁਕ੍ਰਮ
- ਭਾਸ਼ਾ ਗਿਆਤ ਕੋਡ ਬਲਾਕ
- ਸਾਫ ਸਿਰਲੇਖ ਹਾਇਰਾਰਕੀ
- ਭਾਸ਼ਾ ਨਿਰਧਾਰਿਤ ਕੋਡ ਬਲਾਕ
- ਵਾਧੂ ਸਰੋਤਾਂ ਲਈ ਲਿੰਕ
- `images/` ਡਾਇਰੈਕਟਰੀਜ਼ ਵਿੱਚ ਸਕ੍ਰੀਨਸ਼ਾਟ ਅਤੇ ਚਿੱਤਰ
- ਅਕਸੇਸੀਬਿਲਿਟੀ ਲਈ ਚਿੱਤਰਾਂ ਦਾ Alt ਟੈਕਸਟ
- `images/` ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਸਕਰੀਨਸ਼ਾਟ ਅਤੇ ਚਿੱਤਰ
- ਸੁਗਮਤਾ ਲਈ ਚਿੱਤਰਾਂ ਲਈ Alt ਟੈਕਸਟ
### ਫਾਇਲ ਸੰਗਠਨ
### File Organization
- ਸਬਕਾਂ ਨੂੰ ਲਗਾਤਾਰ ਨੰਬਰ (1-getting-started-lessons, 2-js-basics, ਆਦਿ)
- ਹਰ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ `solution/` ਅਤੇ ਆਮ ਤੌਰ 'ਤੇ `start/` ਜਾਂ `your-work/` ਡਾਇਰੈਕਟਰੀਜ਼
- ਚਿੱਤਰ ਸਬਕ-ਵਿਸ਼ੇਸ਼ `images/` ਫੋਲਡਰਾਂ ਵਿੱਚ ਸਟੋਰ
- ਅਨੁਵਾਦ `translations/{language-code}/` ਢਾਂਚੇ ਵਿੱਚ
- ਪਾਠ ਕ੍ਰਮਵਾਰ ਨੰਬਰ ਦੇ ਨਾਲ (1-getting-started-lessons, 2-js-basics, ਆਦਿ)
- ਹਰ ਪਰਿਯੋਜਨਾ ਵਿੱਚ `solution/` ਅਤੇ ਅਕਸਰ `start/` ਜਾਂ `your-work/` ਡਾਇਰੈਕਟਰੀਆਂ ਹੁੰਦੀਆਂ ਹਨ
- ਪਾਠ-ਵਿਸ਼ੇਸ਼ `images/` ਫੋਲਡਰਾਂ ਵਿੱਚ ਚਿੱਤਰ ਸੰਭਾਲੇ ਜਾਂਦੇ ਹਨ
- `translations/{language-code}/` ਢਾਂਚਾ ਵਿੱਚ ਅਨੁਵਾਦ
## ਬਿਲਡ ਅਤੇ ਡਿਪਲੌਇਮੈਂਟ
## Build and Deployment
### ਕਵਿਜ਼ ਐਪ ਡਿਪਲੌਇਮੈਂਟ (Azure Static Web Apps)
### Quiz App Deployment (Azure Static Web Apps)
ਕਵਿਜ਼-ਐਪ ਲਈ Azure Static Web Apps ਡਿਪਲੌਇਮੈਂਟ ਸੰਰਚਤ ਹੈ:
quiz-app ਨੂੰ Azure Static Web Apps ਡਿਪਲੋਇਮੈਂਟ ਲਈ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ:
```bash
cd quiz-app
npm run build # dist/ ਫੋਲਡਰ ਬਣਾਉਂਦਾ ਹੈ
# ਮੁੱਖ 'ਤੇ ਪੁਸ਼ ਕਰਨ 'ਤੇ GitHub Actions ਵਰਕਫਲੋ ਰਾਹੀਂ ਡਿਪਲॉय ਕਰਦਾ ਹੈ
# ਮੁੱਖ ਬ੍ਰਾਂਚ 'ਤੇ ਪੁਸ਼ ਕਰਨ 'ਤੇ GitHub Actions ਵਰਕਫਲੋ ਰਾਹੀਂ ਤੈਨਾਤ ਕਰਦਾ ਹੈ
```
Azure Static Web Apps ਸੰਰਚਨਾ:
Azure Static Web Apps ਕਨਫਿਗਰੇਸ਼ਨ:
- **ਐਪ ਸਥਾਨ**: `/quiz-app`
- **ਆਉਟਪੁੱਟ ਸਥਾਨ**: `dist`
- **ਵਰਕਫਲੋ**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### ਡੌਕਯੂਮੇਂਟੇਸ਼ਨ PDF ਬਣਾਉਣਾ
### Documentation PDF Generation
```bash
npm install # docsify-to-pdf ਇੰਸਟਾਲ ਕਰੋ
npm install # docsify-to-pdf ਨੂੰ ਇੰਸਟਾਲ ਕਰੋ
npm run convert # docs ਤੋਂ PDF ਬਣਾਓ
```
### Docsify ਡੌਕਯੂਮੈਂਟੇਸ਼ਨ
### Docsify Documentation
```bash
npm install -g docsify-cli # ਡੌਕਸਿਫਾਈ ਨੂੰ ਗਲੋਬਲੀ ਇੰਸਟਾਲ ਕਰੋ
docsify serve # ਲੋਕਲਹੋਸਟ:3000 'ਤੇ ਸਰਵ ਕਰੋ
npm install -g docsify-cli # Docsify ਨੂੰ ਗਲੋਬਲੀ ਇੰਸਟਾਲ ਕਰੋ
docsify serve # localhost:3000 'ਤੇ ਸਰਵ ਕਰੋ
```
### ਪ੍ਰੋਜੈਕਟ-ਵਿਸ਼ੇਸ਼ ਬਿਲਡ
### Project-specific Builds
ਹਰ ਪ੍ਰੋਜੈਕਟ ਡਾਇਰੈਕਟਰੀ ਦਾ ਆਪਣਾ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਹੋ ਸਕਦਾ ਹੈ:
- Vue ਪ੍ਰੋਜੈਕਟ: `npm run build` ਦੁਆਰਾ ਪ੍ਰੋਡਕਸ਼ਨ ਬਣਡਲ ਬਣਦਾ ਹੈ
- ਸਟੈਟਿਕ ਪ੍ਰੋਜੈਕਟ: ਕੋਈ ਬਿਲਡ ਕਦਮ ਨਹੀਂ, ਸਿੱਧੇ ਫਾਇਲ ਸਰਵ ਕਰੋ
ਹਰ ਪਰਿਯੋਜਨਾ ਡਾਇਰੈਕਟਰੀ ਆਪਣਾ ਨਿਰਮਾਣ ਪ੍ਰਕਿਰਿਆ ਰੱਖ ਸਕਦੀ ਹੈ:
- Vue ਪ੍ਰਾਜੈਕਟ: `npm run build` ਪ੍ਰੋਡਕਸ਼ਨ ਬੰਡਲ ਬਣਾਉਂਦਾ ਹੈ
- ਸਟੈਟਿਕ ਪ੍ਰਾਜੈਕਟ: ਕੋਈ ਨਿਰਮਾਣ ਕਦਮ ਨਹੀਂ, ਫਾਈਲਾਂ ਸਿੱਧਾ ਸਰਵ ਕਰੋ
## ਪੁਲ ਰਿਕਵੇਸਟ ਦੇ ਨਿਰਦੇਸ਼
## Pull Request Guidelines
### ਸਿਰਲੇਖ ਫਾਰਮੈਟ
### Title Format
ਸੁਥਰੇ ਤੇ ਵੇਰਵੇ ਵਾਲੇ ਸਿਰਲੇਖ ਵਰਤੋ ਜੋ ਬਦਲਾਅ ਦੇ ਖੇਤਰ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ:
- `[Quiz-app] ਨਵਾਂ ਕਵਿਜ਼ ਸਬਕ X ਲਈ ਸ਼ਾਮਲ ਕਰੋ`
- `[Lesson-3] ਟੈਰੀਅਰੀਅਮ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਟਾਈਪੋ ਠੀਕ ਕਰੋ`
- `[Translation] ਸਬਕ 5 ਲਈ ਸਪੇਨਿਸ਼ ਅਨੁਵਾਦ ਸ਼ਾਮਲ ਕਰੋ`
- `[Docs] ਸੈਟਅਪ ਨਿਰਦੇਸ਼ ਅਪਡੇਟ ਕਰੋ`
ਬਦਲਾਅ ਖੇਤਰ ਨੂੰ ਦਰਸਾਉਂਦੇ ਸਾਫਸੁਥਰੇ, ਵਰਣਨਾਤਮਕ ਸਿਰਲੇਖ ਵਰਤੋਂ:
- `[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
PR ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ:
1. **ਕੋਡ ਗੁਣਵੱਤਾ**:
- ਪ੍ਰਭਾਵਿਤ ਪ੍ਰੋਜੈਕਟ ਡਾਇਰੈਕਟਰੀਜ਼ ਵਿੱਚ `npm run lint` ਚਲਾਓ
- ਸਾਰ ਲਿੰਟਿੰਗ ਗਲਤੀਆਂ ਅਤੇ ਚੇਤਾਵਨੀਆਂ ਠੀਕ ਕਰੋ
- ਪ੍ਰਭਾਵਿਤ ਪ੍ਰੋਜੈਕਟ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ `npm run lint` ਚਲਾਓ
- ਸਾਰੀਆਂ ਲਿੰਟਿੰਗ ਗਲਤੀਆਂ ਅਤੇ ਚੇਤਾਵਨੀਆਂ ਠੀਕ ਕਰੋ
2. **ਬਿਲਡ ਪੁਸ਼ਟੀਕਰਨ**:
2. **ਨਿਰਮਾਣ ਪ੍ਰਮਾਣਿਕਤਾ**:
- ਜੇ ਲਾਗੂ ਹੋਵੇ ਤਾਂ `npm run build` ਚਲਾਓ
- ਕੋਈ ਬਿਲਡ ਗਲਤੀ ਨਾ ਹੋਵੇ
- ਕੋਈ ਨਿਰਮਾਣ ਗਲਤੀਆਂ ਨਹੀਂ ਹੋਣ ਦਿਓ
3. **ਲਿੰਕ ਜਾਂਚ**:
- ਸਾਰੇ ਮਾਰਕਡਾਨ ਲਿੰਕ ਟੈਸਟ ਕਰੋ
- ਚਿੱਤਰਾਂ ਦੇ ਰਿਫਰੈਂਸਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰ
- ਸਾਰੇ ਮਾਰਕਡਾਨ ਲਿੰਕ ਟੈਸਟ ਕਰੋ
- ਚਿੱਤਰ ਰੇਫਰੰਸ ਕੰਮ ਕਰਦੇ ਹਨ ਜਾਂ ਨਹੀਂ ਵੇਖ
4. **ਸਮੱਗਰੀ ਸਮੀਖਿਆ**:
- ਵਿਰਾਮ ਅਤੇ ਵਿਅਾਕਰਣ ਲਈ ਪ੍ਰੂਫਰੀਡ ਕਰੋ
- ਕੋਡ ਉਦਾਹਰਨਾਂ ਦੀ ਸ਼ੁੱਧਤਾ ਅਤੇ ਸਿੱਖਿਆਤਮਕਤਾ ਨਿਸ਼ਚਿਤ ਕਰੋ
- ਅਨੁਵਾਦਾਂ ਦੀ ਮੂਲ ਮਤਲਬ ਦੀ ਸਹੀ ਪਾਲਣਾ ਜਾਚੋ
- ਵਿਆਕਰਨ ਅਤੇ ਸਪੈਲਿੰਗ ਲਈ ਪ੍ਰੂਫਰੀਡ ਕਰੋ
- ਕੋਡ ਉਦਾਹਰਨ ਸਹੀ ਅਤੇ ਸਿੱਖਣਯੋਗ ਹੋਣ ਯਕੀਨੀ ਬਣਾਓ
- ਅਨੁਵਾਦ ਮੂਲ ਅਰਥ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦੇ ਹਨ
### ਯੋਗਦਾਨ ਦੀਆਂ ਲੋੜਾਂ
### Contribution Requirements
- Microsoft CLA ਨਾਲ ਸਹਿਮਤੀ (ਪਹਿਲੇ PR ਤੇ ਆਟੋਮੇਟਿਕ ਚੈਕ)
- Microsoft CLA ਨਾਲ ਸਹਿਮਤੀ ਜਤਾਓ (ਪਹਿਲੀ PR 'ਤੇ ਸਵੈਚਾਲਿਤ ਜਾਂਚ)
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) ਦੀ ਪਾਲਣਾ ਕਰੋ
- ਵਿਸਤ੍ਰਿਤ ਨਿਰਦੇਸ਼ਾਂ ਲਈ [CONTRIBUTING.md](./CONTRIBUTING.md) ਵੇਖੋ
- ਜੇ ਲਗੂ ਹੋਵੇ ਤਾਂ PR ਵਿਚ ਇਸ਼ੂ ਨੰਬਰ ਦਰਜ ਕਰੋ
- ਵਿਸਥਾਰ ਲਈ [CONTRIBUTING.md](./CONTRIBUTING.md) ਵੇਖੋ
- ਜੇ ਲੋੜ ਹੋਵੇ ਤਾਂ PR ਵੇਰਣ ਵਿੱਚ ਇਸ਼ੂ ਨੰਬਰ ਉਲਲੇਖ ਕਰੋ
### ਸਮੀਖਿਆ ਪ੍ਰਕਿਰਿਆ
### Review Process
- PR ਨੂੰ ਮੈਨਟੇਨਰ ਅਤੇ ਸਮੁਦਾਇ ਵੱਲੋਂ ਸਮੀਖਿਆ ਕੀਤਾ ਜਾਂਦਾ ਹੈ
- ਸਿੱਖਿਆਤਮਕ ਸਪਸ਼ਟਤਾ ਨੂੰ ਪ੍ਰਾਥਮਿਕਤਾ
- ਕੋਡ ਉਦਾਹਰਨ ਇਸ ਸਮੇਂ ਦੀਆਂ ਵਧੀਆਂ ਅਮਲਾਂ ਦੀ ਪਾਲਣਾ ਕਰਨ
- ਅਨੁਵਾਦਾਂ ਨੂੰ ਸਹੀ ਤੇ ਸੱਭਿਆਚਾਰਕ ਤੌਰ 'ਤੇ ਢੁਕਵੇਂ ਹੋਣ ਲਈ ਸਮੀਖਿਆ
- PR maintainers ਅਤੇ ਕਮਿਊਨਿਟੀ ਵੱਲੋਂ ਸਮੀਖਿਆ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ
- ਸਿੱਖਣਯੋਗਤਾ ਨੂੰ ਪ੍ਰਾਥਮਿਕਤਾ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ
- ਕੋਡ ਉਦਾਹਰਨ ਮੌਜੂਦਾ ਸਰਵੋਤਮ ਅਭਿਆਸਾਂ ਨੂੰ ਫਾਲੋ ਕਰਦੇ ਹੋਣ
- ਅਨੁਵਾਦ ਸਹੀਅਤ ਅਤੇ ਸਾਂਸਕ੍ਰਿਤਿਕ ਅਨੁਕੂਲਤਾ ਲਈ ਸਮੀਖਿਆ ਕੀਤੇ ਜਾਂਦੇ ਹਨ
## ਅਨੁਵਾਦ ਸਿਸਟਮ
## Translation System
### ਆਟੋਮੇਟਿਕ ਅਨੁਵਾਦ
### Automated Translation
- ਗਿਟਹਬ ਐਕਸ਼ਨਾਂ ਤੇ co-op-translator ਵਰਕਫਲੋ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ
- 50+ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਆਟੋਮੈਟਿਕ ਅਨੁਵਾਦ ਕਰਦਾ ਹੈ
- ਮੂਲ ਫਾਇਲਾਂ ਮੁੱਖ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਹਨ
- ਅਨੁਵਾਦਿਤ ਫਾਇਲਾਂ `translations/{language-code}/` ਵਿੱਚ
- GitHub Actions ਵਿੱਚ co-op-translator ਵਰਕਫਲੋ ਵਰਤਦਾ ਹੈ
- 50+ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦ ਕਰਦਾ ਹੈ
- ਮੁੱਖ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਸੋਰਸ ਫਾਈਲਾਂ
- `translations/{language-code}/` ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਅਨੁਵਾਦਿਤ ਫਾਈਲਾਂ
### ਮੈਨੁਅਲ ਅਨੁਵਾਦ ਸੁਧਾਰ ਸ਼ਾਮਲ ਕਰਨਾ
### Adding Manual Translation Improvements
1. `translations/{language-code}/` ਵਿੱਚ ਫਾਲ ਲੱਭੋ
2. ਬਣਤਰ ਨੁਕਸਾਨ ਨਾ ਪੁੱਜਾਉਂਦਿਆਂ ਸੁਧਾਰ ਕਰੋ
3. ਕੋਡ ਉਦਾਹਰਨ ਸਹੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਨ ਯੋਗ ਰੱਖੋ
4. ਸੀਮਤ ਕਵਿਜ਼ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰੋ
1. `translations/{language-code}/` ਵਿੱਚ ਫਾਲ ਲੱਭੋ
2. ਢਾਂਚਾ ਬਰਕਰਾਰ ਰੱਖਦਿਆਂ ਸੁਧਾਰ ਕਰੋ
3. ਕੋਡ ਉਦਾਹਰਨ ਕਾਰਗਰ ਰਹਿਣ ਇਹ ਯਕੀਨੀ ਬਣਾਓ
4. ਸਥਾਨਕਕ੍ਰਿਤ ਕੁਈਜ਼ ਸਮੱਗਰੀ ਟੈਸਟ ਕਰੋ
### ਅਨੁਵਾਦ ਮੈਟਾਡੇਟਾ
### Translation Metadata
ਅਨੁਵਾਦਿਤ ਫਾਲਾਂ ਵਿੱਚ ਮੈਟਾਡੇਟਾ ਹੈਡਰ ਸ਼ਾਮਿਲ ਹੁੰਦਾ ਹੈ:
ਅਨੁਵਾਦਿਤ ਫਾਲਾਂ ਵਿੱਚ ਮੈਟਾਡੇਟਾ ਹੈਡਰ ਹੁੰਦਾ ਹੈ:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## ਡੀਬੱਗਿੰਗ ਅਤੇ ਸਮੱਸਿਆ ਨਿਵਾਰਣ
## Debugging and Troubleshooting
### ਆਮ ਸਮੱਸਿਆਵਾਂ
### Common Issues
**ਕਵਿਜ਼ ਐਪ ਸ਼ੁਰੂ ਨਹੀਂ ਹੁੰਦੀ**:
- Node.js ਦਾ ਵਰਜਨ (v14+ ਸੁਝਾਇਆ ਗਿਆ) ਜਾਂਚੋ
- `node_modules` ਅਤੇ `package-lock.json` ਨੂੰ ਹਟਾਓ, ਫੇ`npm install` ਚਲਾਓ
- ਪੋਰਟ ਟਕਰਾ ਦੀ ਜਾਂਚ ਕਰੋ (ਡਿਫਾਲਟ: Vite 5173 ਪੋਰਟ ਵਰਤਦਾ ਹੈ)
**Quiz app fail to start**:
- Node.js ਦਾ ਵਰਜਨ ਜਾਂਚੋ (v14+ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ)
- `node_modules` ਅਤੇ `package-lock.json` ਮਿਟਾਓ, ਫਿ`npm install` ਚਲਾਓ
- ਪੋਰਟ ਟਕਰਾ ਦੀ ਜਾਂਚ ਕਰੋ (ਡਿਫਾਲਟ: Vite ਪੋਰਟ 5173 ਵਰਤਦਾ ਹੈ)
**API ਸਰਵਰ ਸ਼ੁਰੂ ਨਹੀਂ ਹੁੰਦਾ**:
- Node.js ਵਰਜਨ ਘੱਟੋ-ਘੱਟ node >=10 ਜਾਂਚੋ
- ਪੋਰਟ ਜੇ ਪਹਿਲਾਂ ਤੋਂ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ ਜਾਂ ਨਹੀਂ ਦੇਖ
- ਸਾਰੇ ਡੀਪੈਂਡੇੰਸੀਜ਼ `npm install` ਨਾਲ ਲਾਇਆ ਜਾਣ ਝਾਂਚ ਕਰੋ
**API server won't start**:
- Node.js ਦਾ ਵਰਜਨ ਘੱਟੋ-ਘੱਟ (node >=10) ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ
- ਪੋਰਟ ਪਹਿਲਾਂ ਤੋਂ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ ਜਾਂ ਨਹੀਂ ਚੈੱਕ ਕਰ
- ਸਾਰੀਆਂ ਡਿਪੈਂਡੈਂਸੀਜ਼ ਨੂੰ `npm install` ਨਾਲ ਇੰਸਟਾਲ ਕਰੋ
**ਬ੍ਰਾਊਜ਼ਰ ਐਕਸਟੈਂਸ਼ਨ ਲੋਡ ਨਹੀਂ ਹੁੰਦੀ**:
- manifest.json ਸਹੀ ਫਾਰਮੈਟ ਵਿੱਚ ਹੈ ਜਾਂ ਨਹੀਂ ਵੇਖ
- ਬ੍ਰਾਊਜ਼ਰ ਕਨਸੋਲ ਵਿੱਚ ਗਲਤੀਆਂ ਦੀ ਜਾਂਚ ਕਰ
- ਬ੍ਰਾਊਜ਼ਰ ਦੀਆਂ ਨਿਰਦਿਸ਼ਟ ਐਕਸਟੈਂਸ਼ਨ ਇੰਸਟਾਲੇਸ਼ਨ ਹਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ
**Browser extension won't load**:
- manifest.json ਦੀ ਸਹੀ ਜ਼ਾਂਚ ਕਰ
- ਬ੍ਰਾਊਜ਼ਰ ਕਨਸੋਲ ਵਿੱਚ ਗਲਤੀਆਂ ਵੇਖ
- ਬ੍ਰਾਊਜ਼ਰ ਵਿਸ਼ੇਸ਼ ਐਕਸਟੈਂਸ਼ਨ ਇੰਸਟਾਲੇਸ਼ਨ ਨਿਰਦੇਸ਼ਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ
**ਪਾਇਥਨ ਚੈਟ ਪ੍ਰੋਜੈਕਟ ਸਮੱਸਿਆਵਾਂ**:
- OpenAI ਪੈਕੇਜ ਲਗਾਇਆ ਹੋਵੇ: `pip install openai`
- GITHUB_TOKEN ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ ਸੈੱਟ ਹੋਵੇ
- GitHub ਮਾਡਲਾਂ ਦੀ ਪਹੁੰਚ ਅਧਿਕਾਰਾਂ ਦੀ ਜਾਂਚ ਕਰ
**Python chat project issues**:
- OpenAI ਪੈਕੇਜ ਇੰਸਟਾਲ ਕਰੋ: `pip install openai`
- GITHUB_TOKEN ਵਾਤਾਵਰਣ ਚਰ ਦਾ ਸੈੱਟ ਹੋਣਾ ਜਾਂਚੋ
- GitHub Models ਦੀ ਪ੍ਰਾਪਤੀ ਅਧਿਕਾਰ ਸਹੀ ਹਨ ਜਾਂ ਨਹੀਂ ਵੇਖ
**Docsify ਡੌਕਸ ਸੇਵਾ ਨਹੀਂ ਕਰ ਰਹੇ**:
- docsify-cli ਗਲੋਬਲ ਤੌਰ 'ਤੇ ਇੰਸਟਾਲ ਕਰੋ: `npm install -g docsify-cli`
- ਰੀਪੋਜ਼ਟਰੀ ਰੂਟ ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਚਲਾਓ
- ਜਾਂਚ ਕਰੋ ਕਿ `docs/_sidebar.md` ਮੌਜੂਦ ਹੈ
**Docsify not serving docs**:
- docsify-cli ਗਲੋਬਲ ਇੰਸਟਾਲ ਕਰੋ: `npm install -g docsify-cli`
- ਗ੍ਰਹਿ ਮੁੱਖ ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਚਲਾਓ
- ਯਕੀਨ ਬਨਾਓ ਕਿ `docs/_sidebar.md` ਮੌਜੂਦ ਹੈ
### ਵਿਕਾਸ ਵਾਤਾਵਰਣ ਸੁਝਾਅ
### Development Environment Tips
- HTML ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ VS ਕੋਡ ਵਿੱਚ Live Server ਐਕਸਟੈਂਸ਼ਨ ਵਰਤੋਂ
- ESLint ਅਤੇ Prettier ਐਕਸਟੈਂਸ਼ਨ ਇੰਸਟਾਲ ਕਰੋ
- ਜਾਵਾਸਕ੍ਰਿਪਟ ਡੀਬੱਗ ਲਈ ਬ੍ਰਾਊਜ਼ਰ DevTools ਉਪਯੋਗ ਕਰੋ
- Vue ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ Vue DevTools ਬ੍ਰਾਊਜ਼ਰ ਐਕਸਟੈਂਸ਼ਨ ਲਗਾਓ
- HTML ਪਰਿਯੋਜਨਾਵਾਂ ਲਈ VS Code Live Server ਐਕਸਟੈਂਸ਼ਨ ਵਰਤੋਂ
- ESLint ਅਤੇ Prettier ਐਕਸਟੈਂਸ਼ਨ ਕੁਨਫਿਗਰ ਕਰੋ ਸੰਗਤਫਾਰਮਟਿੰਗ ਲਈ
- JavaScript ਡਿਬੱਗਿੰਗ ਲਈ ਬ੍ਰਾਊਜ਼ਰ DevTools ਵਰਤੋਂ
- Vue ਪ੍ਰਾਜੈਕਟਾਂ ਲਈ Vue DevTools ਬ੍ਰਾਊਜ਼ਰ ਐਕਸਟੈਂਸ਼ਨ ਇੰਸਟਾਲ ਕਰੋ
### ਪ੍ਰਦਰਸ਼ਨ ਸਬੰਧੀ ਵਿਚਾਰ
### Performance Considerations
- 50+ ਭਾਸ਼ਾਵਾਂ ਦੇ ਅਨੁਵਾਦਾਂ ਨਾਲ ਫੁੱਲ ਕਲੋਨ ਵੱਡਾ ਹੋ ਜਾਂਦਾ ਹੈ
- ਕੇਵਲ ਸਮੱਗਰੀ 'ਤੇ ਕੰਮ ਕਰ ਰਹੇ ਹਾਂ ਤਾਂ ਸ਼ੈਲੋ ਕਲੋਨ ਕਰੋ: `git clone --depth 1`
- ਅੰਗਰੇਜ਼ੀ ਸਮੱਗਰੀ 'ਤੇ ਕੰਮ ਦੌਰਾਨ ਅਨੁਵਾਦਾਂ ਨੂੰ ਖੋਜੋਂ ਤੋਂ ਬਾਹਰ ਰੱਖੋ
- ਪਹਿਲੀ ਵਾਰੀ npm install ਅਤੇ Vite build ਦੇ ਸਮੇਂ ਬਿਲਡ ਪ੍ਰਕਿਰਿਆ ਸੁਸਤ ਹੋ ਸਕਦੀ ਹੈ
- ਵੱਡੀ ਗਿਣਤੀ ਅਨੁਵਾਦਿਤ ਫਾਈਲਾਂ (50+ ਭਾਸ਼ਾਵਾਂ) ਨਾਲ ਪੂਰਨ ਕਲੋਨ ਵੱਡੇ ਹੁੰਦੇ ਹਨ
- ਸਿਰਫ ਸਮੱਗਰੀ 'ਤੇ ਕੰਮ ਕਰਨ ਲਈ shallow clone ਵਰਤੋਂ: `git clone --depth 1`
- ਅੰਗਰੇਜ਼ੀ ਸਮੱਗਰੀ ਤੇ ਕੰਮ ਦੌਰਾਨ ਅਨੁਵਾਦਾਂ ਨੂੰ ਖੋਜ ਤੋਂ ਬਾਹਰ ਰੱਖੋ
- ਪਹਿਲੀ ਵਾਰੀ ਨਿਰਮਾਣ ਪ੍ਰਕਿਰਿਆ ਧੀਮੀ ਹੋ ਸਕਦੀ ਹੈ (npm install, Vite build)
## ਸੁਰੱਖਿਆ ਵਿਚਾਰ
## Security Considerations
### ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ
### Environment Variables
- API ਕੀਆਂ ਕਦੇ ਵੀ ਰੀਪੋਜ਼ਟਰੀ ਵਿੱਚ ਸੰਰਕਸ਼ਿਤ ਨਾ ਕਰੋ
- `.env` ਫਾਇਲਾਂ ਵਰਤੋਂ (ਜੋ ਪਹਿਲਾਂ ਹੀ `.gitignore` ਵਿੱਚ ਹਨ)
- ਪ੍ਰੋਜੈਕਟ READMEਜ਼ ਵਿੱਚ ਲੋੜੀਂਦੇ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ ਬਿਆਨ ਕਰੋ
- API ਚਾਬੀਆਂ ਕਦੇ ਵੀ ਗ੍ਰਹਿ ਵਿੱਚ ਕਮਿਟ ਨਾ ਕਰੋ
- `.env` ਫਾਈਲਾਂ ਵਰਤੋਂ (ਜੇਹੜੀਆਂ `.gitignore` ਵਿੱਚ ਹਨ)
- ਪਰਿਯੋਜਨਾ README ਵਿੱਚ ਜਰੂਰੀ ਵਾਤਾਵਰਣ ਚਰ ਦਸਤਾਵੇਜ਼ਕਰਨ
### ਪਾਇਥਨ ਪ੍ਰੋਜੈਕਟ
### Python Projects
- ਵਰਚੁਅਲ ਵਾਤਾਵਰਣ ਵਰਤੋਂ: `python -m venv venv`
- ਡੀਪੈਂਡੇੰਸੀਜ਼ ਨੂੰ ਹਮੇਸ਼ਾ ਅਪਡੇਟ ਰੱਖੋ
- GitHub ਟੋਕਨ ਨੂੰ ਘੱਟੋ-ਘੱਟ ਲੋੜੀਂਦੇ ਅਧਿਕਾਰ ਦੇ ਨਾਲ ਰੱਖੋ
- ਡਿਪੈਂਡੈਂਸੀਜ਼ ਨੂੰ ਅੱਪਡੇਟ ਰੱਖੋ
- GitHub ਟੋਕਨ ਘੱਟੋ-ਘੱਟ ਅਧਿਕਾਰਾਂ ਵਾਲੇ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ
### GitHub ਮਾਡਲਾਂ ਪਹੁੰਚ
### GitHub Models Access
- GitHub ਮਾਡਲਾਂ ਲਈ ਨਿੱਜੀ ਪਹੁੰਚ ਟੋਕਨ (PAT) ਜ਼ਰੂਰੀ ਹਨ
- ਟੋਕਨਾਂ ਨੂੰ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ ਵਜੋਂ ਰੱਖੋ
- ਕਦੇ ਵੀ ਟੋਕਨਾਂ ਜਾਂ ਪਾਸਵਰਡ ਕਮਿੱਟ ਨਾ ਕਰੋ
- GitHub Models ਲਈ ਨਿੱਜੀ ਐਕਸੈਸ ਟੋਕਨ (PAT) ਲਾਜ਼ਮੀ
- ਟੋਕਨ ਵਾਤਾਵਰਣ ਚਰ ਵਜੋਂ ਸੁਰੱਖਿਅਤ ਕਰਨਾ
- ਕਦੇ ਵੀ ਟੋਕਨ ਜਾਂ ਸੰਜੋਗ ਕਮਿਟ ਨਾ ਕਰੋ
## ਵਾਧੂ ਨੋਟਸ
## Additional Notes
### ਲਕੜਾਂ ਦੀ ਟੀਮ
### Target Audience
- ਪੂਰੇ ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਡਿਵੈਲਪਮੈਂਟ ਲਈ
- ਨਵੇਂ ਵੀ ਸ਼ੁਰੂਆਤੀ ਵੈੱਬ ਵਿਕਾਸ ਵਿੱਚ
- ਵਿਦਿਆਰਥੀ ਅਤੇ ਖੁਦ ਸਿੱਖਣ ਵਾਲੇ
- ਵਿਰੋਧੀ ਕਲਾਸਰੂਮ ਵਿੱਚ ਕੋਰਸ ਵਰਤਣ ਵਾਲੇ ਅਧਿਆਪਕ
- ਸਮੱਗਰੀ ਸਹੂਲਤਦਾਇਕ ਅਤੇ ਹੌਲੀ ਹੌਲੀ ਸਿਪਲਾਈ ਕਰਨ ਵਾਲੀ ਹੈ
- ਅਧਿਆਪਕ ਜੋ ਕਲਾਸਰੂਮ ਵਿੱਚ ਪਾਠਕ੍ਰਮ ਵਰਤਦੇ ਹਨ
- ਸਮੱਗਰੀ ਪੁहुੰਚਯੋਗਤਾ ਅਤੇ ধੀਮੇ-ধੀਮੇ ਕੌਸ਼ਲ ਵਿਕਾਸ ਲਈ ਤਿਆਰ
### ਸਿੱਖਿਆਤਮਕ ਦਰਸ਼ਨ
### Educational Philosophy
- ਪ੍ਰੋਜੈਕਟ ਅਧਾਰਿਤ ਸਿੱਖਣ
- ਯਥਾਰਥ ਕਵਿਜ਼
- ਹੱਥੋਂ ਕੋਡਿੰਗ ਅਭਿਆਸ
- ਅਸਲੀ ਦੁਨੀਆ ਦੇ ਉਦਾਹਰਨ
- ਫਰੇਮਵਰਕ ਤੋਂ ਪਹਿਲਾਂ ਮੂਢਲੇ ਤੱਤਾਂ ਤੇ ਧਿਆਨ
- ਪ੍ਰਾਜੈਕਟ-ਅਧਾਰਿਤ ਸਿੱਖਣ ਦਾ ਅਫ਼ਰੀਕ
- ਅਕਸਰ ਸਿੱਖਿਆ ਜਾਂਚ (ਕੁਈਜ਼)
- ਅਮਲੀ ਕੋਡਿੰਗ ਅਭਿਆਸ
- ਅਸਲੀ ਦੁਨੀਆਂ ਦੀਆਂ ਉਦਾਹਰਨਾਂ
- ਫ੍ਰੇਮਵਰਕਾਂ ਤੋਂ ਪਹਿਲਾਂ ਬੁਨਿਆਦੀ ਧਿਆਨ
### ਰੀਪੋਜ਼ਟਰੀ ਦੇ ਸੰਭਾਲ
### Repository Maintenance
- ਸਰਗਰਮ ਸਿੱਖਣ ਅਤੇ ਯੋਗਦਾਨ ਦੇਣ ਵਾਲਿਆਂ ਦੀ ਕਮਿਊਨਿਟੀ
- ਨਿਰੀਖਣਯੋਗ ਤਰੀਕੇ ਨਾਲ ਡੀਪੈਂਡੇਂਸੀਜ਼ ਅਤੇ ਸਮੱਗਰੀ ਨੂੰ ਅਪਡੇਟ ਕਰਨਾ
- ਮੈਨਟੇਨਰਾਂ ਵੱਲੋਂ ਮੁੱਦੇ ਤੇ ਵਿਚਾਰ-ਵਟਾਂਦਰਾ ਬਰਕਰਾਰ
- GitHub ਐਕਸ਼ਨਾਂ ਰਾਹੀਂ ਅਨੁਵਾਦ ਆਟੋਮੇਟਿਕ ਅਪਡੇਟ
- ਸਿੱਖਣ ਵਾਲਿਆਂ ਅਤੇ ਯੋਗਦਾਨकर्तਿਆਂ ਦੀ ਸਰਗਰਮ ਕਮਿਊਨਿਟੀ
- ਡਿਪੈਂਡੈਂਸੀਜ਼ ਅਤੇ ਸਮੱਗਰੀ ਦੇ ਨਿਯਮਿਤ ਅੱਪਡੇਟ
- maintainers ਵੱਲੋਂ ਇਸ਼ੂ ਅਤੇ ਚਰਚਾਵਾਂ ਦੀ ਨਿਗਰਾਨੀ
- ਅਨੁਵਾਦ ਅਪਡੇਟ 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) ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ ਸਿਫ਼ਾਰਸ਼ੀ
- ਵਾਧੂ ਕੋਰਸ: ਜਨੇਰੇਟਿਵ AI, ਡਾਟਾ ਸਾਇੰਸ, ML, IoT ਕੋਰਸ
- ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) ਦੀ ਸਿਫਾਰਸ਼
- ਵਾਧੂ ਕੋਰਸ: ਜਨੇਰੇਟਿਵ AI, ਡਾਟਾ ਸਾਇੰਸ, ML, IoT ਪਾਠਕ੍ਰਮ ਉਪਲਬਧ
### ਖਾਸ ਪ੍ਰੋਜੈਕਟਾਂ ਨਾਲ ਕੰਮ
### Working with Specific Projects
ਿਸਤ੍ਰਿਤ ਹਦਾਇਤਾਂ ਲਈ ਹਰ ਪ੍ਰੋਜੈਕਟ ਦੀ 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 ਚੈਟ ਸਹਾਇਕ ਪ੍ਰਜੈਕਟ
ੱਖ-ਵੱਖ ਪਰਿਯੋਜਨਾਵਾਂ ਲਈ ਵਿਸਥਾਰ ਵਿੱਚ ਨਿਰਦੇਸ਼ਾਂ ਲਈ, 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 Structure
ਇਹ ਰੀਪੋਜ਼ਟਰੀ ਇੱਕ ਪਰੰਪਰਾਗਤ ਮੋਨੋਰੀਪੋ ਨਹੀਂ, ਪਰ ਇਸ ਵਿੱਚ ਕਈ ਸੁਤੰਤਰ ਪ੍ਰੋਜੈਕਟ ਸ਼ਾਮਿਲ ਹਨ:
- ਹਰ ਸਬਕ ਆਪਣੇ ਆਪ ਵਿੱਚ ਖ਼ਤਮ
- ਪ੍ਰੋਜੈਕਟ_DEPENDENCY_ਸ਼ੇਅਰ ਨਹੀਂ ਕਰਦੇ
- ਇਕੱਲੇ ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ ਕੰਮ ਕਰੋ ਬਿਨਾ ਹੋਰਾਂ 'ਤੇ ਅਸਰ ਪਾਇਏ
- ਪੂਰੇ ਕੋਰਸ-ਪਾਠ ਲਈ ਪੂਰੇ ਰੀਪੋਜ਼ਟਰੀ ਨੂੰ ਕਲੋਨ ਕਰੋ
ਇਹ ਰਵਾਇਤੀ ਮੋਨੋਰੇਪੋ ਨਹੀਂ ਹੈ, ਪਰ ਇਸ ਵਿੱਚ ਕਈ ਖੁਦਮੁਖਤਿਆਰ ਪਰਿਯੋਜਨਾ ਹਨ:
- ਹਰ ਇਕ ਪਾਠ ਖੁਦਮੁਖਤਿਆਰ ਹੈ
- ਪਰਿਯੋਜਨਾਵਾਂ ਸਾਂਝਾ ਡਿਪੈਂਡੈਂਸੀ ਨਹੀਂ ਕਰਦੀਆਂ
- ਇੱਕ-ਇਕ ਸਰਕਾਰੀ ਪ੍ਰੋਜੈਕਟਾਂ 'ਤੇ ਕੰਮ ਕਰੋ ਬਿਨਾਂ ਦੂਜਿਆਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤੇ
- ਪੂਰਾ ਪਾਠਕ੍ਰਮ ਅਨੁਭਵ ਲਈ ਪੂਰਾ ਗ੍ਰਹਿ ਕਲੋਨ ਕਰੋ
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ਜਾਣਕਾਰੀ ਸੂਚਨਾ**:
ਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਨਾਲ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਲਿਤ ਅਨੁਵਾਦ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਹੀਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਆਧਿਕਾਰਕ ਸੂਤਰ ਵਜੋਂ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਣ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ਾਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉਤਪੰਨ ਕਿਸੇ ਵੀ ਗਲਤਫਹਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।
**ਡਿਸਕਲੇਮਰ**:
ਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਨਾਲ ਅਨੁਵਾਦਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਵਿੱਚ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮਰੱਥਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਪ੍ਰਭਾਵਸ਼ালী ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਕ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਕਾਰਨ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਭੀ ਗਲਤਫਹਮੀ ਜਾਂ ਗਲਤ ਸਮਝ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T12:41:10+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T22:29:12+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "pt-BR"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T12:44:44+00:00",
"translation_date": "2026-03-27T22:32:42+00:00",
"source_file": "AGENTS.md",
"language_code": "pt-BR"
},

@ -1,12 +1,12 @@
# Introdução a Linguagens de Programação e Ferramentas Modernas para Desenvolvedores
# Introdução às Linguagens de Programação e Ferramentas Modernas para Desenvolvedores
Ei, futuro desenvolvedor! 👋 Posso te contar uma coisa que ainda me arrepia todos os dias? Você está prestes a descobrir que programar não é apenas sobre computadores é sobre ter superpoderes reais para transformar suas ideias mais loucas em realidade!
Olá, futuro desenvolvedor! 👋 Posso te contar algo que ainda me dá arrepios todos os dias? Você está prestes a descobrir que programar não é apenas sobre computadores é sobre ter superpoderes reais para trazer suas ideias mais loucas à vida!
Sabe aquele momento em que você está usando seu app favorito e tudo simplesmente funciona perfeitamente? Quando você toca em um botão e algo absolutamente mágico acontece que te faz pensar "uau, como eles FIZERAM isso?" Bem, alguém muito parecido com você provavelmente sentado na sua cafeteria favorita às 2 da manhã tomando o terceiro espresso escreveu o código que criou essa magia. E aqui vai algo que vai explodir sua mente: até o final desta aula, você não só vai entender como eles fizeram isso, mas vai estar morrendo de vontade de tentar você mesmo!
Sabe aquele momento em que você está usando seu app favorito e tudo simplesmente funciona perfeitamente? Quando você toca um botão e algo absolutamente mágico acontece que te faz pensar "uau, como eles FAZEM isso?" Bem, alguém exatamente como você provavelmente sentado no café favorito às 2 da manhã com o terceiro espresso escreveu o código que criou essa mágica. E aqui está o que vai te deixar de queixo caído: no final desta lição, você não só vai entender como eles fizeram isso, como vai estar doido para tentar você mesmo!
Olha, eu entendo perfeitamente se programação parecer intimidadora agora. Quando comecei, eu honestamente pensei que você precisava ser um gênio da matemática ou estar codando desde os cinco anos de idade. Mas aqui está o que mudou completamente minha perspectiva: programar é exatamente como aprender a ter conversas em uma nova língua. Você começa com "olá" e "obrigado", depois evolui para pedir um café, e antes que perceba, está tendo discussões filosóficas profundas! Só que, neste caso, você está conversando com computadores, e sinceramente? Eles são os interlocutores mais pacientes que você vai ter nunca julgam seus erros e estão sempre animados para tentar de novo!
Olha, eu entendo perfeitamente se programar parece intimidante agora. Quando comecei, eu achava que precisava ser algum tipo de gênio da matemática ou ter programado desde os cinco anos. Mas aqui está o que mudou totalmente minha perspectiva: programar é exatamente como aprender a ter conversas em um novo idioma. Você começa com "olá" e "obrigado," depois passa a pedir um café e, antes de perceber, está tendo discussões filosóficas profundas! Só que nesse caso, você está conversando com computadores, e sinceramente? Eles são os parceiros de conversa mais pacientes que você vai ter nunca julgam seus erros e estão sempre animados para tentar de novo!
Hoje, vamos explorar as ferramentas incríveis que tornam o desenvolvimento web moderno não só possível, mas seriamente viciante. Estou falando dos mesmos editores, navegadores e fluxos de trabalho que desenvolvedores da Netflix, Spotify e seu estúdio indie favorito usam todos os dias. E aqui está a parte que vai fazer você querer dançar de alegria: a maioria dessas ferramentas profissionais, padrão da indústria, é totalmente gratuita!
Hoje, vamos explorar as incríveis ferramentas que tornam o desenvolvimento web moderno não só possível, mas seriamente viciante. Estou falando dos mesmos editores, navegadores e fluxos de trabalho que desenvolvedores da Netflix, Spotify e seu estúdio indie favorito usam todo santo dia. E aqui vai a parte que vai te fazer dançar de alegria: a maioria dessas ferramentas profissionais, padrão da indústria, são totalmente gratuitas!
![Intro Programming](../../../../translated_images/pt-BR/webdev101-programming.d6e3f98e61ac4bff.webp)
> Sketchnote por [Tomomi Imura](https://twitter.com/girlie_mac)
@ -15,12 +15,12 @@ Hoje, vamos explorar as ferramentas incríveis que tornam o desenvolvimento web
journey
title Sua Jornada de Programação Hoje
section Descobrir
O que é Programação: 5: You
O Que é Programação: 5: You
Linguagens de Programação: 4: You
Visão Geral das Ferramentas: 5: You
section Explorar
Editores de Código: 4: You
Navegadores & DevTools: 5: You
Navegadores & Ferramentas de Dev: 5: You
Linha de Comando: 3: You
section Praticar
Detetive de Linguagem: 4: You
@ -29,56 +29,56 @@ journey
```
## Vamos Ver o Que Você Já Sabe!
Antes de pular para as coisas divertidas, estou curioso o que você já sabe sobre esse mundo da programação? E escuta, se ao olhar essas perguntas você está pensando "eu literalmente não faço ideia de nada disso," isso não é só ok, é perfeito! Isso significa que você está no lugar exato. Pense neste quiz como um alongamento antes do treino estamos apenas aquecendo esses músculos do cérebro!
Antes de mergulharmos nas coisas divertidas, eu estou curioso o que você já sabe sobre esse mundo da programação? E olha, se você está vendo essas perguntas pensando "eu literalmente não faço ideia de nada disso," isso não é só ok, é perfeito! Isso significa que você está exatamente no lugar certo. Pense neste quiz como um alongamento antes do treino estamos apenas aquecendo esses músculos cerebrais!
[Faça o quiz pré-aula](https://ff-quizzes.netlify.app/web/)
## A Aventura Que Vamos Fazer Juntos
Ok, estou realmente ansioso com o que vamos explorar hoje! Sério, queria poder ver sua cara quando alguns desses conceitos fizerem sentido. Aqui está a jornada incrível que vamos fazer juntos:
Ok, eu estou genuinamente empolgado com o que vamos explorar hoje! Sério, eu queria poder ver sua cara quando alguns desses conceitos se encaixarem. Aqui está a incrível jornada que vamos fazer juntos:
- **O que programação realmente é (e por que é a coisa mais legal do mundo!)** Vamos descobrir como código é literalmente a mágica invisível que faz tudo ao seu redor funcionar, desde aquele despertador que de alguma forma sabe que é segunda-feira de manhã até o algoritmo que cria suas recomendações perfeitas na Netflix
- **Linguagens de programação e suas personalidades incríveis** Imagine chegar numa festa onde cada pessoa tem superpoderes completamente diferentes e jeitos únicos de resolver problemas. É assim que é o mundo das linguagens de programação, e você vai amar conhecê-las!
- **Os blocos fundamentais que fazem a mágica digital acontecer** Pense neles como o kit LEGO criativo definitivo. Depois que você entender como essas peças se encaixam, vai perceber que pode literalmente construir qualquer coisa que sua imaginação sonhar
- **Ferramentas profissionais que vão fazer você sentir que ganhou uma varinha de mágico** Não estou exagerando essas ferramentas vão mesmo fazer você se sentir com superpoderes, e o melhor? São as mesmas que os profissionais usam!
- **O que realmente é programação (e por que é a coisa mais legal de todas!)** Vamos descobrir como o código é literalmente a magia invisível que move tudo ao seu redor, desde aquele despertador que de alguma forma sabe que é segunda de manhã até o algoritmo que cria suas recomendações perfeitas na Netflix
- **Linguagens de programação e suas personalidades incríveis** Imagine entrar em uma festa onde cada pessoa tem superpoderes completamente diferentes e formas distintas de resolver problemas. É assim que é o mundo das linguagens de programação, e você vai adorar conhecê-las!
- **Os blocos fundamentais que fazem a mágica digital acontecer** Pense nisso como o conjunto de LEGO criativo definitivo. Quando você entender como essas peças se encaixam, vai perceber que pode literalmente construir qualquer coisa que sua imaginação imaginar
- **Ferramentas profissionais que vão fazer você se sentir como se tivesse acabado de receber uma varinha de mago** Não estou sendo dramático essas ferramentas vão realmente te fazer sentir que você tem superpoderes, e a melhor parte? São as mesmas que os profissionais usam!
> 💡 **Aqui vai o segredo**: Não pense nem em tentar memorizar tudo hoje! Agora, eu só quero que você sinta aquela faísca de empolgação sobre o que é possível. Os detalhes vão fixar naturalmente à medida que praticarmos juntos é assim que o aprendizado de verdade acontece!
> 💡 **Aqui está o lance**: Nem pense em tentar decorar tudo hoje! Agora, eu só quero que você sinta aquela faísca de empolgação sobre o que é possível. Os detalhes vão colar naturalmente enquanto praticamos juntos é assim que a aprendizagem de verdade acontece!
> Você pode fazer esta aula no [Microsoft Learn](https://learn.microsoft.com/en-us/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
> Você pode fazer esta lição no [Microsoft Learn](https://learn.microsoft.com/en-us/learn/modules/web-development-101/introduction-programming/?WT.mc_id=academic-77807-sagibbon)!
## Então, O Que Realmente *É* Programação?
## Então, O Que *É* Programação Exatamente?
Certo, vamos encarar a pergunta de um milhão de dólares: o que é programação, afinal?
Certo, vamos encarar a pergunta de um milhão de dólares: o que é programação, realmente?
Vou te contar uma história que mudou completamente a maneira como eu penso sobre isso. Semana passada, tentei explicar para minha mãe como usar o controle remoto inteligente da nossa nova TV. Me peguei dizendo coisas tipo "Aperte o botão vermelho, mas não o botão vermelho grande, o botão vermelho pequeno do lado esquerdo... não, o seu outro lado esquerdo... ok, agora segure por dois segundos, não um, não três..." Soa familiar? 😅
Vou contar uma história que mudou totalmente minha forma de pensar sobre isso. Semana passada, eu estava tentando explicar para minha mãe como usar o controle remoto da nossa nova smart TV. Me peguei falando coisas como "aperte o botão vermelho, mas não o botão vermelho grande, o botão vermelho pequeno à esquerda... não, seu outro lado esquerdo... ok, agora segure por dois segundos, não um, não três..." Te soa familiar? 😅
Isso é programação! É a arte de dar instruções incrivelmente detalhadas, passo a passo, para algo muito poderoso, mas que precisa que tudo seja explicado perfeitamente. Só que, em vez de explicar pra sua mãe (que pode perguntar "qual botão vermelho?!"), você está explicando para um computador (que faz exatamente o que você diz, mesmo que o que você disse não seja exatamente o que você quis dizer).
Isso é programação! É a arte de dar instruções incrivelmente detalhadas, passo a passo, para algo que é muito poderoso mas precisa que tudo seja explicado perfeitamente. Só que, em vez de explicar para sua mãe (que pode perguntar "qual botão vermelho?!"), você está explicando para um computador (que simplesmente faz exatamente o que você disse, mesmo que não seja bem o que você quis dizer).
O que me surpreendeu quando aprendi isso: computadores, na verdade, são bastante simples em seu núcleo. Eles só entendem duas coisas 1 e 0, que basicamente significam "sim" e "não" ou "ligado" e "desligado". Só isso! Mas aqui é onde fica mágico não precisamos falar em 1s e 0s como se estivéssemos na Matrix. É aí que entram as **linguagens de programação**. Elas são como ter o melhor tradutor do mundo, que pega seus pensamentos humanos perfeitamente normais e os converte para a linguagem do computador.
Aqui está o que me deixou maravilhado quando aprendi isso pela primeira vez: os computadores são na verdade bem simples na sua essência. Eles literalmente só entendem duas coisas 1 e 0, que é basicamente "sim" e "não" ou "ligado" e "desligado." É só isso! Mas aqui é que fica mágico não precisamos falar em 1s e 0s como se estivéssemos na Matrix. É aí que as **linguagens de programação** entram em cena para ajudar. Elas são como ter o melhor tradutor do mundo que pega seus pensamentos normais de humano e converte para a linguagem do computador.
E aqui está o que ainda me arrepia todas as manhãs quando acordo: literalmente *tudo* digital na sua vida começou com alguém como você, provavelmente de pijama, com uma xícara de café, digitando código no laptop. Aquele filtro do Instagram que te deixa impecável? Alguém codificou isso. A recomendação que te levou à sua música nova favorita? Um desenvolvedor criou aquele algoritmo. O app que ajuda você a dividir a conta do jantar com os amigos? Sim, alguém pensou "isso é chato, aposto que posso consertar isso" e então... fez!
E aqui está o que ainda me dá arrepios toda manhã quando acordo: literalmente *tudo* digital na sua vida começou com alguém exatamente como você, provavelmente de pijama com uma xícara de café, digitando código no laptop. Aquele filtro do Instagram que te faz parecer impecável? Alguém programou isso. A recomendação que te levou à sua nova música favorita? Um desenvolvedor criou esse algoritmo. O app que ajuda a dividir a conta do jantar com amigos? Pois é, alguém pensou "isso é chato, aposto que posso resolver" e então... resolveu!
Quando você aprende a programar, não está só adquirindo uma nova habilidade está entrando para uma comunidade incrível de solucionadores de problemas que passam o dia pensando, "E se eu pudesse construir algo que deixasse o dia de alguém um pouco melhor?" Sério, existe coisa mais legal que isso?
Quando você aprende a programar, você não está só adquirindo uma nova habilidade você está entrando numa comunidade incrível de solucionadores de problemas que passam o dia pensando, "E se eu pudesse criar algo que faça o dia de alguém um pouco melhor?" Sério, tem coisa mais legal que isso?
**Caça ao Fato Curioso**: Aqui vai algo super legal para pesquisar quando tiver um tempinho livre quem você acha que foi o primeiro programador de computadores do mundo? Vou te dar uma dica: pode não ser quem você espera! A história dessa pessoa é absolutamente fascinante e mostra que programação sempre foi sobre criatividade, solucionar problemas e pensar fora da caixa.
**Caça ao Fato Curioso**: Aqui está algo super legal para pesquisar quando tiver um tempo livre quem você acha que foi o primeiro programador de computador do mundo? Vou te dar uma dica: pode não ser quem você está esperando! A história dessa pessoa é absolutamente fascinante e mostra que programação sempre foi sobre criatividade e pensar fora da caixa.
### 🧠 **Hora do Check-in: Como Você Está Se Sentindo?**
**Reserve um momento para refletir:**
- A ideia de "dar instruções a computadores" faz sentido para você agora?
- A ideia de "dar instruções para computadores" faz sentido para você agora?
- Você consegue pensar em uma tarefa diária que gostaria de automatizar com programação?
- Quais perguntas estão surgindo na sua cabeça sobre essa coisa toda de programação?
> **Lembre-se**: É totalmente normal se alguns conceitos parecerem confusos agora. Aprender programação é como aprender uma nova língua leva tempo para seu cérebro criar essas conexões neurais. Você está indo muito bem!
> **Lembre-se**: É totalmente normal se alguns conceitos estiverem confusos agora. Aprender programação é como aprender um novo idioma seu cérebro precisa de tempo para criar essas conexões neurais. Você está indo super bem!
## Linguagens de Programação São Como Diferentes Sabores de Magia
Ok, isso vai parecer estranho, mas fique comigo linguagens de programação são muito parecidas com diferentes estilos de música. Pense nisso: você tem jazz, que é suave e improvisado; rock, que é poderoso e direto; clássico, elegante e estruturado; e hip-hop, criativo e expressivo. Cada estilo tem sua vibe, sua comunidade de fãs apaixonados, e cada um é perfeito para diferentes humores e ocasiões.
Ok, isso vai parecer estranho, mas me acompanha linguagens de programação são muito parecidas com diferentes estilos musicais. Pense nisso: tem o jazz, que é suave e improvisado, o rock que é potente e direto, a música clássica que é elegante e estruturada e o hip-hop que é criativo e expressivo. Cada estilo tem seu próprio clima, sua comunidade de fãs apaixonados, e cada um é perfeito para diferentes humores e ocasiões.
Linguagens de programação funcionam exatamente assim! Você não usaria a mesma língua para criar um jogo mobile divertido e para processar massa enorme de dados climáticos, assim como você não tocaria death metal numa aula de yoga (bem, na maioria delas pelo menos! 😄).
Linguagens de programação funcionam exatamente assim! Você não usaria a mesma linguagem para criar um jogo móvel divertido que usaria para processar grandes quantidades de dados climáticos, assim como ninguém toca death metal numa aula de yoga (bem, na maioria das aulas de yoga, pelo menos! 😄).
Mas aqui está o que me impressiona toda vez que penso nisso: essas linguagens são como ter o intérprete mais paciente e brilhante do mundo sentado bem do seu lado. Você pode expressar suas ideias de um jeito que faça sentido para seu cérebro humano, e elas cuidam de todo o trabalho incrivelmente complexo de traduzir isso para os 1s e 0s que os computadores realmente falam. É como ter um amigo fluente em "criatividade humana" e "lógica computacional" e ele nunca se cansa, nunca precisa de pausas para café, e nunca te julga por perguntar a mesma coisa duas vezes!
Mas aqui está o que sempre me impressiona: essas linguagens são como ter o intérprete mais paciente e brilhante do mundo sentado bem ao seu lado. Você pode expressar suas ideias de um jeito que faz sentido para seu cérebro humano, e elas cuidam de todo o trabalho incrivelmente complexo de traduzir isso para os 1s e 0s que os computadores realmente falam. É como ter um amigo perfeito, fluente tanto em "criatividade humana" quanto em "lógica de computador" e que nunca se cansa, nunca precisa fazer pausa para café e nunca te julga por repetir a mesma pergunta duas vezes!
### Linguagens de Programação Populares e Seus Usos
@ -87,18 +87,18 @@ mindmap
root((Linguagens de Programação))
Desenvolvimento Web
JavaScript
Mágica Frontend
Magia Frontend
Sites Interativos
TypeScript
JavaScript + Tipos
Apps Corporativos
Aplicativos Corporativos
Dados & IA
Python
Ciência de Dados
Aprendizado de Máquina
Automação
R
Estatística
Estatísticas
Pesquisa
Aplicativos Móveis
Java
@ -113,7 +113,7 @@ mindmap
Sistemas & Performance
C++
Jogos
Crítico para Performance
Performance Crítica
Rust
Segurança de Memória
Programação de Sistemas
@ -126,36 +126,36 @@ mindmap
| **JavaScript** | Desenvolvimento web, interfaces de usuário | Roda em navegadores e alimenta sites interativos |
| **Python** | Ciência de dados, automação, IA | Fácil de ler e aprender, bibliotecas poderosas |
| **Java** | Aplicações empresariais, apps Android | Independente de plataforma, robusto para sistemas grandes |
| **C#** | Aplicações Windows, desenvolvimento de jogos | Forte suporte do ecossistema Microsoft |
| **C#** | Aplicativos Windows, desenvolvimento de jogos | Forte suporte no ecossistema Microsoft |
| **Go** | Serviços em nuvem, sistemas backend | Rápido, simples, projetado para computação moderna |
### Linguagens de Alto e Baixo Nível
### Linguagens de Alto Nível vs. Baixo Nível
Ok, esse foi sinceramente o conceito que me deixou confuso quando comecei a aprender, então vou compartilhar a analogia que finalmente fez tudo fazer sentido pra mim e espero que ajude você também!
Ok, esse foi honestamente o conceito que me quebrou o cérebro quando comecei a aprender, então vou compartilhar a analogia que finalmente fez isso fazer sentido para mim e espero muito que ajude você também!
Imagine que você está visitando um país onde não fala o idioma e precisa desesperadamente achar o banheiro mais próximo (todos nós já passamos por isso, né? 😅):
Imagine que você está visitando um país onde não fala o idioma, e precisa desesperadamente encontrar o banheiro mais próximo (todos já passamos por isso, né? 😅):
- **Programação de baixo nível** é como aprender o dialeto local tão bem que você consegue conversar com a avó que vende frutas na esquina usando referências culturais, gírias locais e piadas internas que só quem cresceu lá entenderia. Super impressionante e muito eficiente... se você for fluente! Mas bem complicado quando só quer achar um banheiro.
- **Programação de baixo nível** é como aprender o dialeto local tão bem que você consegue conversar com a avó que vende frutas na esquina usando referências culturais, gírias locais e piadas internas que só quem cresceu lá entenderia. Super impressionante e extremamente eficiente... se você for fluente! Mas bem esmagador quando você só quer achar um banheiro.
- **Programação de alto nível** é como ter aquele amigo local incrível que simplesmente te entende. Você pode dizer "Preciso muito encontrar um banheiro" em inglês simples, e ele faz toda a tradução cultural e te dá as direções de um jeito que seu cérebro não local entende perfeitamente.
- **Programação de alto nível** é como ter aquele amigo local incrível que te entende. Você pode dizer "preciso muito achar um banheiro" no inglês simples, e ele cuida da tradução cultural e te dá a direção de um jeito que faça sentido para seu cérebro que não é local.
Em termos de programação:
- **Linguagens de baixo nível** (como Assembly ou C) deixam você falar com o hardware do computador em detalhes incrivelmente precisos, mas você precisa pensar como uma máquina, o que é... digamos que é uma mudança mental enorme!
- **Linguagens de alto nível** (como JavaScript, Python ou C#) deixam você pensar como um humano enquanto elas cuidam da linguagem da máquina nos bastidores. Além disso, essas linguagens têm comunidades super acolhedoras, cheias de gente que lembra como era ser iniciante e que realmente quer ajudar!
- **Linguagens de baixo nível** (como Assembly ou C) deixam você ter conversas incrivelmente detalhadas com o hardware real do computador, mas você precisa pensar como uma máquina, o que... bom, digamos que é uma mudança mental grande!
- **Linguagens de alto nível** (como JavaScript, Python ou C#) deixam você pensar como humano enquanto cuidam da linguagem máquina nos bastidores. Além disso, têm comunidades super acolhedoras cheias de pessoas que lembram como era ser novato e querem ajudar de verdade!
Adivinha por quais eu vou sugerir que você comece? 😉 Linguagens de alto nível são como rodinhas de treinamento que você nunca vai querer tirar porque deixam toda a experiência muito mais agradável!
Adivinha quais eu vou sugerir que você comece? 😉 Linguagens de alto nível são como rodinhas de apoio que você nunca quer tirar porque fazem a experiência toda muito mais prazerosa!
```mermaid
flowchart TB
A["👤 Pensamento Humano:<br/>'Quero calcular números de Fibonacci'"] --> B{Escolher Nível de Linguagem}
B -->|Alto Nível| C["🌟 JavaScript/Python<br/>Fácil de ler e escrever"]
B -->|Baixo Nível| D["⚙️ Assembly/C<br/>Controle direto do hardware"]
B -->|Nível Alto| C["🌟 JavaScript/Python<br/>Fácil de ler e escrever"]
B -->|Nível Baixo| D["⚙️ Assembly/C<br/>Controle direto do hardware"]
C --> E["📝 Escrever: fibonacci(10)"]
D --> F["📝 Escrever: mov r0,#00<br/>sub r0,r0,#01"]
E --> G["🤖 Entendimento do Computador:<br/>O tradutor lida com a complexidade"]
E --> G["🤖 Compreensão do Computador:<br/>Tradutor lida com a complexidade"]
F --> G
G --> H["💻 Mesmo Resultado:<br/>0, 1, 1, 2, 3, 5, 8, 13..."]
@ -166,16 +166,16 @@ flowchart TB
```
### Deixe-me Mostrar Por Que Linguagens de Alto Nível São Muito Mais Amigáveis
Certo, vou te mostrar algo que demonstra perfeitamente por que me apaixonei pelas linguagens de alto nível, mas antes preciso que me prometa uma coisa. Quando você ver esse primeiro exemplo de código, não entre em pânico! Ele é para parecer intimidador. Esse é exatamente o ponto!
Beleza, eu vou te mostrar algo que demonstra perfeitamente porque me apaixonei pelas linguagens de alto nível, mas primeiro preciso que você me prometa uma coisa. Quando você vir esse primeiro exemplo de código, não entre em pânico! Ele deve parecer intimidante. Esse é exatamente o ponto que quero mostrar!
Vamos ver a mesma tarefa escrita em dois estilos completamente diferentes. Ambas criam a chamada sequência de Fibonacci um padrão matemático lindo onde cada número é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8, 13... (Curiosidade: você encontra esse padrão literalmente em toda a natureza espirais de sementes de girassol, padrões de pinhas, até a forma como as galáxias se formam!)
Vamos olhar a mesma tarefa escrita em dois estilos completamente diferentes. Ambos criam a chamada sequência de Fibonacci é um padrão matemático lindo onde cada número é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8, 13... (Curiosidade: você encontra esse padrão literalmente em toda a natureza espirais de sementes de girassol, padrões em pinhas, até a formação de galáxias!)
Pronto para ver a diferença? Vamos lá!
**Linguagem de alto nível (JavaScript) Amigável para humanos:**
```javascript
// Passo 1: Configuração básica de Fibonacci
// Etapa 1: Configuração básica de Fibonacci
const fibonacciCount = 10;
let current = 0;
let next = 1;
@ -183,11 +183,11 @@ let next = 1;
console.log('Fibonacci sequence:');
```
**Veja o que esse código faz:**
- **Declara** uma constante para especificar quantos números da sequência Fibonacci queremos gerar
- **Inicializa** duas variáveis para acompanhar o número atual e o próximo na sequência
- **Configura** os valores iniciais (0 e 1) que definem o padrão de Fibonacci
- **Exibe** uma mensagem de cabeçalho para identificar nossa saída
**O que este código faz:**
- **Declara** uma constante para especificar quantos números de Fibonacci queremos gerar
- **Inicializa** duas variáveis para rastrear o número atual e o próximo na sequência
- **Define** os valores iniciais (0 e 1) que definem o padrão Fibonacci
- **Mostra** uma mensagem de cabeçalho para identificar nossa saída
```javascript
// Passo 2: Gere a sequência com um loop
@ -201,11 +201,11 @@ for (let i = 0; i < fibonacciCount; i++) {
}
```
**Entendendo o que acontece aqui:**
**Quebrando o que acontece aqui:**
- **Percorre** cada posição da sequência usando um loop `for`
- **Mostra** cada número com sua posição usando formatação de template literals
- **Calcula** o próximo número Fibonacci somando os valores atual e próximo
- **Atualiza** as variáveis de acompanhamento para passar à próxima iteração
- **Exibe** cada número com sua posição usando formatação de template literal
- **Calcula** o próximo número de Fibonacci somando os valores atual e próximo
- **Atualiza** as variáveis para passar à próxima iteração
```javascript
// Passo 3: Abordagem funcional moderna
@ -226,11 +226,11 @@ console.log(fibSequence);
**No código acima, nós:**
- **Criamos** uma função reutilizável usando a sintaxe moderna de arrow function
- **Construímos** um array para armazenar a sequência completa em vez de mostrar número por número
- **Construímos** um array para armazenar toda a sequência em vez de mostrar um a um
- **Usamos** indexação de array para calcular cada novo número a partir dos anteriores
- **Retornamos** a sequência completa para uso flexível em outras partes do programa
**Linguagem de baixo nível (Assembly ARM) Amigável para computadores:**
**Linguagem de baixo nível (ARM Assembly) Amigável para computadores:**
```assembly
area ascen,code,readonly
@ -257,28 +257,28 @@ back add r0,r1
end
```
Repare como a versão em JavaScript parece quase uma instrução em inglês, enquanto a versão em Assembly usa comandos criptografados que controlam diretamente o processador do computador. Ambos realizam exatamente a mesma tarefa, mas a linguagem de alto nível é muito mais fácil para humanos entenderem, escreverem e manterem.
Note como a versão em JavaScript lê quase como instruções em inglês, enquanto a versão Assembly usa comandos crípticos que controlam diretamente o processador do computador. Ambas realizam exatamente a mesma tarefa, mas a linguagem de alto nível é muito mais fácil para humanos entenderem, escreverem e manterem.
**Diferenças chave que você vai notar:**
- **Legibilidade**: JavaScript usa nomes descritivos como `fibonacciCount`, enquanto Assembly usa rótulos criptografados como `r0`, `r1`
- **Comentários**: Linguagens de alto nível incentivam comentários explicativos que tornam o código auto-documentado
- **Estrutura**: O fluxo lógico do JavaScript corresponde a como os humanos pensam sobre problemas passo a passo
- **Manutenção**: Atualizar a versão JavaScript para diferentes requisitos é direto e claro
**Principais diferenças que você vai notar:**
- **Legibilidade**: JavaScript usa nomes descritivos como `fibonacciCount` enquanto Assembly usa rótulos criptografados como `r0`, `r1`
- **Comentários**: Linguagens de alto nível incentivam comentários explicativos que tornam o código autoexplicativo
- **Estrutura**: O fluxo lógico do JavaScript corresponde à forma como os humanos pensam passo a passo sobre problemas
- **Manutenção**: Atualizar a versão JavaScript para diferentes requisitos é simples e claro
**Sobre a sequência de Fibonacci**: Este padrão de números absolutamente lindo (onde cada número é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8...) aparece literalmente *em todo lugar* na natureza! Você o encontrará nas espirais dos girassóis, nos padrões das pinhas, na forma como as conchas de náutilos se curvam e até mesmo no crescimento dos galhos das árvores. É realmente impressionante como a matemática e o código podem nos ajudar a entender e recriar os padrões que a natureza usa para criar beleza!
**Sobre a sequência de Fibonacci**: Esse padrão numérico absolutamente lindo (onde cada número é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8...) aparece literalmente *em todo lugar* na natureza! Você o encontrará nas espirais dos girassóis, nos padrões dos pinhões, na forma como as conchas de náutilo se curvam e até em como os galhos das árvores crescem. É realmente impressionante como a matemática e o código podem nos ajudar a entender e recriar os padrões que a natureza usa para criar beleza!
## Os Blocos de Construção Que Fazem a Magia Acontecer
Certo, agora que você viu como as linguagens de programação funcionam na prática, vamos dividir as peças fundamentais que compõem literalmente todo programa já escrito. Pense nelas como os ingredientes essenciais da sua receita favorita uma vez que você entender o que cada um faz, poderá ler e escrever código em praticamente qualquer linguagem!
Beleza, agora que você viu como as linguagens de programação funcionam na prática, vamos analisar as peças fundamentais que compõem literalmente todo programa já escrito. Pense nelas como os ingredientes essenciais da sua receita favorita uma vez que você entender o que cada um faz, poderá ler e escrever código em praticamente qualquer linguagem!
Isso é meio que aprender a gramática da programação. Lembra quando na escola você aprendeu sobre substantivos, verbos e como montar frases? Programação tem sua própria versão de gramática e, honestamente, é muito mais lógica e tolerante do que a gramática do inglês já foi! 😄
É meio que como aprender a gramática da programação. Lembra na escola quando você aprendeu sobre substantivos, verbos e como montar frases? A programação tem sua própria versão de gramática e, honestamente, é muito mais lógica e tolerante do que a gramática do inglês jamais foi! 😄
### Declarações: As Instruções Passo a Passo
### Instruções: As Orientações Passo a Passo
Vamos começar com **declarações** elas são como frases individuais em uma conversa com seu computador. Cada declaração diz ao computador para fazer uma coisa específica, tipo dar instruções: "Vire à esquerda aqui", "Pare no sinal vermelho", "Estacione naquele lugar."
Vamos começar com **instruções** elas são como sentenças individuais em uma conversa com seu computador. Cada instrução diz ao computador para fazer uma coisa específica, tipo dar uma direção: "Vire à esquerda aqui," "Pare no semáforo vermelho," "Estacione naquele lugar."
O que eu adoro nas declarações é o quão legíveis elas geralmente são. Veja só:
O que eu adoro nas instruções é o quão legíveis elas geralmente são. Veja só:
```javascript
// Declarações básicas que realizam ações únicas
@ -287,30 +287,30 @@ console.log("Hello, world!");
const sum = 5 + 3;
```
**Isto é o que este código faz:**
- **Declarar** uma variável constante para armazenar o nome de um usuário
- **Exibir** uma mensagem de saudação no console
- **Calcular** e armazenar o resultado de uma operação matemática
**Aqui está o que esse código faz:**
- **Declara** uma variável constante para armazenar o nome de um usuário
- **Exibe** uma mensagem de saudação no console
- **Calcula** e armazena o resultado de uma operação matemática
```javascript
// Declarações que interagem com páginas web
// Declarações que interagem com páginas da web
document.title = "My Awesome Website";
document.body.style.backgroundColor = "lightblue";
```
**Passo a passo, veja o que está acontecendo:**
- **Modificar** o título da página que aparece na aba do navegador
- **Alterar** a cor de fundo de todo o corpo da página
**Passo a passo, aqui está o que está acontecendo:**
- **Modifica** o título da página que aparece na aba do navegador
- **Muda** a cor de fundo de todo o corpo da página
### Variáveis: O Sistema de Memória do Seu Programa
Beleza, **variáveis** são honestamente um dos meus conceitos favoritos de ensinar porque são muito parecidas com coisas que você já usa todo dia!
Ok, **variáveis** são, honestamente, um dos meus conceitos favoritos para ensinar porque são muito parecidas com coisas que você já usa todo dia!
Pense na sua lista de contatos do telefone por um segundo. Você não memoriza o número de telefone de todo mundo ao invés disso, você salva "Mamãe", "Melhor Amigo" ou "Pizzaria que Entrega Até 2 da Manhã" e deixa o telefone lembrar os números reais. Variáveis funcionam exatamente da mesma forma! São como recipientes rotulados onde seu programa pode armazenar informações e recuperá-las depois usando um nome que realmente faz sentido.
Pense na sua lista de contatos do telefone por um segundo. Você não memoriza o número de todo mundo ao invés disso, salva "Mãe," "Melhor Amigo," ou "Pizzaria que Entrega Até 2 da Madrugada" e deixa seu telefone lembrar os números reais. Variáveis funcionam exatamente assim! São como recipientes rotulados onde seu programa pode armazenar informações e buscar depois usando um nome que realmente faça sentido.
Aqui está o que é realmente legal: as variáveis podem mudar conforme seu programa roda (daí o nome "variável" sacou?). Assim como você atualiza o contato da pizzaria quando descobre um lugar melhor, as variáveis podem ser atualizadas conforme seu programa aprende novas informações ou quando as situações mudam!
Aqui está o que é realmente legal: variáveis podem mudar enquanto seu programa roda (daí o nome "variável" percebe a intenção?). Assim como você pode atualizar aquele contato da pizzaria quando descobrir um lugar ainda melhor, variáveis podem ser atualizadas conforme seu programa aprende novas informações ou as situações mudam!
Deixe eu te mostrar como isso pode ser lindamente simples:
Deixe-me mostrar como isso pode ser maravilhosamente simples:
```javascript
// Passo 1: Criando variáveis básicas
@ -321,9 +321,9 @@ let isRaining = false;
```
**Entendendo esses conceitos:**
- **Armazenar** valores constantes em variáveis `const` (como o nome do site)
- **Usar** `let` para valores que podem mudar durante o programa
- **Atribuir** diferentes tipos de dados: strings (texto), números e booleanos (verdadeiro/falso)
- **Armazenar** valores fixos em variáveis `const` (como o nome do site)
- **Usar** `let` para valores que podem mudar ao longo do programa
- **Atribuir** diferentes tipos de dados: strings (texto), números e booleanos (true/false)
- **Escolher** nomes descritivos que expliquem o que cada variável contém
```javascript
@ -336,12 +336,12 @@ const weatherData = {
```
**No exemplo acima, nós:**
- **Criamos** um objeto para agrupar informações relacionadas ao clima
- **Organizamos** vários dados sob um nome de variável
- **Usamos** pares de chave-valor para rotular claramente cada informação
- **Criamos** um objeto para agrupar informações climáticas relacionadas
- **Organizamos** vários dados sob um mesmo nome de variável
- **Usamos** pares chave-valor para rotular cada informação claramente
```javascript
// Etapa 3: Usando e atualizando variáveis
// Passo 3: Usando e atualizando variáveis
console.log(`${siteName}: Today is ${currentWeather} and ${temperature}°F`);
console.log(`Wind speed: ${weatherData.windSpeed} mph`);
@ -352,8 +352,8 @@ temperature = 68;
**Vamos entender cada parte:**
- **Exibir** informações usando template literals com a sintaxe `${}`
- **Acessar** propriedades do objeto usando a notação de ponto (`weatherData.windSpeed`)
- **Atualizar** variáveis declaradas com `let` para refletir condições que mudam
- **Acessar** propriedades de objeto usando notação de ponto (`weatherData.windSpeed`)
- **Atualizar** variáveis declaradas com `let` para refletir condições mutáveis
- **Combinar** múltiplas variáveis para criar mensagens significativas
```javascript
@ -363,19 +363,19 @@ console.log(`${location} humidity: ${humidity}%`);
```
**O que você precisa saber:**
- **Extrair** propriedades específicas de objetos usando desestruturação
- **Criar** variáveis novas automaticamente com os mesmos nomes das chaves do objeto
- **Simplificar** o código evitando repetir a notação de ponto
- **Extrair** propriedades específicas de objetos usando atribuição por desestruturação
- **Criar** variáveis automaticamente com os mesmos nomes das chaves do objeto
- **Simplificar** código evitando notação em ponto repetitiva
### Fluxo de Controle: Ensinando Seu Programa a Pensar
Beleza, aqui é onde a programação fica absolutamente impressionante! **Fluxo de controle** é basicamente ensinar seu programa a tomar decisões inteligentes, exatamente como você faz todo dia sem nem pensar.
Beleza, aqui a programação fica absolutamente impressionante! **Fluxo de controle** é basicamente ensinar seu programa a tomar decisões inteligentes, exatamente como você faz todo dia sem nem pensar.
Imagine isso: hoje de manhã você provavelmente fez algo como "Se estiver chovendo, eu pego um guarda-chuva. Se estiver frio, eu visto um casaco. Se estiver atrasado, pulo o café da manhã e pego um café no caminho." Seu cérebro segue essa lógica if-then dezenas de vezes todos os dias!
Imagine só: hoje de manhã você provavelmente passou por algo tipo "Se estiver chovendo, pego o guarda-chuva. Se estiver frio, uso uma jaqueta. Se eu estiver atrasado, pulo o café da manhã e pego um café no caminho." Seu cérebro naturalmente segue essa lógica de se-então dezenas de vezes diariamente!
É isso que faz os programas parecerem inteligentes e vivos em vez de apenas seguirem um script chato e previsível. Eles podem realmente olhar a situação, avaliar o que está acontecendo e responder adequadamente. É como dar um cérebro para seu programa que pode se adaptar e fazer escolhas!
É isso que faz os programas parecerem inteligentes e vivos ao invés de apenas seguirem um roteiro chato e previsível. Eles realmente podem olhar uma situação, avaliar o que está acontecendo e reagir apropriadamente. É como dar ao seu programa um cérebro que pode se adaptar e fazer escolhas!
Quer ver como isso funciona lindamente? Deixe eu te mostrar:
Quer ver como isso funciona lindamente? Deixe-me mostrar:
```javascript
// Etapa 1: Lógica condicional básica
@ -389,10 +389,10 @@ if (userAge >= 18) {
}
```
**Este código faz o seguinte:**
- **Verifica** se a idade do usuário atende ao requisito para votar
- **Executa** blocos de código diferentes com base no resultado da condição
- **Calcula** e exibe quanto tempo falta para a elegibilidade ao voto caso seja menor de 18
**Aqui está o que esse código faz:**
- **Verifica** se a idade do usuário cumpre o requisito para votar
- **Executa** blocos de código diferentes baseado no resultado da condição
- **Calcula** e exibe quanto tempo falta para poder votar se for menor de 18
- **Fornece** feedback específico e útil para cada cenário
```javascript
@ -412,8 +412,8 @@ if (userAge >= 18 && hasPermission) {
**Analisando o que acontece aqui:**
- **Combina** múltiplas condições usando o operador `&&` (e)
- **Cria** uma hierarquia de condições usando `else if` para vários cenários
- **Trata** todos os casos possíveis com uma declaração `else` final
- **Oferece** feedback claro e prático para cada situação diferente
- **Trata** todos os casos possíveis com uma instrução final `else`
- **Fornece** respostas claras e acionáveis para cada situação diferente
```javascript
// Passo 3: Condicional concisa com operador ternário
@ -423,11 +423,11 @@ console.log(`Status: ${votingStatus}`);
**O que você precisa lembrar:**
- **Use** o operador ternário (`? :`) para condições simples com duas opções
- **Escreva** a condição primeiro, seguida de `?`, depois o resultado verdadeiro, em seguida `:`, e por fim o resultado falso
- **Aplique** esse padrão quando precisar atribuir valores conforme condições
- **Escreva** a condição primeiro, seguida de `?`, depois resultado verdadeiro, `:`, e resultado falso
- **Aplique** esse padrão para atribuir valores baseados em condições
```javascript
// Passo 4: Lidando com múltiplos casos específicos
// Etapa 4: Tratando múltiplos casos específicos
const dayOfWeek = "Tuesday";
switch (dayOfWeek) {
@ -449,21 +449,21 @@ switch (dayOfWeek) {
**Este código realiza o seguinte:**
- **Compara** o valor da variável com vários casos específicos
- **Agrupa** casos semelhantes (dias de semana vs. finais de semana)
- **Executa** o bloco de código apropriado quando encontra uma correspondência
- **Inclui** um caso `default` para lidar com valores inesperados
- **Agrupa** casos semelhantes (dias de semana vs. fim de semana)
- **Executa** o bloco de código apropriado quando encontra um caso correspondente
- **Inclui** um caso `default` para tratar valores inesperados
- **Usa** instruções `break` para evitar que o código continue para o próximo caso
> 💡 **Analogia no mundo real**: Pense no fluxo de controle como ter o GPS mais paciente do mundo te dando instruções. Ele pode dizer "Se houver trânsito na Rua Principal, pegue a rodovia. Se a construção bloquear a rodovia, tente o caminho cênico." Programas usam exatamente esse tipo de lógica condicional para responder de forma inteligente a diferentes situações e sempre oferecer a melhor experiência aos usuários.
> 💡 **Analogia do mundo real**: Pense no fluxo de controle como ter o GPS mais paciente do mundo te dando direções. Ele pode dizer "Se houver trânsito na Rua Principal, pegue a rodovia. Se a construção estiver bloqueando a rodovia, tente a rota cênica." Programas usam exatamente o mesmo tipo de lógica condicional para responder de forma inteligente a diferentes situações e sempre proporcionar a melhor experiência possível aos usuários.
### 🎯 **Verificação de Conceitos: Domínio dos Blocos de Construção**
### 🎯 **Verificação de Conceito: Domínio dos Blocos de Construção**
**Vamos ver como você está indo com os fundamentos:**
- Consegue explicar, com suas próprias palavras, a diferença entre uma variável e uma declaração?
- Pense em um cenário do mundo real onde você usaria uma decisão if-then (como no nosso exemplo de votação)
- Qual foi uma coisa sobre a lógica de programação que te surpreendeu?
**Vamos ver como você está se saindo nos conceitos básicos:**
- Você consegue explicar a diferença entre uma variável e uma instrução com suas próprias palavras?
- Pense em um cenário do mundo real onde você usaria uma decisão if-then (como nosso exemplo de voto)
- Qual foi uma coisa sobre a lógica da programação que te surpreendeu?
**Pequeno impulso de confiança:**
**Pequeno reforço de confiança:**
```mermaid
flowchart LR
A["📝 Declarações<br/>(Instruções)"] --> B["📦 Variáveis<br/>(Armazenamento)"] --> C["🔀 Fluxo de Controle<br/>(Decisões)"] --> D["🎉 Programa Funcionando!"]
@ -473,22 +473,22 @@ flowchart LR
style C fill:#2196f3
style D fill:#ff4081
```
**O que vem a seguir**: Vamos nos divertir muito mergulhando mais fundo nesses conceitos enquanto continuamos essa incrível jornada juntos! Por enquanto, foque em sentir essa empolgação sobre todas as possibilidades incríveis à sua frente. As habilidades e técnicas específicas vão surgir naturalmente conforme praticamos juntos prometo que vai ser muito mais divertido do que você imagina!
**O que vem a seguir**: Vamos nos divertir muito mergulhando mais fundo nesses conceitos enquanto continuamos essa incrível jornada juntos! Por agora, foque em sentir aquela empolgação com todas as possibilidades incríveis à sua frente. As habilidades e técnicas específicas vão se fixar naturalmente conforme praticarmos juntos prometo que isso vai ser muito mais divertido do que você imagina!
## Ferramentas do Ofício
Certo, aqui é onde eu fico tão empolgado que mal consigo me controlar! 🚀 Vamos falar sobre as ferramentas incríveis que vão fazer você se sentir como se tivesse acabado de receber as chaves de uma nave espacial digital.
Beleza, aqui é honestamente onde eu fico tão animado que mal consigo me conter! 🚀 Estamos prestes a falar sobre as ferramentas incríveis que vão fazer você se sentir como se tivesse acabado de receber as chaves de uma nave espacial digital.
Sabe como um chef tem aquelas facas perfeitamente equilibradas que parecem extensões das mãos dele? Ou como um músico tem aquela guitarra que parece cantar no instante que ele a toca? Bem, desenvolvedores têm nossa própria versão dessas ferramentas mágicas, e aqui vai o que vai te impressionar de verdade a maioria delas é completamente gratuita!
Sabe como um chef tem aquelas facas perfeitamente equilibradas que parecem extensões das mãos dele? Ou como um músico tem aquela guitarra que parece cantar no momento que ele toca? Bem, desenvolvedores têm nossa própria versão dessas ferramentas mágicas, e aqui está o que vai realmente te impressionar a maioria delas é completamente gratuita!
Estou praticamente pulando na cadeira pensando em compartilhar isso com você porque elas revolucionaram completamente a forma como construímos software. Estamos falando de assistentes de codificação com inteligência artificial que ajudam a escrever seu código (não estou brincando!), ambientes em nuvem onde você pode construir apps inteiros de literalmente qualquer lugar com Wi-Fi, e ferramentas de depuração tão sofisticadas que são como ter visão de raio-x para seus programas.
Eu praticamente fico pulando na cadeira de pensar em compartilhar isso com você porque elas revolucionaram completamente como construímos software. Estamos falando de assistentes de codificação com inteligência artificial que ajudam a escrever seu código (sem brincadeira!), ambientes na nuvem onde você pode criar aplicativos inteiros literalmente de qualquer lugar com Wi-Fi, e ferramentas de depuração tão sofisticadas que parecem visão de raio X para seus programas.
E aqui está a parte que ainda me arrepia: essas não são ferramentas "para iniciantes" que você vai superar rápido. São exatamente as mesmas ferramentas profissionais que desenvolvedores do Google, Netflix e daquele estúdio indie de apps que você adora estão usando neste exato momento. Você vai se sentir um fera usando elas!
E aqui está a parte que ainda me arrepia: essas não são ferramentas “para iniciantes” que você vai superar. São as mesmas ferramentas profissionais que desenvolvedores no Google, Netflix, e naquele estúdio indie de apps que você adora estão usando neste exato momento. Você vai se sentir um verdadeiro profissional usando elas!
```mermaid
graph TD
A["💡 Sua Ideia"] --> B["⌨️ Editor de Código<br/>(VS Code)"]
B --> C["🌐 Ferramentas do Navegador<br/>(Testes & Depuração)"]
B --> C["🌐 Ferramentas do Navegador<br/>(Teste & Depuração)"]
C --> D["⚡ Linha de Comando<br/>(Automação & Ferramentas)"]
D --> E["📚 Documentação<br/>(Aprendizado & Referência)"]
E --> F["🚀 Aplicativo Web Incrível!"]
@ -507,25 +507,25 @@ graph TD
```
### Editores de Código e IDEs: Seus Novos Melhores Amigos Digitais
Vamos falar sobre editores de código eles estão prestes a se tornar seus lugares favoritos para passar o tempo! Pense neles como seu santuário pessoal de programação onde você vai passar a maior parte do tempo criando e aprimorando suas criações digitais.
Vamos falar sobre editores de código eles estão prestes a se tornar seus novos lugares favoritos para passar o tempo! Pense neles como seu santuário pessoal de codificação, onde você passará a maior parte do tempo criando e aperfeiçoando suas criações digitais.
Mas aqui está o que é absolutamente mágico nos editores modernos: eles não são apenas editores de texto sofisticados. São como ter o mentor de codificação mais brilhante e solidário sentado ao seu lado 24/7. Eles capturam seus erros de digitação antes que você os perceba, sugerem melhorias que fazem você parecer um gênio, ajudam você a entender o que cada pedaço de código faz e alguns até conseguem prever o que você vai digitar e oferecer para terminar seus pensamentos!
Mas aqui está o que é absolutamente mágico nos editores modernos: eles não são apenas editores de texto sofisticados. São como ter o mentor de codificação mais brilhante e solidário sentado ao seu lado 24/7. Eles capturam seus erros de digitação antes mesmo de você perceber, sugerem melhorias que fazem você parecer um gênio, ajudam a entender o que cada pedaço de código faz, e alguns até conseguem prever o que você vai digitar e oferecem para terminar seus pensamentos!
Lembro da primeira vez que descobri a auto-completação me senti vivendo no futuro. Você começa a digitar algo, e seu editor fala: "Ei, você estava pensando nesta função que faz exatamente o que você precisa?" É como ter um leitor de mentes como seu parceiro de programação!
Lembro quando descobri o preenchimento automático eu literalmente me senti vivendo no futuro. Você começa a digitar algo, e seu editor diz: “Ei, você estava pensando nessa função que faz exatamente o que precisa?” É como ter um leitor de mentes como seu parceiro de codificação!
**O que faz esses editores serem tão incríveis?**
**O que torna esses editores tão incríveis?**
Editores de código modernos oferecem uma variedade impressionante de recursos para aumentar sua produtividade:
Editores modernos oferecem uma impressionante variedade de recursos projetados para aumentar sua produtividade:
| Recurso | O que Faz | Por que Ajuda |
| Recurso | O Que Faz | Por Que Ajuda |
|---------|-----------|--------------|
| **Realce de Sintaxe** | Colore diferentes partes do seu código | Facilita a leitura do código e a identificação de erros |
| **Auto-completação** | Sugere código enquanto você digita | Acelera a codificação e reduz erros de digitação |
| **Ferramentas de Depuração** | Ajuda a encontrar e corrigir erros | Economiza horas de solução de problemas |
| **Extensões** | Adicionam funcionalidades especializadas | Personalize seu editor para qualquer tecnologia |
| **Assistentes de IA** | Sugerem código e explicações | Acelera o aprendizado e a produtividade |
| **Auto-completar** | Sugere código enquanto você digita | Acelera a codificação e reduz erros de digitação |
| **Ferramentas de Depuração** | Ajuda a encontrar e corrigir erros | Economiza horas de resolução de problemas |
| **Extensões** | Adiciona recursos especializados | Personaliza seu editor para qualquer tecnologia |
| **Assistentes de IA** | Sugere código e explicações | Acelera o aprendizado e a produtividade |
> 🎥 **Recurso em Vídeo**: Quer ver essas ferramentas em ação? Confira este [vídeo Ferramentas do Ofício](https://youtube.com/watch?v=69WJeXGBdxg) para uma visão abrangente.
> 🎥 **Recurso em Vídeo**: Quer ver essas ferramentas em ação? Confira este [vídeo Ferramentas do Ofício](https://youtube.com/watch?v=69WJeXGBdxg) para uma visão geral abrangente.
#### Editores Recomendados para Desenvolvimento Web
@ -534,66 +534,67 @@ Editores de código modernos oferecem uma variedade impressionante de recursos p
- Excelente ecossistema de extensões
- Terminal embutido e integração com Git
- **Extensões essenciais**:
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) - sugestões de código com IA
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - colaboração em tempo real
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - formatação automática de código
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) - detecta erros de digitação no código
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) - Sugestões de código com IA
- [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - Colaboração em tempo real
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Formatação automática de código
- [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) - Detecta erros de digitação no seu código
**[JetBrains WebStorm](https://www.jetbrains.com/webstorm/)** (Pago, gratuito para estudantes)
**[JetBrains WebStorm](https://www.jetbrains.com/webstorm/)** (Pago, grátis para estudantes)
- Ferramentas avançadas de depuração e testes
- Auto-completar inteligente
- Controle de versão embutido
**IDEs Baseadas em Nuvem** (Diferentes preços)
**IDEs Baseadas em Nuvem** (Preços variados)
- [GitHub Codespaces](https://github.com/features/codespaces) - VS Code completo no navegador
- [Replit](https://replit.com/) - ótimo para aprender e compartilhar código
- [StackBlitz](https://stackblitz.com/) - desenvolvimento web full-stack instantâneo
- [Replit](https://replit.com/) - Ótimo para aprender e compartilhar código
- [StackBlitz](https://stackblitz.com/) - Desenvolvimento web full-stack instantâneo
> 💡 **Dica para Começar**: Comece com o Visual Studio Code é gratuito, amplamente usado na indústria e tem uma comunidade enorme criando tutoriais e extensões úteis.
> 💡 **Dica para Começar**: Comece com o Visual Studio Code é gratuito, amplamente usado na indústria e possui uma enorme comunidade criando tutoriais e extensões úteis.
### Navegadores Web: Seu Laboratório Secreto de Desenvolvimento
Ok, prepare-se para ficar de queixo caído! Sabe como você tem usado os navegadores para passar pelas redes sociais e assistir vídeos? Bem, eles estavam escondendo esse laboratório secreto de desenvolvimento o tempo todo, só esperando você descobrir!
Ok, prepare-se para ter sua mente completamente explodida! Você sabe como tem usado navegadores para navegar em redes sociais e assistir vídeos? Pois é, eles estavam escondendo esse incrível laboratório secreto de desenvolvimento o tempo todo, só esperando você descobrir!
Toda vez que você clica com o botão direito em uma página e seleciona "Inspecionar Elemento," você abre um mundo oculto de ferramentas de desenvolvedor que são honestamente mais poderosas do que alguns softwares caros pelos quais eu costumava pagar centenas de dólares. É como descobrir que sua cozinha comum estava escondendo um laboratório de chef profissional atrás de um painel secreto!
A primeira vez que alguém me mostrou as DevTools do navegador, passei tipo três horas clicando em tudo e dizendo "ESPERA, ISSO TAMBÉM PODE?!" Você pode literalmente editar qualquer site em tempo real, ver exatamente a velocidade de carregamento de tudo, testar como seu site aparece em diferentes dispositivos e até debugar JavaScript como um profissional de verdade. É absolutamente impressionante!
Toda vez que você clica com o botão direito numa página e escolhe "Inspecionar Elemento", você está abrindo um mundo oculto de ferramentas para desenvolvedores que são honestamente mais poderosas do que alguns softwares caros que eu costumava pagar centenas de dólares. É como descobrir que sua cozinha velha e comum estava escondendo um laboratório profissional de chef atrás de um painel secreto!
A primeira vez que alguém me mostrou as DevTools do navegador, passei umas três horas só clicando por aí e falando “ESPERA, ISSO TAMBÉM DÁ PRA FAZER?!” Você literalmente pode editar qualquer site em tempo real, ver exatamente o quão rápido tudo carrega, testar como seu site fica em diferentes dispositivos e até fazer debug de JavaScript como um verdadeiro profissional. É simplesmente impressionante!
**Aqui está o porquê dos navegadores serem sua arma secreta:**
**Aqui está o motivo pelo qual os navegadores são sua arma secreta:**
Quando você cria um site ou uma aplicação web, precisa ver como ele se parece e se comporta no mundo real. Os navegadores não só exibem seu trabalho, como também fornecem feedback detalhado sobre desempenho, acessibilidade e possíveis problemas.
Quando você cria um site ou uma aplicação web, precisa ver como ele se parece e se comporta no mundo real. Os navegadores não só exibem seu trabalho, mas também fornecem feedback detalhado sobre desempenho, acessibilidade e problemas potenciais.
#### Ferramentas de Desenvolvedor do Navegador (DevTools)
#### Ferramentas do Desenvolvedor do Navegador (DevTools)
Navegadores modernos incluem suítes de desenvolvimento completas:
Navegadores modernos incluem suítes de desenvolvimento abrangentes:
| Categoria da Ferramenta | O Que Ela Faz | Exemplo de Uso |
|---------------|--------------|------------------|
| **Inspetor de Elementos** | Ver e editar HTML/CSS em tempo real | Ajustar estilos para ver resultados imediatos |
| **Console** | Visualizar mensagens de erro e testar JavaScript | Depurar problemas e experimentar com código |
| **Monitor de Rede** | Acompanhar o carregamento de recursos | Otimizar desempenho e tempos de carregamento |
| **Verificador de Acessibilidade** | Testar design inclusivo | Garantir que seu site funcione para todos os usuários |
| **Simulador de Dispositivo** | Visualizar em diferentes tamanhos de tela | Testar design responsivo sem múltiplos dispositivos |
|------------------------|---------------|----------------|
| **Inspetor de Elementos** | Visualize e edite HTML/CSS em tempo real | Ajuste estilos para ver resultados imediatos |
| **Console** | Visualize mensagens de erro e teste JavaScript | Debug de problemas e experimentação de código |
| **Monitor de Rede** | Acompanhe como recursos carregam | Otimize desempenho e tempos de carregamento |
| **Verificador de Acessibilidade** | Teste design inclusivo | Garanta que seu site funcione para todos os usuários |
| **Simulador de Dispositivos** | Visualize em diferentes tamanhos de tela | Teste design responsivo sem múltiplos dispositivos |
#### Navegadores Recomendados para Desenvolvimento
- **[Chrome](https://developers.google.com/web/tools/chrome-devtools/)** - DevTools padrão da indústria com documentação extensa
- **[Chrome](https://developers.google.com/web/tools/chrome-devtools/)** - DevTools padrão do setor com documentação extensa
- **[Firefox](https://developer.mozilla.org/docs/Tools)** - Excelentes ferramentas para CSS Grid e acessibilidade
- **[Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)** - Baseado no Chromium com recursos para desenvolvedores da Microsoft
- **[Edge](https://docs.microsoft.com/microsoft-edge/devtools-guide-chromium/?WT.mc_id=academic-77807-sagibbon)** - Baseado em Chromium com recursos para desenvolvedores da Microsoft
> ⚠️ **Dica Importante de Teste**: Sempre teste seus sites em vários navegadores! O que funciona perfeitamente no Chrome pode parecer diferente no Safari ou Firefox. Desenvolvedores profissionais testam em todos os principais navegadores para garantir experiências consistentes aos usuários.
> ⚠️ **Dica Importante para Testes:** Sempre teste seus sites em múltiplos navegadores! O que funciona perfeitamente no Chrome pode parecer diferente no Safari ou Firefox. Desenvolvedores profissionais testam em todos os principais navegadores para garantir experiências consistentes.
### Ferramentas de Linha de Comando: Sua Porta para Superpoderes de Desenvolvedor
### Ferramentas de Linha de Comando: Seu Portal para Superpoderes de Desenvolvimento
Beleza, vamos ter um momento totalmente honesto sobre a linha de comando, porque eu quero que você ouça isso de alguém que realmente entende. Quando eu a vi pela primeira vez só aquela tela preta assustadora com texto piscando eu literalmente pensei: "Não, de jeito nenhum! Isso parece coisa de filme de hacker dos anos 80, e eu definitivamente não sou inteligente o suficiente para isso!" 😅
Beleza, vamos ter um momento completamente sincero aqui sobre a linha de comando, porque quero que você ouça isso de alguém que realmente entende. Quando eu a vi pela primeira vez — só aquela tela preta assustadora com texto piscando — eu literalmente pensei, "Não, de jeito nenhum! Isso parece coisa de filme de hacker dos anos 80, e eu definitivamente não sou inteligente o suficiente para isso!" 😅
Mas aqui está o que eu gostaria que alguém tivesse me dito naquela época, e estou te dizendo agora: a linha de comando não é assustadora é como ter uma conversa direta com seu computador. Pense nisso como a diferença entre pedir comida por um app sofisticado com fotos e menus (que é legal e fácil) versus entrar no seu restaurante favorito onde o chef sabe exatamente o que você gosta e prepara algo perfeito só porque você disse "surpreenda-me com algo incrível."
Mas aqui está o que eu queria que alguém tivesse me dito naquela época, e o que estou dizendo para você agora: a linha de comando não é assustadora é como ter uma conversa direta com seu computador. Pense nela como a diferença entre pedir comida por um aplicativo chique com fotos e menus (que é legal e fácil) versus entrar no seu restaurante local favorito onde o chef sabe exatamente o que você gosta e pode preparar algo perfeito só com você dizendo “surpreenda-me com algo incrível”.
A linha de comando é onde os desenvolvedores se sentem como verdadeiros magos. Você digita algumas palavras que parecem mágicas (ok, são apenas comandos, mas parecem mágicas!), aperta enter, e PAH você criou toda a estrutura de um projeto, instalou ferramentas poderosas do mundo todo ou lançou seu app na internet para milhões verem. Quando você experimenta esse poder pela primeira vez, é sinceramente viciante!
A linha de comando é onde os desenvolvedores se sentem verdadeiros magos. Você digita algumas palavras aparentemente mágicas (ok, são só comandos, mas parecem mágicos!), pressiona enter, e PÁ você criou estruturas completas de projetos, instalou ferramentas poderosas do mundo todo ou lançou seu app na internet para milhões de pessoas verem. Depois que você experimenta esse poder pela primeira vez, é honestamente viciante!
**Por que a linha de comando vai se tornar sua ferramenta favorita:**
Enquanto interfaces gráficas são ótimas para muitas tarefas, a linha de comando se destaca em automação, precisão e velocidade. Muitas ferramentas de desenvolvimento funcionam principalmente via linha de comando, e aprender a usá-las eficientemente pode melhorar muito sua produtividade.
Enquanto interfaces gráficas são ótimas para muitas tarefas, a linha de comando é imbatível em automação, precisão e velocidade. Muitas ferramentas de desenvolvimento funcionam principalmente por linha de comando, e aprender a usá-las eficientemente pode melhorar muito sua produtividade.
```bash
# Etapa 1: Crie e navegue até o diretório do projeto
@ -614,14 +615,14 @@ npm install --save-dev vite prettier eslint
npm install --save-dev @eslint/js
```
**Passo a passo, veja o que está acontecendo:**
- **Inicializa** um novo projeto Node.js com as configurações padrão usando `npm init -y`
**Passo a passo, aqui está o que está acontecendo:**
- **Inicializa** um novo projeto Node.js com configurações padrão usando `npm init -y`
- **Instala** o Vite como uma ferramenta moderna de build para desenvolvimento rápido e builds de produção
- **Adiciona** o Prettier para formatação automática de código e o ESLint para verificações de qualidade
- **Adiciona** Prettier para formatação automática de código e ESLint para verificação da qualidade do código
- **Usa** a flag `--save-dev` para marcar essas dependências como apenas para desenvolvimento
```bash
# Etapa 3: Crie a estrutura e os arquivos do projeto
# Passo 3: Criar estrutura e arquivos do projeto
mkdir src assets
echo '<!DOCTYPE html><html><head><title>My Site</title></head><body><h1>Hello World</h1></body></html>' > index.html
@ -629,31 +630,31 @@ echo '<!DOCTYPE html><html><head><title>My Site</title></head><body><h1>Hello Wo
npx vite
```
**No exemplo acima, nós:**
- **Organizamos** nosso projeto criando pastas separadas para código-fonte e recursos
- **Geramos** um arquivo HTML básico com a estrutura correta do documento
- **Iniciamos** o servidor de desenvolvimento do Vite para recarga ao vivo e substituição a quente de módulos
**No acima, nós:**
- **Organizamos** nosso projeto criando pastas separadas para código-fonte e assets
- **Geramos** um arquivo HTML básico com estrutura correta de documento
- **Iniciamos** o servidor de desenvolvimento do Vite para recarregamento ao vivo e substituição quente de módulos
#### Ferramentas Essenciais de Linha de Comando para Desenvolvimento Web
| Ferramenta | Propósito | Por Que Você Precisa |
|------|---------|-----------------|
| **[Git](https://git-scm.com/)** | Controle de versão | Rastrear mudanças, colaborar, fazer backup do seu trabalho |
| **[Node.js & npm](https://nodejs.org/)** | Runtime JavaScript & gerenciador de pacotes | Executar JavaScript fora do navegador, instalar ferramentas modernas |
| **[Vite](https://vitejs.dev/)** | Ferramenta de build & servidor de desenvolvimento | Desenvolvimento super-rápido com hot module replacement |
| **[ESLint](https://eslint.org/)** | Qualidade de código | Encontrar e corrigir problemas automaticamente no JavaScript |
| **[Prettier](https://prettier.io/)** | Formatação de código | Manter o código consistente e legível |
|------------|-----------|---------------------|
| **[Git](https://git-scm.com/)** | Controle de versão | Acompanhe mudanças, colabore e faça backup do seu trabalho |
| **[Node.js & npm](https://nodejs.org/)** | Ambiente JavaScript e gerenciador de pacotes | Execute JavaScript fora dos navegadores e instale ferramentas modernas |
| **[Vite](https://vitejs.dev/)** | Ferramenta de build e servidor dev | Desenvolvimento super rápido com hot module replacement |
| **[ESLint](https://eslint.org/)** | Qualidade de código | Encontre e corrija problemas automaticamente no seu JavaScript |
| **[Prettier](https://prettier.io/)** | Formatação de código | Mantenha seu código sempre formatado e legível |
#### Opções Específicas para Plataformas
#### Opções por Plataforma
**Windows:**
- **[Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)** - Terminal moderno com muitos recursos
- **[Windows Terminal](https://docs.microsoft.com/windows/terminal/?WT.mc_id=academic-77807-sagibbon)** - Terminal moderno e cheio de recursos
- **[PowerShell](https://docs.microsoft.com/powershell/?WT.mc_id=academic-77807-sagibbon)** 💻 - Ambiente poderoso para scripts
- **[Prompt de Comando](https://docs.microsoft.com/windows-server/administration/windows-commands/?WT.mc_id=academic-77807-sagibbon)** 💻 - Linha de comando tradicional do Windows
- **[Prompt de Comando](https://learn.microsoft.com/windows-server/administration/windows-commands/windows-commands)** 💻 - Linha de comando tradicional do Windows
**macOS:**
- **[Terminal](https://support.apple.com/guide/terminal/)** 💻 - Aplicativo de terminal embutido
- **[iTerm2](https://iterm2.com/)** - Terminal aprimorado com recursos avançados
- **[Terminal](https://support.apple.com/guide/terminal/)** 💻 - Aplicação de terminal embutida
- **[iTerm2](https://iterm2.com/)** - Terminal melhorado com recursos avançados
**Linux:**
- **[Bash](https://www.gnu.org/software/bash/)** 💻 - Shell padrão do Linux
@ -661,72 +662,73 @@ npx vite
> 💻 = Pré-instalado no sistema operacional
> 🎯 **Caminho de Aprendizagem:** Comece com comandos básicos como `cd` (mudar diretório), `ls` ou `dir` (listar arquivos) e `mkdir` (criar pasta). Pratique com comandos modernos de fluxo de trabalho como `npm install`, `git status` e `code .` (abre o diretório atual no VS Code). À medida que ganhar confiança, você naturalmente aprenderá comandos avançados e técnicas de automação.
> 🎯 **Caminho de Aprendizado**: Comece com comandos básicos como `cd` (mudar diretório), `ls` ou `dir` (listar arquivos), e `mkdir` (criar pasta). Pratique com comandos do fluxo moderno como `npm install`, `git status` e `code .` (abre o diretório atual no VS Code). Conforme ganhar confiança, você naturalmente aprenderá comandos mais avançados e técnicas de automação.
### Documentação: Seu Mentor de Aprendizado Sempre Disponível
Ok, deixe eu contar um segredinho que vai te fazer se sentir muito melhor por ser iniciante: até os desenvolvedores mais experientes gastam uma boa parte do tempo lendo documentação. E não é porque eles não sabem o que estão fazendo na verdade, isso é sinal de sabedoria!
Ok, deixa eu compartilhar um segredinho que vai fazer você se sentir muito melhor por ser iniciante: até os desenvolvedores mais experientes passam uma enorme parte do tempo lendo documentação. E isso não porque eles não sabem o que estão fazendo é, na verdade, um sinal de sabedoria!
Pense na documentação como ter acesso aos professores mais pacientes e conhecedores do mundo, disponíveis 24 horas por dia. Travado num problema às 2 da manhã? A documentação está lá com um abraço virtual e exatamente a resposta que você precisa. Quer aprender sobre algum recurso novo que todo mundo está comentando? A documentação te ajuda com exemplos passo a passo. Tentando entender por que algo funciona de determinada forma? Você já sabe a documentação está pronta para explicar de um jeito que finalmente faça sentido!
Pense na documentação como ter acesso aos professores mais pacientes e conhecedores do mundo, disponíveis 24/7. Travado num problema às 2 da manhã? A documentação está lá com um abraço virtual quente e exatamente a resposta que você precisa. Quer aprender sobre alguma função nova da qual todo mundo está falando? A documentação te apoia com exemplos passo a passo. Tentando entender por que algo funciona daquele jeito? Você acertou a documentação está pronta para explicar de um jeito que finalmente faz sentido!
Aqui vai algo que mudou completamente minha visão: o mundo do desenvolvimento web se move muito rápido, e ninguém (absolutamente ninguém!) decorou tudo. Já vi desenvolvedores seniores com mais de 15 anos de experiência consultar a sintaxe básica, e quer saber? Isso não é vergonhoso é inteligente! Não é sobre ter memória perfeita; é sobre saber onde achar respostas confiáveis rapidamente e entender como aplicá-las.
Aqui está algo que mudou completamente minha visão: o mundo do desenvolvimento web se move incrivelmente rápido, e ninguém (sério, absolutamente ninguém!) decorou tudo. Já vi desenvolvedores seniores com mais de 15 anos de experiência pesquisando sintaxe básica, e sabe o que é isso? Não é vergonha é inteligência! Não se trata de ter uma memória perfeita; é sobre saber onde encontrar respostas confiáveis rapidamente e compreender como aplicá-las.
**É aqui que a verdadeira mágica acontece:**
Desenvolvedores profissionais gastam uma parte significativa do tempo lendo documentação não porque não sabem o que estão fazendo, mas porque o cenário do desenvolvimento web evolui tão rápido que se manter atualizado exige aprendizado contínuo. Uma boa documentação ajuda a entender não apenas *como* usar algo, mas *por que* e *quando* usá-lo.
Desenvolvedores profissionais gastam uma parte significativa do tempo lendo documentação não porque não sabem o que fazem, mas porque o cenário do desenvolvimento web evolui tão rápido que se manter atualizado exige aprendizado constante. Boa documentação ajuda você a entender não só *como* usar algo, mas *por que* e *quando* usar.
#### Recursos Essenciais de Documentação
**[Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web)**
- O padrão ouro para documentação de tecnologias web
- Guias completos para HTML, CSS e JavaScript
- Inclui informações sobre compatibilidade com navegadores
- Oferece exemplos práticos e demos interativas
**[Mozilla Developer Network (MDN)](https://developer.mozilla.org/docs/Web)**
- O padrão ouro para documentação de tecnologias web
- Guias abrangentes para HTML, CSS e JavaScript
- Inclui informações de compatibilidade entre navegadores
- Conteúdo com exemplos práticos e demos interativas
**[Web.dev](https://web.dev)** (do Google)
- Melhores práticas modernas de desenvolvimento web
- Guias de otimização de desempenho
- Princípios de acessibilidade e design inclusivo
- Estudos de caso de projetos reais
**[Web.dev](https://web.dev)** (do Google)
- Melhores práticas modernas para desenvolvimento web
- Guias de otimização de performance
- Princípios de acessibilidade e design inclusivo
- Estudos de caso de projetos reais
**[Microsoft Developer Documentation](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers)**
- Recursos para desenvolvimento no navegador Edge
- Guias de Progressive Web Apps
- Insights para desenvolvimento multiplataforma
**[Microsoft Developer Documentation](https://docs.microsoft.com/microsoft-edge/#microsoft-edge-for-developers)**
- Recursos para desenvolvimento no navegador Edge
- Guias para Progressive Web Apps
- Insights sobre desenvolvimento multiplataforma
**[Frontend Masters Learning Paths](https://frontendmasters.com/learn/)**
- Currículos estruturados de aprendizagem
- Cursos em vídeo com especialistas do setor
- Exercícios práticos de programação
**[Frontend Masters Learning Paths](https://frontendmasters.com/learn/)**
- Currículos estruturados de aprendizado
- Cursos em vídeo com especialistas da indústria
- Exercícios práticos de codificação
> 📚 **Estratégia de Estudo:** Não tente decorar a documentação em vez disso, aprenda a navegar nela eficientemente. Salve referências usadas com frequência e pratique usar a função de busca para encontrar informações específicas rapidamente.
> 📚 **Estratégia de Estudo**: Não tente decorar a documentação ao invés disso, aprenda a navegar por ela eficientemente. Faça bookmarks de referências usadas com frequência e pratique usando as funções de busca para encontrar informações específicas rapidamente.
### 🔧 **Cheque de Domínio das Ferramentas: Com o Que Você Se Identifica?**
### 🔧 **Checagem de Domínio de Ferramentas: O Que Faz Mais Sentido Para Você?**
**Tire um momento para pensar:**
- Qual ferramenta você está mais animado para experimentar primeiro? (Não existe resposta errada!)
- A linha de comando ainda parece intimidante, ou você está curioso para ela?
- Você consegue imaginar usar as DevTools do navegador para espiar por trás da cortina dos seus sites favoritos?
- A linha de comando ainda parece intimidadora, ou você está curioso para ela?
- Você consegue imaginar usar as DevTools do navegador para espiar os bastidores de seus sites favoritos?
```mermaid
pie title "Tempo do Desenvolvedor Gasto com Ferramentas"
pie title "Tempo do Desenvolvedor Gastado com Ferramentas"
"Editor de Código" : 40
"Teste no Navegador" : 25
"Linha de Comando" : 15
"Lendo Documentação" : 15
"Depuração" : 5
```
> **Curiosidade divertida**: A maioria dos desenvolvedores passa cerca de 40% do tempo no editor de código, mas repare quanto tempo vai para testes, aprendizado e resolução de problemas. Programar não é só escrever código é criar experiências!
> **Curiosidade divertida**: A maioria dos desenvolvedores passa cerca de 40% do tempo no editor de código, mas repare quanto do tempo vai para testes, aprendizado e resolução de problemas. Programar não é só escrever código é criar experiências!
**Para refletir**: Aqui vai uma questão interessante como você acha que as ferramentas para construir sites (desenvolvimento) podem ser diferentes das ferramentas para projetar sua aparência (design)? É como a diferença entre um arquiteto que projeta uma casa bonita e o empreiteiro que realmente a constrói. Ambos são cruciais, mas precisam de caixas de ferramentas diferentes! Esse tipo de pensamento vai te ajudar a enxergar o panorama geral de como os sites ganham vida.
**Para refletir**: Aqui vai algo interessante para pensar como você acha que as ferramentas para construir sites (desenvolvimento) podem ser diferentes das ferramentas para desenhar sua aparência (design)? É como a diferença entre ser um arquiteto que projeta uma casa bonita e o construtor que realmente a ergue. Ambos são cruciais, mas precisam de conjuntos de ferramentas diferentes! Esse tipo de pensamento vai te ajudar a enxergar o panorama geral de como sites ganham vida.
## Desafio Agente GitHub Copilot 🚀
## Desafio do Agente GitHub Copilot 🚀
Use o modo Agente para completar o seguinte desafio:
Use o modo Agente para completar o desafio abaixo:
**Descrição:** Explore as funcionalidades de um editor de código moderno ou IDE e demonstre como ele pode melhorar seu fluxo de trabalho como desenvolvedor web.
**Descrição:** Explore os recursos de um editor de código moderno ou IDE e demonstre como ele pode melhorar seu fluxo de trabalho como desenvolvedor web.
**Prompt:** Escolha um editor de código ou IDE (como Visual Studio Code, WebStorm ou um IDE baseado na nuvem). Liste três recursos ou extensões que te ajudam a escrever, depurar ou manter código com mais eficiência. Para cada um, forneça uma breve explicação de como beneficia seu fluxo de trabalho.
**Prompt:** Escolha um editor de código ou IDE (como Visual Studio Code, WebStorm ou um IDE na nuvem). Liste três funcionalidades ou extensões que ajudam você a escrever, depurar ou manter código de forma mais eficiente. Para cada uma, forneça uma breve explicação de como ela beneficia seu fluxo de trabalho.
---
@ -734,50 +736,50 @@ Use o modo Agente para completar o seguinte desafio:
**Beleza, detetive, pronto para seu primeiro caso?**
Agora que você tem essa base incrível, tenho uma aventura que vai te ajudar a ver o quão incrivelmente diverso e fascinante o mundo da programação realmente é. E escute isso não é sobre escrever código ainda, então nada de pressão! Pense em você como um detetive de linguagens de programação no seu primeiro caso emocionante!
Agora que você tem essa base incrível, tenho uma aventura que vai ajudar você a ver o quão diversa e fascinante o mundo da programação realmente é. E escute isso não é sobre escrever código ainda, então relaxe! Pense em você como um detetive de linguagens de programação no seu primeiro caso emocionante!
**Sua missão, caso aceite:**
1. **Se torne um explorador de linguagens**: Escolha três linguagens de programação de universos completamente diferentes talvez uma para construir sites, outra para criar apps móveis e outra para analisar dados para cientistas. Encontre exemplos da mesma tarefa simples escritos em cada linguagem. Eu prometo que você vai ficar absolutamente impressionado como podem ser tão diferentes e ainda fazer exatamente a mesma coisa!
1. **Torne-se um explorador de linguagens**: Escolha três linguagens de programação de universos completamente diferentes — talvez uma que constrói sites, uma que cria apps móveis e uma que processa dados para cientistas. Encontre exemplos da mesma tarefa simples escrita em cada uma. Prometo que você vai ficar absolutamente impressionado com o quão diferentes podem ser, fazendo exatamente a mesma coisa!
2. **Descubra suas histórias de origem**: O que torna cada linguagem especial? Aqui vai um fato legal toda linguagem de programação foi criada porque alguém pensou, "Sabe de uma coisa? Precisa haver uma forma melhor de resolver esse problema específico." Consegue descobrir quais eram esses problemas? Algumas dessas histórias são realmente fascinantes!
2. **Descubra as histórias de origem**: O que torna cada linguagem especial? Aqui vai uma curiosidade legal toda linguagem de programação foi criada porque alguém pensou, “Sabe? Deve existir uma forma melhor de resolver esse problema específico.” Consegue descobrir quais eram esses problemas? Algumas dessas histórias são realmente fascinantes!
3. **Conheça as comunidades**: Confira como é a recepção e o entusiasmo das comunidades de cada linguagem. Algumas têm milhões de desenvolvedores compartilhando conhecimento e ajudando uns aos outros, outras são menores mas super unidas e apoiadoras. Você vai adorar conhecer as diferentes personalidades dessas comunidades!
3. **Conheça as comunidades**: Veja o quão acolhedora e apaixonada é a comunidade de cada linguagem. Algumas têm milhões de desenvolvedores compartilhando conhecimento e ajudando uns aos outros, outras são menores, mas extremamente unidas e solidárias. Você vai adorar ver as diferentes personalidades dessas comunidades!
4. **Siga seu instinto**: Qual linguagem parece mais acessível para você agora? Não se preocupe em fazer a escolha "perfeita" ouça seu feeling! Não existe resposta errada aqui, e você sempre pode explorar outras depois.
4. **Siga seu instinto**: Qual linguagem parece mais acessível para você agora? Não se preocupe em fazer a escolha “perfeita” só ouça seu instinto! Honestamente, não há resposta errada, e você sempre pode explorar outras depois.
**Trabalho extra do detetive:** Veja se consegue descobrir quais grandes sites ou apps são construídos com cada linguagem. Garanto que vai se surpreender ao saber o que move Instagram, Netflix ou aquele jogo mobile que você não para de jogar!
**Trabalho extra de detetive**: Veja se consegue descobrir quais grandes sites ou apps são construídos com cada linguagem. Garanto que vai se surpreender ao saber o que move Instagram, Netflix, ou aquele jogo mobile que você não consegue parar de jogar!
> 💡 **Lembre-se**: Você não está tentando se tornar um expert em nenhuma dessas linguagens hoje. Você está apenas conhecendo a vizinhança antes de decidir onde quer se estabelecer. Vá com calma, divirta-se e deixe sua curiosidade te guiar!
> 💡 **Lembrete**: Você não está tentando se tornar um expert em nenhuma dessas linguagens hoje. Você está apenas conhecendo o bairro antes de decidir onde quer se estabelecer. Vá com calma, divirta-se e deixe sua curiosidade te guiar!
## Vamos Celebrar Tudo o Que Você Descobriu!
## Vamos Celebrar o Que Você Descobriu!
Nossa, você absorveu tanta informação incrível hoje! Estou genuinamente animado para ver quanto dessa jornada maravilhosa ficou com você. E lembre-se isso não é uma prova em que você precisa acertar tudo. É mais uma celebração de tudo o que você aprendeu sobre esse mundo fascinante que está prestes a explorar!
Caramba, você absorveu tanta informação incrível hoje! Estou genuinamente animado para ver o quanto dessa jornada incrível ficou com você. E lembre-se isso não é um teste que você precisa acertar tudo. É mais uma celebração de todas as coisas legais que você aprendeu sobre esse mundo fascinante em que você está prestes a mergulhar!
[Faça o quiz após a aula](https://ff-quizzes.netlify.app/web/)
[Faça o quiz pós-aula](https://ff-quizzes.netlify.app/web/)
## Revisão & Autoestudo
**Tire seu tempo para explorar e se divertir!**
Você percorreu um longo caminho hoje, e isso é algo para se orgulhar! Agora vem a parte divertida explorar os tópicos que despertaram sua curiosidade. Lembre-se, isso não é dever de casa é uma aventura!
Você cobriu muito terreno hoje, e isso é algo para se orgulhar! Agora vem a parte divertida explorar os tópicos que despertaram sua curiosidade. Lembre-se, isso não é dever de casa é uma aventura!
**Aprofunde-se no que te anima:**
**Mergulhe mais fundo no que te empolga:**
**Comece a usar as linguagens de programação:**
**Coloque a mão na massa com linguagens de programação:**
- Visite os sites oficiais de 2-3 linguagens que chamaram sua atenção. Cada uma tem sua própria personalidade e história!
- Experimente alguns playgrounds de código online como [CodePen](https://codepen.io/), [JSFiddle](https://jsfiddle.net/), ou [Replit](https://replit.com/). Não tenha medo de experimentar você não vai quebrar nada!
- Leia sobre como sua linguagem favorita surgiu. Sério, algumas dessas histórias de origem são fascinantes e vão ajudar você a entender por que as linguagens funcionam do jeito que funcionam.
**Fique familiarizado com suas novas ferramentas:**
- Baixe o Visual Studio Code se ainda não o fez é gratuito e você vai adorar!
- Passe alguns minutos navegando pelo marketplace de Extensões. É como uma loja de apps para seu editor de código!
- Abra as Ferramentas de Desenvolvedor do seu navegador e explore um pouco. Não se preocupe em entender tudo apenas familiarize-se com o que está lá.
**Fique confortável com suas novas ferramentas:**
- Baixe o Visual Studio Code se ainda não fez isso ele é gratuito e você vai adorar!
- Passe alguns minutos navegando pelo marketplace de Extensões. É como uma loja de aplicativos para seu editor de código!
- Abra as Ferramentas do Desenvolvedor do seu navegador e clique por aí. Não se preocupe em entender tudo apenas familiarize-se com o que está lá.
**Junte-se à comunidade:**
- Siga algumas comunidades de desenvolvedores no [Dev.to](https://dev.to/), [Stack Overflow](https://stackoverflow.com/), ou [GitHub](https://github.com/). A comunidade de programação é extremamente receptiva a iniciantes!
- Assista a vídeos de programação para iniciantes no YouTube. Existem muitos criadores excelentes que lembram como é começar do zero.
- Considere participar de meetups locais ou comunidades online. Acredite, desenvolvedores adoram ajudar quem está começando!
- Siga algumas comunidades de desenvolvedores no [Dev.to](https://dev.to/), [Stack Overflow](https://stackoverflow.com/), ou [GitHub](https://github.com/). A comunidade de programação é incrivelmente acolhedora para quem está começando!
- Assista a vídeos de programação para iniciantes no YouTube. Há muitos criadores ótimos por aí que lembram como é estar começando.
- Considere participar de encontros locais ou comunidades online. Confie em mim, desenvolvedores adoram ajudar quem está começando!
> 🎯 **Ouça, aqui está o que quero que você lembre**: Você não precisa se tornar um mago da programação da noite para o dia! Agora, você está apenas conhecendo esse mundo incrível que está prestes a fazer parte. Vá com calma, aproveite a jornada e lembre-se todo desenvolvedor que você admira já esteve exatamente onde você está agora, sentindo-se empolgado e talvez um pouco sobrecarregado. Isso é totalmente normal, e significa que você está no caminho certo!
> 🎯 **Escute, aqui está o que quero que você lembre**: Você não precisa se tornar um mago da programação da noite para o dia! Agora, você está apenas conhecendo esse mundo incrível do qual fará parte. Vá no seu ritmo, aproveite a jornada e lembre-se todo desenvolvedor que você admira já esteve exatamente onde você está agora, sentindo-se empolgado e talvez um pouco sobrecarregado. Isso é totalmente normal e significa que você está no caminho certo!
@ -785,48 +787,48 @@ Você percorreu um longo caminho hoje, e isso é algo para se orgulhar! Agora ve
[Reading the Docs](assignment.md)
> 💡 **Um pequeno empurrão para sua tarefa**: Eu adoraria ver você explorar algumas ferramentas que ainda não cobrimos! Pule os editores, navegadores e ferramentas de linha de comando de que já falamos existe um universo incrível de ferramentas de desenvolvimento esperando para ser descoberto. Procure aquelas que são ativamente mantidas e têm comunidades vibrantes e prestativas (essas tendem a ter os melhores tutoriais e as pessoas mais solidárias quando você inevitavelmente ficar travado e precisar de uma ajuda amigável).
> 💡 **Um empurrãozinho para sua tarefa**: Eu adoraria ver você explorar algumas ferramentas que ainda não cobrimos! Pule os editores, navegadores e ferramentas de linha de comando que já falamos existe todo um universo incrível de ferramentas de desenvolvimento esperando para ser descoberto. Procure por aquelas que são ativamente mantidas e têm comunidades vibrantes e prestativas (elas costumam ter os melhores tutoriais e as pessoas mais solidárias quando, inevitavelmente, você ficar preso e precisar de uma mão amiga).
---
## 🚀 Seu Cronograma de Jornada na Programação
### ⚡ **O que você pode fazer nos próximos 5 minutos**
- [ ] Salvar nos favoritos 2-3 sites de linguagens de programação que chamaram sua atenção
- [ ] Baixar o Visual Studio Code se ainda não fez
- [ ] Abrir as DevTools do navegador (F12) e clicar por qualquer site
- [ ] Favoritar 2-3 sites de linguagens de programação que chamaram sua atenção
- [ ] Baixar o Visual Studio Code, se ainda não fez
- [ ] Abrir as DevTools do seu navegador (F12) e clicar em qualquer site
- [ ] Entrar em uma comunidade de programação (Dev.to, Reddit r/webdev, ou Stack Overflow)
### ⏰ **O que você pode realizar nesta hora**
- [ ] Completar o quiz pós-aula e refletir sobre suas respostas
- [ ] Configurar o VS Code com a extensão GitHub Copilot
- [ ] Experimentar um exemplo "Hello World" em 2 linguagens de programação online
- [ ] Tentar um exemplo "Hello World" em 2 linguagens de programação diferentes online
- [ ] Assistir a um vídeo "Um dia na vida de um desenvolvedor" no YouTube
- [ ] Começar sua investigação sobre linguagens de programação (do desafio)
- [ ] Começar sua investigação sobre linguagens de programação (desafio)
### 📅 **Sua aventura de uma semana**
- [ ] Completar a tarefa e explorar 3 novas ferramentas de desenvolvimento
- [ ] Seguir 5 desenvolvedores ou contas de programação nas redes sociais
- [ ] Tentar criar algo pequeno no CodePen ou Replit (mesmo que seja só "Olá, [Seu Nome]!")
- [ ] Ler um post de blog de um desenvolvedor sobre a jornada de codificação dele
- [ ] Tentar construir algo pequeno no CodePen ou Replit (mesmo que seja só "Olá, [Seu Nome]!")
- [ ] Ler um post de blog de um desenvolvedor sobre a jornada dele(a)
- [ ] Participar de um meetup virtual ou assistir a uma palestra sobre programação
- [ ] Começar a aprender sua linguagem escolhida com tutoriais online
### 🗓️ **Sua transformação em um mês**
- [ ] Construir seu primeiro projeto pequeno (mesmo uma página web simples conta!)
- [ ] Contribuir para um projeto open-source (comece com correções na documentação)
- [ ] Mentorar alguém que está começando a jornada de programação
- [ ] Construir seu primeiro projeto pequeno (até uma página simples conta!)
- [ ] Contribuir para um projeto open source (comece com correções na documentação)
- [ ] Mentorar alguém que está começando na programação
- [ ] Criar seu site portfólio de desenvolvedor
- [ ] Conectar-se com comunidades locais de desenvolvedores ou grupos de estudo
- [ ] Começar a planejar seu próximo marco de aprendizado
### 🎯 **Checagem final de reflexão**
### 🎯 **Reflexão final**
**Antes de continuar, reserve um momento para celebrar:**
**Antes de seguir adiante, pare um momento para comemorar:**
- Qual foi uma coisa sobre programação que te empolgou hoje?
- Qual ferramenta ou conceito você quer explorar primeiro?
- Como você se sente ao começar essa jornada na programação?
- Qual é uma pergunta que você gostaria de fazer a um desenvolvedor agora?
- Qual é uma pergunta que você gostaria de fazer para um desenvolvedor agora mesmo?
```mermaid
journey
@ -842,13 +844,13 @@ journey
section Próximo Mês
Construindo: 5: Você
Confiante: 5: Você
Ajudando os Outros: 5: Você
Ajudando Outros: 5: Você
```
> 🌟 **Lembre-se**: Todo especialista já foi um iniciante. Todo desenvolvedor sênior já sentiu exatamente o que você sente agora empolgado, talvez um pouco sobrecarregado, e definitivamente curioso sobre o que é possível. Você está em uma companhia incrível, e essa jornada vai ser sensacional. Bem-vindo ao maravilhoso mundo da programação! 🎉
> 🌟 **Lembre-se**: Todo especialista já foi um iniciante. Todo desenvolvedor sênior já se sentiu exatamente como você se sente agora empolgado, talvez um pouco sobrecarregado, e definitivamente curioso sobre o que é possível. Você está em ótima companhia, e essa jornada vai ser incrível. Bem-vindo ao maravilhoso mundo da programação! 🎉
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**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 autorizada. Para informações críticas, recomenda-se tradução profissional feita por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas 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, informamos que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritária. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -2,27 +2,27 @@
## Visão Geral do Projeto
Este é um repositório de currículo educacional para ensinar fundamentos de desenvolvimento web para iniciantes. O currículo é um curso completo de 12 semanas desenvolvido pelos Microsoft Cloud Advocates, com 24 aulas práticas cobrindo JavaScript, CSS e HTML.
Este é um repositório de currículo educacional para ensinar fundamentos de desenvolvimento web para iniciantes. O currículo é um curso abrangente de 12 semanas desenvolvido pelos Microsoft Cloud Advocates, contendo 24 aulas práticas com JavaScript, CSS e HTML.
### Componentes Principais
- **Conteúdo Educacional**: 24 lições 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
- **Questionários Interativos**: 48 questionários com 3 perguntas cada (avaliações pré e pós-lição)
- **Conteúdo Educacional**: 24 aulas estruturadas organizadas em módulos baseados em projetos
- **Projetos Práticos**: Terrarium, 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é e 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 lições
- Cada pasta de lição contém README, exemplos de código e soluções
- Projetos independentes em diretórios separados (quiz-app, vários projetos de lição)
- 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 das aulas)
- 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 é destinado principalmente ao consumo de conteúdo educacional. Para trabalhar com projetos específicos:
Este repositório é principalmente para consumo de conteúdo educacional. Para trabalhar com projetos específicos:
### Configuração Principal do Repositório
@ -37,7 +37,7 @@ cd Web-Dev-For-Beginners
cd quiz-app
npm install
npm run dev # Iniciar servidor de desenvolvimento
npm run build # Construir para produção
npm run build # Compilar para produção
npm run lint # Executar ESLint
```
@ -48,7 +48,7 @@ cd 7-bank-project/api
npm install
npm start # Iniciar servidor API
npm run lint # Executar ESLint
npm run format # Formatar com Prettier
npm run format # Formatado com Prettier
```
### Projetos de Extensão de Navegador
@ -59,7 +59,7 @@ npm install
# Siga as instruções específicas do navegador para carregar extensões
```
### Projetos de Jogo Espacial
### Projetos do Jogo Espacial
```bash
cd 6-space-game/solution
@ -67,7 +67,7 @@ npm install
# Abra index.html no navegador ou use o Live Server
```
### Projeto de Chat (Backend em Python)
### Projeto de Chat (Backend Python)
```bash
cd 9-chat-project/solution/backend/python
@ -80,38 +80,38 @@ python api.py
### Para Contribuidores de Conteúdo
1. **Faça um fork do repositório** para sua conta do GitHub
1. **Faça fork do repositório** para sua conta no GitHub
2. **Clone seu fork** localmente
3. **Crie uma nova branch** para suas alterações
4. Faça mudanças no conteúdo das lições ou exemplos de código
3. **Crie um novo branch** para suas mudanças
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 dos projetos relevantes
6. Envie pull requests seguindo as diretrizes de contribuição
### Para Estudantes
### Para Aprendizes
1. Faça fork ou clone o repositório
2. Navegue pelas pastas das lições sequencialmente
3. Leia os arquivos README de cada lição
4. Complete os questionários pré-lição em https://ff-quizzes.netlify.app/web/
5. Trabalhe nos exemplos de código nas pastas das lições
6. Complete tarefas e desafios
7. Faça os questionários pós-lição
2. Navegue sequencialmente pelos diretórios das aulas
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 as tarefas 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 respectivos diretórios de API
- **Projetos API**: Execute `npm start` nos diretórios das APIs correspondentes
## Instruções de Teste
## Instruções de Testes
### Teste do Quiz App
```bash
cd quiz-app
npm run lint # Verifique problemas no estilo do código
npm run build # Verifique se a compilação foi bem-sucedida
npm run lint # Verificar problemas de estilo de código
npm run build # Verificar se a compilação é bem-sucedida
```
### Teste da API Bancária
@ -125,79 +125,79 @@ node server.js # Verifique se o servidor inicia sem erros
### Abordagem Geral de Testes
- Este é um repositório educacional sem testes automatizados abrangentes
- Os testes manuais focam em:
- Testes manuais focam em:
- Exemplos de código executam sem erros
- Links na documentação funcionam corretamente
- Builds dos projetos completam com sucesso
- Exemplos seguem boas práticas
- Exemplos seguem as melhores práticas
### Verificações Antes de Enviar
### Verificações Pré-Envio
- Execute `npm run lint` em diretórios com package.json
- Verifique se os links markdown são válidos
- Execute `npm run lint` nos diretórios com package.json
- Verifique se os links em markdown são válidos
- Teste exemplos de código no navegador ou Node.js
- Confira se as traduções mantêm estrutura adequada
- Verifique se traduções mantêm a estrutura correta
## Diretrizes de Estilo de Código
### JavaScript
- Use sintaxe moderna ES6+
- Siga as configurações padrão do ESLint fornecidas nos projetos
- Utilize sintaxe moderna ES6+
- Siga configurações padrão ESLint providas nos projetos
- Use nomes de variáveis e funções significativos para clareza educacional
- Adicione comentários explicando conceitos para os estudantes
- Adicione comentários explicando conceitos para os aprendizes
- Formate usando Prettier onde configurado
### HTML/CSS
- Elementos semânticos HTML5
- Princípios de design responsivo
- Convenções claras para nomes de classes
- Comentários explicando técnicas CSS para os estudantes
- Convenções claras de nomenclatura de classes
- Comentários explicando técnicas CSS para aprendizes
### Python
- Diretrizes de estilo PEP 8
- Exemplos de código claros e educativos
- Anotações de tipo onde forem úteis para aprendizagem
- Anotações de tipos onde forem úteis para aprendizado
### Documentação 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/`
- Capturas de tela e imagens nas pastas `images/`
- Texto alternativo para imagens para acessibilidade
### Organização de Arquivos
- Lições numeradas sequencialmente (1-getting-started-lessons, 2-js-basics, etc.)
- 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 das lições
- 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:
O quiz-app está configurado para implantação em Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Cria a pasta dist/
# Faz o deploy via workflow do GitHub Actions em push para main
# Implanta via workflow do GitHub Actions ao fazer push para o main
```
Configuração do Azure Static Web Apps:
Configuração Azure Static Web Apps:
- **Localização do app**: `/quiz-app`
- **Localização de output**: `dist`
- **Localização da saída**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Geração de PDF da Documentação
```bash
npm install # Instalar docsify-to-pdf
npm run convert # Gerar PDF a partir do docs
npm install # Instale o docsify-to-pdf
npm run convert # Gere PDF a partir do docs
```
### Documentação Docsify
@ -211,16 +211,16 @@ docsify serve # Servir em localhost:3000
Cada diretório de projeto pode ter seu próprio processo de build:
- Projetos Vue: `npm run build` cria bundles de produção
- Projetos estáticos: Nenhuma etapa de build, sirva arquivos diretamente
- Projetos estáticos: Sem etapa de build, servem arquivos diretamente
## Diretrizes para Pull Requests
### Formato do Título
Use títulos claros e descritivos indicando a área da alteração:
- `[Quiz-app] Adicionar novo quiz para a lição X`
Use títulos claros e descritivos indicando a área da mudança:
- `[Quiz-app] Adicionar novo quiz para a aula X`
- `[Lesson-3] Corrigir erro de digitação no projeto terrarium`
- `[Translation] Adicionar tradução para espanhol da lição 5`
- `[Translation] Adicionar tradução em espanhol para a aula 5`
- `[Docs] Atualizar instruções de configuração`
### Verificações Obrigatórias
@ -229,54 +229,54 @@ Antes de enviar um PR:
1. **Qualidade do Código**:
- Execute `npm run lint` nos diretórios dos projetos afetados
- Corrija todos os erros e avisos de lint
- Corrija todos os erros e avisos do lint
2. **Verificação de Build**:
- Execute `npm run build`, se aplicável
- Execute `npm run build` se aplicável
- Garanta que não haja erros no build
3. **Validação de Links**:
- Teste todos os links markdown
- Verifique referências de imagens funcionando
- Verifique as referências de imagens
4. **Revisão de Conteúdo**:
- Faça revisão ortográfica e gramatical
- Confirme que exemplos de código estão corretos e educativos
- Verifique se traduções mantêm o significado original
- Revise ortografia e gramática
- Assegure que os exemplos de código estejam corretos e educacionais
- Confirme que traduções mantenham o significado original
### Requisitos para Contribuição
### Requisitos de Contribuição
- Aceitar o Microsoft CLA (verificação automática no primeiro PR)
- Seguir o [Código de Conduta de Código Aberto da Microsoft](https://opensource.microsoft.com/codeofconduct/)
- Ver [CONTRIBUTING.md](./CONTRIBUTING.md) para diretrizes detalhadas
- Referenciar números de issues na descrição do PR se aplicável
- Aceite o CLA da Microsoft (checagem automática no primeiro PR)
- Siga o [Código de Conduta de Código Aberto da Microsoft](https://opensource.microsoft.com/codeofconduct/)
- Veja [CONTRIBUTING.md](./CONTRIBUTING.md) para diretrizes detalhadas
- Faça referência aos números de issues na descrição do PR, se aplicável
### Processo de Revisão
- PRs revisados por mantenedores e comunidade
- Clareza educacional é prioridade
- Clareza educacional é priorizada
- Exemplos de código devem seguir as melhores práticas atuais
- Traduções são revisadas para precisão e adequação cultural
- Traduções revisadas quanto à precisão e adequação cultural
## Sistema de Tradução
### Tradução Automatizada
- Usa GitHub Actions com workflow co-op-translator
- Tradução para mais de 50 idiomas automaticamente
- Arquivos fonte nos diretórios principais
- Arquivos traduzidos em diretórios `translations/{language-code}/`
- Traduz para mais de 50 idiomas automaticamente
- Arquivos-fonte nos diretórios principais
- Arquivos traduzidos nas pastas `translations/{language-code}/`
### Adicionando Melhorias Manuais de Tradução
### Adição de Melhorias Manuais nas Traduções
1. Encontre o arquivo em `translations/{language-code}/`
1. Localize o arquivo em `translations/{language-code}/`
2. Faça melhorias preservando a estrutura
3. Garanta que exemplos de código permaneçam funcionais
4. Teste qualquer conteúdo localizado de quizzes
3. Certifique-se de que exemplos de código continuem funcionais
4. Teste conteúdos de quiz localizados
### Metadados da Tradução
### Metadados das Traduções
Arquivos traduzidos incluem cabeçalho metadata:
Arquivos traduzidos incluem cabeçalho de metadados:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -295,40 +295,40 @@ CO_OP_TRANSLATOR_METADATA:
**Quiz app não inicia**:
- Verifique a versão do Node.js (recomendado v14+)
- Delete `node_modules` e `package-lock.json`, execute `npm install` novamente
- Cheque conflitos de porta (padrão: Vite usa porta 5173)
- Apague `node_modules` e `package-lock.json`, execute `npm install` novamente
- Verifique conflitos de porta (padrão: Vite usa porta 5173)
**Servidor API não inicia**:
- Verifique se versão do Node.js é mínima (node >=10)
- Verifique se a porta já está em uso
- Confirme todas as dependências instaladas com `npm install`
- Verifique se a versão do Node.js atende ao mínimo (node >=10)
- Cheque se a porta já está em uso
- Assegure que todas as dependências foram instaladas com `npm install`
**Extensão do navegador não carrega**:
- Verifique se manifest.json está formatado corretamente
- Cheque console do navegador para erros
- Siga instruções específicas do navegador para instalação da extensão
**Extensão de navegador não carrega**:
- Verifique se o manifest.json está formatado corretamente
- Verifique a 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 que o pacote OpenAI está instalado: `pip install openai`
- Verifique se a variável de ambiente GITHUB_TOKEN está configurada
- Cheque permissões de acesso ao GitHub Models
**Problemas no projeto de chat Python**:
- Certifique-se de que o pacote OpenAI está instalado: `pip install openai`
- Verifique se a variável de ambiente GITHUB_TOKEN está definida
- Verifique as permissões de acesso aos GitHub Models
**Docsify não serve documentação**:
**Docsify não serve a documentação**:
- Instale docsify-cli globalmente: `npm install -g docsify-cli`
- Rode a partir do diretório raiz do repositório
- Execute a partir do diretório raiz do repositório
- Verifique se `docs/_sidebar.md` existe
### Dicas para Ambiente de Desenvolvimento
### Dicas para o Ambiente de Desenvolvimento
- Use VS Code com extensão Live Server para projetos HTML
- Instale extensões ESLint e Prettier para formatação consistente
- Use DevTools do navegador para depurar JavaScript
- Para projetos Vue, instale extensão Vue DevTools no navegador
- Instale as extensões ESLint e Prettier para formatação consistente
- Use as DevTools do navegador para debugar JavaScript
- Para projetos Vue, instale a extensão Vue DevTools no navegador
### Considerações de Performance
- Grande número de arquivos traduzidos (50+ idiomas) torna clones completos grandes
- Use clone superficial se trabalhar só com conteúdo: `git clone --depth 1`
- Grande número de arquivos traduzidos (50+ idiomas) torna clonagens completas grandes
- Use clone shallow se estiver trabalhando apenas com conteúdo: `git clone --depth 1`
- Exclua traduções de buscas ao trabalhar com conteúdo em inglês
- Processos de build podem ser lentos na primeira execução (npm install, build Vite)
@ -337,72 +337,72 @@ CO_OP_TRANSLATOR_METADATA:
### Variáveis de Ambiente
- Chaves de API nunca devem ser commitadas no repositório
- Use arquivos `.env` (já no `.gitignore`)
- Use arquivos `.env` (já estão no `.gitignore`)
- Documente variáveis de ambiente necessárias nos READMEs dos projetos
### Projetos Python
- Use ambientes virtuais: `python -m venv venv`
- Mantenha dependências atualizadas
- Tokens do GitHub devem ter permissões mínimas necessárias
- Tokens GitHub devem ter permissões mínimas necessárias
### Acesso aos GitHub Models
- Tokens de acesso pessoal (PAT) são necessários para GitHub Models
- Tokens de Acesso Pessoal (PAT) requeridos para GitHub Models
- Tokens devem ser armazenados como variáveis de ambiente
- Nunca commit tokens ou credenciais
## Notas Adicionais
### Público Alvo
### Público-Alvo
- Iniciantes completos em desenvolvimento web
- Estudantes e autodidatas
- Professores usando o currículo em salas de aula
- Conteúdo projetado para acessibilidade e aprendizado gradual
- Professores que usam o currículo em sala de aula
- Conteúdo desenhado para acessibilidade e construção gradual de habilidades
### Filosofia Educacional
- Abordagem baseada em projetos
- Verificações frequentes de conhecimento (quizzes)
- Exercícios práticos de codificação
- Exemplos de aplicação reais
- Foco em fundamentos antes de frameworks
- Exemplos de aplicação no mundo real
- Foco nos fundamentos antes dos frameworks
### Manutenção do Repositório
- Comunidade ativa de estudantes e contribuidores
- Comunidade ativa de aprendizes e contribuidores
- Atualizações regulares de dependências e conteúdo
- Issues e discussões monitoradas por mantenedores
- Issues e discussões monitoradas pelos mantenedores
- Atualizações de tradução automatizadas via GitHub Actions
### Recursos Relacionados
- [Módulos 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 estudantes
- Cursos adicionais: IA Generativa, Ciência de Dados, ML, currículos de IoT disponíveis
- [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) recomendado para aprendizes
- Cursos adicionais: AI Generativa, Ciência de Dados, ML, 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 Vue 3
- `quiz-app/README.md` - Aplicação 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 em canvas
- `6-space-game/README.md` - Desenvolvimento de jogo baseado em canvas
- `9-chat-project/README.md` - Projeto de assistente de chat com IA
### Estrutura Monorepo
Embora não seja um monorepo tradicional, este repositório contém múltiplos projetos independentes:
- Cada lição é autocontida
- Cada aula é autocontida
- Projetos não compartilham dependências
- Trabalhe em projetos individuais sem afetar os outros
- Trabalhe em projetos individuais sem afetar outros
- Clone o repositório inteiro para a experiência completa do currículo
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**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 autorizada. Para informações críticas, recomenda-se a tradução profissional realizada por um tradutor humano. 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 empenhemos pela precisão, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional feita por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T12:35:48+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T22:26:28+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "pt-PT"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T12:43:50+00:00",
"translation_date": "2026-03-27T22:31:52+00:00",
"source_file": "AGENTS.md",
"language_code": "pt-PT"
},

@ -1,28 +1,28 @@
# AGENTES.md
# AGENTS.md
## Visão Geral do Projeto
Este é um repositório curricular educativo para o ensino dos fundamentos do desenvolvimento web a principiantes. O currículo é um curso abrangente de 12 semanas desenvolvido pelos Microsoft Cloud Advocates, contendo 24 aulas práticas que abrangem JavaScript, CSS e HTML.
Este é um repositório de currículo educacional para ensinar os fundamentos do desenvolvimento web a iniciantes. O currículo é um curso abrangente de 12 semanas desenvolvido pelos Microsoft Cloud Advocates, com 24 aulas práticas que abrangem JavaScript, CSS e HTML.
### Componentes Principais
- **Conteúdo Educativo**: 24 lições estruturadas organizadas em módulos baseados em projetos
- **Projetos Práticos**: Terrário, Jogo de Digitação, Extensão de Browser, Jogo Espacial, Aplicação Bancária, Editor de Código e Assistente de Chat IA
- **Questionários Interativos**: 48 questionários com 3 perguntas cada (avaliações pré/pós-aula)
- **Suporte Multilíngue**: Traduções automáticas para 50+ idiomas via GitHub Actions
- **Tecnologias**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (para projetos de IA)
- **Conteúdo Educacional**: 24 lições estruturadas organizadas em módulos baseados em projetos
- **Projetos Práticos**: Terrário, Jogo de Digitação, Extensão de Navegador, Jogo Espacial, Aplicação Bancária, Editor de Código e Assistente de Chat AI
- **Questionários Interativos**: 48 questionários com 3 perguntas cada (avaliações pré e pós aula)
- **Suporte Multilíngue**: Traduções automáticas para mais de 50 idiomas através do GitHub Actions
- **Tecnologias**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (para projetos de AI)
### Arquitetura
- Repositório educativo 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 das aulas)
- Repositório educacional com estrutura baseada em lições
- Cada pasta de lição contém README, exemplos de código e soluções
- Projetos independentes em diretórios separados (quiz-app, vários projetos de lições)
- 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 educativo. Para trabalhar com projetos específicos:
Este repositório destina-se principalmente ao consumo de conteúdo educacional. Para trabalhar com projetos específicos:
### Configuração Principal do Repositório
@ -31,7 +31,7 @@ git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Configuração do Quiz App (Vue 3 + Vite)
### Configuração da Aplicação de Quiz (Vue 3 + Vite)
```bash
cd quiz-app
@ -48,23 +48,23 @@ cd 7-bank-project/api
npm install
npm start # Iniciar servidor API
npm run lint # Executar ESLint
npm run format # Formatar com Prettier
npm run format # Formatado com Prettier
```
### Projetos de Extensão de Browser
### Projetos de Extensão de Navegador
```bash
cd 5-browser-extension/solution
npm install
# Siga as instruções específicas do navegador para carregar a extensão
# Siga as instruções específicas do navegador para carregar extensões
```
### Projetos do Jogo Espacial
### Projetos de Jogo Espacial
```bash
cd 6-space-game/solution
npm install
# Abra index.html no navegador ou use o Live Server
# Abra index.html no navegador ou use Live Server
```
### Projeto de Chat (Backend Python)
@ -76,37 +76,37 @@ pip install openai
python api.py
```
## Fluxo de Desenvolvimento
## Fluxo de Trabalho de Desenvolvimento
### Para Contribuidores de Conteúdo
1. **Faça fork do repositório** para a sua conta GitHub
2. **Clone seu fork** localmente
3. **Crie uma nova branch** para suas alterações
4. Faça alterações no conteúdo das aulas ou exemplos de código
5. Teste quaisquer alterações de código nas pastas dos projetos relevantes
6. Submeta pull requests seguindo as diretrizes de contribuição
1. **Faça fork do repositório** para a sua conta do GitHub
2. **Clone o seu fork** localmente
3. **Crie uma nova branch** para as suas alterações
4. Faça alterações no conteúdo das lições ou exemplos de código
5. Teste quaisquer alterações de código nas pastas de projetos relevantes
6. Envie pull requests seguindo as diretrizes de contribuição
### Para Aprendizes
1. Faça fork ou clone o repositório
2. Navegue sequencialmente pelas pastas das aulas
3. Leia os ficheiros README de cada aula
4. Complete os questionários pré-aula em https://ff-quizzes.netlify.app/web/
5. Trabalhe nos exemplos de código nas pastas das aulas
6. Complete os trabalhos e desafios
7. Realize os questionários pós-aula
1. Faça fork ou clone do repositório
2. Navegue pelas pastas de lições sequencialmente
3. Leia os arquivos README de cada lição
4. Complete os questionários pré-licão em https://ff-quizzes.netlify.app/web/
5. Trabalhe com os exemplos de código nas pastas de lição
6. Complete tarefas e desafios
7. Faça os questionários pós-lição
### Desenvolvimento em Tempo Real
- **Documentação**: Execute `docsify serve` na raiz (porta 3000)
- **Quiz App**: Execute `npm run dev` na pasta quiz-app
- **Projetos**: Utilize a extensão VS Code Live Server para projetos HTML
- **Projetos API**: Execute `npm start` nas respetivas pastas API
- **Aplicação de Quiz**: Execute `npm run dev` na pasta quiz-app
- **Projetos**: Use a extensão Live Server do VS Code para projetos HTML
- **Projetos API**: Execute `npm start` nas pastas das APIs respetivas
## Instruções para Testes
## Instruções de Teste
### Testes do Quiz App
### Teste da Aplicação de Quiz
```bash
cd quiz-app
@ -114,7 +114,7 @@ npm run lint # Verificar problemas de estilo de código
npm run build # Verificar se a compilação é bem-sucedida
```
### Testes da API Bancária
### Teste da API Bancária
```bash
cd 7-bank-project/api
@ -124,73 +124,73 @@ node server.js # Verificar se o servidor inicia sem erros
### Abordagem Geral de Testes
- Este é um repositório educativo sem testes automatizados completos
- Testes manuais focam em:
- Exemplos de código executados sem erros
- Este é um repositório educacional sem testes automatizados abrangentes
- O teste manual foca em:
- Exemplos de código executam sem erros
- Links na documentação funcionam corretamente
- Builds dos projetos completam sem falhas
- Builds de projetos completam com sucesso
- Exemplos seguem as melhores práticas
### Verificações Antes da Submissão
### Verificações Pré-Envio
- Execute `npm run lint` nas pastas com package.json
- Verifique se os links markdown são válidos
- Teste exemplos de código no navegador ou Node.js
- Confira se as traduções mantêm a estrutura correta
- Confirme que traduções mantêm a estrutura correta
## Diretrizes de Estilo de Código
### JavaScript
- Utilize sintaxe moderna ES6+
- Siga as configurações padrão de ESLint fornecidas nos projetos
- Use nomes de variáveis e funções significativos para clareza educativa
- Adicione comentários explicativos para os aprendizes
- Formate com Prettier onde configurado
- Use sintaxe moderna ES6+
- Siga configurações padrão do ESLint fornecidas nos projetos
- Use nomes significativos para variáveis e funções para clareza educacional
- Adicione comentários explicativos para os alunos
- Formate usando Prettier onde configurado
### HTML/CSS
- Utilize elementos semânticos HTML5
- Elementos semânticos HTML5
- Princípios de design responsivo
- Convenções claras de nomenclatura de classes
- Convenções claras de nomes de classes
- Comentários explicando técnicas CSS para aprendizes
### Python
- Diretrizes de estilo PEP 8
- Código claro e educativo
- Anotações de tipo quando úteis para aprendizado
- Exemplos de código claros e educativos
- Anotações de tipo onde úteis para o aprendizado
### Documentação Markdown
- Hierarquia clara de cabeçalhos
- Blocos de código com especificação de linguagem
- Hierarquia clara de títulos
- Blocos de código com especificação da linguagem
- Links para recursos adicionais
- Capturas de ecrã e imagens nas pastas `images/`
- Texto alternativo para imagens para acessibilidade
### Organização de Ficheiros
- Lições numeradas sequencialmente (1-getting-started-lessons, 2-js-basics, etc.)
- Cada projeto tem diretórios `solution/` e frequentemente `start/` ou `your-work/`
- Imagens guardadas em pastas `images/` específicas das lições
- Traduções na estrutura `translations/{language-code}/`
- Lição numeradas sequencialmente (1-getting-started-lessons, 2-js-basics, etc.)
- Cada projeto tem diretórios `solution/` e muitas vezes `start/` ou `your-work/`
- Imagens armazenadas em pastas `images/` específicas de cada lição
- Traduções em estrutura `translations/{language-code}/`
## Construção e Implementação
## Construção e Implantação
### Implementação do Quiz App (Azure Static Web Apps)
### Implantação da Aplicação de Quiz (Azure Static Web Apps)
O quiz-app está configurado para implementação no Azure Static Web Apps:
A aplicação quiz-app está configurada para implantação em Azure Static Web Apps:
```bash
cd quiz-app
npm run build # Cria a pasta dist/
# Faz deploy via workflow do GitHub Actions ao fazer push para o main
# Desdobra via workflow do GitHub Actions em push para a main
```
Configuração do Azure Static Web Apps:
- **Local da app**: `/quiz-app`
- **Local de saída**: `dist`
Configuração Azure Static Web Apps:
- **Localização da app**: `/quiz-app`
- **Localização da saída**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Geração de PDF da Documentação
@ -210,73 +210,73 @@ docsify serve # Servir em 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 bundles para produção
- Projetos estáticos: Sem etapa de build, servem ficheiros diretamente
- Projetos Vue: `npm run build` cria bundles de produção
- Projetos estáticos: Sem passo de build, serve arquivos diretamente
## Diretrizes para Pull Requests
### Formato do Título
Use títulos claros e descritivos indicando a área da alteração:
- `[Quiz-app] Adicionar novo quiz para a lição X`
- `[Lesson-3] Corrigir erro tipográfico no projeto terrarium`
- `[Translation] Adicionar tradução em Espanhol para a lição 5`
Use títulos claros e descritivos a indicar a área da alteração:
- `[Quiz-app] Adicionar novo quiz para lição X`
- `[Lesson-3] Corrigir erro de digitação no projeto terrarium`
- `[Translation] Adicionar tradução em espanhol para a lição 5`
- `[Docs] Atualizar instruções de configuração`
### Verificações Necessárias
### Verificações Obrigatórias
Antes de submeter um PR:
1. **Qualidade do Código**:
- Execute `npm run lint` nas pastas dos projetos afetados
- Corrija todos os erros e avisos reportados
- Execute `npm run lint` nas pastas do projeto afetadas
- Corrija todos os erros e avisos do lint
2. **Verificação do Build**:
- Execute `npm run build` se aplicável
- Certifique-se que não haja erros de build
- Garanta que não há erros de build
3. **Validação de Links**:
- Teste todos os links markdown
- Verifique se referências de imagens funcionam
- Verifique as referências de imagens
4. **Revisão de Conteúdo**:
- Revise ortografia e gramática
- Garanta que os exemplos de código estão corretos e educativos
- Verifique se traduções mantêm o significado original
- Garanta que exemplos de código estão corretos e educativos
- Confirme que traduções mantêm o significado original
### Requisitos para Contribuição
- Aceitar o CLA da Microsoft (verificação automática no primeiro PR)
- Concordar com o Microsoft CLA (verificação automática no primeiro PR)
- Seguir o [Código de Conduta Open Source da Microsoft](https://opensource.microsoft.com/codeofconduct/)
- Consulte o [CONTRIBUTING.md](./CONTRIBUTING.md) para diretrizes detalhadas
- Referencie números de issues na descrição do PR se aplicável
- Ver [CONTRIBUTING.md](./CONTRIBUTING.md) para diretrizes detalhadas
- Referenciar números de issues na descrição do PR, se aplicável
### Processo de Revisão
- PRs são revistos por mantenedores e comunidade
- Clareza educativa é priorizada
- PRs revisados por mantenedores e comunidade
- Clareza educacional é prioridade
- Exemplos de código devem seguir as melhores práticas atuais
- Traduções são revistas para precisão e adequação cultural
- Traduções revisadas quanto à precisão e adequação cultural
## Sistema de Tradução
### Tradução Automática
- Utiliza GitHub Actions com workflow co-op-translator
- Traduz automaticamente para 50+ idiomas
- Ficheiros fonte nas pastas principais
- Ficheiros traduzidos nas pastas `translations/{language-code}/`
- Usa GitHub Actions com workflow co-op-translator
- Tradução automática para mais de 50 idiomas
- Ficheiros fonte nos diretórios principais
- Ficheiros traduzidos em pastas `translations/{language-code}/`
### Adição de Melhorias Manuais na Tradução
### Adicionar Melhorias de Tradução Manualmente
1. Localize o ficheiro em `translations/{language-code}/`
2. Faça melhorias preservando a estrutura
3. Assegure que exemplos de código continuam funcionais
4. Teste qualquer conteúdo de quiz localizado
4. Teste quaisquer conteúdos de quiz localizados
### Metadados de Tradução
Os ficheiros traduzidos incluem cabeçalho de metadados:
Ficheiros traduzidos incluem cabeçalho de metadados:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -293,51 +293,51 @@ CO_OP_TRANSLATOR_METADATA:
### Problemas Comuns
**Quiz app não inicia**:
**Aplicação de quiz não inicia**:
- Verifique a versão do Node.js (recomendado v14+)
- Apague `node_modules` e `package-lock.json`, execute `npm install` novamente
- Verifique conflitos de porta (padrão: Vite usa porta 5173)
- Verifique conflitos de porta (padrão: Vite usa a porta 5173)
**Servidor API não inicia**:
- Confirme se o Node.js está na versão mínima (node >=10)
- Veja se a porta já está em uso
- Assegure que todas as dependências estão instaladas com `npm install`
- Verifique se a versão do Node.js cumpre o 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 browser não carrega**:
**Extensão de navegador não carrega**:
- Verifique se o manifest.json está formatado corretamente
- Confira erros na consola do browser
- Siga as instruções específicas do browser para instalação da extensão
- Veja erros no console do navegador
- Siga as instruções específicas para instalação da extensão no navegador
**Problemas no projeto de chat Python**:
- Verifique se o pacote OpenAI está instalado: `pip install openai`
- Confirme se a variável de ambiente GITHUB_TOKEN está definida
- Verifique permissões de acesso aos GitHub Models
- Certifique-se que o pacote OpenAI está instalado: `pip install openai`
- Verifique se a variável de ambiente GITHUB_TOKEN está definida
- Verifique permissões de acesso aos modelos GitHub
**Docsify não serve a documentação**:
**Docsify não serve documentação**:
- Instale docsify-cli globalmente: `npm install -g docsify-cli`
- Execute a partir da raiz do repositório
- Verifique se `docs/_sidebar.md` existe
- Verifique que `docs/_sidebar.md` existe
### Dicas para Ambiente de Desenvolvimento
- Use VS Code com a extensão Live Server para projetos HTML
- Use VS Code com extensão Live Server para projetos HTML
- Instale extensões ESLint e Prettier para formatação consistente
- Use as DevTools do browser para depurar JavaScript
- Para projetos Vue, instale a extensão Vue DevTools para browser
- Use DevTools do navegador para depurar JavaScript
- Para projetos Vue, instale a extensão Vue DevTools no navegador
### Considerações de Performance
- Grande número de ficheiros traduzidos (50+ idiomas) faz os clones completos serem grandes
- Use clone superficial se estiver a trabalhar apenas no conteúdo: `git clone --depth 1`
- Exclua traduções das pesquisas quando trabalhar no conteúdo em inglês
- Processos de build podem ser lentos na primeira execução (npm install, build Vite)
- Grande número de ficheiros traduzidos (50+ idiomas) faz com que clones completos sejam grandes
- Use clone superficial se estiver a trabalhar conteúdo: `git clone --depth 1`
- Exclua traduções das pesquisas ao trabalhar em conteúdo em inglês
- Os processos de build podem ser lentos na primeira execução (npm install, build Vite)
## Considerações de Segurança
### Variáveis de Ambiente
- Chaves API nunca devem ser cometidas no repositório
- Use ficheiros `.env` (já listados em `.gitignore`)
- Chaves de API nunca devem ser comitadas no repositório
- Use ficheiros `.env` (já incluídos no `.gitignore`)
- Documente variáveis de ambiente necessárias nos READMEs dos projetos
### Projetos Python
@ -346,63 +346,63 @@ CO_OP_TRANSLATOR_METADATA:
- Mantenha dependências atualizadas
- Tokens GitHub devem ter permissões mínimas necessárias
### Acesso aos GitHub Models
### Acesso aos Modelos GitHub
- Tokens de Acesso Pessoal (PAT) são necessários para GitHub Models
- Tokens de Acesso Pessoal (PAT) necessários para os Modelos GitHub
- Tokens devem ser guardados como variáveis de ambiente
- Nunca cometa tokens ou credenciais no repositório
- Nunca comite tokens ou credenciais
## Notas Adicionais
### Público-Alvo
- Principiantes completos em desenvolvimento web
- Iniciantes completos em desenvolvimento web
- Estudantes e autodidatas
- Professores a usar o currículo em sala de aula
- Conteúdo desenhado para acessibilidade e construção gradual de competências
- Professores usando o currículo em sala de aula
- Conteúdo projetado para acessibilidade e construção gradual de competências
### Filosofia Educativa
### Filosofia Educacional
- Aproximação baseada em projetos
- Método de aprendizagem baseado em projetos
- Verificações frequentes de conhecimento (quizzes)
- Exercícios práticos de programação
- Exercícios práticos de codificação
- Exemplos de aplicação no mundo real
- Foco nos fundamentos antes dos frameworks
### Manutenção do Repositório
- Comunidade ativa de aprendizes e contribuidores
- Comunidade ativa de aprendizes e contribuintes
- Atualizações regulares de dependências e conteúdo
- Issues e discussões monitorizadas pelos mantenedores
- Issues e discussões monitoradas por mantenedores
- Atualizações de tradução automatizadas via GitHub Actions
### Recursos Relacionados
- [Módulos Microsoft Learn](https://docs.microsoft.com/learn/)
- [Recursos no Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [Recursos Student Hub](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) recomendado para aprendizes
- Cursos adicionais: IA Generativa, Ciência de Dados, ML, currículos IoT disponíveis
- Cursos adicionais: AI Generativa, Ciência de Dados, ML, currículos IoT disponíveis
### Trabalhar com Projetos Específicos
Para instruções detalhadas de projetos individuais, consulte os ficheiros README em:
- `quiz-app/README.md` - Aplicação quiz em Vue 3
Para instruções detalhadas sobre projetos individuais, consulte os arquivos README em:
- `quiz-app/README.md` - Aplicação de quiz Vue 3
- `7-bank-project/README.md` - Aplicação bancária com autenticação
- `5-browser-extension/README.md` - Desenvolvimento de extensão de browser
- `6-space-game/README.md` - Desenvolvimento de jogo baseado em canvas
- `9-chat-project/README.md` - Projeto de assistente de chat IA
- `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 AI
### Estrutura de Monorepo
### Estrutura Monorepo
Embora não seja um monorepo tradicional, este repositório contém múltiplos projetos independentes:
- Cada aula é autónoma
- Cada lição é autónoma
- Projetos não partilham dependências
- Trabalhe em projetos individuais sem afetar os outros
- Clone o repositório completo para ter a experiência do currículo completo
- Clone o repositório completo para a experiência do currículo completo
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**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 na sua língua nativa deve ser considerado a fonte autoritária. Para informações críticas, recomenda-se a tradução profissional por um humano. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas resultantes do uso desta tradução.
**Aviso Legal**:
Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, por favor esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original, na sua língua nativa, deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações erradas resultantes do uso desta tradução.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save