Cover art for podcast Take Up Code

Take Up Code

303 EpisodesProduced by Take Up Code: build your own computer games, apps, and robotics with podcasts and live classesWebsite

Take Up Code is a podcast that explains computer programming topics through fun and engaging examples that you can relate to. The guided format allows you to gain valuable understanding of topics that will reinforce your studies, allow you to train new skills that you can apply on your job, and chan… read more

episodes iconAll Episodes

261: CppCon: Interview With Conor Hoekstra About C++ Algorithms And Ranges.

September 25th, 2019


This is an interview with Conor Hoekstra about C++ algorithms and ranges.

Conor presented my favorite talk at CppCon 2019 called Algorithm Intuition. I asked him to talk about algorithms on this podcast and he agreed. …

260: CppCon: Interview With Josh Lospinoso About The Book C++ Crash Course.

September 25th, 2019


Josh Lospinoso discusses his new book C++ Crash Course. This is a book with a focus on C++17 written with a desire to simplify and make it easy for you to learn C++.

I got this book during the CppCon conference and have …

259: CppCon: Interview With Asad Naweed About Augmented Reality.

September 24th, 2019


This is an interview with Asad Naweed about augmented reality.

I met Asad at CppCon in 2019 when he asked some questions at one of the presentations I also attended. We started talking at first about teaching coding. He …

258: CppCon: Interview With Nicolai Josuttis About How The C++ Standardization Has Changed Over The Years.

September 24th, 2019


This is an interview with Nicolai Josuttis about how the C++ standardization process has changed over the years.

You can find more information about …

257: CppCon: Interview With Sean Hale About Becoming A Software Developer Without A Degree In Computer Science.

September 23rd, 2019


This is an interview with Sean Hale about how he got into computers and then turned a degree in literature into a job as a software development engineer.

I met Sean at CppCon in 2019 and asked him to be on the podcast …

256: What Is Hurting Your Effort To Learn Coding? How To Improve Your Learning With One Simple Trick I Discovered By Accident.

September 23rd, 2019


Is there something you can do that will help you learn coding? When learning something new, it helps to focus on associations, especially opposites. It’s hard to learn separate facts and ideas. Linking them together …

255: How To Avoid Small Choices And Design Your Application To Scale Big.

September 22nd, 2019


How do you  design your application so it scales well to a big size? Scaling needs to be verified early in the design to prevent costly mistakes that usually appear later. You can scale in many ways. The number of …

254: GameDev: How To Use Noise To Procedurally Generate Maps And Landscape.

September 3rd, 2019


How do you create unique and random game worlds and maps? Unique and random game maps and worlds can be created procedurally in code using noise. The …

253: Creative Ways To Use C++ Curly Braces Beyond Just Functions And Loops.

September 3rd, 2019


This episode will explain how you can use curly braces in C++ to create a new scope. You can use this ability to control name visibility and reduce …

252: How To Handle Frustration When Learning To Code.

September 2nd, 2019


What’s the best way to handle frustration when learning to code? Knowing that all developers face frustration at times is a big help. You’re not alone. And it doesn’t mean that coding is not for you. Treat it as a …

251: What Happens When Code Has Undefined Behavior?

September 2nd, 2019


What happens when code has undefined behavior? There’s hundreds of ways code can have undefined behavior. What happens is completely up to the …

250: GameDev: Design Patterns: Entity Component System.

December 10th, 2018


This design pattern will help you make sense of your game design as it gets bigger.

You can listen to episodes 77, 86, 87, and 88 for more information and background. This episode will start tying things together. I …

249: GameDev: Floating Point: Zero, Infinity, NaN.

November 25th, 2018


There’s some special floating point values that you should be aware of. Zero, infinity, and not a number are three cases that might surprise you.

248: GameDev: Special Offer: Free Advanced Game Building Bonus.

November 19th, 2018


Looking for more advanced training to help you better understand how to actually build something in C++? Want to go beyond example snippets that don’t really teach you anything? How about being able to ask questions or …

247: GameDev: 1.1 Plus 2.2 Is Not 3.3. What?

November 12th, 2018


Be careful with floating point numbers when building games.

You could be in for some big surprises if you don’t understand how computers work with …

246: GameDev: Points Vs. Vectors. Which Should You Use?

October 29th, 2018


Do you know the differences between points and vectors? You might be surprised. I learned a few things myself recently when I implemented points and vectors in the TUCUT library. Listen to episode 240 to learn more …

245: GameDev: Points, Lines, Planes, Dimensions, and Normals.

October 15th, 2018


You don’t need a lot of math to program. What you do need is usually simple. But you do need some. Don’t worry, it’s not that hard and I’ll explain it so you can understand. Game development probably needs a bit more …

244: CppCon: What Did I Learn? And What Will Help You?

October 2nd, 2018


I just got back from CppCon 2018 in Bellevue Washington. And since this is a podcast where I teach you how to program, I thought I’d share something …

243: How To Install Linux, GCC, GDB, Git, CMake, LLVM, Clang, Boost, SFML, CodeLite, Sublime Text 3, And Dropbox On a $140 Lenovo ideapad 120S.

September 17th, 2018


Installing Linux, GCC, GDB, Git, CMake, LLVM, Clang, Boost, SFML, CodeLite, Sublime Text 3, And Dropbox On a $140 Lenovo ideapad 120S makes an ultra …

242: In The End, It’s You Vs. You.

September 3rd, 2018


In the end, it’s you vs. you. Is this about living or dying?

It seems that this is a common inspirational quote used a lot in fitness clubs and weight loss programs. But I first saw it on a t-shirt this weekend.

I was …

241: How To Use Raw Pointers Properly And Still Avoid Crashes.

August 20th, 2018


Some people say that raw pointers are evil and should be avoided. Raw pointers are useful when used properly. This episode explains how to use raw …

240: Video Game Update: Introducing The TUCUT Library.

August 6th, 2018


You can join an actual game development session almost every Saturday. This schedule might change in the future. But until then, you can find me …

239: What 20 Percent Of Topics Should You Focus On?

July 23rd, 2018


There’s a lot you can learn about programming. But do you need to know it all?

I’ve been reading a lot about the Pareto principle. You’ve probably …

238: Filesystem: Recent WordPress Attack Lets Editors Take Over.

July 9th, 2018


This is a real example of how the filesystem can be used to take over a WordPress website.

It’s a really bad vulnerability. And it uses the …

237: Filesystem: How To Avoid Security Vulnerabilities. Part 3.

June 25th, 2018


Avoid being predictable. This advice applies to almost everything you do as a programmer. This episode will focus on the filesystem and how being …

236: Filesystem: How To Avoid Security Vulnerabilities. Part 2.

June 10th, 2018


Run your program with the least permissions possible.

Listen to the full episode to learn how this applies to your application and what role the …

235: Filesystem: How To Avoid Security Vulnerabilities. Part 1.

May 28th, 2018


When it comes to security, it’s better to learn from examples.

This episode explains a very important and simple piece of advice. Always test for things that you want instead of things you don’t want.

You’ll need to …

234: Filesystem: Journaling Keeps Your Filesystem Intact.

May 14th, 2018


Journaling records extra information in case there are problems.

If your computer loses power or maybe you’re saving your files to a removable drive and you eject the drive without notice, then you might lose your work.

233: Schedule Changes To Support Take Up Code.

April 30th, 2018


The Take Up Code podcast needs your support!

Listen to this episode for upcoming changes or you can also read the full transcript below.


232: Filesystem: Linking Explained: Symbolic, Soft, Hard, Junction.

April 23rd, 2018


Filesystems allow you to refer to your content with different names.

You can usually get by just fine without linking files and directories. Until a …

231: Filesystem: Metadata Holds More Information.

April 16th, 2018


Metadata provides information about your files.

