Limited-Time Offer: Pluralsight 33% Off Annual Standard and Premium Subscriptions

First, I’d like to express my gratitude to all the new Pluralsight learners who watched my courses during #FreeApril: Thank you all very much!

In addition, I just wanted to give you a heads-up that Pluralsight is offering 33% off Annual Standard and Premium subscriptions for a limited time.

EDIT 2021/05/11: The offer will end soon:  only 3 days left! Offer expires 5/13 at 11:59pm MT.

Click the banner below to save now!

Level Up with Pluralsight – Learn FREE for All April

Just a heads up to let you know that Pluralsight is making all video courses FREE for the month of April!

Are you interested in getting started with the C programming language?

What about getting to know some practical features of C++14 and C++17?

Do you need a practical introduction on how to use the C++ Standard Library’s containers (like std::vector, std::list, std::map, std::unordered_map, etc.)?

Would you like an introduction to data structures and algorithms in C++?

Or would you like to learn modern C++ from scratch?

All these courses of mine and 7,000+ other courses are available for FREE for all April!

Level up your tech skills for free all month long. Click the banner below to access Pluralsight #FreeApril!

New Pluralsight Course on Getting Started with the C Language

Hi!

My new Pluralsight course on Getting Started with the C Language is LIVE!

In this course you’ll learn in a practical way, with a combination of slides and demo code, the basic aspects of the C programming language and tools, so that you can start being productive with the C language.

Starting from this course page, you can freely play the course overview, and read a more detailed course description and the table of content.

Some of the major topics include: understanding the role of the C compiler, and compiling from both the command line and using an IDE; learning about common basic types and basic I/O; learning the syntax for decision making in C (e.g. the if-else and switch statements) and how to write loops (e.g. for, while and do-while); the basics of working with strings; learning how to write your own functions. Pointers will be introduced, as well.

I’ll also show some subtle C beginner’s bugs, I will analyze them and discuss how to fix them.

Inspecting the content of a C string.
Inspecting the content of a C string.
Discussing the memory layout of strings in C.
Discussing the memory layout of strings in C.
Analyzing a subtle bug.
Analyzing a subtle bug.
Introducing pointers in C.

These are some feedback notes from my reviewers:

The content is presented with great clarity and is organized effectively. Great module. [Peer Review]

I really like that your demos are very concise and tightly focused on the syntax and concepts you’re explaining. There’s nothing extra to cause confusion. Well done! [Peer Review]

Your code slides are well-designed and easy to read. [Peer Review]

I REALLY like that you explained the potential problem with […]. I wish more people would heed the advice you present here. [Peer Review]

Very clean module with clear explanations and demos. Great job! [Peer Review]

Happy learning!

 

Pluralsight Black Friday 40% Off

Just wanted to give you all a heads up about current Pluralsight Black Friday 40% Off promotion on all Personal Annual and Premium subscriptions.

Click on the banner below to save now.

New Pluralsight Course on C++ Standard Library Associative Containers

Happy Pi Day!

My new Pluralsight course on C++ Standard Library Associative Containers is live!

In this course, you’ll learn with a combination of slides and demo code, how to use associative containers like std::set, std::map, and std::unordered_map.

This is a follow up course of my previous course, which I encourage you to watch before this one.

Starting from this course page, you can freely play the course overview, and read a more detailed course description and the table of content.

Comparing the performance of std::unordered_map vs. std::map.
Comparing the performance of std::unordered_map vs. std::map.
Analyzing a subtle bug when working with std::map.
Analyzing a subtle bug when working with std::map.

These are some feedback notes from my reviewers:

Nice use of the PowerPoint slides and Camtasia callouts to keep the learners focused and engaged. [Peer Review]

Enjoyable clip of std::map string to string dictionary translation. [Peer Review]

Overall, a strong module that’s well-explained, approachable and professionally polished. Looking forward to more! [Peer Review]

The content is logically sequenced, building on concepts as we go. The clips are nice and short, which makes it easy to move through and absorb the content. You also do a great job transitioning across the clips; there’s a cohesive flow to the module. [Peer Review]

