「paizaのSランク」は本当に意味が無いのか

paizaでPythonを学ぼう
スポンサーリンク

0:はじめに

つい先日、paizaラーニングでSランクを取ることが出来た。paizaは無料会員の範囲内で使わせて貰っていて色々と恩義を感じるので、paizaの良さと個人的にオススメな使い方を幾つか紹介したい。また「paizaのSランクは意味がない」という記事を目にしたので、それに対する個人的な感想も書いてみたい。

自分自身について少し説明しておくと「非エンジニア」「非データサイエンティスト」のプログラミング未経験の社会人(?)で、2018年に一度Pythonに挑戦したがイマイチ面白さが分からず挫折。2020年7月終わりに再び挑戦したところ、paizaラーニングで問題を解く楽しさにハマって学習に一気に火がついた。2021年3月6日にPythonでSランク取得。プログラミングで金を稼いだことは一度も無いし、多分これからも無いと思う。プロのエンジニアではないので、素人目線での感想だがそれでも良ければお読みいただきたい。

1:paizaラーニングのススメ(プログラミング完全未経験者向け)

この項目はプログラミング完全未経験者(どの言語も経験がない)に向けで、Pythonの話を中心に書く。

まず、paizaラーニングには動画講座があり「Python入門編」なら全編無料で利用できる。最近「Python体験編」も追加されたので、そちらから始めるのも良いかもしれない。ナレーションのプロが音声を担当しているので聞き取り易いのも有り難い。最初はここから入ると良いだろう。

次にレベルアップ問題集がある。一部の問題や模範解答閲覧にはチケットを消費するが、チケットは毎日1枚追加されるし、後述のスキルチェック問題への挑戦でチケットを補充することも出来る。無料の範囲でも利用価値の高いコンテンツだと思う。特に解説(解法のポイント)があるランクレベルアップメニューは勉強になる。問題を解く上での方針だけでなくコードの書き方も参考になった。

最後にスキルチェックがある。これは一発勝負のテストなので、それなりに準備が出来てから挑戦すると良いだろう。再挑戦も出来るが、初回挑戦時のスコアを書き換えることは出来ない。また、スキルチェック問題に挑戦するとチケットが貰えるので、それをレベルアップ問題に使うことが出来る。ちなみに、問題のヒントやサンプルコードをネットに公開したり、他人に尋ねたりするのは規約違反なので要注意。正解が分からなくてモヤモヤすることもあるかも知れないが、利用規約は守る必要がある。

他にゲームコンテンツもあるのだが、私は殆ど使わなかったので省略する。

2:paizaラーニング利用モデル(Python)

次に現時点で筆者が考えるpaizaの使い方モデルを示してみたい。プログラム完全未経験者を対象にした参考例。

Dランクに挑戦

  1. 動画講座「Python3入門編」を「6:多次元リストを理解しよう」まで進める。記憶定着度に応じて2~3回見直す。4~6はイマイチよく分からなくても大丈夫。「ふーん。そんなものがあるのか」ぐらいでも良いので頭の片隅に入れておく。
  2. レベルアップ問題集から「標準入力サンプル問題セット」と「Dランク早解きセット」に挑戦する。調べれば解ける状態から始めて、反射的に解けるようになるまで繰り返し解いて記憶に定着させる。
  3. スキルアップのDランク問題に挑戦し30問以上で100点を取る。基本操作を記憶に定着させて、調べる時間を削るのが目的。間違えた問題はメモしておいて、後で再挑戦する。(ちなみに私はゲーム感覚で全問解いた。後半は10秒程度で即答できるようになった。)後ほどレベルアップ問題集でチケットを使うので問題を多少残しておいても良い。

