すずかのプログラミング勉強記

元教員からエンジニアを目指す、プログラミング勉強記録です。

フィヨルドブートキャンプでプログラミングの勉強をする【1年経過】

未経験からフィヨルドブートキャンプ(以下FBC)で勉強して、1年(12ヶ月)が経ちました。

3月上旬にチーム開発の作業を終え、そこから自作サービスを作り始めて開発していたら、3月はあっという間に終わっていました。

今月の振り返りと、1年間の振り返りを書いていきます😊


3月の過ごし方

5月にRubyKaigiと引越しの予定があり、取れる時間が減りそうなため、3~4月は自作サービスを何よりも優先して頑張ることに決めました😊

とはいえ、振り返ると3月は結構外出もしており、特にUrawa.rb#3の室内花見が楽しかったです!

飾り付けされたコバトン

3月末には元生徒からお誘いをもらって、昨年まで主顧問していた部活の卒業イベントにお邪魔してきました。元生徒・元同僚の努力する姿に刺激をもらい、自分も頑張ろうという気持ちになりました✨

勉強の状況

3/4~4/3で修了したプラクティスは4つです。

1ヶ月間で修了したプラクティス一覧

リソース・データ設計

技術検証をする

カンバンを作る

ペーパープロトタイプを作る

修了したプラクティス

作業が残っているプラクティスは、「Webサービスを作る」「CI」「デプロイ」「デザインレビュー」「コードレビュー」「リリース」のあと6つです。 自作サービスのリリースまで終わったら、卒業となります✨


勉強時間

学習時間は12ヶ月間(366日)累計で2257時間でした。

学習時間

月平均すると約190時間です。最初の方は学習習慣をつけるため、月200時間以上を目標に取り組みましたが、後半は時間を特に意識しなかったため微減しました。

退職時に決めていた、「最低限、仕事をしていた時間と同じ時間は勉強する」ということは達成できたと思います!


自作サービスの進捗

「YamaNotes」(仮)という、「山手線を徒歩で一周する人のための記録アプリ」を作ることにしました。

イメージはこんな感じです😊

自作サービスのイメージ

今月取り組んだこととしては、以下の通りです。

ペーパープロトタイプ作成→DBとリソースの設計→技術検証→カンバンを作る→rails new→リンターの導入→地図表示機能追加→ログイン・到着機能追加→CIの構築→テスト作成

フレームワークRails(+Hotwire)を使用し、テストはRSpecで書くことにしました。 メイン画面は一応動くようになり、現在はカスタムバリデーションの設定とテスト(ログインと到着)に苦戦中です。

できるようになったこと

  • RSpecの基本的な構文を書けるようになった
    RSpecFBCの必須のカリキュラムに入っていないので、自作サービスを作る段階で初めて勉強しました。
    「Everyday Rails - RSpecによるRailsテスト入門」という本を毎日少しずつ読み、3分の2ぐらい読み終えました。非常にわかりやすいので、実際テストコードを書くときも、この本を見ながら書いています。
    チーム開発ではMinitestを使っていましたが、私は何となくRSpecのほうが好きかもしれないです😊

  • Hotwireの基本的な使い方を理解できた
    こちらもFBCのカリキュラムにはないので、「猫でもわかるHotwire入門 Turbo編」を読んで勉強しました。(読んでいる途中に教材を書いたのがFBC卒業生の方と知り、テンションが上がりました✨)
    画面の一部だけを書き換える処理を、JavaScriptを使わずに簡単に実装できて感動しました。自作サービスでは、地図の描画・到着記録の編集・モーダルの表示などでHotwireを使っていく予定です。

  • GitHub ActionsでCIの構築をできるようになった
    コードをGitHubにプッシュしたら、自動でテスト・RuboCop・ESLintが動くようにしました。
    ドキュメントを読んで、ワークフローファイルを作って動かすところまではすんなりいきました。ただ、いざ実行してみるとMailerに関するエラー→selenium_chromeに関わるエラー→Tailwindに関わるエラーが出てて困りました😇
    その都度エラー文を読んで解決していくことで、無事動作するようにできたので良かったです。

苦労したこと

  • 開発できる環境を整えること
    「いざ作るぞ!」となってから、快適にコードを書く環境ができるまでが長かったです。
    リンターの指摘が厳しすぎる・エラーメッセージやflashが表示されない・CIの実行でエラーが出るなど、本来取り組みたいこととは異なる箇所で直したい箇所が出てきて、その都度修正を繰り返しました。
    今まで何も気にせずコードをかけていた、bootcampアプリの環境のありがたさを感じました😅
  • ログイン機能の作成
    自作サービスでは、DeviseとOmniAuthを使ってGoogleログインを実装することにしました。OAuthの解説サイト、Devise・OmniAuthの公式ドキュメントを読みながら試行錯誤しました。
    特に詰まったのが、「ログインボタンを押すとCORSエラーが出る」という問題です。Rails7系だけで起きる問題のようで、ボタンのTurboを無効化すると解決できたのですが、その情報を見つけるまでが大変でした。
    Turboについては、どこでどのように実行されるのかがよくわかっていないので、もう少し修行したいと思います😇

イベント参加など

  • Urawa.rb #3を主催
    第3回目は「室内花見会」と称して、もくもく会と懇親会を行いました。 童心に帰って沢山遊び、参加者の皆さんと親睦を深めることができました🌸
    活動の様子はこちら:Urawa.rb #3 活動報告 | Notion

  • FBC内のLT会で登壇
    テーマが「最近面白かったこと・もの」だったので、地域.rbの立ち上げについてお話をしました。Urawa.rbに興味を持ってくれる方がいたので、嬉しかったです。
    FBC内のLTは今回で4回目で、だいぶ慣れました。次は地域.rbなど、外部のLTに挑戦したいです!

1年間の振り返り

勉強を継続できた嬉しさと、1年間フルコミットしても卒業できていない悔しさが入り混じっています😅
1年間でできたこと・できなかったことをまとめておきます。

  • 入学時のバックグラウンド:

    • 高校の国語教員を退職直後。
    • 退職金でMacを購入し、使い方がよくわからない。
    • プログラミングの勉強歴ほぼなし。ProgateでHTML・CSSをちょっとやった。
  • 1年間でできたこと:

    • Railsで簡単なアプリケーションを作るために必要な知識をつけること。
    • 毎日日報を書くこと。(366回)
    • 毎月振り返りブログを書くこと。(12回)
    • FBCの皆さんと交流や、輪読会などで一緒に勉強すること。
    • 現役エンジニアさんの知り合いを作ること。
  • できなかったこと:

    • FBCを1年で卒業すること。
    • 定期的に技術記事を書くこと。
    • FBC外のイベントでLTをすること。

お世話になっているメンターさん、受講生・卒業生の皆さんには、大変感謝しています。卒業までもう少し、よろしくお願いいたします🙇‍♀️

4月の目標

  • 一通りの機能を完成させる。
  • デザインレビューを提出する。