|
Navigation
Search
|
Seven coding domains no developer really understands
Wednesday December 3, 2025. 10:00 AM , from InfoWorld
We all want to be thought competent by our peers—to have them think we know what we are doing. And for the most part, we do, right?
But come on, let’s be honest. There are a few things that just make our heads spin. Topics that we kind of gloss over and pretend that we really understand, but that are pretty much a strange amalgam of confusion inside our brains. We want to understand them. We buy and read books to understand them, but in the end, we pretty much fake it. Well, I’m sure you understand all this stuff, but the folks around you are the ones faking it. Right? Right?? Okay, no shame. We are all in this together. Maybe you do truly understand one or two of these areas of programming mystery. But if you come at me saying you understand them all? Uhm, yeah, sure. Anyway, here is my list of programming topics that, I believe, most software developers don’t fully understand. Complex boolean expressions I know I harp on this regularly, but few things hurt my brain and send me spinning off into confusion more than code that looks like this: function shouldApplyFreeShipping(order: Order): boolean { return ((order.total >= 100 && order.itemCount > 0) && (order.isVIP || (!order.isVIP && order.paymentMethod === 'credit')) &&!(order.hasBackorder && order.shipping === 'express')); } This kind of thing makes me want to punch a wall. Sure, it works. Sure, it has all the correct rules in it. But if you tell me you can read that and keep all the rules in your head and actually comprehend what is going on here, I’m going to give you some serious side-eye. This sort of code is why I always say “Fear not the explaining variable”. By the way, I asked ChatGPT to explain the code above in one sentence and it came up with this (correct) explanation: It returns true only when the order is at least $100 with at least one item, the customer is either a VIP or a non-VIP paying by credit card, and it’s not an express shipment that contains a backordered item. Yikes. Multithreading and concurrency issues With CPUs having a seemingly endless supply of cores, threads are a way of life in coding today. And of course, threads create gargantuan coding problems. I am sure that every one of us has run into a formidable threading bug that reproduces intermittently and has a call stack that is less useful than a crossword puzzle with all the down clues missing. It’s utterly inevitable. Sure, you can write threaded code just fine. You understand the basics of how threads work. But in the end, you never quite know exactly what those four threads competing for interlocking resources are going to do, do you? No, you don’t. Floating point math It takes a while for a new developer to come to accept (much less understand why) numbers like 0.7 and ⅓ cannot be accurately and precisely represented in a floating point number on a computer. It seems weird and strange, but eventually we accept it. But do you really understand why? Maybe. Even if you do, that doesn’t mean you can get that spending report to balance down to the penny every time, now, does it? Nope. Anything to do with Kubernetes Okay, someone out there understands how Kubernetes works, because it is actually out there in the wild. But come on, only a small priesthood of devoted gurus really know how to configure the cluster topology, networking, role-based access controls, custom resource definitions, ingress controllers, storage classes, pod disruption budgets, affinity rules, and the rest of that 47-ring circus. Most of us know the very basics of YAML and piece together something that works and then pray that it doesn’t break. Admit it, 90% of your Kubernetes setup was copied and pasted from someone else’s working configuration that you only half understand. Unicode and character encoding Many of us grew up on good old ASCII and ANSI character sets. Then Unicode came along and opened up the digital universe to emojis, endless Wingdings, and non-Roman characters. Unicode is great—but it’s pretty much impossible to understand. For instance, it feels like Unicode characters should be two bytes in size… except when they aren’t. But that’s just me. I have no doubt that the rest of you can describe the differences between UTF-8, ISO-8859-1, and Windows-1252. Sure you can. Time zones and Daylight Saving Time I expect there are only about four people on the face of the planet who actually understand all the time zone rules on Earth. You almost certainly aren’t one of them. I bet you didn’t even know that Nepal is one of three places on earth that are offset by 45 minutes. Can you sort timestamps properly, taking Daylight Saving Time rules into account? What time is it right now in the city of Knox, Indiana? Are you sure? Trust me, you are not sure. Let me put it this way… Jon Skeet, he of the absurdly high reputation on Stack Overflow, is a really smart guy who wrote a date/time library for.NET, and even he has a hard time keeping track of it all. Regular expressions Complex Boolean expressions hurt my head, but at least they can be written out pretty easily. Nothing is harder to both read and write than a complex regular expression. The rules are esoteric and confusing. The symbols have obscure, relative meanings. My guess is that regular expressions were created by aliens and somehow beamed to us as a sick joke. Sure, you probably can write a simple match expression. But anything beyond the basics? If you’re like me, you’ve almost certainly copied it out of a Stack Overflow answer. Check this out: /^(?:+?d{1,3}[-.s]?)?(?:(?d{1,4})?[-.s]?)?(?:d[-.s]?){6,14}d$/ You were able to realize at a glance that the regex above matches international phone numbers, right? It’s obvious! (Or at least that’s what the comment claimed when someone pasted it from a blog post.) Okay, that’s enough. Now my brain really does hurt. I could go on. (Do you really understand your build script? And don’t even get me started on cache invalidation…) The fact is that the software development business is complex, challenging, and filled with very difficult concepts. How we get anything done at all is a testament to our diligence and perseverance.
https://www.infoworld.com/article/4099577/seven-coding-domains-no-developer-really-understands.html
Related News |
25 sources
Current Date
Dec, Wed 3 - 11:16 CET
|







