フロントエンドエンジニアが目指すべき本質

自分はフロントエンドエンジニアとして、これまでJavaScriptなどのプログラミングの技術を磨いてきた。そのこと自体は、今でも自分のキャリアにとって重要な意味を持つと考えている。ただ、プログラミングによって目指すことは、以前と少し変わってきている。

今の世の中、小学生でもプログラミングをする。小学生向けのプログラミング本があったり、プログラミング体験ができるイベントがある。ソースコードは小学生でも書ける。言語や程度、質の差はあれど、プログラミングは誰でもできるのだ。逆に言えば、コードしか書けないエンジニアは小学生と同じともいえる。

とびぬけた技術を持っているエンジニアは心配する必要はないだろう。しかし、平均レベル、またはそれ以下のレベルの人は、ソースコードを書ける小学生と大差ない。そしておそらく、それだけで生き残れるほど世の中は甘くない。

エンジニアとして、プログラミングができること以外に価値を作ることを真剣に考えなくてはならない。自分の書いたプログラムが何を生み出すのか、誰の役に立って、どんな人に喜ばれるのか、といったことである。

技術力を軽視するわけではない。技術力は極めて大事だ。しかし、技術力の高い・低いは後からどうにでもなる部分もある。優秀なエンジニアと協業すればいい。今の時代、APIで代用できたりすることも多い。さらに言えば、せっかく磨き上げた高い技術力も、2年後、3年後に陳腐化していることもある。

しかし、技術を使って何を作るか、どんな価値を生み出すのかは、他者やAPIには頼れない。それを考えようとする人にしかできない。そのための思考回路は、そう簡単に陳腐化しない。そして、そういった力を体得するには、様々な物事に関心を持ち、様々な人の価値観を知っていかなくてはならない。

技術しか見ていないと、視野が狭まくなる危険性がある。技術の周辺にある、技術に影響を与えているが技術そのものではない価値観に気づかなくなる。そして技術の本質である「何のためにそれをするのか」ということを忘れてしまう。今、あるプロジェクトで開発だけでなくディレクションも行っているが、プログラマではない人たち、非IT系の人たちとコミュニケーションをとると、技術の世界を凝視しているだけではダメだと痛感する。

なんのためのプログラミングなのか。ソースコードやうまく設計するためのプログラミングではない。それでは勉強のための勉強と同じである。

プログラミングの技術を追わないわけではない。むしろ、誰よりも追っていなければならない。しかしそのことで視野狭窄に陥ってもいけない。技術は手段に過ぎない。その技術で何ができるのか、どんな価値を生み出せるのか、その価値を生み出すために、自分の手でプログラミングをする以外にどんな手段も考えられるのか。

そういったことを発想できるプログラマーを目指さなければならないと感じる。