闇落ちSIerの日常

SIerのはずですがIT関係は少なめにほぼ愚痴。全て愚痴。

プログラムの勉強の仕方がわからない

プログラムを勉強したいと思う人の中で、「C言語やらJavaやらPythonやらいろいろあってわからない。まず何から始めればいいんだ?」となる人が多いのではないだろうか。しかも言語だけじゃなくてフレームワークとかの名前も飛び交うことがあるので余計混乱する。実際僕も始めたころはVB6とVB.NETの何が違うかもわからなかったし、C#と.NETは無関係の間柄だと思っていた。

アドバイスする側は、自分が教えるのであれば得意な言語をオススメするのかもしれない。だが、多くの場合は「プログラムで何を作りたいの?」と質問して、回答に適した言語をオススメするだろう。実に合理的な行動だと思う。目的を明確にすることは何よりも重要だということが身体に染みついているのだろう。
目的がなければ、まず何を作りたいかを考えてから勉強することをオススメされるのであろう。役に立つことがわかってから実施しなければコスト(時間)が無駄になることを覚えさせられているのだろう。

では、目的がない人は勉強する意味がないかと言われれば、そんなことはないだろう。中学校で三角関数や中世ヨーロッパの歴史を目的を持って学習する人が(たぶん)いないように、学習すること自体も大切であろう。
だが、ここで問題になるのは「どう勉強するか」である。初心者中の初心者であれば適当な流行り言語を選んでコンソール入出力や対話プログラムを作るところから始めればいいのかもしれない。だがそういう初歩的な部分をクリアした、中級者はどうすればいいのだろうか。

自作のツイッタークライアントでも作るか?スマホ向けのゲームアプリを作ってみるか?ローカル空間で情報を管理するWEBサイトでも作ってみるか?なんだか一気にレベルが跳ね上がった気がする。スライムを倒したら次はドラゴンが襲ってきたような感覚だ。

なんだかこう、スライムとドラゴンの中間になる、オーク的な、適したレベルの内容はないのだろうか。この間までスライム狩りをして意気揚々としていた僕には、ドラゴンはまだ強すぎる気がしてしまう。