You might hear the prefix meta applied to other things. It really just adds a higher level to whatever it describes. So metadata is information about your data. It’s data …

230: Filesystem: What Can They Do? Part 4.

April 9th, 2018


There is a special type of filesystem used to swap memory.

This is not something you’ll need to use directly. But since we’re talking about filesystems, now’s a good time to explain paging and swapping.

Listen to the …

229: Filesystem: What Can They Do? Part 3.

April 2nd, 2018


Access control lists provide more security options.

The previous episode described the traditional security model used by Unix computers. This …

228: Filesystem: What Can They Do? Part 2.

March 26th, 2018


Security is a big part of filesystems.

This episode will explain how traditional file system security works for Unix, or Linux, or Mac computers. …

227: Filesystem: What Can They Do? Part 1.

March 19th, 2018


There are many different types of filesystems with different capabilities.

Once you understand these capabilities, you’ll not only be able to select the proper filesystem for your needs but will understand, for example, …

226: Filesystem: CHS vs. LBA Modes.

March 12th, 2018


Cylinder, Head, Sector or CHS vs. Logical Block Addressing or LBA give you two ways to find data on a disk.

You’ll learn about these two methods in this episode because the terms come up now and then when talking about …

225: Filesystem: Partitions Allow You To Divide Your Disks.

March 5th, 2018


Dividing your disks into partitions allows you to use each partition for separate tasks.

Listen to the full episode or read the full transcript below …

224: Filesystem: Drive Letters, Mounting, And Paths. Part 2.

February 26th, 2018


How are filesystem organized with multiple drives?

Whenever you insert a floppy disk, or a CD or DVD, or even a USB drive, the operating system will …

223: Filesystem: Drive Letters, Mounting, And Paths. Part 1.

February 19th, 2018


How are filesystem organized with multiple drives?

Now that you know why you should learn how to use a filesystem in your programming, what do you …

222: Filesystem: Why Should You Learn To Use It?

February 12th, 2018


Understanding how to use the filesystem will allow you to add common and expected features to your apps.

Listen to the full episode for more insight …

221: Be Careful Of Changes In Code Abstraction.

February 5th, 2018


The code you write should follow a similar level of detail.

I mentioned level of detail in an earlier episode about how to start building a video …

220: One Of These Things Is Not Like The Others.

January 29th, 2018


Finding differences will help you make sense of your code.

We’re fairly good at spotting things that are different. But how good are you at thinking of different ways that something can be similar or different? That’s …

219: C++ RAII Sounds Complicated But Simplifies Your Code.

January 22nd, 2018


Resource allocation is initialization or RAII for short may be hard to pronounce but will help you write better and simpler code.

Listen to this …

218: C++ Used To Program Video Games.

January 15th, 2018


Why is C++ such a good choice for writing games?

The C++ language is used for many types of projects requiring speed, scale, and responsiveness. It’s also a great choice for video games. Why? The C++ language is more …

217: How To Start Building a Video Game. Part 7.

January 8th, 2018


Work on the toughest problems first. And if you can’t solve them, then find a way around.

Remember to always keep sight of what’s important. And …

216: How To Start Building a Video Game. Part 6.

January 1st, 2018


How is a video game different than any other application?

Building a video game will help you understand how to build any type of application. It’s a fun way to learn how to program. But how are video games different? …

215: How To Start Building a Video Game. Part 5.

December 25th, 2017


We all want to think big. But to get there, we need to think small.

I’ve talked about this a few times, most recently in a 4 part series called, “Your Guide To Computer Programming.” Listen to episodes 166 through 169

214: How To Start Building a Video Game. Part 4.

December 18th, 2017


You can take advantage of libraries and frameworks.

Listen to the full episode to learn how libraries are different from frameworks and where game …

213: How To Start Building a Video Game. Part 3.

December 11th, 2017


What role will data play in your game?

It doesn’t matter what type of application you’re building. Data will be important. You need to decide what …

212: How To Start Building a Video Game. Part 2.

December 4th, 2017


How do you make your idea more specific?

It’s hard to make progress on a vague idea. This reminds me of a popular book called Getting Things Done …

211: How To Start Building a Video Game. Part 1.

November 27th, 2017


You have a vague idea for a new video game. Where do you begin?

I’m not a painter but I have to imagine that this is similar to any creative work of art. Where do you begin? A lot of people get stuck here and never make …

210: Shiny Projects And Distractions.

November 20th, 2017


When is it okay to switch to a different project?

This is something that I struggle with all the time. I have so many ideas and so little time. There’s no way that I can get to everything. But it gets worse. Because new …

209: CSS: Cascading Style Sheets Tutorial. Part 2.

November 13th, 2017


Cascading Style Sheets let you manage how your HTML looks so you can keep your HTML focused on the content.

To get the most benefit from cascading style sheets, you need to start with the HTML. Make sure that you’ve …

208: CSS: Cascading Style Sheets Tutorial. Part 1.

November 6th, 2017


Cascading Style Sheets let you manage how your HTML looks so you can keep your HTML focused on the content.

I’ll explain how to use cascading style sheets, or CSS, to handle the presentation while your HTML can then …

207: Trees: AST: Abstract Syntax Tree. A Simple Example.

October 30th, 2017


An abstract syntax tree can help your code make sense of what a user provides.

Listen to the full episode as I describe how to build an abstract …

206: Collections: Stack.

October 23rd, 2017


You can use a stack when you need to remember something and only ever need the last thing.

If you need to access any item in a collection at any …

205: Trees: What Can You Do With Them?

October 16th, 2017


What other things can trees help you to solve? When thinking about trees, I usually put them in two groups.

The first are trees with arbitrary …

204: This Is Terrible, You Gotta Start Anyway.

October 9th, 2017


Have you ever created something and then thought about how bad it was? What did you do?

Most of us would hide it or even destroy it. Or maybe just …

203: Trees: Why Use Them?

October 2nd, 2017


Why should you consider using trees?

You can find more information about trees in some of the earlier episodes. I’ll try to not repeat the same …

202: Graphs vs. Trees vs. Hierarchies: Compared.

September 25th, 2017


Before exploring HTML and CSS further, you’re going to need to understand graphs, trees, and hierarchies.

These concepts apply throughout programming and are not limited to just HTML and CSS. But as I was trying to …

201: HTML: Caching Generated Output For Speed.

September 18th, 2017


Now that you can generate HTML, why would you ever want to go back to the old way of unchanging HTML?

It takes some amount of work to generate HTML. …

200: HTML: Can Be Generated By A Web Server.

September 11th, 2017


A modern website is more than just a collection of some HTML pages.

If all you have is some basic information that you want to make available for the …

199: HTML: How To: Simple Formatting.

September 4th, 2017


You’ll learn how to use HTML to format your text into headings, paragraphs, and lists in this episode.

Why do you need HTML to format your documents? Why not just use a text editor to write whatever you want to appear …

198: HTML: Semantic Meaning.

August 28th, 2017


Does markup have any specific meaning that can be understood?

You already know about the html tag which identifies an html document. And the head and body tags that also define well understood areas. But how does the …

197: HTML: The Bigger Picture.

August 21st, 2017


You need to know more than how HTML tags work. There’s a structure that HTML documents should follow.

Now that you know how HTML tags work from the …

196: HTML: How Does Markup Work?

August 14th, 2017


How does HTML markup enable you to create web pages?

You’ll understand how HTML works after listening to this episode but styling and scripting will be explained in other episodes. Let’s start at the beginning.


195: HTML: Is This Programming?

August 7th, 2017


You can use HTML to present information or build web pages.

HTML stands for Hypertext Markup Language which is a bit unfortunate because it gives the impression that this is a programming language. It’s not. The most …

194: How Can You Tell Good Teachers From Fake?

July 31st, 2017


