4 ms·
I've been programming since I was 14, and getting paid to do it since I was 15 (I know, not impressively young compared to some folks, but still). Approaching 4
by corrral 4y ago
I've been programming since I was 14, and getting paid to do it since I was 15 (I know, not impressively young compared to some folks, but still). Approaching 40 now.
It's never felt like math to me. If it did, I probably wouldn't be able to do it. I'm not especially good at math and feel damn near dyslexic when I try to read math-notation-heavy writing. Programming, meanwhile has always come easily and naturally.
... except the languages that try to look like math. Looking at you, Haskell. I get the concepts just fine, but I can't stand the style.
- culi 4y agoI think that's totally normal. Many (admittedly, sometimes dubious) studies have made the claim that a background in [linguistics | juggling | playing music | etc] is a better predictor of the likeliness that someone will turn out to be a good programmer than a background in math is As someone with a background in math, I think that makes total sense. I don't feel like there's any magic reason why practicing reasoning under (one of the many paradigms of) mathematics would automatically carry over to the type of reasoning you practice while programming any more than the previously mentioned exercises. The only times math has helped me is when the programming I'm doing straight up references mathematical concepts I've practiced with (matrices, group theory, etc). Which is a pretty uncommon occurrence in my current position. If you want your background in something else to help you with programming I think you'll have to put conscious effort into identifying and using the relevant abstractions and metaphors
- blip54321 4y agoA professor in college had two terms: microprogramming and macroprogramming. Microprogramming was the kind of thing where you're trying to, for example, cut down an assembly loop to run in 6 cycles rather than 8, design a numerical algorithm, an operating system scheduler, or similar. This is very mathematical in style of thinking. Macroprogramming is what happens when you write a database-backed web application, for example. It's much more linguistic. It's about understanding other people's code, writing your code to be understood, and gluing a lot of stuff together. Both have their place. Macroprogramming is taking over now, but I enjoy microprogramming more.