未経験からフリープログラマーになる方法と案件獲得のための考え方

2018.03.03 2018.03.26フリーランス
未経験からフリープログラマーになる方法と案件獲得のための考え方

未経験からフリープログラマーになれるのか? 結論から言えばなれます。実際、僕はまったくの未経験・実務経験なしの状態からフリーランスになりました。

ただ、ろくに準備もせず、計画も立てずに手探りでここまでやってきたので、それなりにしんどい時期もありました。

今回は僕の経験も踏まつつ、カネなし・コネなし・スキルなしの状態からフリープログラマーになる方法、そしてフリーランスになってからの案件獲得方法や考え方についてお伝えしていきたいと思います。

僕自身、「独立前に知っていたらな……」という内容をまとめてあります。

  • これからフリーランスになりたい
  • プログラミングに興味がある
  • 会社員として働いているけど違う可能性を試してみたい

という人は是非、目を通して頂ければうれしいです。

目次

フリープログラマーになりやすい時代

インターネットが当たり前、そしてクラウドソーシングという考え方が一般的になった現在は、フリーランスとして働きやすい時代になったと言っていいと思います。

SNSの普及で人とつながりやすくなった

一昔前であれば、まったく人脈も状態で独立するなんて考えられなかったかもしれません。

しかし現在はFacebookやTwitterなどのソーシャルメディア(SNS)の普及によって、人とつながりやすい環境が整っています。

こうした仕組みを有効に活用することで、「人脈ナシ」の壁を越えることができます。

リモートワークという働き方が一般的に認知されてきた

ノマドワーキングに代表されるように、オフィスではなく自宅やカフェなどで仕事をする「リモートワーク」という働き方が一般的に認知されてきました。

そのため、仕事を発注する側(=クライアント・制作会社・広告代理店など)にも、リモートワークに理解のある会社が多くなってきています。

もちろん、フリープログラマーになってクライアント先に常駐という働き方も選択肢としてはアリです。ただ、こうした「働き方の幅」があるのは、フリーランスにとっては追い風になります。

プログラマーの深刻な人手不足

もう何年も、プログラマーは深刻な人手不足の状態が続いています。

つまり、スキルがあればそれに応じた仕事は比較的とりやすい状況であると言えます。

もちろんプロとしてクライアントの要望に応えられるような能力は必要になりますが、案件の内容によってはそこまでスキルの必要ないものもあるため、そういうところを取っ掛かりとしてフリーランスとしてデビューするのもアリです。

比較的高単価の案件が多い

これは上で挙げたプログラマー人口の不足も関係がありますが、プログラミング案件は比較的高単価なものが多いです。

後ほどお話しするクラウドソーシングサービスなどの掲載案件を見てもらえると分かりますが、デザイン案件と比べてもプログラミング案件の単価が高いのは一目瞭然です。

これには、デザイン制作ソフトさえあればとりあえずは「デザイナー」として活動できるのに対し、プログラミングの習得がハードルが高いことも関係しています。

※いちおう言っておきますが、「ソフトさえあればデザインは誰でもできる」と言っているわけではありません。デザイナーもスキルやセンスのある人は高単価で仕事を獲得しています。ただ、ソフトの操作さえできればとりあえずは「描ける」デザイナーに対し、プログラマーはソフトの操作の前に言語の習得というハードルがあるという意味です。

フリープログラマーになるための下調べ

現在はフリープログラマーになりやすい背景があるというお話をしました。

それでは、フリーランスとして成功するためにどのようなことをおさえておくべきなのでしょうか? ここでは、独立前に調べておいた方がいいことをいくつか挙げてみます。

稼げるプログラム言語はどれなのか?

一言で「プログラム言語」といっても、作りたいものによって種類はいろいろあります。

制作にはプログラム言語ではありませんが、HTML/CSSを習得することで、ウェブサイトを制作することができるようになります。しかし、サーバー構築やデータベースを利用したサイト構築にはPHPやMySQLなどの知識が必要になります。

またiOSアプリの開発にはObjective-CまたはSwift、オンラインゲームの開発にはC++やC#が必要になってきます。

ここでは、代表的なプログラム言語をいくつかご紹介します。

PHP

