匠の相駕籠

ソフトウェア開発者の日常 - メメントモリ公式ブログ『匠の相駕籠(たくみのあいかご)』

フルスタックエンジニアの作り方

ソフトウェアの技術者には、たまにどんな領域の技術でもやってしまう人がいます。

 

私たちの言葉では、そういう人をフルスタックエンジニアなどと言い、ときには揶揄する目的で、その言葉が使われることがあります。どういう意味かというと、「器用貧乏」という意味で使われたりします。

 

なんでフルスタックエンジニアが生まれるのか、ずっと理由がわからなかったのですが、先日、Twitter か何かを眺めていたときに、誰かのツイートを見て、納得できそうな言葉を見つけました。

 

フルスタックエンジニアとは、お願いされた仕事を断れなかったエンジニアが、結果的になんでもできるようになってしまった。という視点です。

 

なかなか面白い視点だなと思いました。

 

自分の専門分野を持って、その領域を掘り下げるということも大切なことです。例えばスマホアプリを作ることに専門性を高めて、非常に深い知識と技術を持つ人は、大変貴重ですし、そういう人も必要です。

 

一方、全体を広く浅く知っていて、俯瞰しながら作業ができるという意味では、フルスタックエンジニアにも良いところがあります。また技術を選ばないということにもなるので、ソフトウェアの世界では大切な、変化に強いという能力を自然と身に着けているということにもなると思います。

 

 

こんな話をしたのは、わたしはどちらかと言うとフルスタックエンジニアと呼ばれるタイプの技術者です。なぜかというと、同じ技術を使い続けているということがないからです。

 

  • 10年前、プログラマーとして最初に身につけたのは C や C++ などの低レベル言語。
  • コンシューマーゲームの開発に関わったため、3Dグラフィクスに関する技術を学ぶ
  • 6年前、ウェブ系のソフトウェア開発に転向。クライアント・サーバーの考え方、データベースの勉強からやりなおし。
  • 3年ほど前、ソーシャルゲームの開発に再び関わるようになる。Unity などのゲームエンジンを身につける
  • 1年ほど前、スマホアプリの開発に関わるようになり、Android の技術を学ぶ

 

言語やフレームワークも、現場ごとに、わりと様々なので、結果的に多くのものを使えるようになる必要が出てきます。

 

結果的にどうなったかというと、やはり10年同じ領域でやっているような専門家には、専門性という意味では、ぜんぜん及びません。それを歯がゆく思うことは、正直たくさんありました。

 

しかし、基本的には仕事を断らないというのは、私がフリーランスの時から守ってきた自分ルールで、それには自信を持ってやってきました。

 

そのために器用貧乏的な動き方になってしまった面はありましたが、様々なことを勉強している瞬間は、わたしにとって、楽しく幸せな時間だなと思っています。