Cランクに挑戦

  1. ここまではpaizaの画面上でコードを書いても良かったが、ここから先は自分のパソコンでコードを書いたほうが良い。私はPycharmというIDEを使っている。動作が早い、エラー確認が容易、書いたコードを手元に残せるなどメリットが多い。難しいかもしれないが、調べて導入する価値がある。注意点などは各自で確認頂きたい。
  2. 動画講座の入門編4から再開しCランクレベルアップメニューまで進める。その先の動画を見ても損はしないが、使わなくても問題を解けるので忘れる可能性がある。
  3. レベルアップ問題集の「Cランクレベルアップニュー」「Bランクレベルアップメニュー」に挑戦する。これも反射的に解けるようになるまで繰り返す。時間をかけて調べながら一回正解しても、それ自体には大した意味は無い。自力で素早く解答出来るようにするのが大事。他にも解説や解答コードがあるものを中心に自身の弱点に合わせて問題練習を繰り返す。チケットが無くなったらスキルアップ問題を解いて補充する。ただし、必死で考えても分からない問題は後回しにして、分かるものを増やしていくのも大事。分からない問題にはこだわり過ぎず、経験を積んでから再挑戦する。問題集の方はヒントやコードを教えても良いので、ネットで質問するのも可。
  4. スキルアップのCランク問題に挑戦する。これも基本操作が記憶に定着しているかを確認するのが大事なので、間違えた問題や解答に時間がかかった問題は必ず再挑戦する。ロジックが難しい問題は出てこないので、調べれば分かるはず。ちなみに私は記憶力が悪いので全問2周した。引っかかった問題はメモしておいて更にもう一回解いた。即答出来れば大して時間はかからない。(スキルアップの方は他人に教えたり、質問してはいけない。)

Bランクに挑戦

  1. 動画講座「Python3入門編」の続きを全て見る。関数やクラスを使わなくても問題は解けるのだが、他の人が書いたコードを理解するのに必要になるし、自分でも使えたほうが良いはず。
  2. レベルアップ問題集の「Bランクレベルアップメニュー」「Aランクレベルアップメニュー」などを中心に練習する。公式サイトに模範解答が無い場合も検索すれば見つかることがあるのでそれを参考にする。スキルチェックの時に調べたり悩んだりする時間を削るため、解答方針やコードの書き方を記憶に定着させる。Sランク問題など考えても分からなさそうなら後回しにしても良い。
  3. スキルアップのBランク問題に挑戦する。ここから解答に必要な時間が増えて来るので、社会人は時間の確保が難しくなってくるかも知れない。ロジックが少し難しい問題が出始めるし、ミスを避けるために色々と入力値を考えてテストする必要が出てくる。ちなみに「提出前動作確認は大丈夫なのに、実際に解答を出すと1問目から不正解になる」というネット上の書き込みがあるが、公式FAQによると「提出前動作確認と、評価テストケースは同一ではありません」とのこと。

ここから先はそれぞれのやり方でやれば良いと思う。初心者のうちは自分で考えても分からない問題はさっさと見切りをつけて解説を見るのが良い。自分の頭で考えるのはある程度蓄積が出来てからの話なので、最初はとにかく手を動かして慣れて、出来ることを増やすことを推奨する。

3:なぜ「paizaのSランクは意味がない」と言われてしまうのか

端的に言えばpaiza側がユーザーの期待を上げすぎてしまっているのが原因だと思う。ここでpaizaのランク付けを確認してみよう。

paiza側の説明では、Sランクは上位2%ということになっている。現状では未経験者でも頑張ってSランクに到達すれば、paiza査定で年収800万円以上表示されてもおかしくない(筆者はSランク到達時点で862万円と表示された)。実際にそれに近い条件で雇用契約出来るのではないかと期待してしまう人もいるだろう。ただ、実際のところ、未経験者を800万で雇う会社など相当限られているはずだ。こういった誤解の原因は、paizaのランクシステムや年収査定にある。

  • Sランクに到達したのがユーザー全体のうち数%だとしても、それがエンジニア全体を表しているとは限らない(サンプルの偏り)
  • スキルチェック問題の難易度にはバラツキがあり、簡単な問題を一つ正解しただけの人の能力には疑問が残る
  • スキルチェックで測れるものは、エンジニアに求められる多様な能力の一部に過ぎない
  • paiza査定はβ版と断りがあるものの、表示される年収は見積もりが相当甘い可能性がある