Web開発に使われるプログラム言語です。CMSとしてもっとも大きなシェアを誇るWordPressもPHPによって開発されています。

PHPはHTMLの中に埋め込むことができ、サーバー上に構築したデータベースから情報を読み込んでWebページを生成したりします。

PHPが実際の現場でよく使われる場面としては、メールフォームの作成や予約システム、会員機能の実装などです。

JavaScript

JavaScriptは、主にWebブラウザ(Google ChromeやFirefoxなど)上で動作するプログラム言語です。

Webページに動きをつけたり、ユーザーの操作によってページの表示を変更したりという場合に使われます。

フォームの入力ミスをチェックしたり、ユーザーの注意を引くときに利用できるポップアップを表示したり、ウェブサイト上で画像をスライド表示させたりボタンのクリック時に動き(アニメーション)をつけたりということができます。

MySQL

MySQLは正確にはプログラム言語ではなく、データベースを管理するシステムです。

PHPでのサイト構築の場合、ほぼ確実にデータベースとの連携が必要になってきます。そういった事情もあり、PHPとセットで習得しておくと案件獲得にも非常に有利です。

大規模なWeb開発案件では、データベースを利用することがほとんどですので、単価の高い案件を獲得するには必須スキルとなります。またWordPressでもデータベースを利用していますので、基本的なところだけでも習得しておくと対応できる幅がグッと広がります。

Java

Javaはメジャーなプログラム言語の一つで、汎用性の高さから非常に人気のある言語です。

そのため、利用される場面が非常に多く、習得することで案件獲得につながりやすいと言えます。Web開発のほか、業務システムやAndroidアプリの開発などにも利用されています。

汎用性が高いため、大規模な開発案件から比較的規模の小さいWebアプリの開発まで幅広く利用されていますが、一方でPHPなどに比べ初心者にとって難易度が高く、学習環境が十分でないという声もあります。

C言語

プログラムと言えばC言語、というくらいメジャーなプログラム言語で、PHPやRuby、Pythonなどの元となっているものです。また、C++やC#といった「C言語の拡張版」ともいえる言語もあります。

そのため、C言語を習得することで、他のプログラム言語を習得するときに役立ちます。

C++

C言語にオブジェクト指向を追加したプログラム言語で、C言語よりも効率的にプログラミングができることが特徴です。

スマホアプリ・ゲームの開発、業務システムの開発に利用されています。あなたも使っている(かもしれない)Google ChromeもC++で開発されています。

以前はWebアプリの開発にもよく使われていましたが、現在はPHPやpythonなどのWeb開発に特化したプログラム言語に取って代わられています。

C#

マイクロソフトが開発したプログラム言語で、Windows向けアプリケーション開発のほか、スマホアプリやWebアプリ、ゲームエンジンUnityを使えばゲーム開発もできるなど、幅広い案件に対応することができます。

名前からしてC言語の派生っぽいですが、構文に一部影響はあるものの、言語としてはまったく別物です。

C#を習得するメリットとしては、マイクロソフトが提供しているVisual Studioという開発環境を利用することで、作業効率が大きく上がることです。

Objective-C

Objective-Cは、C言語をベースにSmalltalkを参考としたオブジェクト指向を取り入れたプログラム言語で、主にiOSアプリの開発に使われます。C言語と互換性があるため、C言語の記述をそのまま利用できます。

同じようにC言語にオブジェクト指向を持たせたものにC++がありますが、成り立ちや言語仕様が異なるため、まったく別物と考えた方がいいでしょう。

ちょっと前までは「iOSアプリ開発=Objective-C」というイメージがありましたが、現在はSwiftという新しい言語での開発も増えつつあります。

Swift

Swiftは、iOSなどアップル社製OS上で動くアプリケーションの開発に利用される新しい言語です。

従来iOSアプリの開発に用いられてきたObjective-Cの弱点をクリアする目的で開発されたプログラム言語ですが、Objective-CのベースとなっているC言語に比べ圧倒的に歴史が浅いため、支持する人が多くいる一方でObjective-Cに出戻る人もいるのが現状です。

とはいえ、Apple社が開発している言語ということもあり、将来的にはObjective-CからSwiftへの移行というのは自然な流れだと考えられます。そのため、iOSアプリ開発に興味があるのなら習得しておいて損はない言語と言えます。