What criteria do you use to determine if somebody is faking their skills as a teacher?

You can’t rely on awards or certifications. Sure, these things can help. But they’re not completely accurate. When you ask a …

193: Kids Either Leave or Go to Jail.

July 24th, 2017


My dad recently said that he noticed a lot more police activity recently. He lives in a small rural town and told me that kids now days either leave …

192: Developer Bootcamps and Coding Schools: Doomed or Thriving?

July 17th, 2017


Where is the best place for you to get the skills you need to get a high-tech job, to advance your career, or to just satisfy your desire to improve?

You’re not going to find a specific answer in this episode to the …

191: Git: Keep Track Of Your Files As They Change. Part 6.

July 10th, 2017


Programming involves change and managing that change is the only way to make sense of it. You’ll learn about the staging area in this episode and how …

190: Git: Keep Track Of Your Files As They Change. Part 5.

July 3rd, 2017


Programming involves change and managing that change is the only way to make sense of it. You’ll learn about submodules in this episode and how that …

189: Git: Keep Track Of Your Files As They Change. Part 4.

June 26th, 2017


Programming involves change and managing that change is the only way to make sense of it. You will learn about distributed repositories in this …

188: Git: Keep Track Of Your Files As They Change. Part 3.

June 19th, 2017


Programming involves change and managing that change is the only way to make sense of it. You’ll learn about branching and what it means to commit …

187: Git: Keep Track Of Your Files As They Change. Part 2.

June 12th, 2017


Programming involves change and managing that change is the only way to make sense of it.

You’ll learn about merging in this episode. With this …

186: Git: Keep Track Of Your Files As They Change. Part 1.

June 5th, 2017


Programming involves change and managing that change is the only way to make sense of it.

It’s more than history. As your projects get bigger and …

185: Working Remotely: No More Trading Schedules.

May 29th, 2017


Hey, I need to wait around for a package to be delivered next Friday. Can you cover for me if I take your shift on Saturday?

We all have things that need to get done and sometimes that means we have to be someplace …

184: Basic Electronics: Transistors Can Act Like Switches.

May 22nd, 2017


We normally think of something as either a conductor of electricity or an insulator.

Transistors are semi-conductors which means that their ability …

183: Digital Electronics: Microcontrollers Ready To Use.

May 15th, 2017


Unlike microprocessors, microcontrollers can be used all by themselves.

If you’re building a computer, then go ahead and use a microprocessor. But …

182: Digital Electronics: Microprocessor Speed And Clocks.

May 8th, 2017


What are microprocessors and how have they changed?

The first thing to understand is that a microprocessor by itself is useless. It can’t do anything without other components such as memory, communications, port …

181: Basic Electronics: Voltage Dividers.

May 1st, 2017


You can use resistors to divide voltage.

A circuit with just some resistors may not seem very interesting but you can learn something. If you put two …

180: Basic Electronics: Series And Parallel.

April 24th, 2017


Have you ever wondered why batteries sometimes need to be inserted in alternating directions?

A typical electronic circuit has lots of components connected together with wires. How these connections are made is …

179: Basic Electronics: Capacitance.

April 17th, 2017


Do you know how your touch screen works?

In this episode, you’ll learn about an important electrical effect called capacitance that can be used like …

178: Basic Electronics: Magnetic Fields And Current.

April 10th, 2017


Moving charge produces a magnetic field and a moving magnetic field produces current.

First of all, if you have charge moving through a wire, then there’ll be a magnetic field that develops around the wire. You’ve …

177: Basic Electronics: AC/DC: Alternating Vs. Direct Current

April 3rd, 2017


Do you know where the nearest power plant is?

Direct current is easy to understand because there’s a constant voltage that wants to push charge …

176: Basic Electronics: Voltage, Current, Resistance.

March 27th, 2017


Knowing some basic electronics helps you become a better programmer.

You might have seen warning signs that say “Danger: High Voltage” But do you …

175: Multiplexing: Many Over One.

March 20th, 2017


How do you send multiple messages across a single channel?

Multiplexing is a topic that applies most to communications but it also applies to …

174: Error Correction: Hamming Distance And Codes.

March 13th, 2017


How do you correct errors once you identify them?

I’ve explained a lot already about error detection. Make sure to listen to the last several episodes for more information. Detecting errors is the first step and the …

173: HMAC: Keyed Hashed Message Authentication Code.

March 6th, 2017


How do you stop an attacker from just changing a hash?

In the previous episode, I explained how hashes give you the best error detection even when under a direct attack. But the best hash function by itself is not …

172: Hashes Offer The Best Error Detection.

February 27th, 2017


If you receive some information, how do you know if it’s intact or has been changed?

You use a hash in a similar way to a checksum by including it along with the data. If you want to verify that the data is correct, …

171: Checksums Offer Better Error Detection.

February 20th, 2017


If you receive some information, how do you know if it’s intact or has been changed?

I’m going to continue explaining how you can detect errors in this episode. Make sure to listen to the previous episode also. And the …

170: Parity: Simple And Fast Error Detection.

February 13th, 2017


If you receive some information, how do you know if it’s intact or has been changed?

Let me make this point clear from the beginning. Error detection only lets you detect errors. It doesn’t correct them. You have to …

169: Your Guide To Computer Programming. Part 4 of 4.

February 6th, 2017


Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?

While there’s many ways to …

168: Your Guide To Computer Programming. Part 3 of 4.

January 30th, 2017


Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?

This episode shares the …

167: Your Guide To Computer Programming. Part 2 of 4.

January 23rd, 2017


Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?

To be a good programmer, …

166: Your Guide To Computer Programming. Part 1 of 4.

January 16th, 2017


Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?

Even if you already know …

165: Sockets And Ports: The Hidden Pieces.

January 9th, 2017


How does one application communicate with another application?

So far, in the last several episodes, I’ve explained how to identify and find computers on a network, how to establish connections, how to think about …

164: SCTP vs. TCP vs. UDP

January 2nd, 2017


You’ll learn more about the strengths of the SCTP, TCP, and UDP protocols by comparing them. The audio recording has much more detail about the …

163: SCTP: Stream Control Transmission Protocol.

December 26th, 2016


SCTP is another protocol like TCP and UDP with aspects of both.

Your computer may not support SCTP yet and there’s always the chance this protocol …

162: OSI Model: Seven Layers of Communication.

December 19th, 2016


The OSI model will help you understand how computers communicate.

This is just a model that helps us understand how things work. Not everything has to fit exactly into one of these layers and maybe you might design …

161: MAC: Media Access Control Address.

December 12th, 2016


A MAC address is a physical address unique to your computer.

Think of it like this: you want to send a letter to your friend so you put your friend’s mailing address on the envelope. This is good enough at first. But …

160: UDP: User Datagram Protocol.

December 5th, 2016


Sometimes speed and simplicity are more important than reliability.

This episode expands on the concepts introduced in the previous episode. If you …

159: TCP: Transmission Control Protocol.

November 28th, 2016


Knowing where to send information through IP is not enough. You have to know how to reliably send information too.

What is TCP and why is it needed?

Imagine for a moment that you need to send a very large package by …

158: IP: Internet Protocol Addresses.

November 21st, 2016


Any computer or device that wants to communicate with the Internet Protocol needs an IP address to uniquely identify the device.

And some devices …

157: DNS: Domain Name System.

November 14th, 2016


Why do we need a system for managing domain names?

Imagine for a moment what the Internet would be like without a domain name system. It would be …

156: URLs, URNs, URCs, Data URIs, and URIs.

November 7th, 2016


It’s almost a tongue twister to say them all. Do you know what they all mean?

Let’s take URI one step at a time and at the end, you’ll understand how best to describe where information such as web pages can be found. …

155: HTML vs. HTTP: How Do They Compare?

October 31st, 2016


