Skip to content

Commit 70968fa

Browse files
authored
Merge pull request #1585 from microsoft/softchris-pedagogy
pedagogy refurbish
2 parents 7ddf291 + 6c1c2db commit 70968fa

File tree

28 files changed

+7650
-17
lines changed

28 files changed

+7650
-17
lines changed

1-getting-started-lessons/1-intro-to-programming-languages/README.md

Lines changed: 202 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
# Introduction to Programming Languages and Modern Developer Tools
3-
3+
44
Hey there, future developer! 👋 Can I tell you something that still gives me chills every single day? You're about to discover that programming isn't just about computers – it's about having actual superpowers to bring your wildest ideas to life!
55

66
You know that moment when you're using your favorite app and everything just clicks perfectly? When you tap a button and something absolutely magical happens that makes you go "wow, how did they DO that?" Well, someone just like you – probably sitting in their favorite coffee shop at 2 AM with their third espresso – wrote the code that created that magic. And here's what's going to blow your mind: by the end of this lesson, you'll not only understand how they did it, but you'll be itching to try it yourself!
@@ -12,6 +12,23 @@ Today, we're going to explore the incredible tools that make modern web developm
1212
![Intro Programming](../../sketchnotes/webdev101-programming.png)
1313
> Sketchnote by [Tomomi Imura](https://twitter.com/girlie_mac)
1414
15+
```mermaid
16+
journey
17+
title Your Programming Journey Today
18+
section Discover
19+
What is Programming: 5: You
20+
Programming Languages: 4: You
21+
Tools Overview: 5: You
22+
section Explore
23+
Code Editors: 4: You
24+
Browsers & DevTools: 5: You
25+
Command Line: 3: You
26+
section Practice
27+
Language Detective: 4: You
28+
Tool Exploration: 5: You
29+
Community Connection: 5: You
30+
```
31+
1532
## Let's See What You Already Know!
1633

1734
Before we jump into the fun stuff, I'm curious – what do you already know about this programming world? And listen, if you're looking at these questions thinking "I literally have zero clue about any of this," that's not just okay, it's perfect! That means you're in exactly the right place. Think of this quiz like stretching before a workout – we're just warming up those brain muscles!
@@ -48,6 +65,15 @@ When you learn to program, you're not just picking up a new skill – you're bec
4865

4966
**Fun Fact Hunt**: Here's something super cool to look up when you have a spare moment – who do you think was the world's first computer programmer? I'll give you a hint: it might not be who you're expecting! The story behind this person is absolutely fascinating and shows that programming has always been about creative problem-solving and thinking outside the box.
5067

68+
### 🧠 **Check-in Time: How Are You Feeling?**
69+
70+
**Take a moment to reflect:**
71+
- Does the idea of "giving instructions to computers" make sense to you now?
72+
- Can you think of a daily task you'd like to automate with programming?
73+
- What questions are bubbling up in your mind about this whole programming thing?
74+
75+
> **Remember**: It's totally normal if some concepts feel fuzzy right now. Learning programming is like learning a new language – it takes time for your brain to build those neural pathways. You're doing great!
76+
5177
## Programming Languages Are Like Different Flavors of Magic
5278

5379
Okay, this is going to sound weird, but stick with me – programming languages are a lot like different types of music. Think about it: you've got jazz, which is smooth and improvisational, rock that's powerful and straightforward, classical that's elegant and structured, and hip-hop that's creative and expressive. Each style has its own vibe, its own community of passionate fans, and each one is perfect for different moods and occasions.
@@ -58,6 +84,46 @@ But here's what absolutely blows my mind every time I think about it: these lang
5884

5985
### Popular Programming Languages and Their Uses
6086

87+
```mermaid
88+
mindmap
89+
root((Programming Languages))
90+
Web Development
91+
JavaScript
92+
Frontend Magic
93+
Interactive Websites
94+
TypeScript
95+
JavaScript + Types
96+
Enterprise Apps
97+
Data & AI
98+
Python
99+
Data Science
100+
Machine Learning
101+
Automation
102+
R
103+
Statistics
104+
Research
105+
Mobile Apps
106+
Java
107+
Android
108+
Enterprise
109+
Swift
110+
iOS
111+
Apple Ecosystem
112+
Kotlin
113+
Modern Android
114+
Cross-platform
115+
Systems & Performance
116+
C++
117+
Games
118+
Performance Critical
119+
Rust
120+
Memory Safety
121+
System Programming
122+
Go
123+
Cloud Services
124+
Scalable Backend
125+
```
126+
61127
| Language | Best For | Why It's Popular |
62128
|----------|----------|------------------|
63129
| **JavaScript** | Web development, user interfaces | Runs in browsers and powers interactive websites |
@@ -82,6 +148,25 @@ In programming terms:
82148

83149
Guess which ones I'm going to suggest you start with? 😉 High-level languages are like having training wheels that you never actually want to take off because they make the whole experience so much more enjoyable!
84150

151+
```mermaid
152+
flowchart TB
153+
A["👤 Human Thought:<br/>'I want to calculate Fibonacci numbers'"] --> B{Choose Language Level}
154+
155+
B -->|High-Level| C["🌟 JavaScript/Python<br/>Easy to read and write"]
156+
B -->|Low-Level| D["⚙️ Assembly/C<br/>Direct hardware control"]
157+
158+
C --> E["📝 Write: fibonacci(10)"]
159+
D --> F["📝 Write: mov r0,#00<br/>sub r0,r0,#01"]
160+
161+
E --> G["🤖 Computer Understanding:<br/>Translator handles complexity"]
162+
F --> G
163+
164+
G --> H["💻 Same Result:<br/>0, 1, 1, 2, 3, 5, 8, 13..."]
165+
166+
style C fill:#e1f5fe
167+
style D fill:#fff3e0
168+
style H fill:#e8f5e8
169+
```
85170

86171
### Let Me Show You Why High-Level Languages Are So Much Friendlier
87172

@@ -375,8 +460,25 @@ switch (dayOfWeek) {
375460

376461
> 💡 **Real-world analogy**: Think of control flow like having the world's most patient GPS giving you directions. It might say "If there's traffic on Main Street, take the highway instead. If construction is blocking the highway, try the scenic route." Programs use exactly the same type of conditional logic to respond intelligently to different situations and always give users the best possible experience.
377462
378-
**What's coming up next**: We're going to have an absolute blast diving deeper into these concepts as we continue this incredible journey together! Right now, just focus on feeling that excitement about all the amazing possibilities ahead of you. The specific skills and techniques will stick naturally as we practice together – I promise this is going to be so much more fun than you might expect!
463+
### 🎯 **Concept Check: Building Blocks Mastery**
464+
465+
**Let's see how you're doing with the fundamentals:**
466+
- Can you explain the difference between a variable and a statement in your own words?
467+
- Think of a real-world scenario where you'd use an if-then decision (like our voting example)
468+
- What's one thing about programming logic that surprised you?
469+
470+
**Quick confidence booster:**
471+
```mermaid
472+
flowchart LR
473+
A["📝 Statements<br/>(Instructions)"] --> B["📦 Variables<br/>(Storage)"] --> C["🔀 Control Flow<br/>(Decisions)"] --> D["🎉 Working Program!"]
474+
475+
style A fill:#ffeb3b
476+
style B fill:#4caf50
477+
style C fill:#2196f3
478+
style D fill:#ff4081
479+
```
379480

481+
**What's coming up next**: We're going to have an absolute blast diving deeper into these concepts as we continue this incredible journey together! Right now, just focus on feeling that excitement about all the amazing possibilities ahead of you. The specific skills and techniques will stick naturally as we practice together – I promise this is going to be so much more fun than you might expect!
380482

381483
## Tools of the Trade
382484

@@ -388,6 +490,26 @@ I'm practically bouncing in my chair thinking about sharing these with you becau
388490

389491
And here's the part that still gives me chills: these aren't "beginner tools" that you'll outgrow. These are the exact same professional-grade tools that developers at Google, Netflix, and that indie app studio you love are using right this very moment. You're going to feel like such a pro using them!
390492

493+
```mermaid
494+
graph TD
495+
A["💡 Your Idea"] --> B["⌨️ Code Editor<br/>(VS Code)"]
496+
B --> C["🌐 Browser DevTools<br/>(Testing & Debugging)"]
497+
C --> D["⚡ Command Line<br/>(Automation & Tools)"]
498+
D --> E["📚 Documentation<br/>(Learning & Reference)"]
499+
E --> F["🚀 Amazing Web App!"]
500+
501+
B -.-> G["🤖 AI Assistant<br/>(GitHub Copilot)"]
502+
C -.-> H["📱 Device Testing<br/>(Responsive Design)"]
503+
D -.-> I["📦 Package Managers<br/>(npm, yarn)"]
504+
E -.-> J["👥 Community<br/>(Stack Overflow)"]
505+
506+
style A fill:#fff59d
507+
style F fill:#c8e6c9
508+
style G fill:#e1f5fe
509+
style H fill:#f3e5f5
510+
style I fill:#ffccbc
511+
style J fill:#e8eaf6
512+
```
391513

392514
### Code Editors and IDEs: Your New Digital Best Friends
393515

@@ -588,8 +710,25 @@ Professional developers spend a significant portion of their time reading docume
588710

589711
> 📚 **Study Strategy**: Don't try to memorize documentation – instead, learn how to navigate it efficiently. Bookmark frequently-used references and practice using the search functions to find specific information quickly.
590712
591-
**Food for thought**: Here's something interesting to ponder – how do you think the tools for building websites (development) might be different from tools for designing how they look (design)? It's like the difference between being an architect who designs a beautiful house and the contractor who actually builds it. Both are crucial, but they need different toolboxes! This kind of thinking will really help you see the bigger picture of how websites come to life.
713+
### 🔧 **Tool Mastery Check: What Resonates With You?**
714+
715+
**Take a moment to consider:**
716+
- Which tool are you most excited to try first? (There's no wrong answer!)
717+
- Does the command line still feel intimidating, or are you curious about it?
718+
- Can you imagine using browser DevTools to peek behind the curtain of your favorite websites?
719+
720+
```mermaid
721+
pie title "Developer Time Spent With Tools"
722+
"Code Editor" : 40
723+
"Browser Testing" : 25
724+
"Command Line" : 15
725+
"Reading Docs" : 15
726+
"Debugging" : 5
727+
```
728+
729+
> **Fun insight**: Most developers spend about 40% of their time in their code editor, but notice how much time goes to testing, learning, and problem-solving. Programming isn't just about writing code – it's about crafting experiences!
592730
731+
**Food for thought**: Here's something interesting to ponder – how do you think the tools for building websites (development) might be different from tools for designing how they look (design)? It's like the difference between being an architect who designs a beautiful house and the contractor who actually builds it. Both are crucial, but they need different toolboxes! This kind of thinking will really help you see the bigger picture of how websites come to life.
593732

594733
## GitHub Copilot Agent Challenge 🚀
595734

@@ -658,3 +797,63 @@ You've covered a lot of ground today, and that's something to be proud of! Now c
658797
[Reading the Docs](assignment.md)
659798

660799
> 💡 **A little nudge for your assignment**: I'd absolutely love to see you explore some tools we haven't covered yet! Skip the editors, browsers, and command line tools we've already talked about – there's this whole incredible universe of amazing development tools out there just waiting to be discovered. Look for ones that are actively maintained and have vibrant, helpful communities (these tend to have the best tutorials and the most supportive people when you inevitably get stuck and need a friendly hand).
800+
801+
---
802+
803+
## 🚀 Your Programming Journey Timeline
804+
805+
### **What You Can Do in the Next 5 Minutes**
806+
- [ ] Bookmark 2-3 programming language websites that caught your attention
807+
- [ ] Download Visual Studio Code if you haven't already
808+
- [ ] Open your browser's DevTools (F12) and click around any website
809+
- [ ] Join one programming community (Dev.to, Reddit r/webdev, or Stack Overflow)
810+
811+
### **What You Can Accomplish This Hour**
812+
- [ ] Complete the post-lesson quiz and reflect on your answers
813+
- [ ] Set up VS Code with the GitHub Copilot extension
814+
- [ ] Try a "Hello World" example in 2 different programming languages online
815+
- [ ] Watch a "Day in the Life of a Developer" video on YouTube
816+
- [ ] Start your programming language detective work (from the challenge)
817+
818+
### 📅 **Your Week-Long Adventure**
819+
- [ ] Complete the assignment and explore 3 new development tools
820+
- [ ] Follow 5 developers or programming accounts on social media
821+
- [ ] Try building something tiny in CodePen or Replit (even just "Hello, [Your Name]!")
822+
- [ ] Read one developer blog post about someone's coding journey
823+
- [ ] Join a virtual meetup or watch a programming talk
824+
- [ ] Start learning your chosen language with online tutorials
825+
826+
### 🗓️ **Your Month-Long Transformation**
827+
- [ ] Build your first small project (even a simple webpage counts!)
828+
- [ ] Contribute to an open-source project (start with documentation fixes)
829+
- [ ] Mentor someone who's just starting their programming journey
830+
- [ ] Create your developer portfolio website
831+
- [ ] Connect with local developer communities or study groups
832+
- [ ] Start planning your next learning milestone
833+
834+
### 🎯 **Final Reflection Check-in**
835+
836+
**Before you move on, take a moment to celebrate:**
837+
- What's one thing about programming that excited you today?
838+
- Which tool or concept do you want to explore first?
839+
- How do you feel about starting this programming journey?
840+
- What's one question you'd like to ask a developer right now?
841+
842+
```mermaid
843+
journey
844+
title Your Confidence Building Journey
845+
section Today
846+
Curious: 3: You
847+
Overwhelmed: 4: You
848+
Excited: 5: You
849+
section This Week
850+
Exploring: 4: You
851+
Learning: 5: You
852+
Connecting: 4: You
853+
section Next Month
854+
Building: 5: You
855+
Confident: 5: You
856+
Helping Others: 5: You
857+
```
858+
859+
> 🌟 **Remember**: Every expert was once a beginner. Every senior developer once felt exactly like you do right now – excited, maybe a little overwhelmed, and definitely curious about what's possible. You're in amazing company, and this journey is going to be incredible. Welcome to the wonderful world of programming! 🎉

0 commit comments

Comments
 (0)