Performance Ninja Class is a FREE online course that will let you practice SW performance tuning. It is not a course on algorithms and data structures. Instead, we focus on low-level performance issues, like CPU cache misses, branch mispredictions, and various other stalls. We will be talking a lot about such transformations like vectorization, loop unrolling, function inlining and other low-level CPU-specific optimizations.
We offer you this course in a form of lab assignments and Youtube videos. You see, it's all about practice. I guarantee, you will spend at least 90% of the time doing actual performance analysis and tuning work. You will be profiling the code a lot, find hot places in the benchmarks, practice using tools such as Linux Perf, Intel Vtune Profiler and others. You will learn how to determine the type of bottleneck in your application and be able to nail it down to a single line in the source code.
We prepared a set of workloads and benchmarks where each of them has a specific performance issue. For each lab assignment we provide a short video (usually 5 mins) that introduces the type of performance problem you'll be dealing with. Then, we expect you to go and try to fix it yourself. That could take anywhere from 30 mins up to 4 hours depending on your background and the complexity of the lab assignment itself. Finally, there will be a summary video that discusses the lab assignment and a possible ways to solve it.