プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

エンジニアが持っておくべき知識のインデックス

更新日:

エンジニアが持っておくべき知識のインデックスとは、どういう意味でしょうか?

本記事の内容


エンジニアがコードを書く時に、何も見ないで打ち間違いもなく、サクサクとコードを書けたらベストです。
でも、そういったことができるエンジニアは限られています。
私の場合だと、「ソースコードをコピーすること」と「自分でコードを書くこと」は、半々ぐらいのイメージです。
そういった時にあると便利なのが、「知識のインデックス」であり、自分自身の「虎の巻き」です。
ちなみに、インデックスとは索引のことを意味します。

エンジニアの仕事の進め方

冒頭でも軽く述べましたが、自分がやりたいことを何も見ずにサクサクと書けたら、それがベストです。
ただ、その作業は難易度が高いし、そこまで価値があるかと言われると微妙なところです。
実際に例を見ていきましょう。

MySQLのデータをダンプしてバックアップしたい。
そんな時にスラスラとコードが思い浮かぶ人は大したものです。
自分の場合は、なんとなくは覚えているものの、確証はないので自分のメモを見ます。

mysqldump -uroot test_db | gzip > /tmp/test_db.sql.gz

メモには、ダンプだけでなく圧縮のコマンドも書かれていました。
メモを書いた時の、過去の自分を褒めてあげたくなります!
その下に、セットで使うであろう解凍とインポートのコマンドも書かれています。

gunzip -c /tmp/test_db.sql.gz | mysql -uroot test_db

後は、これを書き換えてコピペすれば任務完了です。
さらに理想を言えば、こういったコマンドを自動化してAnsibleのような構成管理ツールから叩くとなお良しです。

curlでPOSTリクエストを送る時も同様です。
私はメモを見てから、コマンドを叩きます。

curl -X POST http://localhost:3000/users -d 'user[name]=test1&user[email]=test1@gmail.com'

これを全て覚えてもいいのですが、覚えることの価値はそこまで高くない気がします。

何をインデックス化したらいいのか?

何をメモして、インデックス化しておくかは、個々のエンジニアのレベルによります。
上記の例を見て、「そんなレベルのコマンドは全て丸暗記している」という人もいるかもしれません。
その場合は、「内容は、ほぼ理解しているけど少し曖昧」という部分をインデックス化しておくべきです。

また、初心者で、「クラスや関数の作り方が曖昧」というエンジニアもいるはずです。
その場合は、いくつかのクラスや関数のパターンをメモしてインデックス化しておきましょう。

そして、クラスを実装する時に、そのメモを使えば、効率よく実装をできるはずです。

「インデックス化すること」のイメージは、なんとなく湧いてきたはずです。

私は何度か以下のような質問を受けたことがあります。

  • 「デザインパターンを勉強した方がいいですか?」
  • 「Dockerを勉強した方がいいですか?」
  • 「アルゴリズムを勉強した方がいいですか?」

そんな時にはきまって、「勉強をするにこしたことはない」と回答します。
「勉強をするにこしたことはない」のレベルは「知識のインデックスをつくる」ぐらいだと思っています。
つまり、浅すぎず深すぎずで、「会話についていけるし、調べればシッカリと実装できる」というレベルです。

今の時代に、全ての情報を丸暗記しておく意味は、あまりありません。
一度、ある程度を理解したら、あとはインデックス化しておき、実務で使いながら理解を深め、それを効率よく使いまわしましょう。

Good luck for your engineer life!

プログラミングの勉強の順番について説明します

プログラミング学習で時間を無駄にしない方法【実行あるのみ!】

子供向けのプログラミングに関する本を知りたい人には、この記事がオススメです

子供向けにおすすめのプログラミングの本【2023年最新】

目次1 入門編2 初心者向け3 おまけ 入門編 ルビィのぼうけん こんにちは!プログラミング 世界の20か国以上で翻訳されたベストセラー本です。 フィンランドの女性プログラマであるリンダさんが、自分の子供のために作った絵本です。 そのせいか ...

続きを見る


プログラミングスクールに行きたい人には、この記事がオススメです

都道府県別のプログラミングスクール紹介【2022年最新】

目次1 プログラミング言語2 まとめ プログラミング言語 北海道 東北 関東 中部 近畿 中国 四国 九州 沖縄 まとめ この記事では、都道府県別にプログラミングスクールを紹介しました。 近くに行ってみたいスクールがあれば、是非、連絡をして ...

続きを見る

-初心者向け

Copyright© プログラミング道場 , 2024 All Rights Reserved Powered by AFFINGER4.