CAMPING NOTE

中年非理系プログラミング未経験者のフィヨルドブートキャンプ

キャンプ記録 023

フィヨルドブートキャンプにて、プログラミングの学習を初めて18週間が経ちました。 個人の復習を兼ね、学習18週目の、1週間の学習経過をここに記録します。 (1週間=2020.12.26(土)-2021.01.01(金))

f:id:CHICALOG:20210102130038p:plain 今週の Graph です。

index

  1. 学習した時間
  2. 学習を通して感じたこと
  3. 公式学習(プラクティスと日報)に加えて毎日/毎週末行っていること
  4. 学習した内容 一覧
  5. 1週間のつれづれ

学習した時間

合計 24時間 00分
12.26(土) 3時間30分
12.27(日) 4時間30分
12.28(月) 5時間30分
12.29(火) 3時間30分
12.30(水) 4時間00分
12.31(木) 1時間30分
01.01(金) 1時間30分
  • 総学習時間 478時間30分

  • 今週24時間の学習となりました。

  • 休暇を満喫しながらも、毎日学習することが出来ましたー!
    • やっっぱり、目標設定は1週間単位が無理なく上手くいきやすいなぁと思います。

学習を通して感じたこと

  • 分解してみると、解決ポイントを探し出すことができる
  • デバックについて理解した
  • rubocop で、--auto-correct を知る。一気に修正してくれる
  • 『ボーリングのスコア計算プログラム (Ruby)』プラクティスの課題提出を経て、日報やQ&A の見方・読み方が変化した

学習を通して感じたことの詳細

  • 分解してみると、解決ポイントを探し出すことができる
    • 冷静に少しづつ、『出来ること・出来ないこと』『分かること・分からないこと』を分解していくと、『ボーリングのスコア計算プログラム (Ruby)』の課題でで続けていたエラーを解決できた
  • デバックについて理解した
    • プログラムが意図通り動いているかを確かめ、間違えている部分(バグ)を見つけて直していくこと(!)
    • あっ、debug。なるほど。
    • p メソッドは原則、デバックの道具
    • エラーメッセージの読み方
      test43.rb:49:in `block in <main>': undefined method `[]' for nil:NilClass (NoMethodError)
    • test43.rb => ファイル名
    • 49 => エラーが発生している行数
    • in `block in' => ?
    • undefined method `[]' for nil:NilClass => エラーメッセージの本文
    • (NoMethodError) => エラーの名前
  • rubocop で、--auto-correct を知る。一気に修正してくれる -n offenses auto-correctable と出ているエラーは rubocop --auto-correct でエラー修正可能
    • エラーのレベル
      • 修正すべき
        • F:Fatal
        • E:Error
        • W:Warning
      • 修正の余地あり
        • C:Convention
        • R:Refactor
  • 『ボーリングのスコア計算プログラム (Ruby)』プラクティスの課題提出を経て、日報やQ&A の見方・読み方が変化した
    • 以前: 動きそうなコードを日報から探して拝借、コードの意味を理解する
    • 以降: コードを書いていく手順や考え方を熟読する

公式学習(プラクティスと日報)に加えて毎日/毎週末行っていること

毎日行っていること

  • 専門用語をピックアップし、Ankiに登録
  • Anki で専門用語の学習
  • 前日までの復習
  • [Ruby on Rails Podcast]を聞きく。

毎週末行っていること

  • 1週間の振り返りをテキスト化し、ブログで公開すること(このブログです)
  • CSSの学習(土日どちらかに1時間)
  • Vimtutor(土日どちらかに1時間)

学習した内容 一覧

(フィヨルドブートキャンプ学習内容より)
学習内容 学習状況
ボーリングのスコア計算プログラム (Ruby) 再提出に向けて準備中
ls コマンドを作る (Ruby) 学習中

ボーリングのスコア計算プログラム (Ruby)

  • 2020年中に提出に至れました!!
  • 提出に向けてやったことは、質問して得た回答を理解するべくひとつづつポイントを分解して理解して行ったことです。
    • 具体的には下記です
      • p メソッドでこれまで書いたプログラムの動く・動かない点をひとつづつ理解をする
      • 分解して判明した動かない点をさらに分岐して動くプログラムを書く
      • 書き足したプログラムを組み合わせる
    • 今回の『ボーリングのスコア計算プログラム (Ruby) 』 に関しては上記で解決に至れました。
    • きっとここまでは、『プログラムのベタ書き』に当たる部分
    • 本来は、このプログラムから動いているプログラムや2・3重に書いてしまっているプログラムをきれいにしていくことが必要になるのだと思う
    • 『ボーリングのスコア計算プログラム (Ruby) 』に至るまでのフィヨルドブートキャンプのプラクティスを復習したら、なんとか1箇所を自分で見つけ修正することができた。
    • 修正出来た1箇所意外にもたくさん修正箇所があるとは思うけど、ちょっと自力では難しいので、提出することにした。

ls コマンドを作る (Ruby)

  • その名の通り、Ruby で ファイル一覧を表示する ls コマンドを作成するプラクティスです。
  • ここまでで見知った、プログラミングの理想的な手順を可能な限り模倣してプラクティスを進めようと思っています。
  • その理想的な手順は下記です。
    • 作成する対象について熟知して、着地点を想像する
    • プログラミングのフロー図を書く
    • フロー図を元に想定できるプログラムの日本語を書いてみる
    • プログラムの日本語を元にプログラムをベタ書きする
    • ベタ書きしたプログラムを見直す
    • 無駄なプログラムを削除する
    • 重複する内容のプログラムをひとつにまとめる
    • rubocop で修正検索する
    • rubocop が教えてくれた内容を修正する
  • きっと、たくさん詰まると思いますし所要時間の目安も平均時間も超過すると思いますが、このプラクティスでもたくさんのことを学びたいと思います!

1週間のつれづれ

  • なんとか、『ボーリングのスコア計算プログラム (Ruby)』の課題を2020年中に提出に至れました。当初は先輩現役生のプログラムを模倣して進めていましたが、エラー克服のために自力で考え解決して行った過程はとても勉強になりました。そして、プラクティスの課題である5つの実行例全てで得たい結果を得られた瞬間・得られると確信した瞬間は言葉にしがたい嬉しさでした!おかげでとても清々しい気持ちでの年越しが出来ました。

今週の週次記録はこの辺で。(今週も1000文字代で治りました!)

新しい年(2021年)は、『ボーリングのスコア計算プログラム (Ruby)』の修正・再提出と ls コマンドについての理解からスタートです。

『CAMPING NOTE』
今後もよろしくお願いします。