エンジニアの昨今の働き方を知りたい

フリーランスエンジニアに必要な6つのスキルとは?現役エンジニアの視点で語る

こんにちは年収1000万の中堅エンジニアです。

今回はフリーランスに必要な技術スキルについてかなり具体的にトレンドを踏まえてお伝えします。

またフリーランスエンジニアになるのは技術以外のスキルも必要な事が多々あります。

どういったスキルが必要なのかも一緒にお届けしていきます。

この記事を読むと

「フリーランスエンジニアに必要な技術スタックがわかり、フリーランスへのロードマップが見える」

ようになります。

結論から言うと

  • プロジェクトの技術スキル
  • コミュニケーションスキル
  • 技術のキャッチアップスキル
  • 税金周りの知識
  • 交渉力
  • セルフブランディング

が必要です。

 

また途中で勉強したほうが良いスキルのわかりやすい記事も貼っているので参考にしてください。

フリーランスエンジニアに必要な技術スキルとは?

 

フリーランスエンジニアに必要な技術スキルとは?

 

フリーランスエンジニアになるということは自分の技術スキルを売り込み、技術スキルを提供することでクライアントからお金をもらうということです。

つまり技術スキルが収入を左右する一つのポイントということになります。

当たり前ですねw

その技術スキルというのをまずは深ぼっていきます。

そもそも技術スキルとは?

  • Web開発に必要なツールの知識・スキル
  • コミュニケーションスキル
  • 新しい情報を取得・学習していくスキル

ざっくり言うとこの辺がフリーランスでは必要なスキルになってきます。

Web開発に必要なツールの知識・スキル

フリーランスだけでなく、エンジニアをする上でかなり重要なスキルです。

例えば

  • プロジェクトで使用されているプログラミング言語・フレームワークの知識・経験
  • プロジェクトで使っているミドルウェアの知識・経験・チューニングするスキル
  • HTTPなどプロトコルや認可・認証などのWebに関する知識

がこれに当たります。

これの知識・経験によって採用されたり、報酬の額も大幅に変わっていきます。

では実際にどのようなプログラミング言語・ミドルウェアの知識・経験が昨今求められているか?

職種別に書いていきます

フロントエンドエンジニア

このあたりがフロントエンドと語る上では重要です。

まずHTML、CSSは当然フロントエンドでは画面を作る上で重要なので絶対必用です。

また画面をインタラクティブに動かすためにJSの知識はフロントエンドと名乗って仕事をするのであれば必ず必要です。

またJSに型を入れたTS(プログラミング言語)も昨今では人気があり、

フリーランスのフロントエンドと名乗る上では必須になりつつあり、

仕事の幅が広がるので覚えておいて損はないスキルになります。

続いてReact、VueはSPA(シングルページアプリケーション)と言われる仮想DOMを使ってインタラクティブに動作やページ遷移する仕組みで、

最近はかなり使われていて、これもまた少なくともどちらか一方は出来ないとフリーランスのフロントエンドとしてやっていくには厳しいです。

続いてFirebaseはiDaaSBaaSなどと呼ばれ、認可・認証やバックエンドの役割を担ってくれるツールです。

認可・認証は今までだとフレームワークに備わっているものを使ったり、自前で作ったりと手間だったのがFirebaseを使えば解決出来ます、それもかなり使い方は簡単です。

またSSO(シングルサインオン)という点も利点です。

なのでFirebaseを使っているプロジェクトは多く、これも覚えておくと仕事の幅が広がるのでおすすめです。

jQueryはモダンなサービスでは使われることは殆どなくなりましたが、未だに古いサービスなどでは使用されています。

モダンな開発がしたい場合は特に覚える必要はないです。

DockerとRDBに関しては詳しく覚える必要はないです。

ただ開発をしていくとバックエンドと密接に関わるフロントエンドはDockerを立ち上げての開発だったり、

データベースにあるデータを見たりと多少触ることはあるので、知識として持っておくと良いです。

ただ必須ではないので、フロントエンドがしっかり出来た後に覚えると良いです。

