Taking algorithms as a self-taught programmer has thus far been an interesting experience. My years hacking on stuff has left me with an ability to "see" solutions to problems, but now I need to sit down and prove the correctness of these solutions. Often, there are cases in which they don't hold water, and I don't think that's something I'd be able to realize that if I weren't reasoning about them with this level of rigor.
"I appreciate SDF but it's a general-purpose server and the name doesn't make it obvious that it's about art." - Eugen Rochko