Think Like a Programmer
by V. Anton Spraul · No Starch Press
Teaches problem-solving strategy rather than syntax, working through C++ exercises on arrays, pointers, recursion, classes, and code reuse. Readers practice decomposing unfamiliar problems into solvable pieces and building solutions without a template to copy.
This link may earn us a small commission at no extra cost to you. Affiliate disclosure
More resources on Programming Fundamentals
nand2tetris.org
Nand2Tetris.org offers a hands-on computer-architecture course that guides you from basic NAND gates to a working Hack computer and software stack. It provides project descriptions, HDL files, simulators, and tools (assembler, VM translator, compiler) plus links to the accompanying textbook.
LeetCode
Online judge with thousands of algorithm and data-structure problems sorted by difficulty, topic and company, plus timed contests, discussion threads and study plans. Regular practice builds fluency with common interview problem patterns and writing correct, efficient code under time pressure.
Structure and Interpretation of Computer Programs (MIT 6.001)
The original course behind SICP: procedural and data abstraction, higher-order procedures, recursion, state and mutation, object-oriented design and building interpreters in Scheme. 20 lecture videos, notes, programming projects and exams with solutions teach learners to analyze and construct computational systems.
CS50 Harvard
The official course site for CS50x, Harvard's introduction to computer science, taught by David J. Malan. Eleven weeks of lectures, problem sets, and a final project covering C, memory, Python, SQL, and web development.
12 Beginner Python Projects - Coding Course
A freeCodeCamp video course that walks through building twelve small Python programs from scratch, one after another. It gives beginners practice applying loops, functions, and standard libraries in complete programs rather than isolated exercises.
Teach Yourself Computer Science
Oz Nova and Myles Byrne's opinionated syllabus for self-taught engineers, naming one best book and video course for each of nine core subjects. Gives a defensible study order and rough hour budgets per topic.