はじめに
皆さんはプログラミングの勉強をしているときに技術メモを取っているでしょうか。
「必要に応じて教材を見直せばよい」や「また調べればよい」など思う人も多いかもしれません。
自分で分からないことを調べたり、新しい技術を参考書を見ながら勉強する際には自分用にメモを残しておくことが非常に重要です。
今回は自分用の技術メモを残すことの重要性とその書き方をご紹介したいと思います。
また私自身も実際にどのように書いているかについても紹介したいと思います。
是非皆さんもこの記事を参考に自分なりの技術メモを残しましょう。
目次
技術メモとは何か
技術メモとは、なんらかの学んでいる技術に対して自分の理解しづらかったことや興味深かったことを書き残すためのメモのことです。
例えば私が現在DjangoというWebフレームワークでアプリケーションを開発しているとします。
その時の技術メモは以下のように書きます。
具体的に中身についての説明は割愛しますが、忘れがちなDockerを使った環境構築をする際のコマンドと開発している時に生じた問題についてまとめています。
ここでは自分の学んだ技術に対してのリファレンスとして活用するため、そこまで難しいことは書いていません。
エディタもApple純正ものでも、Wordでもなんでも構いません。
ただ、プログラミングのメモなのでコードブロックが作れるものを選択した方が、上記のように綺麗に表示されるのでモチベーションが上がるかもしれません。
ちなみに私はTyporaというマークダウン形式に対応した軽量エディタを使っています。
以下の記事でTyporaについて紹介しているので興味がある方は参照してください。
なぜ技術メモをとることが重要なのか
ではそもそもなぜ技術メモを取ることが重要なのでしょうか。
技術メモを取ることは以下の3つのメリットがあります。
- 自分の頭を整理できる
- 再度調べ直す手間が省ける
- 記事に昇華できる
順番に解説していきます。
自分の頭を整理できる
「記事や教材を読んでいるとなんとなく理解できていると思うけど、実際にコードを書くときになると全然できない」ということはありませんか。
プログラミングに限らず、なにか新しいものを学んでいく段階では起こりやすい状況ではないかと思います。
こういったことは、どこまで理解できているか自分自身でも分かっていない場合が多いです。
そのため改めて文章に起こすことで、「この記述のここが特に分からなかったのか!」等々、自分の理解度が明確化されます。
また何も見ないでまとめ直すことで、学んでいることについてのより深い理解ができます。
このようなきっかけ作りとして技術メモを残すことは優秀です。
再度調べ直す手間が省ける
プログラミングや関連技術を学ぶ時に一番時間がかかってしまうところは、再度調べ直すことです。
分からないからまた教材を周回することになってしまうと、新しくアプリケーションやWebサービスを開発するフェーズに移行できません。
ここで時間をとられすぎてしまうのは非常にもったいないですよね。
スポーツで基礎練習だけでなく、実際に練習試合に出ることによって学べることが多いと思います。
同様に、できるだけ技術を純粋に学習するインプットよりも何かしらものをつくりながら並行して調べていく方がかえって効率的です。
インプットするよりもアウトプットする方が勉強する上では重要だということは、多くの論文ですでに証明されています。
情報が信用できるものを紹介しますので、興味がある方は参照してください。パレオな男: 学習法の統一王者、それは、「検索練習」
その時に使った技術や直面した問題をメモとして残しておけば、再度使用する時に調べる手間が省くことができます。
また、人が書いた文章よりも自分のなかで一回噛み砕いた文章の方が理解しやすいはずです。
学習の効率を上げることができます。
記事に昇華できる
エンジニアは自分の手掛けている技術の発信に積極的な方が多いです。
以下に代表されるのがその一例です。
Qiita
Qiitaは、プログラマのための技術情報共有サービスです。 プログラミングに関するTips、ノウハウ、メモを簡単に記録 & 公開することができます。
技術メモとして残しておけば、自分の学んだ技術を外に発信するきっかけになるかもしれません。
またこういった外部発信をしていることはエンジニアにジョブチェンジを検討されている方には、技術習得に積極的であると見られるので好印象になりやすいです。
どんどん外に発信して今勉強していることや自分の抱えている問題をシェアしましょう。
どのようにメモをとれば良いか
技術メモを残すメリットはご理解いただけたでしょうか。
最後にどのようにメモをとれば良いかをご紹介します。
結論から言ってしまえば、好きなように残せば良いと思います。
技術メモに、こうあるべきといったようなルールは存在しません。
なので例えば、自分の理解しにくかったところまとめ直したり、コードをどのように使えば良いか例を書いてみる、学習していて気づいたこと等々、自由で問題ありません。
強いて1つコツがあるとすれば、ちゃんと書こうとしないことです。
例としてPythonを学び始めた時のメモを載せておきます。
# デコレーター
# 関数を引数にする
def outer(func):
def inner(*args, **kwargs):
print("FIRST")
# ここで引数で受け取った関数を実行する
result = func(*args, **kwargs)
print("LAST")
return result
return inner
# add_num関数をdecorateします
def add_num(a, b):
return a + b
decorated = outer(add_num)
decorated(23, 34)
print(decorated()) # FIRST LAST 35
# decorater1
def print_more(func):
def wrapper(*args, **kwargs):
print("func:", func.__name__)
print("args:", args)
print("kwargs:", kwargs)
result = func(*args, **kwargs)
print("result:", result)
return result
return wrapper
# decorater2
def print_info(func):
def wrapper(*args, **kwargs):
print("start")
result = func(*args, **kwargs)
print("end")
return result
return wrapper
...
レイアウトには全く凝っておらず、この時はコードに直接コメントアウトという形でメモを残しています。
技術メモは残すこと自体に意味があるので、あまりにこだわりすぎて書くのが面倒くさくなってしまってはダメです。
あまり気負いせずに気楽にやりましょう。
まとめ
今回は技術メモを残すことの重要性やどのように書けば良いのかをご紹介しました。
少しでも技術メモを残す習慣のきっかけになれば幸いです。
最後に説明したように自分の学習したことをまとめるだけなので、皆さん気楽に行うと良いと思います。
限られた時間の中で新しいことを学ぶためには、効率を重視することも非常に重要です。
勉強法の書かれた本というのは世の中にたくさんありますが、おすすめの書籍を最後にご紹介します。
この本は学習のための学習ができる本です。
どのような順番もしくは方法で学習するとよいのかが理解できます。
情報も科学的根拠が多く、引用文献もたくさんあるので信頼性が高いのでオススメです。
現役エンジニアによる開発現場ベースの指導
今回は、実際にエンジニアも実践していることが多い技術メモの重要性と方法についてご紹介しました。
CodeShipではカリキュラムに沿った学習だけでなく、エンジニアが実際に開発現場で使用している開発手法や学習方法について教わることもアドバイスを受けることもできます。