どうも、佐々木(@moto_ssk)です。
初学者エンジニアにありがちなのが「書けた = できた」なんですね。
今日は「書けた ≠ できた」という話を。
初学者エンジニアにありがちなのが「書けた」が「できた」になること。
ひとまず「書ける」のが大事だし、そこに異議はないけど、エンジニアならば「なぜ?」の視点は常に持つことを心がけると吉。「なぜ?」もセットで振り返れば、原因と対策、その理由まで一通り網羅でき「できる」ようになるよ。— 佐々木基之@ハイブリッドSE (@moto_ssk) April 29, 2019
*
連休をきっかけにプログラミングを始める人もいるでしょう。そんな方にぜひ持って欲しいのが「なんでこれでいいの?」という視点です。
僕も今まさに新人研修でプログラミングを教えているわけですが「暗記」に走る人が多いこと多いこと。
プログラミングに「暗記」は不要です。なぜってプログラミングは「正解」があるようでないからです。極端にいえば自分が書いたコードが正解(まあ実際の業務においては仕様があるので、それに則してることが「正解」ですが)。
もちろん基本構文など、最初は暗記を必要としますが繰り返し取り組めば覚えちゃってる状態になります。
練習問題など模範解答コードを必死で覚えようとするのが初学者エンジニアの特徴ですが、それ不要です。
コードを覚えるんじゃなくて、どんな流れで処理をしているか?を理解するんです✊
プログラミングで大事なことは「アルゴリズム構築」だと思ってます。
"スラスラ書けること"や"何も頼らずに書けること"を目指す人多いけど、それは効率化を目指す時の話であって、問題解決はやはり"アルゴリズム構築力"。だからGW中にプログラミングに取り組む人はとにかく沢山解いてくださいな。
— 佐々木基之@ハイブリッドSE (@moto_ssk) April 29, 2019
*
つまり「書けた ≠ できた」なのは、求められる結果が得られればそれでいいとはならないからです。
「同じ結果なんだったらいいじゃん」と思う方は、コードの前にその思考をデバッグしてください。
仮に同じ結果だとしても、可読性はどうか?保守性はどうか?再利用性はどうか?という観点がごそっと抜けているコードは品質が高いとはいえません。「できた」には品質が高いか?も含まれてるんですね。
もちろん学び始め当初は「まず動くもの」これが何より重要です。
ただ、いつまでのその域に浸かってないで「なぜこれでいいの?」「もっとスッキリ書けない?」を考える癖を持ってほしいと思います✊