There’s more than just two letters difference. In fact, you can’t really compare them at all. But you can use them together.

HTML stands for Hypertext Markup Language. A well formatted HTML document though is really …

154: Data: JSON JavaScript Object Notation.

October 24th, 2016


If you haven’t already, make sure to listen to the previous episode 153 about XML. Many of the concepts that I described there apply to JSON as well.

JSON stands for JavaScript Object Notation and comes from the …

153: Data: XML Extensible Markup Language.

October 17th, 2016


XML was designed to solve two main purposes. To allow information to be stored and transported and to allow both humans and computers to read and …

152: Distributed Computing: APIs Have Changed.

October 10th, 2016


You might be more familiar with APIs than SOA but they had another meaning not very long ago.

The full episode tells how I used to program for DOS …

151: The More You Learn.

October 3rd, 2016


As you learn more about something, a strange thing happens. It becomes obvious how much more there is to still be learned.

This is not a new idea. It’s been around and quoted in many different forms for thousands of …

150: Distributed Computing: SOA

September 26th, 2016


Service Oriented Architecture or SOA for short can mean different things. At the core, is the ability to send a message over a network to an isolated …

149: Step By Step Perfection.

September 19th, 2016


Knowing where to spend your time and focus will help you finish projects without getting stuck in details.

I’m building a 2D side-scroller game and …

148: CAP Theorem: Choose Two, Or Is It One?

September 12th, 2016


Consistency, Availability, and Partition Tolerance are three aspects of distributed computing. And a fourth not included in the theorem is Latency.

147: Distributed Computing: Ready? Yes. Done.

September 5th, 2016


Two-phase and three-phase commits will help you design solutions that need to work across multiple computers.

Let’s say that you’re working on an …

146: Distributed Computing: It Happened When?

August 29th, 2016


Computers rely on clocks. They coordinate everything. But the clocks on different computers can be slightly off from each other.

This is normally not …

QA Friday 2016-Aug-26

August 26th, 2016


What can you do to improve your concentration?

Last week, I explained how you need to increase your attention span by having a goal, trusting your timer, removing unnecessary distractions, making progress, taking a …

145: Distributed Computing: Four Reasons.

August 22nd, 2016


Dividing work between multiple computers is sometimes the best way to solve a problem.

We do this all the time in real life and so much that we don’t …

QA Friday 2016-Aug-19

August 19th, 2016


How do you concentrate?

For most people, this question probably means, “Do you listen to music while working?” or “Do you go somewhere to get away from it all?” But there’s more to learning how to concentrate than just …

144: Data Types: C++ nullptr Is Not Zero.

August 15th, 2016


nullptr represents a null pointer and while it has a value of zero, the type is not the same.

For a long time in C++ there was a common rule that …

QA Friday 2016-Aug-12

August 12th, 2016


When should I create a new class?

There’s no single answer I can give you for this because every situation is different and even then, there’s …

143: Where And How To Use Whitespace.

August 8th, 2016


Making code more readable sometimes means knowing where to put nothing.

Programming has strict rules about the meaning of the code. And compilers …

QA Friday 2016-Aug-05

August 5th, 2016


Regulations say that you can only have one floor mat.

I overheard that comment at a grocery store recently. It seems that a young man working as a …

142: Comments. Focus On Why.

August 1st, 2016


Comments are important but don’t forget that your code should also be self-commenting.

If I had to sum this episode into a single sentence, I’d have …

QA Friday 2016-Jul-29

July 29th, 2016


Where are your certifications? Do you have a degree?

First of all, let me be clear, a certification, or a degree, or any other piece of paper, or even a bunch of letters after your name doesn’t prove anything. And it …

141: Reference Counting. Still In Use!

July 25th, 2016


Can this object be thrown away yet? Keeping track of how many places are still using an object is one way to answer this question.

The way it works is like this. When you first create an object it starts out with a …

QA Friday 2016-Jul-22

July 22nd, 2016


What’s your biggest weakness? Things around us change and we each grow and change too.

Skills are things we can learn and practice. Getting good at a skill requires a lot of time. Maybe you know someone who seems …

140: Name Mangling and Overloaded Methods.

July 18th, 2016


You normally don’t have to worry about name mangling. But you should know what it is.

This sounds a lot worse than it is. Name mangling is a …

QA Friday 2016-Jul-15

July 15th, 2016


What’s your biggest weakness? In real life, problems often require more than one person. Nobody can be an expert in everything. We have to each focus on what we do best and that means we need weaknesses.

This episode …

139: Data Types: C++ Decltype. Declared Types.

July 11th, 2016


Sometimes you need to declare a type to be the same as something else.

You can use decltype just like auto. When you want to declare a local variable and initialize it right away, then auto really is the better choice. …

QA Friday 2016-Jul-08

July 8th, 2016


How our education system ignores problem solving. I don’t really have a question this week so this is a great opportunity for me to talk about …

138: Data Types: Lvalues And Rvalues.

July 7th, 2016


You’ll sometimes come across lvalues and rvalues maybe when trying to understand compiler error messages or when reading docs. A basic understanding will go a long way to making sense of them.

The names look strange, …

137: Data Types: Auto or Var. The Compiler Chooses.

July 6th, 2016


Auto and var types do have a type. The compiler will figure out what that is.

You might think this is just a shortcut and it sometimes helps cut down on the typing. But there are other benefits.

Let’s say you have a …

136: Data Types: Variant. Pick One.

July 5th, 2016


The variant type can take on one of many different types and can even change it’s type. It’s still a variant so it’s more accurate to say that it can …

135: Data Types: GUIDs Globally Unique Identifiers.

July 4th, 2016


When you want to identify class instances or data records, you can’t use things like passports. Yet it’s just as important to keep track of object identities as it is for people.

One simple way to keep track of things …

QA Friday 2016-Jul-01

July 1st, 2016


I always feel pressure and embarrassment when doing code reviews. What should I do?

One of the best things you can do is discuss how you feel with …

134: Data Types: C++ Function Binders.

June 30th, 2016


Binders make up part of functional composition that allows you to adapt functions and combine them into new functions.

Let’s say you have a method …

133: Data Types: Regular Expressions.

June 29th, 2016


A regular expression or regex lets you perform the advanced text operations matching, searching, tokenizing, and replacing.

To begin, why would you …

132: Data Types: Lambdas.

June 28th, 2016


Lambdas are a recent addition to C++ and are also included in other languages. Think of them like unnamed methods but with some extra concepts that you need to know. Or if not, you’ll be even more lost than with …

131: Data Types: Function Pointers Part 2.

June 27th, 2016


You may not always need to work with this data type but that doesn’t mean you can ignore it. If you don’t at least know the basics, then you’ll get lost in code that uses function pointers.

You can listen to the episode …

QA Friday 2016-Jun-24

June 24th, 2016


What is data binding?

A good example of this is a list box that shows several items. If you’re writing a list box that can only show an alphabetical …

130: Data Types: Function Pointers Part 1.

June 23rd, 2016


You may not always need to work with this data type but that doesn’t mean you can ignore it. If you don’t at least know the basics, then you’ll get lost in code that uses function pointers.

You can listen to the episode …

129: Data Types: Function Objects Part 2.

June 22nd, 2016


Function objects are simple but don’t let that fool you. You can use them in clever solutions.

How do you actually use functors?

A really great …

128: Data Types: Function Objects Part 1.

June 21st, 2016


Function objects are simple but don’t let that fool you. You can use them in clever solutions.

It’s more difficult to explain why you might want to …

127: Data Types: Smart Pointers Part 2.

June 20th, 2016


The C++ language guarantees that destructors run at specific times even if an exception is thrown. You can use this to make sure that other cleanup work gets done. That’s what smart pointers do.

A pointer can allow you …

QA Friday 2016-Jun-17

