This is an “about the book” chapter.


This is not all-inclusive.


  • Who are the next generation of research software engineers who want to consider HPC careers?

  • Most graduates drawn to modern web development, data science, and machine learning jobs.

  • While all are wonderful jobs, this is a lost opportunity, as most of the modern/hip languages are designed for improving how we solve problems.

  • Most graduates learning about cool languages that offer higher-order thinking, e.g. Scala, Go, Rust, and numerous scripting languages.


  • HPC itself is still cool. Where else can you have access to so many cores and novel architectures?

  • The most modern languages still punt to C to provide acceleration.

  • Research software engineers who know about computer systems and software engineering are most likely to progress by embracing these two areas (computer systems and SE)


These are the planned chapters:

  • Parallel Programming Principles

  • Development Environment [minimum friction approaches]

  • Software Engineering

  • Modern C++ as a Better C/C++

  • Data Parallel C++

  • Multicore Programming

  • Working with Devices

  • Going Distributed

  • Performance Evalution