ジュニア開発者とシニア開発者の差とは

新型コロナウイルスの影響で、弊社もご多分に漏れず完全リモートワーク(といってもまだ研修期間だが)となっている。その影響で出勤時間がゼロとなり、朝夜にゆっくり自分の勉強をする余裕が取れるようになった。

で、最近はMedium(日本で言うところのNoteのようなブログサービス)で英語の記事を読んで、英語の勉強をしている。ただし英語力はまだまるで不足しているので、DeepL翻訳をフル活用して読んでいる(この辺りの英語記事を読むためのワークフローはいずれ本ブログで書きたい)。

今日読んだのはこちらの記事。

medium.com

「ジュニア・ミドル・シニア開発者の間の違い」。これがまぁいい記事だった。以下本記事中から引用。

Junior developers write fancy code. You can recognize the junior developer by quirky one-liners and overly complex abstractions. This is the junior developer's way of showing off and letting the other developers know how good they can code. And it’s wrong.

ジュニア開発者は派手なコードを書く。ジュニア開発者は、風変わりなワンライナーや過度に複雑な抽象化で見分けることができます。これはジュニア開発者が自分がどれだけ優れたコードを書けるかをアピールし、他の開発者に知ってもらうための方法です。そして、それは間違っています。 (翻訳: DeepL翻訳)

すげー心当たりがある。デザインパターンやらC++テンプレート黒魔術を覚えたばかりの頃は、それが良いソリューションであるかを深く検討することなく、「俺はこんな高度な事を知っているんだ!」と自慢したいだけのために、それらを使ってしまっていた。

最近になって小難しいテクニックや設計技法は、それが「自分にとって」可読性・拡張性を落とさないかを慎重に検討した上で使うようになった。が、これでもまだ甘いなと。今後会社という組織に属してコードを書くことになる以上、コーディングの際は「今の同僚にとって」、「将来同僚になるかもしれない人にもとって」可読性・拡張性の高いコードを書く意識をつけるべきだと感じた。

本記事は他にもさまざまな視点からジュニア開発者とシニア開発者の違いを語っており、将来シニア開発者となるための助言を授けてくれる。新人研修中の今の時期に、こうした記事に出会えたことは幸運だった。5年・10年後に、この記事を読んだらどんな感想を持つだろうか。願わくはその頃に、ジュニアを卒業し、大きな責任が伴う仕事を任せてもらえる人材になってるといいが。

最後にもうひとつ、本記事中から引用をば。

I’ll leave you with a quote from Martin Fowler: “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”

マーティン・ファウラーの言葉を 残しておきましょう "どんなバカでもコンピュータが理解できるコードを書くことができる。優秀なプログラマーは人間が理解できるコードを書く"