logoalt Hacker News

AlienRobotyesterday at 10:32 PM1 replyview on HN

I agree, and I don't even know math.

Most of things that are impenetrable in programming aren't about... programming. They are about some actually complex field like math being applied to programming.

For example, a library that does stuff with geometry. You need to know geometry to understand the program, but the program itself will never be complicated. It's the geometry that is complicated.

In cryptography, it's not the program that is complicated, it's the field of cryptography. In AI, it's statistics.

In graphics programming, math is the most impenetrable part, not programming anything. You can be a very good programmer in the sense that you know how to architect information systems and still fail to write a shader because shader programming requires you to know what a "dot" product is and you haven't heard about that since high school.


Replies

hyperpapeyesterday at 11:03 PM

I'd slightly disagree. Here's an example of a programming task that is incredibly complicated:

Your job is to maintain and modernize a system while delivering a constant stream of new features. Your system is several million lines of code, with some multi-thousand line classes, a rulesengine that can trigger nearly unlimited effects at any time, a persistence system that's weirder than anything any of your friends have ever worked with, and hundreds of customers delivering tens of millions in revenue who use the system in incredibly varied ways.

You can't stop to rewrite the thing, you can't just throw features out there and pray, because you'll cause regressions and your existing customers will hate you. You have to fix the thing as you're building on top of it.

But where I agree is that there's no single deep concept that unlocks it all, it's not like you'll fix it by reading a textbook about it. It's complicated, and it's going to stay complicated, no matter how long you work on it.