フィヨルドブートキャンプに参加して1年経ちました。

はじめに

この記事はフィヨルドブートキャンプ Part 2 Advent Calendar 2022 - Adventar の16日目の記事です。

昨日は はるまきさんの 健康的に学習を続けるための肩こり奮闘記 - はるまきのブログでした。 エンジニアは肩こりとか腰痛になりやすそうなので、予防するのは大切ですね。

私がフィヨルドブートキャンプ(以下FBCと記載)に参加したのは2021年12月18日なので、約1年が経ちました。

そこで、この1年の振り返り記事を書いていくことにします。 現在FBCへの参加を検討されている方や既にFBCに参加されている方に、どんな感じで学習が進んでいくのかの一例として参考になればと思います。

参考までに、私の学習時間は9月まで平均6時間くらい、9月以降は3〜5時間くらいです。

FBC参加のきっかけ

エンジニアになりたいと思い独学でPythonの学習をしてましたが、オブジェクト指向の学習方法がわからず、またポートフォリオもどんなものを作ればいいのかわからないため独学に限界を感じ、プログラミングスクールを探すことにしました。

いろいろなスクールについて調べましたが、以下の理由でFBCにしようと思いました。

1.現役エンジニアの方からフィードバックがもらえる

やはり業務でプログラミングをされている方からフィードバックがもらえるというのは大きいです。現役のエンジニアの方がメンターとなり、提出物を見てレビューを下さったり、質問があれば答えてもらえます。

2.月額制なので、やっぱり合わないってなった時の負担が少ない

月額約3万円で入会金などもないので、やっぱりスクールと合わないとか、エンジニアに適正がないとかがわかった時に負担が少ないのがいいと思いました。

3.カリキュラムでオブジェクト指向が学べる

独学を挫折した要因でもあるので、カリキュラムにオブジェクト指向があるのがいいと思いました。

4.アンチハラスメントポリシーがある

アンチハラスメントポリシー | FJORD BOOT CAMP(フィヨルドブートキャンプ)を掲げ、快適なコミュニティを目指しているのがいいなと思いました。

5.年齢制限が無い

他のスクールだと20代限定とかの年齢制限があるところも多いので、年齢制限がないのは決め手の一つになりました。私が知る限りFBCには10代の学生の方から50代の方までいらっしゃいます。

2021年12月:基礎学習

基本的なことをプラクティスを通して学習していきます。プラクティスというのは学習内容がまとまってるカリキュラムのようなものです。 FBCの活動は、主にFBCのWebアプリとDiscordという音声チャットツールを通して行います。

まずはブログやGithubアカウントの開設からはじまり、学習用マシンの環境構築、HTMLやCSSなども学習します。VPSサーバーを契約してLinuxの学習もするのですが、このsshログインをするのが結構苦労しました。

GithubとかLinuxの学習は今なら大切さがわかりますが、最初は嫌で仕方ありませんでした。 Windowsとかのアイコンでの操作に慣れているので、あの素っ気ない黒い画面での操作が辛かったです。

かなり苦労しましたが上手く公開鍵でのログインができた時は嬉しくて、その後ここのプラクティスで苦労してる人を日報やQ&A掲示板で見つけては、「もしかしてこれが原因で詰まっているのでは?」と突撃してました(お節介かもですが)。

独学では絶対にやってなかったと思うのでFBCに参加して本当に良かったと思います。

2022年1月:Rubyの学習

ここは主にプロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus (以降チェリー本)から学ぶことになります。 プラクティスの課題で使うことはこの本かRubyリファレンスマニュアル を見れば大体書いてあります。

課題ではカレンダーやボウリングのスコア計算、LSコマンドやWCコマンドを自分で作ります。

中でもボウリングのスコア計算のロジックを考えるのが楽しかったのが印象に残っています。

2月:再びLinux、データベース

Nginxの学習とPostgreSQLの学習で再びLinuxを触ります。 Linuxにも慣れてくるので最初ほど嫌な感じはしないです。

データベース操作は必読書籍にはなっていないものの、SQL 第2版 ゼロからはじめるデータベース操作も読んで実際に操作しながら理解してました。

このプラクティスが終わったらVPSサーバーは解約してしまって大丈夫みたいです。

3月:Sinatra&Railsで挫折しそうになる

自作サービス制作を除けば、プラクティスで一番苦労したのはSinatraのメモアプリ作りでした。