バックエンド

  • 各種プログラミング言語
  • RDB
  • Docker
  • CI/CD
  • サーバの基本的な知識
  • (多少のインフラ知識)

この辺りが必要です。

RDBはテーブル設計の知識、正規化は最低限必要です。

これは独学ではなかなか難しいので、実際の現場で学ぶことをオススメします。

もし独学である程度身につけたい場合はこちらの本で学ぶ事ができるのでオススメです。

 

もっとスキルを高めるには

  • テーブル設計の運用を見据えた設計能力
  • インデックスの貼り方
  • RDBのキャッシュの仕組みやデータ保持の仕組みなど

この辺りを学ぶと良いです。

 

Dockerに関してフロントエンドとは違い、ローカル環境や本番環境で使用するためのDockerを構築する必要があるため、ある程度の知識が求められます。

具体的には

  • Dockerfileの構文を書ける
  • docker-composeのyamlを書ける
  • (Dockerfileのチューニング)

です。

ただ実際の現場だとあまりDockerに詳しくないバックエンドも結構いるので、優先度としては多少低くても良いかもしれないです。

 

CI/CDは日本語でいうと継続的インテグレーション/継続的デリバリーです。

これは継続的に自動テストやビルドが出来るような環境、また本番環境やテスト環境に反映するときに自動でデリバリーしてくれる環境を作るためのツールになります。

有名なのだと

  • Jenkins
  • Github Actions
  • CircleCI
  • Concourse CI
  • AWS Code兄弟

などがあります。

CI/CDの構築も人によりけりなので、なくても大丈夫ですがあったほうが仕事の幅、報酬が上がるのは間違いないです。

エージェントの人の情報ではCI/CDの経験が重宝されるそうです。

サーバの基本的な知識とは、OSの知識(Linuxなど)、Webサーバの知識(ApacheやNginxなど)、またSSHなどがそれに当たります。

どの程度あると良いか?というのは難しいですが、Apache、Nginx、SSHは当たり前に知っておく、経験しておくのが良いです。

最後にインフラの知識ですが、インフラはAWSやAzure、GCPなどのクラウドが昨今利用されるので、そのうちどれかの知識を持っているとかなり強いです。

利用用途としてはバックエンドは障害対応などで本番ログや、本番のデータベースをみたりまた、APIのチューニングなどです。

またインフラ構築もバックエンドがやるプロジェクトも多々あります。

小さい会社だと大体がそうなっています。

これも人によるものなので、なくても仕事はあると思いますが持っていると仕事の幅が広がります。

 

コミュニケーションスキル

コミュニケーションスキルはどんな仕事をする上でも不可欠です。

特にフリーランスエンジニアの場合はリモート稼働が中心になります。

リモートで適切にコミュニケーションをとるための具体的なスキルを経験談から述べると

  • Slackなどのチャットツールでなにか伝えるときは余計すぎるくらいに丁寧に伝える
  • 1日のやること、やったことをSlackなどで伝える
  • 詰まったことやわからないことは早めにアラートを投げる
  • 伝わりづらいことは積極的にテレカンをするように申し出る

 

僕もフルリモートの環境で日々仕事をしていて、上記を大切にしておくだけで信頼性が上がります。

逆に言うと上記を適切に出来ない方はいくら技術面で優れていても信頼性が損なわれる可能性があるので注意です。

リモートの場合は対面と違って伝わりづらいことが多く認識齟齬起きやすい環境なので、普段よりもよりコミュニケーションを丁寧にすると良いです。

 

新しい情報を取得・学習していくスキル

エンジニアというのは日々めざましく変わる技術トレンドを追っかけて自分に必要なツールを使えるようにする必要があります。

なぜなら仕事の幅が広がるからです。

勉強方法については、詳しくはこちらに書いてありますが、技術を覚えるためになにかプロダクトを作ってみながら覚えるというのがおすすめです。

 

フリーランスエンジニアに必要なその他のスキルとは?

 

フリーランスエンジニアに必要なその他のスキルとは?

今までは技術スキルにフォーカスした話について述べました。

