nashidos’s diary

アルゴリズムとか機械学習とか色々

Progateが終わったら次はAtCoderがおすすめな理由

ProgateHP

本記事ではProgateが終わったら次にすべきことについて私自身の考えを述べていきます。

Progateが終わったら次は「自分で何かを作ってみるといい」ということがよく言われますが実際のところはどうなのかについて考察していきます。



「自分で何かを作る」は正しいか?

この問いに対する私の答えは半分Yesです。

例えば、HTMLやCSSなどの言語の場合は早速自分で何かを作ってみるというのは非常に良いと思います。

しかし、PythonJavaなどの言語の場合一概には自分で何かを作るのはあまりおすすめできません。

Progateは基本的な文法などをインプットする場なので、次にするべきことがアウトプットであるということは大賛成です。

ただ、そこでいきなり何かシステムやアプリを作るというのは注意が必要です。

適切な難易度設定が困難

なぜ注意が必要かというと、「初心者は自分がどの程度のシステムを作ることができるかわからない」から。

難易度が高いものを選ぶとProgateで習ったこと以外の知識が多すぎて学習の負荷が非常に大きなものになります。

習ったこと以外の知識のインプットProgateで習った内容のアウトプットを同時に行わなければならないのでそれは学習の負荷が大きくなって当然ですよね。

負荷が大きくなりすぎた結果、途中で挫折してしまいプログラミングに対して苦手意識をもってしまいます。私の身の周りでもこのパターンの学生は非常に多く見受けられました。

コピペ作業になってしまう

また、他に見られたパターンとして「とりあえずネットの記事や動画教材を参考にして何かを作った」というパターンです。

もちろんちゃんと理解して作ることができた人ならそれは良いことだと思います。

問題は「ただコピペをしたらなんとなく動いた」というパターンの人です。このパターンも非常に多く見受けられました。

ただコピペして動かすだけでは、自分で考えてコードを書くといった能力が身に付きません。

自分で考えてコードを書かなければプログラミングの能力もなかなか上がらないと思います。

AtCoderがおすすめな理由

AtCoderHP

先ほどあげた問題を解決し、なおかつ適切に学習を続ける方法として私はAtCoderをおすすめします。

AtCoderをおすすめする理由は3つあります。

  • 初心者向けの問題が用意されている
  • 自分で考えてコードを書くことができる
  • 就活にも使える

ひとつ目の理由ですが、Progateで習った内容をアウトプットするのにちょうどいい難易度の初心者向け問題がAtCoderでは用意されています。

AtCoder競技プログラミングと聞くと難しそうな印象を抱くかもしれませんが、問題は難易度別に分かれており、A問題やB問題などはProgateで習った内容で十分解ける内容になっています。

例えば以下のような問題を見てみましょう。

atcoder.jp

問題文

3 個の整数 A1, A2, A3が与えられます。
A1+A2+A3が 22 以上なら bust、21 以下なら win を出力してください。

標準入力、足し算、if文、標準出力さえできればこの問題を解くことができます。

この問題のようにAtCoderにはたくさんの初心者向けの問題が用意されています。

ふたつ目の理由ですが、AtCoderでは自分で考えてコードを書くということがしやすい環境になっています。

というのも、AtCoderではほぼ毎週オンラインコンテストがあります。

そこでは指定された時間内により多くの問題を1から自分で解くことが要求されます。

コンテストなのでもちろん他人のコードをコピペをすることはできません。(ネットで拾ってきたコードを利用して書くのはOK)

したがって、コンテストではコピペしたくてもできないので嫌でも自分でコードを考えて書かなければなりません。

最後の理由ですが、AtCoderで結果を残すことによって就職に有利になるかもしれません。

AtCoderにはAtCoderJobsというコンテストの結果を利用して企業に応募できるサービスがあります。普通に応募するよりもAtCoderJobsを経由することである程度の実力を相手に伝えることができます。

AtCoderJobsに載っていない企業の場合でもAtCoderで〇色です。といったアピールも非常に有効なのではないかと思います。

Paiza

AtCoderに似たサービスとしてPaizaもあります。

PaizaHP

こちらはコンテスト形式ではないのですが、答えを公開していないので、自分で考えてコードを書くということができます。

しかしPaizaの悪いところとして、答えを全く公開していないという点が挙げられます。なので、自分がなぜ間違えたかがわかりません。

AtCoderではコンテスト中は答えはわかりませんが、コンテストが終了すると解説の動画と他人のコードを閲覧することができます。

さいごに

Progateが終わったら次にすべき学習について私なりの考えを述べてきました。もちろんこの考えが絶対的に正しいわけではないので注意してください。

例えば、学習の負荷が大きくても問題なくこなせる人や適切な難易度の目標設定をたてることができる人もいると思います。

ただ、もし今Progateを終了し、なにかしらのシステムが作れずプログラミングで挫折しかけている人やすでに挫折してしまった人はAtCoderを一度やってみてもらえたらなと思います。

おわり