Fの部屋

✍️ 学びのアプトプット ✍️ ... 🏕 たまに遊びも .... 🏕

デバッグって面白い🔍

こんにちは😄プログラミングの学習中のFuushi−です🙇🏻‍♂️最近は順調に学習できていると感じています✍️

今日は僕の通っているプログラミングスクールのフィヨルドブートキャップでの出来事について書いていきたいと思います✍️

この記事では 『デバック作業って面白い😄』『学習仲間やメンターさんの存在って大きい🥺』 と感じた出来事を書いています✍️

デバックって??

今回の話はプログラミングには付き物である「エラー」や「バグ」といった不具合を改善していく作業の話です🛠

デバッグ(debug)とは、コンピュータプログラムや電気機器中のバグ・欠陥を発見および修正し、動作を仕様通りのものとするための作業である。

(引用元:デバッグWikipedia)

コードを実行した際にうまく動作しない部分を修正し、正常動作に改善していく作業です👨🏻‍💻

putsデバッグは楽しい〜😃

では本題です😄 Rubyでボウリングスコアの結果を表示するプログラムを書くという課題をやっていた時のこと、どうしても合計スコアが合わずに苦戦してました🤪

fushihara@fushiharayukinoMacBook-Air 04.bowling % ruby bowling.rb 6,3,9,0,0,3,8,2,7,3,X,9,1,8,0,X,X,X,X
[[6, 3], [9, 0], [0, 3], [8, 2], [7, 3], [10, 0], [9, 1], [8, 0], [10, 0], [10, 0, 10, 0, 10, 0]]
154(164) ←※()内が正しい合計スコア

合計スコアが10ポイント足りない...Why🤔 この後、色々とコードをいじるが一向に解決する気配もなく...時間だけが過ぎるのであった...おしまい、おしまい😇

っと、冗談はさておき、時間だけ経って何も解決の糸を見出せずにいた時、月1回行っているスクールの同期の2名と雑談会で、「質問タイムに間に合わない、時間が合わないのであれば、直接メンターさんに質問する時間を作ってもらってはどうか?」をアドバイスを頂き、早速助けを求めました...🙏 f:id:fuushi-92:20220115124631p:plain

するとメンターのお一人からすぐに返信を頂き、その日の夜に質問タイムを作っていただくことができました😄感謝感謝🙏

そこで教えてもらったのが、デバッグ技法の1つである「putsメソッド」を使った「putsデバッグ」です。僕の中ではputsメソッドは「ターミナルへの出力・表示をするもの」で、デバッグに使うことができるのは意外でした✍️

実はここだけの話、一度学習していましたが忘れていました😅復習大事✍️

このputsデバッグを用いることで「プログラムの途中経過を確認する」ことができるようになるので、今回のボウリングプログラムでいうと「どのレーンの合計スコアが違っているのか」を1レーンずづ確認することができます。

fushihara@fushiharayukinoMacBook-Air 04.bowling % ruby bowling.rb 6,3,9,0,0,3,8,2,7,3,X,9,1,8,0,X,X,X,X
point: 9, i: 0
point: 18, i: 1
point: 21, i: 2
point: 38, i: 3
point: 58, i: 4
point: 78, i: 5
point: 96, i: 6
point: 104, i: 7
point: 124, i: 8
point: 154, i: 9
[[6, 3], [9, 0], [0, 3], [8, 2], [7, 3], [10, 0], [9, 1], [8, 0], [10, 0], [10, 0, 10, 0, 10, 0]]
15410ポイント足りない

※「point」 が合計数 「i」がレーン数を表しています。

9レーン目のストライクのスコアが10ポイント足りていないことが判明。9レーン目がスペア、合計9ポイントまで計算が合うので、やはりストライクの処理がうまくいっていない!と原因を突き止めることに成功しました。この後、感動のあまり、無駄にコードをいじって途中経過を確認しまくったの内緒です🤫w

仲間がいるって良き🥺

今回の出来事を通して仲間のアドバイスがなければ、メンターさんに1対1で質問する勇気もなく、課題提出にもっと時間がかかっていたかもしれないですし、最悪挫折していたかもしれません…

アドバイスをくれる、教えてくれる仲間やメンターさんの存在は本当に大きいと感じました😄

僕の受講しているフィヨルドブートキャプテンはメンターさんだけでなく、受講生同士や卒業生の方々が積極的に教え合う・助け合う文化が根付いていると感じます😄本当に学習しやすい環境だと感じています✍️

まだまだ未熟者ですが、僕も知識を付けてスクールで困っている受講生にアドバイスできる人材になっていきたいと思います😄

本日は以上です😄ここまで読んで頂き、ありがとうございました🙇🏻‍♂️

ではでは👋

〜学びは人生を豊かにする✍️〜