プログラミングの勉強は英語の勉強と同じように実践と文法の理解のどちらも必要で、どちらか一方だけでは深い理解は得られません。
また、どちらか一方だけを深く理解しようとしても身につきません。
知識は自分の頭の中の知識ネットワークに組み込むことで体系的に全体が理解できます。
私の場合は、以下のような感じです。
1. 基本的に実践を進める
2. わからない用語はメモして軽く調べ、とりあえずわかった気になって進める
3. 同じ用語がまた気になったら、それについての詳細説明を読んで理解する
4. 時々基本的な知識を学習し、実践してきた内容との関連付けをする
これで、実践的な学習と基本的な知識がお互いに関連づいて(マッピングして)頭の中で地図ができると全体がわかるようになります。
基本的な知識の習得に関しては、例えば情報処理関係の資格試験の勉強などもおすすめです。
プログラマとしてやっていくのに資格はほぼ不要ですが、資格試験では網羅的に基本知識を勉強することができるので、自分が習得してきた実践知識と一般的・汎用的な知識との関連付けができるようになります。
資格を取ること自身にはあまりメリットはありませんが、体系的な知識を得るという点ではメリットがあります。