As a programmer, get your math sorted
csprimer.in
csprimer.in
I get that this is marketing fluff, but I really don't like this sort of gatekeeping - it's what kept me from programming until I was almost 30
These days I'm quite a prolific programmer both on the clock and in my free time, and I wish I could have started earlier now that I know how little math is involved or required to build useful and beautiful things as a programmer
There’s certainly roles that require more — but they’re the minority and you can always be taught on-the-job if it really matters.
You only need to understand processes and assignments, neither of which appear in a typical algebra class. You certainly won’t learn how to pass an algebra class about manipulating equalities by programming.
[1] — The high school kind.
That's not the same thing as being essential for programming.
That being said, studying more CS will only open more doors for you, giving you the tools to solve ever more complex problems, or the ability to recognize when something is effectively impossible.
It's not gatekeeping to point out that a field of knowledge will help you access other fields of knowledge. It's an invitation.
Monoids are a key idea in computer science and I think that everyone should know what monoids are. Monoids are EVERYWHERE and once you recognize that you have a monoid you can immediately use known methods to compute over monoids in efficiently (e.g. https://static.googleusercontent.com/media/research.google.c...).
Once you have a certain lattice (I'm leaving out some details), you can solve problems efficiently by known methods (e.g. using dataflow solvers) and automatically have a proof that the solution always terminates.
I really wish that more people took their time to learn these fundamentals and I think this is a wonderful introductory site. I don't mean to offend anyone, but if you've never heard of most of that stuff, then I think that you don't deserve to call yourself a professional programmer. Why? You will reinvent solutions to problems that have been solved before much more efficiently then you will be able to i.e. you're an amateur.
Every person is going to have a different idea of what knowledge is essential, and as you point out, we don't know what we don't know.
It is easy to look down on people who don't know what we consider fundamental, but it takes a little bit of humility to realize that we are ignorant of what other professionals value the most. Different roles require of different knowledge.
Your mileage will vary. I didn't even touch a DBMS after college, either, and I think that is going to be far more useful for the average programmer.
Otherwise there are plenty of more important things to learn for software dev.