Sinatraは初めてのフレームワークで、使い方が全然わからず苦労しました。 当時は検索しても情報が少なく、公式ドキュメントも個人的には読みづらかったので困りました。あまりに理解できていなくて、HTTPリクエストでDELETEを送ったら一体何が消えるんだろう?と怖々してました。 何も処理を書いていないので、当然何も消えませんでした。(自分で処理を書かないといけないことも理解できていなかった。)

仕方ないので先にRailsのプラクティスを最初の方だけやって、WEBアプリケーションについての基本的な動きを理解することでなんとか先に進めました。

そのRailsも最初は結構辛かったです。バランバランにファイルが分かれていて何がどこにあるの?と絶望的な気分になりました。

これはプラクティスの参考書籍にもある独習Ruby on Railsをしっかり読むと基本的なことが理解できました。他のRails本も何冊か読みましたしRailsチュートリアルもやってみましたが、下手に情報を求めて手を広げるよりまずは独習Rails一冊に絞って学習した方がいいと思います。これは入門用として本当によく書かれているのでおすすめです。

4月:オブジェクト指向Javascript

オブジェクト指向は、前のRubyのプラクティスでもやったボウリングのスコア計算プログラムとLSコマンドをオブジェクト指向で作ります。 前に作ったプログラムをオブジェクト版で作るので、使う組み込みメソッドなどを一から調べなくて済むのは大きいと思いました。 今プラクティスをみたら参考書籍が更新されていて、進めやすくなっていそうですね。

Javascriptは非同期処理がよくわからず苦労しました。今もよく分かっているかというとちょっと自信がないので、まだまだ勉強したいと思います。

5月:npm作成、Vue

Javascriptを使ってnpmというパッケージを作り、公開するところまでやります。FBCで作られたnpmはいろんなものがあって面白いですね。診断系やミニゲーム、何かを表示するものや実用的なものもあります。

私はチンチロを作りました。もしよかったら遊んでみてください!

www.npmjs.com

あとVueも学習します。フレームワークは最初全然わからない!ってなりますが、もう3回目なのでそろそろわからないのにも慣れてきます。 しつこく公式ドキュメントとかVue.js入門 基礎から実践アプリケーション開発までを読んでディレクティブの挙動を試して理解できると面白くなってきました。

6月:チーム開発に参加

6月1日からチーム開発に参加させていただきました。チーム開発ミーティングはDiscordの専用チャンネルで毎週水曜に行われます。 昼の部(15:00〜)と夜の部(22:00〜)があり、どちらかに参加します。FBCでは基本的にカメラで顔を映す必要はないのですが、このミーティングだけは顔出し必須です。

私は本格的にDiscordを使うのもチーム開発に入ってからでした。それでも問題はないのですが、もったいないとは思います。

最初は画面共有のやり方もよくわからないし、結構真剣な雰囲気なため緊張して非常に疲れるので、終わったらぐたっとしてました。

しかし、チーム開発はやはり面白いです。実際のFBCのアプリに反映されるので、自分がこの機能を追加したんだ!という満足感があります。 レビューのやり取りも勉強になりますね。

7月:輪読会に初参加

チーム開発も一区切りし、技術評論社から出ているパーフェクト Ruby on Rails 【増補改訂版】の輪読会が7月25日から行われるということなので参加させていただくことにしました。

輪読会というのはプラクティスとは無関係にFBCの有志で行われている活動で、その名の通り本を1冊決めて輪読をします。 FBC参加後こういうコミュニティ活動に参加し始めたのはここからになります。(かなり遅い方だと思います)

  • 本は自分のペースで読みたい

  • みんなで輪読してもそんなに理解しやすくなるわけじゃないと思う

という思想の持ち主だったのですが、間違っていました! 輪読会に参加するメリットはかなり大きいです。 私が考えるメリット

習慣的に学習できる

輪読会によりますが、毎週○曜日とか平日毎日とか定期的に行われるので、習慣的に学習できます。

わからないところを話し合うことで理解しやすくなる

わからないことをみんなで話し合うとわかるようになることが結構あります。輪読会に集まってくる人は勉強熱心な人が多いので、その場ではわからなくても、後日調べて教えてくださることもありました。 また、なんとなく流していたところで、他の人が「ここがわからないんだけど」と言うのを聞いて、確かにどういうことだろう?と実は理解できていないことが意識化されることもよくあります。 とにかく、自分一人で学習するより遥かに理解しやすいです。

たまに参加してくださるメンターさんから色々教われる

例えばcommand + fでコードない検索できるよ〜とか、VSCodeにこのプラグイン入れておいた方がいいよ、とかそんな感じの本に書いていないことを教われました。

