今プログラミングを学習するなら

CocoaWPFも捨てがたいですし(環境依存だけど)、Airも環境としては悪くない(ActionScriptは言語としてはいまいち。動的言語にしたいんだか、静的型にこだわるんだかはっきりしろ)ですが、まぁ、順当に考えるとJava一択でしょう。
よくできたIDE(EclipseでもNetBeansでも)と、よくできたSwing(SWTはリークが怖いので好きじゃない)に、JIT掛かりまくりの高速実行環境。ついでにきちんと書けば環境非依存だし、Java5で追加された拡張forとジェネリックコレクションがあれば、まぁ、ほとんどのことは困らないでしょう。
いまさらCでもないよね、とはランタイムがいろんな事をやっつけてくれる環境に慣れた人間の発想です。そりゃ、書けと言えばかけるけど(C自体はかなり長く使ってるし、OSのカーネルはCに近い言語じゃないと難しい)、喜んで使いたくはないなぁ。
何より、Javaは非常にバランスの取れた言語なので、Javaを覚えればいろんな言語に応用が利きます。C#ECMAScriptにもすぐに移行できますし、オブジェクト指向に慣れ親しむだけでも得られるものは多いです。
とはいえ、組み込み向けゲームプログラマーを養成するのにJavaってわけにもいかないよなぁ。いきなりC++STLから始めるのが良いのかな。C++は意識しないとポリモーフィズムしないのが面倒なんだよね。参照(ポインタ)と実体が混在できてしまうし、オブジェクト以外の型を平気で使えちゃうし。
だいたい、組み込み環境でnewしまくって大丈夫なのかな? NintendoDSとか、ヒープは少なそうだしなー。それでも今時はワークメモリは多めか。