Back to Engineering
22 APRIL 2026

Basics of Programming: What Every Beginner Needs to Know

CA
Compiled by Cypher Async

What Is Programming?

Programming is the act of giving a computer a set of instructions to follow. Computers are extraordinarily fast but completely literal — they do exactly what you tell them to, nothing more.

Your job as a programmer is to translate a human idea into precise, unambiguous instructions the computer can execute.

How a computer executes a program:

  Your Code (.py / .js / .c)
          │
          ▼
  Compiler / Interpreter
  (translates to machine instructions)
          │
          ▼
  CPU executes instructions
          │
          ▼
  Output on screen / file / network

Every program — from a calculator to an AI model — follows this same path.


The Core Concepts

Every programming language — Python, JavaScript, C++, Java — is built on the same fundamental ideas. Master these, and picking up any language becomes far easier.


1. Variables

A variable is a named container for storing data.

# Python
name  = "Riya"
age   = 15
score = 98.5
// JavaScript
let name  = "Riya";
let age   = 15;
let score = 98.5;
// Java
String name  = "Riya";
int    age   = 15;
double score = 98.5;

The concept is identical — only the syntax differs. Think of a variable like a labelled box: the label is the name, the content is the value.

  Memory
  ──────────────────────────────
  │  name  │  "Riya"           │
  ──────────────────────────────
  │  age   │  15               │
  ──────────────────────────────
  │  score │  98.5             │
  ──────────────────────────────

2. Data Types

Not all data is the same. The most common types:

  TYPE        EXAMPLE          WHAT IT HOLDS
  ──────────  ───────────────  ──────────────────────────
  Integer     42               Whole numbers
  Float       3.14             Decimal numbers
  String      "hello"          Text (letters, symbols)
  Boolean     true / false     Yes or No
  List        [1, 2, 3]        Ordered collection of items
  Dictionary  {"key": "val"}   Key-value pairs

Why types matter:

# Adding two integers → arithmetic sum
print(10 + 5)         # 15

# Adding two strings → joins them (concatenation)
print("10" + "5")     # "105"

# Mixing types without care → error
print("10" + 5)       # TypeError!
print("10" + str(5))  # "105" — correct: convert first

3. Operators

Operators perform actions on data:

