はじめに
今回はこんな疑問に答えていきます。
本記事の内容
■ フリーランスエンジニアになるまでに準備しておくべき技術(実務経験必須)
■ フリーランスエンジニアになるまでに準備しておくべき技術(実務経験推奨)
フリーランスエンジニアになるまでに準備しておくべき技術(実務経験必須)
■ メジャーな言語(JavaScript, Java, PHP, Python, Ruby等の中でどれか一つ)での開発経験
■ フレームワーク(React, Vue, SpringBoot, Larabel, Django, Ruby on Rails等のメジャーなフレームワークだと尚良し)を用いた開発経験
■ UnixもしくはLinuxサーバでの開発経験
■ データベース使用経験
これらは、フリーランスになるまでに必ず実務の中で経験しておかないといけないです。
それでは、ひとつずつ解説していきます。
メジャーな言語(JavaScript, Java, PHP, Python, Ruby等の中でどれか一つ)での開発経験
もちろん多ければ多いほどよいのですが、JavaScript, Java, PHP, Python, Ruby等のメジャーな言語であれば、どれか一つ実務での使用経験があれば基本的に案件に困ることはありません。
しかし、COBOL等のマイナーな言語だと、案件数が少ないため、今後継続的に案件を獲得するのは厳しいため、メジャーな言語での開発経験を積むことをおすすめします。
また、「業務未経験だけど、これから使用したい言語を使用してる案件に参画したい」という理由(例えば、これまではRubyを業務で使用してきたけど、Goを使用した案件に参画したいというようなケース)で、個人開発を通して新しい言語を習得しようとするのはあまりオススメできません。
というのも個人開発を通して使用した言語は、フリーランスの場合、企業から評価してもらえません。
どうしても業務未経験だけど使用したい言語がある場合は、使用したい言語を扱っている企業へ一度転職してからフリーランスを目指したほうがいいと思います。
通常の正社員転職の場合は、個人開発(ポートフォリオ作成)は評価してもらえますし、別言語での開発経験があるのであれば転職の難易度はそんなに高くないと思います。
しかし、これから正社員を経由せずにフリーランスを目指したいという方は複数の言語を習得する前に、まず自分が実務で使ってきた言語を極めることを最優先としましょう。
フレームワーク(React, Vue, SpringBoot, Larabel, Django, Ruby on Rails等のメジャーなフレームワークだと尚良し)を用いた開発経験
近年のWeb系の募集案件ではフレームワークを使用した案件がほとんどですので、フレームワークを用いた経験は必須です。
ただ、必ずしも募集案件で使用しているフレームワークを実務で使用していなければならないのかというとそうではありません。
例えば、JavaのStrutsしか経験していないけど、その案件ではSpringBootを使用しているようなケースです。
このようなケースでもMVCでの開発経験があると評価されるため、未経験でも案件に参画できることがあります。
とはいえ、メジャーなフレームワークを経験しておくと有利なのは変わりありませんので、メジャーなフレームワークを使用したことがない方は個人開発でもよいので使用しておくことをおすすめします。
Linuxサーバでの開発経験
近年のWeb系の募集案件ではLinuxOSをベースとしたWebサーバを利用していることが多いため、windowsサーバしか使用したことがないとなると企業から敬遠される可能性があります。
ちなみに、2014年9月時点でのWebサーバーOSにおけるシェアは以下のようになっており、年々Unix系OS(Linux含む)のシェアが増えているそうです。
基本的なコマンド操作やLinuxOSを用いたWebサーバの仕組みは最低限おさえておきましょう。
余力があれば、個人開発でもよいのでLinuxOSでWeb環境を構築し、Webサービスの設定を行い、システムのリリースを行うといった様な一連の開発経験をしておくことをおすすめします。
データベース使用経験
RDBとNoSQLがありますが、まだまだRDBを使用した案件のほうが多いため、安定的に案件獲得するのであれば、RDBを使用した経験が必要です。
2018年時点でのDBマーケットにおけるシェアは以下のようになっているそうです。
DB設計まではできなくとも、プログラムからDB操作(CRUD)することができたり、依頼されたデータを簡単に取得できたりするような最低限のSQLの知識が必要です。
フリーランスエンジニアになるまでに準備しておくべき技術(実務経験推奨)
■ Git使用した経験
■ テストコードコーディング経験
■ AWSなどのクラウドサービス使用経験
■ コンテナ技術使用経験
■ CI・CDサービス使用経験
こちらは実務経験を積んでおくと有利であるが、必須ではない技術となります。
Git使用した経験
Gitは学習コストが低いため、使用した経験がないと落とされるということはあまりないのですが、近年ほとんどの企業がソースコードバージョン管理システムとしてGitを導入しておりますので、企業に参画してから円滑に業務を進めるためにも経験しておいたほうがよいです。
テストコードコーディング経験
最近の開発手法にはテスト駆動開発という開発手法があり、テストコードを書くことが非常に重視されています。
ボクの印象では新規開発プロジェクトの多くがテストコードを書いているイメージがあり、年々テストコードを書く企業が増えているような気がします。
テストコードコーディング経験は、もちろん実務で経験していると圧倒的に有利なのですが、必ずしも実務経験がないとだめかといいますとそうではありません。
というのもテストコードを書けるエンジニアがまだまだ市場に少ないため、テストコードコーディング経験でフィルターしてしまうと人材確保できないからです。
したがって、テストコードを実務で書いたことがないという方は個人開発でもよいので、使用できることをアピールできるようにしておけば、十分そういった案件に参画できる可能性はあります。
AWSなどのクラウドサービス使用経験
以下の記事の統計をみても分かるように、国内のクラウドサービス導入は年々伸びており、中でも国内ではAWSがダントツでシェアを伸ばしております。
業務でAWSを使用することは高確率でありますので、まだ実務で使用したことがない方は個人開発等で積極的に使用したほうがよいです。
コンテナ技術
Docker、Kubernetesなどを使用したコンテナ技術を導入している企業はまだまだ少ないとはいえ、年々増えてきています。
以下の記事よると、現時点では2019年4月時点で国内の企業および組織468社の内、9.2%使用しており、年々増加しているようです。
IDC Japan、2019年 国内Dockerコンテナ/Kubernetesに関するユーザー導入調査結果を発表
また、コンテナ技術を導入している企業はモダンな技術を使用している企業が多い傾向にあります。
そういった企業へ参画することは成長の加速→単価アップへとつながります。
個人開発でもよいので、コンテナ技術を導入し、使用できるようにしておくことをオススメします。
CI・CDサービス使用経験
CI/CDは自動でビルド・デプロイできるようにする開発手法のことで、これらを実現するためのサービスとして有名なものでJenkinsやCircleCIなどがあります。
CI/CDのエキスパートが解説:CI/CDとは何か? なぜ今、必要とされるのか?
こちらのサービスについても、近年の企業では多く導入しているため、使用できるようにしておいたほうがよいです。
まとめ
■ メジャーな言語(JavaScript, Java, PHP, Python, Ruby等の中でどれか一つ)での開発経験
■ フレームワーク(React, Vue, SpringBoot, Larabel, Django, Ruby on Rails等のメジャーなフレームワークだと尚良し)を用いた開発経験
■ UnixもしくはLinuxサーバでの開発経験
■ データベース使用経験
■ Git使用した経験
■ テストコードコーディング経験
■ AWSなどのクラウドサービス使用経験
■ コンテナ技術使用経験
■ CI・CDサービス使用経験
今回あげているような技術を使用できるようにしておけば、フリーランスになってから低単価で苦しんだり、継続的に案件が取れないということはまずありません。
上記にあげた実務経験必須の技術使用経験がない方は、フリーランスになるのをあせらず、会社員エンジニアとしてしっかりとレベルをあげましょう。
上記にあげた実務経験必須の技術使用経験がある方は、実務経験推奨の技術にもチャレンジしてみてください。
上記にあげた技術すべて使用経験がある方は、フリーランスになってから低単価で苦しんだり、継続的に案件が取れないということはまずありませんので、自信をもってフリーランスへの転職活動を行ってください。
フリーランスへの転職活動の際は、一度フリーランスエージェントと面談して、自分の市場価値や自分の技術レベルでどのぐらいマッチする案件があるのかチェックすることをおすすめします。
ボクが厳選したエージェントは以下の記事でまとめております。
さいごまで読んでいただき、ありがとうございました。
知り合いから
「フリーランスエンジニアになれば、年収800万円以上の高報酬でかつ、自由な働き方をチョイスできる」
というのを聞いて、フリーランスエンジニアに興味を持ったのですが、
当時SIer企業でエンジニアをやっていたボクはなかなか一歩踏みだせませんでした。
というもの以下のような不安があったからです。
■フリーランスエンジニアってかなりの技術力がないとなれないのではないのか?
■フリーランスエンジニアって不安定なのではないのか?
■フリーランスエンジニアって人脈やコネ、営業力が必要なのではないのか?
しかし、実際にフリーランスエンジニアになってみて気づきました。
これらはすべて間違いです。
過去のボクのようにフリーランスエンジニアに興味あるけど一歩踏み出せないという方向けに
『フリーランスエンジニア転職完全ロードマップ』
という記事を書きました。
この記事読めば、どうすればフリーランスになれるのかが分かりますので、ぜひ一読ください。