フロントエンドで入ったけど、バックエンド向きだった話

伝えたいこと

エンジニア未経験で入った会社でフロントエンドを担当することになったが、やっているうちに自分はバックエンド向きだと思って話です。これを通じて、自分はどっちが向いているかを判断する材料にしていただけると嬉しいです。

言われるがままフロントエンドを担当

初めて入った会社で大きなプロジェクトが始まり、そこで社長からフロントを任されました。理由は、バックエンドはセキュリティを考えなければいけなく、難易度が高いため。

フロントは非論理的

実際フロントを担当してどうだったか。自分には向いていないことが早々に分かりました。

僕は何でも論理的に動くのが好きで、AならばB、BならなC、ということはAならばC、というように、ロジカルに展開していく流れが自分の性に合っていました。フロントエンドの仕事にはそれがないのです。

なぜフロントは非論理的なのか

フロントで一番厄介なのはCSSでのスタイルだと思っています。ここを赤くする、下線をつける、中央寄せなど、パワポでやればすぐにできることを、コードで表現します。これがくせもの。

例えば中央寄せの場合、親要素が何かによってその方法が変わったり、その方法を試してもできない場合があったりと、例外が多すぎるんです。実に非論理的です。

「なぜこうならないの?」ということが何度もありました。正解を知っても、「こういうルールだから」と無理やり覚えるしかありません。腑に落ちることがないんです。

JavaScriptならそういうことはないですが、フロントの根幹であるスタイルは、「こういうものだから」としか処理できないものばかりで嫌になりました。

バックエンドは論理的

その点、PHPなどのバックエンドの言語は論理的です。if文やfor文を使い、欲しい答えを導く様は、実に明確です。「こうすればこうなる」の典型的なパターンです。

フロントをしている時は、モヤモヤばかりが残っていましたが、一度バックエンドを触ってみるとその明瞭さに面白みを感じました。

色々な手法を用いて、「こうすればこうなるのでは?」を積み重ねて、見事に欲しい答えが出た時は嬉しいものです。また、欲しい答えが出なかった時も、なぜ出なかったのかがちゃんと分かります。そこには、フロントエンドのような「ルールだからしょうがない」ということがありません。

文系はフロントエンド、理系はバックエンド

結論、僕はこう思います。人類をこの二種類に分けるのもどうかと思いますが、文系脳、理系脳というものがあるように思えます。

僕は社会や国語が全くできませんでした。年号とか四字熟語とか、暗記ばかりで理屈が通っていないからです。その点、数学・物理は暗記は少なく、手持ちの方程式を応用して答えを導きます。まさにバックエンドと同じですね。

逆に、サインコサインや微分積分が大嫌いな人は、フロントに行った方がいい気がします。ひたすらHTML・CSSのルールを覚えれば、理想通りのものを作れます。それはまさに、年号や四字熟語を暗記して答えを解くのと同じです。

自分に合った方を選びましょう

バックエンド向きなのにフロントエンドを担当すると、モヤモヤがたまって挫折します。逆もそうでしょう。バックエンドはフロントとは違って見た目に現れない地味な仕事なので、ロジックを積み重ねて答えを導くことに快感を持てない人は辛いと思います。

自分に合った方を選びましょう。そうじゃないと、エンジニアの仕事そのものを嫌いになります。

僕のように。