June 17th, 2016


What is runtime binding?

Runtime binding is a concept that allows your application to change or extend its behavior at runtime in ways that the …

126: Data Types: Smart Pointers Part 1.

June 16th, 2016


The C++ language guarantees that destructors run at specific times even if an exception is thrown. You can use this to make sure that other cleanup work gets done. That’s what smart pointers do.

Let’s say you create a …

125: Data Types: Streams Part 2.

June 15th, 2016


Streams provide a way to read and write potentially unlimited information and working with them is very different than data types representing a single variable.

This episode continues the explanation of streams. …

124: Data Types: Streams Part 1.

June 14th, 2016


Streams provide a way to read and write potentially unlimited information and working with them is very different than data types representing a single variable.

I’ve described streams so far with an example of a stream …

123: Data Types: Tuples.

June 13th, 2016


Sometimes you need to bundle things together so you can treat them as a single unit. That’s what the tuple provides.

You might wonder why not just use a container to put things in? Containers are good at storing as many …

QA Friday 2016-Jun-10

June 10th, 2016


When should I use a reference and when should I use a pointer?

Both references and pointers allow you to create a variable that refers to something …

122: Data Types: DateTimes Part 5 C++.

June 9th, 2016


DateTimes in C++ require quite a bit of a learning curve. They’re still evolving and nowhere near to being full-featured or friendly to use.

Up until …

121: Data Types: DateTimes Part 4.

June 8th, 2016


Dates and times are a lot more complicated than we normally realize. This episodes explains durations.

You can specify a duration directly and it’s very simple now that you know how the date and time portion works. Just …

120: Data Types: DateTimes Part 3 C#.

June 7th, 2016


So you think you know how to use the DateTime struct in C#? You might be surprised.

C# provides a struct which is a value type called DateTime that implements various interfaces including IComparable, IConvertible, …

119: Data Types: DateTimes Part 2.

June 6th, 2016


Dates and times are a lot more complicated than we normally realize. Having a specific data type to manage all the details is crucial.

This episode …

QA Friday 2016-Jun-03

June 3rd, 2016


Do I really have to follow software licenses?

This is a follow-up to last week’s question about the need to learn how to code when so much is …

118: Data Types: DateTimes Part 1.

June 2nd, 2016


Dates and times are a lot more complicated than we normally realize. Having a specific data type to manage all the details is crucial.

02-04-10. What does that mean? If you’re from the US, then it probably means …

117: Data Types: Decimals.

June 1st, 2016


If you need floating point values but find the accuracy of floats and even doubles to cause problems, then consider using the decimal type.

But first, what’s the difference between accuracy and precision? Are they …

116: Data Types: Strings Part 3.

May 31st, 2016


You need more than a bunch of numbers and logic to write an application. You need text and working with individual characters isn’t enough either.

This episode continues explaining concepts important to the string data …

115: Data Types: Strings Part 2.

May 30th, 2016


You need more than a bunch of numbers and logic to write an application. You need text and working with individual characters isn’t enough either.

This episode continues the discussion about the string data type and …

QA Friday 2016-May-27

May 27th, 2016


Is there any point in learning how to code when I can just use the source code from another app?

The simple answer is, yes, it is very worthwhile to learn how to code. And for many reasons. But my reasons might surprise …

114: Data Types: Strings Part 1.

May 26th, 2016


You need more than a bunch of numbers and logic to write an application. You need text and working with individual characters isn’t enough either.

In some languages, a string is nothing more than an array of chars that …

113: Data Types: Arrays.

May 25th, 2016


You’ll often need multiple variables of the same type and while you can sometimes just create separate variables with their own names, what if you …

112: Data Types: Floats.

May 24th, 2016


If you want to work with fractional values instead of just whole numbers, then floating point types are usually a good choice. They’re different …

111: Data Types: Enums.

May 23rd, 2016


What would you rather see? 1, 2, 3, or red, green, blue? Enums allow you to give meaningful names to values. Seems simple, right? It is, except for a …

QA Friday 2016-May-20

May 20th, 2016


I met a person recently who has a college degree in computer science. He works at a local pizza shop. The question this week is not really a question …

110: Data Types: Void And Bool.

May 19th, 2016


Void and bool are simple types that you can use with very little explanation. There are a few details that you should be aware of though.

Think of …

109: Data Types: Ints Part 2.

May 18th, 2016


You’ll probably have one or more ints in almost every method and class you write. They’re everywhere so you really should know how to use them.

108: Data Types: Ints Part 1.

May 17th, 2016


You’ll probably have one or more ints in almost every method and class you write. They’re everywhere so you really should know how to use them.

This …

107: Data Types: Chars And Bytes.

May 16th, 2016


Chars and bytes form some of the most basic data types available. But what are they really? And what can you do with them?

This will depend on what language you are using and maybe even what platform you’re building …

QA Friday 2016-May-13

May 13th, 2016


How do I use my foundational skills in programming to start making useful software?

Let me just get right to the point. Foundational skills alone …

106: Multithreading. Call Me Back Please.

May 12th, 2016


Callback methods can also be either synchronous or asynchronous and add a whole new dimension to how you can approach problems.

The way I think about …

105: Multithreading. Sync vs. Async.

May 11th, 2016


What are synchronous and asynchronous methods and how do you use them?

Sometimes we expect an answer or a result right away. And sometimes, it might …

104: Multithreading. Singleton Mistakes.

May 10th, 2016


There’s a big problem with Singletons especially in the C++ language. It’s not obvious how to get them to work with multiple threads. You want one …

103: Multithreading. Volatile.

May 9th, 2016


Volatile is a keyword that allows you to turn off certain optimizations. Unfortunately, it’s also used incorrectly many times as a way to synchronize …

QA Friday 2016-May-06

May 6th, 2016


Do it in place. What does that mean?

This is a common expression for programmers and I’ll explain what it means and what the alternatives are.

If the size of the data you’re working with is large compared to the memory …

102: Multithreading. Up And Down.

May 5th, 2016


What if you just want to limit how many things you can have or can be done? This episode will explain another side of the semaphore sometimes called a counting semaphore.

When you’re using semaphores, you have a way to …

101: Multithreading. Signal And Wait.

May 4th, 2016


Semaphores are often confused and characterized as just a more general form of a mutex. There’s actually some big differences though. I’m also going to explain some differences between the simple lock of the last …

100: Multithreading. Master The Lock.

May 3rd, 2016


This episode dives deep into locks. How do they work? And then explains how you can use this to implement a reader-writer lock.

A basic lock can be created with the “set and test” instruction. This works by reading a …

99: Multithreading. Cache Lines.

May 2nd, 2016


If you’re not careful, you can cause a processor to come to an immediate and full stop while it waits for data to move around in memory. That’s …

QA Friday 2016-Apr-29

April 29th, 2016


Do you get more value out of articles, videos, or podcasts?

The question of value comes down to three aspects:

  • What are you doing and what’s your …

98: Multithreading. The Great Divide.

April 28th, 2016


How do you assign work to threads? This episode explains several ways you can think about this and when to use them.

You’ll learn about the following …

97: Multithreading. The Big Event.

April 27th, 2016


There’s more to working with multithreading than locking code and avoiding deadlocks. You also need to know how to synchronize activities. It’s not …

96: Multithreading. Thoughtful Designs.

April 26th, 2016


The design decisions you make affect not only how well you can maintain your code but also how well others can use your code. Multithreading adds a …

95: Multithreading. When Neither Side Budges.

April 25th, 2016


Deadlocks are another common problem with multithreading. I’ll explain how you can get into this situation and how to change your code to avoid the …

QA Friday 2016-Apr-22

April 22nd, 2016


What makes a good personal programming side project?

I love side projects. Just listen to my sponsor message where I’ve been saying many times now …

