Software Engineering

Take Up Code

Take Up Code: build your own computer games, apps, and robotics with podcasts and live classes

+1 FAN
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 n...Show More
Looking for recently uploaded episodes
250: GameDev: Design Patterns: Entity Component System.

07:40 | Dec 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 didn’t originally describe this be...Show More
249: GameDev: Floating Point: Zero, Infinity, NaN.

06:20 | Nov 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. Let’s get started. First of all, do you know the sign of zero? Is it positive or negative? Depending on ...Show More
248: GameDev: Special Offer: Free Advanced Game Building Bonus.

09:55 | Nov 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 get feedback on a suggestion? Y...Show More
247: GameDev: 1.1 Plus 2.2 Is Not 3.3. What?

09:07 | Nov 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 fractional values. You might be able to write an app to keep track of your friend’s addresses without u...Show More
246: GameDev: Points Vs. Vectors. Which Should You Use?

08:42 | Oct 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 about TUCUT. As to which you should...Show More
245: GameDev: Points, Lines, Planes, Dimensions, and Normals.

11:53 | Oct 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 math than you might guess. Let’s ...Show More
244: CppCon: What Did I Learn? And What Will Help You?

08:27 | Oct 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 that I learned at the conference. It was a great conference with full days that went from 8 in the mo...Show More
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.

11:27 | Sep 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 portable C++ programming laptop. Listen to the audio podcast to hear my story about how and why I dec...Show More
242: In The End, It’s You Vs. You.

05:08 | Sep 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 at one of my favorite places to ...Show More
241: How To Use Raw Pointers Properly And Still Avoid Crashes.

12:51 | Aug 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 pointers along with smart pointers and is taken from a recent game development session. I have a text-b...Show More
240: Video Game Update: Introducing The TUCUT Library.

09:21 | Aug 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 working on a video game almost every Saturday. I’ve brought together a lot of code that I’ve written over...Show More
239: What 20 Percent Of Topics Should You Focus On?

06:02 | Jul 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 heard it as the 80/20 rule. It says that you get 80% of your results from just 20% of your effort. And ...Show More
238: Filesystem: Recent WordPress Attack Lets Editors Take Over.

09:53 | Jul 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 filesystem! This is why I’ve been spending the last 16 episodes on this topic. If this doesn’t get you to sit ...Show More
237: Filesystem: How To Avoid Security Vulnerabilities. Part 3.

09:40 | Jun 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 predictable can make it much easier for an attacker to gain control. We use files to store information a...Show More
236: Filesystem: How To Avoid Security Vulnerabilities. Part 2.

08:35 | Jun 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 filesystem has. We’re not talking about imaginary mind control beams anymore. This is real and something ...Show More
235: Filesystem: How To Avoid Security Vulnerabilities. Part 1.

09:55 | 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 understand the differences between...Show More
234: Filesystem: Journaling Keeps Your Filesystem Intact.

08:26 | 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. In order to prevent larger pro...Show More
233: Schedule Changes To Support Take Up Code.

05:54 | Apr 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. Transcript There are some changes coming to the Take Up Code podcast schedule that I wanted to explain. These cha...Show More
232: Filesystem: Linking Explained: Symbolic, Soft, Hard, Junction.

12:58 | Apr 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 situation arises where linking would help. A simple explanation of a link for right now is that it al...Show More
231: Filesystem: Metadata Holds More Information.

10:25 | Apr 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 that describes your data in the...Show More
230: Filesystem: What Can They Do? Part 4.

14:54 | Apr 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 full episode to learn more detail...Show More
229: Filesystem: What Can They Do? Part 3.

13:06 | Apr 2nd, 2018

Access control lists provide more security options. The previous episode described the traditional security model used by Unix computers. This includes Linux and Mac computers as well. It’s a simple model that works really well. Make sure to listen t...Show More
228: Filesystem: What Can They Do? Part 2.

09:42 | Mar 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. They all follow a similar design. These operating systems could have another security system depending o...Show More
227: Filesystem: What Can They Do? Part 1.

14:06 | Mar 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, how your computer knows when y...Show More
226: Filesystem: CHS vs. LBA Modes.

12:25 | Mar 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 filesystems. They don’t really ...Show More
225: Filesystem: Partitions Allow You To Divide Your Disks.