Python

PythonはC言語をベースに作られたプログラム言語で、Webアプリやデスクトップアプリ、ゲーム、AIの開発に利用されています。

C言語をよりシンプルに使いやすくした言語で、シンプル(=書きやすく読みやすい)ということで、大規模な開発などコードが複雑になりやすい案件で需要が大きくなっています。

最近何かと話題になっている人工知能(AI)の開発にも利用されているため、今後さらに人気も需要も大きくなると予想されています。

成長している市場や需要のありそうなプログラム言語は?

成長中の市場や人手の足りていない分野なども調べておくといいでしょう。

最近では、仮想通貨に採用されているブロックチェーンという技術に注目が集まっています。ブロックチェーン技術の開発にはC++やJava、pythonやGo言語などが使われています。

また、上で挙げたAIの分野についても今後急速に拡大すると予想されます。それを見越して今のうちにPythonなどを習得しておくと、将来的に収入を大きく伸ばせる可能性もあります。

現状需要が大きさ、習得のしやすさという点では、PHPも外せません。

現在CMSのシェアでトップを誇るWordPressがPHPで開発されているように、PHPを習得しておけば一般的なウェブサイト制作案件はほぼカバーできると言ってもいいかもしれません。

以上のように、需要と供給のバランスや今後拡大する市場に合わせてプログラム言語を習得していくのも、フリーランスとして成功するためにはアリだと思います。

リスクを把握しておく

フリーランスになれば、当然毎月決まった額の給料をもらうではありません。

頑張り次第で収入を大きくできる反面、ビジネスがうまくいかなかったり予期せぬトラブルに見舞われた場合には一気にピンチに立たされます。

またサラリーマンの場合は源泉徴収など納税に関する事務作業を会社が代わりにやってくれますが、フリーランスは自分で書類を作成して確定申告する必要があります。

そのため、サラリーマンであれば手取りはそのまま「手取り」ですが、フリーランスの場合はそこから所得税などを支払うため、計画性を持ってやり繰りする必要があります。

さらに、サラリーマンであれば健康保険や退職金、有給休暇、育児休暇などの福利厚生制度を利用できますが、フリーランスの場合はそうした制度を利用できません。

また、経済的な信用性も低くみられることもあり、ローンやクレジットカードの審査に通らないといったケースもあります。

フリーランスは自分の収入や働き方を自分で決められる反面、現在~将来にわたって誰も守ってくれないというリスクがあります。

最近は特に安易にフリーランスになることを進める風潮がありますが、メリットがある反面、決して無視できないリスクがあることは把握しておいた方がいいと思います。

副業からはじめてみるのもアリ

上記のようなリスクがある以上、勢いだけでフリーになるのはある意味ギャンブルだといえます(偉そうなこと言っていますが、僕は1度無計画に独立して案の定廃業し、お金を貯めて再度独立した過去があります)。

ですので、「自分はフリープログラマーとしてやっていけるのか?」と試す意味でも、はじめは副業からやってみるのもアリだと思います。

後ほど紹介するクラウドソーシングサービスには、比較的手軽な内容の開発案件が多くあります。その分単価も低いですが、受注から納品までの流れを把握することもできますので、一度は試してみみることをおすすめします。

僕の知り合いで、副業で開発案件受注をはじめて月100万くらい稼げるようになってから独立したという人もいます。

あまり突っ込んで聞いていませんが、そういう場合は継続的に依頼してくれるクライアントが増えたり、保守管理などで数ヶ月~数年単位で契約している場合が多いかと思います。

プログラムはどうやって習得する?

プログラムの習得には、プログラミング学習サイトがおすすめです。

いろんなところで紹介されていますが、やはりProgateドットインストールが間違いないかと思います。

個人的にはProgateの方が要点がまとまっており、実際に手を動かしながら学習を進めていけるので習得しやすいかと思います。

なお、ここで大切なのは、完璧にマスターする必要はないということ。

そもそも、学習サイトで一通り学んだだけで完璧になるほど、プログラミングは簡単なものではありません。

ここではあくまでも、土台となる知識を積み上げることを第一に考えてください。

実際のところ、実務ではプログラムを0から書くことはあまりありません。

