5 ms·
I don’t think that having a knack for math necessarily matters for making a good programmer. I’ve known many good engineers who were drawn to programming becaus
by burlesona 5y ago
I don’t think that having a knack for math necessarily matters for making a good programmer. I’ve known many good engineers who were drawn to programming because math was hard for them and they wanted to learn how to get the computer to do it for them. Ironically, coming to understand programming can be a way to understand math better.
One of the best programmers I know is a philosophy major, who thinks of code like poetry, with consistent readable concision as the goal.
There are many paths.
What programming does require is a vivid imagination, to form a mental picture of the machine you are building and what is happening as information flows through it and is transformed.
Even more than that, it helps to be a systems-thinker, and to be able to zoom out and ask “what are we really trying to accomplish here.” Most of the time the elegant software solutions come not from writing brilliant code, but from reframing the problem so that simple code can solve it.
- gryn 5y agomath is not just about calculations and numbers that most people interact with during their education and seems to dislike or find hard. the part that would be useful in programming is a little bit of logical reasoning, the symbolic reasoning and modeling of problems through abstraction. coincidentally these are also the part of math that get thought and used in philosophy so I'm guessing that your colleague is somewhat familiar with them since their most probably are required core courses in getting a philosophy degree.
- analog31 5y agoI was exposed to this aspect of math through proofs, which are sadly given short shrift in K-12 math today. The schools in my hometown used a math curriculum that actually introduced basic set theory in first grade, and eased us into proofs. High school geometry was all about proofs. First of all, it was a good education. Second, proofs were what made math come alive for me. I have a lot of opinions about K-12 math education. ;-)
- orev 5y ago> it helps to be a systems-thinker, and to be able to zoom out and ask “what are we really trying to accomplish here.” Most of the time the elegant software solutions come not from writing brilliant code, but from reframing the problem so that simple code can solve it. This is exactly what math as a subject in school teaches you. Other subjects can too, but math seems to uniquely challenge people to really bend their mind around concepts, as opposed to many other subjects which often turn into memorization tasks. I’m talking about stuff like algebra, statistics, etc., not basic adding and multiplication. What is reducing a fraction or using the commutative property to break a problem into smaller chunks, if not “reframing the problem”?
- visarga 5y agoBoth are exact disciplines that rely on making tools and abstractions as a away to solve problems, knowing how to combine your skills to form new skills, because you are often in a novel situation that doesn't match experience.
- boppo1 5y ago>This is exactly what math... teaches you. This is more or less agreeable. >...as a subject in school... Maybe for a lucky few. My entire math career in school, from middle school through university, grades were based on homework completion. I even had one sadistic teacher who would grade a semester's homework twice. Imagine getting Bs on tests with no curve, but getting a D in the class. I remember in highschool and uni, that there were often one or two kids who would do the homework and then it would get passed around and copied by half the class. I would go so far as to say math-in-school was about successfully processing complex tasks without needing to understand them, as well as the value of teamwork & organization.
- solarkraft 5y ago> This is exactly what math as a subject in school teaches you Does it? My encounters with it at any place of formal education have all been about memorizing and practicing arbitrary operations. No intuition required.
- 5y ago
- solarkraft 5y agoI think there's a difference between being good at math itself and having a mathematical mindset. You can be unfamiliar with the (largely arbitrary seeming) rules and operations of maths while still being able to appreciate and reason about other types of algorithms/relationships.
- shagie 5y agoMath has two things that are part of it that are a key part of software development. There is the "this doesn't change." In many other jobs you can bend the thing you are working with to your will. Bend that pipe or apply just a bit more force here. Having plumbing being off by a little is often good enough for the tolerances. Math, you can't do that. There is no way to push a bit harder and make one value a different value. Yes, there are ways to manipulate systems of equations - but at the heart of it, you have to submit and match the mental model of math rather than being able to impose your will on the material. Carpentry? The wood doesn't bend the way you want it to? You can blame the wood, throw it out and start the process again. It may be costly over time, but doing the same thing may have different results the next time. Software development and math - if you do the same thing again, it doesn't change. The second part of this is the how you approach a very large problem and apply an algorithmic approach to breaking it down into smaller and smaller problems until they are solvable. That isn't a "you can't use that approach on carpentry or plumbing" (and it is often that you do), but rather that it is necessary to do this in math and software development. The knack for math is more about the acceptance of the inflexibility of numbers and computers along with the nature of the tools used to solve those problems. That said, some of the tooling for one or the other may be difficult to get your mind around. Calculus and derivatives and matrices... they are things that the tools to solve them and I go blank with them. I also know a sysadmin who was a math major who is proficient in PowerShell, but the parts of strongly typed larger codebase and he appears to have similar distain for it that I do for matrices and calculus. > Most of the time the elegant software solutions come not from writing brilliant code, but from reframing the problem so that simple code can solve it. This is also at the core of solving the harder math problems.