# Arithmetic
print(10 + 3)    # 13  — addition
print(10 - 3)    # 7   — subtraction
print(10 * 3)    # 30  — multiplication
print(10 / 3)    # 3.33 — division
print(10 // 3)   # 3   — integer division (floor)
print(10 % 3)    # 1   — remainder (modulo)
print(10 ** 2)   # 100 — exponentiation

# Comparison (always return True or False)
print(10 > 5)    # True
print(10 == 5)   # False
print(10 != 5)   # True

# Logical
print(True and False)   # False
print(True or False)    # True
print(not True)         # False

4. Conditionals — Making Decisions

Programs branch based on conditions. Here's the same logic shown as code and as a flowchart:

marks = 72

if marks >= 90:
    print("Grade: A+")
elif marks >= 75:
    print("Grade: A")
elif marks >= 60:
    print("Grade: B")
else:
    print("Grade: C")

# Output: Grade: B

Flowchart:

  marks = 72
      │
      ▼
  marks >= 90? ──YES──► "A+"
      │
      NO
      │
      ▼
  marks >= 75? ──YES──► "A"
      │
      NO
      │
      ▼
  marks >= 60? ──YES──► "B"   ◄── execution lands here
      │
      NO
      │
      ▼
  "C"

5. Loops — Repeating Work

Without loops, printing 100 numbers would require 100 print lines. With a loop, it's 3.

For loop:

for number in range(1, 6):
    print(f"Number: {number}")

# Number: 1
# Number: 2
# Number: 3
# Number: 4
# Number: 5

While loop:

password = ""

while password != "open123":
    password = input("Enter password: ")

print("Access granted.")

Loop flowchart:

  FOR LOOP                        WHILE LOOP
  ────────────────────────        ───────────────────────────
  Set up range / list             Set initial state
          │                               │
          ▼                               ▼
  Any items left? ─NO─► End      Condition true? ─NO─► End
          │                               │
         YES                            YES
          │                               │
          ▼                               ▼
  Run the block                   Run the block
          │                               │
          └──────────────────────────────►┘
                  (loop back)

6. Functions — Reusable Code

A function is a named block of code you can call from anywhere:

def area_of_rectangle(length, width):
    area = length * width
    return area

small_room  = area_of_rectangle(4, 3)    # 12
large_room  = area_of_rectangle(10, 6)   # 60
classroom   = area_of_rectangle(15, 8)   # 120

print(f"Small room:  {small_room} sq m")
print(f"Large room:  {large_room} sq m")
print(f"Classroom:   {classroom} sq m")

How a function call flows:

  Main program              Function: area_of_rectangle
  ────────────              ───────────────────────────
  Call(10, 6)  ──────────► length = 10, width = 6
                                     │
                                     ▼
                               area = 10 * 6 = 60
                                     │
                                     ▼
  receives 60  ◄──────────    return 60
       │
       ▼
  large_room = 60

Good functions do one thing and do it well. If a function is doing three things, split it into three functions.


7. Input and Output

Every useful program takes some input and produces some output:

# Input: from the user
name  = input("Your name: ")
marks = int(input("Your marks: "))

# Processing
if marks >= 60:
    result = "Passed"
else:
    result = "Failed"

# Output: to the screen
print(f"{name}: {result}")

The Input → Process → Output model:

  ┌─────────┐     ┌──────────────┐     ┌──────────┐
  │  INPUT  │────►│   PROCESS    │────►│  OUTPUT  │
  └─────────┘     └──────────────┘     └──────────┘

  Sources:        Operations:           Destinations:
  • User input    • Calculate           • Screen
  • File          • Compare             • File
  • Network API   • Transform           • Network
  • Sensor        • Filter              • Database

This model applies to every program ever written — from a calculator to Netflix's recommendation engine.


8. Algorithms — Thinking Before Coding

An algorithm is a step-by-step procedure for solving a problem. Always design it before you write code.

Example: find the largest number in a list

ALGORITHM (plain English):
──────────────────────────
1. Start with the first number as the "largest so far"
2. Look at each remaining number
3. If it's bigger than the current "largest", update it
4. After checking all numbers, return the "largest"
# Algorithm → Code
def find_largest(numbers):
    largest = numbers[0]             # step 1

    for number in numbers[1:]:       # step 2
        if number > largest:         # step 3
            largest = number

    return largest                   # step 4

scores = [45, 92, 78, 88, 61]
print(find_largest(scores))          # 92

Trace through the execution:

  numbers = [45, 92, 78, 88, 61]

  largest = 45
      │
      ▼
  Check 92 → 92 > 45? YES → largest = 92
      │
      ▼
  Check 78 → 78 > 92? NO  → largest stays 92
      │
      ▼
  Check 88 → 88 > 92? NO  → largest stays 92
      │
      ▼
  Check 61 → 61 > 92? NO  → largest stays 92
      │
      ▼
  Return 92  ✓

9. Debugging — Fixing What's Broken

Bugs are mistakes in code that cause unexpected behaviour. Every programmer debugs — constantly.

# BUG: This should print the average, but it crashes
numbers = [10, 20, 30]
total = 0

for number in numbers:
    total = total + number

average = total / len(numbers)
print(f"Average: {average}")

Debugging flowchart:

  Code doesn't work
          │
          ▼
  Read the error message carefully
          │
          ▼
  Identify which line caused the error
          │
          ▼
  Understand WHY it failed
          │
     ┌────┴──────┐
     │           │
     ▼           ▼
  Logic     Syntax / Type
  error     error
     │           │
     ▼           ▼
  Fix the      Fix the
  logic       syntax
     │           │
     └────┬──────┘
          │
          ▼
  Run again ──► Still broken? ──► Repeat
          │
     Works!
          │
          ▼
        Done ✓

The error message is your friend — it tells you exactly what went wrong and where.


The Learning Path

  BEGINNER                    INTERMEDIATE               ADVANCED
  ────────                    ────────────               ────────
  Variables                   Lists & Dicts              Recursion
  Data types      ──────►     Functions        ──────►   Algorithms
  Conditionals                File I/O                   Data Structures
  Loops                       OOP                        System Design
  Basic I/O                   Libraries                  Architecture

  You are here ─►

Don't skip ahead. Fundamentals compound. A shaky foundation makes everything above it unstable.


The Most Important Habit

Write code every day. Not read about code. Not watch videos about code. Write it.

Even 20 minutes a day compounds into thousands of hours over a year. That's where mastery comes from.


Cypher Async is an offline coding school in Agartala, Tripura, that takes students from zero to job-ready with structured, hands-on instruction. If you want to start your programming journey the right way, we're here.