ほとんどのエディターには入力補助機能がついていますし、自分がよく使うようなソースコードはストックしておいて、都度コピペで効率的に作業を進められるようにしましょう。

書籍で学習する場合は、自分に合ったものを

プログラミング学習サイト以外では、やはり書籍(教本)での学習がおすすめです。

書籍での学習の最大のメリットは、自分のペースで進められることです。読み返したいところは簡単に見つけられますし、大事なところにはポストイットを貼っておけばすぐにページを開けます。

そのため、プログラミング学習のための書籍は電子書籍ではなく紙の本の方がおすすめです。

僕は移動が多いため、本は基本的にKindleですが、仕事関係でよく読み返すものは紙と電子書籍両方持っています。

また、学習に使う書籍は、必ず中身を確認してから買うようにしましょう。

いくらAmazonで評価が高くても、あなたに合うかは別問題です。こればっかりは実際に書店で目を通して、一番しっくり来たものを使うことをおすすめします。

案件獲得方法をレベル分けしてみた

レベルというと語弊があるかもしれませんが、フリーになりたて~ある程度安定して受注できるようになるまでの案件獲得方法についてまとめてみました。

レベル1:人脈ナシで、スキルは初心者+αレベル

人脈がなくスキルにもあまり自信がないうちは、まずは1件でも多く案件を受注してみるのが近道です。

先ほども言ったように、実際に仕事を進めることで流れを覚えることもできますし、やってみることで初めて分かることもあります。

クラウドソーシングサービスなどで低単価の案件から

クラウドワークスランサーズなどのクラウドソーシングサービスであれば、単価数万円~の難易度低めの案件が多数掲載されています。

まずはその中から、自分にできそうなものを選んで応募してみましょう。作業に掛かる時間も多くないので、副業からはじめるには最適です。

運がよければ、クラウドソーシングサービスで出会ったクライアントから継続して依頼をもらえることもありますので、まずは1件でも多く応募してみてください。

あと、この頃は仕事を獲りたいがあまりに「何でもやります」などと言ってしまう人がたまにいます。僕もたまに外注さんを募集することがありますが、そういうことを言う人にはちょっと依頼しづらいというのが正直なところです。

そもそも何でもできる人などそうはいないですし、ちゃんと考えもせずに「何でも」と言ってしまうところに責任感のなさを感じてしまいます。

それよりは、「経験を積みたいので」など正直に言ってくれる人の方が頼みやすいですし、外注を依頼する側もフォローしやすいのではないかと思います。

友人・知人に声を掛けてみる

仕事につながるような人脈はなくとも、誰にでも友人・知人はいるでしょう。

実際に会った人たちに、自分が独立したこと・仕事を探していることを伝えてみましょう。すぐに仕事の話が舞い込むことは少ないかもしれませんが、知り合いを通しても紹介なので成約しやすいのが特徴です。

僕自身、学生時代の友人や以前の職場の人からクライアントを紹介してもらったことがありますし、現在でも定期的に依頼を頂いています。

レベル2:平均以上のスキルがついた、でも売上はもうちょいレベル

案件をいくつも受注していくと、自分の得意なこと・不得意なことが見えてきます。

その上で得意分野をさらに伸ばしたり、弱点を克服したり、どうしても苦手が部分はお願いできるようなパートナーを見つけたりしながら、自分なりの働き方を模索しましょう。

この時期一番よくないのは、スキルアップをやめてしまうことです。

だんだんスキルが身に付いてくると、ある程度案件が獲れるようになってきます。そのためそこで満足してしまう人が結構いますが、フリーランスのリスクを考えれば、収入は多いに越したことはありません。

サラリーマンの月収30万円とフリーランスの月収30万円は意味が違います。サラリーマンは月収で言えば30万円かもしれませんが、その他にボーナスや福利厚生などもあるため、年収で言えばもっと高くなります。

それに対してフリーランスは月収30万円であれば、そこから所得税や住民税、国民健康保険料などを支払う必要があります。

ちょっと厳しいことを言いますが、サラリーマン時代と同額稼げるようになって安心していてはまずいです。むしろまだ危機感をもって動き回る時期だと思います。

高単価な案件を扱う案件仲介サービスを利用する