そのため、Sランク取得自体を目的にするとおかしなことになる。簡単な問題を1つ解いただけのSランクと、難問を含めて10問以上解いたSランクは全く中身が違うのだが、外形的には同じSランクとして扱われてしまう。例えば筆者はSランクだが、解いた問題の難易度の値はSランクの中でも一番低いものだ。githubの使い方とか環境構築など、実務で求められると思われる基本的なことが分かっていない。このレベルではエンジニアとして800万超の年収を得られるとは思えない。

利用者側は「スキルチェックはあくまで一つのモノサシに過ぎない」ということを割り切った上で使う方が良い。自分はエンジニアではないので就職・転職のアドバイスはしづらいが「ポートフォリオを作った方が良い」という意見には一理あると思う。といっても、paizaが無駄だということにはならない。どの分野でも「頑張って勉強してます」と言いながら実際には殆ど何もしてない志願者が沢山いるので、そういう人を相手にする時間を省くためにpaizaのような試験は役立つのだと推測する。また、学習の目標として使う分には悪くない。(あくまでエンジニア業界素人の意見。)

4:paizaを使えばお金を掛けずに相当勉強できる

ネット上にはプログラミングスクールの広告が沢山出ていて、基礎講座で数十万取るような会社もあるようだ。自分も最初は少し迷ったが、最初にpaizaで独学してみて駄目だったら有料のものを使おうと判断した。結局、paizaの問題を繰り返し解くだけでSランクまで到達することが出来た。

AtcoderとかLeetcodeなど、他にも無料で使えるリソースは色々あるので、多少調べて自分に合ったものを使うのが良い。また、筆者は英語の電子書籍や動画講座なども買った(データサイエンスなど分野なのでスキルチェックとは直接関係が無い)。海外の有料動画などを見ると、声がボソボソしていて聞きづらかったりするので、paiza動画の音声が聴きやすいというのは後から痛感させられた。

独学する一つのメリットは自分のペースで学習できるということだ。ゆっくりマイペースという意味ではなく、圧倒的に速く学ぶことが出来るということを強調したい。少なくとも自分に関しては、有料スクールのカリキュラムに頼るよりも確実に速く学習出来た(と思う)。「未経験から3ヶ月でSランクが取れた」みたいな記事もあるが、まとまった時間が取り易い人なら十分可能な話である。

上で紹介したPycharmも無料版で十分使える。ちなみに筆者は下のように左右分割し、左のtxtファイルで入力値・出力値を表示し、右のpyファイルでコードを書いている。Pycharmがなければ、快適に問題練習を繰り返すことは出来なかった。他のツールを推す人もいるので、自分に合ったものを探して欲しい。

5:終わりに

一部の記事を読んで「paizaで上を目指しても意味がないのかな」と思った人もいるかも知れないが、筆者自身は非常に勉強になったので、興味があれば試してみることをオススメする。念の為書いておくが、筆者はpaizaとの取引関係(広告等)は一切無い。同社の転職サービスを利用して売上に貢献する予定もないので、一人のファンとして応援の気持ちでこの記事を書いた。

自分自身の話で恐縮だが、プログラミングはRPGゲームのキャラがレベルアップしていくのと同じような感覚で、自分が出来ることが確実に増えていくのが新鮮な体験だった。特に最初の頃は本当に楽しくて感動した(その後、環境構築で散々苦しんだりしたのだが)。ブログを始めたりTwitterアカウントを作ったのもそのためだ。この記事が、誰かの最初の一歩の後押しになれば幸いである。

英語を中心にPythonの学習リソースをまとめた記事はこちら
Pandasを使ってpaizaの練習問題を解いている記事はこちら
Pythonを使ったFX自動売買について考える記事はこちら

コメント

当ブログのコンテンツが気に入ったら広告ブロックの解除(ホワイトリスト化)をご検討下さい。

Please disable your adblocker or whitelist this site!

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