How can one be able to learn more about security if not implementing such things himself and learning from his faults ?!
Of course trying to implement it is a good way to learn, but only if you confront it to test and inspection by experts and state it as such, without trying actually using it in production.
The big problem here is that the "learning experience" may happen only after you got succesfully attacked. (you may believe you have learned something whilst you just learned to create big security holes for your company)
A lot of people may simply not realize that they are the umpteenth clever guy thinking "hey, I should implement this algorithm, I will learn and then I'll have some nice functions to reuse, it's much more simple than adding those big libraries that seem too complicated for what I want".
In a general manner, "reinventing the wheel" is interesting as a learning experience, as long as it stays in sandbox, and/or is reviewed by experts as much as what is at stake requires.
If you implement a sort algorithm a bit badly, then what you mostly risk is having a created a poor performance app or even you might have a bug that lead to a security issue. (Note that the performance issue could be catastrophic if your customer depend on it, maybe even as much as a security breach could be)
If you implement a cryptographic algorithm badly then you probably will have a security breach. And people doing this individually have a very hig probability of implementing crypto badly. And this is often very problematic for any customer (and yourself)
Using your sandbox crypto toys in the real professional world could have very nasty consequences for your customers.
Yes you can learn from it, but it's better to warn everyone that seem uninformed that you should not play with crypto in production.