【ログは語る】プログラミングスクールでのオススメの勉強法

# とりあえずこれだけ言わせて欲しい

プログラミングスクールで学んだ内容のうち、**今後（カリキュラムの後半や転職後）も行う可能性のある作業については全てノートアプリに作業ログを残すことをオススメします！！！！**

オススメのノートアプリ
[Notion](https://www.notion.so/)

# この記事の対象
- 現在プログラミングを学習している、これから学習しようとしている方

# あなた誰？
現在某プログラミングスクールに通っている駆け出し？エンジニアです。

私は新卒でSIerに就職し、SEとして3年半ほど働いていました。
SEと言っても、システムの導入、保守がメインで開発は外注する形態だったので、プログラミングとかはほぼやってなかったです。
入社して3年目にあああああプログラミングやってみたい！！となり、退職しました。
スクールに通い始めて早3ヶ月目、今個人アプリ作成に奮闘しているところです。

SIer出身でもプログラミングスクールに通う意味ってあるの？とよく聞かれますが、**あります。**
私は前職ではSEという職種ではありましたが、プログラミングについてはbatファイルとかマクロをちょっといじいじするくらいしかしたことないです。
実際スクールで学ぶ内容は初めましてが9割以上と言った感じです。


今回はSIer時代に身につけた~~忘れたくても体に染み込んでしまった~~習慣の一つ、作業ログを残すことがプログラミングを学習する上で非常に有効ですという内容を書きたいと思います！！

# 作業ログとは

プログラミングを勉強する過程で、**実際に書いたコードや実行したコマンド、その結果画面などを指します。**

実際にノートアプリに書いた作業ログです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/52f2354d-d319-9900-8cc0-6ec00df6b963.png)

こんな感じで実際に書いたコードとその結果画面、プラスで自分のコメントなんかを書くようにしています。

# 作業ログを残すと何がいいの？

1. ノートに書くことで頭の中を整理できる
2. 同じ機能を別のアプリに実装するときのマニュアルとして使える
3. どこまで実装したか、どこから再開したらいいかが分かる
4. メンターに質問するときの状況説明資料に使える
5. 困っている同期を助けられる


### 1. ノートに書くことで頭の中を整理できる

私がノートを取る理由は**見返す目的というよりも自分の頭の整理を目的としています。**
小中高大時代に教科書やノートに**自分の言葉で色々メモを取ったことありませんか？**
プログラミングを学習する時でも同じで、自分の書いたコードの内容が複雑な場合、自分の言葉で分かりやすくまとめてノートに書くようにすると、その時に仕組みを理解し、頭の中を整理することができると思います！
こんな感じで、ノートにメモするといいながら、**自分の言葉で上手くまとめてアウトプットすると、かなり理解が深まります！！**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/f9380889-8cab-8352-8aba-bcfc5b1d4af2.png)


### 2. 同じ機能を別のアプリに実装するときのマニュアルとして使える

これは言うまでもなく、ですね。
フォローフォロワー機能のように、SNSアプリを作る際にはほぼ必須と言ってもいい機能については、下図のように作業ログを細かく残しておくと、次回以降、このログの通りに同じ作業を踏んでいくだけで機能が実装できるようになります！
転職活動時には個人アプリ（ポートフォリオ）を作成することが多いと思います。
その個人アプリに実装したいなあと思う機能については、作業ログを残しておくと実装がスムーズにできます！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/29ab17db-c9b6-52e7-9437-c53cd5799ff0.png)


### 3. どこまで実装したか、どこから再開したらいいかが分かる

私は一回寝ると、昨日どこまでやったっけ？次どっから手をつければいいんだっけ？
と、なることが多いです。。。
オススメの方法としては、その日の作業を終了する際に、明日どこから手をつけるかを一文メモを入れておくことです。
こうすることで前の晩にお酒を飲みすぎて頭の中の作業ログが紛失してしまっても翌日好調なスタートが切れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/98cb36eb-8440-f7e5-d7c6-a2c133c96dbf.png)


### 4. メンターに質問するときの状況説明資料に使える

多くのプログラミングスクールでメンター質問形式が採用されていると思います。
メンターに質問する時、**どこまでできたか、どういうエラーが起きたか、何をしてそうなったのか**といったように、状況説明を最初にすることが多いです。
そんな時に作業ログがあれば、すぐに状況を伝えることができます。
**特にエラー画面のスクショとターミナル上のエラーメッセージのログを残しておくと、エラー解決の際にかなり役立ちます！**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620431/abe40fb1-fb93-73ff-0afd-b7f6ab245f91.png)


### 5. 困っている同期を助けられる

私の通っているスクールには同期という概念が存在しており、切磋琢磨しながら勉強を進めています。（これがスクールの醍醐味かなと思ってます！！笑)
同期の中に「この機能の実装が上手くいかない・・・」って方がいた時に、自分が同じ機能を実装したときに残した作業ログの一部を参考資料として差し上げたところ、上手く実装することができました。

安易に答えを見ることはプログラミングを学ぶ上ではあまり良いことではないですが、**実務ではそんなことも言ってられません！**

上述の通り、自分の残した作業ログは**実装マニュアルになります。**
もし以前自分が実装した機能を自分以外の誰かが実装する時にそのマニュアルがあれば、短期間かつ正確に実装することができます。~~救世主になれるかもしれません。~~


# おわりに

プログラミングを学ぶ際に「ノートを取るのは無駄！！！」って記事をよく見かけていたのですが、実際に取りながら学習を進めてみると思っている以上に取って良かった！と思える場面が多かったので、記事にしてみました！

もちろん作業ログを逐一取っているとその分時間がかかってしまい、学習が遅れてしまうというデメリットもあります。

私が言いたいのは、「ノートを取るのは無駄！」とか「テキストの写経は無駄！」など色んな意見が出回っていますが、あんまり全てを鵜呑みにせずに自分なりにやりやすい方法で学習を進めるといいかなと思います！！

現在プログラミングを学ばれている方、これからプログラミングを学ぼうとされている方、一緒にがんばっていきましょう！！┗(^o^)┛

## 追記

時間があれば、Notionを使ったプログラミング学習法についても書きたいと思います！