# Saturday, 03 October 2026

My whole life has been spent learning. In fact, my strength as a consultant, and author, and a trainer has always been that I can learn things very fast, and then use them to help you, or teach them to you. I am learning pretty much every day, even if I'm not working on a project at the time. 30+ years ago, it was Internet programming, or Windows programming. I learned HTML, and so many frameworks to generate HTML, and .NET, and so much C++. I still learn new C++ all the time. I am also learning Carbon as we create it.

But here's the thing: I control that learning entirely. I read blogs, I watch videos, I attend talks, and so on. I spin up scratch projects and try things. I can go as fast or as slow as I like. I can stop and come back later. I can pause and back up if I need to. Nobody is watching me, nobody knows whether I get it right away or need to go try it myself to really understand it. Sometimes, I chat with friends at conferences in the good old hallway track, and I learn a lot there too, but it's still pretty private, and I'm in control. If I'm not interested I can tune out, change the subject, or head off to the next thing I want to attend.

But in September, I started attending actual lessons taught by an instructor. They happen at a particular time - three hours a week for 12 weeks - and I have my webcam and microphone on. Not only do I have to pay attention and consume the material in real time (a challenge for me after literally decades of not having to do that) I have to participate. Several times each lecture I am called on to perform the skill I'm learning. Then I get a critique, and then "ok, do it again". And I get better. The classes are recorded, so I can see that I get better each time. It's been quite a surprise.

Do I regret the years of steering my own learning? Not at all. Do I think people should stop doing online courses like the ones I write? Again, not at all. But I wanted to share that some time in the same room as someone who really knows their stuff, and is there to help you get better, can be astonishingly useful. Online training has a lot of advantages: you can do it when and where you want without travel expenses, proceed at your own pace, skip bits that don't apply and redo bits you didn't "get". But I had forgotten that in-person training has advantages too, because it's two way. I hear the instructor and the instructor hears me. I also hear the other students learning, which assures me I'm not the only one who finds parts of it hard, and also gives more lessons that perhaps the instructor hadn't included in the powerpoint.

I'm glad both kinds of learning exist. If you've forgotten all about in-person learning with the rise of online and other choose-your-own-adventure materials, give it some thought. It might have value for you, too.

Kate

Saturday, 03 October 2026 15:47:44 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 10 August 2026

I have two speaking dates this fall, both in Europe:

I am looking forward to some good autumn food and some fun sightseeing. There are lots of good talks planned at both conferences, so do consider attending one or both.

If you're running an event where one of my talks would fit well, please do get in touch. Check my speaker requirements and feel free to suggest a repeat of a previous talk, or a topic you think I would like to speak on.

Kate

Monday, 10 August 2026 12:15:32 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 24 July 2026

From time to time I think it's wise to summarize the courses I have on Pluralsight. There is a link on the side you can use to get a free trial if you want to take any of these. Because I redo most of the courses each time a new version of C++ becomes widespread, there are quite a few courses with similar names. Here's a quick summary.

I update every course that needs it when a new version of C++ comes out. Recent editions like C++26 and C++23 didn't really change the sorts of things beginners learn (with the exception of std::print, std::println, and std::format) so if you're getting started, you can take any of these that sound good, and they will almost certainly work with the tools you're using.

  • C++ 20: The Big Picture This is an overview covering "what is C++?" and "what is it used for?". If someone has suggested you learn it, start here to understand why you might want to. The title means that it's up to date to C++20, not that it only covers C++20. The actual content is equally applicable to older (and newer!) versions of the language.
  • C++ Foundations This is the first course on a fast-paced path of short courses to get you started using C++ very quickly. It's completely updated for C++26 so it uses std::print, println, and format. Other courses in this path by me are C++ Foundations: Control Structures and Functions (loops, if/else, functions, even lambdas), C++ Foundations: Object Oriented Programming (declaring classes, using objects, constructors, inheritance, polymorphism, and operator overloading) and C++ Foundations: Memory Management (manual memory management and the rule of 5, plus how to not do anywhere near as much work by using std::optional, std::string, std::vector, or a smart pointer instead of rolling your own.) There are labs on this path too, and courses by other instructors.
  • C++20 Fundamentals is more properly "the fundamentals of C++ including things that were introduced in C++20". This is an introduction to the ideas, syntax, and standard library. At seven and a half hours it can't cover absolutely every corner of the language, but it does cover what you need to call yourself a C++ programmer, and get started writing real code. This course assumes you already know how to program. If you don't, try Learn to Program with C++ 17 which covers the building blocks of programming languages like loops, functions, and objects while teaching the C++ syntax and library. Afterwards, you can take Fundamentals to fill in any gaps.
  • C++20 Algorithms Playbook again covers up to and including C++20, so plenty of things that have been around for decades, but it does have a lot of content that is C++20 only, because ranges made such a big difference here. It's designed to convince you to stop writing raw loops and start using the many useful functions provided in the standard library. I demystify iterators and show you the benefits of using library code instead of rolling your own.

If you're on an older compiler and can't move, you should still take these courses. Whenever I use anything from C++20, C++23, or C++26, I highlight that, so you can just move past that part if you need to. For the algorithms course, Beautiful C++ 14: STL Algorithms is the older version that doesn't have all the ranges additions.

Some of my courses are really not version specific, but apply to particular kinds of work you might need to do.

Kate

Friday, 24 July 2026 13:34:11 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 21 July 2026