94: Multithreading. The Race Is On.

April 21st, 2016


Anytime a thread tries to access some memory or resource that another thread can change, you have a race condition. There is no winner for this kind …

93: Multithreading. When Should You Use It?

April 20th, 2016


Do you know when to use multithreading? What are the advantages and disadvantages?

This episode continues what will likely be several more episodes …

92: Multithreading. Why Should You Care?

April 19th, 2016


There are several ways to make better use of the capabilities of your computer. Multiple threads allow your application to perform multiple things at …

91: Round Robin. Nobody Starves.

April 18th, 2016


Whenever your application has several things to do, you need to figure out how to schedule those things. This episode explains a common technique …

QA Friday 2016-Apr-15

April 15th, 2016


After working 8 hours, how can I learn to program in the evening?

The most important point and the one thing you should remember above all the other …

90: Design Patterns: Object Pool.

April 14th, 2016


What is the object pool design pattern? The object pool behavioral pattern allows you to reuse objects instead of destroying and creating them again. …

89: Design Patterns: Dirty Flag.

April 13th, 2016


What is the dirty flag design pattern? The dirty flag behavioral pattern avoids work that would need to be done again anyway. This simple pattern …

88: Design Patterns: Service Locator.

April 12th, 2016


What is the service locator design pattern? The service locator behavioral pattern allows you to make use of an interface without knowing what class implements the interface.

This design pattern shares many aspects with …

87: Design Patterns: Event Queue.

April 11th, 2016


What is the event queue design pattern? The event queue behavioral pattern allows you to keep track of work that needs to be done and let some other code actually perform the task.

You get several benefits from the …

QA Friday 2016-Apr-08

April 8th, 2016


Can I learn programming if I’m stupid?

I thought this was a really powerful question that I found online. Maybe because I’m able to relate to it so …

86: Design Patterns: Component.

April 7th, 2016


What is the component design pattern? The component behavioral pattern allows you to add just the features to your objects that are needed and keep the features independent of each other.

The episode describes an …

85: Design Patterns: Subclass Method.

April 6th, 2016


What is the subclass method design pattern? The subclass method behavioral pattern allows many different subclasses to define their own behavior while reusing common functionality from the base class.

This is a simple …

84: Design Patterns: Update Method.

April 5th, 2016


What is the update method design pattern? The update method behavioral pattern works with the game loop pattern and lets you manage the behavior of …

83: Design Patterns: Game Loop.

April 4th, 2016


What is the game loop design pattern? The game loop behavioral pattern is essential in games and simulations to make the actions proceed at the …

QA Friday 2016-Apr-01

April 1st, 2016


How do you make a design easy to understand?

A lot of people probably think that in order for something to be easily understandable, it needs to be simple. And sure, while simplicity is always nice, I don’t think it’s …

82: Design Patterns: Double Buffer.

March 31st, 2016


What is the double buffer design pattern? The double buffer behavioral pattern allows multiple changes to all appear to occur at the same time. Use …

81: Design Patterns: Visitor.

March 30th, 2016


What is the visitor design pattern? The visitor behavioral pattern allows you to perform actions on a collection of different types where the actions …

80: Design Patterns: Template Method.

March 29th, 2016


What is the template design pattern? The template behavioral pattern allows derived classes to change certain aspects of a base class behavior without needing to rewrite everything. This design pattern works best when …

79: Design Patterns: Strategy.

March 28th, 2016


What is the strategy design pattern? The strategy behavioral pattern allows you to define multiple ways to perform some action and then select the …

QA Friday 2016-Mar-25

March 25th, 2016


What is identity?

This episode describes identity and authentication. Authentication is the process you go through to prove your identity and there are several ways you can do this. It’s often confused with …

78: Design Patterns: State.

March 24th, 2016


What is the state design pattern? The state behavioral pattern allows you to simplify your code when you have different modes of operation. Instead of writing all the code to perform the action in each mode, you instead …

77: Design Patterns: Observer.

March 23rd, 2016


What is the observer design pattern? The observer behavioral pattern allows you to be notified of any changes instead of constantly checking. Publish/subscribe is another name that better describes how one part of your …

76: Design Patterns: Memento.

March 22nd, 2016


What is the memento design pattern? The memento behavioral pattern allows you to save and later restore the state of an object even without full …

75: Design Patterns: Mediator.

March 21st, 2016


What is the mediator design pattern? The mediator behavioral pattern allows you to define complex object interactions while still keeping each object simple and unaware of the other objects.

Just open any user interface …

QA Friday 2016-Mar-18

March 18th, 2016


How much programming do you need to know before you can call yourself a programmer?

Some professions have clear guidelines and rules for entry. The …

74: Design Patterns: Iterator.

March 17th, 2016


What is the iterator design pattern? The iterator behavioral pattern allows you to access objects in a collection or anything that contains multiple …

73: Design Patterns: Interpreter.

March 16th, 2016


The interpreter behavioral pattern allows you to solve common problems by expressing those problems in a simple language.

You first need enough …

72: Design Patterns: Command.

March 15th, 2016


The command behavioral pattern allows you to represent an action that you want to perform as an object that can be copied from place to place and performed at a later time if you want.

You start by creating an abstract …

71: Design Patterns: Chain Of Responsibility.

March 14th, 2016


The chain of responsibility behavioral pattern allows you to setup a series of possible results that you can initiate from a single location without …

QA Friday 2016-Mar-11

March 11th, 2016


Why are universities still teaching bubble sort? There’s always some value in learning things and maybe the bubble sort could be a historical lesson. …

70: Design Patterns: Proxy.

March 10th, 2016


The proxy structural pattern introduces another object that your code uses instead of the actual object. This might seem pointless but there are some good reasons why you might consider this.

Most design pattern …

69: Design Patterns: Flyweight.

March 9th, 2016


The flyweight structural pattern allows you to represent more items in your application as class instances without using up all your computer memory.

68: Design Patterns: Facade.

March 8th, 2016


The facade structural pattern provides a simplified way for you to interact with a more complicated set of interfaces.

This is a simple design pattern that you can use whenever you have a complicated class or set of …

67: Design Patterns: Decorator.

March 7th, 2016


The decorator structural pattern allows you to add new behavior to object instances dynamically. That means an object can change its behavior at run time. The interesting thing is that your objects don’t even know …

QA Friday 2016-Mar-04

March 4th, 2016


What is the rule of three?

And related to this: What is the rule of five? And what is the rule of zero?

When you need to implement either a …

66: Design Patterns: Composite.

March 3rd, 2016


The composite structural pattern allows you to build elaborate objects from smaller objects and not worry about how big they get. You can treat your composite objects as if they are all the same.

If you have …

65: Design Patterns: Bridge.

March 2nd, 2016


The bridge structural pattern allows you to separate an interface from its implementation. Maybe you want to start out doing something one way and then change later. Or maybe you want to share an implementation. Or, if …

64: Design Patterns: Adapter.

March 1st, 2016


The adapter structural pattern allows you to change the interface of an object. This lets you reuse code that would not normally fit into your design.

63: Design Patterns: Abstract Factory.

February 29th, 2016


The abstract factory creational pattern allows you to organize different sets of classes that work together so they get created together. This lets you change from one group of classes to another by configuring a …

QA Friday 2016-Feb-26

February 26th, 2016


What’s the best way for somebody to learn another programming language?

This episode explains the following nine suggestions for learning a new …

62: Design Patterns: Builder.

February 25th, 2016


The builder creational pattern allows you to hide all the details needed to create a complicated object behind simple steps that another object will direct. This lets you change either how things get built or the steps …

61: Design Patterns: Prototype.

February 24th, 2016


The prototype creational pattern is great for creating objects that you may not know about ahead of time. If your program allows users to build complex objects from simpler components and then needs to build more of …

60: Design Patterns: Singleton.

