第七十一回:効率の良いやり方を極める
今日は2021年6月17日です。実は一昨日くらいまでメッチャのんびりしていました。そのお陰で今はやる気に満ちあふれています。しっかり充電できましたからね。ということで、今回はキリッと行きます。超不定期連載「分かりそう」で「分からない」でも「分かった」気になれるITコラムでございまぁす。このコーナーでは、各用語の説明ページでは取り上げにくいIT関連のネタをテーマに、だらだらと思いついたことを書いていきます。みなさんが「あぁ、なんか役に立ちそうな気もするけど、役に立たないかなぁ。でも、もしかしたら役に立つかも」と思える情報を発信できるように頑張ります!
はじめに
栄えある七十一回目のテーマは……ピヨピヨピヨピヨ(ぴよぴよ的ドラムロール)……じゃん!
効率の良いやり方を極める
です。
ITとは関係ありませんが、どーんまい。
一時期に比べれば下火になったとはいえ、以前(10年前とか)に比べると、プログラミングの勉強をしている人が増えています。
そんな人たちを遠目に眺めているのですが、効率の良い勉強のやり方を探している人が少なからずいます。
その心意気は、とても素晴らしいです。
ITエンジニアとしてやっていくのであれば、手を抜くために全力を尽くす姿勢は大事ですからね。
ただ、ですね。
効率の良いやり方=手っ取り早く習得できるやり方
と考えている人が、あまりにも多いように見受けられます。
それが今回のコラムを書くことにしたきっかけです。
なお、お忙しい人向けに先に結論を書いておくと、今回のコラムで言いたいことは
すべての物事から学ぼうぜ!
です。
最後まで読んでくださる方は、この結論を知らないことにして読み進めてください。
効率の良いやり方とは?
いきなりですが質問です。
効率の良いやり方って、どんなやり方ですかね?
どんなやり方に対して、私たちは「あぁ、これは効率の良いやり方だなぁ」と感じるのでしょうか。
……(--)
考えてみました?
みなさんの考えも聞いてみたいところではありますが、ここは私が一方的に書き殴る場所なので、とりあえず私の考えをもとにして話を進めます。
私は
同じコスト(お金、時間など)で、より大きな成果を得られるやり方
が効率の良いやり方だと考えています。
「速く終わるやり方」では、ありません。
「たくさんの量をさばけるやり方」でも、ありません。
コストに対して成果が大きいやり方
です。
効率の良し悪しは何を成果と見なすかによって変わるよ
前の節で
コストに対して成果が大きいやり方が効率の良いやり方だよ
と書きました。
これが何を意味するかというと
同じことを同じようにやった場合でも、何を成果と見なすかで効率の良し悪しが変わるよ
です。
例えば、そうですね。
新入社員のピヨ太君が上司のピヨ子さんから課題を出されました。
課題の内容は「1+1の答えを求めよ」です。

この課題に対して、ピヨ太君は3つのやり方を考えました。
1.ピヨ子さんに「1+1」の答えを教えてもらう
2.ピヨ子さんに「1+1」の解き方を教えてもらう
3.自分で「1+1」の解き方(か答え)を調べる
の3つです。

この3つのやり方のうち、一番効率の良いやり方はどれでしょうね?
「課題を早く終わらせる」ことを成果と定義した場合、一番効率が良いのは
1.ピヨ子さんに「1+1」の答えを教えてもらう
やり方です。
答えを教えてもらえれば、サクっと終わります。
解き方を教えてもらったり自分で調べるよりも早く終わるはずです。

「ピヨ太君の計算力を鍛える」ことを成果と定義した場合、一番効率が良いのは
2.ピヨ子さんに「1+1」の解き方を教えてもらう
やり方です。
答えを教えてもらっても力は付きません。
自分で調べて解き方に辿り着ければ良いですが、イタズラに時間を費やすだけの可能性もあります。
解き方を教えてもらって答えは自分で計算するのが、計算力を鍛える上では一番手っ取り早いはずです。

「ピヨ太君・ピヨ子さんのいる部署が抱える仕事を終わらせる」ことを成果と定義した場合、一番効率が良いのは
3.自分で「1+1」の解き方(か答え)を調べる
やり方です。
「何もできない新人には課題を与えておいて、新人が課題をやっている間に本来の仕事を進める」は先輩「あるある」ですよね。
この場合、ピヨ太君が課題をこなせるかどうかは重要ではありません。
大事なのは、ピヨ子さんの時間を奪わないこと(でピヨ子さんが集中して仕事を進められること)です。
ピヨ太君がピヨ子さんに教えてもらう事態が発生すると、部署で抱える仕事を終わらせる上では効率が悪くなります。
世知辛い話ですが、ピヨ太君一人で勝手に頑張ってもらうのが一番効率的です。

いかがでしょうか。
何を成果と見なすかで効率の良いやり方が違いますよね。
プログラミングを学ぶ上で効率の良いやり方とは?
ここまでに
コストに対して成果が大きいやり方が効率の良いやり方だよ
ということと
同じことを同じようにやった場合でも、何を成果と見なすかで効率の良し悪しが変わるよ
ということを書きました。
それを踏まえて、プログラミングを学ぶ際の効率の良いやり方を考えてみましょう。
例えば、そうですね。
ピヨ太君がプログラミング言語「ピヨ言語」を学ぼうとしています。

