I am not saying that you need to read all the papers before coding a line, but the approach of coding your way into it will give you more shallower knowledge if you don't follow up with the theory.
I would be careful to claim that with theoretical approach you will always get better understanding.
Your examples may work, a couple of testing sets giving you high confidence, and then you attempt to use it in the wild and everything falls apart.
At the same time machine learning is a lot about data cleaning, bootstrapping, picking the right algorithm with mininum iteration, minimizing your iteration cycle as much as possible etc which you don't gain until you actually mess around and get your hands dirty. Plus there are little implementation tidbits specific to each project.