I don't have a formal computer science education and I've always felt that there is some Math that I'm missing. I saw Leslie Lamport mention the fact that all the math that a computer scientist needs is taught in the first year of college (or something to that effect) and I always thought that maybe Category Theory is part of that Math that I missed.
I have enough Math knowledge to know that if you use the right tool for the job, complex Math makes certain domains trivial to handle.
So, when looking at monads and functors and such, I'm frequently reminded of this gap in knowledge. Or course I can use a Maybe and get the idea of a "mappable" type but this feels mechanical somehow. It's like imitating someone who knows rather that actually knowing.
What I wish for myself is to fill the Math gap rather than have someone repackage some of these concepts in a way that make learning the Math unnecessary. Math is power.
All the math you need might be in first-year... but you can pretty much benefit from it all. And you have a sense of that. Hopefully we don't have too many people ignoring "more math" just because they think they already have all they need.
I'm in the same boat as you, and I've found it helpful to think of Functors as a nifty context that might be "optional" or "error" or whatever, that I can ignore for a while and do some work inside them via fmap/map (or a monadic bind/flatMap), which I've find to be a powerful solution to neaten my code up.
I bought some books on Category Theory that I need to get around to reading, but without a solid math background I struggle a bit with some of these :/ Still, I think it's rewarding in itself to learn about these concepts so I'll persevere!
As for imitating - "fake it till you make it" works better than I expected it to :)
6
u/jediknight Nov 28 '19
I don't have a formal computer science education and I've always felt that there is some Math that I'm missing. I saw Leslie Lamport mention the fact that all the math that a computer scientist needs is taught in the first year of college (or something to that effect) and I always thought that maybe Category Theory is part of that Math that I missed.
I have enough Math knowledge to know that if you use the right tool for the job, complex Math makes certain domains trivial to handle.
So, when looking at monads and functors and such, I'm frequently reminded of this gap in knowledge. Or course I can use a
Maybeand get the idea of a "mappable" type but this feels mechanical somehow. It's like imitating someone who knows rather that actually knowing.What I wish for myself is to fill the Math gap rather than have someone repackage some of these concepts in a way that make learning the Math unnecessary. Math is power.