前のお二人と同じような内容ですが私も少し。
言語さえ理解していれば良いというものでもないですよね。
自分が思うに、「作る」という事は、先ず経験と、次に発想力が大切になってくると思います。
例えば、2つの変数の値を交換する、というプログラムを書くときも、
int z;
z = x;
x = y;
y = z;
という簡単なものもあれば、
#define Trade1(x,y) (x ^= (y ^= (x ^= y) ) )
#define Trade2(x,y) (x ^= y, y ^= x, x ^= y)
のような変な事をする方法もあります。( Trade1,2は同じ )
また、以前にも書いたことがあるのであれば、それを使えば一発で終わります。
画像や音を使うために、使用するライブラリによっても、使い勝手や機能が異なってくるので、
無いモノを自分で新しく作ったりしなければなりません。
そこで「じゃあDxLibを使用する場合はどうなるんでしょうか。」って事になるんですが、
前述した通り、万人皆同じ考えを持つとは限りませんから、大小差が出てきます。
発想力が凄かったり、経験がある人は1ヵ月も経たずに完成させてしまうかもしれません。
しかし、ただ人の言葉だけをインプットされた子供のような未経験の人は、何をして良いか分からず、何かある
ごとに壁にぶつかり、試行錯誤の日々が続き、1年2年掛かっても進まず、最後は嫌になって挫折します。
これは経験のある人でも同じです。水泳が得意な選手に突然、水蜘蛛の術をやらせても、まず沈むでしょう。
御津凪 さんや、 s-rush さんが言ったように、最初は恥ずかしくて見せられないような駄作でも良いので、
自分のスタート地点を探して、そこから作る事をお勧めします。