Nishu Goel はインド出身の著名なウェブ エンジニアで、Angular とウェブ テクノロジーの Google デベロッパー エキスパートです。自身のコミュニティへの貢献、キャリア プラン、ウェブ開発を学ぶのに最適な方法について教えてくれました。
Nishu Goel は、インド出身の著名なウェブ エンジニアで、Angular およびウェブ テクノロジーを担当する Google Developer Expert であり、Microsoft Most Valuable Professional です。「Step by Step Angular Routing」(BPB、2019 年)と A Hands-on Guide to Angular(Educative、2021 年)の執筆者でもあり、Web2.0 Alman の著者でもあります。現在、epilot GmbH でフルスタック エンジニアとして働いています。自身のコミュニティへの貢献、キャリア プラン、ウェブ開発を学ぶのに最適な方法について教えてくれました。
Monika: まずは、あなたのストーリーから始めましょう。デベロッパーになり、デベロッパー コミュニティ内で積極的な役割を担うきっかけとなったのは何ですか。
Nishu: 私はコンピュータ サイエンスで学士号を取得し、データ構造を勉強しました。そこからプログラミングに興味を持ち始めたのです。エンジニアリングの 3 年目には、コードを通じてソリューションを紹介した Microsoft イマジン カップ全国大会に参加し、デベロッパー コミュニティとのつながりが築かれました。私たちが作ったアプリは、地元の学生、特に女の子たちに教育の機会をもたらすために作られました。この道のりでは、参加者や主催者など、刺激的な人たちに出会いました。
2018 年にキャリアをスタートし、Angular の仕事を始めました。Angular は、私が GDE プログラムとつながりを持つ主要なテクノロジーになりました。ちょうど同じ時期に、ブログ記事を執筆し、取り組んでいる内容や学習していたテーマに関するコンテンツを作り始めました。Dhananjay Kumar は私がこの道のりを開始するのを手伝ってくれ、順調に進めてくれました。最初の記事では、Angular の基本について説明しました。イベントで講演を始めた直後、1 つ目は ngNepal のネパール Angular カンファレンスでした。これにより、Angular とウェブの技術に関する講演の招待が増加しました。
Monika: テクノロジーに関するプロフェッショナルとしての経験を教えてください。
Nishu: 最初の 2 年間は Angular とウェブ コンポーネントが中心でした。ウェブの構築には Angular を使用していましたが、すぐに他の分野も探求することにしました。プロジェクトを切り替える場合に備えて、自分自身を制限したくありませんでした。他のフレームワークで使用するウェブ コンポーネントを Angular で作成しました。
まず、Angular を使用してウェブ コンポーネントを作成しました。これを npm に公開し、React プロジェクトのデモとして使用しました。これについては、後ほど講演やプレゼンテーションの中で触れています。次の仕事には、React と Typescript を使う必要がありました。今では React で働いていたので、今では 1 つのフレームワークではなく、ウェブ全般を使用しています。この時点で、ウェブ、特にウェブ パフォーマンスについて多くのことを学びました。そこで、Largest Contenful Paint(LCP)や First Contentful Paint(FCP)について検討することにしました。FCP とは、アプリの読み込みにかかる時間や、ページのレンダリングにかかる最大時間を意味します。ベスト プラクティスを選択し、アプリケーションのパフォーマンスを向上させるよう取り組んできました。
ウェブ パフォーマンスに関心が高まったことから、私は Web Almanac に参加し、JavaScript の章を執筆しました。ウェブ アルマナックは、ウェブの全般的な状態に関する年次報告書で、ユーザーがどのようにさまざまな機能を使用しているかを知ることができます。昨年は 860 万のウェブサイトがスクリーニングされ、そのデータを分析してレポートに示しました。このレポートには、<script>
要素での async
属性と defer
属性の使用状況などの統計情報が含まれます。2020 年と比較して、このツールを正しく使用しているウェブサイトの数、まったく使用していないウェブサイトの数、改善されたウェブサイトの数はどれくらいですか?前回の Web Almanac レポートでは、ウェブサイトの約 35% が同じスクリプトで 2 つの属性を使用していると報告されていますが、これはアンチパターンであり、パフォーマンスが低下していました。昨年は指摘されていましたが、今年は状況が改善したかどうか試してみることにしました。また、ngConf や Reliable Dev Summit でも講演し、ウェブのパフォーマンスに焦点を当てました。
Monika: コミュニティへの還元にも深く関わってくれています。最近、ウガンダの NGO の YIYA にボランティアとして参加されていますが、どのように始まったのでしょうか?また、その協力の主な目的は何でしたか?
Nishu: 最初は GDE チームから、YIYA のボランティア活動について知らせてくれました。ウガンダの NGO は、コンテンツの準備や技術的機能について支援してくれるエンジニアを探していました。このプログラムは、ウガンダの学校に通う子どもたちに力を与え、コンピュータや教科書ではなく、基本的なキーパッド付きのスマートフォンやラジオなど、地元で入手可能なテクノロジーを活用して教育の機会を提供することを目的としています。子供たちは、ある番号に電話をかけて一連の情報を受け取り、別の番号に電話をかけて詳細な情報を取得します。パンデミックの最中に、さらに便利になりました。
私は常に地域社会や持続可能な開発目標に関わってきたので、連絡することにしました。YIYA チームとのミーティングの後、私は Python スクリプト、チームが思いついたバグ、ポータルの問題についてサポートを申し出ました。私たちは短い時間一緒に作業しました。
Monika: 2022 年の計画はどのようなものですか?特に重視している点はありますか?
Nishu: 転職して、他の国に引っ越します。サイトのパフォーマンスを向上させるためにウェブ全般に取り組みます。また、Golang を使用してバックエンドにも取り組みます。ウェブ パフォーマンスについては、非常に興味深く、複雑で、理解して最適化すべきことがたくさんあるため、引き続き詳しくご説明します。これまで多くの時間を費やしましたが、まだ学ぶべきことはたくさんあります。たとえば、画像リソースに CDN を使用することで、アプリの速度をさらに高める方法について知りたいです。ウェブ パフォーマンスのエキスパートになりたいと思っています。少しずつ着実に努力していますので、
Monika: あなたは専門家ではなく、学んだことを書いていただけの頃、執筆を始めたとおっしゃいました。新進気鋭のデベロッパーに、伝えるべきことがないと感じる場合、あなたならどうアドバイスしますか?
Nishu: 私が書き始めたときの気持ちです。これを出さないといけないのかもしれないと思ったの?もしかしたら間違っているのでしょうか?自分の文章が読者の役に立たないのではないかと心配していました。でも大事なのは、自分の文章が役に立ったということです。少し時間が経つと、忘れてしまい、以前書いたものに戻ります。書き出すのはいいアイデアです。
ですから、皆さん全員に、どの段階でも書いてもらうことをおすすめします。たとえ学習中のコースの一部しか完了しなかったとしても、それを書き留めることで学んでいることになります。ある時点で知った情報は、まだそれを知らない人の役に立つかもしれません。エキスパートである必要はありません。書くことは役立ちます。キャリアのあらゆる段階で、誰でも利用できます。
Monika: 何かを学んだばかりの人をフォローするのが一番です。彼らは理解しなければならないことをすべて知っているからです。専門家になったら、新しい頃の様子を思い出すことは困難です。ウェブ開発を始めたばかりの人へのアドバイスはありますか?
Nishu: 始めるときにどのフレームワークを選ぶべきかとよく聞かれますが、それは適切な質問ではありません。いずれにしても、学習した内容は後の段階でも役に立つはずです。制限をなくし、HTML や JavaScript から始めることをおすすめします。そうすれば将来的に収益性が高まります。
そして、チャンスを見つけて利用しましょう。著者を探していて、Web Almanac についての情報を見つけたときのことが起こりました。「ああ、面白いな、これもパフォーマンス面の面で皆の参考になるかもしれない」と思ったのです。これが JavaScript の章のコンテンツ リードとなり、6 か月かけて執筆しました。つまり、チャンスをつかみ、懸命に働くということです。
Monika: ウェブ テクノロジーの未来全般について、予測やアイデアはありますか?次の注目のトピックは?急成長しているものは何ですか?
Nishu: ブラウザ内でサーバーを実行できるようになったところ、大きな進歩です。たとえば、ブラウザから Node.js を実行する機能が最近導入されましたが、以前はシステムに Node.js をインストールしないと何も実行できませんでした。今ではブラウザから何でもできますこれは、ウェブ エコシステムにおける大きな一歩です。OMT — メインスレッドから切り離せます。スレッドでの作業も大幅に改善される予定です。Web Assembly は進歩しており、デベロッパーがそれを実現できるようにします。これが、ウェブ エコシステムの未来であると考えています。