エンジニアとして3年以上経験を積んできた方であれば、一度考えるべきなのがフリーランスという働き方です。「フリーランス」と聞くと、収入や将来に関する不安が先に浮かんでしまう人も多いかもしれませんが、それ以上にメリットが多い働き方でもあります。
■フリーランスエンジニアとして働くメリット
- 収入の大幅な上昇が望める
- 学習費用を経費とすることができる
- 自分で自由に仕事や環境を選ぶことができる
- スキルに応じて自分の収入を上げることができる
ほかの職種であれば、独立してフリーランスとして仕事しようとする場合には、自分で営業をかけて仕事を取ってくるところから始めなければなりません。しかしエンジニアの場合には話が違ってきます。なぜなら、IT人材が圧倒的に不足していることに加えてフリーのエンジニアに案件を紹介してくれるエージェントが多くあるからです。
正社員からフリーランスとして独立するエンジニアは急激に増えてきています。この背景には、フリーランス専門の案件紹介エージェント会社が登場してきたり、エンジニアが自ら営業活動をしなくても案件を獲得できるようになったことが大きな要因としてあります。
仕事を探す手伝いをしてくれるエージェント会社に登録することで、自ら営業をする必要もなく雇用形態が変わるだけで正社員に比べて大幅に収入を増やすことができるのです。
フリーランスエンジニアの何よりのメリットが、自分のスキル次第で稼ぐ金額を大幅に増やすことができる点です。正社員であればほぼ不可能な20代で月収60万円以上を稼ぐことも可能ですし、中には1,000万円稼ぐ方もいらっしゃいます。
それでは実際にどういったスキルを持っていればよいのか、気になるところではありますね。そこで今回は、登場から急激に存在感を増してきているRubyに焦点を当てて見てみたいと思います。活躍できるRubyのフリーエンジニアになるためには、どういったスキルや知識が必要になるのか、それらを身に着けるためにはどうすればいいのか、という観点から、必要な開発経験を4つ選びました。
Contents
Ruby on Railsでの開発経験
Ruby on Railsとは
Rubyエンジニアとして仕事をしていく上で、Ruby on Railsは必須のスキルです。エンジニアが案件を受ける際に、Rubyのスキルが求められる場合はほぼ例外なくRuby on Railsの事を指しています。そもそも、「Ruby on Rails」とはRubyのフレームワークの名称です。フレームワークとは、よく使われるWebサービスの機能を誰でも簡単に作成できるようにしてくれるものです。例えば、検索文字の入力フォームを作ろうとした時に0からコードを書くのはすごく面倒なことだと思います。
その手間を省いてくれるのがRuby on Railsです。
Ruby on Railsを使用することで、よく使われる機能は自分で0からコードを書かなくても必要になる機能を呼び出すだけで簡単に追加することができます。そして、Ruby on Rails(通称Rails)が広く普及している理由として、Railsのコミュニティが活発に活動を行っていることがあります。
プログラミング言語において、エンジニアが互いに情報を開示してスキルを共有するコミュニティ活動は重要です。
その点でRailsはエンジニア間のコミュニティ活動が活発で、早いペースでバージョンアップが行われていきます。そのため、開発の現場で起こった困りごとや要望に対する回答を簡単に見つけることができる魅力があります。
Ruby on Railsの実務経験を積むためには
Railsは導入している企業の数が爆発的に増えています。
そのため、経験者はもちろんですが未経験でも求人を出している企業もあります。経験が浅かったり未経験からスタートする場合には、未経験のエンジニアでも受け入れている企業を探して働くことを考えましょう。そこで経験を積むことで、次のレベルが高い案件に繋がるスキルを得ることができます。
Webアプリケーションの開発経験
Webアプリケーションとは
Webアプリケーションとは、Webブラウザで動く仕組みのことを指しています。ブラウザ上に表示される画面に従って、例えばユーザが検索やクリックなどの操作を行うとそれに応じた結果がWebページに表示されます。
この仕組みは大きく次の手順で処理が行われています。
Webアプリケーションの動作の仕組み
- ユーザがWebサーバに対して検索の要求を送ります。
- 要求を受け取ったWebサーバが、検索結果の情報が入っているDBサーバに要求を送ります。
- DBサーバから結果がWebサーバに返されます。
- Webサーバがユーザに対して結果として返します。
- ユーザはWebページ上で結果を確認することができます。
RubyはWebアプリケーションの開発を短縮できる特徴を持っており、少ない時間で多くのWebアプリケーションを開発することができます。そのため、ITサービスを提供している多くの企業でRubyを使ったWebアプリケーションの開発が行われています。
Webアプリケーションの開発経験を積むためには
経験を積むためには、実際に開発している企業に所属して実務を通しながら学んでいくことももちろん効果的ですが、個人でWebアプリケーションを作る経験を積んでみるのも効果的です。
実際に自分でWebアプリケーションを作った経験は強いアピールポイントにすることができますし、個人だとしてもその開発経験を高く評価してくれる企業は多くあります。このWebアプリケーションを独自に開発したいと考えた時に、面倒になることが開発環境の準備でした。
Webアプリケーション開発で必要になるもの
・Webアプリケーションが動作するサーバ
・必要になるソフトウェアのインストール
・WebサーバやDBサーバ
以上のように多くの準備が必要になります。しかし、最近ではGUIで操作していくだけで簡単にWebアプリケーションを作ることができるサービスが多く登場しています。例を挙げるとAWSのCloud9です。GUIを操作していくだけで簡単に環境を整えて自分が作成したWebアプリケーションをインターネット上に公開することができます。
こういったサービスを使って、まずは簡単なものでいいので作ってみましょう。
自社サービスの開発経験
Rubyによって開発されたサービス
元々Rubyは日本で開発されたプログラミング言語ですが、アメリカのIT企業に根強い人気があります。アメリカのIT業界は日本のIT業界よりも技術に対するアンテナが高く、開発するためのプログラミング言語を選ぶ時にも開発のしやすさや情報量の多さを重視します。そんな環境でも、知名度の高い企業が自社開発の言語としてRubyを選んでいることには驚きますね。
Rubyを使って開発されたサービス
Hulu・・・定額性の動画配信サービス
Airbnb・・・民泊サービス
Twitter・・・短いつぶやきを互いにシェアできるSNS
GitHub・・・ソフトウェア開発のプロジェクト用のプラットフォーム
誰でも名前を聞いたことがある企業が並んでいるのではないでしょうか。日本でもスタートアップ企業の間でRubyは強い人気があります。スタートアップ企業は大手に比べて資本がないため、どれだけスピーディに自社のサービスをリリースできるかが重要になります。Rubyはこのサービスを開発するスピードで高い評価を得ていることから、スタートアップ企業で多く利用されています。
サービス開発に携わるには
Rubyのスキルに加えて、自社サービスを0から作った経験を持っていることは自分の強いアピールポイントになります。プログラミング言語を知っていてコードを書けると言っても、自分でアイディアを形にした経験がないと需要があるエンジニアになることは難しいです。
特に経験が浅かったり、Ruby未経験のエンジニアに求められるのは自分でアイディアを出してそれを形にする力です。この経験を持っていることで、他のRubyエンジニアと大きく差別化できるポイントになります。
そのため、自社でサービス開発をしているスタートアップ企業で経験を積むことは効果的です。開発していく過程で、サービス開発ではどんな点に留意する必要があるのか、どういった戦略を持って取り組んだほうがいいのかを経験しながら学びましょう。
チームでの開発経験
チーム開発に求められるもの
エンジニアとして企業で仕事をする際には、一人きりで開発をすることはほとんどありません。規模はそれぞれのプロジェクトで変わってきますが、必ずチームを組んで開発を行います。
そこで求められるのがチームメンバーと協力して開発を進めていく力です。学生の頃にチームスポーツの部活動を経験したことがある方にはピンと来るかと思いますが、他の人と協力するためには自分の考えをわかりやすく伝えて相手の考えをきちんと把握できる能力が必要になります。
「エンジニア」と聞くと、PCと向かい合って静かに仕事をしているイメージを持っている方もいますが、実際にはメンバーやお客様とコミュニケーションを取る場面がとても多いです。
そこでチームとしてプロジェクトを進める能力を持ったエンジニアは必ず必要になります。
ただ、エンジニアは自分のスキルを磨いて発揮することに時間を使っている人も多いため、人との折衝をするコミュニケーション能力が高い人は多くありません。そのため、チームメンバーと必要に応じてコミュニケーションを取りながらプロジェクト進めることができるエンジニアには強い需要があります。
チーム開発の経験を積むためには
チームでの開発経験を積む上で有効なのが、自社でサービス開発をしている/開発を受託しているスタートアップ企業です。こういった企業では、規模はそこまで大きくないですがプロジェクトごとにチームを組んで開発を進めていきます。特にスタートアップは自社のメンバーだけを使って開発を行うことが多いため、規模が大きい案件よりも1人あたりが担当する範囲が広いです。
そのため、多くの経験を積みつつ開発を進めていくことができるため濃厚な経験を積むことができます。
まとめ
Rubyはアメリカでもサービス開発に多く採用されている優れたプログラミング言語です。
そのため、Rubyを扱うことができるエンジニアは今後も需要がなくなることは考えにくいです。
ただ、持っているスキルによって報酬単価が大きく変わってくることは知っておくべきです。Rubyを扱うことができるスキルだけでなく、サービス開発やプロジェクトをチームとして進めていくうえで必要なスキルを身に着けておくと良いでしょう。