エンジニア向け学習サービスを提供している「paizaラーニング」のなかには、「プログラミングスキルチェック」という競技プログラミングのような問題を解くことでランクやレートが上がるサービスがあります。
実はようやくpaizaのスキルチェックの中でも最高ランクであるSランクを取得することができました。
筆者は文系出身なので、文系出身の方やプログラミング未経験者の方に参考になるように情報をお届けいたします。
paizaでSランクを取得するにあたりどれくらいの勉強をしたのか、取って何か変わった事があったのかをメインにご紹介していきます!
ちなみにpaizaはプログラミング学習だけではなく、就職などの支援も展開している素晴らしいサービスです。
筆者のプログラミングレベル
はじめに私のプログラミングのレベルを軽く記載しておきます。この記事を読む方の参考になれば良いかなと思います。
私は新卒未経験(文系)でプログラミングとは無縁の状態で、SES会社に就職しています。サーバーサイドの開発がメインでした。
そこからおおよそ8年程度経っていますが、プログラムをやらない仕事をしている期間がそこそこあるので、実務でプログラミングをした期間は3-4年くらいだと思います。(要件定義や設計、テストの期間がかなり長いのです。)
とはいえ、比較的プログラミングは好きな方なので、業務外にもプログラミングをすることがあり、競技プログラミングも少しだけかじったりしています。
日本の競技プログラミングで有名なAtCoderでは下から2番目の色である茶色レートまで上げることができている感じです。
こんな感じなので、競技プログラミングをガッツリやり込んでいる人から見ると、大したことないなあというレベルです。(つまりpaizaのSランクって。。。)
paizaでSランクを取るための勉強方法
ここからは本題であるpaizaでSランクを取るためにはどうすればいいかを解説します。
実はpaizaでSランクを取る事自体は1時間もかからずにできてしまいます。paizaのスキルチェックでSランクの問題の中から1問を時間内に正解するだけで、Sランクの取得が完了してしまいます。
といっても、大半の人はSランクの問題を正解する事自体かなり大変なことです。
ここでは、どれくらい勉強する必要があるのか、どんな勉強が必要か、狙い目の問題はどれかを解説していきます。
どれくらい勉強する必要があるのか
目安としては、使用するプログラミング言語の基本的な使い方が分かる/使いこなせるレベルと競技プログラミングへのちょっとした慣れがあれば、Sランクを取得することができます。
ただし、Sランクを取得できるだけで、すべてのSランクの問題を解くことができるかというと厳しいと思います。
競技プログラミングといえば、アルゴリズムの勉強が必要なのか?と思いがちですが、Sランクになるだけなら必要ありません。1問正解することでSランクになることができるため、難しいアルゴリズムを考える必要がない、やさしめの問題を狙っていきます。
私が正解した問題は、if文とfor文、listなどのコレクションを使えれば正解することができました。
よって、使用するプログラミング言語をある程度書けるようになるくらいの勉強(10-50時間)と競技プログラミングへの慣れ(2,30時間)の合わせて40-80時間程度の時間をかければ、初心者からでも到達できるものと思います。
どんな勉強が必要か
以下の2点が必要です。いずれもpaizaラーニングを活用することで勉強することができます。
- 使用するプログラミング言語をある程度書けるようになるくらいの勉強
- 競技プログラミングへの慣れ
paizaラーニングでは以下のように多くの言語の入門講座が用意されています。自分が使用するプログラミング言語のコースを受講することで、ある程度書けるレベルになるくらいの勉強ができます。なんと無料です。
ある程度書けるようになったら、paizaスキルチェックのD-Aランクの問題を解いていきましょう。これも無料です。
人によってはB,Aランクくらいに来ると突然難易度が上がったと感じるかもしれませんが、正直慣れと運の問題です。同じランクの中に、自分には向いている問題とそうでない問題があったり、難易度が露骨に高い問題があったりします。
そのため、何問か解いていると解けるようになるので根気よく解いていく必要があります。
Aランクの問題を1問解けたら、Sランクの問題にチャレンジしても大丈夫です。
狙い目の問題はどれか
さて、いよいよSランクの問題にチャレンジする際に狙い目の問題をご紹介します。
まず私が解けた問題は3問しかありませんが、その3問は比較的他に比べて難易度が低く、正解可能性が高い問題です。ただし、私の主観が混じっているという点はご容赦ください。
- S030:山はいくつある
- S007:データヒストグラム
- S015:ABC文字列
個人的にはいずれの問題も他の問題に比べると、解きやすい問題なのかなと感じました。
AtCoderで例えるといずれもABCのC問題か簡単なD問題レベルの難易度です。
とりあえずpaizaSランクになりたいだけであれば、オススメの問題です。
paizaでSランクを取って変わったこと
paizaでSランクを取って変わったことは、体感ではありません。マイページのランクがSになったことくらいでしょうか。
paizaでは転職者向けに、技術者を採用したい企業からスカウトが来ることがありますが、Aランクだったときと比較して件数が増えた感じや、条件が良くなった感じはありません。ただし、Aランクになったときは件数の増加や条件が良くなったりなどあったので、paiza転職を使う人はAランクくらいを取得しておくと良いでしょう。
Sランクの問題をすべて正解できるくらいになると、またガラッとプログラミングスキルが変わってくるのだと思いますが、簡単なものを1問解く程度だと正直スキルはそんなに変わらないと思います。
とはいえ、paizaのSランクは公式で以下の図が公開されているので、自慢できるプログラミングスキルを持っていると説明はできそうです。
新卒や若手がSランクを取った場合
ここまで、私がSランクを持っている分には凄さを感じないものという話をしてきましたが、新卒や2年目くらいの若手、入社前の内定者がpaizaのSランクを取っていたら話が変わってきます。
普通に凄いです。Sランクを持っているのであれば、ちょっとした実装(そのプログラミング言語だけで書ける部分)は任せることができるレベルだと思いますし、
競技プログラミングは実務で書くようなプログラミングとは少々違うので、結構しっかりと勉強しているんだなと感じます。
競技プログラミングの特性上、問題を読んで正しい実装をする必要がありますが、それは設計書から正しい実装をするということに似ています。使っているプログラミング言語だけで実装できるものについては、設計書をぽんと渡して実装してもらうことができるというわけです。凄い。
業界10年の人だったら出来て当たり前のことですが、新卒ができたら普通に凄いですよね。
この記事だけだとSランクを取るのはなんとなく簡単なのか?と感じてしまうかもしれませんが、プログラミング初心者であれば100-150時間程度の勉強時間は必要だと思います。ある程度腰を据えて勉強しないとSランクには到達できないはずです。
しかし取得できた場合は、かけた時間以上のリターンがあることは間違いありません。
入社予定の人、新卒の人、若手の人、paizaのスキルチェックでSランクを取ってみるのはどうですか?結構コスパ良いですよ!
まとめ
paizaでSランクは文系でも取れる。AtCoderでいうと茶色-緑くらいのレートです。
新卒クラスが取っていたら、かなり高いレベルです。かなり信用できる。
paizaのSランクはネットで検索するとそんなに高い評価を得ていないように思えるが、新卒クラスの人が持っていたら、相当高いレベルであると思えます。なお、エンジニアを10年近くやっている人が持っていてもへーくらいにしかならないかもしれません。。