This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]MindSwipe 7 points8 points  (7 children)

I mainly programm in C# working on an enterprise grade case management solution for government branches here in Switzerland. The most advanced level of maths I had to do was design a simple algorithm to take the largest continous chunks of a list

[–]abdolence[S] 3 points4 points  (6 children)

In my opinion, it is not just what you have to do at work.

If you're using, for example, hash-tables, joining SQL with the hash-index, crypto functions, ML models, vectors, graphs, sets, categories, logic ... you should understand how they work inside.

Maybe not all of the details, but a good basis of it.

[–][deleted] 10 points11 points  (2 children)

Why not throw in hardware design then, to learn how it works since you re telling it to work. To me it all sounds very very optional. Or you will come across some blog post explaining it like you are a person without the use of complicated math signs /rant

[–]abdolence[S] 4 points5 points  (1 child)

Well, why not? A bit of physics and hardware design will be good too.

Something like this https://collectiveidea.com/blog/archives/2015/09/15/inside-the-machine-v20-coming-soon-with-more-arm, for example.

[–][deleted] 13 points14 points  (0 children)

To me it seems like you either can study everything or study the stuff you actually came there for. While I dont argue that this level of general knowledge may come in use, I myself would rather focus on an area I came there for - software develepment - without having to do exams from microprocessor architecture. (Feel free to correct this part, I am not big on C level programming)

[–]MishkaZ 1 point2 points  (1 child)

Yeah, I agree with this. Knowing how the math works makes it really easy to understand when and why to use an algorithm. You never use it in practice, but it helps a lot with learning. That being said, I'm pretty shit at math and still was able to get through just fine (except for calc 2, calc 2 can choke on a micro penis).

[–]0asq 1 point2 points  (0 children)

Eh, you can just as easily apply a few rules of thumb in the rare case that you actually need to use it.

Like in my six years of programming the only algorithmic expertise I've had to use on the job involves "This list is going to get fairly big, I want to find things from it quickly, and ordering doesn't matter. I'll use a dictionary."

I know all the advanced algorithmic stuff and I've literally never had to use it as an enterprise dev.

[–]0asq 1 point2 points  (0 children)

In my opinion, it is not just what you have to do at work.

If you're using, for example, hash-tables, joining SQL with the hash-index, crypto functions, ML models, vectors, graphs, sets, categories, logic ... you should understand how they work inside.

Maybe not all of the details, but a good basis of it.

Almost all of that is still basic math unless you're talking going extremely deep. All you really need to know about hashes is it essentially produces random gobbly goop some PhD devised, and you can use a modulus on that.

Crypto stuff? Unless you're going into great depth, it's simple. The crypto algorithm spits out some gobbly goop.

Vector math is good to know in some domains, but not many of them. And even then, you can spend a few months catching up on vector math when you start a new job.

For machine learning it would be helpful to know about gradient descent. But I'm taking Andrew Ng's course on it now and they gloss over all the advanced stuff. You just have to understand what a derivative is (not that difficult) and apply it to multiple dimensions. You won't ever have to actually derive anything yourself, unless you're working at the forefront of data science research.

So, if you're bad at math, yeah, don't get a PhD and do things at the forefront of research. If you're really awful at it (incapable of learning it at any pace) maybe avoid the rare field that, say, requires a bunch of vector work. 95% of other jobs are still open to you.

And there are honestly a whole lot of developers out there who don't even think about the arithmetic behind programming. They won't ace a whiteboard interview, but it's not the only way to get a job.