未経験からフリーランスエンジニアになれるのか〜あるいはその方法論〜

G's Academyアドベントカレンダー7日目を担当します、東京Lab4の大森です。

プログラミングの基本を学んだ後、（起業の保険も含め）フリーランスエンジニアになろうとしている人は少なからずいると思います。
僕がまさにそうでしたが、果たしてスクールを卒業した程度の力で稼げるのか、はなはだ疑問でしたし不安でした。

今回はそんな方々にお届けする内容です。

# 結論

- ベースの仕事力 + 独学力 + 縁・運があればなれる（詳細は後述）
- このキャリアパスは条件がある程度揃わないと難しいので、個人的には一度どこかで就職するのをおすすめする（筆者は運に救われてなんとかなっただけ）


# なぜこの記事を書こうと思ったか
未経験からフリーランスエンジニアを目指す人や、そうしようか悩んでいる人（=過去の自分と同じ状況の人）に、
なれるという勇気を与えると同時に、現実的な話をお伝えすることで、
未然に失敗を防ぎ、最適なキャリアパス選択を実現してほしいから。

# 前提

### 未経験およびフリーランスエンジニアという言葉の定義

- 未経験 = エンジニアとしての業務経験が全くない状態

- フリーランスエンジニア = 50万円/人月以上の単価で業務委託契約で仕事をする人

### 筆者について

- G's Academyを卒業後、いきなりフリーランスエンジニアになった
- 現在はエンジニアおよびフリーランス三年目
- 複数の案件で80~100万円/人月にて受託開発中

# 事前に絶対考えるべきこと

フリーランスになる動機を必ず考えるべきだ。
なれるかどうか以前に、これが最も大切なことだ。

フリーランスになりたいと言うからには、何かしら理由や目的があるはずだ。

フリーランスという働き方は、合う人には合うが、合わない人にはとことん合わない。

あらためて、自分は何のためにフリーランスになるのか、明確に言語化しておくことを強くおすすめする。

ちなみに、絶対にダメなのは外発的動機だ。カッコよさそうだからとか、独立していると思われたいから、とかそういうやつだ。

なぜなら、外発的動機は環境ありきの変化しやすい動機で、持続性や安定性に欠けるからだ。ただでさえ会社員に比べて仕事が不安定なのに、自分のメンタルやモチベーションが変動するのは、事業を運営する上で極めて危険だ。

逆に、いい理由は内発的動機づけだ。自分のライフスタイルに合っているとか、会社員が合わなかったとか、そういうやつだ。

ちなみに僕の場合は理由は２つあって、

- 一つは消極的な理由で、会社員ができない社会不適合者であったから
- もう一つは積極的な理由で、自分の好きな条件を追い求めやすいからだ。

前者に関してはここでは割愛するとして、後者を説明すると、仕事にはビジネスの内容、仕事を一緒にする人、勤務の時間や場所、開発環境や技術、単価など、様々な要素がある。

そして、こうした条件は実際に経験してみないと自分に合っているかどうかが分からないことも多い。

企業だとどうしてもこうした条件が固定的になりやすいが、フリーランスだと短期間での変更が可能だ。つまり、自分に理想的な条件を探し求めて高速にPDCAが回せる。

# 最低限フリーランスに求められること

## 専門性

大前提として、クライアントはフリーランスの専門性という価値にお金を払う。仮に分からなくても最終的には自分でなんとかできる力が必要だ。

## 経営力

フリーランスとはつまるところ事業者であり、自分一人の会社のCEOをやっているようなものだ。将来的な戦略やマーケティング、ポジショニングなど、ビジネス側面もすべて自分で考えられる必要がある。

## 仕事力

経営力の一部にもなるが、基本的なプロジェクトの進め方や、感情に配慮したコミュニケーションなど、どんな業種・職種でも使うようなスキルやお作法は必須だ。

# 未経験からフリーランスエンジニアになるための条件

以上を踏まえると、自ずとその条件は決まってくる。

## 専門性があること

当然だが、最低限納品するスキルがなければならない。

個人的には、自分で最低限のセキュリティを保って、ユーザーやクライアントが求めるものを納品することができれば、まずは合格だと考えている。

無論、きれいなコードや最新の便利なフレームワークが使えることももちろん重要だが※、まず重要なのは、目の前のお客さんやユーザーに満足してもらえるものを作ることだ。

