プログラム言語の本を読んで、文法を覚えたとしても、それは知らない人から、初心者になっただけです。
まぁ、初心者、中級者、上級者の定義はいろいろあるでしょうが。
私自身、初心者から抜け出せずに苦労しました。
基本的に、1000行程度のプログラムと1万行を超えるプログラムでは、かなり差があるように感じます。
1万行クラスになると、構造をしっかりしないと大変なことになりますからね。
また、単機能ではなく、複数の機能を持ちますので、リソース管理などが重要になります。
このリソース管理手法や複数のタスクを並列に動作させる技法とか、プログラムの文法書や入門書に載っていませんよね普通。
【昔の話】
昔、若かりし頃、DirectXを勉強しようとしました。
しかし、昔は今ほど、サンプルソースが充実していない時代でしたので非常に苦労しました。
確かに、本を読んで原理や仕組みは判ったけど、実際のゲームを作るまでの差は大きかった。
ポリゴンが出せるようになりました。
テクスチャーを張れるようになった。衝突判定も判った。
でも、3Dゲームの作り方は判らなかった。
まぁ、DirectXの本を読んで理解しろというのが無理なんですが。
この際、やっぱり役に立ったのが、オープンソースのソースコードですね。
そのソースコードを呼んで色々と勉強しました。
今の時代でしたら、付属のサンプルを読むだけでも、非常に勉強になると思います。
いきなりオープンソースは辛いので、
数百行〜3000行程度のサンプル
→ 数万行のオープンソース
という手順が良いと思います。
会社でしたら、普通に会社の古いソースを見るのも、手ですけどね。
で、それらを読んでいて、判らない技巧に出会ったら、調べる。
例えば、デザインパターンは有益な知識ですが、システムと一体化しなければ、いまいち使うタイミングや有難味などは判りません。
読むだけだと動作のイメージがわかないので、デバッガを使って、動作の感覚を得ます。
そして、ある程度理解したら、それらを少し改造するところから始めました。
アレンジですね。
そのアレンジがある程度こなれてきますと、要約、オリジナルが作れるようになりました。
この方法は、だいぶ回り道のような気がしますが。
3〜4作品のソースを見ますと、勘所というのが、少しわかったような気になります。
う〜ん、いまいちの文章だったな・・・