Take Up Code

Take Up Code

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.

Take Up Code: build your own computer games, apps, and robotics with podcasts and live classes Technology 303 rész Learn hard-core computer programming with fun episodes that you can relate to.
261: CppCon: Interview With Conor Hoekstra About C++ Algorithms And Ranges.
11 perc 303. rész Wahid Tanner
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++ […]
260: CppCon: Interview With Josh Lospinoso About The Book C++ Crash Course.
11 perc 302. rész Wahid Tanner
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, […]
259: CppCon: Interview With Asad Naweed About Augmented Reality.
13 perc 301. rész Wahid Tanner
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 […]
258: CppCon: Interview With Nicolai Josuttis About How The C++ Standardization Has Changed Over The Years.
13 perc 300. rész Wahid Tanner
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 […]
257: CppCon: Interview With Sean Hale About Becoming A Software Developer Without A Degree In Computer Science.
15 perc 299. rész Wahid Tanner
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 […]
256: What Is Hurting Your Effort To Learn Coding? How To Improve Your Learning With One Simple Trick I Discovered By Accident.
5 perc 298. rész Wahid Tanner
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. […]
255: How To Avoid Small Choices And Design Your Application To Scale Big.
6 perc 297. rész Wahid Tanner
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 […]
254: GameDev: How To Use Noise To Procedurally Generate Maps And Landscape.
11 perc 296. rész Wahid Tanner
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. […]
253: Creative Ways To Use C++ Curly Braces Beyond Just Functions And Loops.
6 perc 295. rész Wahid Tanner
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 […]
252: How To Handle Frustration When Learning To Code.
5 perc 294. rész Wahid Tanner
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 […]
251: What Happens When Code Has Undefined Behavior?
7 perc 293. rész Wahid Tanner
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 […]
250: GameDev: Design Patterns: Entity Component System.
7 perc 292. rész Wahid Tanner
This design pattern will help you make sense of your game design as it gets bigger.
249: GameDev: Floating Point: Zero, Infinity, NaN.
6 perc 291. rész Wahid Tanner
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.
9 perc 290. rész Wahid Tanner
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?
9 perc 289. rész Wahid Tanner
Be careful with floating point numbers when building games.
246: GameDev: Points Vs. Vectors. Which Should You Use?
8 perc 288. rész Wahid Tanner
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.
11 perc 287. rész Wahid Tanner
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?
8 perc 286. rész Wahid Tanner
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.
11 perc 285. rész Wahid Tanner
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.
5 perc 284. rész Wahid Tanner
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.
12 perc 283. rész Wahid Tanner
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.
9 perc 282. rész Wahid Tanner
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?
6 perc 281. rész Wahid Tanner
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.
9 perc 280. rész Wahid Tanner
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.
9 perc 279. rész Wahid Tanner
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.
8 perc 278. rész Wahid Tanner
Run your program with the least permissions possible.
235: Filesystem: How To Avoid Security Vulnerabilities. Part 1.
9 perc 277. rész Wahid Tanner
When it comes to security, it is better to learn from examples.
234: Filesystem: Journaling Keeps Your Filesystem Intact.
8 perc 276. rész Wahid Tanner
Journaling records extra information in case there are problems.
233: Schedule Changes To Support Take Up Code.
5 perc 275. rész Wahid Tanner
The Take Up Code podcast needs your support.
232: Filesystem: Linking Explained: Symbolic, Soft, Hard, Junction.
12 perc 274. rész Wahid Tanner
Filesystems allow you to refer to refer to your content with different names.
231: Filesystem: Metadata Holds More Information.
10 perc 273. rész Wahid Tanner
Metadata provides information about your files.
230: Filesystem: What Can They Do? Part 4.
14 perc 272. rész Wahid Tanner
There is a special type of filesystem used to swap memory.
229: Filesystem: What Can They Do? Part 3.
13 perc 271. rész Wahid Tanner
Access control lists provide more security options.
228: Filesystem: What Can They Do? Part 2.
9 perc 270. rész Wahid Tanner
Security is a big part of filesystems.
227: Filesystem: What Can They Do? Part 1.
14 perc 269. rész Wahid Tanner
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. […]
226: Filesystem: CHS vs. LBA Modes.
12 perc 268. rész Wahid Tanner
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.
8 perc 267. rész Wahid Tanner
Dividing your disks into partitions allows you to use each partition for separate tasks.
224: Filesystem: Drive Letters, Mounting, And Paths. Part 2.
9 perc 266. rész Wahid Tanner
How are filesystem organized with multiple drives?
223: Filesystem: Drive Letters, Mounting, And Paths. Part 1.
10 perc 265. rész Wahid Tanner
How are filesystem organized with multiple drives?
222: Filesystem: Why Should You Learn To Use It?
10 perc 264. rész Wahid Tanner
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.
6 perc 263. rész Wahid Tanner
The code you write should follow a similar level of detail.
220: One Of These Things Is Not Like The Others.
6 perc 262. rész Wahid Tanner
Finding differences will help you make sense of your code.
219: C++ RAII Sounds Complicated But Simplifies Your Code.
8 perc 261. rész Wahid Tanner
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.
8 perc 260. rész Wahid Tanner
Why is C++ such a good choice for writing games?
217: How To Start Building a Video Game. Part 7.
7 perc 259. rész Wahid Tanner
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.
10 perc 258. rész Wahid Tanner
How is a video game different than any other application?
215: How To Start Building a Video Game. Part 5.
6 perc 257. rész Wahid Tanner
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.
8 perc 256. rész Wahid Tanner
You can take advantage of libraries and frameworks.
213: How To Start Building a Video Game. Part 3.
9 perc 255. rész Wahid Tanner
What role will data play in your game?
212: How To Start Building a Video Game. Part 2.
10 perc 254. rész Wahid Tanner
How do you make your idea more specific?
211: How To Start Building a Video Game. Part 1.
11 perc 253. rész Wahid Tanner
You have a vague idea for a new video game. Where do you begin?
210: Shiny Projects And Distractions.
10 perc 252. rész Wahid Tanner
When is it okay to switch to a different project?
209: CSS: Cascading Style Sheets Tutorial. Part 2.
11 perc 251. rész Wahid Tanner
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.
8 perc 250. rész Wahid Tanner
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.
16 perc 249. rész Wahid Tanner
An abstract syntax tree can help your code make sense of what a user provides.
206: Collections: Stack.
6 perc 248. rész Wahid Tanner
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?
14 perc 247. rész Wahid Tanner
What other things can trees help you to solve?
204: This Is Terrible, You Gotta Start Anyway.
10 perc 246. rész Wahid Tanner
Have you ever created something and then thought about how bad it was? What did you do?
203: Trees: Why Use Them?
8 perc 245. rész Wahid Tanner
Why should you consider using trees?
202: Graphs vs. Trees vs. Hierarchies: Compared.
12 perc 244. rész Wahid Tanner
Before exploring HTML and CSS further, you are going to need to understand graphs, trees, and hierarchies.
201: HTML: Caching Generated Output For Speed.
10 perc 243. rész Wahid Tanner
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.
7 perc 242. rész Wahid Tanner
A modern website is more than just a collection of some HTML pages.
199: HTML: How To: Simple Formatting.
9 perc 241. rész Wahid Tanner
You will learn how to use HTML to format your text into headings, paragraphs, and lists in this episode.
198: HTML: Semantic Meaning.
6 perc 240. rész Wahid Tanner
Does markup have any specific meaning that can be understood?
197: HTML: The Bigger Picture.
8 perc 239. rész Wahid Tanner
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?
12 perc 238. rész Wahid Tanner
How does HTML markup enable you to create web pages?
195: HTML: Is This Programming?
8 perc 237. rész Wahid Tanner
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?
7 perc 236. rész Wahid Tanner
What criteria do you use to determine if somebody is faking their skills as a teacher?
193: Kids Either Leave or Go to Jail.
6 perc 235. rész Wahid Tanner
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?
13 perc 234. rész Wahid Tanner
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.
8 perc 233. rész Wahid Tanner
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.
11 perc 232. rész Wahid Tanner
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.
8 perc 231. rész Wahid Tanner
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.
16 perc 230. rész Wahid Tanner
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.
9 perc 229. rész Wahid Tanner
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.
11 perc 228. rész Wahid Tanner
Programming involves change and managing that change is the only way to make sense of it.
185: Working Remotely: No More Trading Schedules.
10 perc 227. rész Wahid Tanner
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.
10 perc 226. rész Wahid Tanner
We normally think of something as either a conductor of electricity or an insulator.
183: Digital Electronics: Microcontrollers Ready To Use.
7 perc 225. rész Wahid Tanner
Unlike microprocessors, microcontrollers can be used all by themselves.
182: Digital Electronics: Microprocessor Speed And Clocks.
7 perc 224. rész Wahid Tanner
What are microprocessors and how have they changed?
181: Basic Electronics: Voltage Dividers.
4 perc 223. rész Wahid Tanner
You can use resistors to divide voltage.
180: Basic Electronics: Series And Parallel.
7 perc 222. rész Wahid Tanner
Have you ever wondered why batteries sometimes need to be inserted in alternating directions?
179: Basic Electronics: Capacitance.
8 perc 221. rész Wahid Tanner
Do you know how your touch screen works?
178: Basic Electronics: Magnetic Fields And Current.
7 perc 220. rész Wahid Tanner
Moving charge produces a magnetic field and a moving magnetic field produces current.
177: Basic Electronics: AC/DC: Alternating Vs. Direct Current
6 perc 219. rész Wahid Tanner
Do you know where the nearest power plant is?
176: Basic Electronics: Voltage, Current, Resistance.
11 perc 218. rész Wahid Tanner
Knowing some basic electronics helps you become a better programmer.
175: Multiplexing: Many Over One.
6 perc 217. rész Wahid Tanner
How do you send multiple messages across a single channel?
174: Error Correction: Hamming Distance And Codes.
8 perc 216. rész Wahid Tanner
How do you correct errors once you identify them?
173: HMAC: Keyed Hashed Message Authentication Code.
9 perc 215. rész Wahid Tanner
How do you stop an attacker from just changing a hash?
172: Hashes Offer The Best Error Detection.
9 perc 214. rész Wahid Tanner
If you receive some information, how do you know if it is intact or has been changed?
171: Checksums Offer Better Error Detection.
12 perc 213. rész Wahid Tanner
If you receive some information, how do you know if it is intact or has been changed?
170: Parity: Simple And Fast Error Detection.
9 perc 212. rész Wahid Tanner
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.
8 perc 211. rész Wahid Tanner
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.
9 perc 210. rész Wahid Tanner
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.
10 perc 209. rész Wahid Tanner
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.
9 perc 208. rész Wahid Tanner
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.
11 perc 207. rész Wahid Tanner
How does one application communicate with another application?
164: SCTP vs. TCP vs. UDP
8 perc 206. rész Wahid Tanner
You will learn more about the strengths of the SCTP, TCP, and UDP protocols by comparing them.
163: SCTP: Stream Control Transmission Protocol.
8 perc 205. rész Wahid Tanner
SCTP is another protocol like TCP and UDP with aspects of both.
162: OSI Model: Seven Layers of Communication.
5 perc 204. rész Wahid Tanner
The OSI model will help you understand how computers communicate.
161: MAC: Media Access Control Address.
9 perc 203. rész Wahid Tanner
A MAC address is a physical address unique to your computer.
160: UDP: User Datagram Protocol.
6 perc 202. rész Wahid Tanner
Sometimes speed and simplicity are more important than reliability.
159: TCP: Transmission Control Protocol.
8 perc 201. rész Wahid Tanner
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.
9 perc 200. rész Wahid Tanner
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.
9 perc 199. rész Wahid Tanner
Why do we need a system for managing domain names?
156: URLs, URNs, URCs, Data URIs, and URIs.
12 perc 198. rész Wahid Tanner
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?
7 perc 197. rész Wahid Tanner
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.
5 perc 196. rész Wahid Tanner
Like XML, JSON is also a way to represent data that is readable by both humans and computers.
153: Data: XML Extensible Markup Language.
8 perc 195. rész Wahid Tanner
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.
9 perc 194. rész Wahid Tanner
You might be more familiar with APIs than SOA but they had another meaning not very long ago.
151: The More You Learn.
7 perc 193. rész Wahid Tanner
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
6 perc 192. rész Wahid Tanner
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.
10 perc 191. rész Wahid Tanner
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?
8 perc 190. rész Wahid Tanner
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.
8 perc 189. rész Wahid Tanner
Two-phase and three-phase commits will help you design solutions that need to work across multiple computers.
146: Distributed Computing: It Happened When?
10 perc 188. rész Wahid Tanner
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
7 perc 187. rész Wahid Tanner
What can you do to improve your concentration?
145: Distributed Computing: Four Reasons.
11 perc 186. rész Wahid Tanner
Dividing work between multiple computers is sometimes the best way to solve a problem.
QA Friday 2016-Aug-19
6 perc 185. rész Wahid Tanner
How do you concentrate?
144: Data Types: C++ nullptr Is Not Zero.
8 perc 184. rész Wahid Tanner
nullptr represents a null pointer and while it has a value of zero, the type is not the same.
QA Friday 2016-Aug-12
7 perc 183. rész Wahid Tanner
When should I create a new class?
143: Where And How To Use Whitespace.
9 perc 182. rész Wahid Tanner
Making code more readable sometimes means knowing where to put nothing.
QA Friday 2016-Aug-05
8 perc 181. rész Wahid Tanner
Regulations say that you can only have one floor mat.
142: Comments. Focus On Why.
9 perc 180. rész Wahid Tanner
Comments are important but do not forget that your code should also be self-commenting.
QA Friday 2016-Jul-29
9 perc 179. rész Wahid Tanner
Where are your certifications? Do you have a degree?
141: Reference Counting. Still In Use!
13 perc 178. rész Wahid Tanner
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
9 perc 177. rész Wahid Tanner
What is your biggest weakness? Things around us change and we each grow and change too.
140: Name Mangling and Overloaded Methods.
9 perc 176. rész Wahid Tanner
You normally do not have to worry about name mangling. But you should know what it is.
QA Friday 2016-Jul-15
7 perc 175. rész Wahid Tanner
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.
9 perc 174. rész Wahid Tanner
Sometimes you need to declare a type to be the same as something else.
QA Friday 2016-Jul-08
6 perc 173. rész Wahid Tanner
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.
10 perc 172. rész Wahid Tanner
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.
9 perc 171. rész Wahid Tanner
Auto and var types do have a type. The compiler will figure out what that is.
136: Data Types: Variant. Pick One.
7 perc 170. rész Wahid Tanner
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.
9 perc 169. rész Wahid Tanner
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
9 perc 168. rész Wahid Tanner
I always feel pressure and embarrassment when doing code reviews. What should I do?
134: Data Types: C++ Function Binders.
8 perc 167. rész Wahid Tanner
Binders make up part of functional composition that allows you to adapt functions and combine them into new functions.
133: Data Types: Regular Expressions.
10 perc 166. rész Wahid Tanner
A regular expression or regex lets you perform the advanced text operations matching, searching, tokenizing, and replacing.
132: Data Types: Lambdas.
11 perc 165. rész Wahid Tanner
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.
13 perc 164. rész Wahid Tanner
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
9 perc 163. rész Wahid Tanner
What is data binding?
130: Data Types: Function Pointers Part 1.
8 perc 162. rész Wahid Tanner
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.
10 perc 161. rész Wahid Tanner
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.
8 perc 160. rész Wahid Tanner
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.
12 perc 159. rész Wahid Tanner
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
6 perc 158. rész Wahid Tanner
What is runtime binding?
126: Data Types: Smart Pointers Part 1.
8 perc 157. rész Wahid Tanner
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.
9 perc 156. rész Wahid Tanner
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.
9 perc 155. rész Wahid Tanner
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.
9 perc 154. rész Wahid Tanner
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
7 perc 153. rész Wahid Tanner
When should I use a reference and when should I use a pointer?
122: Data Types: DateTimes Part 5 C++.
11 perc 152. rész Wahid Tanner
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.
11 perc 151. rész Wahid Tanner
Dates and times are a lot more complicated than we normally realize. This episodes explains durations.
120: Data Types: DateTimes Part 3 C#.
10 perc 150. rész Wahid Tanner
So you think you know how to use the DateTime struct in C#? You might be surprised.
119: Data Types: DateTimes Part 2.
17 perc 149. rész Wahid Tanner
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
11 perc 148. rész Wahid Tanner
Do I really have to follow software licenses?
118: Data Types: DateTimes Part 1.
14 perc 147. rész Wahid Tanner
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.
11 perc 146. rész Wahid Tanner
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.
17 perc 145. rész Wahid Tanner
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.
15 perc 144. rész Wahid Tanner
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
7 perc 143. rész Wahid Tanner
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.
16 perc 142. rész Wahid Tanner
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.
13 perc 141. rész Wahid Tanner
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.
10 perc 140. rész Wahid Tanner
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.
10 perc 139. rész Wahid Tanner
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
8 perc 138. rész Wahid Tanner
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.
12 perc 137. rész Wahid Tanner
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.
16 perc 136. rész Wahid Tanner
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.
12 perc 135. rész Wahid Tanner
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.
10 perc 134. rész Wahid Tanner
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
5 perc 133. rész Wahid Tanner
How do I use my foundational skills in programming to start making useful software?
106: Multithreading. Call Me Back Please.
11 perc 132. rész Wahid Tanner
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.
9 perc 131. rész Wahid Tanner
What are synchronous and asynchronous methods and how do you use them?
104: Multithreading. Singleton Mistakes.
11 perc 130. rész Wahid Tanner
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?
103: Multithreading. Volatile.
10 perc 129. rész Wahid Tanner
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
9 perc 128. rész Wahid Tanner
Do it in place. What does that mean?
102: Multithreading. Up And Down.
9 perc 127. rész Wahid Tanner
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.
13 perc 126. rész Wahid Tanner
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.
13 perc 125. rész Wahid Tanner
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.
9 perc 124. rész Wahid Tanner
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
6 perc 123. rész Wahid Tanner
Do you get more value out of articles, videos, or podcasts?
98: Multithreading. The Great Divide.
8 perc 122. rész Wahid Tanner
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.
8 perc 121. rész Wahid Tanner
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.
10 perc 120. rész Wahid Tanner
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.
11 perc 119. rész Wahid Tanner
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
8 perc 118. rész Wahid Tanner
What makes a good personal programming side project?
94: Multithreading. The Race Is On.
13 perc 117. rész Wahid Tanner
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?
9 perc 116. rész Wahid Tanner
Do you know when to use multithreading? What are the advantages and disadvantages?
92: Multithreading. Why Should You Care?
10 perc 115. rész Wahid Tanner
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.
91: Round Robin. Nobody Starves.
10 perc 114. rész Wahid Tanner
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
8 perc 113. rész Wahid Tanner
After working 8 hours, how can I learn to program in the evening?
90: Design Patterns: Object Pool.
11 perc 112. rész Wahid Tanner
The object pool behavioral pattern allows you to reuse objects instead of destroying them and creating them again.
89: Design Patterns: Dirty Flag.
11 perc 111. rész Wahid Tanner
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.
11 perc 110. rész Wahid Tanner
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.
14 perc 109. rész Wahid Tanner
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
8 perc 108. rész Wahid Tanner
Can I learn programming if I am stupid?
86: Design Patterns: Component.
12 perc 107. rész Wahid Tanner
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.
10 perc 106. rész Wahid Tanner
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.
11 perc 105. rész Wahid Tanner
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.
15 perc 104. rész Wahid Tanner
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
11 perc 103. rész Wahid Tanner
How do you make a design easy to understand?
82: Design Patterns: Double Buffer.
11 perc 102. rész Wahid Tanner
The double buffer behavioral pattern allows multiple changes to all appear to occur at the same time.
81: Design Patterns: Visitor.
12 perc 101. rész Wahid Tanner
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.
11 perc 100. rész Wahid Tanner
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.
10 perc 99. rész Wahid Tanner
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
9 perc 98. rész Wahid Tanner
What is identity?
78: Design Patterns: State.
8 perc 97. rész Wahid Tanner
The state behavioral pattern allows you to simplify your code when you have different modes of operation.
77: Design Patterns: Observer.
11 perc 96. rész Wahid Tanner
The observer behavioral pattern allows you to be notified of any changes instead of constantly checking.
76: Design Patterns: Memento.
8 perc 95. rész Wahid Tanner
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.
9 perc 94. rész Wahid Tanner
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
6 perc 93. rész Wahid Tanner
How much programming do you need to know before you can call yourself a programmer?
74: Design Patterns: Iterator.
9 perc 92. rész Wahid Tanner
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.
8 perc 91. rész Wahid Tanner
The interpreter behavioral pattern allows you to solve common problems by expressing those problems in a simple language.
72: Design Patterns: Command.
10 perc 90. rész Wahid Tanner
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.
8 perc 89. rész Wahid Tanner
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.
QA Friday 2016-Mar-11
9 perc 88. rész Wahid Tanner
Why are universities still teaching bubble sort?
70: Design Patterns: Proxy.
9 perc 87. rész Wahid Tanner
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.
11 perc 86. rész Wahid Tanner
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.
8 perc 85. rész Wahid Tanner
The facade structural pattern provides a simplified way for you to interact with a more complicated set of interfaces.
67: Design Patterns: Decorator.
10 perc 84. rész Wahid Tanner
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
8 perc 83. rész Wahid Tanner
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.
8 perc 82. rész Wahid Tanner
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.
8 perc 81. rész Wahid Tanner
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.
64: Design Patterns: Adapter.
9 perc 80. rész Wahid Tanner
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.
12 perc 79. rész Wahid Tanner
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
10 perc 78. rész Wahid Tanner
What is the best way for somebody to learn another programming language?
62: Design Patterns: Builder.
8 perc 77. rész Wahid Tanner
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.
61: Design Patterns: Prototype.
11 perc 76. rész Wahid Tanner
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.
60: Design Patterns: Singleton.
9 perc 75. rész Wahid Tanner
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.
9 perc 74. rész Wahid Tanner
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
8 perc 73. rész Wahid Tanner
What is syntax and what does it mean for somebody learning a new programming language?
58: C++ Templates. Types And Values.
11 perc 72. rész Wahid Tanner
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.
57: C# Generics. Fill In The Blanks.
13 perc 71. rész Wahid Tanner
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.
56: C# Exceptions. Finally Required.
10 perc 70. rész Wahid Tanner
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.
14 perc 69. rész Wahid Tanner
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
9 perc 68. rész Wahid Tanner
What advice can I provide to help you debug your code?
54: Recursion. Find Your Base.
14 perc 67. rész Wahid Tanner
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.
53: Enumerations And Bit Flags.
13 perc 66. rész Wahid Tanner
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.
52: Bits Operations: Shifting.
12 perc 65. rész Wahid Tanner
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.
14 perc 64. rész Wahid Tanner
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
11 perc 63. rész Wahid Tanner
Are strings also a collection? And how are characters represented?
50: Hexadecimal. Easier Than Binary.
11 perc 62. rész Wahid Tanner
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.
49: C++ Preprocessor. This Is Old Magic.
12 perc 61. rész Wahid Tanner
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.
12 perc 60. rész Wahid Tanner
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?
11 perc 59. rész Wahid Tanner
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
9 perc 58. rész Wahid Tanner
What types of programmers are there?
46: Collections: Iterators Part 2.
13 perc 57. rész Wahid Tanner
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.
11 perc 56. rész Wahid Tanner
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.
44: Collections: Dictionary.
7 perc 55. rész Wahid Tanner
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.
43: Collections: Hash Table.
10 perc 54. rész Wahid Tanner
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.
QA Friday 2016-Jan-22
10 perc 53. rész Wahid Tanner
What can you expect your job to be like as a new programmer?
42: Collections: Left-Child Right-Sibling Tree.
10 perc 52. rész Wahid Tanner
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.
41: Collections: Binary Tree.
15 perc 51. rész Wahid Tanner
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.
40: Collections: List.
9 perc 50. rész Wahid Tanner
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.
39: Collections: Array.
14 perc 49. rész Wahid Tanner
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.
QA Friday 2016-Jan-15
12 perc 48. rész Wahid Tanner
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.
38: Big-O Notation. How Fast Can You Go?
14 perc 47. rész Wahid Tanner
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.
37: Big-O Notation. Take It To The Limit.
10 perc 46. rész Wahid Tanner
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.
36: Logarithms. It’s How Our Bodies Work.
10 perc 45. rész Wahid Tanner
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.
9 perc 44. rész Wahid Tanner
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.
QA Friday 2016-Jan-08
10 perc 43. rész Wahid Tanner
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.
34: C# Casting. Only Frogs Can Be Frogs.
6 perc 42. rész Wahid Tanner
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.
33: C++ Casting. Turn Your Object Into A Frog.
12 perc 41. rész Wahid Tanner
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.
32: Static Methods And Data. Always Available.
8 perc 40. rész Wahid Tanner
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?
31: Getters And Setters Keep It Together.
8 perc 39. rész Wahid Tanner
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.
QA Friday 2016-Jan-01
9 perc 38. rész Wahid Tanner
How are namespaces and include files related and why do we need both?
30: Interfaces. The Software Contract.
6 perc 37. rész Wahid Tanner
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.
29: Abstract Classes. Incomplete On Their Own.
6 perc 36. rész Wahid Tanner
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.
28: Composition. The Has-A Relationship.
9 perc 35. rész Wahid Tanner
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.
27: Multiple Inheritance. Often Banned.
8 perc 34. rész Wahid Tanner
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.
QA Friday 2015-Dec-25
7 perc 33. rész Wahid Tanner
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.
26: Inheritance. When To Use Private.
7 perc 32. rész Wahid Tanner
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.
25: Inheritance. Overriding Methods.
12 perc 31. rész Wahid Tanner
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.
24: Inheritance. The Is-A Relationship.
9 perc 30. rész Wahid Tanner
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.
23: Access Control. Employees Only.
11 perc 29. rész Wahid Tanner
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.
QA Friday 2015-Dec-18
8 perc 28. rész Wahid Tanner
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.
22: C# Creating And Disposing Instances.
11 perc 27. rész Wahid Tanner
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.
11 perc 26. rész Wahid Tanner
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.
20: C# Destructors and IDisposable.
7 perc 25. rész Wahid Tanner
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.
19: C++ Destructors. Simply Reliable.
8 perc 24. rész Wahid Tanner
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
6 perc 23. rész Wahid Tanner
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.
18: Constructors.
9 perc 22. rész Wahid Tanner
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.
6 perc 21. rész Wahid Tanner
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.
16: In Or Out Of Scope?
7 perc 20. rész Wahid Tanner
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.
7 perc 19. rész Wahid Tanner
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.
QA Friday 2015-Dec-04
4 perc 18. rész Wahid Tanner
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.
6 perc 17. rész Wahid Tanner
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.
8 perc 16. rész Wahid Tanner
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.
7 perc 15. rész Wahid Tanner
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++.
11: There’s A Method For All This.
11 perc 14. rész Wahid Tanner
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.
QA Friday 2015-Nov-27
4 perc 13. rész Wahid Tanner
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?
10: Double Pointers! The Pattern Continues.
9 perc 12. rész Wahid Tanner
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!
8 perc 11. rész Wahid Tanner
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.
6 perc 10. rész Wahid Tanner
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.
7: Into The Void.
14 perc 9. rész Wahid Tanner
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
7 perc 8. rész Wahid Tanner
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.
10 perc 7. rész Wahid Tanner
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?
9 perc 6. rész Wahid Tanner
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.
9 perc 5. rész Wahid Tanner
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.
9 perc 4. rész Wahid Tanner
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?
11 perc 3. rész Wahid Tanner
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.
8 perc 2. rész Wahid Tanner
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?
9 perc 1. rész Wahid Tanner
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?
Speed:
Access and control your IntoRadio Cast compatibility devices on your local network!
You need to install a browser extension!
Chrome web store