C++ Learning Resources
Usage
This document contains videos and articles about different aspects of C++ programming. Best way to learn from them is to try them yourself, or in case of a lecture, read some more about this topic in C++ documentation.
Advanced topics
You should not proceed to the topics after C++ STL 10 without knowing the basics of C++ (or completing at least one series from Basics Of C++ 10 category). The content following C++ STL 10 isn’t sorted by the difficulity, everything there is considered advanced C++. You should be able to understand most of that and apply it in real world after compeling Basics Of C++ 10 category.
Purpose
This place is mostly targeted for people with basic C++ and STL knowledge. It’s supposed to improve your code’s readibility, performance and make your code more compact by using STL features.
Contributing
Create either an issue with title and link to the resource you would like to add to this document or create new branch, add some changes and create a pull request.
Comments and suggestions
Please leave your comments, thoughts and suggestions via Issues.
Table of Contents
- Best learning resources for C++ 30
- Basics Of C++ 5
- C++ STL 3
- Advanced C++
- Type Related Programming
- C++ Memory Management
- C++ Aplication Design
- C++ Programming Style
- C++ Libraries 1
Best learning resources for C++
- cppreference.com 1
- TheChernoProject YouTube Channel 4
- Code Blacksmith Youtube Channel 3
- CppCon Youtube Channel 1
Basics Of C++
- C++ programming tutorial series 8 ~ Video Tutorial Series by TheChernoProject
- C++ programming tutorial series 2 ~ Video Tutorial Series by LearningLad
- C++ advanced programming tutorial series 2 ~ Video Tutorial Series by Bo Qian
- learncpp.com
- C++ Tutorial for Beginners - Full Course 2 ~ Video Tutorial Series by freeCodeCamp.org
- isocpp.org 1
- CppCoreGuidelines
C++ STL
STL Containers
- Reference for all STL Containers
- STL Containers - Learn Modern C++ ~ Video Tutorial by Code Blacksmith
- How to write an STL compatible container 1 ~ Article by Vanand Gasparyan
- Writing your own STL container ~ Question answer by Mooing Duck
- Why does the C++ STL not provide any “tree” containers? ~ Question Answer by Martin York
- Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step ~ CppCon 2017 Talk by Matt Kulukundis <-
- Enough string_view to Hang Ourselves ~ CppCon 2018 Talk by Victor Ciura
- Customizing the Standard Containers ~ CppCon 2017 Talk by Marshall Clow
STL Algorithms
- 105 STL Algorithms in Less Than an Hour 2 ~ ACCU 2018 Talk by Jonathan Boccara
- STL Algorithms - why you should use them, and how to write your own ~ CppCon 2016 Talk by Marshall Clow <-
- STL Algorithms in Action ~ CppCon 2016 Talk by Michael VanLoon <-
- Writing Standard Library Compliant Data Structures and Algorithms ~ CppCon 2018 Talk by Marc Gregoire <-
- C++17 Parallel Algorithms ~ CppCon 2017 Talk by Dietmar Kühl <-
- Fantastic Algorithms and Where To Find Them ~ CppCon 2017 Talk by Nicholas Ormrod <-
STL Utilities
- tuple<>: What’s New and How it Works ~ CppCon 2016 Talk by Stephan T. Lavavej
- std::optional ~ Video Tutorial by Jason Turner
- std::any ~ Video Tutorial by Jason Turner
- How to Write Well-Behaved Value Wrappers ~ CppCon 2018 Talk by Simon Brand
- Effective replacement of dynamic polymorphism with std::variant ~ CppCon 2018 Talk by Mateusz Pusz <-
Advanced C++
Constexpr
- constexpr - Taking Constants to the Next Level 2 ~ Video Tutorial by Code Blacksmith
- constexpr: Introduction ~ CppCon 2015 Talk by Scott Schurr
- constexpr: Applications ~ CppCon 2015 Talk by Scott Schurr <-
Functional
- functional: What’s New, And Proper Usage ~ CppCon 2015 Talk by Stephan T. Lavavej
Time in C++
- A <chrono> Tutorial ~ CppCon 2016 Talk by Howard Hinnant <-
- Benchmark Timer ~ Video Tutorial by Code Blacksmith
Random
- What C++ Programmers Need to Know about Header <random> ~ CppCon 2016 Talk by Walter E. Brown <-
Multithreading
- What do you mean “thread-safe”? ~ CppCon 2018 Talk by Geoffrey Romer
- Thread Synchronization Primitives ~ Video Tutorial by Code Blacksmith
- Thread Pool ~ Video Tutorial by Code Blacksmith
- Multithreaded Logger ~ Video Tutorial by Code Blacksmith
- Memory Barriers ~ Video Tutorial by Code Blacksmith
- Multithreading is the answer. What is the question? Part 1 Part 2 ~ CppCon 2017 Talk by Ansel Sermersheim <-
- The Trap of std::async ~ Video Tutorial by Code Blacksmith
Type related programming
Templates
- Templates in C++ 1 ~ Video Tutorial by TheChernoProject
- Variadic Templates ~ Video Tutorial by Jason Turner
- Variadic Templates in C++11 / C++14 - An Introduction ~ CppCon 2015 Talk by Peter Sommerlad <-
- std::enable_if
- Using Template Magic to Automatically Generate Hybrid CPU/GPU-Code ~ CppCon 2018 Talk by Elmar Westphal
- C++ Templates Revised ~ CppCon 2017 Talk by Nicolai Josuttis <-
Concepts
- Concepts: The Future of Generic Programming (the future is here) ~ CppCon 2018 Talk by Bjarne Stroustrup <-
- Concepts in 60: Everything you need to know and nothing you don’t ~ CppCon 2018 Talk by Andrew Sutton <-
Type deduction
- Type Deduction and Why You Care ~ CppCon 2014 Talk by Scott Meyers
- Type Traits - what are they and why should I use them? ~ CppCon 2015 Talk by Marshall Clow
- Template Type Deduction ~ Video Tutorial by Code Blacksmith
- Class Template Argument Deduction for Everyone ~ CppCon 2018 Talk by Stephan T. Lavavej <-
- Type Punning in C++17: Avoiding Pun-defined Behavior ~ CppCon 2017 Talk by Scott Shurr <-
SFINAE - Substitution Failure Is Not An Error
- SFINAE documentation
- SFINAE introduction
- Check if type has a member method of given signature ~ Question Answer by jrok
- Custom Overload Sets and Inline SFINAE for Truly Generic Interfaces ~ CppCon 2018 Talk by Vincent Reverdy <-
Meta-programming
- Introduction to C++ Template Metaprogramming ~ NDC Oslo 2016 Talk by Sasha Goldshtein <-
C++ Memory Management
Basics of memory management
- Modern Memory Management 1 ~ Video Tutorial by Code Blacksmith
- std::launder - what is it? ~ Video Tutorial by Code Blacksmith
- Move Semantics Explained ~ Video Tutorial by Code Blacksmith
- Copy and Swap ~ Video Tutorial by Code Blacksmith
- C++ Alignment, Cache Line and Best Practice ~ Lecture by Professor Sheep
Garbage Collection
- GC FAQ ~ Document regarding garbage collection in C++
Allocators
- std::allocator Is to Allocation what std::vector Is to Vexation ~ CppCon 2015 Talk by Andrei Alexandrescu
- Custom Allocator Tutorial ~ Video Tutorial by Code Blacksmith
- How to Write a Custom Allocator ~ CppCon 2017 Talk by Bob Steagall
- Efficient Object Pool ~ Video Tutorial by Code Blacksmith
- Local (‘Arena’) Memory Allocators (part 1) ~ CppCon 2017 Talk by John Lakos <-
- Local (‘Arena’) Memory Allocators (part 2) ~ CppCon 2017 Talk by John Lakos <-
C++ Error Handling
- C++ Exception Handling ~ Article on tutorialspoint.com
- Exception Safety 1 ~ Video Tutorial by Code Blacksmith
- std::exception
- Custom C++ Exceptions for Beginners ~ Article by Peter Forgacs
C++ Application Design
- C++ in Huge AAA Games 1 ~ CppCon 2014 Talk by Nicolas Fleury <-
- The C++ Execution Model 1 ~ CppCon 2018 Talk by Adelstein Lelbach <-
- Game engine using STD C++ 11 ~ CppCon 2016 Talk by Jason Jurecka <-
- Modern User Interfaces for C++ ~ CppCon 2015 Talk by Milian Wolff <-
- EA’s Secret Weapon: Packages and Modules ~ CppCon 2017 Talk by Scott Wardle <-
- Naivety of Creating Cross-Platform, Modern C++ Libraries… ~ CppCon 2017 Talk by Jonathan Henson <-
- Modern C++ API Design (part 1 of 2) ~ CppCon 2018 Talk by Titus Winters <-
- Modern C++ API Design (part 2 of 2) ~ CppCon 2018 Talk by Titus Winters <-
- Better Code: Human Interface ~ CppCon 2018 Talk by Sean Parent <-
- Modern C++ Interfaces… ~ CppCon 2017 Talk by Stephen Dewhurst <-
- Building C++ Modules ~ CppCon 2017 Talk by Boris Kolpackov <-
C++ Object Oriented Design
- Intro to the C++ Object Model 2 ~ CppCon 2015 Talk by Richard Powell
- Design Patterns and Modern C++ ~ Video Tutorial by JetBrainsTV <-
- Multiple Inheritance problem in C++ ~ Video Tutorial by Bo Qian
- Using Functional Programming Patterns… ~ CppCon 2017 Talk by Jeremy Demeule & Quentin Duval <-
C++ Design Patterns
- Singleton Design Pattern 1 ~ Video Tutorial by Code Blacksmith
- Strategy Design Pattern ~ Video Tutorial by Code Blacksmith
- Builder Design Pattern ~ Video Tutorial by Code Blacksmith
- Agent based class design ~ CppCon 2017 Talk by Odin Holmes <-
- Design Patterns for Low-Level Real-Time Rendering ~ CppCon 2017 Talk by Nicolas Guillemot <-
C++ Data Oriented Design
- Implementation of a component-based entity system in modern C++ ~ CppCon 2015 Talk By Vittorio Romeo <-
- Data Driven Entity Component System in C++17 ~ Code Europe Autumn 2017 Talk K.Kisielewicz
- OOP Is Dead, Long Live Data-oriented Design ~ CppCon 2018 Talk by Stoyan Nikolov
C++ Programming Style
Generalities about C++ programming
- Free Your Functions! ~ CppCon 2017 Talk by Klaus Igleberger <-
- Make Classes Great Again! (Using Concepts for Customization Points) ~ CppCon 2017 Talk by Vinnie Falco
- Operator Overloading: History, Principles and Practice ~ CppCom 2018 Talk by Ben Deane <-
- How to Write Effective Documentation for C++ Libraries… ~ CppCon 2017 Talk by Robert Ramey <-
- Everything You Ever Wanted to Know about DLLs ~ CppCon 2017 Talk by James McNellis <-
Best practices for C++
- Readable C++ ~ CppCon 2016 Talk by Timur Doumler <-
- Building Software Capital: How to write the highest quality code and why ~ CppCon 2016 Talk by David Sankel <-
- Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (1 of 2) ~ CppCon 2018 Talk by Matthew Butler <-
- Secure Coding Best Practices: Your First Line Is The Last Line Of Defense (2 of 2) ~ CppCon 2018 Talk by Matthew Butler <-
- Applied Best Practices ~ CppCon 2018 Talk by Jason Turner <-
- Practical Performance Practices ~ CppCon 2016 Talk by Jason Turner <-
- Writing Good C++14… By Default ~ CppCon 2015 Talk by Herb Sutter <-
- Easy to Use, Hard to Misuse: Declarative Style in C++ ~ CppCon 2018 Talk Ben Deane <-
Programing Guidelines
- C++
const
correctness guidelines - CppCoreGuidelines
- 10 Core Guidelines You Need to Start Using Now ~ CppCon 2017 Talk by Kate Gregory
C++ Libraries
- Boost C++ Libraries ~ Somewhat an extension for current C++ standard
- GSL ~ Guidelines Support Library by Microsoft
- List of Open Source C++ libraries
Embeding different languages in C++
- Howling at the Moon: Lua for C++ Programmers ~ CppCon 2017 Talk by Andreas Weis
- Embedding Lua in C++ ~ Video Tutorial Series by Dave Poo
- Introduction to C++ python extensions and embedding Python in C++ Apps ~ CppCon 2016 Talk by Diego Rodriguez-Losada
Custom container libraries for C++
- tree.hh ~ Tree Type container library for C++
Graphical interfaces for C++
- learnopengl.org
- opengl-tutorial.org
- C++ OpenGL 2 ~ Video Tutorial Series by TheChernoProject
- WXwidgets C++ Tutorial 1 ~ Video Tutorial by javidx9 <-
Source: GitHub 1
C learning resources
This repository contains list of books and other resources about C programming that in my opinion are best to learn from. There are many sources but not every is correct. This way, beginners make a lot of mistakes in their code. I suggest reading books in the order I’ve provided.
Where not to learn from:
- TutorialsPoint 1. TutorialsPoint is an good website for reference but not for learning. If you want to learn something to it’s fullest, get a book.
- Udemy. Udemy is not good place to learn C from. Courses cost pretty much ($100). Some courses recommend using old Borland C++ Builder - learning outdated stuff is not good way to go.
- SoloLearn. SoloLearn does not offer any course to learn C from. The website teaches you only theoretically how to do something, while your own experience teaches practically you how to do something.
- Youtube. Learning from various youtube channels that are not-so-popular is not a good idea. You need solid place to learn from. Although, there are channels like this one 6. They introduce really bad programming practices and teach how not to program.
Where to learn from:
- K&R book 4 is often thought as the bible of C. There are many C standards but K&R C is thought as the most common - every compiler has to support it. The most used standard is C89, although we have C99 and C11 that are more recent. This way, K&R book is always on topic. It was written by creators of C - they can’t be wrong.
- Pros:
- This book is written by Dennis Ritchie , who was one of the main people behind the development and design of C and UNIX.
- This book is so well known that it’s affectionately called “K&R”, after the authors.
- It’s been cited in many other books and is familiar to most, if not all, CS students.
- The challenges at the end of each chapter do a great job requiring many of the skills learned up to that point. Completing the challenges is a great way of insuring that you understand the material.
- Cons:
- The K&R style works for old Unix mainframe command-line programs that exit after a simple task and leave the cleanup to the OS; where input is only from trusted experts; and most functions are only called internally to the program. The environment is very different today. This style will get your server pwned by hackers, or crash it due to a memory leak. You will have to learn C again to use C correctly in the real world today .
- Some and practices are out of date, so errata and googling is needed while going through the book.
- Assumes familiarity not only with programming concepts but some C language specifics which are not so simple for beginners.
- Pros:
- C Programming: Modern approach, 2nd Edition 2
- Pros:
- The book really challenges you to think like a programmer by constantly asking questions that force you to solve problems, rather than telling you how to solve the problem and only asking you to write the syntax. This way helps beginner programmers to get into programming.
- The author breaks things down into small pieces and uses examples to explain everything in a very clear way.
- Doesn’t have exercise answers (can be counted like con)
- Pros:
- Learn C the hard way 2. Just looking at the title, it may not be greatest book for newcomer to learn.
- Pros
- It’s not just about C. It will teach to become an over-all better programmer and give a better understanding of computer science. You are going to learn about things like testing, debugging, and sorting algorithms.
- Includes 52 practical project ideas that include everything from pointers to stacks and queues.
- Con: States in the preface that it is not for first-time programmers. Better check something else, if you are new to C.
- Pros
- C Programming Absolute Beginner’s Guide (3rd Edition) 2. It’s suggested to check out this book if others are too difficult for you.
- Pro: There are 32 chapters in this book, which gives 352 pages. The short chapters make it extremely easy to use this book as a reference, and breaks everything down into small pieces that are easy to digest.
- Con: This book, as the title suggests, is really aimed at people with no prior programming experience. Fundamentals are gone through in detail, this would be quite a slow review for someone with experience in another language.
- (NASA C style book)[http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf 1]. This book is pretty nice place to learn proper way how to program in C to write readable code.
Please note that this list as stated on beginning, is based primarily on my opinion. If you disagree with some facts, please open issue / submit a pull request that contents are satisfying you. I am working on a C book that after review will probably get on this list. Books that I am not sure about quality:
Source: GitHub 1
Begin(c++)
: Resources for C++ Beginners
General
- The official ISO C++ Get Started! page 3
Primers
- Herb Sutter: (Not Your Father’s) C++ 1
- Beginning with C++ 1 by Jens Weller
- Learning “Modern” C++ 1 by Jason Turner
- A Tour of C++ by Bjarne Stroustrup (teaser)
- C++17 - The Complete Guide by Nicolai M. Josuttis
- C++ Templates - The Complete Guide, 2nd Edition by Nicolai M. Josuttis
Tutorials
- Kate Gregory’s Pluralsight page 1
- The cplusplus.com 1 tutorial 1
- C++ London Uni 2 (videos)
- Effective C++ Series 2 by Scott Meyers
References
- cppreference.com - the reference for standard C & C++ language and libraries
- Wikipedia’s list of C++11, C++14 and C++17 features
- The C++ Programming Language, 4th Edition by Bjarne Stroustrup
- The C++ Standard Library - A Tutorial and Reference, 2nd Edition by Nicolai M. Josuttis
Try C++
- Wandbox 2 - lets you edit, compile and run simple C++ programs in a browser
- Compiler Explorer 1 - lets you edit and compile simple C++ programs and see what assembler is produced
Community
- The official home of ISO C++ 1
- #include <C++> - inclusivity initiative including Discord server
- reddit 1 - C++ Reddit subgroup
- Slack - C++ Slack team signup page
Once You Get Comfortable
Try these intermediate-level talks that go beyond the individual features and explain how to put together the best code with them!
- C++11 Style by Bjarne Stroustrup
- Using Types Effectively by Ben Deane
- 10 Core Guidelines You Need to Start Using Now by Kate Gregory
- Functional C++ by Kevlin Henney
- C++ Seasoning by Sean Parent
- Easy to Use, Hard to Misuse: Declarative Style in C++ 1 by Ben Deane
- Curiously Recurring C++ Bugs at Facebook by Louis Brandy
- Choosing the Right Integer Types in C and C++ by Dan Saks
- Testing in Software Engineering ~2010-2030 by Titus Winters
Bite-sized Talks
- Modern C++ Coming to Terms With Terms by Jon Kalb
- Modern C++ by Michael Caisse
- unsigned: A Guideline for Better Code by Jon Kalb
- The Shape of a Program by James McNellis
- The End of std::endl by Dietmar Kühl
- 10 Things Junior C++ Devs Don’t Get by Victor Ciura
- Can I has grammar? by Timur Doumler
- Standard Slam by Michael Caisse
- Algorithm Mnemonics: Increase your Productivity with STL Algorithms by Tommy Bennett
- Regular Expressions Redefined in C++ by Hana Dusikova
- Presenting Code by Jens Weller
- Why not Conan (part II)? by Diego Rodriguez-Lopez
- This is Why We Can’t Have Nice Things by Jon Kalb
- A Fool’s Consistency by Jonathan Müller
- Programing: The Last 4000 Years by Juanpe BolÃvar
- Standardese by Jonathan Müller
- C++ Koans by Tony Van Eerd
- Readable C++ by Timur Doumler
- Communicating via Diagnostics: Observations and Tips for Authors by Walter Brown
- quick-bench.com 1 by Fred Tingaud
- Workflow hacks for developers by Anny Gakhokidze
- Copy Elision by Jon Kalb
- You’re Not as Smart as You Think You Are by Phil Nash
- Beyond the Horizon of C++ by Hana DusÃková
- Why you should avoid Linked Lists 1 by Bjarne Stroustrup
Improve Your Skills
- HackerRank sets you challenges to hone your basic programming skills
- GitHub C++ Projects are one way to learn by contributing to open source C++ projects
Source: GitHub 2
A small collection of notes and resources related to basic C++.
Stack Overflow’s Answer
This question attempts to collect the few pearls among the dozens of bad C++ books that are published every year. Unlike many other programming languages, which are often picked up on the go from tutorials found on the Internet, few are able to quickly pick up C++ without studying a well-written C++ book. It is way too big and complex for doing this. In fact, it is so big and complex, that there are very many very bad C++ books out there. And we are not talking about bad style, but things like sporting glaringly obvious factual errors and promoting abysmally bad programming styles.
C++ Crash Course
- Gibs Jose’s C++ Cheat Sheet 1
- Crash Course by Nicolas P Rougie
- A Transition Guide from Python 2.x to C++
- Michael H. Goldwasser David Letscher, Saint Louis University, August 2011 revision
- Sololearn
Others
- Learning Lad: Learn C++ 2
- Learn C++ From Programiz 1
- C++ Notes by Fredosaurus 1, Expanding an Array
- programminghelporg
- See also:
./old./md/
directory
Source: GitHub 1
Awesome C/C++ performance optimization resources
Contents
Talks
2013:
- Going Native 2013 - Andrei Alexandrescu, Writing Quick Code in C++, Quickly
- Going Native 2013 - Stephan T. Lavavej, rand() Considered Harmful
- Going Native 2013 - Sean Parent, C++ Seasoning
2014:
- code::dive conference 2014 Scott Meyers: Cpu Caches and Why You Care 1(slides)
- CppCon 2014 Andrei Alexandrescu “Optimization Tips - Mo’ Hustle Mo’ Problems”
- CppCon 2014 Mike Acton “Data-Oriented Design and C++”
- CppCon 2014 Chandler Carruth “Efficiency with Algorithms, Performance with Data Structures”
2015:
- code::dive conference 2015 Andrei Alexandrescu - Writing Fast Code I (slides)
- code::dive conference 2015 Andrei Alexandrescu - Writing Fast Code II (slides)
- CppCon 2015 Chandler Carruth, “Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!”
- CppCon 2015 Bryce Adelstein-Lelbach “Benchmarking C++ Code"
- Meeting C++ 2015 Understanding Compiler Optimization - Chandler Carruth - Opening Keynote
2016:
- ACCU 2016 ‘Fastware’ - Andrei Alexandrescu 1
- C++Now 2016 Timur Doumler: C++ Performance in Practice: Align, Vectorise, Cache, Jump! 1 (slides)
- C++Now 2016 David Stone: Exceptional Performance
- C++Now 2016 Jason Turner: Practical Performance Practices
- CppCon 2016 Timur Doumler “Want fast C++? Know your hardware!" 2
- CppCon 2016 Jason Turner “Practical Performance Practices"
- CppCon 2016 Chandler Carruth “High Performance Code 201: Hybrid Data Structures"
- CppCon 2016 McKenney “Beyond the Issaquah Challenge: High-Performance Scalable Complex Updates"
- CppCon 2016 D. Dechev & D. Zhang “High Performance C++ Concurrent Transactional Data Structures" 1
- CppCon 2016 Matthew Bentley “Colonies, performance and why you should care"
- CppCon 2016 Christiaan Pretorius “Cache Optimized Hash Tables”
- CppCon 2016 Tim Haines “Improving Performance Through Compiler Switches…"
Articles
- Three Optimization Tips for C++ 1, by Andrei Alexandrescu, @Facebook Engineering
- why GNU grep is fast 1
- Hash Functions all the way down from Aras-P, and the follow up here
- Why do CPUs have multiple cache levels?
- ETW Central - by RandomASCII
- Micro benchmarking libraries for C++ - on Bartek’s blog
- How to start with Software Optimization, from Flexible Particle Experiments series, Bartek’s blog.
- Taking advantage of cache coherence in your programs
- Gallery of Processor Cache Effects, C#
- How We Beat C++ STL Binary Search
- C++ benchmark – std::vector VS std::list VS std::deque
- Container Study
- Associative-Container Performance Tests
- C++ Core Guidelines, Performance section
- C++ Best Practices, Performance section
- That’s Not Normal–the Performance of Odd Floats
- gprof, Valgrind and gperftools – an evaluation of some tools for application level CPU profiling on Linux
- The Performance API (PAPI) project
- Roofline Performance Model
- C++ timing strategies compared (in Windows) - from baremetalcode blog.
- Simply about complex - Data Oriented Design by example
- Guide into OpenMP: Easy multithreading programming for C++
- C++ Optimization Bibliography - Kurt Guntheroth’s
Manuals:
Sites/Blogs
- Agner`s CPU blog
- Agner’s Software optimization resources
- The ryg blog
- Random ASCII
- The Every Computer Performance Blog
- The Supercomputing Blog
- Daniel Lemire’s blog
- Wojciech Mula’s site: 0x80.pl - articles on performance, SIMD
- Bartek’s programming blog
Tools
Free
- AMD Code XL
- Very Sleepy
- Proffy
- Windows Performance Toolkit - XPERF
- Performance and Diagnostic Tools in Visual Studio 2015
- Valgrind
- TAU Performance System
- Google Performance Tools (gperftools) 1
- Linux perf tools
- NVIDIA Visual Profiler
- Qualcomm Snapdragon Profiler
- Oracle Solaris Studio Performance Analyzer
- OProfile for Linux
Paid
Libraries
- Celero micro-benchmarking library
- Nonius library
- Hayai micro benchmarking library, into article
- Google benchmark library
Books
- PDF: optimizing C++ 2 - by Agner Fog. FREE
- Optimizing C++, WikiBooks - FREE
- The Software Optimization Cookbook: High Performance Recipes for IA-32 Platforms, 2nd Edition
- Video Game Optimization, Eric Preisz
- Optimized C++: Proven Techniques for Heightened Performance, Kurt Guntheroth
- Power and Performance: Software Analysis and Optimization, Jim Kukunas
- Systems Performance: Enterprise and the Cloud, Brendan Gregg
- Every Computer Performance Book, Bob Wescott
- C++ Concurrency in Action, Second Edition, Anthony Williams
About
This list was started by Bartlomiej Filipek (@fenbf). If you like to help please read CONTRIBUTING.md instructions and just make a pull request to this repo.
License
This work is licensed under a Creative Commons Attribution 4.0 International License.
Source: GitHub 4
Awesome Curated Programming Resources
Curated Programming Resources 1Awesome Modern C++
A collection of resources on modern C++ 5Awesome C++
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-… stuff.C++ Resources
Project Based Learning
A list of programming tutorials in which learners build an application from scratch. These tutorials are divided into different primary programming languages. Some have intermixed technologies and languages.Curated list of project-based tutorials 2
ENJOY & HAPPY LEARNING!
Tags
udemy course