クラウドソーシングサービスでの案件獲得に慣れてきたら、もう少し単価の高い案件情報サイトから案件の獲得をしてみましょう。

クラウドテックレバテックフリーランスが有名です。残念ながらレバテックフリーランスは関東圏の案件しか取り扱っていないため、それ以外の地域の人はクラウドテックを利用しましょう。

なお、こういった高単価の案件を仲介するサイトの場合、ほとんどがクライアント先に常駐する形で働くことが条件に盛り込まれています。

ただ、交渉によって在宅での作業を認めてくれるところもありますので、要望として伝えてみるといいでしょう。

制作会社に直接コンタクト

Web制作会社など、自社サイトで外注プログラマーを随時募集しているところもあります。

中には返信してくれないところもありますが、ほとんどの会社は誠実に対応してくれます。僕もサイトを見て魅力を感じたところにはどんどんコンタクトをとるようにしています。

自社サイトはやはり、その会社ごとのカラーが色濃く出ているため、そこで感じるものがあるときは長い付き合いになる会社が多いです。担当の方がとても丁寧に対応してくれたり、中にはプライベートな付き合いに発展する場合もあります。

その反面、会社サイトには立派なことが書いてあっても、外注を使いっ走りか何かと勘違いしているような体質の会社もあります。こればっかりは実際に仕事を請けてみないと分かりません。運悪くそういう案件を受注してしまった場合は、今請けているものに関しては責任をもってやり切って、そのあとは断る方がいいと思います。

おすすめしないのが、「でも、お金のためだから……」と考えて嫌々受注してしまうことです。

プログラマーが請けるような開発案件は、いくら短くても1ヶ月くらいはやり取りをします。そのため、その間ずっと嫌な気持ちで過ごすことになります。

僕自身も経験がありますが、精神衛生上ほんとによくありません。そんなお互い尊重できない関係にしがみつかなくても、まともな会社はいくらでもあります。

IT業界はブラックな会社が多いとも言われますし、たしかにスケジュール的にしんどいこともあります。でもその中で最低限の礼儀を忘れずに対応してくれるディレクターはたくさんいます。

嫌な仕事で自分をすり減らすより、そういう気持ちよく仕事ができる人と出会った方が長くお付き合いできますし、何より納品物の質も上がり、クライアントも喜ぶという好循環に入れます。

レベル3:スキル平均以上、継続的に受注できているレベル

フリーランスとして働く中で、人脈は自然と広がっていきます。そしてどういう人脈を築くかで、あなたがフリーランスとしてどのような仕事をして、どのように働くかが決まるといってもいいかもしれません。

既存クライアントや紹介などで依頼が来るように

人脈ができてくると、必死になって案件獲得に動き回らなくても継続的に案件依頼が舞い込むようになります。

それは頻繁に連絡を取り合うフリーランス仲間だったり、継続的に依頼をくれる制作会社さんだったり、忘れた頃に連絡をくれるクライアントさんだったり、本当にさまざまです。

時期のよっては案件が重なり、何日もろくに寝れないこともあるかもしれませんが、まったく仕事がないときよりは幾分気持ちの余裕が出てくるかもしれません。

ただ、そこにあぐらをかかず、声を掛けてくれることが当たり前でないことを忘れないようにしたいです。

ひとつひとつの案件に丁寧に取り組むことが、何よりの信用につながると思います。

また、スケジュール的に余裕がなかったり、クライアント都合でどうしても仕様が変更になったりすることもあります。それは仲間のフリーランスや、制作会社やクライアントの担当者さんの立場では避けられないこともあります。

僕自身が発注する側の場合もありますが、そういうときは心苦しいと思いつつも、修正依頼を出さざるをえません。

そういうときに気持ちを汲んで対応してもらえると、ほんとにホッとします。次からはなるべくこういうことがないようにとか、新規の案件を依頼することで埋め合わせをしようという心理は自然と働きます。

損得勘定で付き合うわけではありませんが、しんどい場面でも、できるだけお互い気持ちよく仕事ができるように考えて行動することで、人脈の質を高めていけると思います。

フリープログラマーとして収入を増やすための考え方

フリープログラマーとして独立するからには、収入を大きく増やしていきたいと考えるのは自然なことです。

