You know C++.
Now learn how to build real software with it.

Go beyond small examples and build one complete C++ application while learning modern architecture, CMake, testing, Git, CI, Docker, Qt, and maintainable design — all in one practical, hands-on workflow.

Read a free sample
No More Helloworlds paperback on a software developer's desk

What readers are saying

Practical. Focused. Exactly what modern C++ developers need.

“The book contains a lot of the information and recommendations I used to share with my teams. Now I can simply say, ‘Read these chapters,’ instead of trying to find some obsolete page on a wiki or Confluence.”

Lieven De Cock C++ consultant and trainer specialized in modern C++

“One challenge I’ve repeatedly faced over the years is finding the right resource for interns and junior developers: something practical and comprehensive, covering not only C++ fundamentals but also architecture, processes, tools, and the way real-world software is built. For me, No More HelloWorlds is exactly that missing piece.”

Ali Jafarabadi Co-founder and CTO of Satrap inc.

“I don’t feel like I’m just memorizing definitions or concepts. I actually find myself imagining how I would build an application.”

Vennapu Reddy Anil Kumar Systems Software Engineer

“My biggest takeaway so far: ‘Don’t just write code that works. Build a project that can evolve.’ It has changed the way I think about my own C++ projects. Instead of asking only, ‘How do I implement this?’, I’m starting to ask, ‘How should I structure this so it remains maintainable as it grows?”

Arjun Solanki Aspiring Software Development Engineer
One application. One complete workflow.

See how the pieces fit together.

Learn each tool in context instead of treating professional C++ development as a pile of unrelated topics.

IdeaDefine the application
→
ArchitectureDesign modules & boundaries
→
CMakeModel dependencies
→
C++Implement clean APIs
→
TestingUnit & integration tests
→
CIAutomate builds
→
ApplicationA working C++ app
The project you follow

Build a grep-like desktop application.

The book develops a realistic file-search application so architectural choices can be traced all the way into C++ code, tests, and build targets.

The match-search application built in the book
What you'll actually learn

Engineering skills, not another syntax tour.

Application architecture layers

Architecture

Think in responsibilities, modules, boundaries, public APIs, and dependencies before jumping into implementation.

add_library(files-search STATIC
  impl/SearcherImpl.h
  impl/SearcherImpl.cpp
)

target_sources(files-search
  PUBLIC
    FILE_SET HEADERS
    BASE_DIRS include
    FILES
      include/files-search/Searcher.h
)
target_include_directories(files-search 
     PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")

Modern CMake

Use targets and dependency visibility to make your build system reflect and protect your architecture.

TEST(MatchSeekerTest, EmptyStream) {
  std::stringstream ss;
  MatchesCollectorMock matchesCollector;

  EXPECT_CALL(matchesCollector,
    matchedLine(_)).Times(0);

  auto seeker = MatchSeekerImpl(
    std::regex(".+"));
  seeker.seek(ss, matchesCollector);
}

Testing

Design for testability and build unit and integration tests as part of the normal development workflow.

Inside the book

Real diagrams. Real code. Real project decisions.

See the sample →
Architecture callback diagram from the book
Architecture across modules See how interfaces and implementations cross component boundaries.
Public and private API diagram from the book
Public and private APIs Understand dependency direction and implementation hiding.
Printed paperback edition of the book
A substantial printed reference Designed to be read, marked up, and kept next to a real codebase.
Move beyond “it compiles.”

The hard part is making future changes safer.

Professional C++ development is not just about making code work once. It is about controlling dependencies, choosing useful abstractions, designing clear interfaces, and keeping architectural boundaries intact.

Learning project
main.cpp
mainwindow.h
mainwindow.cpp
utils.h
utils.cpp
Everything depends on everything.
→
Maintainable application
Application User interface Domain logic
Choose your edition

Read it the way you prefer.

▤

Digital Edition

PDF + EPUB on Leanpub, with free updates.

  • Instant download
  • PDF and EPUB included
  • Free updates to future versions
Get on Leanpub
▥

Paperback Edition

A physical copy for your desk, notes, and bookshelf.

  • Printed paperback
  • Great for highlighting and notes
  • Available through Amazon
Buy on Amazon
No More Helloworlds paperback lying on a desk
About the author

Nikolai Kutiavin

I’m a software engineer with more than ten years of professional experience developing C++ applications. I wrote No More Helloworlds to bridge the gap between knowing the language and understanding how real C++ software is structured, built, tested, and evolved.

Better software starts with better engineering decisions.