Back in 1984, I graduated from the University of Waterloo (Chemical Engineering, so a B.A.Sc) and started working at Esso Petroleum Canada. It was a truly great job. As a co-op student I spent a lot of time with someone quite high up in HR making some software for them, and one day this person asked me what my dream job would be after graduating. Shortly after the work term ended I got a letter offering me exactly what I had described. Half the time I spent designing pieces of refinery (pumps, heat exchangers etc) -- some of which were actually built -- and half the time supporting everyone else in using "The computer" which at the time meant the terminal in their office and the mainframe it connected to, but almost immediately also meant the PCs with Lotus 123 on them that sprang up (out of the chair budget as I recall) in a shared room. It was a fantastic time.

At the time, I had a plan to go to grad school when we had enough money saved up to afford it. We even had a number we were trying to reach. In 1986, when Esso found itself facing the possibility of layoffs (having never done that before) they offered bribes, so many months of salary per year you had been there, to leave. And my work terms counted, so it was about 3 years. Tax free because it would be a "retirement allowance" that could go into my RRSP and come out while I wasn't earning anything. Was it 3 months gross pay? Maybe it was 6. It was a lot of money. It was our target for sure. So, I took it and arranged to start a Masters at the U of T in their Chemical Engineering department.

The deal with the "take this money to go away" offer was that you had to leave by July 2nd or 3rd. I wouldn't even remember the date, but July 1st was a holiday and when I came in on the 2nd all my computer access was gone so I couldn't do anything and just hung around chatting to people and feeling vaguely guilty. Then I was free for all of July and August. I suppose I could have had an extended summer vacation while my husband continued to work full time, but I'm not good at doing nothing and we knew we were going to need money while I was a student, so when a friend of a friend needed some programming done - and programmers were rare in 1986 - I started doing custom development. That first gig was in Basic - but hey, it worked, and solved the customer's problems. We set up a "partnership" - like a "sole proprietorship" but two people -- to put the income through, since both I and my husband were doing the work. That was Gregory Consulting. (I don't remember the precise date, but people on LinkedIn keep sending me congratulations so I guess when I joined LinkedIn I found those papers and the date. Mid to late July seems very likely.) It became Gregory Consulting Limited in 1989, when it was making enough money and buying enough assets that being its own legal entity made sense. By that time my Master's had become a joint Master's-PhD and we had a child as well. So there was a lot going on all at once!

We haven't done any custom development in a long time. I teach, I write, I advise, and I speak. Occasionally we update people's old code or help to port it. My husband pitches in on those tasks in a backroom kind of way, not having to talk to the customers. We've been bigger -- 11 at our peak -- but I don't feel the need to be bigger again. Bringing in projects to support that many families is a big responsibility. And while our former employees were generally good, they couldn't run the company or sell the projects, and I am actually much better at coding and explaining code that I am at sales. So it's far more pleasant to have fewer or smaller projects, and not have to do sales or try to steer other people. Our two adult children occasionally work for us on specific projects where their skills are useful.

We are still available to be your consultants should you need our advice.

Tuesday, 21 July 2026 13:04:39 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 02 December 2024

I love it when my videos get uploaded, because it means some new people get to see a talk. In this case, The Aging Programmer at CppNorth. This is the first and longest version of the talk: when I gave it in Europe I had to take out 30 minutes of content.

The reactions to the talk have surprised me. Of course I wanted it to land well and to give people something to think about. I did not expect so very many people to tell me that it made them cry or nearly cry. If you watch it at work, keep that in mind.

If you're in your 20s or 30s, you might think this talk is not for you. But it is! There are things you can do at that age that will enable you to keep programming into your 60s, 70s, and beyond. As I say in the talk, it's not too soon! Watch to find out why.

Kate

Monday, 02 December 2024 07:55:33 (Eastern Standard Time, UTC-05:00)  #    
# Friday, 04 October 2024
One of the first web sites I remembered the URL of when I wanted to use it was imdb.com. "Internet Movie Data Base" and that's what it was. You could look up shows to see who was in them. It's a simple need and one that doesn't go away. "Where do I know that actor from?" Look up the show you're watching, find the character, from there the name of the actor, from there everything else they've been in ... and ah, that itch goes away and you can keep watching the show.

When I think about other web sites I started using around the same time, they're all gone, or if not gone exactly, I've replaced them with something else. Who searches on AltaVista any more? The Environment Canada weather site, once a marvelous relic of old HTML design but a great way to see forecasts and radar, has been updated to uselessness. But imdb is still there and still usable for the same thing it was always designed for.

So it was with a mild thrill that I discovered (thanks to a Google News Alert on my own name) that I am now listed there. Apparently they've loaded up a pile of podcasts. .NET Rocks, ADSP, and others that have nothing to do with me but had one guest named Kate and one named Gregory. Still quite a few podcasts I've been on that aren't indexed there, but it's a start!

Kate

Friday, 04 October 2024 13:32:19 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 30 September 2024

It's been 7 years since I was at Meeting C++ and I'm really looking forward to it. There are great keynotes planned and the schedule as a whole is full of talks I want to hear! I'm doing The Aging Programmer and hope it lands as well in Berlin as it has elsewhere. As always, I find it hard to believe there are too many C++ conferences for me to be at all of them, and I'm making an effort to try to mix things up from year to year and not just go to "the usual places" every time. It's good to see some speakers I haven't seen for a while, and be introduced to ideas I haven't been following.

There's still time to get your tickets! I hope to see you there.

Kate

Monday, 30 September 2024 14:54:39 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 08 September 2024

Tomorrow I head to Norway for NDC Techtown. And now I'll be doing two talks there! I'm adding Naming is Hard to my scheduled Aging Programmer. There probably isn't time for you to register and travel there, but if you'll be there, plan to see both my talks!

Kate

Sunday, 08 September 2024 13:36:32 (Eastern Daylight Time, UTC-04:00)  #