こんにちは。倉内です。
プログラミングの基本をある程度学んだ方に次におすすめしたいのが、実際にコードを書けるようになったかを試すため、プログラミング問題を解いてみるという勉強法です。
paizaのスキルチェックというサービスでは、S~Dランクの難易度別問題を制限時間内に解くことでプログラミングスキルを測れます。ただ、難しい問題に取りかかることにためらいがあるという方もいると思います。
そこで今回は、スキルチェックと同等の出題形式の練習問題を公開している「レベルアップ問題集」に新しく追加された「新・Bランクレベルアップメニュー」をご紹介します。
その名の通りスキルチェックでBランク取得を目標に作られた問題集で、既存のものよりさらにBランク取得を強く意識した作りになっています。ぜひ活用して自身のレベルアップを図っていただければと思います。
paizaのスキルチェック
スキルチェックで出題されるプログラミング問題は、難易度によってS・A・B・C・Dランクに分かれています。そして、問題を解いた結果によってS・A・B・C・D・Eの6段階のランクを取得できます。
ランクのレベル感は以下の通りです。詳しくはこちらもご覧ください。
言語はJava、PHP、Ruby、Python、Perl、C、C++、C#、JavaScript、Objective-C、Scala、Go、Swift、Kotlinに対応しています。
Bランク問題はどのくらいの難易度?
今回取り上げる「新・Bランクレベルアップメニュー」で目標としているBランクは、上の図では「実用的な実装スキル」と定義されています。paizaで公開しているITエンジニア求人(経験者採用)の多くがBランクレベルのスキルをひとつの目安としています。
ただ、プログラミング初学者でスキルチェックで「Cランクまでは解ける!」という方でも、Bランク以上はなかなかクリアが難しいと思います。
問題によって一概には言えないものの以下のような特徴が挙げられます。
- 初心者向けの講座を受講しただけではクリアが難しい
- 問題文から仕様を読み解いて、どう実装するとよいか、そのために何が必要かを考え、検索するなどの力が必要
- 条件が複雑になるので最小最大値、境界値などを考慮した実装が必要
- 厳密に計算量を考慮しなくてもクリアできる問題も多い(S・Aランクとの違い)
解答にかかる平均時間を見ると、Dランク問題が3~4分、Cランク問題が15~18分のところ、Bランク問題は35~40分程度となっています。
初めての挑戦の場合は、ある程度まとまった時間が確保できるタイミングがよさそうです。
paizaのレベルアップ問題集
スキルチェックは定期的に新しい問題を追加していますが、ランクの取得は初挑戦の1回のみとなっています。(再チャレンジは可能です)
そのため、とにかくたくさん問題を解いて鍛えたいという方は少し手を出しづらいかもしれません。「簡単な問題から解いていくとどんどん解けそうな問題が減ってしまう……」という声も聞きます。
そこで練習問題を集めた「レベルアップ問題集」の出番です。出題の形式はスキルチェックと同様です。
なお、スキルチェックが初めてという方は、無料の動画講座「スキルチェック入門編」のレッスン1を見ていただくとスムーズに取りかかれると思います。
レベルアップ問題集のおすすめポイントは大きく3つあります。
- 制限時間なしで何度でも挑戦できる
スキルチェックと異なり、制限時間はありません。理解できるまでじっくり、そして繰り返し問題に取り組むことができます。
また、レベルアップ問題集の問題はSNSでのシェアや、人に質問するといったことも可能です。
- 全問題でテストケースの入力値を見ることができる
解答提出後の結果画面でテストケースの入力値の参照が可能です。どのケースでNGが出てしまったのかが分かるためコードの修正に役立ちます。
- 一部問題で解答例となるコード・解説が確認できる
解答例は全テストケースをクリアするコードです。もちろん他の解き方もありますので、それだけが正解というわけではありません。
解説は解き方の方針を示しています。問題文を読んでもどうしていいか分からない場合は参考にしてみてください。
問題の挑戦、解答例・解説の参照は学習チケットを消費※することで可能になります。ログインなどで最大6枚までためることができます。
※一部消費せずに挑戦・参照が可能な問題もあります。また、有料会員は制限なく可能となっています。学習チケットについて詳しくはこちら
新・Bランクレベルアップメニュー
「新・Bランクレベルアップメニュー」は、スキルチェックのBランク問題に多く登場するテーマを扱ったメニューになっています。この中の問題を解けるようになると、ほとんどのBランク問題をクリアできるようになります。
現在、解答例となるコードはC++のみですが、解説(解き方の方針)は他の言語でも共通する部分があるためぜひ参考にしてみてください。
内容
全22問で構成されています。解答する言語は27言語から好きなものを選択可能です。
問題は独立しており、どれから解いても構いません。ただ、カテゴリ別にまとめてあるので、その場合は上から順に解いていくと解いた内容を生かして次の問題に取り組めると思います。
【マップの扱い 1】マップの書き換え・1 マス
【マップの扱い 2】マップの書き換え・縦横
【マップの扱い 3】マップの判定・縦横斜め
【マップの扱い 4】マップのナンバリング
【シミュレーション 1】反復横跳び
【シミュレーション 2】perfuct shuffle
【シミュレーション 3】燃費
【シミュレーション 4】位置情報システム
【条件判定 1】郵便料金
【条件判定 2】視力検査
【条件判定 3】過剰コンプライアンス
【全探索 1】高い寿司を食いたい!
【全探索 2】コップの水
【全探索 3】+1, -1, '1'+, +'1'
【全探索 4】ストラックアウト
【文字列 1】疑似数字
【文字列 2】super long int
【文字列 3】p4!2@
【配列 1】平面で計算
【配列 2】立体で計算
【計算 1】マンハッタン距離
【計算 2】疑似乱数
前提となる知識を得られる講座
Bランク相当の問題を解くためには、前提となる基本的な知識を習得しておく必要があります。
まず押さえておきたい基礎文法は、paizaラーニングの「体験編」「入門編」の講座で学ぶことができます。講座一覧はこちら
Pythonを例に紹介すると、「Python体験編」「Python3入門編」(いずれも全編無料)、「新・Python入門編」が該当します。
また、Bランク挑戦の前にCランクの問題を解いてみたい、どんな内容か知っておきたいという方は、「スキルチェック入門編」でもCランク相当の問題解説レッスンがありますので、ぜひご覧ください。
難度の高い問題の解き方を考える際に、アルゴリズムの知識があると役に立つ場面も多くあります。
あまりアルゴリズムを学んだことがない方は、定番のアルゴリズム問題を解説している「アルゴリズム入門編」、Javaでアルゴリズムを初めて学ぶ方にもていねいに解説している「新・アルゴリズムとデータ構造入門 Java編」も参考にしていただければと思います。
他にも多様な練習問題を公開中
「レベルアップ問題集」では、他にも多種多様なプログラミング問題を公開しています。
「新・Bランクレベルアップメニュー」に登場する、文字列や計算問題はもちろん、条件判定や配列、マップなどの基本的な問題に取り組める問題集もあります。苦手な分野がある方は集中的に解いてみるのもおすすめです。
Bランク相当の問題がまだ難しいと感じた方は、D~Cランク相当の問題から順に挑戦してみるとよいでしょう。
まとめ
スキルチェックでBランク取得を目指す方向けの練習問題集「新・Bランクレベルアップメニュー」をご紹介しました。
プログラミングスキルというのは「コードを書けること」と思っている方も多く、もちろんそれも間違いではないのですが、実務を考えると「文章から仕様を読み取ること」も非常に大切です。
スキルチェックでは問題文から状況の理解や条件の把握・整理、そしてそれらをコードに落とし込んでいくという過程も学べるようになっています。
今回ご紹介した問題集や講座を活用して、ぜひご自身のスキルアップにつなげていただければと思います。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募も可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら