ノンプログラマーのアラフォーが競プロを1年続けて得たもの
競プロ大好きなsyunsukeです。
タイトルの通り、競プロを始めて1年が経ちました。
今回は、
・なんか最近プログラミングが流行ってるのは気づいてる。
・でもプログラミングは怖い。
・そもそもプログラミングが必要な職種じゃないし。
・でもやっぱり少しは勉強しないと世の中から取り残されるのかな?
・いややっぱりプログラミングは難しそうだし。
なんて考えている方に読んでいただければ幸いです。
~目次~
①syunsukeはこんな人
②プログラミングを始めたきっかけ
③競プロを始めたきっかけ
④競プロをはじめてからの変化
①syunsukeはこんな人
以前の記事を読んでいただいている方にはくどいですが、syunsukeはこんな人です。
・40歳の子持ちサラリーマン
・化学系の技術屋
・プログラミング経験なし
②プログラミングを始めたきっかけ
たまたま読んだ意識高い系(笑)のビジネス誌にpythonは、
・習得が簡単 (これは本当だと思います)
・機械学習が簡単にできる (フレームワーク・ライブラリの充実で
他言語よりは)
・データサイエンスが簡単にできる (強力なライブラリがあるので他言語よりは、
でもRと比べたらどうなんでしょう)
・webアプリが簡単に作れる (Rubyの方が日本語情報を入手しやすいような)
・動作が速い (どう考えてもウソです)
・とにかく万能 (意味がわかりません)
的なことが書いてあり、騙されて?pythonを学んでみることにしました。
pythonの初歩はpaizaで無料で学べるので、試してみました。
最近の学習は動画が使えて効率良いですね、2カ月で無料学習を終えました。
③競プロを始めたきっかけ
paizaの無料学習を終えた頃、他のプログラミング学習を探していて、競技プログラミング(競プロ)の存在を知りました。
競プロサイトはいくつかありますが、中には日本語サイトもあるようで、その日本語サイトがAtCoderでした。
チュートリアル的な問題を解いてみたら、提出までの流れも簡単。
実際のコンテストの過去問も解いてみました。
(これが2018年5月2日なので、ちょうど1年が経ちました)
どうやら週末の夜にコンテストを開催しているようなので、さっそく参加してみました。
④競プロをはじめてからの変化
1.0カ月~2カ月 レート 0⇒1000
コンテストに参加すると、自分のプログラミングスキルを表す「レート」が付きます。
レートは数値で表されるので、簡単に人と比べられるんです。
ただ、コンテスト参加回数が少ないと、レートは過少評価されるそうです。
逆に、最初のうちは、参加回数が増えればレートが上がるので楽しかったです。
そんな感じで週末のコンテストが楽しみになり、コンテスト参加が習慣になりました。
でも、このころは基本的に精進(競プロの練習をすること)はコンテスト時とその復習のがメインでした。
2.2カ月~6カ月 レート 1000⇒1000
最初の2カ月は、コンテスト参加回数が少なかったので、コンテストに出るたびにレートが上がりました。
でも、2カ月が経ち、参加回数が増えたので、コンテストに出るだけではレートが上がらなくなりました。
週末以外の精進を増やしてみましたがレートは上がりません。
このころtwitterを始め、コンテスト参加者をフォローし、またフォロワーも増えてきました。
競プロを通じて得たもの その1
共に学ぶ仲間
フォロワーさん達はみなモチベーションが高く、負けてはいられないと、私もやる気になります。
現実の世界では倍くらい歳の離れた方々に交じって学ぶのはなかなか大変でしょうが、ネット上ならなんの問題もないですね。
フォロワーさんの中には、私を大学生くらいと思っているかたもいるのではないでしょうか?(すみません、調子にのりました)
また、AtCoder ProblemsやAtCoder Scores等、有志の方が運営されるサイトを知ったのもこのころです。
twitter、AtCoder Problems、AtCoder Scoresを通じて、自分の努力がいかに足りていなかったかに気づきました。
競プロを通じて得たもの その2
新しい世界で半人前になるまでに必要な努力の目安
20年くらい前の受験勉強のころは、他人がどれだけの努力をしているかなんて、なかなかわかりませんでした。
でも、今は便利なツールやサイトのおかげで、それが見えるんですね。
はっきり努力不足を見せられました。
逆に、足りないのは努力であって、才能ではなさそうなことにも気づきました。
3.6カ月~9カ月 レート 1000⇒1200
努力の不足に気づいてからは、毎日精進しました。
毎日精進を始めても、すぐにはレートは上がらず、精進から少し遅れて上がりだしました。
めでたくレートは1200を超え、また日経新聞がスポンサーについたコンテストでたまたま過去最高レベルのパフォーマンスが出て、イベントに参加する権利を得ました。
競プロを通じて得たもの その3
その分野のトップレベルに会う機会
イベント会場にいるのは私よりレベルの高い人ばかり。
強い競プロerたちを見て、話して、空気、雰囲気を感じてきました。
普段はネット上でしかやりとりがなく、リアルで競プロerに合うのははじめてでした。
あたりまえですが、みなさん競プロをしているだけでなく、研究や、仕事で活躍されているわけです。
しかもイベント会場にいる方々は間違いなく国内トップレベルのプログラマーでしょう。中には世界のトップレベルも。
競プロをしていなければ、まず会う機会のなかった方々です。
意識高い系(笑)のビジネス誌に騙されて始めたプログラミングですが、そんな方々に合う機会につながりました。
4.9カ月~12カ月 レート 1200⇒1200
レートが再び上がらなくなりました。
精進は毎日続けていますが、質も量も落ちています。
ですがこれは分かっていたことで、競プロ以外のプログラミングの学習を始めたからです。
競プロだけがプログラミングではないことに気づき、他の事にも活用してみたくなりました。
Udemyの動画で、web系アプリの作成や、他の言語などなどを学び始めました。
上述の通り、新しい分野で半人前になるにはどれくらいの努力が必要かはわかります。
また、プログラミングの難しそう、とっつきにくいといった感覚はなくなっていました。毎日プログラミングをする中で、基本的なスキルは身についていたようです。
競プロを通じて得たたもの その4
基本的なプログラミングスキル
フレームワークやライブラリの使い方を覚える必要はありますが、プログラミングそのものには苦労しなくて良さそうです。
そうなると、どれが自分に適しているか、自分の仕事に生かせるのは何か等学びたいことが増えてきます。
また、プログラミングが怖くないので、情報分野を広く(とても)浅く眺めて、web系なら何と何を学ぶ必要があり、機械学習ならこれとこれ等の目星がつくようになってきました。
情報系の方々ならば常識なのでしょうが、そうでない者からすればその目星はなかなか得られないものです。
そして、そもそも最初の意識高い系(笑)の雑誌を読んだのも、そのへんの目星が欲しかったからです。
どうやらずいぶんと遠回りをしたようですが、競プロを通じて欲しかったものは手に入れました。
また1年後に記事を書くころには、学ぶ分野を決め、何かを習得しているのでしょうが、それが何なのかは現時点ではわかりません。
今は気になるものにはまず手をつけてみて、自分に必要なもの、相性の良さそうなものを探してみたいと思います。
最後に、競プロを通じていろいろなものを得ましたが、私に一番影響が大きかったのは、「学びたい気持ち」です。
とにかく学ぶために時間を確保、長い時間はなかなか手に入らないので隙間時間も有効活用。
おかげで人生の充実度が上がった気がします。
なんとなくプログラミングに興味があるならば、競プロはおすすめですよ。
競プロを通じて得たたもの その5
学びたい気持ち