開発者スポットライト : Dora Militaru が語る、開発者のキャリアパスにまつわる通説
開発者の仕事は、ドアの鍵をあけて新たな道を切り拓くようなものです。例えば彼らは、世界中の人々が情報やニュースを取得したり、余暇やエンターテイメントを楽しむ、より優れた方法を提供してきました。その一方でこの業界では、プロの開発者になることに関して、ある通説がはびこっています。それは、コンピューターサイエンスの学位を持っていたり、幼い子供の頃からコードを書いていたというような、いわゆる「当たり前」のバックグラウンドが無いと、近づきがたい職業であるということです。しかし実際には、多くの開発者がこの説に当てはまりません。Stack Overflow が実施した調査によると、世界中の開発者の25 %は学位を持っていません。また、40 %近くがコンピューターサイエンス以外の学科を専攻していました。
Code Academy などが提供するオンライン学習講座や General Assembly を含む多くの企業が運営する短期集中講座、Google や AWS、Salesforce をはじめとするテクノロジー企業による認定資格プログラムの台頭に伴い、プロの開発者になりたい人たちにとって、より多くの道が開かれています。また同時に、開発者を求めている企業も、多様なバックグランドを持った候補者の中から採用できるようになりました。
Fastly の Dora Militaru は、開発者のエコシステムに関心があります。Developer Relations チームで開発者へのサポートを提唱する Dora は、Fastly のプラットフォームを使用している開発者だけでなく、「従来の」コンピューターサイエンスのキャリアパスに当てはまらない開発者も支持しています。そこで、彼女自身のストーリーとテック業界に対する彼女の考えについて尋ねました。Dora が自身の体験に基づいて、開発者や採用担当者、コンピューターサイエンス以外のバックグラウンドを持つ人たちに向けて捧げる、励ましを込めたアドバイスをお聞きください。
Hannah : プログラミングの世界に足を踏み入れたきっかけは何ですか?
Dora : まったく偶然でした。子供の頃は、ビジュアルアートや絵画、イラスト、彫刻に夢中でした。ですから、アートや文系の仕事に就くだろうとずっと思っていました。そんな折、2003年頃だったと思いますが、我が家に初めてコンピューターが登場しました。Pentium 3ベースのデスクトップ型パソコンで Coppermine プロセッサーを搭載し、動作周波数は600 MHzでした。現在のスマートフォンの方がはるかに性能が上です。その頃の我が家にはインターネットはありませんでしたが、Flash 5 が同梱された Macromedia の CD を入手して試すことができました。私は知らなかったのですが、当時は世界中の誰もが Flash に夢中で、大手企業は Flash ベースの Web サイトで新製品を発表したり、インタラクティブなポータルを構築していました。
一方、私はこの CD で Flash を入手したばかりで、興味深々でした。そしてある日、ActionScript に遭遇し、これは私にとってまったく新しい体験をもたらしました。ActionScript を使って魅力的なイラストを作成できるだけでなく、それらをインタラクティブにすることもできました。私にとっては、この世で最もエキサイティングなことのように思えました。実際のところ ActionScript は、今日 JavaScript として知られる ECMAScript の実装のひとつです。当時の私は、このようなことについて何ひとつ知りませんでした。私はどのコミュニティにも参加していませんでした。ただ自分でいろいろ試して、もぐらたたきゲームを作りました。これが私にとって最初のプログラミングプロジェクトでした。
「私がこれまでに試した他の仕事や趣味に比べて、プログラミングでは、何かをイメージしてからそれを現実化するのにそれほど時間がかかりません。例えばコンセプトを、実体があり、ちゃんと機能する実装や、おもしろいプロジェクト、斬新なハッキングとして、比較的短期間で実現できます」
Hannah : Flash 5 を使ったもぐらたたきの作成から、どのような過程を経て Fastly の Developer Relations にたどり着いたのですか ?
Dora : Flash 5 はプログラミングに対する私の興味を搔き立てましたが、実際にプログラマーになったのはそれから何年も経った後のことです。プログラマーとして仕事をするようになったのはここ3年のことです。それまでにはさまざまな仕事に就きました。コンピューターサイエンスを学んだことは無かったので、プログラマーになるとは思ってもみませんでした。この職に就いたのは本当にたまたまだったのです。
確かに Macromedia Flash 5 に出会った後、有償のプロジェクトを頼まれたことがありましたが、報酬は当時流行っていたシルバーのハイヒールでした。それから何年も経った後、新聞社の The Financial Times に入社しました。そこでは、多くの JavaScript を使用しました。JavaScript は基本的には ActionScript に魅力的な機能がプラスされたようなものでした。それ以降、私のプログラミング言語の世界は大きく広がり、今は Compute@Edge 向けに Rust について学んでいるのですが、本当に面白いです。VCL をいじるのも楽しいです。やりがいがあって、新しい言語を学ぶ機会を与えてくれるプロジェクトに取り組むのが好きなんです。
The Financial Times に入社した当初、まだ私はキャリアを開始したばかりでした。学ばなければならないことが山ほどありましたが、できるだけ多くの人に迅速に情報を提供できるようにしたいという自分の強い思いに気づきました。それを Web パフォーマンスと呼ぶ人もいますが、それだけではありません。The Financial Times のビジネスはニュースを提供することです。そして、ニュースを迅速かつ安全に配信するのを可能にする Fastly は、この業界で重要な役割を担っています。そこで私はこのプラットフォームについて学び、Web パフォーマンスコミュニティで多くの人たちに出会ったのですが、その中にたまたま Fastly の開発者も何人かいました。その内のひとりが Fastly の Developer Relations のリーダー Andrew Betts で、彼の影響を受けて Developer Relations のポストに応募することにしました。実際に Fastly の WebAssembly や Compute@Edge への取り組みについて知ったとき、ますます Fastly での仕事に興味が湧きました。
「ありきたりに聞こえるかもしれませんが、プログラミングは向上心をもたらし、生涯に渡る学習の機会を保証してくれます」
Hannah : どのようにしてスキルを磨いていますか ?
Dora : 今後のインターネットの構築・使用方法を決定する多くのリサーチやプロジェクトを率いる企業で働いていることはスキルの向上に役立ちます。楽しみだけでなく大きなチャレンジも伴いますが、とても魅力的な同僚たちが私のアイデアや夢、キャリアを導いてくれています。そして何よりも、このコミュニティに属していることが本当に好きなんです。以前は実際に会場に足を運んでいましたが、今はオンラインでカンファレンスやセミナーに参加して、常に最新の業界情報を得るように努めています。他の人たちはどんな面白いプロジェクトに取り組んでいるのか ? 他の人が必要としていることで自分にできることは何か ? カッコいい LED の靴紐を最近試した人はいるか ? そういうようなことです。
ありきたりに聞こえるかもしれませんが、プログラミングは向上心をもたらし、生涯に渡る学習の機会を保証してくれるので、心理的に大きな満足感が得られます。また私的なことですが、私の場合、プログラミングによって自分の能力を実感することができます。私がこれまでに試した他の仕事や趣味に比べて、プログラミングでは、何かをイメージしてからそれを現実化するのにそれほど時間がかかりません。例えば、コンセプトを実体があり、ちゃんと機能する実装やおもしろいプロジェクト、斬新なハッキングとして、比較的短期間で実現できます。これはとても病みつきになります。
ただし多くの困難も伴います。大変すぎて、集中し続けるのが難しいこともあります。また、プログラミングを適用できるテクノロジーが世の中にはたくさんあります。プログラマーがメリットをもたらすことができる分野があまりに多いので、その中からひとつを選んで、それに取り組み続けるのは生易しいことではありません。特に、この分野の正式な教育を受けたことがなく、特定の専門分野を持たない場合、さまざまなプロジェクトやアイデアの間で目移りしがちです。さらに、この業界にはいまだにわずかながら悪しき慣行がはびこっている部分があり、特にマイノリティの場合、自分の価値を証明しなければいけないというプレッシャーを感じることがあります。そしてどのような価値を証明すべきかということに関して、明確で一貫したガイダンスはありません。このような慣行は廃止されるべきです。プログラミングは専門分野のひとつです。また一種のアートであり、仕事でもあります。誰かによってプログラマーの道が閉ざされることがあってはなりません。
「プログラミングは専門分野のひとつです。また一種のアートであり、仕事でもあります。誰かによってプログラマーの道が閉ざされることがあってはなりません」
Hannah : どうすれば、この業界やコミュニティを排他主義から解放してよりインクルーシブにすることができると思いますか ?
Dora : この業界のためにできることはいろいろあります。私は Fastly の Developer Relations に所属していますが、Fastly はコミュニティで良く知られた存在です。私はコンファレンスに参加し、ステージに立つこともよくあり、テクニカルな討論をするのも嫌いではありません。でも、中にはそうでない人もいます。そのような人たち、特にこの業界に入ったばかりの人たちは、意見をなかなか聞いてもらうことができません。意見を述べることすらためらう人たちもいるでしょう。私はそのような人たちが発言できるよう支援したいのです。そして業界全体もこれによって大きなメリットが得られると確信しています。例えばオープンソースプロジェクトに取り組んでいて、参加者全員がまったく同じような思考をしている場合、異なる考えを持つ人の意見を聞くことをお勧めします。
「コードを作成することは、共感することです」
Hannah : ワクワクさせてくれるようなプログラマーやプロジェクトはありますか ?
Dora : とても面白いプロジェクトやテクノロジーがたくさんあります。最近、最も感動したのは Jani Eväkallio 氏による Foam と呼ばれる、パーソナルナレッジの管理・共有システムです。オープンソースプロジェクトで、非常に優れています。高価な有償プロダクトの Roam Research に影響を受け、メモ機能と情報整理機能を備えたアプリケーションです。人気の高い IDE の Visual Studio コードと GitHub で作成されているので、すぐにアクセスできます。
また、貴重な時間と知識をおしみなく共有してくれている Suz Hinton 氏もすばらしいプログラマーのひとりで、Twitter 名は noopkat です。彼女は avrgirl-arduino という名前のライブラリを作成しています。これは、Arduino マイクロコントローラーボードにコンパイルされたスケッチをフラッシュするための、ノード js ライブラリです。このライブラリのおかげで、以前はほとんどの人にとって不可能だったハッキングやティンカリングが可能になりました。Tae’lur Alexis 氏も私にインスピレーションを与えてくれるプログラマーのひとりです。優秀ながら型にはまらない彼女には、人々にプログラミングに興味を持たせ、プロのプログラマーを目指す気にさせる素晴らしい才能があります。
Hannah : コーディングやプログラミングを始めたばかりの人たちに何かアドバイスはありますか ?
Dora : 続けることが大切です。くじけそうになることもあるかもしれませんが、一度プログラミングの世界にのめり込んだら、もう振り返ることはありません。このコミュニティに参加するためには、プロのプログラマーでなければ認められない、というような雰囲気があるように思います。でも実際には、コミュニティの多くはそうでないと思います。この業界が、初心者や世間一般に対してもっとオープンになることを心から願っています。プログラミングとは何か、プログラマーになるには何が必要かということに関してこのような障壁がすべて無くなることを望みます。
プログラミング界の発展の全てについていくことは無理ですから、できなくても気にしすぎる必要はありません。「お前は失敗した」というささやきが聞こえても無視しましょう。プログラミングは毎日がチャレンジの連続です。学ぶべきことがたくさんあります。プログラミングをする個人としての私自身のコーディングの目標は、6か月後に自分のコードを読む人のことを想いながらコードを作成することです。
コードを作成することは、共感することです。自分が書いたコードを読み返したり、他の人がしばらく触っていないコードを読み返すと、どういう意味かすぐにお分かりいただけると思います。
オープンソースプロジェクトへの参加に興味がある人にもしアドバイスをするとしたら、「恐れないでください」と言ってあげたいです。コードを提供する必要はありません。あるプロジェクトを気に入って、利用して、ドキュメントにタイプミスがあることを発見したとき、それはすでにオープンソースプロジェクトへの最初の参加を果たしたことになります。これにより、貢献者リストに名前が載ります。自信を持つことが大切です。
Hannah : 最後の質問になりますが、現在やりかけのプロジェクトをいくつ抱えていますか ?
Dora : 多すぎて分かりません。新しいことを学ぶことだけが目的のプログラミングの実験や冗談みたいなプロジェクトに取り組むことも重要だと私は実感しています。カーテンの開閉を自動化させたり、猫を追うカメラなどを作ったのはそのためです。