ただ、同時に対応できる案件数が少なかったり、受注する案件の単価が低ければ、収入は頭打ちになってしまいます。

フリーランスとして収入を増やしたいなら、売上が単価と案件数によって成り立っているという点に立ち戻ってみましょう。

売上=案件単価×案件数

つまり、売上を増やすには、案件ごとの単価を上げるか、同時に対応できる案件数を増やすことが重要になります。

案件ごとの単価を上げるには?

案件の単価を上げると言っても、簡単なことではありません。

「次から料金を2倍にします」と言っても通用することはそうそうないでしょうし、品質が分からないのに料金だけ高くなれば成約率は大きく下がるでしょう。

最近では「自己ブランディングで値段を上げる」みたいな風潮がありますが、僕は何を置いても自分の作るものの品質を上げる、つまり自分のスキルを上げていくことが大事だと思っています。

最近、Twitterで「大した能力がなくても『パッケージ化』が上手ければビジネスになる」というつぶやきを見かけました。

僕はこういう考え方には違和感がありますし、こういうのに影響されて外側ばかり気にする人が増えるのに危機感もあります。

いくら見せ方がうまくても、肝心の中身が疎かであればすぐにボロが出ます。「メッキがはがれる」なんて言葉が昔からあるくらいで、いくらきれいなパッケージで包んでも中身が大したもんじゃなければ価値なんてありません。

また、見せ方ばかりにこだわって中身をないがしろにするのは、クライアントの利益を損なうことにもつながります。パッケージに魅力を感じて買った人は、それ相応の中身を期待してお金を払うわけですので。

自己をブランディングしていくこと自体は否定しません。でも、それに見合ったサービスを提供する姿勢は最低限必要だと思います。

「大した能力がなくても~」なんて態度は、正直いかがなものかと思います。

受注件数を増やすには?

受注件数を増やすのは、実は単価を上げるよりもハードルが低いです。

特にプログラマーの場合、一度書いたコードはストックしていけます。そういう過去のソースコードを自前のフレームワーク化していくことで、作業効率を大幅にアップすることができるわけです。

「フレームワーク化する」とは、よく使う機能などを簡単に流用できるような形で、1つのファイルとしてまとめておくことです。

そうしておくと、コピペですぐにその機能を実装することができるので、毎回ゼロからプログラミングするのに比べて大幅に時間的コストを削減できます。

フレームワーク化で効率を上げれば、同時に対応できる案件数を増やすことができます。さらに外注化までできれば、毎月数件でヒーヒー言ってたところを十数件抱えることができるようになるでしょう。

まとめ

以上、思いのほか長くなってしまいましたが、未経験からフリープログラマーになる方法と案件獲得のための考え方をお届けしました。

正直ここまでぶっちゃけていいものかとも思いましたが、せっかく書いたし自分の経験を踏まえたものなので、これからフリーランスになりたい人・なりたての人にはちょっとは役に立つかと思い公開します。

実務経験があるか否かは、フリーランスとして成功するかとはあまり関連がありません。

もちろんスキルがあるに越したことはないですが、いくらスキルがあってもクライアントの潜在的な要望をくみ取ることができなければフリーランスとしてやっていくにはなかなか厳しいと思います。

そして、そこをくみ取れるかどうかは、単に実務経験があるかでは測れないことが多いです。

いくらプログラムが書けても、クライアントが求めていることが分からなければ仕事にはなりません。会社であれば上司や同僚がフォローしてくれるかもしれませんが、フリーの場合はそうはいきません。

逆に言えば、クライアントの潜在ニーズが分かれば、現時点でのスキルが足りなくても情報を集めることで、そこにたどり着くことができます。

「未経験だから……」と及び腰にならず、やりたいなら是非チャレンジしてみてください。

WordPressテーマ『HIGHLAND』公開しました

WordPressテーマ『HIGHLAND』を公開しました

このブログで紹介しているカスタマイズを、これでもかと盛り込んだ高性能なテーマになっております。商用・非商用問わず無料、是非ご利用ください。

柴田 竹思

柴田 竹思

日本&ベトナム二拠点生活中のWeb系フリーランス。最近は育児6:仕事4のバランスで生活してます。これでもかってくらい奥さんの尻に敷かれてる座布団系男子です。

プロフィールはこちら