Take Up Code

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

Listen to a podcast, please open Podcast Republic app. Available on Google Play Store.


Category: Software How-To

Open in iTunes


Open RSS feed


Open Website


Rate for this podcast

Subscribers: 51
Reviews: 0

Description

Take Up Code is a podcast that explains computer programming topics through fun and engaging examples that you can relate to. The guided format allows you to gain valuable understanding of topics that will reinforce your studies, allow you to train new skills that you can apply on your job, and change your thinking about what it takes to become a professional programmer. The episodes are as short as possible so you can squeeze them into your daily routine.

Episode Date
261: CppCon: Interview With Conor Hoekstra About C++ Algorithms And Ranges.
11:57
This is an interview with Conor Hoekstra about C++ algorithms and ranges. Conor presented my favorite talk at CppCon 2019 called Algorithm Intuition. I asked him to talk about algorithms on this podcast and he agreed. This just proves again why CppCon is the best place to be when you want to improve your C++ […]
Sep 25, 2019
260: CppCon: Interview With Josh Lospinoso About The Book C++ Crash Course.
11:32
Josh Lospinoso discusses his new book C++ Crash Course. This is a book with a focus on C++17 written with a desire to simplify and make it easy for you to learn C++. I got this book during the CppCon conference and have to say, this is a fun book. It’s got lots of examples, […]
Sep 25, 2019
259: CppCon: Interview With Asad Naweed About Augmented Reality.
13:07
This is an interview with Asad Naweed about augmented reality. I met Asad at CppCon in 2019 when he asked some questions at one of the presentations I also attended. We started talking at first about teaching coding. He has taught others how to code through education programs at Google. I especially liked his business […]
Sep 24, 2019
258: CppCon: Interview With Nicolai Josuttis About How The C++ Standardization Has Changed Over The Years.
13:59
This is an interview with Nicolai Josuttis about how the C++ standardization process has changed over the years. You can find more information about Nicolai at his website http://www.josuttis.com I first came to know about Nicolai through his book “The C++ Standard Library – A Tutorial and Reference” and recently started reading his new book […]
Sep 24, 2019
257: CppCon: Interview With Sean Hale About Becoming A Software Developer Without A Degree In Computer Science.
15:48
This is an interview with Sean Hale about how he got into computers and then turned a degree in literature into a job as a software development engineer. I met Sean at CppCon in 2019 and asked him to be on the podcast because of his experience. You can become a software development engineer without […]
Sep 23, 2019
256: What Is Hurting Your Effort To Learn Coding? How To Improve Your Learning With One Simple Trick I Discovered By Accident.
5:29
Is there something you can do that will help you learn coding? When learning something new, it helps to focus on associations, especially opposites. It’s hard to learn separate facts and ideas. Linking them together lets them reinforce each other. Instead of being more work, they will lend support. This will improve your memory too. […]
Sep 23, 2019
255: How To Avoid Small Choices And Design Your Application To Scale Big.
6:54
How do you  design your application so it scales well to a big size? Scaling needs to be verified early in the design to prevent costly mistakes that usually appear later. You can scale in many ways. The number of users, amount of data, and code size are common. Avoid hard limits in the code […]
Sep 22, 2019
254: GameDev: How To Use Noise To Procedurally Generate Maps And Landscape.
11:10
How do you create unique and random game worlds and maps? Unique and random game maps and worlds can be created procedurally in code using noise. The noise is good for simulating nature because it produces values that change randomly in small amounts with no abrupt changes and provides realistic curves to rivers or hills. […]
Sep 03, 2019
253: Creative Ways To Use C++ Curly Braces Beyond Just Functions And Loops.
6:45
This episode will explain how you can use curly braces in C++ to create a new scope. You can use this ability to control name visibility and reduce name conflicts. And you can also use curly braces to control exactly when object constructors and destructors are run. This is possible because C++ has very specific […]
Sep 03, 2019
252: How To Handle Frustration When Learning To Code.
5:27
What’s the best way to handle frustration when learning to code? Knowing that all developers face frustration at times is a big help. You’re not alone. And it doesn’t mean that coding is not for you. Treat it as a learning opportunity and stick with it until you solve the problem. Keep trying ideas until […]
Sep 02, 2019
251: What Happens When Code Has Undefined Behavior?
7:37
What happens when code has undefined behavior? There’s hundreds of ways code can have undefined behavior. What happens is completely up to the compiler. You should not depend on undefined behavior because compilers can completely change or delete sections of code. Since the behavior is undefined, then compilers can optimize code in ways you never […]
Sep 02, 2019
250: GameDev: Design Patterns: Entity Component System.
7:40
This design pattern will help you make sense of your game design as it gets bigger.
Dec 10, 2018
249: GameDev: Floating Point: Zero, Infinity, NaN.
6:20
There are some special floating point values that you should be aware of. Zero, infinity, and not a number are three cases that might surprise you.
Nov 25, 2018
248: GameDev: Special Offer: Free Advanced Game Building Bonus.
9:55
Looking for more advanced training to help you better understand how to actually build something in C++? Want to go beyond example snippets that do not really teach you anything? How about being able to ask questions or get feedback on a suggestion?
Nov 19, 2018
247: GameDev: 1.1 Plus 2.2 Is Not 3.3. What?
9:07
Be careful with floating point numbers when building games.
Nov 12, 2018
246: GameDev: Points Vs. Vectors. Which Should You Use?
8:42
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.
Oct 29, 2018
245: GameDev: Points, Lines, Planes, Dimensions, and Normals.
11:53
You do not need a lot of math to program. What you do need is usually simple. But you do need some. It is not that hard and I will explain it so you can understand. Game development probably needs a bit more math than you might guess.
Oct 15, 2018
244: CppCon: What Did I Learn? And What Will Help You?
8:27
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 would share something that I learned at the conference.
Oct 02, 2018
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
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.
Sep 17, 2018
242: In The End, It’s You Vs. You.
5:08
In the end, it is you vs. you. Is this about living or dying?
Sep 03, 2018
241: How To Use Raw Pointers Properly And Still Avoid Crashes.
12:51
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.
Aug 20, 2018
240: Video Game Update: Introducing The TUCUT Library.
9:21
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.
Aug 06, 2018
239: What 20 Percent Of Topics Should You Focus On?
6:02
There is a lot you can learn about programming. But do you need to know it all?
Jul 23, 2018
238: Filesystem: Recent WordPress Attack Lets Editors Take Over.
9:53
This is a real example of how the filesystem can be used to take over a Wordpress website.
Jul 09, 2018
237: Filesystem: How To Avoid Security Vulnerabilities. Part 3.
9:40
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.
Jun 25, 2018
236: Filesystem: How To Avoid Security Vulnerabilities. Part 2.
8:35
Run your program with the least permissions possible.
Jun 10, 2018
235: Filesystem: How To Avoid Security Vulnerabilities. Part 1.
9:55
When it comes to security, it is better to learn from examples.
May 28, 2018
234: Filesystem: Journaling Keeps Your Filesystem Intact.
8:26
Journaling records extra information in case there are problems.
May 14, 2018
233: Schedule Changes To Support Take Up Code.
5:54
The Take Up Code podcast needs your support.
Apr 30, 2018
232: Filesystem: Linking Explained: Symbolic, Soft, Hard, Junction.
12:58
Filesystems allow you to refer to refer to your content with different names.
Apr 23, 2018
231: Filesystem: Metadata Holds More Information.
10:25
Metadata provides information about your files.
Apr 16, 2018
230: Filesystem: What Can They Do? Part 4.
14:54
There is a special type of filesystem used to swap memory.
Apr 09, 2018
229: Filesystem: What Can They Do? Part 3.
13:06
Access control lists provide more security options.
Apr 02, 2018
228: Filesystem: What Can They Do? Part 2.
9:42
Security is a big part of filesystems.
Mar 26, 2018
227: Filesystem: What Can They Do? Part 1.
14:06
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 you download applications from the internet so it can warn you when you try to run them. […]
Mar 19, 2018
226: Filesystem: CHS vs. LBA Modes.
12:25
Cylinder, Head, Sector or CHS vs. Logical Block Addressing or LBA give you two ways to find data on a disk.
Mar 12, 2018
225: Filesystem: Partitions Allow You To Divide Your Disks.
8:55
Dividing your disks into partitions allows you to use each partition for separate tasks.
Mar 05, 2018
224: Filesystem: Drive Letters, Mounting, And Paths. Part 2.
9:28
How are filesystem organized with multiple drives?
Feb 26, 2018
223: Filesystem: Drive Letters, Mounting, And Paths. Part 1.
10:45
How are filesystem organized with multiple drives?
Feb 19, 2018
222: Filesystem: Why Should You Learn To Use It?
10:47
Understanding how to use the filesystem will allow you to add common and expected features to your apps.
Feb 12, 2018
221: Be Careful Of Changes In Code Abstraction.
6:11
The code you write should follow a similar level of detail.
Feb 05, 2018
220: One Of These Things Is Not Like The Others.
6:19
Finding differences will help you make sense of your code.
Jan 29, 2018
219: C++ RAII Sounds Complicated But Simplifies Your Code.
8:22
Resource allocation is initialization or RAII for short may be hard to pronounce but will help you write better and simpler code.
Jan 22, 2018
218: C++ Used To Program Video Games.
8:40
Why is C++ such a good choice for writing games?
Jan 15, 2018
217: How To Start Building a Video Game. Part 7.
7:33
Work on the toughest problems first. And if you cannot solve them, then find a way around.
Jan 08, 2018
216: How To Start Building a Video Game. Part 6.
10:46
How is a video game different than any other application?
Jan 01, 2018
215: How To Start Building a Video Game. Part 5.
6:33
We all want to think big. But to get there, we need to think small.
Dec 25, 2017
214: How To Start Building a Video Game. Part 4.
8:26
You can take advantage of libraries and frameworks.
Dec 18, 2017
213: How To Start Building a Video Game. Part 3.
9:31
What role will data play in your game?
Dec 11, 2017
212: How To Start Building a Video Game. Part 2.
10:21
How do you make your idea more specific?
Dec 04, 2017
211: How To Start Building a Video Game. Part 1.
11:36
You have a vague idea for a new video game. Where do you begin?
Nov 27, 2017
210: Shiny Projects And Distractions.
10:12
When is it okay to switch to a different project?
Nov 20, 2017
209: CSS: Cascading Style Sheets Tutorial. Part 2.
11:19
Cascading Style Sheets let you manage how your HTML looks so you can keep your HTML focused on the content.
Nov 13, 2017
208: CSS: Cascading Style Sheets Tutorial. Part 1.
8:29
Cascading Style Sheets let you manage how your HTML looks so you can keep your HTML focused on the content.
Nov 06, 2017
207: Trees: AST: Abstract Syntax Tree. A Simple Example.
16:43
An abstract syntax tree can help your code make sense of what a user provides.
Oct 30, 2017
206: Collections: Stack.
6:07
You can use a stack when you need to remember something and only ever need the last thing.
Oct 23, 2017
205: Trees: What Can You Do With Them?
14:25
What other things can trees help you to solve?
Oct 16, 2017
204: This Is Terrible, You Gotta Start Anyway.
10:15
Have you ever created something and then thought about how bad it was? What did you do?
Oct 09, 2017
203: Trees: Why Use Them?
8:00
Why should you consider using trees?
Oct 02, 2017
202: Graphs vs. Trees vs. Hierarchies: Compared.
12:29
Before exploring HTML and CSS further, you are going to need to understand graphs, trees, and hierarchies.
Sep 25, 2017
201: HTML: Caching Generated Output For Speed.
10:10
Now that you can generate HTML, why would you ever want to go back to the old way of unchanging HTML?
Sep 18, 2017
200: HTML: Can Be Generated By A Web Server.
7:45
A modern website is more than just a collection of some HTML pages.
Sep 11, 2017
199: HTML: How To: Simple Formatting.
9:08
You will learn how to use HTML to format your text into headings, paragraphs, and lists in this episode.
Sep 04, 2017
198: HTML: Semantic Meaning.
6:51
Does markup have any specific meaning that can be understood?
Aug 28, 2017
197: HTML: The Bigger Picture.
8:02
You need to know more than how HTML tags work. There is a structure that HTML documents should follow.
Aug 21, 2017
196: HTML: How Does Markup Work?
12:10
How does HTML markup enable you to create web pages?
Aug 14, 2017
195: HTML: Is This Programming?
8:22
You can use HTML to present information or build web pages. But it is not programming.
Aug 07, 2017
194: How Can You Tell Good Teachers From Fake?
7:45
What criteria do you use to determine if somebody is faking their skills as a teacher?
Jul 31, 2017
193: Kids Either Leave or Go to Jail.
6:51
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.
Jul 24, 2017
192: Developer Bootcamps and Coding Schools: Doomed or Thriving?
13:51
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?
Jul 17, 2017
191: Git: Keep Track Of Your Files As They Change. Part 6.
8:37
Programming involves change and managing that change is the only way to make sense of it. You will learn about the staging area in this episode and how that affects your commits.
Jul 10, 2017
190: Git: Keep Track Of Your Files As They Change. Part 5.
11:37
Programming involves change and managing that change is the only way to make sense of it. You will learn about submodules in this episode and how that enables you to reference code from other repositories.
Jul 03, 2017
189: Git: Keep Track Of Your Files As They Change. Part 4.
8:45
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.
Jun 26, 2017
188: Git: Keep Track Of Your Files As They Change. Part 3.
16:27
Programming involves change and managing that change is the only way to make sense of it. You will learn about branching and what it means to commit your changes in this episode.
Jun 19, 2017
187: Git: Keep Track Of Your Files As They Change. Part 2.
9:09
Programming involves change and managing that change is the only way to make sense of it.
Jun 12, 2017
186: Git: Keep Track Of Your Files As They Change. Part 1.
11:15
Programming involves change and managing that change is the only way to make sense of it.
Jun 05, 2017
185: Working Remotely: No More Trading Schedules.
10:05
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?
May 29, 2017
184: Basic Electronics: Transistors Can Act Like Switches.
10:09
We normally think of something as either a conductor of electricity or an insulator.
May 22, 2017
183: Digital Electronics: Microcontrollers Ready To Use.
7:37
Unlike microprocessors, microcontrollers can be used all by themselves.
May 15, 2017
182: Digital Electronics: Microprocessor Speed And Clocks.
7:33
What are microprocessors and how have they changed?
May 08, 2017
181: Basic Electronics: Voltage Dividers.
4:15
You can use resistors to divide voltage.
May 01, 2017
180: Basic Electronics: Series And Parallel.
7:50
Have you ever wondered why batteries sometimes need to be inserted in alternating directions?
Apr 24, 2017
179: Basic Electronics: Capacitance.
8:32
Do you know how your touch screen works?
Apr 17, 2017
178: Basic Electronics: Magnetic Fields And Current.
7:45
Moving charge produces a magnetic field and a moving magnetic field produces current.
Apr 10, 2017
177: Basic Electronics: AC/DC: Alternating Vs. Direct Current
6:51
Do you know where the nearest power plant is?
Apr 03, 2017
176: Basic Electronics: Voltage, Current, Resistance.
11:24
Knowing some basic electronics helps you become a better programmer.
Mar 27, 2017
175: Multiplexing: Many Over One.
6:17
How do you send multiple messages across a single channel?
Mar 20, 2017
174: Error Correction: Hamming Distance And Codes.
8:55
How do you correct errors once you identify them?
Mar 13, 2017
173: HMAC: Keyed Hashed Message Authentication Code.
9:13
How do you stop an attacker from just changing a hash?
Mar 06, 2017
172: Hashes Offer The Best Error Detection.
9:20
If you receive some information, how do you know if it is intact or has been changed?
Feb 27, 2017
171: Checksums Offer Better Error Detection.
12:11
If you receive some information, how do you know if it is intact or has been changed?
Feb 20, 2017
170: Parity: Simple And Fast Error Detection.
9:00
If you receive some information, how do you know if it is intact or has been changed?
Feb 13, 2017
169: Your Guide To Computer Programming. Part 4 of 4.
8:24
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
Feb 06, 2017
168: Your Guide To Computer Programming. Part 3 of 4.
9:21
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
Jan 30, 2017
167: Your Guide To Computer Programming. Part 2 of 4.
10:25
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
Jan 23, 2017
166: Your Guide To Computer Programming. Part 1 of 4.
9:01
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
Jan 16, 2017
165: Sockets And Ports: The Hidden Pieces.
11:26
How does one application communicate with another application?
Jan 09, 2017
164: SCTP vs. TCP vs. UDP
8:19
You will learn more about the strengths of the SCTP, TCP, and UDP protocols by comparing them.
Jan 02, 2017
163: SCTP: Stream Control Transmission Protocol.
8:16
SCTP is another protocol like TCP and UDP with aspects of both.
Dec 26, 2016
162: OSI Model: Seven Layers of Communication.
5:39
The OSI model will help you understand how computers communicate.
Dec 19, 2016
161: MAC: Media Access Control Address.
9:05
A MAC address is a physical address unique to your computer.
Dec 12, 2016
160: UDP: User Datagram Protocol.
6:24
Sometimes speed and simplicity are more important than reliability.
Dec 05, 2016
159: TCP: Transmission Control Protocol.
8:49
Knowing where to send information through IP is not enough. You have to know how to reliably send information too.
Nov 28, 2016
158: IP: Internet Protocol Addresses.
9:43
Any computer or device that wants to communicate with the Internet Protocol needs an IP address to uniquely identify the device.
Nov 21, 2016
157: DNS: Domain Name System.
9:37
Why do we need a system for managing domain names?
Nov 14, 2016
156: URLs, URNs, URCs, Data URIs, and URIs.
12:24
It is almost a tongue twister to say them all. Do you know what they all mean?
Nov 07, 2016
155: HTML vs. HTTP: How Do They Compare?
7:56
There is more than just two letters difference. In fact, you can not really compare them at all. But you can use them together.
Oct 31, 2016
154: Data: JSON JavaScript Object Notation.
5:45
Like XML, JSON is also a way to represent data that is readable by both humans and computers.
Oct 24, 2016
153: Data: XML Extensible Markup Language.
8:26
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.
Oct 17, 2016
152: Distributed Computing: APIs Have Changed.
9:17
You might be more familiar with APIs than SOA but they had another meaning not very long ago.
Oct 10, 2016
151: The More You Learn.
7:42
As you learn more about something, a strange thing happens. It becomes obvious how much more there is to still be learned.
Oct 03, 2016
150: Distributed Computing: SOA
6:53
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.
Sep 26, 2016
149: Step By Step Perfection.
10:10
Knowing where to spend your time and focus will help you finish projects without getting stuck in details.
Sep 19, 2016
148: CAP Theorem: Choose Two, Or Is It One?
8:44
Consistency, Availability, and Partition Tolerance are three aspects of distributed computing. And a fourth not included in the theorem is Latency.
Sep 12, 2016
147: Distributed Computing: Ready? Yes. Done.
8:02
Two-phase and three-phase commits will help you design solutions that need to work across multiple computers.
Sep 05, 2016
146: Distributed Computing: It Happened When?
10:58
Computers rely on clocks. They coordinate everything. But the clocks on different computers can be slightly off from each other.
Aug 29, 2016
QA Friday 2016-Aug-26
7:33
What can you do to improve your concentration?
Aug 26, 2016
145: Distributed Computing: Four Reasons.
11:00
Dividing work between multiple computers is sometimes the best way to solve a problem.
Aug 22, 2016
QA Friday 2016-Aug-19
6:34
How do you concentrate?
Aug 19, 2016
144: Data Types: C++ nullptr Is Not Zero.
8:05
nullptr represents a null pointer and while it has a value of zero, the type is not the same.
Aug 15, 2016
QA Friday 2016-Aug-12
7:38
When should I create a new class?
Aug 12, 2016
143: Where And How To Use Whitespace.
9:38
Making code more readable sometimes means knowing where to put nothing.
Aug 08, 2016
QA Friday 2016-Aug-05
8:54
Regulations say that you can only have one floor mat.
Aug 05, 2016
142: Comments. Focus On Why.
9:46
Comments are important but do not forget that your code should also be self-commenting.
Aug 01, 2016
QA Friday 2016-Jul-29
9:29
Where are your certifications? Do you have a degree?
Jul 29, 2016
141: Reference Counting. Still In Use!
13:00
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.
Jul 25, 2016
QA Friday 2016-Jul-22
9:47
What is your biggest weakness? Things around us change and we each grow and change too.
Jul 22, 2016
140: Name Mangling and Overloaded Methods.
9:28
You normally do not have to worry about name mangling. But you should know what it is.
Jul 18, 2016
QA Friday 2016-Jul-15
7:14
What is 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.
Jul 15, 2016
139: Data Types: C++ Decltype. Declared Types.
9:06
Sometimes you need to declare a type to be the same as something else.
Jul 11, 2016
QA Friday 2016-Jul-08
6:16
How our education system ignores problem solving. I do not really have a question this week so this is a great opportunity for me to talk about education.
Jul 08, 2016
138: Data Types: Lvalues And Rvalues.
10:18
You will 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.
Jul 07, 2016
137: Data Types: Auto or Var. The Compiler Chooses.
9:02
Auto and var types do have a type. The compiler will figure out what that is.
Jul 06, 2016
136: Data Types: Variant. Pick One.
7:51
The variant type can take on one of many different types and can even change the type. It is still a variant so it is more accurate to say that it can hold another type.
Jul 05, 2016
135: Data Types: GUIDs Globally Unique Identifiers.
9:27
When you want to identify class instances or data records, you cannot use things like passports. Yet it is just as important to keep track of object identities as it is for people.
Jul 04, 2016
QA Friday 2016-Jul-01
9:28
I always feel pressure and embarrassment when doing code reviews. What should I do?
Jul 01, 2016
134: Data Types: C++ Function Binders.
8:23
Binders make up part of functional composition that allows you to adapt functions and combine them into new functions.
Jun 30, 2016
133: Data Types: Regular Expressions.
10:11
A regular expression or regex lets you perform the advanced text operations matching, searching, tokenizing, and replacing.
Jun 29, 2016
132: Data Types: Lambdas.
11:39
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 will be even more lost than with function pointers.
Jun 28, 2016
131: Data Types: Function Pointers Part 2.
13:48
You may not always need to work with this data type but that does not mean you can ignore it. If you do not at least know the basics, then you will get lost in code that uses function pointers.
Jun 27, 2016
QA Friday 2016-Jun-24
9:29
What is data binding?
Jun 24, 2016
130: Data Types: Function Pointers Part 1.
8:52
You may not always need to work with this data type but that does not mean you can ignore it. If you do not at least know the basics, then you will get lost in code that uses function pointers.
Jun 23, 2016
129: Data Types: Function Objects Part 2.
10:02
Function objects are simple but do not let that fool you. You can use them in clever solutions.
Jun 22, 2016
128: Data Types: Function Objects Part 1.
8:52
Function objects are simple but do not let that fool you. You can use them in clever solutions.
Jun 21, 2016
127: Data Types: Smart Pointers Part 2.
12:49
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 is what smart pointers do.
Jun 20, 2016
QA Friday 2016-Jun-17
6:37
What is runtime binding?
Jun 17, 2016
126: Data Types: Smart Pointers Part 1.
8:45
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 is what smart pointers do.
Jun 16, 2016
125: Data Types: Streams Part 2.
9:24
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.
Jun 15, 2016
124: Data Types: Streams Part 1.
9:30
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.
Jun 14, 2016
123: Data Types: Tuples.
9:27
Sometimes you need to bundle things together so you can treat them as a single unit. That is what the tuple provides.
Jun 13, 2016
QA Friday 2016-Jun-10
7:21
When should I use a reference and when should I use a pointer?
Jun 10, 2016
122: Data Types: DateTimes Part 5 C++.
11:51
DateTimes in C++ require quite a bit of a learning curve. They are still evolving and nowhere near to being full-featured or friendly to use.
Jun 09, 2016
121: Data Types: DateTimes Part 4.
11:18
Dates and times are a lot more complicated than we normally realize. This episodes explains durations.
Jun 08, 2016
120: Data Types: DateTimes Part 3 C#.
10:49
So you think you know how to use the DateTime struct in C#? You might be surprised.
Jun 07, 2016
119: Data Types: DateTimes Part 2.
17:04
Dates and times are a lot more complicated than we normally realize. Having a specific data type to manage all the details is crucial.
Jun 06, 2016
QA Friday 2016-Jun-03
11:49
Do I really have to follow software licenses?
Jun 03, 2016
118: Data Types: DateTimes Part 1.
14:05
Dates and times are a lot more complicated than we normally realize. Having a specific data type to manage all the details is crucial.
Jun 02, 2016
117: Data Types: Decimals.
11:42
If you need floating point values but find the accuracy of floats and even doubles to cause problems, then consider using the decimal type.
Jun 01, 2016
116: Data Types: Strings Part 3.
17:17
You need more than a bunch of numbers and logic to write an application. You need text and working with individual characters is not enough either.
May 31, 2016
115: Data Types: Strings Part 2.
15:28
You need more than a bunch of numbers and logic to write an application. You need text and working with individual characters is not enough either.
May 30, 2016
QA Friday 2016-May-27
7:16
Is there any point in learning how to code when I can just use the source code from another app?
May 27, 2016
114: Data Types: Strings Part 1.
16:40
You need more than a bunch of numbers and logic to write an application. You need text and working with individual characters is not enough either.
May 26, 2016
113: Data Types: Arrays.
13:07
You will often need multiple variables of the same type and while you can sometimes just create separate variables with their own names, what if you do not know ahead of time how many will be needed?
May 25, 2016
112: Data Types: Floats.
10:29
If you want to work with fractional values instead of just whole numbers, then floating point types are usually a good choice. They are different enough from ints that you need to understand how to use them.
May 24, 2016
111: Data Types: Enums.
10:23
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.
May 23, 2016
QA Friday 2016-May-20
8:27
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?
May 20, 2016
110: Data Types: Void And Bool.
12:02
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.
May 19, 2016
109: Data Types: Ints Part 2.
16:40
You will probably have one or more ints in almost every method and class you write. They are everywhere so you really should know how to use them.
May 18, 2016
108: Data Types: Ints Part 1.
12:15
You will probably have one or more ints in almost every method and class you write. They are everywhere so you really should know how to use them.
May 17, 2016
107: Data Types: Chars And Bytes.
10:41
Chars and bytes form some of the most basic data types available. But what are they really? And what can you do with them?
May 16, 2016
QA Friday 2016-May-13
5:56
How do I use my foundational skills in programming to start making useful software?
May 13, 2016
106: Multithreading. Call Me Back Please.
11:33
Callback methods can also be either synchronous or asynchronous and add a whole new dimension to how you can approach problems.
May 12, 2016
105: Multithreading. Sync vs. Async.
9:43
What are synchronous and asynchronous methods and how do you use them?
May 11, 2016
104: Multithreading. Singleton Mistakes.
11:45
There is a big problem with Singletons especially in the C++ language. It is 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 for the instance at the same time?
May 10, 2016
103: Multithreading. Volatile.
10:12
Volatile is a keyword that allows you to turn off certain optimizations. Unfortunately, it is also used incorrectly many times as a way to synchronize threads.
May 09, 2016
QA Friday 2016-May-06
9:05
Do it in place. What does that mean?
May 06, 2016
102: Multithreading. Up And Down.
9:06
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.
May 05, 2016
101: Multithreading. Signal And Wait.
13:26
Semaphores are often confused and characterized as just a more general form of a mutex. There are actually some big differences though.
May 04, 2016
100: Multithreading. Master The Lock.
13:29
This episode dives deep into locks. How do they work? And then explains how you can use this to implement a reader-writer lock.
May 03, 2016
99: Multithreading. Cache Lines.
9:52
If you are 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 is probably not the performance boost you were looking for.
May 02, 2016
QA Friday 2016-Apr-29
6:41
Do you get more value out of articles, videos, or podcasts?
Apr 29, 2016
98: Multithreading. The Great Divide.
8:33
How do you assign work to threads? This episode explains several ways you can think about this and when to use them.
Apr 28, 2016
97: Multithreading. The Big Event.
8:32
There is more to working with multithreading than locking code and avoiding deadlocks. You also need to know how to synchronize activities. It is not so hard once you understand.
Apr 27, 2016
96: Multithreading. Thoughtful Designs.
10:22
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 will give you some of my thoughts in this episode.
Apr 26, 2016
95: Multithreading. When Neither Side Budges.
11:03
Deadlocks are another common problem with multithreading. I will explain how you can get into this situation and how to change your code to avoid the problem.
Apr 25, 2016
QA Friday 2016-Apr-22
8:39
What makes a good personal programming side project?
Apr 22, 2016
94: Multithreading. The Race Is On.
13:06
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.
Apr 21, 2016
93: Multithreading. When Should You Use It?
9:49
Do you know when to use multithreading? What are the advantages and disadvantages?
Apr 20, 2016
92: Multithreading. Why Should You Care?
10:37
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 is not the answer to everything.
Apr 19, 2016
91: Round Robin. Nobody Starves.
10:41
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.
Apr 18, 2016
QA Friday 2016-Apr-15
8:32
After working 8 hours, how can I learn to program in the evening?
Apr 15, 2016
90: Design Patterns: Object Pool.
11:34
The object pool behavioral pattern allows you to reuse objects instead of destroying them and creating them again.
Apr 14, 2016
89: Design Patterns: Dirty Flag.
11:29
The dirty flag behavioral pattern allows you to avoid expensive operations that would just need to be done again anyway.
Apr 13, 2016
88: Design Patterns: Service Locator.
11:50
The service locator behavioral pattern allows you to make use of an interface without knowing what class implements the interface.
Apr 12, 2016
87: Design Patterns: Event Queue.
14:55
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.
Apr 11, 2016
QA Friday 2016-Apr-08
8:16
Can I learn programming if I am stupid?
Apr 08, 2016
86: Design Patterns: Component.
12:41
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.
Apr 07, 2016
85: Design Patterns: Subclass Method.
10:25
The subclass method behavioral pattern allows many different subclasses to define their own behavior while reusing common functionality from the base class.
Apr 06, 2016
84: Design Patterns: Update Method.
11:50
The update method behavioral pattern works with the previous game loop pattern and lets you manage the behavior of multiple game characters.
Apr 05, 2016
83: Design Patterns: Game Loop.
15:46
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.
Apr 04, 2016
QA Friday 2016-Apr-01
11:09
How do you make a design easy to understand?
Apr 01, 2016
82: Design Patterns: Double Buffer.
11:05
The double buffer behavioral pattern allows multiple changes to all appear to occur at the same time.
Mar 31, 2016
81: Design Patterns: Visitor.
12:06
The visitor behavioral pattern allows you to perform actions on a collection of different types where the actions depend on the types.
Mar 30, 2016
80: Design Patterns: Template Method.
11:46
The template behavioral pattern allows your derived classes to change certain aspects of the base class behavior without needing to rewrite everything.
Mar 29, 2016
79: Design Patterns: Strategy.
10:02
The strategy behavioral pattern allows you to define multiple ways to perform some action and then select the best approach.
Mar 28, 2016
QA Friday 2016-Mar-25
9:53
What is identity?
Mar 25, 2016
78: Design Patterns: State.
8:21
The state behavioral pattern allows you to simplify your code when you have different modes of operation.
Mar 24, 2016
77: Design Patterns: Observer.
11:55
The observer behavioral pattern allows you to be notified of any changes instead of constantly checking.
Mar 23, 2016
76: Design Patterns: Memento.
8:20
The memento behavioral pattern allows you to save and later restore the state of an object even without full access to all properties.
Mar 22, 2016
75: Design Patterns: Mediator.
9:58
The mediator behavioral pattern allows you to define complex object interactions while still keeping each object simple and unaware of the other objects.
Mar 21, 2016
QA Friday 2016-Mar-18
6:13
How much programming do you need to know before you can call yourself a programmer?
Mar 18, 2016
74: Design Patterns: Iterator.
9:52
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.
Mar 17, 2016
73: Design Patterns: Interpreter.
8:30
The interpreter behavioral pattern allows you to solve common problems by expressing those problems in a simple language.
Mar 16, 2016
72: Design Patterns: Command.
10:47
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.
Mar 15, 2016
71: Design Patterns: Chain Of Responsibility.
8:21
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 there can be more.
Mar 14, 2016
QA Friday 2016-Mar-11
9:25
Why are universities still teaching bubble sort?
Mar 11, 2016
70: Design Patterns: Proxy.
9:24
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.
Mar 10, 2016
69: Design Patterns: Flyweight.
11:24
The flyweight structural pattern allows you to represent more items in your application as class instances without using up all your computer memory.
Mar 09, 2016
68: Design Patterns: Facade.
8:28
The facade structural pattern provides a simplified way for you to interact with a more complicated set of interfaces.
Mar 08, 2016
67: Design Patterns: Decorator.
10:12
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 do not even know they have been changed.
Mar 07, 2016
QA Friday 2016-Mar-04
8:45
What is the rule of three? And related to this: What is the rule of five? And what is the rule of zero?
Mar 04, 2016
66: Design Patterns: Composite.
8:09
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.
Mar 03, 2016
65: Design Patterns: Bridge.
8:23
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 how you're doing something. This is a subtle pattern with a lot of potential.
Mar 02, 2016
64: Design Patterns: Adapter.
9:22
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.
Mar 01, 2016
63: Design Patterns: Abstract Factory.
12:40
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.
Feb 29, 2016
QA Friday 2016-Feb-26
10:08
What is the best way for somebody to learn another programming language?
Feb 26, 2016
62: Design Patterns: Builder.
8:44
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 each other.
Feb 25, 2016
61: Design Patterns: Prototype.
11:00
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 program loads plugins at runtime, then it can benefit from this design pattern.
Feb 24, 2016
60: Design Patterns: Singleton.
9:57
The singleton creational pattern is simple and often used. It is actually used a bit too often so this episode will give you some caution and provide some ideas to modify this pattern when needed.
Feb 23, 2016
59: Design Patterns: Factory.
9:47
When you learn how to make use of design patterns, your software will become more flexible and easier to maintain as new features are added. This episode introduces patterns and then describes the factory pattern.
Feb 22, 2016
QA Friday 2016-Feb-19
8:44
What is syntax and what does it mean for somebody learning a new programming language?
Feb 19, 2016
58: C++ Templates. Types And Values.
11:46
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 do things unheard of in C#. Most C# developers do not even know what they are missing.
Feb 18, 2016
57: C# Generics. Fill In The Blanks.
13:03
If you ever find yourself wanting to duplicate code with just slight changes to adapt it to use a different type, then you will appreciate C# generics. Generic programming is sometimes called template programming because it allows you to write code that will be used later to generate the actual specific code.
Feb 17, 2016
56: C# Exceptions. Finally Required.
10:26
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.
Feb 16, 2016
55: C++ Exceptions. Cannot Be Ignored.
14:22
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.
Feb 15, 2016
QA Friday 2016-Feb-12
9:10
What advice can I provide to help you debug your code?
Feb 12, 2016
54: Recursion. Find Your Base.
14:17
Recursion is powerful and takes a bit of getting used to. It is 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 this topic that scares and confuses a lot of people.
Feb 11, 2016
53: Enumerations And Bit Flags.
13:28
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 single value.
Feb 10, 2016
52: Bits Operations: Shifting.
12:20
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.
Feb 09, 2016
51: Bits Operations: Masking.
14:33
Working with individual bits does not 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. This is called masking.
Feb 08, 2016
QA Friday 2016-Feb-05
11:22
Are strings also a collection? And how are characters represented?
Feb 05, 2016
50: Hexadecimal. Easier Than Binary.
11:49
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 eight bits are hard to read. The zeros and ones blend together. Hexadecimal allows you to work with four bits at a time and is much easier to read.
Feb 04, 2016
49: C++ Preprocessor. This Is Old Magic.
12:28
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 cannot come close to duplicating on its own.
Feb 03, 2016
48: Chaining: Operators, Classes, Calls.
12:33
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.
Feb 02, 2016
47: Operators. Who Goes First?
11:49
Programming languages have a lot of operators. More than most calculators anyway. Do you know what they are? Did you know there is an order to them? This episode explains precedence, associativity, and evaluation order.
Feb 01, 2016
QA Friday 2016-Jan-29
9:29
What types of programmers are there?
Jan 29, 2016
46: Collections: Iterators Part 2.
13:45
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.
Jan 28, 2016
45: Collections: Iterators Part 1.
11:37
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 are structured very differently. An array just needs to move a pointer to the next item. A list needs to follow wherever the next pointer leads. A binary tree needs to go up and down the tree. Iterators give you a common way to navigate no matter what kind of collection you are using.
Jan 27, 2016
44: Collections: Dictionary.
7:31
You will need to be able to work with groups or collections of items. You have choices and this episode continues more than a week long exploration of collection types available. Up today is the dictionary. I will explain what dictionaries are and then give you some guidance on when to use them.
Jan 26, 2016
43: Collections: Hash Table.
10:08
You will need to be able to work with groups or collections of items. You have choices and this episode continues more than a week long exploration of collection types available. Up today is the hash table. I will explain what hash tables are and then give you some guidance on when to use them.
Jan 25, 2016
QA Friday 2016-Jan-22
10:44
What can you expect your job to be like as a new programmer?
Jan 22, 2016
42: Collections: Left-Child Right-Sibling Tree.
10:50
A game that only has one character with one quest and with one shop that sells one item is not going to be very fun. That is why you need to be able to work with collections of items. You have choices and this episode continues more than a week long exploration of collection types available. Up today is the left-child right-sibling tree. I will explain what these trees are and then give you some guidance on when to use them.
Jan 21, 2016
41: Collections: Binary Tree.
15:22
A game that only has one character with one quest and with one shop that sells one item is not going to be very fun. You have choices for storing collections of items and this episode continues more than a week long exploration of collection types available. Up today is the binary tree. I will explain what binary trees are and then give you some guidance on when to use them.
Jan 20, 2016
40: Collections: List.
9:49
You will need to be able to work with groups or collections of items. A game that only has one character with one action and with one opponent is not going to be very fun. Up today is the list. I will explain what lists are and then give you some guidance on when to use them.
Jan 19, 2016
39: Collections: Array.
14:58
You will need to be able to work with groups or collections of items. A game that only has one character with one action and with one opponent is not going to win any awards. First up today is the array. I will explain what arrays are and then give you some guidance on when to use them.
Jan 18, 2016
QA Friday 2016-Jan-15
12:01
How can you prevent denial of service attacks? Most of the techniques you will use to prevent a DOS attack are network related. This podcast is about programming so I will explain some things you can do that will make your software more resistant to attack.
Jan 15, 2016
38: Big-O Notation. How Fast Can You Go?
14:33
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 help you write more efficient code and for some of them could actually mean the difference between your program working vs. never completing at all.
Jan 14, 2016
37: Big-O Notation. Take It To The Limit.
10:56
Big-O notation gives you the ability to describe how fast your code will run if given a large problem. It does not base anything on how fast or slow your computer actually is. It just looks at the steps needed to solve the problem and how they scale as the problem gets bigger.
Jan 13, 2016
36: Logarithms. It’s How Our Bodies Work.
10:27
Have you ever thought about why you cannot see stars during the day? How about why car headlights are so much brighter at night? Or why you can only hear a pin drop in a silent room? All of our body senses are like this. Our body is logarithmic.
Jan 12, 2016
35: Random Numbers Start With A Seed.
9:41
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 want the computer to select various items from a collection. Or maybe you want to simulate the randomness of rolling dice. This episode explains how to do this.
Jan 11, 2016
QA Friday 2016-Jan-08
10:57
What are denial of service attacks? The datacenter that hosts the Take Up Code podcast was put under so much stress due to a coordinated attack that the the entire datacenter had to be taken offline for several days while measures were taken to combat the attack. What happened? And what was done to make it better? That is what I am going to begin explaining today.
Jan 08, 2016
34: C# Casting. Only Frogs Can Be Frogs.
6:42
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 is ready to throw an InvalidCastException. But even if you do not hit an exception, there are some things you should be aware of. This is still casting.
Jan 07, 2016
33: C++ Casting. Turn Your Object Into A Frog.
12:04
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 go the other way, from base class to derived class? These are the topics I will be explaining today.
Jan 06, 2016
32: Static Methods And Data. Always Available.
8:45
Declaring methods inside classes is great but what do you do when you want a method you can call anytime? If you are using C++, then just write a method. But if you still want your method in a class or if you are using C# where all methods need to be in classes, then you will need to make your method static. And you can declare static data too. What does that do?
Jan 05, 2016
31: Getters And Setters Keep It Together.
8:36
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 is the difference between a field and a property? This episode will help you get and set your data members.
Jan 04, 2016
QA Friday 2016-Jan-01
9:38
How are namespaces and include files related and why do we need both?
Jan 01, 2016
30: Interfaces. The Software Contract.
6:51
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 is up to them. Declaring support for an interface signals that they do this. You can have what might be completely unrelated classes all supporting the same interface which then allows you to work with them in the same way.
Dec 31, 2015
29: Abstract Classes. Incomplete On Their Own.
6:41
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? That it must always exist as a base class for some other class? All you have to do is make your class abstract. Then it can only be instantiated as part of another class that derives from your class. This episode will explain why you might want to do this and how.
Dec 30, 2015
28: Composition. The Has-A Relationship.
9:16
Composition allows you to specify very different kinds of relationships between classes. This is sometimes also called containment. If you are building a racing game and have a car class and a wheel class, you would not want to say that cars are wheels but instead that cars have wheels. Proper use of composition will even allow you to substitute what kind of wheels your cars have. This can not only simplify your designs but make your code easier to test.
Dec 29, 2015
27: Multiple Inheritance. Often Banned.
8:41
C++ gives you the power to do great things and multiple inheritance is one of the most powerful tools you will have. This does not mean that you should always use it. Use it when it is the right tool for the job just like any other tool. I will show you in this episode how to use multiple inheritance properly.
Dec 28, 2015
QA Friday 2015-Dec-25
7:04
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 large application like might be found in a major software company.
Dec 25, 2015
26: Inheritance. When To Use Private.
7:48
This is an advanced C++ topic so do not get worried if it is difficult right now. You will 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: beyond the scope of this book. I will do my best to explain this concept because that is what this podcast is all about. You get to learn from my experience.
Dec 24, 2015
25: Inheritance. Overriding Methods.
12:49
Declaring that a class is another class type is only part of the reason to use inheritance. It is 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 class that derives from a base class, you can actually change the behavior of the base class methods to adapt them to the specific needs of the new derived class.
Dec 23, 2015
24: Inheritance. The Is-A Relationship.
9:05
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 languages have restricted inheritance. This episode will not only explain what inheritance is but give you some guidance on how to use it wisely.
Dec 22, 2015
23: Access Control. Employees Only.
11:02
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 do not have to worry about it, right? Learning proper access control will help you write code that is actually easier to understand and easier to use. This episode will explain why.
Dec 21, 2015
QA Friday 2015-Dec-18
8:44
What are logical operators? I sometimes find this question asked online and thought it would be good to explore. There are only three and you might think you already know how to understand them. But have you heard of short circuit evaluations? If you do not fully understand how logical operations can sometimes exit early, then at best, you are going to write some inefficient code. And most likely, you are going to introduce some hard to find bugs.
Dec 18, 2015
22: C# Creating And Disposing Instances.
11:15
Creating instances in C# is a bit different because there is a difference between value types and reference types. You will be able to navigate your objects with ease after this episode.
Dec 17, 2015
21: C++ Creating And Deleting Instances.
11:49
You are ready now to apply what you have 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 are going to again focus on just C++ first and then explore C# tomorrow.
Dec 16, 2015
20: C# Destructors and IDisposable.
7:25
C# calls them finalizers and that is 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 do not need to worry about leaking memory anymore. This is called garbage collection. The problem with this is that you now have other things to worry about.
Dec 15, 2015
19: C++ Destructors. Simply Reliable.
8:16
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 are going to look at C++ destructors.
Dec 14, 2015
QA Friday 2015-Dec-11
6:44
What is the best way to handle errors? Things will not always go the way you expect and you are 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 will be glad you listened.
Dec 11, 2015
18: Constructors.
9:51
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.
Dec 10, 2015
17: Object-Oriented Programming. The Next Level.
6:35
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 am teaching programming, I do not start out with this topic right away but I do recommend that you learn it as soon as possible because you will need to get used to a new way of thinking about your software designs.
Dec 09, 2015
16: In Or Out Of Scope?
7:14
Scope is another concept that is amazingly similar to your everyday experience. Imagine you are at home and ask your mom, Where are my slippers? You mom says, Upstairs. That is scope. And you need to understand it to program. Let me explain.
Dec 08, 2015
15: Let’s Program A Game! Part 3.
7:32
So far, our game does not do much and we are going to fix that. The most important thing for you to realize is that when you are programming, you are not going to write your final code at the very beginning. I know, I have said this before, but I cannot say this enough. Programming is a journey.
Dec 07, 2015
QA Friday 2015-Dec-04
4:51
In the last live weekend programming class, I created a variable called scrambledWord and then later created a method called scrambleWord. What do you do in this situation? Is this okay?
Dec 04, 2015
14: Let’s Program A Game! Part 2.
6:01
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.
Dec 03, 2015
13: Let’s Program A Game! Part 1.
8:59
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.
Dec 02, 2015
12: References Are More Than Just Pointers.
7:17
References behave a lot like pointers and are what many language designers use when trying to claim that their language is simpler because it avoids pointers. Do not fall for it. Take the time to learn pointers and references properly and you will build a foundation that will serve you well in all your future projects. This episode has a bias towards C++.
Dec 01, 2015
11: There’s A Method For All This.
11:26
We talk about methods in this episode. There are many kinds of methods and we will need to split this topic into multiple episodes. I will explain how methods are called and how they return when they are done. And a bit about how viruses can sneak in and gain control.
Nov 30, 2015
QA Friday 2015-Nov-27
4:36
The question this week 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 that all speak a language other than English?
Nov 27, 2015
10: Double Pointers! The Pattern Continues.
9:57
A double pointer is nothing more than a pointer to another pointer. It is possible to continue this pattern indefinitely having pointers to pointers to pointers, and so on. But you will rarely need more than a double pointer.
Nov 26, 2015
9: Pointer Arithmetic. This Is Easy!
8:06
Now that you know how a pointer can be used to separate groups of items, I am 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.
Nov 25, 2015
8: Pointers! Computers Use Them Too.
6:50
If there is one thing that scares people more than void, it has got to be pointers. And rightfully so if they are misused or you get somebody trying to explain them who is already uncomfortable with them. This episode is going to rip the bandage off quick so we can move past this topic and soon you will wonder what all the fuss was about. I mean, really, we point to things all the time. Computers are just copying what we have been doing since childhood.
Nov 24, 2015
7: Into The Void.
14:21
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.
Nov 23, 2015
QA Friday 2015-Nov-20
7:35
The question this week comes from Scott S. who wants to know what are all the files that get created when building an application.
Nov 20, 2015
6: Just In Time.
10:32
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.
Nov 19, 2015
5: Interpreted Or Compiled?
9:14
Some languages are interpreted and some are compiled. Knowing how your code behaves will allow you to select the best tool for the job.
Nov 18, 2015
4: From Binary To GUIs. Part 2.
9:05
You have 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?
Nov 17, 2015
3: From Binary To GUIs. Part 1.
9:46
You have 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?
Nov 16, 2015
2: What Is Programming?
11:56
This episode will explain different types of programming in terms that you will be familiar with and then relate everything to computer programming concepts.
Nov 14, 2015
1: How To Start Programming.
8:49
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.
Nov 14, 2015
0: Why Take Up Code?
9:09
This first episode introduces the Take Up Code podcast and what you can expect. And really, it is here to answer the question, Why Take Up Code?
Nov 14, 2015