If you had asked a year ago I would have said, “it depends – but you can get away with just basic math (etc.) skills and knowing how to acquire the rest when it is needed.”
Between July and August my answer changed to “- you would be limiting yourself a lot in how skilled of a developer you can become, and the type of project you can (confidently) work on”.
What happened was within one week I found myself working on projects that I was immensely interested in, while finding my own math, logic, statistical (and so on) skills inadequate. In school I was awesome at math, but then when I got kicked out of high school I had to study on my own and I chose languages and politics over math and science simply because those were more fun to study on my own and I was a bit of a hippie (still am). When I started studying nutrition they somehow overlooked that I didn’t have math and I barely scraped it through biochemistry with the help of search engines and YouTube videos. I failed 3 times at biochemistry (failure rate was 70% so I wasn’t the only one) and when we did statistics in clinical nutrition we had programs to help us, we just had to know what to look for. Easy.
The three projects in particular made me change my mind:
Project one motion tracking application with a broken API so I had to figure out the logic and calculations to get the behavior I wanted. Also, working with vectors and on a 3D plane.
Application that generates data input as various graphs based on some suggested hypothetical formulas. User stories described in a mathematical model.
Augmented Reality project for mapping 3D object based on coordinates, interactive touch only application that might have a motion tracking counterpart. Needless to say performance is also extremely important as the hardware can be limited.
These are the type of project I *want* to work with, the type of projects that makes me stay up late at night, and to start programming in the morning even BEFORE my first cup of coffee. To be honest, there are things that scare me. Things I feel like I don’t quite know. And to be able to sleep I write them down in my notebooks (OneNote) and one by one I start acquiring those skills. Math and anything related to it has been on my list for a while, and I had pushed it down on the list by convincing myself that I didn’t really need it. Truth is, to get to work on the projects I want to work on, and to be confident in things such as performance tuning and more I have to sharpen some skills.
I’m doing testing in school right now (evening school), but first subject is object oriented programming so I don’t need to attend classes. What I’ve done is to enroll in online courses at renowned universities and so far I’ve signed up for:
Calculus one (14 weeks)
Linear and integer programming (9 weeks)
Introduction to Systematic Program Design – Part 1(10 weeks)
Introduction to logic (8 weeks)
Each course is about 5 – 10 h /week, but hopefully they will overlap. I’ve just finished the first week in the course Calculus and I have to admit it was hard. I might write some more about this, are you interested to hear about what I learn?
Let’s repeat my answer to the question:
Do I need do know math to be a developer? What about logic, statistics, and linear programming?
You can manage without, but you would be limiting yourself a lot in how skilled of a developer you can become, and the type of project you can (confidently) work on. You can drive with your feet, but that doesn’t make it a good idea (Quote by Chris Rock). My personal recommendation is to set aside time to get a greater understanding and appreciation for logic and numbers.