February 23rd, 2016


The singleton creational pattern is simple and often used. It’s actually used a bit too often so this episode will give you some caution and provide some ideas to modify this pattern when needed.

There are really just 3 …

59: Design Patterns: Factory.

February 22nd, 2016


As object-oriented software has evolved over the years, quite a few solutions to specific problems have also adapted and gained wide adoption. In …

QA Friday 2016-Feb-19

February 19th, 2016


What is syntax and what does it mean for somebody learning a new programming language?

Syntax really is just the basic rules of how the language is …

58: C++ Templates. Types And Values.

February 18th, 2016


Both C++ templates and C# generics serve a similar purpose. But where C# uses constraints to enable generics, C++ instead uses the compiler to enable templates. And C++ includes the ability to create templates base on …

57: C# Generics. Fill In The Blanks.

February 17th, 2016


If you ever find yourself wanting to duplicate code with just slight changes to adapt it to use a different type, then you’ll appreciate C# generics. Generic programming is sometimes called template programming because …

56: C# Exceptions. Finally Required.

February 16th, 2016


Errors will happen. The question is how will you deal with them? The QA Friday from 2015 Dec-11 talked about this question. This episode explains C# …

55: C++ Exceptions. Cannot Be Ignored.

February 15th, 2016


Errors will happen. The question is how will you deal with them? The QA Friday from 2015 Dec-11 talked about this question. This episode explains C++ exceptions. C# also has exceptions. But C# is different enough to …

QA Friday 2016-Feb-12

February 12th, 2016


What advice can I provide to help you debug your code?

In this episode, I give you seven tips to help you debug your code. One of the students brought in a programming assignment to the live class last week. This …

54: Recursion. Find Your Base.

February 11th, 2016


Recursion is powerful and takes a bit of getting used to. It’s like splitting your thoughts into multiple tasks that are all similar and waiting on …

53: Enumerations And Bit Flags.

February 10th, 2016


Enumerations allow you to name different related options. The names can refer to a single option or you can use what you now know about bits to …

52: Bits Operations: Shifting.

February 9th, 2016


You can do more with bits than just turning them on or off. This episode will show you how to shift bits left or right for either really quick …

51: Bits Operations: Masking.

February 8th, 2016


Working with individual bits doesn’t just give you a way to pack lots of true or false values into a small space. This episode will show you how to …

QA Friday 2016-Feb-05

February 5th, 2016


Are strings also a collection? And how are characters represented?

This episode explains that strings do in many ways represent a collection of …

50: Hexadecimal. Easier Than Binary.

February 4th, 2016


Hexadecimal gives you a better way to represent binary numbers. In one of the very early episodes, I explained how bytes are composed of eight bits. On some platforms, a byte might actually be more than eight bits. The …

49: C++ Preprocessor. This Is Old Magic.

February 3rd, 2016


The preprocessor is old, primitive, and strong. But you need to understand its strengths to use it effectively. It adds capabilities that the C++ …

48: Chaining: Operators, Classes, Calls.

February 2nd, 2016


Chaining is a common term that has several different meanings. This episode explains how you can use chaining in your programs and how it works.

This …

47: Operators. Who Goes First?

February 1st, 2016


Programming languages have a lot of operators. More than most calculators anyway. Do you know what they are? Did you know there’s an order to them? …

QA Friday 2016-Jan-29

January 29th, 2016


What types of programmers are there?

This episode describes twelve types of programmers that I thought to include. There is no neat way to group programmers so this is just some categories that I thought about and I …

46: Collections: Iterators Part 2.

January 28th, 2016


Iterators give you the ability to navigate from one item to another in a collection and track a specific position within a collection. This episode …

45: Collections: Iterators Part 1.

January 27th, 2016


Iterators give you the ability to navigate from one item to another in a collection. Why is this so special? Now that you know how to work with …

44: Collections: Dictionary.

January 26th, 2016


You’ll need to be able to work with groups or collections of items. A game that only has one character with one quest and with one shop that sells …

43: Collections: Hash Table.

January 25th, 2016


You’ll need to be able to work with groups or collections of items. A game that only has one character with one quest and with one shop that sells …

QA Friday 2016-Jan-22

January 22nd, 2016


What can you expect your job to be like as a new programmer?

If at all possible try to get a position as an intern while you’re still in college. You …

42: Collections: Left-Child Right-Sibling Tree.

January 21st, 2016


A game that only has one character with one quest and with one shop that sells one item isn’t going to be very fun. That’s why you need to be able to …

41: Collections: Binary Tree.

January 20th, 2016


You’ll need to be able to work with groups or collections of items. A game that only has one character with one quest and with one shop that sells …

40: Collections: List.

January 19th, 2016


You’ll need to be able to work with groups or collections of items. A game that only has one character with one action that can be done and with one …

39: Collections: Array.

January 18th, 2016


You’ll need to be able to work with groups or collections of items. A game that only has one character with one action that can be done and with one …

QA Friday 2016-Jan-15

January 15th, 2016


How can you prevent denial of service attacks? Most of the techniques you’ll use to prevent a DOS attack are network related. This podcast is about programming so I’ll explain some things you can do that will make your …

38: Big-O Notation. How Fast Can You Go?

January 14th, 2016


There are some common Big-O notations that you should become familiar with as well as what kind of code leads to them. This episode continues the …

37: Big-O Notation. Take It To The Limit.

January 13th, 2016


Big-O notation gives you the ability to describe how fast your code will run if given a large problem. It remains relevant because it doesn’t base anything on how fast or slow your computer actually is. Computers get …

36: Logarithms. It’s How Our Bodies Work.

January 12th, 2016


Have you ever thought about why you can’t see stars during the day? Do they somehow know when to dim themselves? How about why car headlights are so much brighter at night? Or why you can only hear a pin drop in a …

35: Random Numbers Start With A Seed.

January 11th, 2016


Programming involves giving specific instructions but sometimes you want the ability to introduce random behavior. Maybe you want to simulate how a …

QA Friday 2016-Jan-08

January 8th, 2016


What are denial of service attacks? This week has been a rough week for the Take Up Code website and that has affected the podcast. I host the website and in turn the feed that makes this into a podcast on a server that …

34: C# Casting. Only Frogs Can Be Frogs.

January 7th, 2016


C# also supports both implicit and explicit casts and gives you some different choices when you need to switch types. Plus you have a runtime that’s ready to throw an InvalidCastException. But even if you don’t hit an …

33: C++ Casting. Turn Your Object Into A Frog.

January 6th, 2016


Can you change an int into a float? And because an int occupies multiple bytes in memory, can you get access to the individual bytes by themselves? …

32: Static Methods And Data. Always Available.

January 5th, 2016


Declaring methods inside classes is great but what do you do when you want a method you can call anytime? If you’re using C++, then just write a method. But if you still want your method in a class or if you’re using C# …

31: Getters And Setters Keep It Together.

January 4th, 2016


Your classes will likely have data members so how do you work with these data members? Should they be public? Private? Do you let other code access …

QA Friday 2016-Jan-01

January 1st, 2016


How are namespaces and include files related and why do we need both?

If you’re creating a class called Game and intend to use the Game class from your main method that’s in the file main.cpp then instead of putting the …

30: Interfaces. The Software Contract.

December 31st, 2015


Interfaces give you the ability to define behavior without actually implementing it. Why would you want to do that? Your classes can then declare …

29: Abstract Classes. Incomplete On Their Own.

December 30th, 2015


What if you were writing a class that you wanted to be a base class? A class designed from the very beginning to bring together other classes with common behavior. What if you also wanted to guarantee that this class …

28: Composition. The Has-A Relationship.

December 29th, 2015


Composition allows you to specify very different kinds of relationships between classes. This is sometimes also called containment. If you’re …

