Learn to speak Computer
𦴠A webpage is a body
Every page on the internet β Instagram, Netflix, Vantage Circle β is made of exactly three ingredients:
𦴠HTML is the skeleton β a boring list of what exists: a box, a picture, a heading, a button. No beauty. No behavior. Just bones.
π¨ CSS is the clothes & makeup β it takes the bones and says βyou, be coral. You, get rounded corners. You, float with a soft shadow.β
π§ JavaScript is the brain & muscles β it makes things happen: clicks, counting, loading data.
π¨ CSS β your kingdom π
CSS works like a dress code memo: you write a rule that says who it applies to (the βselectorβ, like .badge) and what they must wear (the properties, like border-radius: 20px).
The βCβ stands for Cascading β rules flow down like a waterfall, and when two rules argue about the same thing, the more specific one (or the one written later) wins. That's the whole drama of CSS in one sentence.
And !important? That's a rule screaming to skip the queue. It wins instantly β but now nobody else can ever override it politely. That's why your project has a lint rule banning it. It's the villain. π¦Ή
βοΈ SVG β drawings made of math
A photo (JPG/PNG) is a grid of colored dots β pixels. Zoom in, and the dots get big and blurry. π¦π¦π¦
An SVG stores no dots at all. It stores instructions: βdraw a circle at the center, radius 6. Now a ribbon below it.β The computer re-draws it fresh at ANY size β so it is never blurry. It's a recipe, not a photo of the cake. π
blurry dots π΅
crisp forever β¨
π§± Components β LEGO city
Imagine writing Preetam's profile card by handβ¦ then writing it AGAIN for every one of 2 million employees. Madness. π€―
Instead, developers build a component: one reusable mold π§ (like a waffle iron). Pour in different data β name, department, awards β and out comes a fresh card every time. Same shape, different filling.
That's what Angular (the framework your app is built with) does all day. Your codebase is a LEGO city of components: vc-profile-widget, vc-side-icon⦠every vc- thing you've seen me mention is a LEGO brick.
π DAY 2
β° Git β the time machine
Git is a magic photo album for code. Every commit πΈ is a labelled snapshot of every file in the project at that moment. Broke something on Tuesday? Flip back to Monday's photo and compare. Nothing is ever truly lost.
A branch πΏ is a parallel universe. master is the official universe. Your feat/ui-design-tokens-phase-1 is a sandbox copy where your design-token experiments live safely β when the work is ready, the universes get merged.
And push? That's publishing your snapshots to the team's shared cloud album. Committing is private; pushing is public π’ β which is exactly why your rule with me is βnever push without permission.β
π The build kitchen
npm is a grocery delivery service π. The file package.json is the shopping list, and npm install fills your fridge (a folder called node_modules) with thousands of ingredients other developers already cooked.
The dev server is your personal kitchen π¨βπ³. npm run start:dev:proxify cooks the whole app and serves it hot at localhost:4200 β a private restaurant only YOUR computer can visit.
Best part: watch mode. The chef literally watches your files. Save a .scss file β he notices β re-cooks just that dish β your browser gets the fresh version in seconds. (That βcompilingβ¦β wait this morning? The chef's first big cook of the day.)
Hello Vantage! π
ποΈ Auth β the nightclub bouncer
When you log in, the bouncer checks your ID (email + password) once, then hands you a wristband β a token: a long random code. From then on, every single request your app makes shows the wristband, not your password.
But Club Vantage has a strict rule: ONE wristband per person. If your account logs in somewhere else, the club prints a NEW wristband and cancels yours. Next time you knock β π« bounced to /site/logout.
Sound familiar? That's exactly what happened to you this morning. And get-auth.js is our trick: it quietly logs in again and writes the fresh wristband into custom-auth.ts.
Try getting in!
π§ TypeScript β the forbidden room
Remember the brain (JavaScript) from Lesson 1? TypeScript is JavaScript with a strict grammar teacher π©βπ« standing behind it. Every box gets a label β a type: awards: number means βonly numbers may live here.β
Put the wrong thing in a box, and the teacher refuses to even build the app. Annoying? A little. But it catches mistakes before 2 million employees ever see them β instead of the app exploding in their faces. π₯
So why is it your forbidden room? Because .ts files are the app's brain and behavior. Changing a wardrobe (SCSS) can at worst look funny. Changing the brain is surgery. The rule isn't βyou can'tβ β it's βnot yet.β (And hey β today you peeked inside. π)
π Bootcamp Certificate
has officially stopped being scared of
Welcome to Vantage City ποΈ
ποΈ The City Map β what lives where
Your repo (vantage-web) is a city. Every folder is a district. Click any district below to learn what it is and β most importantly β whether YOU are allowed to renovate there. π’ = your playground Β· π‘ = enter with a grown-up (ask first) Β· π΄ = do not touch (rules say so).
Pick a district!
𧬠Anatomy of a component β the file family
Remember the LEGO molds from the playground? In Angular, every mold is actually a little family of files living in one folder. Here's the REAL family behind Preetam's profile card. Click each member:
Every component in the city follows this exact pattern. Once you know one family, you know them ALL. There are hundreds β header, footer, select-delegationβ¦ same family photo every time.
πͺ The 6 template spells
When you open any .html file in this app, it's normal HTML plus a handful of Angular spells. There are really only six you'll meet constantly. Learn these and you can read 95% of every template in the codebase. Click each card to open it β every example is real code from YOUR repo:
π The Wardrobe Dept β YOUR design system
Styling in this app flows in three layers, like dressing in winter:
1οΈβ£ Global layer β styles.scss + the files in post-assets/scss/custom/. Rules for the WHOLE city. Your buttons.scss lives here β the law book of buttons.
2οΈβ£ Design tokens β named values like --btn-height: 40px. Change the token once β every button in the city updates. This is literally your branch: feat/ui-design-tokens-phase-1 swapped ~3,876 hardcoded values for tokens!
3οΈβ£ Component layer β each component's own .scss. Angular puts an invisible name-tag on every component's elements (βencapsulationβ), so these clothes only fit this one body and can't accidentally dress strangers.
π¦ The traffic-light game β where may Sayani dig?
Your project has real safety rules (they're written in a file called CLAUDE.md β yes, rules for ME too!). Let's turn them into a game. For each job, pick the light: π’ go freely Β· π‘ ask first, big caution Β· π΄ needs explicit approval / don't.
π A day in your developer life
Here's your actual daily rhythm β the one we already live together. Press play and watch a full day go by:
π The toolbox β flip cards
Names you'll hear in standups and PRs. Tap a card to flip it. No memorizing β just so nothing sounds scary anymore:
πΉ The Boss Quiz β think like a Vantage dev
πΊοΈ Atlas Master
can now navigate Vantage City: every district, every file family, every spell, her own wardrobe department, and exactly where she's allowed to dig. ποΈ
Next: open a real file together and renovate something. The city is yours.
Module 3: Reading Real Code π
π± New bites sprout here every weekday morning!
come back tomorrow for the next one
Module 4: Git & the Cloud π
πΈ Git, properly β the TWO albums
Here's the secret most beginners miss: there are TWO albums.
π» Your local album β on your laptop. commit πΈ glues a snapshot in here. Nobody else can see it.
βοΈ The cloud album β on GitHub. push π€ mails copies of your new photos up there for the whole team. pull π₯ fetches the photos teammates mailed.
That's why "committed" and "on GitHub" are different things β and why the golden rule "never push without permission" makes sense: committing is private scribbling, pushing is publishing. π’
πͺ΅ Your desk (working copy)
π» Local album (laptop)
βοΈ Cloud album (GitHub)
π₯ Merge conflicts β two pencils, one line
You edit a line. A teammate edits the same line. Both albums try to merge⦠and git faces an impossible question: whose work survives?
Git refuses to guess β guessing could silently destroy someone's work. Instead it does something crude but honest: it glues BOTH versions into the file with ugly markers, and the file won't even compile until a human picks the winner. π₯ͺ
That's not git being broken β that's git being respectful. Some decisions belong to people.
π¦ vs π β GitHub is NOT a website
π¦ GitHub = storage. Your private filing cabinet: source files + every snapshot ever. Visitors never touch it.
π Cloudflare = hosting. Its servers hold a copy of your page and serve it to the whole world at sayani-dev-school.pages.dev.
π Deploy = the courier carrying a fresh copy from cabinet β billboard. Two copies, two jobs β and that's why a private repo can power a public website.
π¦ GitHub
π Cloudflare
π© Visitor
π€ The machine that runs this school
This very page updates itself every weekday morning. Here's the full machine, gear by gear:
π€ A cloud agent writes the next lesson and pushes it to the GitHub album. The push wakes βοΈ a GitHub Action β a robot that lives inside the repo and runs whenever new photos arrive.
The robot can't just walk into Cloudflare β it must show a badge: a secret API token π« stored in the repo's locked secrets vault (never in the code itself β secrets in code is the #1 beginner disaster).
Badge accepted β fresh copy delivered β π the live site updates. Total human effort: zero. β¨
π You now understand the ENTIRE machine you own
albums β conflicts β couriers β clouds β robots with badges. When a developer says "I'll push it, the pipeline will deploy it" β that's not magic anymore. That's your machine.
~ end of module 4 β see you in tomorrow's bite π ~