【プログラミング】プログラミング勉強おすすめ方法「初心者~中級者」

研究で必要なプログラミングは学んだけどこれでいいのかなあ??

文系でプログラミングやってみたいけど何から始めればいいのかなあ??

近年急速なIT化によってプログラミングに興味を持っている方は多いのではないでしょうか?「猫でもわかる○○」や「入門○○言語」など本屋でも多くの書籍をみかけるようになりました。

しかし、これらの本を買って勉強したとしても、なかなかプログラミングの学習が進んだという実感を感じにくいというのが正直なところだと思います。

今回はこんな悩みを解決できるようなお勧めのWebサイトを紹介したいと思います。あくまで個人的な感想ですので、一回ご自身で確認してみて合う合わないを判断していただければと思います。

なぜプログラミングの学習の実感がわかないのか?

まずは、なぜプログラミングの勉強をした際に”やった感”が感じにくいのかについて考えてみましょう。

例えば中学や高校での定期試験を考えてみてください。「公式を覚える」ことがテストの点数という意味での成績を上げることへの近道だったのではないでしょうか?先生が重要というところに線を引き覚えれば点数は上がる。

私自身、このような勉強方法をとっていました。しかし、このような形だけ覚える勉強は後々役に立ちません。私は理系ですが、中学高校で学んだ社会科目のことはほとんど記憶にないのが現状です。

一方で、公式よりも考え方を学んだ学問はどうでしょうか?文系の方は歴史についても流れがあり、その流れをベースとして学んでいれば詳しいことは別にして理解している。理系の方は数学の公式は覚えていなくても、こういう流れで計算すれば公式も導き出せるし、問題も解けるといった場合が多いのではないでしょうか。

少し話がそれましたが、プログラミングにおいても同じです。教科書に記載されていることをそのまま勉強しても公式を全部頭に入れようとしていることと同じです。もちろんベースとなる関数や表記については暗記する必要がありますが、すべての関数を覚えることは到底不可能です。

では、ベースを覚えるとはなんでしょうか?正直明確な答えは私自身導き出せていません。しかし、教科書を辞書にして自分で何かを作り出すことができるようになればベースが覚えられている。さらには、自分で作り上げることにより、プログラミングについて学習している実感というのがわくのではないでしょうか?

次に紹介する二つのWebサイトは”自分で何かを作り上げる”ことによる学習の実感を得ることができると考えているサイトです。

Codingame

一つ目に紹介したいWebサイトはCodingameというサービスです。すべて無料で行うことができます。こちらはゲームを作り上げているイメージでプログラミングを行うことができます。

初期のEasyのところでは簡単なINPUTから指定された処理を行いOUTPUTするものが多いです。百聞は一見にしかずですので、画面を載せたいと思います。こちらはEasyに分類されているものです。

こちらは画面左の人間の位置と稲妻の位置がINPUTで与えられて、最短経路で人間を電までたどり着かせるようにプログラミングするものです。おそらく少しでもプログラミングをかじっている人にはなんとなくどうやって処理を書くかイメージがついているかと思います。

実際に自分が書いたコードが機能するかどうかは左上の部分がアニメーションのように推移して確認できます。実際に書くコードは簡単でも”やっている感”はありますよね。これは簡単なものの場合ですが、応用のものも多く用意されています。

一番難しいVery Hardの欄を下に載せておきます。

これだけ見ても何が何だか。。という感じですが、一番左のは任天堂が用意した問題です。これが解けるのであればこの記事は読んでいないかと思いますが、問題数や難易度は十分なほど用意されているため、自分にあったものから始めていくことが可能です。

以上で述べていない点についても実際に使ってみて、良い点悪い点を簡単にまとめておきます。

ゲームを作り上げている感覚で基礎的なことから応用までプログラムが書ける。

日本語表記がないので、最低限の英語が読めないと難しい。ものによってはヒントがない場合がある。

Codingameのサイトアドレスはこちら↓
https://www.codingame.com/start

AIZU ONLINE JUDGE

次に紹介したいWebサイトはAIZUです。こちらもすべて無料で行うことができます。上のCondingameとは異なり、ゲームの要素はありません。しかし、基礎的なことから応用的な要素まで多くのことが練習できます。

こちらは一番簡単なIntroductionのページです。もちろんこれ以外にも多くのページが用意されていますので、自分にあったレベルから始めていけると思います。

ゲームの要素がないなら、こちらのメリットは何なのでしょうか?AIZUでは、ほかの人が投稿したコードを見ることができます。同じゴールでもコードは人それぞれです。教科書ではたいてい一つの簡潔な答えしか載っていないと思いますが、自分が書いたコードは完全に一致していない場合が多いと思います。

プロセスは人それぞれなのに自分があっているかどうかわからない。この悩みはこのサイトなら解決できるかと思います。ものによっては遠回りをしているものもありますが、正解は正解です。自分のコードの書き方に似た答えを見つけて正解に近づけることが可能です。

いろいろな答えを見ることができる。日本語に対応している。

若干教科書の延長感がある。サイト上のエディターが若干使いづらい。

AIZUのサイトアドレスはこちら↓
http://judge.u-aizu.ac.jp/onlinejudge/index.jsp


今回は、プログラミングについて達成感のなさに悩んでいる方や何か達成感を得たい方に少しでも助け船が出せたらなと思います。これ以外にも良いWebサイトは多くあると思います。自分に合ったものを見つけてプログラミングの学習を楽しんで進めていきましょう!

コメント

タイトルとURLをコピーしました