フリーランスエンジニアとして働いている、あるいは企業SEとして働きつつも独立を視野に入れている。働き方が多様化する昨今、これらに該当するエンジニアは徐々に増えています。そのなかで誰もが抱える不安が「言語」に関すること。現代ではひと口に言語といってもさまざまで、一説によると200種類以上にも及ぶといわれている時代。フリーランスはどの言語を学べばいいのか、どれが稼ぎにつながるのか、今後使えるのはどれかなど、ひとつどころではない悩みがあるのではないでしょうか。
JavaScriptのニーズは引き続き強い
あらゆる言語のなかでも、現代でもっともポピュラーなのは「JavaScript」です。以前から使用されている言語ですが、WEBビジネスが加速しはじめてから、さらなるニーズの高まりをみせています。どの言語スキルを学ぶのか悩んだときは、とりあえずJavaScriptからはじめて間違いないでしょう。まずはJavaScriptの基礎知識から触れていきます。
サーバーエンドの開発に使われるJavaScript
JavaScriptは、WEB上での動的表現を目的に使用されるスクリプト言語です。実行環境はWEBページやゲーム、業務システムなど多岐にわたり、とりわけフロントエンドの開発に用いられるケースが多いです。また近年はサーバーサイドの開発に使われることも少なくありません。
JavaScriptのニーズが高まっている理由
そんなJavaScriptがなぜ、この現代でニーズが高まっているのかといえば、上記で少し触れたようにWEBでのビジネスが加速しているからです。いまやどのような企業および業種でも、WEBを利用したマーケティングを取り入れるようになっており、その過程でさまざまなWEBサイトが登場しはじめています。
閲覧方法もパソコンからスマートフォン、またはタブレットという時代に変わっているさなかで、システムではなくブラウザだけで豊かな表現ができるJavaScriptの需要が飛躍的に高まったのです。しかも主要ブラウザや解析ツールのほとんどがJavaScriptに対応しているので、その汎用性の高さもニーズの高まりに影響しているかもしれません。
またブラウザはもちろん、パソコンをはじめとしたマシンのスペックが、ここ数年で大きく進化したことも関係しています。JavaScriptは動的表現を目的とする言語であるために、静的表現が主流だったころのモノだと負担に耐えることができませんでした。ところがスマートフォンに代表されるように、手のひらサイズのハイスペックマシンが登場したことで、JavaScriptの負担に耐えられるどころか、より膨大なコードにも対応できるようになったのです。
ちなみにもうひとつだけ触れておくと、いまはJavaScriptはWEBブラウザだけでなく、幅広い環境に採用されつつあります。たとえば、プログラムを生成するシステムに使われたり、アプリ開発に用いられたり、Adobeのフラッシュ言語として標準装備されたり。ブラウザに留まらない、さらなる広がりをみせていることから、今後の需要増にも期待が高まります。
いま注目すべきふたつのフレームワーク、「AngularJS」と「Bacakbone.jp」
JavaScriptには複数のフレームワークがあり、それをスキルとして持っておくことが、エンジニア初心者を脱するカギだといわれています。フレームワークは簡単にいえば、JavaScriptでつくるWEBアプリケーションなどをより効率的にかつ、高品質にするためのツールのことです。いわゆる拡張機能のようなイメージでいいでしょう。
ただ言語と同様に、JavaScriptのフレームワークといってもさまざまな種類がある上、1年ごとにトレンドがあるほど目まぐるしく移り変わります。そのなかでいま、もっとも注目すべきフレームワークは「AngularJS」と「Bacakbone.jp」のふたつ。いったいどのようなモノなのか、それぞれの概要を解説します。
AngularJS
AngularJSはGoogleを中心に開発されている、Google製のJavaScriptフレームワークです。GoogleやHuffington Postに用いられている信頼性の高さから、数あるフレームワークのなかでも断トツの人気を誇っています。現環境における主流といえるかもしれません。そしてAngularJSの魅力といえば、フルスタックフレームワークであることです。
フルスタックフレームワークとは、WEBアプリケーション開発などにおけるライブラリがひとつに集約されたもの。逆の存在であるシンフレームワークの場合、自由度が高いという利点があるものの、ライブラリ同士の相性を試行錯誤したり、チーム内での共有に時間がかかったりするリスクがあります。フルスタックフレームワークであれば、制限こそありますがライブラリの範囲さえ覚えてしまえば、作業にかかるコストを大きく下げることができます。
加えて幅広いシーンで活用できるユーティリティ性を備えており、とくにWEBサイトの管理画面をはじめとする、管理系アプリケーション開発に最適だとされます。もちろん、スマートフォンなどの携帯端末における実用性も高いです。ただWEBサイト自体をつくるのであれば、ほかに適したフレームワークがあるというエンジニアもいるので、万能選手でないことはあらかじめ頭に入れておいたほうがいいでしょう。
Backbone.js
Backbone.jsはJavaScriptのコードを効率化する、CofeeScriptの設計者開発者Jeremy Ashkenasが開発したJavaScriptフレームワークです。TwitterやSoundCloudに採用されていることから、AngularJSとよく比較されており、現環境では同フレームワークに続く人気を誇っています。こちらは前項でも触れたシンフレームワークに該当するもので、開発にあたっては本人が使いやすいプログラムを事前に組まなければなりません。
しかしそれがデメリットかといえば、決してそうではありません。さまざまなライブラリを組み合わせて、もっとも使いやすい形に整えられるため、多方面にわたるシーンで活用できます。要するに、フルスタックフレームワークと比べて、柔軟性に大変優れているのです。自分の開発プロセスなどが明確になっており、それが身に付いているひとに適しているフレームワークだといえます。
Backbone.jsが向いている場面は、中~大規模のプロジェクトです。とりわけ長期的なスパンで、生産性を高めるプロジェクトにピッタリだといいます。これは「かかるコストと対価が見合うのが中~大規模開発」「データが大量でも整理しやすい」「ファイルサイズが軽量」「メンテナンス性に優れている」などの理由があります。
フリーランスエンジニアはどちらを勉強すればいいのか
前項の通り、AngularJSとBackbone.jsにはそれぞれメリットとデメリットがあります。ここで問題になってくるのが、フリーランスエンジニアはどちらのフレームワークを勉強すればいいのかというところ。結論からいえばAngularJSのほうが優位です。まずはふたつのメリットとデメリットを、簡単にまとめてみます。
AngularJSのメリット・デメリット
○メリット
Googleとコミュニティによる開発で信頼性が高い / ユーザー数が多い / フルスタックフレームワークでありながらツールが豊富で便利 / テスト環境が整っておりアップデートが容易 / 大手ニュースサイトが採用する実績
×デメリット
仕様や独自機能が膨大で学習コストがかかる / ファイルサイズが大きい / DOM操作が難しい
Backbone.jsのメリット・デメリット
○メリット
中~大規模開発に向いている / 自由度が高い / ファイルサイズが小さく応答性に富んでいる / 足りない機能を補完しやすい / サポートライブラリの充実 / 大手SNSと音楽共有サービスが採用する実績
×デメリット
小規模プロジェクトに向いていない / 開発に手間がかかる / 経験がないと手を出しづらい
AngularJSが優位な理由
AngularJSとBackbone.jsのメリット・デメリットを踏まえると、フリーランスエンジニア本人が関わる案件の規模や経験量を踏まえて選ぶのが得策だと思われるかもしれません。実際のところ、その選び方でも問題はありませんし、両方を試してBackbone.jsのほうが使いやすいとなればAngularJSをわざわざ利用する必要はないでしょう。それでも本項の冒頭でAngularJSが優位としたのは、いくつかの理由があります。
ひとつは検索エンジンのグローバルスタンダードとなっている、Googleが開発している点です。ある調査によれば、世界全体の9割がGoogleの検索エンジンを使っています。またかつてはYahoo!が独占していた日本においても、ここ最近はGoogleの利用者のほうが多くなっているようです。 これが直接結びつくわけではありませんが、信頼性につながる要素であるため、今後もさらなるユーザー増が見込まれます。そうなるとコミュニティも比例するかのように大きくなり、技術情報の共有やサポート体制の充実などによって、さらなる地位を確立するかもしれません。GoogleトレンドでAngularJSの検索数が、ほかのフレームワークに比べてかなり高いという事実もあります。
もうひとつは単純に使いやすさの面です。デメリットに挙げたように仕様や独自機能が膨大なので、使い方を覚えるのはそう簡単なことではありません。しかしながらフルスタックフレームワークであるために、一度覚えてしまえばその知識だけで高品質のJavaScriptが書けるようになります。決して万能ではないものの、プロジェクトの規模も選びませんので、幅広いシーンで使い続けることができるでしょう。以上の理由からフリーランスとして働いているひとはもちろん、駆け出しだったり転職を視野に入れたりしているひとでも幅広く使えます。
フリーランスエンジニア向け Javascript求人・案件の傾向
最後にAngularJSかBackbone.jsを必須スキルとする、フリーランスエンジニア対象の求人・案件の傾向をご紹介します。下記はあくまで傾向ですので、具体的な内容に興味があるひとはFAworksから探してみてください。
AngularJSの求人・案件
AngularJSを必須スキルとする求人・案件は、WEB系が多い傾向です。WEB系とは、おもにアジャイル型のスタイルをとるジャンルのこと。たとえば、WEBサイトやアプリケーション、システムなどのフロンドエンドエンジニアが募集されています。基本的にAngularJSを使った開発経験の有無を問われており、経験年数などは必須事項に含まれていないこともあるので、現環境では経験さえあれば重宝されることでしょう。
Backbone.jsの求人・案件
Backbone.jsを必須スキルとする求人・案件は、AngularJSと同様にWEB系が多い傾向です。そもそもJavaScript自体がWEBブラウザに対応した技術であり、ブラウザ以外に採用されるようになったのがここ数年の話だからかもしれません。少し話が逸れましたが、Backbone.jsで求人・案件を探してみると、「AngularJS、Backbone.js…のいずれかの開発経験がある方」としているケースが多いです。ただ大規模プロジェクトの概要で、フレームワーク経験にBackbone.jsを真っ先に挙げているところもあり、やはり中~大規模プロジェクトにおけるニーズは高いといえます。
気になるフリーランスの月収は?
収入が安定しており、教育環境が整っている会社勤めをやめてフリーになるのであれば、手取り、額面ともに会社員の時より高くないとフリーになる決意がつかないですよね。
人材業界、採用、HRに関するニュースメディアのHRogのプログラミング言語別給与ランキング【2015年版】によると、@type、DODA、FindJob!、Green、イーキャリア、エン転職、マイナビ転職、リクナビNEXTといった大手求人サイトに掲載されていた求人情報47,321件のうち、JavaScriptに関連した求人数は1,756件、平均年俸は365万8,870円となっています。月給に換算すると304,906円となります。
FAworksのフリーランスJavaScriptエンジニアの案件の平均月収は57万円です。会社員の月収より高いといえるでしょう。
どれくらい紹介会社が手数料をとっているのか
紹介料が安く、透明性のあるエージェントから仕事をとりたいと考えている方は多いのではないでしょうか。
FAworksのJavaScript案件では、エンジニア様からは一切紹介料、手数料を頂きません。JavaScriptのスキルを持つエンジニアの方は、ぜひFAworksから案件をさがしてみてください。
JavaScriptエンジニアに求められる付属スキル一覧
- Node.js
- Backbone.js
- Ember.js
- Knockout.js
- AngularJS(1.x)
- React.js
- Ractive.js
- vue.js
- Aurelia.js
- AngularJS2.0(アルファ版)
参考URL:http://ascii.jp/elem/000/001/039/1039953/ http://www.hivelocity.co.jp/blog/36043