※とはいえ、コードの保守性を考慮したきれいなコードを書くのは、長期的・規模が一定以上大きいプロジェクトでは不可欠で、
それは駆け出しエンジニアには難易度が高い（知識が足りない）ので、最初は規模の小さいプロジェクトをおすすめする。

## 独学できること

（今どきこれはフリーランスでなくても当然だが）必要になった知識を適宜自分で身につける独学力が必要だ。

技術力を向上させることは言わずもがな、クライアントによりよい提案をするためのビジネススキルなど、広い領域で継続的に学習する必要がある。

## 最低限の仕事力があること

フリーランスに仕事の仕方をわざわざ教えてくれる人はいない。

業務をこなす上で必要なスキルは持っている前提だからだ。

その点で、新卒でいきなりフリーランスになるのはあまりおすすめしない。

少なくとも、僕がなっていたら、今頃はどこにも就職できないような状況になっているように思う。

ロジカルシンキングやドキュメンテーションのスキルは、他人からのフィードバックがないと成長しにくいので、人がフィードバックをくれる環境にいる方がいい。

## コネがあること

冒頭で縁と書いたのはこの部分だ。

自分の能力をある程度評価してくれていて、信頼関係の結べている人から初めての仕事が受注できるのが最も望ましい。

自分も相手のことを知っているので、不確定な要素が減少する上、（相手がまともなら）単価もまともだからだ。

もちろん、レバテックフリーランスなどのエージェントサービスやランサーズなどのクラウドソーシングで案件を獲得することはできる。

ただ、エージェントは未経験は基本的に門前払いだし、クラウドソーシングは単価が安いものが多い。

逆に言えば、このコネがない場合は単価50万円/人月を保証することはほぼ不可能だ。

そして、こうした人に巡り会えるかどうかはそこまでにどんな人に出会ってきたかによるので、言ってしまえば運任せだ。
ただ、後述のように偶発性の確率を高める方法はある。

# 未経験からフリーランスエンジニアになる方法

それでは、上記の条件はどのようにすれば達成できるのだろうか。

一つ一つ見ていこう。

## 専門性をつける

これはもう実践するしかない。プログラミングスクールに行ってもいいし、独学が得意な人は通わなくてもYouTubeやUdemy、ドットインストール、書籍などで十分だと思う。

重要なのはアウトプットで、実際に使えるアプリを一人で作りきれるかどうかだ。

## 独学力をつける

最近は独学の技法も書籍で売っているので、その辺から始めるといいかもしれない。

人生100年時代において、独学力がないと相当キツい。

理想的には大学までに自分にあった勉強方法を、周りの優秀な人から盗んだりして身に着けておくことだ。

ただし、勉強のための勉強で終わらないように注意されたい。

##コネを作る

仕事を発注してくれる人のコネを作るのが最も難しい。

人との出会いは設計不可能であるため、最終的に運頼みになるからだ。

だが、クランボルツ教授の計画的偶発性理論にあるように、その確率を高める工夫をすることはできる。

個人的に振り返ってその確率を高めるのに寄与してそうだと思うのは以下のことだ。

### 起業したりフリーランスになるなど、独立する人が多い場所へ行く

独立している人は仕事を発注または紹介してくれる人になりやすい。

不思議なことに、独立する指向性の人は勝手に集まるものなので、
最初にそういう人たちと仲良くなれば、後は自然と輪が広がっていく。

僕の場合は、それは企業の新規事業部だった。

### 実際にその人たちと仕事をして、信頼を獲得しておく

仕事ができるやつだと思われていれば、たとえエンジニアにジョブチェンジしたとしてもその評価は変わらない。

### エンジニアになると公言しておく

エンジニアになるつもりであることを周りに伝えておけば、紹介が舞い込んでくることがある。

# 最後に

僕は運良く独立してからフリーランスエンジニアになることができたが、その大部分は運やめぐり合わせ、周りの人によって支えられており、いきなりフリーランスエンジニアになるのは実体験としてもあまりおすすめしない。

堅実にフリーランスエンジニアを目指すのであれば、最初にどこかの小さめの事業会社で、どんなに短くても最低1年ぐらいはガッツリとサービスを作る経験を一通りやっておくといいのではないだろうか。

さらには、コードレビューをしてくれるような優秀なエンジニアがいればもっといい。



以上、未経験からフリーランスエンジニアを目指している人の意思決定の参考になれば幸いです！