You certainly should take an algorithm class (better yet, two) and/or work through -- including the homework problems -- two to three algorithm text books (I highly suggest Knuth's TAOCP, CLRS <i>and</i> Steve Kiena's Algorithm Design Manual). However, after that, you will:<p>* Become more aware of the shortcomings of your knowledge of algorithms (both directly -- algorithms which you don't yet know/understand and indirectly -- algorithms which don't yet exist). That's a <i>huge</i> benefit.<p>* Learn a bit the analysis of algorithms and how to prove an algorithm correct<p>* Learn a bit about algorithm design<p>* Most importantly, you will learn about classes of problems, classes of algorithms and several implementations of these classes of algorithms. You will be able to reason from "real world problem" to "falls under these classes of problems" to "solvable by these algorithms" and then apply an instance of an algorithm to the problem.<p>You <i>will</i> not become an algorist (that would take its own ten years), nor will you become a programmer. It will certainly <i>help</i> you become a programmer, but there's more to programming than algorithms.<p>That being said, there's a path to be crossed. At one stage one thinks that writing graphical demos in assembly or  (depending on the decade) web apps backed by databases is the "golden nugget" of programming. Then there's the road through learning algorithms, data structures and non-imperative programming languages, which is culminates in  writing your own compiler (or any other project which requires a great deal of <i>coding</i> and puts together data structures, algorithms, hardware/OS knowledge, theoretical CS knowledge e.g. automata and language theory). There's a lot more that follows until one becomes a great programmer, but I can't tell you what those "milestones" are, as I am not there yet.