職業プログラマの第一歩を踏み出したあなたへ
2019-06-21
azblob://2022/11/11/eyecatch/2019-06-21-the-first-step-of-a-profession-programmer-000.jpg

10歳からプログラミングやってます、と、プレゼン内で笑いを取ろうと喋ったら、喋りが下手すぎてリアクションがもらえず焦った松枝です。

仕事でプログラミングをするようになった新卒の人に対して伝えたいことがあります。今年の弊社の新卒の皆さんにはお伝えしたのですが、こちらのブログにも書いてみようと思います。

背景(読み飛ばし推奨)

前述の通り10歳からプログラミングを始め、高専専攻科を卒業するまでの約12年間、趣味または研究でプログラミングをやっていました。
当時はまだWindows 98 SEとかの時代で、小中学校の同級生でプログラミングができる人は皆無で、高専に入ってようやくまともに会話できる人が数人いる、というような状態でした。

そんな状態の人が社会人になったので、自分の力はどこでも通用するんじゃね?という気持ちが半分、いやいや世の中にはもっとすごい人が必ずいるだろうついていけるかな?という気持ちが半分で、配属になりました。

そこで出会ったチームリーダーさんの技術に圧倒されました。
力試しで与えられた課題を解いてレビューして頂いた結果、自分のコードの汚さ、詰めの甘さに気づくことができました。同時に、とても恵まれた環境に配属されたのだとワクワクしてきました。

聞けばそのリーダーさんは当時30歳くらいで、プログラミングに初めて触れたのは大学生の頃ということでした。つまり、「プログラムを書く」というキャリア年数は私と同じくらいです。
しかし技術力は雲泥の差でした。私は間違ったものを積み重ねていたのだなという後悔の気持ちが襲ってきました。
若い人が同じような後悔を抱えずに過ごせるよう、仕事としてのプログラミングを始める人に最初に知ってほしい、いくつかのポイントを伝授します。

人が読みやすいコードを追求する

  • 半年後には何をやっているか分からないコードにしない
  • 変数名は分かりやすい単語を使う
    • できるだけ日本語のローマ字表記ではなく英語で書きましょう。
  • コーディング規約を遵守する、フォーマッタを活用する
    • if( a== b){ c++;} とか書いてあったら、私は(心の中で)キレます。
  • コメントを適宜書く。ただし書きすぎない
    • // aをbに代入する みたいなプログラムの説明は要りません。
    • そのコードで何をしたいのか伝わりにくい時にコメントを書いてください。
    • 伝わりにくいときはきっとコードを見直したほうが良いです。
  • 既存コードのフィーリングを尊重する
    • 勝手にログ出力を端折ったりとかしないでください。せめてプルリクエスト上げるまでには戻して…
  • 車輪の再開発を避ける
    • クイックソートとかを自分で作らずライブラリを活用しましょう。品質確保って大変ですよ?

自分の理解したコードを書く

  • ネット上のStack Overflowやteratailなどに記載しているコードをそのままコピペしない
  • 友達に直接コードを書いてもらわない
    • 参考にした、教えてもらった情報は何なのか、自分の知識に落とし込んでから、改めて今回のケースはどうすればよいのか考えて実装する。

まとめ

上記をまとめると、要は「美しいコードを書いてください」ということです。
音楽でいえば、例えばクラシックの音楽は何百年も昔に作られたにも関わらず、現代の私たちが聴いても良い曲だと感じますよね?
コードも同じように、美しいコードを書けば長く愛されます。
バグを見つけることが容易なのですぐ直せますし、機能追加もしやすいです。
最初は大変ですが、そのうち無意識に書けるようになりますので頑張りましょう。

私は新卒の時に出会ったリーダーさんと同じようにできているだろうか…