はじめに
こんにちは、あさのです。
エンジニア転職を目指して、現在はオンラインのプログラミングスクールを利用しながらWeb系の技術学習に取り組んでいます。
つい昨日、転職を念頭に置いたこんなポストをしました。
エンジニアとしての実務経験が皆無な現状、「技術を向上させられるポテンシャルを持つ者として求められる」には実際に技術力を向上させ、ポテンシャルがあることを証明するほかありません。
ポテンシャルを証明するために、よくできたポートフォリオを制作したい。
「実務未経験の割にはやるな/頑張っているな」と思わせることができるなら、望む道への扉を少しでも開けることができるなら……と思って、RUNTEQ(スクール)の受講も決めました。
RUNTEQの受講を始めてから、できるだけ毎日ターミナルやVS Codeを立ち上げ、プログラムコードや技術書に触れるようにしてきました。
学習し続けていても、学ぶべきことがまだまだたくさんあります。
その「終わりのなさ」は、エンジニア職を志した理由のひとつでもありますが、果てがないことで「自分はまだまだ学習と経験が足りない」と時折落ち込む理由にもなりました。
どう学ぶべきか、学ばざるべきか、それが問題だ
何かを身につける、獲得するのであれば、その過程が効率的であるのに越したことはありません。
ましてやエンジニアの主な仕事は「問題・課題の解決」や「業務効率化」です。
普段から効率を意識して物事に取り組むことは、業務遂行のうえでも求められる能力だと思います。
日々、学習する習慣は身についているとはいえ、それが効果的なものであるのか、効率良く学べているのか、全く自信がないのが正直なところです。
間違いだらけの技術学習
「エンジニア 学習」で検索したところ、こんな記事を見つけました。
上記の記事によると「よくない勉強法」は以下の通り。
- 繰り返しやる
- ノートに書き写す
- 好みの学習するスタイルに合わせる
え、めちゃくちゃやってた……特に「ノートに書き写す」ってやつ……!
アホなのか? と思われそうですが、コードに何が記されているのかを理解するために「手で書いて頭に入れ、整理する」ことが有効だと考えてしまっていたのでした……。
これは「好みの学習スタイルに合わせる」とも繋がる話で、私は「なるべく脳に負荷のかからない学習方法」を選んでいたことに、改めて気づきました。
身になる学習方法ってどんなもの?
先ほどの記事では科学的根拠に基づく最高の勉強法などを元ネタに、効果的な学習方法について説明されていました。
(ちなみに、私はこの本を読んだことがあるのですが、全く活かせていなくてお恥ずかしい……)
学習方法の具体例
- アクティブリコール
- 勉強したことや覚えたいことを、能動的に思い出し、記憶から引きだす
- 分散学習
- ある程度まとまったものを、時間をあけて学習する
- 連続的学習
- アクティブリコール+分散学習
- ファインマンテクニック
- 紙の一番上に理解したい概念や問題を書く
- その下の余白を使ってその概念や問題を、他の人に教えるかのように説明してみる
- 自分が明確な答えをかけるほど理解していなかった場合には、元の教示に戻って答えを見つける
他にも、効果的な学習を行うためのトピックが色いろと書かれていますので、ご興味がある方は記事を読んでみてください。
これまで勉強方法&アウトプット方法の見直し
今後の技術学習を、より効果的に、効率的なものにしていくために、学習習慣の改善を図ろうと思います。
この記事は、いわば宣言のためのものです。
私の現在の学習習慣
- 技術書の内容をGitHubの非公開リポジトリに.mdファイルでまとめている
- カリキュラムや書籍で学習した内容をNotionやGitHubリポジトリにまとめている
- Webアプリケーション開発の際、余裕があれば開発手順やディレクトリ構成、コードの中身についてNotionにまとめている
- ほぼ毎日、RUNTEQ受講生用のMattermostにある自分のチャンネル(times)に「学習した項目」を列挙している
ひょっとしなくてもこの人、「文書に残す」ことが大好きなんじゃ……?
ええ、勉強で「綺麗にノートを取ること」が快感なタイプです! 学習効果はないのに!
やっていて楽しいことをやるのは、悪いことではないと思います。趣味と割り切って、目先の楽しさを味わうのなら。
ただ、私にはエンジニア転職を実現させたいという目標があります。趣味や楽しさだけを追い求めている場合ではないのです。
効率良く成果に繋げるために、効果的な学習方法にシフトしていくべきです。
具体的には、以下のことを実践していきたいと考えています。
1. アクティブリコールを学習習慣に取り入れる
アクティブリコールやファインマンテクニック用のレポート用紙を購入して、普段から学んだことを自力で自分の脳から捻り出すように習慣化します。
家にたくさんあるコピー用紙を利用することも考えましたが、1枚ずつ独立しているため、うっかり忘れたりいずれやらなくなったりする可能性が高くなるのでは? と思いました。
これを習慣付けるためには「綴じられていて、ひとつのアイテムとして存在する」ものがいいと感じました。
レポート用紙のまとまりが目に入るだけで、「今日もやらなければ」と思うトリガーとして機能することを期待しています。
2. 日々の記録の仕方を変えてみる
エンジニアの学習方法について調べていたところ、アウトプットを習慣付けることも有効である書かれた記事に、下記ページへのリンクを見つけました。
伊藤淳一氏が「一番下手くそエンジニア」から脱出した4つの方法。2023年版ITエンジニアの生存戦略【後編】 | レバテックラボ(レバテックLAB)
この方は下記のような習慣を続けることにより、成長できたということです。
- 毎週の振り返りを行う
- Keep:良かったこと・続けたいことを洗い出す
- Problem:悪かったこと・改善が必要なことを洗い出す
- Try:良かったことを更によくする/悪かったことを改善するための具体的なアクションを決める
- 「徹底的に調べて・徹底的にわかりやすく」記事にまとめる
具体的な記録の仕方
私も以下のことを実践してみようと思います。
- インプットしたトピックをわかりやすくまとめることを意識した学習記録にする
- アクティブリコールでの学習内容をそのまま書き起こせば一石二鳥
- 毎週の振り返りにKeep・Problem・Tryを追加する
- 毎週、Xに投稿している学習記録はそのままの形式で継続
- 週のレポート提出用のMattermostに投稿する項目を変えてみる
投稿のためのフォーマット
- 毎日の学習記録(times)用
# YYYY/MM/DD aaa(XXX日目)
【学習時間】**XXhXXm**(total:XXXhXXm)
【ポモドーロ数】**Xポモ**(total:XXXポモ)
【学習内容:やったこと一覧】
- a
- b
- c
***
**【理解したこと】**
- (どんな項目?)XXXについて
- (それはどんな内容?)
- (以下、3つ程度までを目安に記述)
**【わからなかったこと】**
- (何について?)
- (どこがわからなかった?)
***
**【明日・今後の予定】**
- [ ] (記述は任意)
- [ ] ToDoリスト形式
***
**【所感・コメント】**
(フリースペース)
- 毎週提出するレポート用
#### 先週の振り返り
【学習時間/週】:XXhXXm
【学習した内容】
- a
- b
- c
***
【**Keep**:良かったこと・続けたいこと】
- a
- b
【**Problem**:悪かったこと・改善が必要なこと】
- a
- b
**<エンジニアマインド>**
- 実施したアクション:(エンジニアマインド)
#### 今週の目標
- 学習時間/週:XXh
【**Try**:良かったことを更によくする/悪かったことを改善するための具体的なアクション】
- a
- b
**<エンジニアマインド>**
- アクション目標:(実行したいエンジニアマインド)
#### まとめ・感想
(フリースペース)
3. アウトプットのための時間を加味して学習時間を作る
単純にやることを増やしたため、毎日1〜2時間くらいはアクティブリコールと記録を残すために確保しておきたいところです。
最近、毎日の学習時間が短くなっているため、意識的に学習時間を増加させるようにしたいです。
おわりに
本日(2025/10/22)より、この3点を実施してみたいと思います。
- アクティブリコールを学習習慣に取り入れる
- 日々の記録の仕方を変えてみる
- アウトプットのための時間を加味して学習時間を作る
スクールの受講生である期間も、残すところあと3ヶ月ちょっと。
以前の自分より、少しでも成長しているように、成長できる自分であるように、できることを積み上げていきたいです。
なるぞ、エンジニア!