Take Up Code

Take Up Code

www.takeupcode.com
Learn hard-core computer programming with fun episodes that you can relate to.


261: CppCon: Interview With Conor Hoekstra About C++ Algorithms And Ranges.
Sep 25, 2019 • 11 min
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…
260: CppCon: Interview With Josh Lospinoso About The Book C++ Crash Course.
Sep 25, 2019 • 11 min
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…
259: CppCon: Interview With Asad Naweed About Augmented Reality.
Sep 24, 2019 • 13 min
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…
258: CppCon: Interview With Nicolai Josuttis About How The C++ Standardization Has Changed Over The Years.
Sep 24, 2019 • 13 min
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…
257: CppCon: Interview With Sean Hale About Becoming A Software Developer Without A Degree In Computer Science.
Sep 23, 2019 • 15 min
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…
256: What Is Hurting Your Effort To Learn Coding? How To Improve Your Learning With One Simple Trick I Discovered By Accident.
Sep 23, 2019 • 5 min
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…
255: How To Avoid Small Choices And Design Your Application To Scale Big.
Sep 22, 2019 • 6 min
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…
254: GameDev: How To Use Noise To Procedurally Generate Maps And Landscape.
Sep 2, 2019 • 11 min
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…
253: Creative Ways To Use C++ Curly Braces Beyond Just Functions And Loops.
Sep 2, 2019 • 6 min
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…
252: How To Handle Frustration When Learning To Code.
Sep 2, 2019 • 5 min
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…
251: What Happens When Code Has Undefined Behavior?
Sep 2, 2019 • 7 min
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…
250: GameDev: Design Patterns: Entity Component System.
Dec 9, 2018 • 7 min
This design pattern will help you make sense of your game design as it gets bigger.
249: GameDev: Floating Point: Zero, Infinity, NaN.
Nov 25, 2018 • 6 min
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.
248: GameDev: Special Offer: Free Advanced Game Building Bonus.
Nov 18, 2018 • 9 min
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?
247: GameDev: 1.1 Plus 2.2 Is Not 3.3. What?
Nov 11, 2018 • 9 min
Be careful with floating point numbers when building games.
246: GameDev: Points Vs. Vectors. Which Should You Use?
Oct 28, 2018 • 8 min
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.
245: GameDev: Points, Lines, Planes, Dimensions, and Normals.
Oct 14, 2018 • 11 min
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.
244: CppCon: What Did I Learn? And What Will Help You?
Oct 1, 2018 • 8 min
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.
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.
Sep 17, 2018 • 11 min
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.
242: In The End, It’s You Vs. You.
Sep 3, 2018 • 5 min
In the end, it is you vs. you. Is this about living or dying?
241: How To Use Raw Pointers Properly And Still Avoid Crashes.
Aug 20, 2018 • 12 min
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.
240: Video Game Update: Introducing The TUCUT Library.
Aug 6, 2018 • 9 min
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.
239: What 20 Percent Of Topics Should You Focus On?
Jul 23, 2018 • 6 min
There is a lot you can learn about programming. But do you need to know it all?
238: Filesystem: Recent WordPress Attack Lets Editors Take Over.
Jul 8, 2018 • 9 min
This is a real example of how the filesystem can be used to take over a Wordpress website.
237: Filesystem: How To Avoid Security Vulnerabilities. Part 3.
Jun 24, 2018 • 9 min
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.
236: Filesystem: How To Avoid Security Vulnerabilities. Part 2.
Jun 10, 2018 • 8 min
Run your program with the least permissions possible.
235: Filesystem: How To Avoid Security Vulnerabilities. Part 1.
May 28, 2018 • 9 min
When it comes to security, it is better to learn from examples.
234: Filesystem: Journaling Keeps Your Filesystem Intact.
May 14, 2018 • 8 min
Journaling records extra information in case there are problems.
233: Schedule Changes To Support Take Up Code.
Apr 30, 2018 • 5 min
The Take Up Code podcast needs your support.
232: Filesystem: Linking Explained: Symbolic, Soft, Hard, Junction.
Apr 23, 2018 • 12 min
Filesystems allow you to refer to refer to your content with different names.
231: Filesystem: Metadata Holds More Information.
Apr 16, 2018 • 10 min
Metadata provides information about your files.
230: Filesystem: What Can They Do? Part 4.
Apr 9, 2018 • 14 min
There is a special type of filesystem used to swap memory.
229: Filesystem: What Can They Do? Part 3.
Apr 2, 2018 • 13 min
Access control lists provide more security options.
228: Filesystem: What Can They Do? Part 2.
Mar 26, 2018 • 9 min
Security is a big part of filesystems.
227: Filesystem: What Can They Do? Part 1.
Mar 19, 2018 • 14 min
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…
226: Filesystem: CHS vs. LBA Modes.
Mar 12, 2018 • 12 min
Cylinder, Head, Sector or CHS vs. Logical Block Addressing or LBA give you two ways to find data on a disk.
225: Filesystem: Partitions Allow You To Divide Your Disks.
Mar 5, 2018 • 8 min
Dividing your disks into partitions allows you to use each partition for separate tasks.
224: Filesystem: Drive Letters, Mounting, And Paths. Part 2.
Feb 25, 2018 • 9 min
How are filesystem organized with multiple drives?
223: Filesystem: Drive Letters, Mounting, And Paths. Part 1.
Feb 19, 2018 • 10 min
How are filesystem organized with multiple drives?
222: Filesystem: Why Should You Learn To Use It?
Feb 12, 2018 • 10 min
Understanding how to use the filesystem will allow you to add common and expected features to your apps.
221: Be Careful Of Changes In Code Abstraction.
Feb 5, 2018 • 6 min
The code you write should follow a similar level of detail.
220: One Of These Things Is Not Like The Others.
Jan 29, 2018 • 6 min
Finding differences will help you make sense of your code.
219: C++ RAII Sounds Complicated But Simplifies Your Code.
Jan 22, 2018 • 8 min
Resource allocation is initialization or RAII for short may be hard to pronounce but will help you write better and simpler code.
218: C++ Used To Program Video Games.
Jan 15, 2018 • 8 min
Why is C++ such a good choice for writing games?
217: How To Start Building a Video Game. Part 7.
Jan 7, 2018 • 7 min
Work on the toughest problems first. And if you cannot solve them, then find a way around.
216: How To Start Building a Video Game. Part 6.
Dec 31, 2017 • 10 min
How is a video game different than any other application?
215: How To Start Building a Video Game. Part 5.
Dec 25, 2017 • 6 min
We all want to think big. But to get there, we need to think small.
214: How To Start Building a Video Game. Part 4.
Dec 18, 2017 • 8 min
You can take advantage of libraries and frameworks.
213: How To Start Building a Video Game. Part 3.
Dec 11, 2017 • 9 min
What role will data play in your game?
212: How To Start Building a Video Game. Part 2.
Dec 4, 2017 • 10 min
How do you make your idea more specific?
211: How To Start Building a Video Game. Part 1.
Nov 27, 2017 • 11 min
You have a vague idea for a new video game. Where do you begin?
210: Shiny Projects And Distractions.
Nov 20, 2017 • 10 min
When is it okay to switch to a different project?
209: CSS: Cascading Style Sheets Tutorial. Part 2.
Nov 13, 2017 • 11 min
Cascading Style Sheets let you manage how your HTML looks so you can keep your HTML focused on the content.
208: CSS: Cascading Style Sheets Tutorial. Part 1.
Nov 6, 2017 • 8 min
Cascading Style Sheets let you manage how your HTML looks so you can keep your HTML focused on the content.
207: Trees: AST: Abstract Syntax Tree. A Simple Example.
Oct 30, 2017 • 16 min
An abstract syntax tree can help your code make sense of what a user provides.
206: Collections: Stack.
Oct 23, 2017 • 6 min
You can use a stack when you need to remember something and only ever need the last thing.
205: Trees: What Can You Do With Them?
Oct 16, 2017 • 14 min
What other things can trees help you to solve?
204: This Is Terrible, You Gotta Start Anyway.
Oct 9, 2017 • 10 min
Have you ever created something and then thought about how bad it was? What did you do?
203: Trees: Why Use Them?
Oct 2, 2017 • 8 min
Why should you consider using trees?
202: Graphs vs. Trees vs. Hierarchies: Compared.
Sep 25, 2017 • 12 min
Before exploring HTML and CSS further, you are going to need to understand graphs, trees, and hierarchies.
201: HTML: Caching Generated Output For Speed.
Sep 18, 2017 • 10 min
Now that you can generate HTML, why would you ever want to go back to the old way of unchanging HTML?
200: HTML: Can Be Generated By A Web Server.
Sep 11, 2017 • 7 min
A modern website is more than just a collection of some HTML pages.
199: HTML: How To: Simple Formatting.
Sep 4, 2017 • 9 min
You will learn how to use HTML to format your text into headings, paragraphs, and lists in this episode.
198: HTML: Semantic Meaning.
Aug 28, 2017 • 6 min
Does markup have any specific meaning that can be understood?
197: HTML: The Bigger Picture.
Aug 21, 2017 • 8 min
You need to know more than how HTML tags work. There is a structure that HTML documents should follow.
196: HTML: How Does Markup Work?
Aug 14, 2017 • 12 min
How does HTML markup enable you to create web pages?
195: HTML: Is This Programming?
Aug 7, 2017 • 8 min
You can use HTML to present information or build web pages. But it is not programming.
194: How Can You Tell Good Teachers From Fake?
Jul 31, 2017 • 7 min
What criteria do you use to determine if somebody is faking their skills as a teacher?
193: Kids Either Leave or Go to Jail.
Jul 24, 2017 • 6 min
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.
192: Developer Bootcamps and Coding Schools: Doomed or Thriving?
Jul 17, 2017 • 13 min
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?
191: Git: Keep Track Of Your Files As They Change. Part 6.
Jul 10, 2017 • 8 min
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.
190: Git: Keep Track Of Your Files As They Change. Part 5.
Jul 3, 2017 • 11 min
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.
189: Git: Keep Track Of Your Files As They Change. Part 4.
Jun 26, 2017 • 8 min
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.
188: Git: Keep Track Of Your Files As They Change. Part 3.
Jun 19, 2017 • 16 min
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.
187: Git: Keep Track Of Your Files As They Change. Part 2.
Jun 12, 2017 • 9 min
Programming involves change and managing that change is the only way to make sense of it.
186: Git: Keep Track Of Your Files As They Change. Part 1.
Jun 5, 2017 • 11 min
Programming involves change and managing that change is the only way to make sense of it.
185: Working Remotely: No More Trading Schedules.
May 29, 2017 • 10 min
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?
184: Basic Electronics: Transistors Can Act Like Switches.
May 22, 2017 • 10 min
We normally think of something as either a conductor of electricity or an insulator.
183: Digital Electronics: Microcontrollers Ready To Use.
May 15, 2017 • 7 min
Unlike microprocessors, microcontrollers can be used all by themselves.
182: Digital Electronics: Microprocessor Speed And Clocks.
May 8, 2017 • 7 min
What are microprocessors and how have they changed?
181: Basic Electronics: Voltage Dividers.
May 1, 2017 • 4 min
You can use resistors to divide voltage.
180: Basic Electronics: Series And Parallel.
Apr 24, 2017 • 7 min
Have you ever wondered why batteries sometimes need to be inserted in alternating directions?
179: Basic Electronics: Capacitance.
Apr 17, 2017 • 8 min
Do you know how your touch screen works?
178: Basic Electronics: Magnetic Fields And Current.
Apr 10, 2017 • 7 min
Moving charge produces a magnetic field and a moving magnetic field produces current.
177: Basic Electronics: AC/DC: Alternating Vs. Direct Current
Apr 3, 2017 • 6 min
Do you know where the nearest power plant is?
176: Basic Electronics: Voltage, Current, Resistance.
Mar 27, 2017 • 11 min
Knowing some basic electronics helps you become a better programmer.
175: Multiplexing: Many Over One.
Mar 20, 2017 • 6 min
How do you send multiple messages across a single channel?
174: Error Correction: Hamming Distance And Codes.
Mar 13, 2017 • 8 min
How do you correct errors once you identify them?
173: HMAC: Keyed Hashed Message Authentication Code.
Mar 6, 2017 • 9 min
How do you stop an attacker from just changing a hash?
172: Hashes Offer The Best Error Detection.
Feb 27, 2017 • 9 min
If you receive some information, how do you know if it is intact or has been changed?
171: Checksums Offer Better Error Detection.
Feb 20, 2017 • 12 min
If you receive some information, how do you know if it is intact or has been changed?
170: Parity: Simple And Fast Error Detection.
Feb 13, 2017 • 9 min
If you receive some information, how do you know if it is intact or has been changed?
169: Your Guide To Computer Programming. Part 4 of 4.
Feb 6, 2017 • 8 min
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
168: Your Guide To Computer Programming. Part 3 of 4.
Jan 30, 2017 • 9 min
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
167: Your Guide To Computer Programming. Part 2 of 4.
Jan 23, 2017 • 10 min
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
166: Your Guide To Computer Programming. Part 1 of 4.
Jan 16, 2017 • 9 min
Why should you learn how to program? What is programming? What specific steps can you take? How can you apply programming?
165: Sockets And Ports: The Hidden Pieces.
Jan 9, 2017 • 11 min
How does one application communicate with another application?
164: SCTP vs. TCP vs. UDP
Jan 2, 2017 • 8 min
You will learn more about the strengths of the SCTP, TCP, and UDP protocols by comparing them.
163: SCTP: Stream Control Transmission Protocol.
Dec 26, 2016 • 8 min
SCTP is another protocol like TCP and UDP with aspects of both.
162: OSI Model: Seven Layers of Communication.
Dec 19, 2016 • 5 min
The OSI model will help you understand how computers communicate.
161: MAC: Media Access Control Address.
Dec 12, 2016 • 9 min
A MAC address is a physical address unique to your computer.
160: UDP: User Datagram Protocol.
Dec 5, 2016 • 6 min
Sometimes speed and simplicity are more important than reliability.
159: TCP: Transmission Control Protocol.
Nov 28, 2016 • 8 min
Knowing where to send information through IP is not enough. You have to know how to reliably send information too.
158: IP: Internet Protocol Addresses.
Nov 21, 2016 • 9 min
Any computer or device that wants to communicate with the Internet Protocol needs an IP address to uniquely identify the device.
157: DNS: Domain Name System.
Nov 14, 2016 • 9 min
Why do we need a system for managing domain names?
156: URLs, URNs, URCs, Data URIs, and URIs.
Nov 7, 2016 • 12 min
It is almost a tongue twister to say them all. Do you know what they all mean?
155: HTML vs. HTTP: How Do They Compare?
Oct 31, 2016 • 7 min
There is more than just two letters difference. In fact, you can not really compare them at all. But you can use them together.
154: Data: JSON JavaScript Object Notation.
Oct 24, 2016 • 5 min
Like XML, JSON is also a way to represent data that is readable by both humans and computers.
153: Data: XML Extensible Markup Language.
Oct 17, 2016 • 8 min
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.
152: Distributed Computing: APIs Have Changed.
Oct 10, 2016 • 9 min
You might be more familiar with APIs than SOA but they had another meaning not very long ago.
151: The More You Learn.
Oct 3, 2016 • 7 min
As you learn more about something, a strange thing happens. It becomes obvious how much more there is to still be learned.
150: Distributed Computing: SOA
Sep 26, 2016 • 6 min
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.
149: Step By Step Perfection.
Sep 19, 2016 • 10 min
Knowing where to spend your time and focus will help you finish projects without getting stuck in details.
148: CAP Theorem: Choose Two, Or Is It One?
Sep 12, 2016 • 8 min
Consistency, Availability, and Partition Tolerance are three aspects of distributed computing. And a fourth not included in the theorem is Latency.
147: Distributed Computing: Ready? Yes. Done.
Sep 5, 2016 • 8 min
Two-phase and three-phase commits will help you design solutions that need to work across multiple computers.
146: Distributed Computing: It Happened When?
Aug 29, 2016 • 10 min
Computers rely on clocks. They coordinate everything. But the clocks on different computers can be slightly off from each other.
QA Friday 2016-Aug-26
Aug 26, 2016 • 7 min
What can you do to improve your concentration?
145: Distributed Computing: Four Reasons.
Aug 22, 2016 • 11 min
Dividing work between multiple computers is sometimes the best way to solve a problem.
QA Friday 2016-Aug-19
Aug 19, 2016 • 6 min
How do you concentrate?
144: Data Types: C++ nullptr Is Not Zero.
Aug 15, 2016 • 8 min
nullptr represents a null pointer and while it has a value of zero, the type is not the same.
QA Friday 2016-Aug-12
Aug 12, 2016 • 7 min
When should I create a new class?
143: Where And How To Use Whitespace.
Aug 8, 2016 • 9 min
Making code more readable sometimes means knowing where to put nothing.
QA Friday 2016-Aug-05
Aug 5, 2016 • 8 min
Regulations say that you can only have one floor mat.
142: Comments. Focus On Why.
Aug 1, 2016 • 9 min
Comments are important but do not forget that your code should also be self-commenting.
QA Friday 2016-Jul-29
Jul 29, 2016 • 9 min
Where are your certifications? Do you have a degree?
141: Reference Counting. Still In Use!
Jul 25, 2016 • 13 min
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.
QA Friday 2016-Jul-22
Jul 22, 2016 • 9 min
What is your biggest weakness? Things around us change and we each grow and change too.
140: Name Mangling and Overloaded Methods.
Jul 18, 2016 • 9 min
You normally do not have to worry about name mangling. But you should know what it is.
QA Friday 2016-Jul-15
Jul 15, 2016 • 7 min
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.
139: Data Types: C++ Decltype. Declared Types.
Jul 11, 2016 • 9 min
Sometimes you need to declare a type to be the same as something else.
QA Friday 2016-Jul-08
Jul 8, 2016 • 6 min
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.
138: Data Types: Lvalues And Rvalues.
Jul 7, 2016 • 10 min
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.
137: Data Types: Auto or Var. The Compiler Chooses.
Jul 6, 2016 • 9 min
Auto and var types do have a type. The compiler will figure out what that is.
136: Data Types: Variant. Pick One.
Jul 5, 2016 • 7 min
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.
135: Data Types: GUIDs Globally Unique Identifiers.
Jul 4, 2016 • 9 min
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.
QA Friday 2016-Jul-01
Jul 1, 2016 • 9 min
I always feel pressure and embarrassment when doing code reviews. What should I do?
134: Data Types: C++ Function Binders.
Jun 30, 2016 • 8 min
Binders make up part of functional composition that allows you to adapt functions and combine them into new functions.
133: Data Types: Regular Expressions.
Jun 29, 2016 • 10 min
A regular expression or regex lets you perform the advanced text operations matching, searching, tokenizing, and replacing.
132: Data Types: Lambdas.
Jun 28, 2016 • 11 min
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.
131: Data Types: Function Pointers Part 2.
Jun 27, 2016 • 13 min
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.
QA Friday 2016-Jun-24
Jun 24, 2016 • 9 min
What is data binding?
130: Data Types: Function Pointers Part 1.
Jun 23, 2016 • 8 min
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.
129: Data Types: Function Objects Part 2.
Jun 22, 2016 • 10 min
Function objects are simple but do not let that fool you. You can use them in clever solutions.
128: Data Types: Function Objects Part 1.
Jun 21, 2016 • 8 min
Function objects are simple but do not let that fool you. You can use them in clever solutions.
127: Data Types: Smart Pointers Part 2.
Jun 20, 2016 • 12 min
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.
QA Friday 2016-Jun-17
Jun 17, 2016 • 6 min
What is runtime binding?
126: Data Types: Smart Pointers Part 1.
Jun 16, 2016 • 8 min
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.
125: Data Types: Streams Part 2.
Jun 15, 2016 • 9 min
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.
124: Data Types: Streams Part 1.
Jun 14, 2016 • 9 min
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.
123: Data Types: Tuples.
Jun 13, 2016 • 9 min
Sometimes you need to bundle things together so you can treat them as a single unit. That is what the tuple provides.
QA Friday 2016-Jun-10
Jun 10, 2016 • 7 min
When should I use a reference and when should I use a pointer?
122: Data Types: DateTimes Part 5 C++.
Jun 9, 2016 • 11 min
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.
121: Data Types: DateTimes Part 4.
Jun 8, 2016 • 11 min
Dates and times are a lot more complicated than we normally realize. This episodes explains durations.
120: Data Types: DateTimes Part 3 C#.
Jun 7, 2016 • 10 min
So you think you know how to use the DateTime struct in C#? You might be surprised.
119: Data Types: DateTimes Part 2.
Jun 6, 2016 • 17 min
Dates and times are a lot more complicated than we normally realize. Having a specific data type to manage all the details is crucial.
QA Friday 2016-Jun-03
Jun 3, 2016 • 11 min
Do I really have to follow software licenses?
118: Data Types: DateTimes Part 1.
Jun 2, 2016 • 14 min
Dates and times are a lot more complicated than we normally realize. Having a specific data type to manage all the details is crucial.
117: Data Types: Decimals.
Jun 1, 2016 • 11 min
If you need floating point values but find the accuracy of floats and even doubles to cause problems, then consider using the decimal type.
116: Data Types: Strings Part 3.
May 31, 2016 • 17 min
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.
115: Data Types: Strings Part 2.
May 30, 2016 • 15 min
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.
QA Friday 2016-May-27
May 27, 2016 • 7 min
Is there any point in learning how to code when I can just use the source code from another app?
114: Data Types: Strings Part 1.
May 26, 2016 • 16 min
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.
113: Data Types: Arrays.
May 25, 2016 • 13 min
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?
112: Data Types: Floats.
May 24, 2016 • 10 min
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.
111: Data Types: Enums.
May 23, 2016 • 10 min
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.
QA Friday 2016-May-20
May 20, 2016 • 8 min
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?
110: Data Types: Void And Bool.
May 19, 2016 • 12 min
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.
109: Data Types: Ints Part 2.
May 18, 2016 • 16 min
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.
108: Data Types: Ints Part 1.
May 17, 2016 • 12 min
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.
107: Data Types: Chars And Bytes.
May 16, 2016 • 10 min
Chars and bytes form some of the most basic data types available. But what are they really? And what can you do with them?
QA Friday 2016-May-13
May 13, 2016 • 5 min
How do I use my foundational skills in programming to start making useful software?
106: Multithreading. Call Me Back Please.
May 12, 2016 • 11 min
Callback methods can also be either synchronous or asynchronous and add a whole new dimension to how you can approach problems.
105: Multithreading. Sync vs. Async.
May 11, 2016 • 9 min
What are synchronous and asynchronous methods and how do you use them?
104: Multithreading. Singleton Mistakes.
May 10, 2016 • 11 min
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…
103: Multithreading. Volatile.
May 9, 2016 • 10 min
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.
QA Friday 2016-May-06
May 6, 2016 • 9 min
Do it in place. What does that mean?
102: Multithreading. Up And Down.
May 5, 2016 • 9 min
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.
101: Multithreading. Signal And Wait.
May 4, 2016 • 13 min
Semaphores are often confused and characterized as just a more general form of a mutex. There are actually some big differences though.
100: Multithreading. Master The Lock.
May 3, 2016 • 13 min
This episode dives deep into locks. How do they work? And then explains how you can use this to implement a reader-writer lock.
99: Multithreading. Cache Lines.
May 2, 2016 • 9 min
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.
QA Friday 2016-Apr-29
Apr 29, 2016 • 6 min
Do you get more value out of articles, videos, or podcasts?
98: Multithreading. The Great Divide.
Apr 28, 2016 • 8 min
How do you assign work to threads? This episode explains several ways you can think about this and when to use them.
97: Multithreading. The Big Event.
Apr 27, 2016 • 8 min
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.
96: Multithreading. Thoughtful Designs.
Apr 26, 2016 • 10 min
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.
95: Multithreading. When Neither Side Budges.
Apr 25, 2016 • 11 min
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.
QA Friday 2016-Apr-22
Apr 22, 2016 • 8 min
What makes a good personal programming side project?
94: Multithreading. The Race Is On.
Apr 21, 2016 • 13 min
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.
93: Multithreading. When Should You Use It?
Apr 20, 2016 • 9 min
Do you know when to use multithreading? What are the advantages and disadvantages?
92: Multithreading. Why Should You Care?
Apr 19, 2016 • 10 min
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…
91: Round Robin. Nobody Starves.
Apr 18, 2016 • 10 min
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.
QA Friday 2016-Apr-15
Apr 15, 2016 • 8 min
After working 8 hours, how can I learn to program in the evening?
90: Design Patterns: Object Pool.
Apr 14, 2016 • 11 min
The object pool behavioral pattern allows you to reuse objects instead of destroying them and creating them again.
89: Design Patterns: Dirty Flag.
Apr 13, 2016 • 11 min
The dirty flag behavioral pattern allows you to avoid expensive operations that would just need to be done again anyway.
88: Design Patterns: Service Locator.
Apr 12, 2016 • 11 min
The service locator behavioral pattern allows you to make use of an interface without knowing what class implements the interface.
87: Design Patterns: Event Queue.
Apr 11, 2016 • 14 min
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.
QA Friday 2016-Apr-08
Apr 8, 2016 • 8 min
Can I learn programming if I am stupid?
86: Design Patterns: Component.
Apr 7, 2016 • 12 min
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.
85: Design Patterns: Subclass Method.
Apr 6, 2016 • 10 min
The subclass method behavioral pattern allows many different subclasses to define their own behavior while reusing common functionality from the base class.
84: Design Patterns: Update Method.
Apr 5, 2016 • 11 min
The update method behavioral pattern works with the previous game loop pattern and lets you manage the behavior of multiple game characters.
83: Design Patterns: Game Loop.
Apr 4, 2016 • 15 min
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.
QA Friday 2016-Apr-01
Apr 1, 2016 • 11 min
How do you make a design easy to understand?
82: Design Patterns: Double Buffer.
Mar 31, 2016 • 11 min
The double buffer behavioral pattern allows multiple changes to all appear to occur at the same time.
81: Design Patterns: Visitor.
Mar 30, 2016 • 12 min
The visitor behavioral pattern allows you to perform actions on a collection of different types where the actions depend on the types.
80: Design Patterns: Template Method.
Mar 29, 2016 • 11 min
The template behavioral pattern allows your derived classes to change certain aspects of the base class behavior without needing to rewrite everything.
79: Design Patterns: Strategy.
Mar 28, 2016 • 10 min
The strategy behavioral pattern allows you to define multiple ways to perform some action and then select the best approach.
QA Friday 2016-Mar-25
Mar 25, 2016 • 9 min
What is identity?
78: Design Patterns: State.
Mar 24, 2016 • 8 min
The state behavioral pattern allows you to simplify your code when you have different modes of operation.
77: Design Patterns: Observer.
Mar 23, 2016 • 11 min
The observer behavioral pattern allows you to be notified of any changes instead of constantly checking.
76: Design Patterns: Memento.
Mar 22, 2016 • 8 min
The memento behavioral pattern allows you to save and later restore the state of an object even without full access to all properties.
75: Design Patterns: Mediator.
Mar 21, 2016 • 9 min
The mediator behavioral pattern allows you to define complex object interactions while still keeping each object simple and unaware of the other objects.
QA Friday 2016-Mar-18
Mar 18, 2016 • 6 min
How much programming do you need to know before you can call yourself a programmer?
74: Design Patterns: Iterator.
Mar 17, 2016 • 9 min
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.
73: Design Patterns: Interpreter.
Mar 16, 2016 • 8 min
The interpreter behavioral pattern allows you to solve common problems by expressing those problems in a simple language.
72: Design Patterns: Command.
Mar 15, 2016 • 10 min
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.
71: Design Patterns: Chain Of Responsibility.
Mar 14, 2016 • 8 min
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…
QA Friday 2016-Mar-11
Mar 11, 2016 • 9 min
Why are universities still teaching bubble sort?
70: Design Patterns: Proxy.
Mar 10, 2016 • 9 min
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.
69: Design Patterns: Flyweight.
Mar 9, 2016 • 11 min
The flyweight structural pattern allows you to represent more items in your application as class instances without using up all your computer memory.
68: Design Patterns: Facade.
Mar 8, 2016 • 8 min
The facade structural pattern provides a simplified way for you to interact with a more complicated set of interfaces.
67: Design Patterns: Decorator.
Mar 7, 2016 • 10 min
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.
QA Friday 2016-Mar-04
Mar 4, 2016 • 8 min
What is the rule of three? And related to this: What is the rule of five? And what is the rule of zero?
66: Design Patterns: Composite.
Mar 3, 2016 • 8 min
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.
65: Design Patterns: Bridge.
Mar 2, 2016 • 8 min
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…
64: Design Patterns: Adapter.
Mar 1, 2016 • 9 min
The adapter structural pattern allows you to change the interface of an object. This lets you reuse code that would not normally fit into your design.
63: Design Patterns: Abstract Factory.
Feb 29, 2016 • 12 min
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.
QA Friday 2016-Feb-26
Feb 26, 2016 • 10 min
What is the best way for somebody to learn another programming language?
62: Design Patterns: Builder.
Feb 25, 2016 • 8 min
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…
61: Design Patterns: Prototype.
Feb 24, 2016 • 11 min
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…
60: Design Patterns: Singleton.
Feb 23, 2016 • 9 min
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.
59: Design Patterns: Factory.
Feb 22, 2016 • 9 min
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.
QA Friday 2016-Feb-19
Feb 19, 2016 • 8 min
What is syntax and what does it mean for somebody learning a new programming language?
58: C++ Templates. Types And Values.
Feb 18, 2016 • 11 min
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…
57: C# Generics. Fill In The Blanks.
Feb 17, 2016 • 13 min
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…
56: C# Exceptions. Finally Required.
Feb 16, 2016 • 10 min
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.
55: C++ Exceptions. Cannot Be Ignored.
Feb 15, 2016 • 14 min
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.
QA Friday 2016-Feb-12
Feb 12, 2016 • 9 min
What advice can I provide to help you debug your code?
54: Recursion. Find Your Base.
Feb 11, 2016 • 14 min
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…
53: Enumerations And Bit Flags.
Feb 10, 2016 • 13 min
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…
52: Bits Operations: Shifting.
Feb 9, 2016 • 12 min
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.
51: Bits Operations: Masking.
Feb 8, 2016 • 14 min
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.
QA Friday 2016-Feb-05
Feb 5, 2016 • 11 min
Are strings also a collection? And how are characters represented?
50: Hexadecimal. Easier Than Binary.
Feb 4, 2016 • 11 min
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…
49: C++ Preprocessor. This Is Old Magic.
Feb 3, 2016 • 12 min
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.
48: Chaining: Operators, Classes, Calls.
Feb 2, 2016 • 12 min
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.
47: Operators. Who Goes First?
Feb 1, 2016 • 11 min
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.
QA Friday 2016-Jan-29
Jan 29, 2016 • 9 min
What types of programmers are there?
46: Collections: Iterators Part 2.
Jan 28, 2016 • 13 min
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.
45: Collections: Iterators Part 1.
Jan 27, 2016 • 11 min
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…
44: Collections: Dictionary.
Jan 26, 2016 • 7 min
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…
43: Collections: Hash Table.
Jan 25, 2016 • 10 min
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…
QA Friday 2016-Jan-22
Jan 22, 2016 • 10 min
What can you expect your job to be like as a new programmer?
42: Collections: Left-Child Right-Sibling Tree.
Jan 21, 2016 • 10 min
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…
41: Collections: Binary Tree.
Jan 20, 2016 • 15 min
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…
40: Collections: List.
Jan 19, 2016 • 9 min
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…
39: Collections: Array.
Jan 18, 2016 • 14 min
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…
QA Friday 2016-Jan-15
Jan 15, 2016 • 12 min
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…
38: Big-O Notation. How Fast Can You Go?
Jan 14, 2016 • 14 min
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…
37: Big-O Notation. Take It To The Limit.
Jan 13, 2016 • 10 min
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…
36: Logarithms. It’s How Our Bodies Work.
Jan 12, 2016 • 10 min
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.
35: Random Numbers Start With A Seed.
Jan 11, 2016 • 9 min
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…
QA Friday 2016-Jan-08
Jan 8, 2016 • 10 min
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…
34: C# Casting. Only Frogs Can Be Frogs.
Jan 7, 2016 • 6 min
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…
33: C++ Casting. Turn Your Object Into A Frog.
Jan 6, 2016 • 12 min
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…
32: Static Methods And Data. Always Available.
Jan 5, 2016 • 8 min
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…
31: Getters And Setters Keep It Together.
Jan 4, 2016 • 8 min
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…
QA Friday 2016-Jan-01
Jan 1, 2016 • 9 min
How are namespaces and include files related and why do we need both?
30: Interfaces. The Software Contract.
Dec 31, 2015 • 6 min
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…
29: Abstract Classes. Incomplete On Their Own.
Dec 30, 2015 • 6 min
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…
28: Composition. The Has-A Relationship.
Dec 29, 2015 • 9 min
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…
27: Multiple Inheritance. Often Banned.
Dec 28, 2015 • 8 min
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…
QA Friday 2015-Dec-25
Dec 25, 2015 • 7 min
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…
26: Inheritance. When To Use Private.
Dec 24, 2015 • 7 min
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…
25: Inheritance. Overriding Methods.
Dec 23, 2015 • 12 min
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…
24: Inheritance. The Is-A Relationship.
Dec 22, 2015 • 9 min
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…
23: Access Control. Employees Only.
Dec 21, 2015 • 11 min
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…
QA Friday 2015-Dec-18
Dec 18, 2015 • 8 min
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…
22: C# Creating And Disposing Instances.
Dec 17, 2015 • 11 min
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.
21: C++ Creating And Deleting Instances.
Dec 16, 2015 • 11 min
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…
20: C# Destructors and IDisposable.
Dec 15, 2015 • 7 min
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…
19: C++ Destructors. Simply Reliable.
Dec 14, 2015 • 8 min
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.
QA Friday 2015-Dec-11
Dec 11, 2015 • 6 min
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…
18: Constructors.
Dec 10, 2015 • 9 min
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.
17: Object-Oriented Programming. The Next Level.
Dec 9, 2015 • 6 min
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…
16: In Or Out Of Scope?
Dec 8, 2015 • 7 min
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.
15: Let’s Program A Game! Part 3.
Dec 7, 2015 • 7 min
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…
QA Friday 2015-Dec-04
Dec 4, 2015 • 4 min
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?
14: Let’s Program A Game! Part 2.
Dec 3, 2015 • 6 min
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.
13: Let’s Program A Game! Part 1.
Dec 2, 2015 • 8 min
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.
12: References Are More Than Just Pointers.
Dec 1, 2015 • 7 min
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…
11: There’s A Method For All This.
Nov 30, 2015 • 11 min
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…
QA Friday 2015-Nov-27
Nov 27, 2015 • 4 min
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…
10: Double Pointers! The Pattern Continues.
Nov 26, 2015 • 9 min
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.
9: Pointer Arithmetic. This Is Easy!
Nov 25, 2015 • 8 min
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.
8: Pointers! Computers Use Them Too.
Nov 24, 2015 • 6 min
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…
7: Into The Void.
Nov 23, 2015 • 14 min
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.
QA Friday 2015-Nov-20
Nov 20, 2015 • 7 min
The question this week comes from Scott S. who wants to know what are all the files that get created when building an application.
6: Just In Time.
Nov 19, 2015 • 10 min
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.
5: Interpreted Or Compiled?
Nov 18, 2015 • 9 min
Some languages are interpreted and some are compiled. Knowing how your code behaves will allow you to select the best tool for the job.
4: From Binary To GUIs. Part 2.
Nov 17, 2015 • 9 min
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?
3: From Binary To GUIs. Part 1.
Nov 16, 2015 • 9 min
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?
2: What Is Programming?
Nov 13, 2015 • 11 min
This episode will explain different types of programming in terms that you will be familiar with and then relate everything to computer programming concepts.
1: How To Start Programming.
Nov 13, 2015 • 8 min
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.
0: Why Take Up Code?
Nov 13, 2015 • 9 min
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?