2022年11月5日でフィヨルドブートキャンプ(以下「FBC」)に入会して1年が経ちました。 今年も残り1ヶ月になったのでちょっと早いですが今年の振り返りをしておきます。
学習時間について
私の1年間の学習時間です。
- 合計時間: 約950時間
- 月平均: 約80時間
- 週平均: 約20時間
- 日平均: 約2.5時間
FBC入会当時の学習時間の目標が20h/週だったのでなんとかクリアしています。かなりどんぶり勘定ですが笑 一日の平均は今年の前半に比べて30分ぐらい減ってしまいました。 ただ、FBCの受講生の中でも学習時間は少ない方では無さそうです。
正直なところ、もっと学習時間を捻出できると思っていましたがプライベートが影響して学習時間を捻出できなかったことが悔しかったです。
プラクティスについて
今年1年で進めてきたプラクティスです。
- HTML & CSS
- Linux
- Git & GitHub
- Ruby
- HTTP
- Nginx
- データベース
- Webアプリケーション
- Ruby on Rails
今年の後半で進めることがプラクティスは次の3つです。
- データベース
- Webアプリケーション
- Ruby on Rails
この3つのプラクティスはどれもとても難しかったですが、合格する度に自分の成長を感じられとても楽しく学習を継続することができました。
データベース
SQL、PostgreSQL、データベース設計を学びました。 中でも「達人に学ぶDB設計 徹底指南書」と「楽々ERDレッスン」の2冊の技術書を読み、実際にDB設計を行うプラクティスが一番難しかったです。 なんとか作図したER図を提出できましたが、理解が曖昧な部分が多かったので結果的にメンターの方とのペアプロで指摘点を一緒に修正する中で理解を深めることができました。
コードを書く難しさとは別の難しさを感じましたが、ものごとの考え方など深い部分の学びが多く楽しかったです。
Webアプリケーション
RubyのwebフレームワークSinatraを使って簡単なメモアプリを作成しました。 Sinatraは使ったことが無かったですが、正直なところ「Railsを使う前の準備運動だろう」と軽く考えていましたが痛い目を見ました笑
RESTとマークアップに対する理解の甘さが露呈し、とても苦労しましたが結果的には成長を感じる事ができました。
CSSの苦手意識を克服するためにやったこと - 時々とおまわり
また、ディレクトリ・トラバーサルというセキュリティ問題についてもメンターの方に指摘していただきセキュリティへの理解も深まりました。
この頃からブログの投稿頻度が増え、自分なりの効率的な学習方法が分かってきた気がします。
Ruby on Rails
Ruby on Railsは独学で学んだことがあったので割とスムーズに進んだ方だと思います。 ただ、devise gemを使ったプラクティスは吸収する情報量が多くとても難しかったです。
理解したことを整理するためにブログの投稿はさらに増えましたが、ブログを投稿する時間と必要以上に知識を深堀りしてしまったことで学習時間を圧迫してしまったことは失敗だったなと反省しています。
Railsのフォームのsubmitをhelpers.submit.createで翻訳できる理由を調べた - 時々とおまわり
しかし、ポジティブに捉えるとソースコードを読む経験は後々生きてきそうなので結果的には良かったかもしれません。 この頃から公式ドキュメントを効率良く読むスキルの習得と読解力を鍛えたいと考えるようになりました。
良かったこと、悪かったこと
今年1年の学習での良かったこと、悪かったことです。
良かったこと
- ポモドーロを導入した事による学習効率の向上
- 技術ブログを継続できた
- Discordを使ったオンラインコミュニケーションの経験
- プログラマがどんな人たち、どんな仕事なのかイメージできた
ポモドーロを導入したことで集中力アップと時間的制限を設けて作業を進めるスキルを身に付けたことは個人的にはとても大きい収穫でした。
FBC入会後5ヶ月の振り返りで目標にしていた技術ブログも継続でき、文章を書く苦手意識を払拭できたことも自信に繋がりました。
また、独学の時に経験できなかったチャットツールでの情報交換は今では無くてはならないものになっています。
そして、今年1年FBCでの学習での一番の収穫はメンターの方とのコードレビューやペアプロの中でプログラマがどんな仕事なのかイメージできたことです。 プログラマとしての考え方、ものごとへの姿勢を働く前に学べたことはとても良かったと感じています。
悪かったこと
- スケジュール通りに学習が進まなかった
- 時間を意識することの大事さに気付くのが遅かった
FBC入会当初の予定では1年で卒業する予定でしたが大幅に遅れてしまいました。思った通りに進まなかった理由を自分なりに分析しました。
- 詰まった時に無駄に深掘りし過ぎた
- ブログ等のアウトプットの時間が増えすぎた
- 完璧を目指そうとした
- 質問するまでに時間を掛け過ぎた
特に時間を圧迫していたのは知識の深堀りです。 gemのソースコードを読むことに多くの時間を掛けていた私にメンターの方から次のようなアドバイスをして頂きました。
「Railsを使った開発ではたくさんのgemを使うので、必ずしも実装レベルで全ての中身を理解する必要はないですし、実際現実的ではないと思います。それをしないといけないのであれば、そもそもgemを使わずに全て自分で実装するのと変わらないですからね 😅」
当たり前のことかもしれませんが、全てを理解しよう考えていた私にとっては目から鱗でした。 独学の時には曖昧な理解で学習を進めていたことが良くなかったと感じていたので、FBCに入会してからは全てについて深く理解しようとしていたことが逆に良くなかったと気付くことができました。
また、FBC入会当初は自分で解決しようとして質問するまでに時間が掛かってしまっていたことも良くなかったと感じています。 現在は学習で詰まった際は時間的な制限を設けて時間内に解決出来なかった場合はできるだけ早いだんかいで質問するスタンスで取り組んでいます。
これから
今回の振り返りを通して次のことを身に付けていきたいと考えています。
- 技術書、ドキュメントの効率的な読み方
- 課題解決を時間内に終わらせる力
- 手を動かしながら理解する学習スキル
- 会話力
技術書、ドキュメントの効率的な読み方
技術書やドキュメントを読むことにはだいぶ慣れましたが、読むこと自体に時間が掛かってしまうので短時間で必要な情報に辿り着くスキルが必要だと感じています。 「技術書」の読書術というぴったりな本を知ることができたのでまずはこの本を読もうと思います。
課題解決を時間内に終わらせる力
学習に時間を掛けること自体は悪いことではありませんが、仕事となるとそうも言ってられないので制限時間内にタスクを終わらせるスキルはとても重要だと感じました。
課題解決にかける制限時間を超えてしまった場合の行動を自分の中でしっかり決めて「質問」や「ペアプロ」を活用して良い意味で「周りの人に頼れるスキル」を身に付けていこうと考えています。
手を動かしながら理解する学習スキル
「ソフトウェアは壊れるぐらい触った方が理解できるかも」と最近感じています。 ソフトウェア開発は何度でも作り直すことができるので壊れるぐらい触ってフィードバックを元に理解をしていく方が早いと気付きました。
技術書やドキュメントを読むことももちろん大切ですが、今後は手を動かして触って理解することにも意識を向けていこうと思います。
思考を伝える会話力
FBCに入会しオンラインでのテキストコミュニケーションはだいぶ慣れましたが、ペアプロ等の直接会話するという行為が意外に多いことに気付きました。 これはプログラマとして働く上でも変わらないと思うので、自分の思考をしっかり相手に伝える会話力を身に付けたいと思っています。
FBC内のコミュニティ内での色々なボイスチャンネルへ参加し話す機会を増やすこと、話し方に関する本を探して読むことをやってみます。
まとめ
久しぶりに技術意外のことを書いてみましたが定期的に書くことで気持ちを切り替えられるので今後も続けようと思います。 卒業までもうしばらく掛かりそうですが、来年こそはプログラマとして働けるように今年以上に頑張っていきたいと思います!