I was pleased to hear straight from the JUCE author himself, that as an entry level applicant to the music tech business I should focus on clean code rather than ‘impressive’ code. I think it’s so much more attainable to do this rather than try to do too much unnecessary stuff to try to impress someone. Now, Jules is a great programmer and we wouldn’t be here without him and the rest of the team, but I would imagine DSP math is pretty crucial to interesting sound. Assuming I want to do library and computer performance design in the future similar to what Jules and the rest of the team do, when would I be expected to know any higher level math? Should I just drop math after I graduate in two weeks, order a copy of Clean Code, and just program more?
i think the idea of not over-engineering code is just so you can get stuff done faster and then try other stuff which gives you a bigger variety of knowledge. at some point you’d automatically revisit old ideas and improve them anyway
There are a handful of people who are great at maths/DSP and also clean, solid coders.
There are far more people who have just one of those skills. Really good maths people are rarer, but also most companies don’t need as many of them as they do good, all-round coders to do the other 95% of the work.
Sometimes we have to compromise and work with maths people who write ugly code which we have to then tidy up. Other times we might implement elegant versions of not-quite perfect algorithms where someone with more DSP skill could have made better, but where it doesn’t really matter that much.
DSP math is very complex for most people. When you understand that math, you might be surprised what (audio processing algorithms) you can implement in 50 lines or less. Someone who doesn’t understand that math may very well over-engineer something that takes significantly longer to implement and become impossible to maintain.
C++ is very complex for most people. When you understand C++, you might be surprised what (solutions to problems) you can implement in 50 lines or less. Someone who doesn’t understand C++ may very well over-engineer something that takes significantly longer to implement and become impossible to maintain.
You would do well with both in audio signal processing. I think most developers (myself included) are stronger with one arm than the other. I’ve made it a personal goal to try to balance things out. In my case, that’s improving my C++. Juce has helped me to do that.
This free e-book is a great introduction to DSP maths: http://www.dspguide.com/
If you can digest that then you should know enough of the basics to tackle anything more advanced when required.
Thanks! I find the theoretical stuff makes me feel more versatile, but for now it might be far more efficient to write beautiful C++.
What is this Clean Code book? I’m figuring this out on my own, as such it’s hard to know which sources are the legit sources to learn from.
For a while now I’ve wanted a book that talks about good programming principles irrespective of language.