ただフリーランスは個人事業主になるので、会社員だった頃とは違い自分で確定申告や単価の交渉、作業の見積もりなど技術とは関係のないスキルも必要とするケースが出てきます。

実際に必要なスキルを現役フリーランスエンジニアとして説明していきます。

  • 確定申告・社会保険などの税金周りの知識
  • 交渉力
  • セルフブランディング

確定申告・社会保険などの税金周りの知識

フリーランスには欠かせない知識となります。

今までは会社が全て年末調整をしてくれたものを次は実際に自分で対応する必要があります。

ただメリットもあります。

  • 家賃・光熱費・ネット代が経費になる
  • 携帯代が経費になる
  • 仕事で買ったものPCや携帯、その他機械製品などが経費になる

などがあります。

会社員のときよりも大幅に年収が上がっても、会社員のときと同様の所得になり、結果的に税金が下がる点は個人事業主のメリットです。

僕は確定申告は国税庁が出しているツールを使っていつも作成しています。

細かい単語などはわからないこともありますが、一つ一つ調べていくと慣れていくので最初はわからないことだらけですが、自分でやることをオススメします。

またわからない場合は近くの税務署に行くと教えてもらえます

ただどうしても自分でやりたくない場合は税理士や行政書士の方にお願いする形になります。その場合は相場は15万程度と聞いたことがあります(詳しくは調べてください)。

交渉力

フリーランスになると仕事単価を自分で決めることになります。

エージェントを経由した場合でもエージェントに単価を伝えるのは自分自身なので、単価を決めておく必要があります。

単価

基本的にそのプロダクトのスキルを問題なく満たせている場合は時給4000円が相場です。

ただ言語などのよって相場が少し異なるので一概には言えないです。

例えばPHP、Rubyあたりは人が多い分単価が安くなる傾向にあります。

また更にその仕事のwantとなる部分の知識も満たせている場合は5000,6000円と時給を上げても良いかもしれないです。

ちなみに僕の知り合いの凄腕エンジニアの人は単価が大体8000円/時ですw

交渉はどういうときに必要?

基本的にエージェントがいる場合はエンドクライアントと単価交渉や辞める際の報告は全てエージェント経由で行われるので、

気にしなくて良いです(単価はエージェントに伝える必要はあります)。

フリーランスエンジニアで交渉が必要な時は直接クライアントと契約する場合です。

直接契約すると自分の単価を伝える際はもちろん、上げてもらう際、辞める意向を伝えるときも自分でしなくてはいけないです。

その分メリットもあって、エージェント経由よりも単価が高くなります。

当然ですね。

エージェント経由の場合、エージェントがマージンを抜いている分、それを加味すると単価が高くなります、

または時給はエージェント経由の時と同じにすると、マージンが入らない分契約が決まりやすくなります。

また契約書も自分で用意する必要があります!

準委任契約、瑕疵担保責任、請負契約、この辺の単語はよく調べて契約書の雛形を作成しましょう。

こちらの記事が参考になります。

 

セルフブランディング

あったほうが良いという程度で、セルフブランディングは必須ではないです!

セルフブランディングをしておくと良いメリットとしては

  • 直案件が増えるので、単価が上がる
  • Twitterのフォロワーが増えるので、発信力がつく
  • フリーランス友達ができる

直案件が増えるというのは、エンジニア界隈はTwitterをやっている人が多く、Twitterで案件を募集すると大体返信が来たりします。

 

まとめ

今回は「フリーランスエンジニアに必要なスキルとは?現役エンジニアの視点で語る6つのスキル」についてお伝えしました。

実務では実際どれも重要なスキルで特にエンジニアの方はコミュニケーションスキルをおろそかにする方が多いので

フリーランスエンジニアになる方は注意が必要です。

またこの業界は狭いので噂は簡単に広まります。これ本当です。

どこかのクライアントで揉め事を起こすと噂が広まり、仕事が見つかり辛くなるリスクもありますのでご注意ください。

ただクライアントに迎合しろという訳ではないのでご留意ください。

-エンジニアの昨今の働き方を知りたい

© 2021 エンジニア副業道場 Powered by AFFINGER5