At its core, programming is simply the act of writing a strict set of instructions for a machine. Computers are infinitely fast, but they are infinitely
stupid. They do exactly what you tell them to do—no more, no less.
They cannot guess your intentions.
Imagine writing directions for a robot to make a cup of coffee.
You can't say "make coffee." You have to say: "Walk to the kitchen. Open the cabinet. Take one mug. Place
it on the counter. Open the coffee jar..." and so on, step by step. That is programming.
The "Blame" Rule
When a program crashes, who is to blame? Always the person who wrote the code.
Even when AI (ChatGPT, GitHub Copilot) writes code for you—if the
code fails, it is your fault as the prompter. You must
verify the logic. The computer never makes mistakes; it only exposes
ours.
Visualizing Logic: Flowcharts
Before writing code, programmers plan the logic using flowcharts. Each shape represents a different type of instruction:
Oval
Start / EndWhere the program begins and terminates.
Rect
Process / ActionDoing math or executing a command.
◇
DecisionAsking a Yes/No question to branch logic.
▱
Input / OutputReading user data or printing to screen.
Here is a classic real-world scenario: "Should I bring an umbrella?"
2
Programming Languages & Stacks
Why are there so many programming languages? Just like human
languages (English, Mandarin, Spanish), different programming
languages evolved to solve different problems.
High-Level Languages
Closer to human English. Easy to read, quick to write. The
computer translates it in the background. Great for web and
AI. Examples: Python, JavaScript, Java.
Low-Level Languages
Closer to raw machine code (1s and 0s). Harder to write, but
blazing fast. Great for gaming engines and operating
systems. Examples: C, C++, Assembly.
The Software Stack
Modern software is rarely built with just one language. It is
built in layers called a Tech Stack. Think of
it like a restaurant:
3
Data Types & Memory
Programs need memory to remember things. Think of your
computer's RAM as a massive warehouse full of empty boxes. When
you create a Variable, you slap a sticky note
with a name onto a box and put a value inside.
But boxes come in different sizes. You can't pour water into a
cardboard box. This is why we have Data Types—they define the shape and size of each box.
intInteger
Whole numbers e.g., 42, -7
floatDecimal
Floating points e.g., 3.14
boolBoolean
True / False Like a light switch
charCharacter
Single letters e.g., 'A'
Advanced: Pointers & References (C/C++)
In languages like C and C++, you don't just work with the data
inside boxes—you work with the physical warehouse addresses.
→Pointer: A slip of paper with the aisle number
written on it. It holds the address of another box, not
data itself.
&Reference: A second sticky note on an existing
box. Any change through the nickname directly affects the original.
Course Completed!
You have learned the absolute fundamentals of programming. Ready
to build real software?