08:55 | Mar 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 for more details including a description of the Master Boot Record (MBR) and GUID Partition Table (G...Show More
224: Filesystem: Drive Letters, Mounting, And Paths. Part 2.

09:28 | Feb 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 detect this event and make that drive letter available for use. So it’s not really the drive itself t...Show More
223: Filesystem: Drive Letters, Mounting, And Paths. Part 1.

10:45 | Feb 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 need to know? Programming with a filesystem is different than just using your computer to open and clos...Show More
222: Filesystem: Why Should You Learn To Use It?

10:47 | Feb 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 into filesystems. And make sure to subscribe to the podcast from within your podcast app to get new e...Show More
221: Be Careful Of Changes In Code Abstraction.

06:11 | Feb 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 game. And there I was talking about how to get your game idea or any project idea to a level of detail w...Show More
220: One Of These Things Is Not Like The Others.

06:19 | Jan 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 an important skill you need to d...Show More
219: C++ RAII Sounds Complicated But Simplifies Your Code.

08:22 | Jan 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 episode for an example that should help explain why RAII is an important technique to help us simplify ou...Show More
218: C++ Used To Program Video Games.

08:40 | Jan 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 towards the low level of language...Show More
217: How To Start Building a Video Game. Part 7.

07:33 | Jan 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 right now, that’s to finish your game. Don’t get sidetracked with problems. But don’t ignore them either....Show More
216: How To Start Building a Video Game. Part 6.

10:46 | Jan 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? And will understanding these dif...Show More
215: How To Start Building a Video Game. Part 5.

06:33 | Dec 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 for more information. I’ll go in...Show More
214: How To Start Building a Video Game. Part 4.

08:26 | Dec 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 engines fit into all this. You can also read the full transcript below. Transcript Don’t try to do ever...Show More
213: How To Start Building a Video Game. Part 3.

09:31 | Dec 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 parts will be driven by data and what will be driven by code. Now, it would be possible to specify in c...Show More
212: How To Start Building a Video Game. Part 2.

10:21 | Dec 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 that says we don’t work on projects, we work on tasks. If you have a lot of unfinished tasks on your do-...Show More
211: How To Start Building a Video Game. Part 1.

11:36 | Nov 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 progress. You have to start so...Show More
210: Shiny Projects And Distractions.

10:12 | Nov 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 ideas keep arriving all the ti...Show More
209: CSS: Cascading Style Sheets Tutorial. Part 2.

11:19 | Nov 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 done four things: Create meaningf...Show More
208: CSS: Cascading Style Sheets Tutorial. Part 1.

08:29 | Nov 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 focus on the content. How does all...Show More
207: Trees: AST: Abstract Syntax Tree. A Simple Example.

16:43 | Oct 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 syntax tree starting with a simple idea and then how that idea needs to change. You can also read the ful...Show More
206: Collections: Stack.

06:07 | Oct 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 time, then a stack is not going to work. I didn’t explain stacks before because in a way, it’s like a res...Show More
205: Trees: What Can You Do With Them?

14:25 | Oct 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 structure. The second group of trees have a well defined structure. Listen to the full episode or read the ...Show More
204: This Is Terrible, You Gotta Start Anyway.

10:15 | Oct 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 keep working on it trying to make it perfect. I struggle with this all the time. It’s really hard to re...Show More
203: Trees: Why Use Them?

08:00 | Oct 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 things here. Episodes 41 and 42 discuss binary trees and left-child right-sibling trees. Episode 54 explai...Show More
202: Graphs vs. Trees vs. Hierarchies: Compared.

12:29 | Sep 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 figure out what topic to explain ne...Show More
201: HTML: Caching Generated Output For Speed.

10:10 | Sep 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. I’m not talking about the work to program this. Make sure to listen to the previous episode for more ...Show More
200: HTML: Can Be Generated By A Web Server.

07:45 | Sep 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 world to see, then you can create HTML files and put them in your website directory. You might have ...Show More
199: HTML: How To: Simple Formatting.

09:08 | Sep 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 on a web page and save it in a p...Show More
198: HTML: Semantic Meaning.

06:51 | Aug 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 rest of an HTML document specify ...Show More
197: HTML: The Bigger Picture.

08:02 | Aug 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 previous episode, you can use that to create your own HTML pages. This episode will describe what make...Show More
196: HTML: How Does Markup Work?

12:10 | Aug 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. HTML stands for the Hypertext Markup La...Show More
195: HTML: Is This Programming?

08:22 | Aug 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 important part of the name is mar...Show More
194: How Can You Tell Good Teachers From Fake?

07:45 | Jul 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 question, how do you know that you’re ...Show More
193: Kids Either Leave or Go to Jail.

06:51 | Jul 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 or go to jail. There’s lots of small towns that used to have a factory in a nearby town where people ...Show More
192: Developer Bootcamps and Coding Schools: Doomed or Thriving?

13:51 | Jul 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 question of what’s best for you. T...Show More
191: Git: Keep Track Of Your Files As They Change. Part 6.

08:37 | Jul 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 that affects your commits. Git actually has three areas where it keeps your files. The most visible ...Show More
190: Git: Keep Track Of Your Files As They Change. Part 5.

11:37 | Jul 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 enables you to reference code from other repositories. There’s a concept in programming called refact...Show More
189: Git: Keep Track Of Your Files As They Change. Part 4.

08:45 | Jun 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 episode and how that enables you to work differently. The file renaming and copying techniques that I desc...Show More
188: Git: Keep Track Of Your Files As They Change. Part 3.

16:27 | Jun 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 your changes in this episode. Git is more than a system that allows you to checkout a file, make some c...Show More
187: Git: Keep Track Of Your Files As They Change. Part 2.

09:09 | Jun 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 knowledge, you can take your source code control system to a new level by going beyond just managing old v...Show More
186: Git: Keep Track Of Your Files As They Change. Part 1.

11:15 | Jun 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 especially when you have a team of software developers all working on the same project files, a version ...Show More
185: Working Remotely: No More Trading Schedules.

10:05 | 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 other than at work. And it’s amazin...Show More
184: Basic Electronics: Transistors Can Act Like Switches.

10:09 | 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 to conduct electricity can be controlled. There’s an older video I made that explains DC analysis of t...Show More
183: Digital Electronics: Microcontrollers Ready To Use.

07:37 | 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 almost anything else that’s not entirely mechanical will probably need a microcontroller. Maybe even se...Show More
182: Digital Electronics: Microprocessor Speed And Clocks.

07:33 | 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 controllers, display drivers, etc. All...Show More
181: Basic Electronics: Voltage Dividers.

04:15 | 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 resistors in-line with each other, then the total resistance will be the sum of each resistor. This ...Show More
180: Basic Electronics: Series And Parallel.

07:50 | Apr 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 important and can lead to very differen...Show More
179: Basic Electronics: Capacitance.

08:32 | Apr 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 batteries, to control timing, and even to detect touches. Listen to the full episode for more explana...Show More
178: Basic Electronics: Magnetic Fields And Current.

07:45 | Apr 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 probably seen experiments with iron ...Show More
177: Basic Electronics: AC/DC: Alternating Vs. Direct Current

06:51 | Apr 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 through a circuit in a single direction. But if DC is so simple, why does the world use AC to power our ho...Show More
176: Basic Electronics: Voltage, Current, Resistance.

11:24 | Mar 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 know what voltage really is? You’ve probably used batteries until they’re dead. But do you know what tha...Show More
175: Multiplexing: Many Over One.

06:17 | Mar 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 computer networks. It’s an advanced topic that I won’t be able to fully explain in this podcast. But you wil...Show More
174: Error Correction: Hamming Distance And Codes.

08:55 | Mar 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 most important. I mean, if you don...Show More
173: HMAC: Keyed Hashed Message Authentication Code.

09:13 | Mar 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 enough. This episode will explain st...Show More
172: Hashes Offer The Best Error Detection.

09:20 | Feb 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, recalculate the hash and compare. ...Show More
171: Checksums Offer Better Error Detection.

12:11 | Feb 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 best option is to subscribe to ...Show More
170: Parity: Simple And Fast Error Detection.

09:00 | Feb 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 provide other means to fix any err...Show More
169: Your Guide To Computer Programming. Part 4 of 4.

08:24 | Feb 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 apply programming outside of getting computers to do what you want, it’s even more important if you’...Show More
168: Your Guide To Computer Programming. Part 3 of 4.

09:21 | Jan 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 following major aspects you can consider and it allows you to think about these from two different view...Show More
167: Your Guide To Computer Programming. Part 2 of 4.

10:25 | Jan 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, it doesn’t take a lot of math. Instead, you need to be able to break larger ideas and processes like h...Show More
166: Your Guide To Computer Programming. Part 1 of 4.

09:01 | Jan 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 how to program, maybe you can introduce your friends to this mini series of episodes and get them star...Show More
165: Sockets And Ports: The Hidden Pieces.

11:26 | Jan 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 communication in terms of seven laye...Show More
164: SCTP vs. TCP vs. UDP

08:19 | Jan 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 following five questions. Is the protocol connection oriented? Both SCTP and TCP are but UDP does not est...Show More
163: SCTP: Stream Control Transmission Protocol.

08:16 | Dec 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 will fail to gain enough support. I’m explaining it in this episode mainly so you’ll understand that th...Show More
162: OSI Model: Seven Layers of Communication.

05:39 | Dec 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 something that doesn’t fit perfectl...Show More
161: MAC: Media Access Control Address.

09:05 | Dec 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 right before the post office puts...Show More
160: UDP: User Datagram Protocol.

06:24 | Dec 5th, 2016

Sometimes speed and simplicity are more important than reliability. This episode expands on the concepts introduced in the previous episode. If you haven’t already, make sure to listen to episode 159 about TCP. Both TCP and UDP are based on the inter...Show More
159: TCP: Transmission Control Protocol.

08:49 | Nov 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 postal mail. The package is just a...Show More
158: IP: Internet Protocol Addresses.

09:43 | Nov 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 could have multiple IP addresses. There needs to be at least one IP address for each network card or int...Show More
157: DNS: Domain Name System.

09:37 | Nov 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 just like a phone number. If I had to create an audio commercial for Take Up Code and couldn’t use takeu...Show More
156: URLs, URNs, URCs, Data URIs, and URIs.

12:24 | Nov 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. The whole point though about this...Show More
155: HTML vs. HTTP: How Do They Compare?

07:56 | Oct 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 nothing more than a special XML do...Show More
154: Data: JSON JavaScript Object Notation.

05:45 | Oct 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 JavaScript language. But even so, it’s...Show More
153: Data: XML Extensible Markup Language.

08:26 | Oct 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 modify the information. Listen to the episode or read the full transcript below to learn more about how ...Show More
152: Distributed Computing: APIs Have Changed.

09:17 | Oct 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 and how that is different from using APIs. Make sure to listen and subscribe in iTunes to get future ep...Show More
151: The More You Learn.

07:42 | Oct 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 years. And it just keeps going. It...Show More
150: Distributed Computing: SOA

06:53 | Sep 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 destination for a specific business purpose. The first thing is communication and sending messages. ...Show More
149: Step By Step Perfection.

10:10 | Sep 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 just got the project to the point where the main character can move left, right, and jump on tiles. A ...Show More
148: CAP Theorem: Choose Two, Or Is It One?

08:44 | Sep 12th, 2016

Consistency, Availability, and Partition Tolerance are three aspects of distributed computing. And a fourth not included in the theorem is Latency. The original CAP theorem said that you could only be guaranteed to get two aspects between the three o...Show More
147: Distributed Computing: Ready? Yes. Done.

08:02 | Sep 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 event reservation application. You need to transfer some money to several vendors for a large event. May...Show More
146: Distributed Computing: It Happened When?

10:58 | Aug 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 a problem. Until you need to merge rapid events from multiple computers and put them in order. You h...Show More
QA Friday 2016-Aug-26

07:33 | Aug 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 break, and repeating. Make sure to ...Show More
145: Distributed Computing: Four Reasons.

11:00 | Aug 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 even think about it. When you get a job or when you need to hire somebody, you’re distributing the w...Show More
QA Friday 2016-Aug-19

06:34 | Aug 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 this. I remember reading that t...Show More
144: Data Types: C++ nullptr Is Not Zero.

08:05 | Aug 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 said you shouldn’t overload methods with integral types and pointer types. You could and the compiler wo...Show More
QA Friday 2016-Aug-12

07:38 | Aug 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 usually no design that’s right or wrong. It’s all a tradeoff. You give up one thing and get something else....Show More
143: Where And How To Use Whitespace.

09:38 | Aug 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 don’t care how easy the code is to understand. It either follows the rules or not. But as humans, we do ...Show More
QA Friday 2016-Aug-05

08:54 | Aug 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 cashier requested extra floor mats. You know, the spongy kind that are supposed to make it easier to st...Show More
142: Comments. Focus On Why.

09:46 | Aug 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 to say that comments should explain why some code is not obvious. And this is after you’ve done every...Show More
QA Friday 2016-Jul-29

09:29 | Jul 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 doesn’t matter who gave you those...Show More
141: Reference Counting. Still In Use!

13:00 | Jul 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 reference count of zero. That just ...Show More
QA Friday 2016-Jul-22

09:47 | Jul 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 naturally gifted with basketball, or ...Show More
140: Name Mangling and Overloaded Methods.

09:28 | Jul 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 technique that compiler vendors use to give overloaded methods unique names. It’s also sometimes called name ...Show More
QA Friday 2016-Jul-15

07:14 | Jul 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 continues last week’s episode abo...Show More
139: Data Types: C++ Decltype. Declared Types.

09:06 | Jul 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. But maybe you want to declare a...Show More
QA Friday 2016-Jul-08

06:16 | Jul 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 education. And in particular, about how we’re expected to apply what was just taught. Let’s start with a ga...Show More
138: Data Types: Lvalues And Rvalues.

10:18 | Jul 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, lvalue and rvalue. They started o...Show More
137: Data Types: Auto or Var. The Compiler Chooses.

09:02 | Jul 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 method that’s declared to return a...Show More
136: Data Types: Variant. Pick One.

07:51 | Jul 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 hold another type. Think of a collection that can hold many values all of the same type. Now switch ...Show More
135: Data Types: GUIDs Globally Unique Identifiers.

09:27 | Jul 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 is to just use a number. Even a ...Show More
QA Friday 2016-Jul-01

09:28 | Jul 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 your manager. A good manager will help you overcome your problems. That’s what they’re supposed to do. ...Show More
134: Data Types: C++ Function Binders.

08:23 | Jun 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 that multiplies two numbers. Actually, you already have one. It comes with the standard C++ library and...Show More
133: Data Types: Regular Expressions.

10:11 | Jun 29th, 2016

A regular expression or regex lets you perform the advanced text operations matching, searching, tokenizing, and replacing. To begin, why would you ever want to use regexes? This is definitely something you’ll want to be careful about. The syntax of ...Show More
132: Data Types: Lambdas.

11:39 | Jun 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 function pointers. The C++ language ha...Show More
131: Data Types: Function Pointers Part 2.

13:48 | Jun 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 for the full description. I’ll...Show More
QA Friday 2016-Jun-24

09:29 | Jun 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 list of country names, it won’t be very useful in other applications. It would be really bad if anyti...Show More
130: Data Types: Function Pointers Part 1.

08:52 | Jun 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 for the full description. I’ll...Show More
129: Data Types: Function Objects Part 2.

10:02 | Jun 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 example is in the C++ standard library collection classes. Some of the collection classes support sorting....Show More
128: Data Types: Function Objects Part 1.

08:52 | Jun 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 use a function object if you don’t yet know what a function object is. So that’s mostly what this epis...Show More
127: Data Types: Smart Pointers Part 2.

12:49 | Jun 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 to create new objects in some s...Show More
QA Friday 2016-Jun-17

06:37 | Jun 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 compiler cannot fully determine. This doesn’t mean that the compiler is no longer involved. Just that your...Show More
126: Data Types: Smart Pointers Part 1.

08:45 | Jun 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 new object by calling new. You’r...Show More
125: Data Types: Streams Part 2.

09:24 | Jun 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. There’s more than just reading and wr...Show More
124: Data Types: Streams Part 1.

09:30 | Jun 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 of water flowing by and it’s t...Show More
123: Data Types: Tuples.

09:27 | Jun 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 instances of some type as you ...Show More
QA Friday 2016-Jun-10

07:21 | Jun 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 else but there are differences. You can’t just prefer one over the other. That would be like a carpent...Show More
122: Data Types: DateTimes Part 5 C++.

11:51 | Jun 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 C++11, the best you could do with the builtin date and time types came from the C libraries. C++11 d...Show More
121: Data Types: DateTimes Part 4.

11:18 | Jun 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 like how a capital letter T is...Show More
120: Data Types: DateTimes Part 3 C#.

10:49 | Jun 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, IFormattable, and ISerializable. In...Show More
119: Data Types: DateTimes Part 2.

17:04 | Jun 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 explains the following topics related to time: What is UTC and the difference between coordinated uni...Show More
QA Friday 2016-Jun-03

11:49 | Jun 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 available online. The simple answer is, yes, software licenses are important and do need to be respected. I ...Show More
118: Data Types: DateTimes Part 1.

14:05 | Jun 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 February 4th, 2010. But it might also ...Show More
117: Data Types: Decimals.

11:42 | Jun 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 interchangeable? It’s easy to get th...Show More
116: Data Types: Strings Part 3.

17:17 | 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 type with the following seven p...Show More
115: Data Types: Strings Part 2.

15:28 | 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 covers the following points: Can ...Show More
QA Friday 2016-May-27

07:16 | 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 you. We live in a more open wo...Show More
114: Data Types: Strings Part 1.

16:40 | 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 ends with a special null value....Show More
113: Data Types: Arrays.

13:07 | 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 don’t know ahead of time how many will be needed? Even if you do know how many variables are needed, so...Show More
112: Data Types: Floats.

10:29 | 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 enough from ints that you need to understand how to use them. Working with ints gives you the ability to ...Show More
111: Data Types: Enums.

10:23 | 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 few things you should be aware of. This episode explains the following six aspects of enums that you...Show More
QA Friday 2016-May-20

08:27 | 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 but my thoughts on the situation. What went wrong? Or did anything go wrong? Programming can be rewa...Show More
110: Data Types: Void And Bool.

12:02 | 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 void as an absence of a type and not really a type itself. There are specific places where void can be ...Show More
109: Data Types: Ints Part 2.

16:40 | 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. Knowing how to use the int data type means you need to understand the limits and consequences of using a f...Show More
108: Data Types: Ints Part 1.

12:15 | 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 episode explains the data lengths of various ints and pointers along with words. Do you know what a w...Show More
107: Data Types: Chars And Bytes.

10:41 | 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 your application to run on. Some l...Show More
QA Friday 2016-May-13

05:56 | 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 will not lead to useful software. And in fact, I think that trying to focus on the technical aspects fir...Show More
106: Multithreading. Call Me Back Please.

11:33 | 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 callbacks is like this. There’s two sides to a callback. One side defines what the callback should l...Show More
105: Multithreading. Sync vs. Async.

09:43 | 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 take a while. And sometimes, what we thought would be quick turns out to take longer. If I ask you wh...Show More
104: Multithreading. Singleton Mistakes.

11:45 | 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 instance in your entire application and how do you handle the race condition when multiple threads ask ...Show More
103: Multithreading. Volatile.

10:12 | 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 threads. If you have code that checks a variable for a specific value and you know that the value ca...Show More
QA Friday 2016-May-06

09:05 | 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 available, then you just may no...Show More
102: Multithreading. Up And Down.

09:06 | 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 wait on the availability of som...Show More
101: Multithreading. Signal And Wait.

13:26 | 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 episode and a mutex. Because you can ...Show More
100: Multithreading. Master The Lock.

13:29 | 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 current memory value, setting it ...Show More
99: Multithreading. Cache Lines.

09:52 | 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 probably not the performance boost you were looking for. In order to avoid these delays, you need to be aw...Show More
QA Friday 2016-Apr-29

06:41 | Apr 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 immediate surroundings? Certain tasks are just better suited for different formats. What’s the topic? A...Show More
98: Multithreading. The Great Divide.

08:33 | Apr 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 four ways to divide work to be done by your threads: When you have small work items arriving at dif...Show More
97: Multithreading. The Big Event.

08:32 | Apr 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 so hard once you understand. Events are objects that you can create and wait on from one thread while ...Show More
96: Multithreading. Thoughtful Designs.

10:22 | Apr 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 new dimension to your designs and I’ll give you some of my thoughts in this episode. The example class...Show More
95: Multithreading. When Neither Side Budges.

11:03 | Apr 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 problem. This is a case where diagnosis is a lot harder than the cure. You have two options. Change h...Show More
QA Friday 2016-Apr-22

08:39 | Apr 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 that you need to start programming. You absolutely need to form a simple plan, start working on it, and...Show More
94: Multithreading. The Race Is On.

13:06 | Apr 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 of race. The whole application will lose. This episode describes first explains what a race condition...Show More
93: Multithreading. When Should You Use It?

09:49 | Apr 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 devoted to multithreading. Listen to this episode to learn about the following four reasons to use mul...Show More
92: Multithreading. Why Should You Care?

10:37 | Apr 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 the same time. With this power comes a lot of responsibility and you should also realize that it’s n...Show More
91: Round Robin. Nobody Starves.

10:41 | Apr 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 called a round robin that gives everything a fair share. Let’s say that you have multiple tasks you want...Show More
QA Friday 2016-Apr-15

08:32 | Apr 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 suggestions is the power of consistent progress. It doesn’t matter how much. You just have to be stea...Show More
90: Design Patterns: Object Pool.

11:34 | Apr 14th, 2016

The object pool behavioral pattern allows you to reuse objects instead of destroying them and creating them again. This design pattern helps solve two big problems that applications encounter with managing memory especially over a long period of time...Show More
89: Design Patterns: Dirty Flag.

11:29 | Apr 13th, 2016

The dirty flag behavioral pattern allows you to avoid expensive operations that would just need to be done again anyway. This is a simple pattern that really just explains how to add a bool value to your class that you can set anytime a property chan...Show More
88: Design Patterns: Service Locator.

11:50 | Apr 12th, 2016

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 the factory creational pattern. Both patterns allow you to use an interfac...Show More
87: Design Patterns: Event Queue.

14:55 | Apr 11th, 2016

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 this pattern: Code that has an interesting event doesn’t need to wait for any ...Show More
QA Friday 2016-Apr-08

08:16 | Apr 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 much. I share with you a couple personal stories in this episode from a time when I was firmly in the ...Show More
86: Design Patterns: Component.

12:41 | Apr 7th, 2016

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 example of how best to deal with an adventure game hero class. Instead of t...Show More
85: Design Patterns: Subclass Method.

10:25 | Apr 6th, 2016

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 pattern with a subtle intent and usage. It’s very much the opposite of the t...Show More
84: Design Patterns: Update Method.

11:50 | Apr 5th, 2016

The update method behavioral pattern works with the previous game loop pattern and lets you manage the behavior of multiple game characters. If you’re building a game that has a fixed number of game elements or at least a fixed number at the start of...Show More
83: Design Patterns: Game Loop.

15:46 | Apr 4th, 2016

The game loop behavioral pattern is essential in games and simulations to make the actions proceed at the proper speed regardless of what the user is doing or how fast the computer is. A game loop will repeatedly do the following three things: Check...Show More
QA Friday 2016-Apr-01

11:09 | Apr 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 required for understanding your ...Show More
82: Design Patterns: Double Buffer.

11:05 | Mar 31st, 2016

The double buffer behavioral pattern allows multiple changes to all appear to occur at the same time. This is a simple pattern that’s used anytime you need not just synchronization between readers of information and writers of that same information b...Show More
81: Design Patterns: Visitor.

12:06 | Mar 30th, 2016

The visitor behavioral pattern allows you to perform actions on a collection of different types where the actions depend on the types. This pattern represents an operation that can be performed on a collection of objects and allows new operations to ...Show More
80: Design Patterns: Template Method.

11:46 | Mar 29th, 2016

The template behavioral pattern allows your derived classes to change certain aspects of the base class behavior without needing to rewrite everything. This design pattern is great when you have a complicated set of steps that the base class provides...Show More
79: Design Patterns: Strategy.

10:02 | Mar 28th, 2016

The strategy behavioral pattern allows you to define multiple ways to perform some action and then select the best approach. This pattern has some similarities to the previous state design pattern. Both patterns describe how to change behavior. But t...Show More
QA Friday 2016-Mar-25

09:53 | Mar 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 authorization but they’re different things ...Show More
78: Design Patterns: State.

08:21 | Mar 24th, 2016

The state behavioral pattern allows you to simplify your code when you have different modes of operation. This is really just a specific application of polymorphism. You have a class that needs to performs some action in one of several different ways...Show More
77: Design Patterns: Observer.

11:55 | Mar 23rd, 2016

The observer behavioral pattern allows you to be notified of any changes instead of constantly checking. You’ll almost certainly have many different objects in your application that all use some common information. If this is a financial application,...Show More
76: Design Patterns: Memento.

08:20 | Mar 22nd, 2016

The memento behavioral pattern allows you to save and later restore the state of an object even without full access to all properties. You can use this pattern to save an object’s state so you can possibly restore the object at some later time back t...Show More
75: Design Patterns: Mediator.

09:58 | Mar 21st, 2016

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 dialog box and notice how some controls become disabled when the st...Show More
QA Friday 2016-Mar-18

06:13 | Mar 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 most famous of these is probably the bar exam for lawyers. Software is getting there and maybe some da...Show More
74: Design Patterns: Iterator.

09:52 | Mar 17th, 2016

The iterator behavioral pattern allows you to access objects in a collection or anything that contains multiple items without worrying about how this is done. The collection is sometimes referred to as an aggregate because it bundles multiple objects...Show More
73: Design Patterns: Interpreter.

08:30 | Mar 16th, 2016

The interpreter behavioral pattern allows you to solve common problems by expressing those problems in a simple language. You first need enough problems to make this pattern worthwhile. And this pattern is great for allowing other people to contribut...Show More
72: Design Patterns: Command.

10:47 | Mar 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 class called Command with a met...Show More
71: Design Patterns: Chain Of Responsibility.

08:21 | Mar 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 worrying about what code will provide the result. Usually this pattern describes a single outcome but...Show More
QA Friday 2016-Mar-11

09:25 | Mar 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. The problem is that it’s not always presented like that. It’s often presented as a simple sorting al...Show More
70: Design Patterns: Proxy.

09:24 | Mar 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 references list four reasons why you m...Show More
69: Design Patterns: Flyweight.

11:24 | Mar 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. It does this with four steps: Separate the data members in your classes that you’re considering for...Show More
68: Design Patterns: Facade.

08:28 | Mar 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 classes that you want to provide a...Show More
67: Design Patterns: Decorator.

10:12 | Mar 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 they’ve been changed. The episode de...Show More
QA Friday 2016-Mar-04

08:45 | Mar 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 destructor, a copy constructor, of an assignment operator, then the rule of three says that you really need to...Show More
66: Design Patterns: Composite.

08:09 | Mar 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 hierarchical data, then consider this desi...Show More
65: Design Patterns: Bridge.

08:23 | Mar 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 you’re using C++, you can hide ...Show More
64: Design Patterns: Adapter.

09:22 | Mar 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. This is a simple pattern that mostly describes how to forward calls from a desired interface method...Show More
63: Design Patterns: Abstract Factory.

12:40 | Feb 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 different abstract factory. You first...Show More
QA Friday 2016-Feb-26

10:08 | Feb 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 programming language. These are in no particular order. Read a book on the language. Join a community gro...Show More
62: Design Patterns: Builder.

08:44 | Feb 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 that are used independently of ...Show More
61: Design Patterns: Prototype.

11:00 | Feb 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 these complex objects or if your p...Show More
60: Design Patterns: Singleton.

09:57 | Feb 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 parts that make a class a sing...Show More
59: Design Patterns: Factory.

09:47 | Feb 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 1995, a book called “Design Patterns: Elements of Reusable Object-Oriented Software” documented 23 patte...Show More
QA Friday 2016-Feb-19

08:44 | Feb 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 structured. Does it use special characters to end each line or each expression? Does it use indentatio...Show More
58: C++ Templates. Types And Values.

11:46 | Feb 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 values which will enable you to ...Show More
57: C# Generics. Fill In The Blanks.

13:03 | Feb 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 it allows you to write code tha...Show More
56: C# Exceptions. Finally Required.

10:26 | Feb 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# exceptions and how they are different from C++ exceptions. When should you use exceptions in your cod...Show More
55: C++ Exceptions. Cannot Be Ignored.

14:22 | Feb 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 need its own episode. A good way t...Show More
QA Friday 2016-Feb-12

09:10 | Feb 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 assignment was from another class and...Show More
54: Recursion. Find Your Base.

14:17 | Feb 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 the next thought to complete. I know, it sounds complicated. This episode should help you understand t...Show More
53: Enumerations And Bit Flags.

13:28 | Feb 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 combine them into flags. With flags, you can have multiple enumeration options that you can work with as a...Show More
52: Bits Operations: Shifting.

12:20 | Feb 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 multiplication or division or to maneuver them into place. If you start out with the value 0x5a and want to...Show More
51: Bits Operations: Masking.

14:33 | Feb 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 isolate bits so you can work with them individually or in groups. Isolating bits like this is called m...Show More
QA Friday 2016-Feb-05

11:22 | Feb 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 characters. Many programming languages will allow you to work with the individual characters just like you...Show More
50: Hexadecimal. Easier Than Binary.

11:49 | Feb 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 real problem though is even eig...Show More
49: C++ Preprocessor. This Is Old Magic.

12:28 | Feb 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++ compiler can’t come close to duplicating on its own. All the preprocessor directives begin with the hash...Show More
48: Chaining: Operators, Classes, Calls.

12:33 | Feb 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 episode describes four kinds of chaining: Object instance chaining as in a linked list or even from...Show More
47: Operators. Who Goes First?

11:49 | Feb 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? This episode explains precedence, associativity, and evaluation order. Let’s say you have this stateme...Show More
QA Friday 2016-Jan-29

09:29 | Jan 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 hope it will help you to focus you...Show More
46: Collections: Iterators Part 2.

13:45 | Jan 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 is part two and continues describing even more advanced iterator topics. With both part 1 and part 2 o...Show More
45: Collections: Iterators Part 1.

11:37 | Jan 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 various collections, you know that they’re structured very differently. An array just needs to move a poin...Show More
44: Collections: Dictionary.

07:31 | Jan 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 one item isn’t going to be very fun. You have choices and this episode continues more than a week long ...Show More
43: Collections: Hash Table.

10:08 | Jan 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 one item isn’t going to be very fun. You have choices and this episode continues more than a week long ...Show More
QA Friday 2016-Jan-22

10:44 | Jan 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 will need to know how to program because you will be expected to contribute code as an intern. This ...Show More
42: Collections: Left-Child Right-Sibling Tree.

10:50 | Jan 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 work with collections of items. You have choices and this episode continues more than a week long ex...Show More
41: Collections: Binary Tree.

15:22 | Jan 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 one item isn’t going to be very fun. You have choices and this episode continues more than a week long ...Show More
40: Collections: List.

09:49 | Jan 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 opponent isn’t going to win you any awards. You have choices and this episode continues more than a w...Show More
39: Collections: Array.

14:58 | Jan 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 opponent isn’t going to win you any awards. You have choices and this episode begins more than a week...Show More
QA Friday 2016-Jan-15

12:01 | Jan 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 software more resistant to atta...Show More
38: Big-O Notation. How Fast Can You Go?

14:33 | Jan 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 discussion of Big-O notation so make sure to listen to episode 37 first. Knowing the signs of these will...Show More
37: Big-O Notation. Take It To The Limit.

10:56 | Jan 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 faster all the time and there are...Show More
36: Logarithms. It’s How Our Bodies Work.

10:27 | Jan 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 silent room? Does the pin make less ...Show More
35: Random Numbers Start With A Seed.

09:41 | Jan 11th, 2016

Programming involves giving specific instructions but sometimes you want the ability to introduce random behavior. Maybe you want to simulate how a human character sometimes does things in a different order or takes a different path. Or maybe you wan...Show More
QA Friday 2016-Jan-08

10:57 | Jan 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 sits in a big datacenter somew...Show More
34: C# Casting. Only Frogs Can Be Frogs.

06:42 | Jan 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 exception, there’re some things ...Show More
33: C++ Casting. Turn Your Object Into A Frog.

12:04 | Jan 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? Or what if you have a derived class and you want to refer to it as if it was a base class? And can you...Show More
32: Static Methods And Data. Always Available.

08:45 | Jan 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# where all methods need to be i...Show More
31: Getters And Setters Keep It Together.

08:36 | Jan 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 them directly? And what’s the difference between a field and a property? This episode will help you ge...Show More
QA Friday 2016-Jan-01

09:38 | Jan 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 Game class also in the main.cp...Show More
30: Interfaces. The Software Contract.

06:51 | Dec 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 support for interfaces which means that they promise to support that behavior. How your classes do this ...Show More
29: Abstract Classes. Incomplete On Their Own.

06:41 | Dec 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 could never be created by itself?...Show More
28: Composition. The Has-A Relationship.

09:16 | Dec 29th, 2015

Composition allows you to specify very different kinds of relationships between classes. This is sometimes also called containment. If you’re building a racing game and have a car class and a wheel class, you wouldn’t want to say that cars are wheels...Show More
27: Multiple Inheritance. Often Banned.

08:41 | Dec 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 always use it. Use it when it’s the right tool for the job just like any other tool. I’ll show you in...Show More
QA Friday 2015-Dec-25

07:04 | Dec 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 to know how this worked in a la...Show More
26: Inheritance. When To Use Private.

07:48 | Dec 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 inheritance is probably even more rare. Some of my programming books just say that this whole topic is “beyon...Show More
25: Inheritance. Overriding Methods.

12:49 | Dec 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 to refer to a group of different class instances all by some common base type. When you create a new c...Show More
24: Inheritance. The Is-A Relationship.

09:05 | Dec 22nd, 2015

Class relationships bring out the full power of object-oriented programming. Inheritance allows you to create classes that specialize or extend other classes. You can create entire hierarchies of classes but there are enough gotchas that some languag...Show More
23: Access Control. Employees Only.

11:02 | Dec 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 available? Then you don’t have to ...Show More
QA Friday 2015-Dec-18

08:44 | Dec 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 three and you might think you already know how to understand them. But have you heard of short circuit ...Show More
22: C# Creating And Disposing Instances.

11:15 | Dec 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 C# classes in their own .cs file...Show More
21: C++ Creating And Deleting Instances.

11:49 | Dec 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 between C++ and C# that we’re goi...Show More
20: C# Destructors and IDisposable.

07:25 | Dec 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 normally don’t need to worry about...Show More
19: C++ Destructors. Simply Reliable.

08:16 | Dec 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, we’re going to look at C++ destruct...Show More
QA Friday 2015-Dec-11

06:44 | Dec 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 return codes or exceptions? Plus, this episode will help you in other ways. You’ll be glad you liste...Show More
18: Constructors.

09:51 | Dec 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 how you should use them. The first thing to understand is that constructors are just methods in your...Show More
17: Object-Oriented Programming. The Next Level.

06:35 | Dec 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 types can make use of other types through relationships. When I’m teaching programming, I don’t start out...Show More
16: In Or Out Of Scope?

07:14 | Dec 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 program. Let me explain. Scope...Show More
15: Let’s Program A Game! Part 3.

07:32 | Dec 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 said this before, but I don’t thin...Show More
QA Friday 2015-Dec-04

04:51 | Dec 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 did. And the name of the varia...Show More
14: Let’s Program A Game! Part 2.

06:01 | Dec 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 distinct steps will help you write...Show More
13: Let’s Program A Game! Part 1.

08:59 | Dec 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 how to design and build WordGuess. You can get the 5 daily emails by signing up at More
12: References Are More Than Just Pointers.

07:17 | Dec 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 microprocessor registers can sometimes b...Show More
11: There’s A Method For All This.

11:26 | Nov 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 methods are called and how they return when they’re done. And a bit about how viruses can sneak in and g...Show More
QA Friday 2015-Nov-27

04:36 | Nov 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 of a software development team t...Show More
10: Double Pointers! The Pattern Continues.

09:57 | Nov 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 pointer. Previous episodes explained...Show More
9: Pointer Arithmetic. This Is Easy!

08:06 | Nov 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 arithmetic. You can add or subtr...Show More
8: Pointers! Computers Use Them Too.

06:50 | Nov 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 explain them who’s already uncomfortable with them. This episode is going to rip the bandage off quick...Show More
7: Into The Void.

14:21 | Nov 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 you see and feel is unknown to you. If somebody points to a random spot in a computer’s memory and asks...Show More
QA Friday 2015-Nov-20

07:35 | Nov 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 types that the podcast lists: Log files (*.log) Object files (*.obj, *.o) Symbol files (*.pdb) Increme...Show More
6: Just In Time.

10:32 | Nov 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 directly and interpreting each lin...Show More
5: Interpreted Or Compiled?

09:14 | Nov 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 difference between some languages s...Show More
4: From Binary To GUIs. Part 2.

09:05 | Nov 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 with buttons and web browsers? This is part two of two episodes that explain this. This episode is foc...Show More
3: From Binary To GUIs. Part 1.

09:46 | Nov 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 with buttons and web browsers? This is part one of two episodes that explain this. This episode is foc...Show More
2: What Is Programming?

11:56 | Nov 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. Programming is just the process...Show More
1: How To Start Programming.

08:49 | Nov 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 your software development environment setup on your computer. In the audio, I gave some specific comma...Show More
0: Why Take Up Code?

09:09 | Nov 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?” There are two parts to this: Why should you learn how to program at all? Why is Take Up Code your best ...Show More