ピヨ太君はピヨ言語マスターのピヨ子さんに手取り足取り教えてもらうことにしました。

ピヨ子さんの頑張りのお陰で、ピヨ太君はピヨ言語を使いこなせるようになりました。

めでたし、めでたし……でしょうかね?
ピヨ太君がピヨ言語で作りたい物があったのであれば「めでたし、めでたし」でしょう。
ピヨ言語を使いこなせるようになりましたからね。
あとは、ピヨ言語を使って作りたい物を作れば良いだけです。
ですが、ピヨ太君がプログラマになりたくてピヨ言語を学んだのであれば話が変わってきます。
ピヨ太君は確かにピヨ言語を使いこなせるようになりました。
ですが、それはピヨ子さんが手取り足取り教えてくれたからです。
ピヨ太君の中に「プログラミング言語の学び方」のノウハウは蓄積されていません。
これが何を意味するかというと「別のプログラミング言語を学ぼうと思ったら、教えてくれる人を再び探さなくてはいけない」ということです。
独力で習得する力がありませんからね。
また誰かに教えてもらう必要があります。
もしかしたら教えてくれる人が見つからないかもしれません。
その場合は手詰まりになってしまいますね。
これは、ピヨ太君の長いプログラマ人生で考えたら効率の良いやり方とは言えません。
やはり他人を頼るのはダメです。
プログラミング言語の習得は独学で頑張るべきでしょう!
……と結論付けるのも短絡的ですよね。
教えてもらえば5分で理解できることが、自分で考えているだけでは1時間経っても理解できないかもしれません。
ピヨ子さんに教えてもらうことでピヨ太君はピヨ言語を習得できましたが、独学でやっていたら途中で挫折していた可能性もあります。
エラーが出たときもそうです。
誰かに聞けば5分で解決できることが、自分で調べ続けたら1時間かかっても解決できないかもしれません。
無駄に時間を費やすくらいなら、知っていそうな人にさっさと聞いた方が効率的です。
本当にそうでしょうか?
いつも誰かが助けてくれるとは限りません。
独力でエラーを解決する必要に迫られることが必ずあるはずです。
エラーの内容から原因を推測する勘所は経験によって鍛えられます。
普段から自力でエラーに挑んで経験値を積んでおいた方が良いのではないでしょうか。
う~ん、考えれば考えるほど、どっちが効率的か分からなくなりますね。
さらに、です。
プログラマの先輩たちは二大派閥のどちらかに属しています。
1.「分からないことは、さっさと聞けよ」派
2.「分からないことは、まずは自分で調べろよ」派
のどちらかです。
この二大派閥はたまに骨肉の争いを繰り広げますが、どちらの考えも一理あります。
「その問題をさっさと解決させる」のが目的であれば「分からないことは、さっさと聞けよ」の方が効率的です。
「その問題を自力で解決できるように鍛える」のが目的であれば「分からないことは、まずは自分で調べろよ」の方が効率は良いはずです。
何を目的とするかによって、どちらが適しているかは変わってきます。
ということで、私は
プログラミングの学び方に「万人に共通する」効率の良いやり方なんてない
と思っています。
その人の性格やプログラミングを学ぶ目的、確保できる勉強時間の長さによっても効率の良いやり方は変わってきます。
だから、効率の良いやり方を他人に教えてもらおうとしても無駄です。
自分にとって効率の良いやり方を自分で作り上げる必要があります。
すべてのやり方を効率の良いやり方にする
最後に、私が意識している効率の良いやり方を紹介します。
私が意識している効率の良いやり方は
1.求める成果に「自己の成長」を含める
2.すべての物事から学ぶ
です。
同じコストで、より大きな成果を得られるのが効率の良いやり方です。
「自己の成長」を成果と定義し、すべてのことから何かを学んで成長できたら、何をどんなやり方でやろうと効率の良いやり方になります。
何をやっても「自己の成長」という成果を得られるのですからね。
ということで、私は「このやり方は効率の良いやり方かな?」というのは、あまり考えていなかったりします。
意識しているのは
1つの物事から、どれだけたくさん学べるか?
です。
たくさん学べれば学べるほど、それだけ効率の良いやり方になります。
まとめ
今回は
効率の良いやり方を極める
というテーマで好き勝手に語ってみました。
効率の良いやり方というのは
コストに対して成果が大きいやり方
です。
これが何を意味するかというと
同じことを同じようにやった場合でも、何を成果と見なすかで効率の良し悪しが変わる
です。
それを踏まえて
1.求める成果に「自己の成長」を含める
2.すべての物事から学ぶ
ようにすると、すべてのやり方が効率の良いやり方になります。
何をどんなやり方でやろうと「自己の成長」という成果を得られるからです。
1つの物事から、より多くのことを学べれば、それだけ効率の良いやり方になります。
ということで
すべての物事から学ぼうぜ!
です。
思いつきで始めて惰性で続けている「分かりそう」で「分からない」でも「分かった」気になれるITコラムですが、いかがでしたでしょうか。また何かネタがあったら、ちまちまと更新していきます。コンゴトモヨロシク。






