人生の道ーQuick&Dirty

作成者:カランカラン
💡

質問やフィードバックがありましたら、フォームからお願いします

本文は台湾華語で、ChatGPT で翻訳している記事なので、不確かな部分や間違いがあるかもしれません。ご了承ください

フロントエンドに足を踏み入れて、もうすぐ10年になります。

情報系の学生であれば、大学でウェブの授業に触れることは珍しくありません。その当時はAngularの名声がReactよりも高く、Vueもすでにリリースされていたと思いますが、私はまだ知りませんでした。

あのフロントエンドの戦国時代を経験することで、後のフロントエンドの変化や理解にとても役立ちました。コミュニティの議論を振り返ると、数年前にすでに議論されていた問題が多く、成長したのかなと感慨深く思います。

キャリアの初期には、記事を書いたり、発表したり、小さなプロジェクトを行ったりと多くの試みをしましたが、主な貢献はまだ会社の製品やサービスに限定されており、それが少し後悔しています。

ここでは、未来とキャリアに関するいくつかの考えを共有しますので、意見交換を歓迎します。

フロントエンドと未来に対する考え

最近、フロントエンドエンジニアの市場は飽和状態に近づいてきており、仕事を見つけるのが以前ほど容易ではありません。

フロントエンド専門でないエンジニアや、コンピューターに少しでも馴染みがあり、コードの書き方に抵抗がない人であれば、ReactやVueのドキュメントを見て、使いやすいUIコンポーネントライブラリを選び、ChatGPTやローカルでLLMを使ってウェブページを作成することは全く問題ありません。もちろん、初心者にとってはデバッグに時間がかかることが予想されます。このようにして、フロントエンドエンジニアの価値は他の場所で発揮されなければならず、比較的新しいフロントエンドエンジニアが仕事を見つけるのは難しくなるでしょう。

ここで、別のルートについて話すことができます。

多くの初級エンジニアは自分自身をある領域に位置づけます。例えば、フロントエンドはフロントエンドであり、ウェブ以外のものには手を出さず、要件の実装とUIのカットアウトだけを担当します。短期間ではこのような需要も存在しますが、ハードルが下がり、UIコンポーネントライブラリが成熟するにつれて、これらの開発者は必然的に壁にぶつかるでしょう。もし、ほとんどの要件が他の開発者によって満たされるか、ビジネスの要件をコードに変換するだけであれば、あなたの価値はどこにあるのでしょうか?

短中期的に、私自身の答えはソフトウェアエンジニアです。

フロントエンドエンジニアになる前に、あなたは適格なソフトウェアエンジニアであるべきです。ただし、フロントエンド領域についてはより深い理解を持っています。

これには、コンピュータアーキテクチャ、アルゴリズム、データ構造、セキュリティなどが含まれますが、これらはすべて大まかな方向性に過ぎません。あなたが知識を深めれば深めるほど、問題を見る視野が広がります。例えば、コンピュータアーキテクチャに対する理解、Arduinoを使って様々な低レベルプロトコルを理解しましたり、Svelteを学ぶ際に背後の仕組みに興味を持ち、簡易版のHTMLパーサーを書いたりすることなど、これらはフロントエンドとは直接関係ありませんが、問題に直面した時により多くの考え方を持つことができます。

私が出会った多くの優れたソフトウェアエンジニアは、このような特徴を持っています。彼らは必ずしも多くのLeetCodeの問題を解いているわけではありませんが、低レベルの動作に深い理解を持っています。ある同僚が加湿器にリレーを追加して改造し、Arduinoを使ってスイッチの制御ができるようになり、タイマーでオン/オフするなどの面白い機能を実現したことを興奮して共有してくれました。

さらに、ある程度のドメイン知識を持つこともお勧めします。たとえば、以前証券関連のサービスに取り組んでいるときに、日本の法規制やNISA制度、信用取引や量子トレードの学習、外部サービス(プライベートボックスなど)との連携について理解を深めました。日本の放送メカニズムを研究しているときには、簡易的な字幕アナライザーを書きました。これらは他のエンジニアよりも目立つための鍵です。

もう一つのルートは、エコシステムに参加し、エコシステムを作り出すことです。

Reactの登場は、業界のUIの構築方法を変え、UIを関数と状態管理として抽象化し、副作用を管理し分離することで、UIを再利用可能なコンポーネントに分解しました。

これはフロントエンドエンジニアが試みることができる別のルートですが、企業の規模が十分に大きくない場合、手をつけることができる場所を見つけるのは難しく、オープンソースコミュニティから入っていくしかありませんし、生態系を変える能力を持つ人はすべてではありません。しかし、自分を過小評価する必要はありません。Svelteの作者であるRich Harrisは元々ジャーナリストで、視覚的な報道のためにプログラミングをしていて、Svelteを作り出しました。

