プログラマーに必要なのは、コードを「作る力」ではなく「設計する力」
先日、SNSで「プログラマーは、実はコードを暗記しているわけではない」という話を目にした。
(結構な数のいいねが付いていたので、目にした方も多いかもしれない)
これは本当にそのとおりで、むしろ「プログラマー」を経験していない人たちの印象から、「プログラマーはみんなコードを覚えている」と思われていたことに、元プログラマーだった私は驚いてしまった。
私も二十代の頃にプログラマーとして働いた時、基本的にコードはネットで検索していた。(今もそうすることは多い。なんなら今はChatGPTなどにコードを聞く方が早いまである)
もちろん、基本的なものは覚えている。
IF文とか、ループとか、そういう基本は頭に入ってるが、大体実現したいコードは検索することが多い。
仲間内で「プログラマーに必要な能力は検索する力だ!」なんて冗談を言っていたことがあったが、実際は冗談ではないのだ。
そういうわけで、プログラマーは、実はなるにはそこまでハードルは高くは無い。
しかし、実際はコピペで出来る仕事でもないことには注意したい。
プログラマーに必要な能力を真面目に考えると、(コミュニケーション能力や問題解決の能力等も勿論必要だが、その中でとくに)私は「設計する力」が必要だと思う。
(厳密にはこれはシステムエンジニアの仕事になるのだが、プログラマーのキャリアアップ先の一つがシステムエンジニアだし、私はプログラマーは数年経験したらその先(キャリアアップ)を目指すべきだと思っているので、その前提で話をさせてほしい)
例えば、Webサイトを作りたいと考えた場合、まず「どんな情報を見せたいのか」「ユーザーはどのように操作するのか」といったことを具体的に設計する必要がある。この設計図を元に、プログラムを組み上げていく。
何か実現したいことがあり(目的・ゴール)、それを実現するためには、何をどうすればいいのか……これを導きだしてプログラムの設計をする能力が、プログラマーには必要になる。
もちろん、最初はこの部分のハードルが高いので、別の誰かが設計した仕様を、そのまま実現できるだけの能力があればいい。
ネットでコードを素早く検索して(もちろんそのコードを理解するだけの能力は必要だが)、コードをコピペして仕様通りの動きが出来ればそれでプログラマーとしては働いていける。
ただ、それだけでは「プログラマー」以上にはなれないし、プログラミングに本当に必要な能力は「コードを覚えること」ではなく、「組み立てる能力」だろう。
(そして近年、子どもの内から学ぼうと言われているプログラミングの能力も、こちらを指しているはずだ)
最初は、チュートリアルなどを参考にしながら、「心理テスト」や「くじ引き」をするプログラムなど、簡単なプログラムを作ってみるといいと思う。
徐々に複雑なプログラムに挑戦し、設計の経験を積んでいくことで、自然と「設計する力」が身につくはずだ。
プログラマーはコードを暗記しないとプログラマーになれないわけではない。コードを覚えることはそんなに重要ではない。
本当に重要なことは、設計する力である。
もしあなたがプログラマーを目指したいと考えているなら、これだけは覚えておいてほしい。