CppCon 2015: Kate Gregory “Stop Teaching C"

CppCon · 181K views · 2015 · 1:00:11

Open on YouTube

C, C++, Rust, Go & systems languagesEducation & learningtalk

Why Hacker News recommends it

HN people cite it constantly in C versus C++ debates as the case for teaching modern C++ idioms rather than C first.

What it is

Kate Gregory argues at CppCon 2015 that C++ should be taught without starting from C: no char* strings, printf or raw arrays at first, with references before pointers.

Recommended by 7 HN commenters across 7 different months, 2016 to 2025.

What Hacker News said

Strong rec autoreleasepool · 2016-01 · on “The Landscape of Parallelism in C++ [video]”

> It's as if you had to be there from the start to have a full image of how the language grew and truly understand the interplay between all the "features", otherwise it's too late to become an expert, and in some cases even too late to become comfortable writing good maintainable code in C++. This is funny to me (not in a condescending way) because I had the exact opposite thought today. I actually came back to C++ on my own fairly recently after learning about the modern version of the language. I was lamenting about how lucky I was to have started learning with C++14 because I didn't have to go through the horrible C++98 and C++03 eras. In fact I could simply ignore most of it. It's all a

Strong rec e12e · 2016-05 · on “Why I don't spend time with Modern C++ anymore”

I've been spending a few days going through talks from last years cppcon[1]. They're all good, but they've all left me with a strong desire for a strongly opinionated, there-is-no-past-only-the-future introduction to C++14 (and incidentally, C11). I've added a few of those talks I've watched and liked to a small playlist (with a couple of other talks on programming, unrelated - the relevant talks are prefixed with "cppcon 2015"): [LINK] The full cppcon playlist is here: [LINK] Of special relevance is the rather excellent talk by Kate Gregory on "Stop Teaching C" (when you're supposed to do an intro course to C++): "CppCon 2015: Kate Gregory “Stop Teaching C"": [this video] (But again, I want an o

Strong rec tialaramex · 2022-04 · on “C++20 Ranges Algorithms – Non-Modifying Operations”

If what you need is C++ (which IMNSHO it is not) then starting with C is a bad idea. Here's Kate Gregory's talk, you should definitely listen to her even if you think I'm an idiot because she actually teaches people C++ and I (thankfully) do not. [this video] Now here's my rant, which is unrelated to Kate's very smart talk: C has an excuse, because it was written in the 1970s for the PDP-11. In the 1970s struct qualifies as a fancy new feature. In the 1970s a wide pointer is very expensive. In the 1970s a linked list is often a good choice of data structure. C++ comes along quite a lot later. These things are already untrue or fast becoming untrue, but rather than risk being unpopular Bjarne's la

Recommends daemin · 2016-01 · on “} // good to go”

For Modern C++ I found this video [this video] interesting in regards to the topics she chooses to teach people new to C++.

Recommends pjmlp · 2017-05 · on “Coroutines are now in Clang trunk, libc++”

First of all, and most important one, learn C++ idioms, not C. This means making use of library types for memory allocation, vectors and strings. There is a place for old C style low level features, but those should come later, after the safer concepts are already ingrained. Kate Gregory's “Stop Teaching C" talk at CppCon 2015 explains better than me. [this video] Get a nice IDE, QtCreator, Clion, VC++ Community, KDevelop, XCode. Besides the "Tour of C++", check Stephan T. Lavavej talks at Channel 9. "Core C++ Lectures" [LINK] "Advanced STL", these ones only when you already have a good understanding of STL as user [LINK] Also check video presentations from NDC, ACCU, CppCon, CppNow and C9 Going

Recommends pjmlp · 2018-03 · on “Ask HN: Best way to learn modern C++?”

- Tour of C++ ( [LINK] ) - Principles and Practice Using C++ ( [LINK] ) - From Mathematics to Generic Programming ( [LINK] ) - The Scott Meyers books Some of the Bjarne Stroustrup videos, "Learning and Teaching Modern C++" - [LINK] Some of the Herb Sutter videos, "Writing Good C++14... By Default" - [LINK] "Back to the Basics! Essentials of Modern C++ Style" - [LINK] Some of the Kate Gregory videos, "Stop Teaching C" - [this video] "10 Core Guidelines You Need to Start Using Now" - [LINK] "It's Complicated" - [LINK]

Recommends simias · 2018-10 · on “Teaching C (2016)”

My point was that I don't think Smalltalk was ever more popular in the industry than C regardless of the time frame. By the mid 90's lisp machines were pretty long gone, betting on Lisp instead of C if employability is the metric seems rather bold. MIPS I concede, it was remained fairly popular for a long time. I guess my overall point is that the subjective choices made by this university back then don't really mean much by now. The fact that they taught Pascal instead of C alone proves that they weren't particularly prescient. >Regarding language comparisons, actually C++ is Italian and C Latin. I thought about that while writing this bad analogy but I couldn't come up with a better one. I

Recommends tediousdemise · 2021-04 · on “A simple C implementation to stream H.264 to browser using WebRTC”

I just can’t recommend using it for new code in light of the sexy new alternatives that can compile down to the same binary with source code that’s way more intuitive and readable. I do have nostalgia for C since it was my first language, and I think a lot of people are in the same boat, which is a problem. That’s why I think we need to stop teaching C. Kate Gregory has a good cppcon talk on the topic: [this video]