こんにちは。倉内です。
皆さん、連休中の予定は決まっていますか?
もし「まだ特に予定がないなぁ」という方は、せっかくの連休ですので、普段は時間の確保が難しくてなかなか取り組めていないことにチャレンジしてみるのもよいと思います。
たとえば、paizaが提供している、プログラミング問題を解いてコーディングスキルをS~Eの6段階でランクづけする「スキルチェック」というサービスを使って、実力をさらに伸ばしてみるのはどうでしょう。特にS・A・Bランクの中には、じっくり考えて解く必要がある問題もあるのでおすすめです。
そこで今回は、この連休を利用してランクアップを目指す方向けに、プログラミング学習法をご紹介したいと思います。
paizaのスキルチェックとは
どんな仕組みか
paizaのスキルチェックは、難易度別にS・A・B・C・Dに分けられたプログラミング問題を制限時間内に解くことで、自分のプログラミングスキルが試せるサービスです。現在470問以上のプログラミング問題が公開されています。
詳しくはこちら
対応言語:Java、PHP、Ruby、Python2、Python3、Perl、C、C++、C#、JavaScript、Objective-C、Scala、Go、Swift、Kotlin
paizaに無料会員登録をしていただくと、まずはFランクからのスタートです。チュートリアルをクリアするとEランク、そのあと前述のS~Dランクのどの問題に挑戦するかで取得できるランクも変わってきます。
書いたコードはブラウザ上で実行できますので、PCとインターネット環境さえあれば他に準備は不要です。「今すぐやってみたい!」という方は、ぜひチャレンジしてみてください。
なお、paizaが運営しているITエンジニア専門の転職・就活サービスでは、求人応募の際に「通過ランク」としてこのランクが使われます。
企業が設定したランクに届いていれば、その求人に応募することができ、高ランクを取得するほど応募可能な求人が増えます。そのためスキルチェックの問題はSNSでの公開や他者との共有を禁止させていただいております。
出題問題のレベル感
ランク別のレベル感は以下の図のとおりです。
Sランクがもっとも難しい問題となっており、処理速度の考慮も必要になってくるため、アルゴリズムの知識が必要とされる問題もあります。
プログラミング初心者でスキルチェックにはじめて挑戦するという方は、まずはDランク問題に挑戦してみてください。Dランクの問題は、基礎文法(四則演算、if文・for文など)を理解していれば解くことが可能です。
各ランクの問題を解くための勉強法については、以降で詳しく解説します。
ランク別の問題情報
取り組むにあたって、実際に問題を解くのはどのくらい時間がかかり、正答率はどのくらいあるのかといったことが気になりますよね。
以下に2022年4月26日 18:30時点の情報をまとめました。いずれも公開中の問題の平均値となっています。
ランク | 公開問題数 | 解答時間中央値 | 正答率 | 平均スコア |
---|---|---|---|---|
Sランク | 42問 | 1時間10分14秒 | 38.7% | 46.1点 |
Aランク | 46問 | 57分47秒 | 41.6% | 47.7点 |
Bランク | 92問 | 41分06秒 | 59.5% | 59.7点 |
Cランク | 98問 | 16分59秒 | 71.3% | 70.3点 |
Dランク | 199問 | 3分58秒 | 93.5% | 90.8点 |
つづいて、ランク別の解答時間中央値が短い問題トップ3も見てみましょう。
ランク | 1位 | 2位 | 3位 |
---|---|---|---|
S | S015:ABC文字列(22分29秒) | S045:ある種のソート(40分19秒) | S042:ラップバトル(40分29秒) |
A | A063:長い数列(29分13秒) | A028:武器の強化(33分24秒) | A052:階段登り(34分49秒) |
B | B020:ネットサーフィン(23分52秒) | B038:つるかめ算(24分6秒) | B099:台風の接近(24分21秒) |
C | C084:枠で囲む(4分14秒) | C086:ハンドルネームの生成(7分43秒) | C049:エレベーター(8分1秒) |
D | D192:感嘆符の付与(0分47秒) | D190:センチをミリに(0分53秒) | D166:何日後になるか(1分1秒) |
ランクアップのための問題集活用
レベルアップ問題集とは
「レベルアップ問題集」は、スキルチェックと同等の問題を多数公開している練習問題集です。
ループや条件文、配列といった基本文法をおさらいできる問題から、ソート、線形探索、木やグラフなどアルゴリズムに関する問題、そしてスキルチェックの過去問まで多様な練習問題があり、難易度もS~Dのランクに対応しています。
スキルチェックと異なる点はいくつかありますが、特に以下は留意しておいていただければと思います。
- 解答に制限時間がない
- すべての問題でテストケースの入力値が参照可能
- 一部の問題で解答コード例・解説が参照可能
- 練習問題のため解答してもスキルチェックのランクアップはできない
ランク別おすすめ学習法
ここからはレベルアップ問題集とpaizaラーニングの動画講座を使って、目指すランク別の学習法を詳しくお伝えします!
Dランク問題を解く
Dランク問題はプログラミングの基礎文法が分かれば解けるので、プログラミング経験がある方はまずは1問解いてみてください。さきほど紹介したとおり、1分ほどで解けるものもあります。
どんな問題が出るかは、レベルアップ問題集の「Dランク速解きセット」を参考にしていただくとよいと思います。20問すべてDランク相当の問題となっています。
これからプログラミングを始めるという方は、概要から基礎までを学べるpaizaの動画講座の体験編シリーズ(全編無料)がおすすめです。対応言語は、Python、Ruby、C#、Java、PHP、JavaScript、C言語、Swift、Go、Kotlin、C++、Scala、Perl です。
Cランク問題を解く
C~Aランクの取得を目指す方は、過去に実際スキルチェックで公開していた問題を集めた「スキルチェック過去問題セット」の該当ランクの問題を解けるようになることを目標に学習していきましょう。
解答例があるのは、Python3・Ruby・Java・PHP ですが、解説(解法のポイント)は共通して参考にしていただけます。
まず、Cランク相当の問題は4つあり、もっとも取り組みやすいのが「野球の審判」です。
この問題を解くためには、以下のふたつのレベルアップ問題集を先に学習しておくとスムーズです。
Cランクの問題に挑戦する前に基本的な文法のおさらいをしたい、基礎文法からもう一歩進んだ内容を学びたいという方は、基本から一部応用までを学べるpaizaの動画講座の入門編シリーズがおすすめです。対応言語は、Python、Ruby、C#、Java、PHP、JavaScript、C言語 です。
Bランク問題を解く
Cランクまでは難なく取得できても、Bランクからは難しいと感じる方もいらっしゃいます。
D・Cランクと大きく違う点は、多くの場合問題文が長くなり条件が複雑になります。そのため練習問題を通して、ある程度の長さの文章から仕様を読み取りコードに落とすことに慣れる必要があります。
「スキルチェック過去問題セット」には、Bランク相当の問題は3つありますが、「神経衰弱」が取り組みやすいと思います。
この問題を解くためには、以下のふたつのレベルアップ問題集を先に学習しておくとスムーズです。
動画講座「スキルチェック入門編」のレッスン6では、Javaでこの問題の解説をおこなっています。問題文の整理や解答の方針からていねいに解説していますので参考にしてみてください。
Aランク問題を解く
Aランクからは、ループなどを回して地道に計算させるプログラムでは大規模データがクリアできずにタイムアウトする場合があります。そのためアルゴリズムを用いて、処理を効率的におこなえるコードを書ける必要性が出てきます。
「スキルチェック過去問題セット」で公開しているAランク相当の問題は、「日別訪問者数の最大平均区間(large)」です。
この問題を解くためには、以下のふたつのレベルアップ問題集を先に学習しておくとスムーズです。
問題内容はBランク相当の「日別訪問者数の最大平均区間」と同じですが、入力値の条件が異なるためAランク相当となっています。Bランク相当のほうは、「スキルチェック入門編」のレッスン2で解説していますので、「問題の理解が難しいな…」と感じた人は参考にしてみてください。
Sランク問題を解く
Sランクの問題もAランクと同様、大規模データのクリアが難しいものが多いのですが、それに加えて競技プログラミングでよく使われるアルゴリズムも知っておくと解答の助けになります。
レベルアップ問題集では、探索やソート、DP(動的計画法)、ダイクストラ法などの練習問題を多数公開しています。特に「グラフ上にある2点間の最短経路を求めるアルゴリズム」であるダイクストラ法は、理解しておいて損はないでしょう。
Sランク相当の問題が多い問題集は、以下のとおりです。
- リアルイベント問題セット(解答例:Ruby、Python3、C++)
- スキルチェック見本問題セット(解答例:Java、Python3、C++)
連休中は楽しく勉強したい!
paizaでは「プログラミングエンタメ」として、ゲーム感覚でプログラミング学習ができる無料コンテンツも公開しています。
たとえば、初学者におすすめのファンタジー世界を冒険しながらプログラミングの基本を学べる『コードクロニクル』、中~上級者の方も楽しめる、東京マルイさんとコラボしたミリタリー要素強めの『SILVER BULLET』や近未来のアポカリプスな世界観を楽しめる『エンジニアが死滅シタ世界』などが人気です。
こちらも出題される問題はスキルチェックのS~Dランクに対応しています。以下の記事では、解答・解説のあるページへのリンクもしていますので挑戦される際は参考にしていただければと思います。
paizaオンラインハッカソン(POH)・ゲームイベントリンク集
楽しくプログラミングを学びたい、普段とは少し違ったプログラミングの勉強法を試してみたい…という方はぜひご活用ください。
まとめ
連休中にプログラミングの実力をアップしたい方へ、paizaのスキルチェックのランク別に学習法をお伝えしてきました。
ゆっくり羽根を伸ばして疲れをとることも大切なので、無理のないよう楽しみながらプログラミング学習をする期間にできるといいですね。
paizaではここまで紹介したとおり、無料でかつブラウザ上で実行できるコンテンツを多数公開しています。ちょっと時間が空いたときなど、いつでも試してみることができますので、思い出していただければと思います。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら