大学で学ぶプログラミングの先

この記事は smasato ひとり Advent Calendar 2021 4日目の記事です。

大学で学ぶプログラミングと、自分でつくりたいものをつくるプログラミング、会社のエンジニアとしてのプログラミングにはそれぞれ壁があると思う。

ここでいう大学で学ぶプログラミングとはプログラミングの授業のことで、そこでは明確な模範解答があり、回答のためのヒント、例えば「ここでは2次元配列を使います」とか「ハッシュを使うといいでしょう」などが与えられている。また、解くべき課題の仕様はある程度定まっていることが多い。

それと比較すると、自分でつくりたいものをつくるプログラミングには模範解答は存在しないし、仕様は明確になっておらず自分で決めていく必要がある。これを上手くやるには、「こういう処理はこう書く」みたいなパターンを覚えたり、自分のやりたい処理をプログラミング言語で表現できるところまで噛み砕かないといけない。ここにひとつめの壁があると思う。

さらに、会社のエンジニアとしてのプログラミングにも壁がある。 自分はまだ正社員としてのプログラミングの経験はないが、アルバイトやインターンでの経験はある。

そこで感じたのは、それまでのプログラミングは個人でもできたが、会社でのプログラミングでは必ず他の人たちとのコミュニケーションがあることである。それは他のエンジニアかもしれないし、デザイナー・マーケティングなどのエンジニアではない人もいる。

その時に自分の考えを伝えたり、相手の考えを理解したりするには個人では必要なかったコミュニケーションスキルが必要になってくると思う。

プログラミングにおいても、自分が理解できて動くコードから、自分以外にも読める(意図が伝わる)コードを書かないといけないし、個人ではほとんど考える必要のなかったスケーラビリティや保守性なども意識しないといけない。


たぶん新卒エンジニアのコーディングテストでは大学で学ぶプログラミングの先に触れているかを見られていると思う。その先の面接では自分考えを相手に伝わるように話せるかというようなコミュニケーションスキルも見られているんじゃないかなぁと思った。