スタディPRIMEのしろです。
この度、paizaラーニングというサイトのスキルチェックでSランクを獲得したので、その感想などを書いていきます。

こちらはSランクを獲得した時のスクリーンショットです。ちなみに、S獲得直後のレートは1616(± 100)
でした。
Sランクってどのくらいのレベル?
paizaのページを参照すると、Sランクは上位2%くらいになるらしいです。
chokudaiさんによると、他サービスとAtCoderの色を比較すると、茶は1〜2%くらい、緑は1%くらいだそうです。
ということは、私はAtCoderなら茶〜緑くらいのレベルになるんでしょうか🤔
競技プログラミングには全く興味がなく、全然取り組んでいないので、茶色が妥当なところですかね?
軽く自己紹介
「まずお前誰やねん」という方が多いと思いますので、軽く自己紹介いたします。
記事執筆時点で、私しろは医・医 所属の6年次です。1浪しているので、24歳になります。
プログラミング歴についてはこちらの図をご覧ください。
- 2020年3月プログラミング学習開始
大学合格が決まると、以前から興味を持っていたプログラミングを学習開始。このとき触り始めたJavaが今でも一番の得意言語。
- 2020年6月GitHubに自作アプリのコードを初めてpush
- 2020年10月paizaラーニングと出会う
10月末までにCランク獲得
- 2021年2月Aランク獲得
- 2025年8月Sランク獲得
こうやって振り返ると、Aランクを獲得するまでに1年弱、Aランクを獲得してからSランクを獲得するまでに4年半かかっているんですね。
Aランクまでは速かったですが、そこからとても時間がかかりました。
Aランクまでは何をした?
実は、特にこれといった対策はしていません……。私の感想ですが、Bランクまでは問題の意図を理解して、正しいコードを書ければ上がると思います。
『そもそも、問題の意図を理解するのが難しいんじゃ!』という方もいらっしゃるかもしれませんが、私の場合、受験対策の数学の勉強で鍛えられた部分が大きいので『これやったらいいよ』という解決策は提示できません……ごめんなさい。
Aランクからは処理の中身が正しいだけでは不足しており、処理速度が問題になってきます。
しかし、個人的にはボクシングや余計なインスタンス生成を避ける、明らかに不要な枝葉の探索をカットする程度で達成できたように思います。
ボクシング(Boxing)・アンボクシング(Unboxing)
Javaでは、プリミティブ型とそのラッパークラスを区別せずに扱うと、プリミティブ型が自動的にラッパークラスに変換される(ボクシング)、またはその逆(アンボクシング)が発生します。
ボクシングでは内部的に new Integer()
相当のオブジェクトが生成されるため、オブジェクトが大量に作られるとガベージコレクション(GC)が増え、処理速度に悪影響を与えることがあります。
これらは私が当時作成していたアプリの中でも意識していたというのもあり、サクッと上がれたのではないかと考えています。
Sランク獲得のために何を勉強した?
Sランクに上がるために勉強したこと、すなわち、Aランクを獲得した後に意識して学習したことは次のようなものです。
データ構造


アルゴリズム基礎



グラフ




元々は、問題が漸化式で表せそうだということに気がついたことから始まります。
漸化式で表せる
↓
再帰関数を使えば解けるのではないか?
↓
Javaではスタックオーバーフローする
↓
自力でスタック管理する必要がある
という形で、配列やリスト、スタック、キューといったデータ構造と向き合うようになりました。
これで全探索はできるようになったのですが、ここで新たな壁にぶつかりました。それが……
全探索していては、制限時間内に計算が終わらない
というもの。
余計な枝葉を落とすことで計算量を減らし、時間内に終わるようにしないといけなかったのですが、その枝葉の落とし方でつまづいてしまいました。
そんな中出会ったのが、グラフ理論とグラフ探索でした。
探索アルゴリズムと出会ったあとは?
探索アルゴリズムと出会ってしまえば、あとはトントン拍子で進みます。
その探索アルゴリズムをサクっと書けるように練習すれば良いだけなので。
最も時間がかかったこと
個人的に、最も時間がかかったのはグラフ理論や、動的計画法というキーワードに辿り着くことでした。
私自身は情報系の学生ではありませんし、そもそも、アルゴリズムにお金をかけるほど興味があったわけでもないためpaizaラーニングに課金もしていません。
当然、コンピューターサイエンスのテキストなども持っていません。
従って、「こうしたいんだけど、何て調べたら出てくるのか分からない」が3年くらい続きました。
Take Home Message
これからプログラミングを頑張ろうと意気込んでいるみなさんに伝えたいことがあります。
お金をかけた方が、明らかに時短になる
ということ。
私自身、テキストも購入していなければ、paizaラーニングに課金することすらしていません。
しかし、他の方の記事を読んでいると、テキストやpaizaラーニングに課金している方は、初めから動的計画法やグラフというキーワードを知っている様子でした。
私の経験に当てはめれば、キーワードが分からなくて調べられず燻っている時間は無駄です。私はそれで少なくとも3年は停滞しました。
なので、特に大学やプログラミングスクールに通わずに、プログラミングを修得しようとしている皆さんにこう伝えたいです。
お金と時間を天秤にかけよ
と。
8月25日 追記:Sランクになってから露骨に「気になる」や「スカウト」が増えました
Sランク獲得後から、急にpaizaから届くお知らせのメールが増えまして。中身を確認してみたら、「paizaゴールデンスカウト」やら『企業から「気になる!」が2件届いています。』といったものが見られるようになりました。

どうやら、paizaにはスキルチェックや、ユーザープロフィールを見て、「この人うちに来てくれたら嬉しい!」という人材を発見した企業が直接スカウトを出せるサービスがあるようです。
それが「paiza転職」および「paiza新卒」というサービス。
私はpaizaから届くメールに従ってポチポチしてたら、気づけば「paiza転職」に登録して、放置したまま忘れていた口です。

どうやら、この機能を介して、スカウトが届いたみたいです。
ここで注目したいのは、『私は医学生で、興味がある領域も医療系にしていたにも関わらず、これだけのスカウトが届いている』という点。
しかも、ゴールデンスカウトという送信数が限られている枠まで使ってくださっている企業様もいらっしゃいます。
ゴールデンスカウトは、企業があなたのスキルチェックの結果やキャリアシートを見て、特にお会いしたいと思った方にお送りするスカウトです。送信数に制限があるスカウトですので、送信元の企業はあなたに強い興味を持っています。ぜひカジュアル面談で話を聞きに行ってみましょう。
ゴールデンスカウトとは – paizaのスカウトメールについて|ITエンジニアの専門転職サイト【paiza転職】
自己PRとかもろくに入力していないにも関わらず、このような枠を割いていただけるということは、それだけSランクに企業が魅力を感じているということ。
もし、「独学でプログラミングを始めて、就職までしたい」という気概に溢れた方は、ぜひpaizaラーニングでSランクを目指してみると良いかもしれません!
コメント