見出し画像

2024年 改めて Reactに向き合い直して、フロントエンドエンジニアになる

はじめに

コロナ禍に独立してフルリモートのWeb制作者として請負やSESで生計を立てていた身としては昨今の状況は明らかに厳しい。

複数のエージェント会社のキャリアアドバイザーやメンタリングサービスのメンターからも同じような内容を聞いています。

コロナウィルス感染症が5類感染症に移行してから、出社を求める会社が増えて『完全出社』ではないにしろ『リモート勤務』から『リモート + 出社』という『ハイブリッド勤務』に移行している会社が多いことが大きな要因のようです。

また、東京を中心とするIT界隈ではSES(準委任契約)に対するコスト感が悪印象になっていることも要因だと聞いています。

私の肌感覚では、Web制作関係の仕事はハイブリッド出社が可能な関東圏の人材が優先的に採用され、関東圏でも人材確保が難しい場合にフルリモート人材が採用されているような印象があります。

副業を解禁する会社が増えてWeb制作を学ぶ機会や教材が増えていることから、Web制作にまつわる各種スキルの習得がコモディティ化していることも関連していそうです。

いずれにしても私のようにHTMLコーダー(マークアップエンジニア)の需要は明らかに減り、フロントエンドエンジニアの需要は明らかに増しています。

コーダー ≠ フロントエンドエンジニア

コーディングができればフロントエンドエンジニアへの垣根もそんなに高くないのでは?と思う人も、その垣根を簡単に越えれた人もたくさんいらっしゃるのは知っています。

なんなら『画面構築できるスキルがあればフロントエンドエンジニアで良くない?』という論調もありますが、ここ2年程ダラダラとReactを学んでいる身からするうと、『コーダーとフロントエンドエンジニアはやっぱり違くない?』と思ってしまいます。

私はどちらが良くてどちらが悪いと思っている訳ではなく、コーダーとフロントエンドエンジニアに上下があるとも思っていません。

需要という意味でフロントエンドエンジニアと名乗る方が明らかにメリットが大きい状況にありますが、自分のことを未だに『コーダー』だなと自認するくらいにはコーダーとフロントエンドエンジニアは違うと思うのです。

フロントエンドの難しさ

おじさんコーダーの私からすると、jQuery と WordPress が跋扈してた時代は分かりやすかった。

React がひっそり誕生しつつ Vue や Angular が脚光を浴びて『明日は Vue か? Angular か?』ともてはやされ、Vue のバージョンアップに伴う破壊的変更によってエンジニアが疲弊する様を横目にフロントエンド技術と一定の距離を置きながら生き延びてきましたが、フロントエンド技術として今のところ需要の割合が一番大きいのは React のように思います。

React は『完全に理解している』レベルなので多くは語りませんが、UIをDOMの要素ではなく、コンポーネントとして扱うところからまるっきり違いますよね。

UIに状態を持たせて背景で実行されている処理から一貫して制御できるような機能は、ソフトウェアエンジニア畑の人から見ると、DOM要素よりもよっぽどプログラマブルで扱いやすいだろうなあとイメージできます。

なので、バックエンドでの処理を伴わないLPやウェブサイト等でフロントエンド技術を採用する意味や肌感覚はあんまりよく分かっていません。

React は UI に徹しているがゆえに、習得しようと思うと『Webアプリケーション』を構成する周辺技術とその選択肢の広さを目の当たりにして一度は必ず卒倒しそうになるはずです。

また、フレームワークやサービスとどう組み合わせるか?さらにはデザイン系ツールとどう連携するべきかという難しさもあり …

  • プロジェクトの中に React をどう組み込んで使うか?

  • Reactをどう管理して使うか?

  • React をどのフレームワークとどう組み合わせて使うか?

  • React でつくったアプリをどうデプロイして使うか?

みたいなつまずきポイント満載でエンジニア脳を持っていないイチWeb制作者にはハードルが高いのです。

※ ちなみに私はこの手のつまずきポイントは丁寧にひとつずつハマって動けなくなるタイプです。

フロントエンドエンジニアに、俺はなるっ

Webアプリケーション開発が過渡期から成熟期に移行し、Astro や Remix という選択肢もあるようですが Next.js がフレームワークのデファクトスタンダードと目されている状況になり、分かりやすいドキュメントが出揃ったこともあり、ようやく私のような老獪にも手が出しやすくなってきました。

Vercel のような扱いやすいデプロイツールも登場してきて、AWS や GCP のようなバックエンドについて知らなくても気軽に個人開発サービスをデプロイできるようになったことも大きいです。

とはいえ、テストツールを含む CI/CD 関連技術はノータッチですし、アジャイルやスクラムといった開発手法は概念すら知らないですし、(最近ラグビー始めました。そっちではリアルにスクラム組んでます。)React や JSフレームワークの実務経験はない状態なので、案件を獲得することが難しい状況は依然変わらずですが、これまでと同じようなWeb制作案件を細々と受けつつ、個人開発でフロントエンドエンジニア技術のノウハウを蓄積していこうと思います。

最後まで長々と駄文を読んでいただき、ありがとうございました。

※ グラフィックプログラミングもWeb制作の延長のように思われていますが、ビジュアル要素をCanvas内でDOMツリーやコンポーネントツリーとは異なるやり方で扱うようなので、これもまた全くの別物という認識です。ここも面白そう。

※ Qiita なんかではこんな記事を書いていると『ポエム』とか書かれそうですが、『いや、エッセイだろっ!これだからエンジニアは!』とか思ってます。(思ってません)

この記事が気に入ったらサポートをしてみませんか?