I’m glad you showed this error, explained why it’s happening, and how to fix it. It’s a good opportunity to reiterate learnings from earlier in the module, and also seems like a common gotcha. [Peer Review]

Happy learning!

 

New Pluralsight Course on C++ Standard Library Containers

My new Pluralsight course on C++ Standard Library Containers is live!

In this course, you’ll learn how to use some important containers implemented in the C++ Standard Library, with a combination of theoretical introduction using slides, and practical C++ implementation code, including analyzing and fixing some common bugs.

Comparing the memory layout of std::list vs. std::vector.
Comparing the memory layout of std::list vs. std::vector.

C++ Standard Library implementations offer high-quality well-tested and highly-optimized standard containers, that are very powerful tools when developing software written in C++.

In particular, I’ll discuss std::vector (which is a Standard Library workhorse), std::array, and std::list, including how to use them, discussing their pros and cons, and giving some guidance on picking one or the other, based on the problem at hand. Other containers (e.g. std::map) will be the topic of follow-up courses.

No prior knowledge of C++ Standard Library containers is required. You only need a basic knowledge of C++ language features.

Working on the implementation of a case-insensitive string search.
Working on the implementation of a case-insensitive string search.

Containers and algorithms are kind of like “bread and butter”, so in this course you’ll also learn about the C++ Standard Library design based on the teamwork between containers, iterators and algorithms, and you’ll see how to perform important operations on containers leveraging some useful algorithms already implemented in the C++ Standard Library.

Explaining the erase-remove idiom.
Explaining the erase-remove idiom.

Note that this course is both theory and practice! In fact, I’ll show practical demo code, and I’ll also discuss some bugs that are especially common for those who are just starting to learn the C++ Standard Library’s containers.

Analyzing a subtle bug when working with std::list.
Analyzing a subtle bug when working with std::list.

These are some feedback notes from my reviewers:

The narration is clear, animated, and engaging. The visuals are particularly helpful. [Peer Review]

You do a particularly good job clearly stating the problem here (and elsewhere) so that the solution, when it comes, makes sense and fits nicely. [Peer Review]

Great simple example of undefined behavior to reinforce the concepts you’ve introduced as well as a bonus of uncovering a security issue. [Peer Review]

Very nice module with good examples. Also excellent visuals when describing list, vectors and the various operations. [Peer Review]

Very nice discussion of the trade-offs between a linked list and a vector [Peer Review]

Nice use of a bug to teach a key concept [Peer Review]

 

Starting from this course page, you can freely play the course overview, and read a more detailed course description and the table of content.

Let me also express my gratitude to all the Pluralsight persons involved in the production of this course: It’s always a pleasure to work with you all!

I hope you’ll enjoy watching this course!

 

New Pluralsight Course: Introduction to Data Structures and Algorithms in C++

A new course of mine was published in the Pluralsight library: Introduction to Data Structures and Algorithms in C++.

In this course, you’ll learn how to implement some fundamental data structures and algorithms in C++ from scratch, with a combination of theoretical introduction using slides, and practical C++ implementation code.

Introducing the stack with an interesting metaphor

No prior data structure or algorithm theory knowledge is required. You only need a basic knowledge of C++ language features (please watch the “Prerequisites” clip in the first module for more details about that).

Explaining linear search using slides

During this course journey, you’ll also learn some practical C++ coding techniques (ranging from move semantic optimization, to proper safe array copying techniques, insertion operator overloading, etc.) that you’ll be able to use in your own C++ projects, as well.

So, this course is both theory and practice!

Spotting a subtle bug

Here’s just a couple of feedback notes from my reviewers:

The callouts are helpful and keep the demo engaging as you explain the code. [Peer Review]

To say that this is an excellent explanation of Big-O notation would be an understatement. The way you illustrate and explain it is far better than the way it was taught to me in college! [Peer Review]

Big-O doesn’t have to be boring!

Starting from this course page, you can freely play the course overview, and read a more detailed course description and table of content.

I hope you’ll enjoy watching this course!