かろてんはこう思いました

フロントエンドエンジニアになりたいバックエンドエンジニアの雑記。

フロントエンドエンジニアとは何か、バックエンドエンジニアとは何か

なんとなく使っていたフロントエンドとバックエンドと言う言葉を今一度整理してみました。

超ざっくりなので初心者向けです。

 

フロントエンドエンジニアについて

作るもの

フロントエンドエンジニアは、主に「ユーザの目に見える部分」を作ることが多いです。

 

例えばアマゾンのページにアクセスした時のことを考えてみましょう。

アマゾンのトップページには様々なリンクやボタンがあります。

そしてそれらのリンクやボタンを押すことができます。

 

このような、ユーザの目にみえて、

そして直接操作ができるような部品を作るのがフロントエンドエンジニアの仕事です。

 

必要なスキル

ただ部品を作るのが仕事ではありません。

部品を作る(コーディングする)スキルはもちろん、

ユーザにとって使いやすいデザインを考えるスキルも必要です。

 

扱う言語

扱う言語としては、主にHTML, CSS, JavaScriptなどです。

 

JavaScriptはその昔、

ページの部品(DOM)を動かしてちょっとだけ装飾を加えたりするくらいの小さな開発にて

で使われることが多かったようです。

 

しかし近年、開発工数を大幅に減らすことができ、

しかもよりユーザにとって使いやすい画面を提供することができる

JavaScriptフレームワークがどんどん出てきています。

 

よく使われるものとしては、

Googleが開発提供しているAngularJS、

Facebookが開発提供しているReact.js、

他にもBackbone.js、Vue.jsなどがあります。

 

これらのフレームワークの登場により、

ユーザにとても使いやすいページが簡単に実装できるようになりました。

そのため、以前に比べフロントエンドエンジニアの案件は増えているといえるでしょう。

 

 

バックエンドエンジニアについて

 

作るもの

バックエンドで開発する部分は、基本的にユーザからは見えない部分です。

 

先程の例で言えば、

アマゾンのトップページから商品を検索する際商品名を入力してエンターキーを押すと、

エンターキーを押すと商品名がサーバーに送られます。

 

すると、サーバー上にある大量のデータベースの中から、

商品名を含む商品が検索されブラウザへ帰ってきます。

こうしてブラウザに検索結果が表示されます。

 

このように、ユーザが送ってきた情報をもとに、

データベースを操作(追加・削除・検索・加工)するような、

目に見えない部分を開発しているのがバックエンドです。

 

扱う言語

よく使われているのが、JavaPHPなどです。

また少し前からかなり増えてきているのがRubyです。

 

特にRubyは、開発工数を大幅に減らし、

楽しく開発できるRuby on Railsというフレームワークが登場してからよく使われるようになりました。

ちなみにRubyを開発したのは日本人(Matz)です。

 

必要なスキル 

大量のデータを取り扱うことになるので、

データを加工したり、検索したり、追加したりするのをいかに早く扱うか、

というパフォーマンス部分はとても重要になってきます。

 

パフォーマンスを改善するにはアルゴリズムについての知識は必須です。

 

また、予約システムや購入システムなど、

いろいろな要素が絡み合う複雑なロジックを扱うこともあります。

それらの複雑な物事を整理する力などが必要となってきます。

 

フロントエンドエンジニアとバックエンドエンジニアは手を取り合おう

フロントエンジニア・バックエンドエンジニアはともになくてはならない存在です。

 

フロントエンドエンジニアがいなければ、

ユーザが触ることができる画面を作ることができません。

 

バックエンドエンジニアがいなかったら、

アプリケーションの機能そのものを作ることはできません。

 

フロントエンドエンジニアとバックエンドエンジニアが協力的に開発を進めることにより、

ユーザにとって使い勝手も良い高機能なアプリケーションを作ることが可能になるのです。

 

僕はバックエンドエンジニア(PHPer)だったのですが、

最近AngualrJSを使ってから、

画面をグリグリ動かせるJavaScriptがかなり好きになってきました。

 

ただなかなか癖がある(PHPもくせあるだろ!と言われそうですが)ので、

なかなか慣れるまで時間がかかりそうです。

 

頑張って勉強しよう。

とかろてんは思ったよ。