木戸じゅん。

贋作ミニマリストのブログ

プログラミングも基礎が大切! paizaラーニングのスキルチェック100問超を解いた感想まとめ

プログラム開発言語のe-ラーニングに、『paizaラーニング』というWebサイトがある。

paiza.jp

このサイトでは、『プログラミングスキルチェック』を行うことができる。スキルチェックはS~Dまでランクが有り、最も難しいのがSランク、最も簡単なのがDランクだ。

スキルチェックにて選択した言語はPython3だ。それ以外の言語は学んだことがない。最も得意とするVBAは、残念ながら選択できない。

f:id:kidomeguru:20181118003029p:plain

今回は、そのDランクスキルチェックにある100問超を解き終わっての感想を綴っていく。

 

Dランクスキルチェックは経験値稼ぎ

Dランクの問題は、超初心者向けというだけあり、ある程度学習した人間にとっては朝飯前の難易度だ。

ドラゴンクエストシリーズでいえば、スライムを倒して回るようなもので、私がやったことはスライム100匹以上を屠ったことと同じだ。

 

スライム殺しといえば、『スライム倒して300年、知らないうちにレベルMAXになってました』という作品がある。

私はこの作品を先日買ったばかりなのだが、私がスキルチェックでやっていることは、この作品の主人公がやっていることと同じである。

 

『スライム倒して~(以下略)』のあらすじを説明。主人公アズサは現代日本ブラック企業に務め、『社畜』と揶揄される生活を送り続け、とうとう過労死してしまう。その後で、アズサにはファンタジー世界へ転生するチャンスが与えられ、「のんびりスローライフを送る」ことを望んだ主人公は、不老不死の魔女として転生。生活費を稼ぐために『スライムを最低20匹倒す』を日課にし、300年間同じ生活を続ける。ある日他人に勧められてレベルを測ってみたら、レベル99という最強無比の存在になっていたことに気づく。それ以来『最強の魔女』の噂を聞きつけた冒険者・ドラゴン・精霊などと関わりあいになりながらも、しかしスローライフを送るという絶対条件は崩さないよう、主人公は奮闘するーーというのがあらすじだ。

 

『スライム倒して~(以下略)』の主人公、アズサが強くなるためにしてきたことは、「スライムを倒す」というアクションを愚直に繰り返しただけだ。300年もの間、転生直後とまったくライフスタイルを崩さない彼女だが、それは現代日本で辛い思いをしてきた反動だろう。小さなことでも、ひたすら継続していけば大きな結果につながる、ということを同作品では現している。

 

スキルチェックの話に戻ろう。私がDランクの100問を解いたことは、簡単に倒せる相手を倒してきたこととイコールだ。世の中には「難しい相手に挑んで人は成長するんだよ、ウオー」な人が少なからずいるが、私に言わせれば「まったくもってナンセンス」。

 

基礎の繰り返しが大切な理由

paizaラーニングのDランクスキルチェックは、以下のような出題形式になっている。

①お題に出された要件を満たすプログラムを作る

②制限時間有り

③「プログラムのテスト結果」+「解答時間の速さ」=スコア

スコアの高いほうが優れていると判定されるのは、言うまでもない。

 

同サイトのスキルチェックが面白いところは、上記①がバリエーションに富んでいることだ。規模の大きいプログラム作りでも、求められる機能を分解していけば単純なものばかりだ。その「単純なもの」を作り上げるスキルを、スキルチェックでは磨くことができる。

さらに言うと、要件を満たすプログラムを瞬時に考える瞬発力が鍛えられる。実は、プログラミングは処理効率を無視すれば、求められる結果を出すには複数のやり方がある。解答はいつも一つ、ではないのだ。複数ある解答の中で、どれを選べば最も速く回答できるか。それは繰り返しの中で身につけるしか無い。経験の差が如実に現れるところである。

 

技術において基本が大事と言われる所以は、そこだ。簡単なことを反射的にこなせるようにならなければ、身についたとは言えない。できるようになったからといってすぐに次のステップに進み、失敗する人は多い。失敗の原因のひとつは、基本を積み重ねてこなかったことにある。基礎からはじめて力をつけて、それから応用へチャレンジするのが筋道だ。突然得体の知れない力に目覚めて「見えるぞ……私にも答えが見える!」なんてことにはならない。そういうのは、大体が勘違いだ。

f:id:kidomeguru:20181118005514p:plain

 

もちろん、いつまでも基礎ばかりやっていてはいけないが、だからといって軽視したら爆死するので厄介だ。基礎と応用のバランスを取りながら学習していくのがベターだろう。

 

簡単な問題でも100問解くのは大変

paizaラーニングでDランクスキルチェックをやってみると、1問あたりの解答時間は1分少々~10分程度になる。1時間で約10問解けるので、10時間集中し続ければ100問解ける計算になる。

実際には、集中力が切れたり、休憩を挟んだり、用事があったりで、1日で100問解くのはなかなか難しいはずだ。私は累計3日かかった。最後のあたりは、1問解くごとに腕立て伏せをして頭と体のバランスをとりながら、なんとか100問解き終わった。

そして思ったのは、「自分はプログラミング好きなんだな」だった。大して好きでもない事柄に対して、私はここまで熱中できる人間ではない。今後どうなるかはわからないが、現時点ではPythonプログラミング学習は熱中できる趣味になっている。

今度はCランクスキルチェックだが、1問解いただけで「応用編に突入した」ことがわかった。こちらは少しずつチャレンジしていくつもりだ。

 

ん、『コードガールこれくしょん』?

f:id:kidomeguru:20181118011859p:plain

元提督の私がこんな餌に釣られ……

 

つら……

 

 

f:id:kidomeguru:20181118012242p:plain