Programming Foundations

Understand programming. One idea at a time.

Start with values and decisions, follow small examples, then learn to organize data and build reliable programs. No prior coding experience needed.

Choose your starting point

New to Programming Foundations? Start with Foundations. You can switch anytime.

Foundations

No account or installation needed. Your progress stays on this device.

Mallikarjuna Mallisetty, author
About the author

Mallikarjuna Mallisetty

General programming

Mallikarjuna shares practical programming tutorials and foundational concepts designed to help developers learn by building and experimenting.

View LinkedIn profile ↗

Your learning path

All lessons

63 lessons232 code examples127 quiz questions

Your progress is saved on this device.

Estimated time includes reading, exploring code and answering quizzes. Learn at your own pace.

Start with the Foundations

4 lessons · 64 min
  1. What Is Programming?5code examples2quiz questions17minutes estimated learning time
  2. How Computers Read Code1code examples2quiz questions10minutes estimated learning time
  3. Compilers and Interpreters11code examples2quiz questions21minutes estimated learning time
  4. Programming Styles5code examples2quiz questions16minutes estimated learning time

Values and Types

5 lessons · 76 min
  1. Variables and Values3code examples2quiz questions11minutes estimated learning time
  2. Basic Data Types7code examples2quiz questions15minutes estimated learning time
  3. Collections and Records7code examples2quiz questions15minutes estimated learning time
  4. Static and Dynamic Typing7code examples2quiz questions15minutes estimated learning time
  5. Converting Between Types7code examples3quiz questions20minutes estimated learning time

Operators and Expressions

5 lessons · 48 min
  1. Arithmetic Operators4code examples2quiz questions10minutes estimated learning time
  2. Comparing Values4code examples2quiz questions9minutes estimated learning time
  3. AND, OR and NOT4code examples2quiz questions9minutes estimated learning time
  4. Updating Values4code examples2quiz questions10minutes estimated learning time
  5. Working with Bits4code examples2quiz questions10minutes estimated learning time

Make Decisions

4 lessons · 32 min
  1. Making Decisions3code examples2quiz questions8minutes estimated learning time
  2. Combining Decisions3code examples2quiz questions8minutes estimated learning time
  3. Choosing Among Named Cases3code examples2quiz questions8minutes estimated learning time
  4. Truthy and Falsy Values3code examples2quiz questions8minutes estimated learning time

Repeat with Loops

3 lessons · 25 min
  1. Repeating Work with Loops4code examples2quiz questions9minutes estimated learning time
  2. Break, Continue and Pass3code examples2quiz questions8minutes estimated learning time
  3. Making Loops Stop3code examples2quiz questions8minutes estimated learning time

Functions and Scope

4 lessons · 33 min
  1. Functions: Name a Useful Task3code examples2quiz questions8minutes estimated learning time
  2. Inputs and Results of Functions4code examples2quiz questions9minutes estimated learning time
  3. Variable Scope3code examples2quiz questions8minutes estimated learning time
  4. Recursion: Solve a Smaller Problem3code examples2quiz questions8minutes estimated learning time

Organize Data

7 lessons · 57 min
  1. Arrays: Keep Values in Order4code examples2quiz questions9minutes estimated learning time
  2. Sets: Keep Unique Values3code examples2quiz questions8minutes estimated learning time
  3. Dictionaries: Look Up by Key3code examples2quiz questions8minutes estimated learning time
  4. Stacks: Last In, First Out3code examples2quiz questions8minutes estimated learning time
  5. Queues: First In, First Out3code examples2quiz questions8minutes estimated learning time
  6. Linked Lists: Follow the Next Link3code examples2quiz questions8minutes estimated learning time
  7. Choose a Data Structure3code examples2quiz questions8minutes estimated learning time

Objects and Responsibilities

8 lessons · 64 min
  1. Classes and Objects3code examples2quiz questions8minutes estimated learning time
  2. Encapsulation: Protect Valid State3code examples2quiz questions8minutes estimated learning time
  3. Abstraction: Use a Clear Interface3code examples2quiz questions8minutes estimated learning time
  4. Inheritance: Extend a Shared Contract3code examples2quiz questions8minutes estimated learning time
  5. Polymorphism: One Operation, Different Behavior3code examples2quiz questions8minutes estimated learning time
  6. Construction and Cleanup3code examples2quiz questions8minutes estimated learning time
  7. Instance and Class Members3code examples2quiz questions8minutes estimated learning time
  8. Design Objects with Clear Responsibilities3code examples2quiz questions8minutes estimated learning time

Find and Handle Errors

4 lessons · 32 min
  1. Syntax, Runtime and Logic Errors3code examples2quiz questions8minutes estimated learning time
  2. Handling Errors with Try and Catch3code examples2quiz questions8minutes estimated learning time
  3. Give Errors a Useful Identity3code examples2quiz questions8minutes estimated learning time
  4. Debugging: Compare Expected and Actual3code examples2quiz questions8minutes estimated learning time

Files and Paths

4 lessons · 36 min
  1. Reading and Writing Files4code examples2quiz questions9minutes estimated learning time
  2. Text and Binary Files4code examples2quiz questions9minutes estimated learning time
  3. Handling File Failures4code examples2quiz questions9minutes estimated learning time
  4. Relative and Absolute Paths4code examples2quiz questions9minutes estimated learning time

Functions as Building Blocks

5 lessons · 40 min
  1. Functions as Values2code examples2quiz questions7minutes estimated learning time
  2. Map, Filter and Reduce3code examples2quiz questions8minutes estimated learning time
  3. Small Anonymous Functions4code examples2quiz questions9minutes estimated learning time
  4. Pure Functions and Unchanged Inputs3code examples2quiz questions8minutes estimated learning time
  5. Closures and Higher-Order Functions3code examples2quiz questions8minutes estimated learning time

Work That Finishes Later

5 lessons · 42 min
  1. Work That Finishes Later3code examples2quiz questions8minutes estimated learning time
  2. Synchronous and Asynchronous Order2code examples2quiz questions7minutes estimated learning time
  3. Callbacks, Promises and Futures3code examples2quiz questions8minutes estimated learning time
  4. Async and Await4code examples2quiz questions9minutes estimated learning time
  5. Networking, Timers and UI Events4code examples2quiz questions10minutes estimated learning time

Build with Confidence

5 lessons · 47 min
  1. Write Code People Can Read3code examples2quiz questions8minutes estimated learning time
  2. Reuse a Shared Rule3code examples2quiz questions8minutes estimated learning time
  3. Version Control with Git4code examples2quiz questions10minutes estimated learning time
  4. Modules and Project Organization6code examples2quiz questions12minutes estimated learning time
  5. Tests and Code Reviews3code examples2quiz questions9minutes estimated learning time

Preview a lesson

Follow the highlighted line, see the values change, then predict the output.

Execution workspace

Choose a sample and follow its execution. Guided simulation.

Code
JavaScript
let science = 35;
const originalScience = science;
science = science + 5;
console.log(science);
console.log(originalScience);
Live state

Top-level scope

science→40 (number)
originalScience→35 (number)
This step

Display the original mark, 35. The two names now hold different numeric values.

Terminal
Output
40
35

What do you expect this program to print?