top | item 44097924

(no title)

modulovalue | 9 months ago

The university I went to started its math education with groups, which is really unfortunate and they never even mentioned monoids.

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.

discuss

order

david-gpu|9 months ago

> 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 [...] 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.

devrandoom|9 months ago

Also, one important thing I've learnt is not to take in advice from obnoxious people.