また、フロントエンド領域のさまざまな分野を探求するという別のルートがあります。一般に「フロントエンド」と言うと、通常はウェブ開発、より正確にはHTMLとJavaScriptを使用してUIを構築することを意味します。しかし、ブラウザの能力は日々進化しており、多くの分野が生まれています。これには限りませんが:

  • データビジュアライゼーション
  • アニメーション(UIアニメーション、トランジション、マイクロインタラクションなど)
  • アクセシビリティ
  • ウェブゲーム
  • WebGPUの応用。LLMをウェブプラットフォームに移植し、WebGPUを使用して以前はローカルでしか実行できなかったアプリケーションをウェブに移植することなど
  • WebAssembly
  • エフェクト、3D:WebGLまたはThree.js
  • IoTのウェブ連携:WebSerial、Web Bluetooth、WebUSBなど。私自身、この分野は市場が限られておりニッチながらも大きな可能性を秘めていると感じています。例えば、VIAはカスタムキーボード愛好家には必須で、ウェブ上で直接キーボードのキー割り当てを変更できるのはWebUSBの活用例の一つです。
  • 低レベルプロトコル:WebRTCの応用、最近登場したWebCodecs APIなど
  • パフォーマンス最適化

慣れ親しんだ分野が多ければ多いほど、取って代わることは難しくなります。

フロントエンドのハードルが下がったとしても(元々そこまで高くはないにせよ)、SEO、パフォーマンス、アクセシビリティを兼ね備えたウェブページを作成するには一定の経験が必要であり、現段階のLLMでは要求を満たすウェブサイトを作成することはできるかもしれませんが、上記の点をすべて考慮に入れるのは容易ではありません。

他の方向性

ソフトウェア開発の観点から見ると、CI / CD、自動デプロイメント、バージョン管理、テストなども試みることができる方向性ですが、これらはソフトウェアエンジニアが自然と理解するものであり、デプロイされるサービスが複雑でない限り、多くの場合は設定ファイルを書くだけでほとんどのことができます。

最も良いのは、ある産業、例えば太陽光産業、食品業、サービス業などと組み合わせることです。興味のある産業からニーズを見つけ、MVPを作成して検証することで、最終的にはフロントエンドが目標を達成するための一つの方法に過ぎないことがわかります。

最近、Pieter LevelsとLex FridmanのPodcastを見ています。PHP、jQuery、MySQL、ほとんどのプロジェクトを自分で開発し、月に300Kドルを稼いでいます。

これらはすべて古く、古い技術ですが、問題を解決できます。これも一つの道であり、サービスや製品を開発する思考で進むべきだと思います。技術は十分であれば良いのです。

この核心的な理念は、Gitの物語:今回はあまり楽しくないでLinusがgitを書いてJunio Hamano(浜野純)と交流した話とも少し似ています。(この記事は非常に面白いので、読んでみることをお勧めします!)

当時、Linusはマージアルゴリズムを書きたいと思っていましたが、スクリプト言語が適していると考えていました。そこで、他の人に手伝ってもらうために募集をかけました。ちょうど浜野純がそれを見て、Perlでバージョンを実装しました。それは速くて汚いものでした。

Linusの返信は:

…Quick and Dirty それがまさに私が求めていたものです。Q 'n' Dが物事を動かす方法です。

この言葉は私にとって意外なほど響きました。私は、優れたエンジニアはこのような特性を持つべきだと思います。まずはQuick and Dirtyを目指し、残りのことは後で考えるべきです。

キャリアについての考え

私はこれまでソフトスキル、つまりコミュニケーション、リーダーシップ、管理などについては触れていませんでした。もちろん、これらは非常に重要ですが、最近の考え方は、これらのソフトスキルは技術の向上と同時に強化される相互補完的なものだということです。

多くの人が昇進するにはどうすればいいか、どのプログラミング言語を学べば仕事が見つかりやすいかと尋ねます。これらの考え方に何の間違いもありませんし、私も以前はよく考えていました。どうやって管理職に昇進するか、どうやって給料を上げるか。

しかし、ある程度の経験を積んだら、より良いキャリアを追求することは目標ではなく、手段であるべきだと思います。

あなたの目標が明確で、会社で好きなサービスや製品を作ることが目標であれば別ですが、資本市場の観点から見れば、私たちは自分の時間と引き換えにお金を得ているに過ぎません。そして、時間だけを使って交換するのはあまりにも割に合わないことです。

これも私が努力していることの一つであり、良い大企業で働くことができれば、人脈を積極的に築き、関係とリソースを活用して自

この記事が役に立ったと思ったら、下のリンクからコーヒーを奢ってくれると嬉しいです ☕ 私の普通の一日が輝かしいものになります ✨

Buy me a coffee