フロントエンドはCSを学ぶべきか?

作成者:カランカラン
💡

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

目次

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

    このテーマについては長い間議論されてきましたので、自分の考えを簡単に記録しておきます。

    昔、HTMLとCSSだけの時代には、せいぜいjQueryを加える程度で、静的なウェブページをFTPにアップロードするだけで、エキスパートと呼ばれることができました。

    ブラウザができることが増えていく中で、フロントエンドがカバーする範囲も広がってきました。「フロントエンド」という言葉だけでも、複数の分野に分かれるかもしれません:

    • UI:ユーザー体験を重視し、APIの状態管理、データ処理、ユーザー体験、a11y、適切なアニメーションのインタラクションを含みます。
    • マルチメディア:音声や映像、ライブストリーミングに重きを置いたサービス。UIへの理解だけでなく、マルチメディアの背後にあるデコードや伝送についての基本的な知識も必要です。
    • データフロー / フロントエンドエンジニアリング:ツールフレームワークのマスター、ビジネスニーズやドメイン知識への理解が求められます。
    • データビジュアライゼーション / ストーリーテリング:Chart LibraryやD3に精通していることに加え、ブラウザのグラフ表示の限界を理解し、Canvas、SVG、WebGLの使用タイミングを知る必要があります。また、ストーリーテリングのスキルも必要で、派手なグラフを作ってもユーザーが興味を示さないことのないようにする必要があります。
    • アーキテクチャ:フロントエンドのデプロイ、ロギング、基盤フレームワーク、規範、API管理、状態管理など、経験だけでなく一定のCS知識も必要です。
    • ゲーム:ゲームを通じて物語を語ることや単純にエンターテインメントとして楽しむことを含み、ゲーム理論に関わり、一般的な開発手法とは異なります。
    • コンセプトフロー:Vue、React、Svelteなど、コンセプト(コンポーネント、仮想DOM)から直接アプローチし、開発者のフロントエンドに対するイメージを根本から変えます。

    CSの背景を持つ開発者が作るUIは、CSの背景がないフロントエンドエンジニアよりも劣る場合があります。アルゴリズムを学ぶよりも、a11yやUIについて深く研究することがこの社会にとってより役立つかもしれません。

    すべての分野で専門性を持つ人は少なく、基本的に全てに精通しているなら、フロントエンドとは言わず、Software Engineerと名乗ることになるでしょう。このような人に出会うのは難しく、全員がスキルツリーを満たした達人になる必要はありません。

    以上の観点から見ると、企業の条件やニーズを考慮せずに、ただアルゴリズムやCSの背景を強調するのはナンセンスです。多くの場合、それは採用の心態の怠惰に過ぎません。

    結局のところ、重要なのはあなたの目標と、あなたがなりたい人です。

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

    Buy me a coffee