27: Multiple Inheritance. Often Banned.

December 28th, 2015


C++ gives you the power to do great things and multiple inheritance is one of the most powerful tools you’ll have. This doesn’t mean that you should …

QA Friday 2015-Dec-25

December 25th, 2015


How do you test changes in a large project? This question was asked during a recent live weekend class by Rushton W. In the class, I was explaining the benefits of compiling and testing changes often and Rushton wanted …

26: Inheritance. When To Use Private.

December 24th, 2015


This is an advanced C++ topic so don’t get worried if it’s difficult right now. You’ll rarely need to use private inheritance. And protected …

25: Inheritance. Overriding Methods.

December 23rd, 2015


Declaring that a class is another class type is only part of the reason to use inheritance. It’s actually much more powerful than just allowing you …

24: Inheritance. The Is-A Relationship.

December 22nd, 2015


Class relationships bring out the full power of object-oriented programming. Inheritance allows you to create classes that specialize or extend other …

23: Access Control. Employees Only.

December 21st, 2015


When defining what data and methods belong to a class, you also get to set accessibility levels so that some things are available for general use while other members are more restricted. Why not just make everything …

QA Friday 2015-Dec-18

December 18th, 2015


What are logical operators? I sometimes find this question asked online and thought it would be good to explore in today’s episode. There are only …

22: C# Creating And Disposing Instances.

December 17th, 2015


Creating instances in C# is a bit different because there’s a difference between value types and reference types. You’ll be able to navigate your objects with ease after this episode.

You first learn how to place your …

21: C++ Creating And Deleting Instances.

December 16th, 2015


You’re ready now to apply what you’ve learned about class definitions, pointers, and constructors and destructors to be able to create new instances in the main computer memory. There are some fundamental differences …

20: C# Destructors and IDisposable.

December 15th, 2015


C# calls them finalizers and that’s strangely appropriate because all you really know about them is that they might eventually be called, finally. This is because C# decided to manage object lifetimes for you so you …

19: C++ Destructors. Simply Reliable.

December 14th, 2015


One of the biggest differences between C++ and C# is in how object lifetimes are managed. I was going to have a general topic on destructors just like constructors but there are just too many differences. So today, …

QA Friday 2015-Dec-11

December 11th, 2015


What’s the best way to handle errors? Things won’t always go the way you expect and you’re going to need to plan how to handle errors. Should you use …

18: Constructors.

December 10th, 2015


Constructors are your first opportunity to make sure your custom types are well formed. This episode explains the different kinds of constructors and …

17: Object-Oriented Programming. The Next Level.

December 9th, 2015


Object-oriented programming, or OOP, is a powerful way of designing software by creating your own types that encapsulate behavior and data. Your …

16: In Or Out Of Scope?

December 8th, 2015


Scope is another concept that’s amazingly similar to your everyday experience. Let’s say you’re at home and ask your mom, “Where are my slippers?” You mom says, “Upstairs.” That’s scope. And you need to understand it to …

15: Let’s Program A Game! Part 3.

December 7th, 2015


So far our game doesn’t do much and we’re going to fix that. The most important thing for you to realize is that when you’re programming, you’re not going to write your final code at the very beginning. I know, I’ve …

QA Friday 2015-Dec-04

December 4th, 2015


In the last live weekend programming class, I created a variable called scrambledWord and then later created a method called scrambleWord.

The method was a good name. It started with a verb and described exactly what it …

14: Let’s Program A Game! Part 2.

December 3rd, 2015


This episode continues adding to the 5-day email course that shows you how to build a game. The emails contain descriptions of the code. This episode mainly focuses on how the habit of continuous delivery and making …

13: Let’s Program A Game! Part 1.

December 2nd, 2015


Follow along as I explain how to program a word guessing game in C++. This episode builds on a free 5-day email course that shows you step-by-step …

12: References Are More Than Just Pointers.

December 1st, 2015


This episode explains where your variables live when you declare a variable in a method. You will learn that the stack is a good place for these variables and how the memory is managed.

We talk a bit about how …

11: There’s A Method For All This.

November 30th, 2015


We talk about methods in this episode. There’re many kinds of methods and we’ll need to split this topic into multiple episodes. I’ll explain how …

QA Friday 2015-Nov-27

November 27th, 2015


This week’s question comes from Mark L. and Scott S. who have both noticed some companies hire programmers who all speak the same language. Spanish is a common example. And they want to know why. What are the benefits …

10: Double Pointers! The Pattern Continues.

November 26th, 2015


A double pointer is nothing more than a pointer to another pointer. It’s possible to continue this pattern indefinitely having pointers to pointers to pointers, and so on. But you’ll rarely need more than a double …

9: Pointer Arithmetic. This Is Easy!

November 25th, 2015


Now that you know how a pointer can be used to separate groups of items, I’m going to explain another use of pointers that helps you work with the individual items in the group through a special concept called pointer …

8: Pointers! Computers Use Them Too.

November 24th, 2015


If there’s one thing that scares people more than void, it’s got to be pointers. And rightfully so if they’re misused or you get somebody trying to …

7: Into The Void.

November 23rd, 2015


Understanding types is super critical to being able to program. Without this knowledge it would be like trying to go through life where everything …

QA Friday 2015-Nov-20

November 20th, 2015


This week’s question comes from Scott S. who wants to know what are all the files that get created when building an application.

Here are the file …

6: Just In Time.

November 19th, 2015


Many languages are adopting a model of just-in-time compiling. Do you know how this affects you? This episode will discuss the advantages and disadvantages of just-in-time compiling.

Instead of using the source code …

5: Interpreted Or Compiled?

November 18th, 2015


Learning how to program effectively will eventually require that you learn more than just one language. You already know that there are different types of languages and different levels. There’s another fundamental …

4: From Binary To GUIs. Part 2.

November 17th, 2015


You’ve probably heard that computers only understand zeros and ones. So how does a computer go from zeros and ones to colorful graphical interfaces …

3: From Binary To GUIs. Part 1.

November 16th, 2015


You’ve probably heard that computers only understand zeros and ones. So how does a computer go from zeros and ones to colorful graphical interfaces …

2: What Is Programming?

November 14th, 2015


This episode will explain different types of programming in terms that you will be familiar with and then relate everything to computer programming concepts.

You might be surprised that you already know how to program.

1: How To Start Programming.

November 14th, 2015


Getting started is hard. This episode goes into some psychological aspects that will help you start programming and then some specific steps to get …

0: Why Take Up Code?

November 14th, 2015


This first episode introduces the Take Up Code podcast and what you can expect. And really, it’s here to answer the question, “Why Take Up Code?”

Loading ...

Are you the creator of this podcast?

Verify your account

and pick the featured episodes for your show.

Listen to Take Up Code


A free podcast app for iPhone and Android

  • User-created playlists and collections
  • Download episodes while on WiFi to listen without using mobile data
  • Stream podcast episodes without waiting for a download
  • Queue episodes to create a personal continuous playlist
RadioPublic on iOS and Android
Or by RSS
RSS feed

Connect with listeners

Podcasters use the RadioPublic listener relationship platform to build lasting connections with fans

Yes, let's begin connecting
Browser window

Find new listeners

  • A dedicated website for your podcast
  • Web embed players designed to convert visitors to listeners in the RadioPublic apps for iPhone and Android
Clicking mouse cursor

Understand your audience

  • Capture listener activity with affinity scores
  • Measure your promotional campaigns and integrate with Google and Facebook analytics
Graph of increasing value

Engage your fanbase

  • Deliver timely Calls To Action, including email acquistion for your mailing list
  • Share exactly the right moment in an episode via text, email, and social media
Icon of cellphone with money

Make money

  • Tip and transfer funds directly to podcastsers
  • Earn money for qualified plays in the RadioPublic apps with Paid Listens