他の方からの情報が入ってくる

エンジニア界隈のいろいろな情報が自然と入ってきます。今度こういうカンファレンスがあるとか、この本がおすすめとか、あと既に働いていらっしゃる方も参加されていることがあるので、現場での技術の使われ方なども耳に入ってきます。

他のコミュニティ活動に参加しやすくなる

実はこれまでミートアップにも参加できなかったぐらいのビビりなのですが、輪読会で顔見知りができたことによりミートアップやLT会にも参加できるようになりました。

ついでにここで宣伝なのですが、来年2023年の1月から毎週土日の14:00〜15:00にリーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)の輪読会が開催される予定です。私も共同主催者として参加させていただく予定なので、FBCに参加されている方ご一緒に輪読しませんか?

詳細は以下をご覧ください。

リーダブルコード輪読会2023を企画・主催します!📘 - LEFログ:学習記録ノート

リーダブルコードは一応オブジェクト指向のプラクティスの参考書籍になってますが、Rubyのプラクティスに入ったぐらいでも十分理解できると思います。参加はしたい日だけで大丈夫ですし、初めてでも理解できる自信がなくても全く問題ないです。

ご参加お待ちしています!

8月:自作サービスを作り始める

何を作るかかなり前から考えていたにも関わらず、結局決まらずに空いた期間ができてしまいました。 私が考えつくようなものは大抵既にあるんですよね。 没案をいくつか載せると、

  1. 災害用備蓄品の管理アプリ → 既にありました

  2. トイレ検索アプリ → 流石にないだろうと思ったら既にありました

  3. おすすめ本紹介CGM → ユーザー数が必要で運営に自信が持てないので没

ネタ切れなので身近な人に「こういうアプリがあったらいいなというアイデアない?」と聞いて回ったら、勤務予定の自動調整アプリがいいということで、それを作ることにしました。自分で勤務予定を決められる労働者向けのニッチなサービスなので、競合はいなそうです。

エレベーターピッチというアプリの簡潔な説明をまとめた後、ペーパープロトタイプを作りました。 このペーパープロトタイプの作成に使うWEBサービスの候補がいくつかあるのですが、Figmaの方を使うことをお勧めします。 私はBalsamiqを使ったのですが、操作が簡単で使いやすい反面、1ヶ月は無料でそれ以降は課金しないと使えなくなるので後から修正したくなった時に困るかもしれません。(課金するつもりなら問題ないと思います)

9月〜10月:技術検証

主にGoogleカレンダーとの連携の技術検証をしてました。難しい上に終わりが見えなくてモチベーションがだだ下がり、学習時間も3時間くらいに落ちました。2ヶ月ぐらい検証して、やっぱり実現できないかもってなった時は本当にどうしようかと思いました。 一縷の望みをかけてQ&A掲示板で質問したらメンターの方から回答をいただけて、なんとか実現できそうとなり首の皮一枚で繋がりました。

輪読会はこの期間もほぼ毎日参加してました。卒業生の方にGoogleカレンダーのことを聞けたり、Railsの操作にも慣れたりしたので、輪読会への参加したのはこの時期を乗り越えるのに大きかったと思います。 FBCに入る時は全然重視していませんでしたが、コミュニティは学習の上でも本当に大事だと思います。

コミュニティ内のQ&A掲示板とかも知見の宝庫ですよ。

11月:Rails new

やっと検証を終えて自作アプリを作り始めました。既に満身創痍気味ですが、やはり実際に動くものを作り始めると楽しいものですね。 自作アプリは自分で技術構成を決めるのですが、私はRuby3.1 + Rails7 + Vue3というFBCで学んだ技術をフル活用する構成にしました。 Next.jsやReactなどのプラクティス外の技術を自分で学習して使っている方も多いです。

12月:現在

自作サービスの製作中です。今は勤務予定の自動調整の機能を作っていて、完成まではもう少し時間がかかりそうです。

後2ヶ月ぐらいで卒業できたらいいなと思っています。

終わりに

こんな感じです。 これはあくまで私の場合で人によって進度は全く違いますし比べる必要もないのですが、一例として参考になれば幸いです。

当初半年で卒業しよう!なんて考えていましたが、あっという間に1年が経ってしまいました。 進むのが本当に早い人でも卒業まで9ヶ月はかかっているので、期間としては1年くらいが目安になると思います。

明日はFBCを卒業して就職された ぴー さんが記事を書いてくださいます。 卒業した後、1年目はどんな感じで働いていくのか興味があるので楽しみです。