時間がくねくねしてなくてよかった

答えは人それぞれですが、何かを考えるきっかけになるようなブログを目指してます

未経験でフリーランスのWebエンジニアで稼ぐための手順

フリーランスのWebエンジニアとして稼いでいこうという試みを始めたので、その進行計画を共有したい。フルリモートで稼ぎたいと考えている。何かに取り組み始める際に悩むのは、いかに時間と金を無駄にしないで効率よく作業を進めるかであると思うので、これから始めようとしている人は比較材料として利用して欲しい。

f:id:yojiro_s:20181108223135j:plain

MacBookProを購入する

プログラミングを勉強しようと決めてはじめに考えたのが「とにかく挫折は避けたいな」ということだった。思い立った気持ちが無くならないうちにMacBookPro(13インチ)を購入した。プログラミングの開発環境にはMacが取り組みやすいという点と、疑問点などをググる時にもMacを想定したものが多いという情報から、勢いで買いに行った。これは大正解で、これまでWindowsを使用していたが、もうMacは手放せない状況となっている。

 

まず、マウスがいらない。トラックパッドがかなり優秀で操作しやすい。Windowsの使用していたものに比べるとかなり領域が広くて、はじめは「こんなに広くてなんか意味あるのかな、早くマウスを買おう」などと思っていたのであるが、実際に使い始めてみると広い理由もわかった。ズームもしやすいし、ドラッグもしやすいし、何よりも広いからスイスイ動く。感度も抜群。マウスがいらないから持ち運びの荷物が減る。バッテリーの持ちもかなり良い。普通に10時間とか平気で使用できるので、外出時に充電器を持ち歩くこともなくなって、さらに荷物が軽い。喫茶店などで電源を探す必要もなし。加えて薄くてかなり軽い。タイピングもこれまで触ったパソコンの中で一番ストレスなくできる。タイピングした時の音が心地よいのもいい。デザインもシンプルで、USBポートもないし、DVDプレーヤーなんかもついていない。ウイルス感染リスクも低い。

 

とにかくスイスイサクサク動くので、全くストレスを感じない。プログラミングとか関係なしに間違いなく扱いやすいと思う。

 

 

無料体験でプログラミングの基礎を学ぶ

Macを購入してからすぐに、プログラミングスクールのテックアカデミーの無料体験を申し込んだ。完全オンラインのスクールで、ネットから簡単に申し込みが出来て、すぐに利用可能となった。プログラミングの基礎となるHTMLやCSSの講習が実際に体験用カリキュラムとして用意されていて、ブラウザ上で実際にコードを入力して学ぶことができる。プログラミング言語であるJavascriptもカリキュラムが用意されていて実際に体験することができる。Javascriptでは与えられた課題のコードを実際に入力して、エンジニアから合格判定をもらえるという無料とは思えないカリキュラムとなっていた。そして、1週間の間、無料で午後3時から午後11時まで現役のエンジニアにチャットで質問ができる。プログラミングの基礎を1週間でそこそこ習得することも不可能ではない。さらに無料で30分のカウンセリングもできるので、学びたい言語や他のカリキュラムについて質問をすることもできる。勢いで無料体験を申し込んで損をすることは何もないので、気になっている人はさっさと受けてしまうことをおすすめする。

 

 

プログラミングの概念について書かれた本を読む

無料体験でプログラミングの世界に触れた後は、プログラミングの概念について学んだ。読んだ本は『これからはじめるプログラミングの基礎の基礎』と『プログラミング入門講座』の2冊。プログラミングを概念的に学ぶことで、プログラミングを学ぶことの意味を自分で噛みしめることに成功した。少なくとも「無駄ではないな」という実感を得ることが出来た。どのような仕組みなのか、何ができるのか、読んでいるだけで楽しいし、ITに対する理解にも繋がると思う。プログラミングがただ無機質なコードを延々と書くという苦行ではないということと、学ぶことで得られる論理的思考や問題解決能力など、良い面を知ることができる。プログラミング言語とは、コンピュータに命令するための言語だが、種類は多い。英語やスペイン語を選んで学ぶように、プログラミング言語も、自分が何をしたいか、どのような価値を生み出したいか、どのようなライフスタイルで働きたいかで選択が分かれる。だから概念は学ぶ必要がある。

 

勉強する言語を決める

ある程度、概念について学んだら、どの言語を学ぶかを絞っていく。私がカウンセリングで現役のエンジニアから受けた指摘では「まずは一つの言語を極めた方がいい」ということだったので、とにかく一つを決めなくてはならなかった。プログラミングは言語が豊富で、何を開発するかで分かれるということは前述したが、これは本当に迷った。学ぶ言語はきちんと決めた方がいいだろう。ネット上にはそれぞれの言語で制作できるものの情報などが豊富なので、しっかり読んで納得できるまで考えた方がいいだろう。私はリモートとして副業で稼ぐ、というのがそもそも勉強しようとした理由なので「Ruby」と「PHP」という言語で迷っていた。二つともWebアプリケーションを制作するのに向いている言語で、クラウドソーシングなどの仕事を見てもリモートの案件は豊富だった。

 

学ぶプログラミング言語を選択する

Rubyは日本人が開発した言語で、最近テックアカデミーではダントツで多く学ばれている言語ということで揺らいだが、それでもいまだにWordpressにも使われているPHPの方がリモート案件が全然であったので、PHPを学ぶことに(暫定的に)決めた。習得しやすく学習コストが低いということと、分業しやすく分担される仕事が明確で個人で稼いでいくにはやりやすいという特徴も背中を押した。PHPはプログラミング言語ではない、といったような内容に近い批判的な意見もネット上に目立ったが、「これからも安定した案件数が見込める」というカウンセリングの情報を元にPHPを学ぶことにした。Rubyはフリーのサーバのセットアップなど開発環境もPHPよりも整っていないようだった。

 

私は「はじめてのプログラミングコース」の4週間コースをテックアカデミーに8万9000円払って申し込んだが、2週間ほどで終わってしまった。正直、物足りなさを感じたが、今考えてみればカリキュラムがしっかりしていて、細かくチャットで確認できたからサクッと終わらせることができたと思う。とりあえずソッコーで挫折という形は免れた。今考えればだが、HTMLとCSSは独学でなんとか勉強して、PHPコースなどを受ければコスパはもっと良かったかなという印象も持っている。しかしカウンセリングに対応してくれた方がとても親身に相談に乗ってくれ、どのように作業を進めていけばいいかをイメージすることができたので、全然良い投資だったとは思う。とりあえず独学をして、つまづいたら他のコースで学びなおすのも全然ありだなと考えている。

 

環境構築

「フリーランスで食べていくにはサーバの理解が欠かせない」というアドバイスをカウンセリングでもらった。サーバーとはWebサイトの構築には欠かせないデータの送受信や管理をするもので、サーバー業者と契約してレンタルする必要がある。テックアカデミーではクラウド上でプログラミング環境を構築していたので、すぐに実践することができたが、フリーでやっていくにはコストが高いので、開発環境を整える必要がある。本格的にはじめるなら「エックスサーバー」で、容量もスピードも申し分なさそうだが、初期費用が税抜き1500円(2018年11月8日現在はキャンペーン中で通常は税抜き3000円)でレンタルは税抜き900円からのようだ。さくらサーバが初期費用が税込み1029円でレンタルは税込み129円からだった。どちらかを選択すれば問題ないだろう。

 

次に、MAMPという環境構築に必要なソフトをインストールする。MAMPは「Macintosh」「Apache」「MySQL」「PHP」の頭文字から構成される。つまり、Macに適していて、「Apache」というWebサーバー(HTTPサーバー)を使用でき、「MySQL」というデータサーバーを使用でき、PHP言語を扱えるということだ。すなわち、これ一つでPHP言語での開発環境が全て揃うということだ。この作業を「ローカル環境の構築」という。つまり自分のPC上にサーバを構築できてプログラミングできるのだ。しかし公開するにはレンタルサーバーが必要なので、さくらサーバーなどと契約する必要がある。クラウド上で開発環境を整えることと比較して、ローカル上(自分のPC)で構築するという風に覚えておくと理解が進む。MAMP上でWordpressもインストールが可能となっている。

 

また、これまでクラウド上で作成したファイルがあるのなら、MAMPにアップロードすることで引き続き使用することが可能となっている。

 

これでPHPによる基本的な開発環境は整う。

 

MAMPではなくVagrantとVirtualBoxというソフトでローカル環境構築をした。エラーになって苦労したので、そのことについては記事にした。

 

www.mapp.jp

 

 

徹底的に独学

環境を整えたら徹底的に独学で学ぶ。動画(ドットインストールなど)や本などである程度独学で学べる環境は整っている。スクールで感じたことだが、誰かに聞く時間があればググった方が勉強になることが多い。わからないときは、どこがわからないか聞くスキルも必要なので、結構自分で調べた方が早いときもある(しかし現役のエンジニアの回答が信頼できるものであることは大きいし、発見もあるし、学び方の考え方を学べるのは大きい)。今はネット上に情報が充実していて、自分で調べられることも多く、独学でもなんとかなるだろう。とにかく「ググる能力」と「探る能力」はプログラミングには必須であると実感した。学び方のコツを早めに盗み、独学で自ら試行錯誤するのが良い手段のように思える(エンジニアのプロフィールとかみるとプログラミングを独学で学んだとかが目立つ気がする)。しかし、独学で一番気をつけたいのはモチベーションの維持なので、スクールを利用するメリットはかなりある。また、アウトプットすることで整理しつつ、モチベーションを保つことも重要となる。アウトプットしながらプログラミングを学ぶことの大切さはカウンセリングでも言われたことだ。「GITHUB(ギットハブ)」という開発者同士がコードを保存・共有するプラットフォームや、「Qiita(キータ)」という開発者同士が情報を投稿して共有できるプラットフォームなども存在しているので、スキルアップには欠かせないだろう。効率アップのためにコピペして使用する雛形が多く存在する「フレームワーク(LarabelやCakePHPなど)」などもPHP開発には欠かせないということなので、その学習も必要となってくる。

 

デモサイトを作る

独学で学ぶだけでは飽きてしまうし、目的を持って意欲的に学び、さらに仕事獲得に繋げるためにデモサイトなどを作る。ポートフォリオサイト(実力を示すために作る仕事獲得のための自分のサイト)も作るべきだろう。とにかく「こういうのを作れます」というのを見せれないと仕事は獲得できないし、営業活動すらできない。自分の作りたいように作ってもいいだろうし、徹底的に需要ありきで作り込んでもいいと思う。どちらがモチベーションが上がるかで考えてもいいだろう。プラスアルファのスキルなどあれば、それをのぞかせる様なうまい方法も考えた方がいい。とにかく営業ツールとして徹底的に作りこむ必要がある。

 

クラウドソーシングでプログラミング以外の案件で実績

クラウドソーシングでは、実績を積んでいくことで信用が増えていく。初めからプログラミングの仕事を獲得するのではなくて、他のできそうな仕事からこなしていくという方法がある。例えばライティングが得意ならその案件をしっかりこなし、目に見える実績を積んでいくことで、クライアント側からの信用が増すからだ。プログラミングの案件を獲得できる確率も上がるだろう。アンケートの様な単価の低いものから始めたっていいと思う。その様な小さな仕事こそ丁寧にやるからこそ、人の信用は獲得できるのではないかと思う。高評価を積み上げて、並行してプログラミングのスキルをあげて仕事を獲得していけばいい。

 

勉強会で横の繋がり

クラウドソーシングだけに頼らず、自らの足で営業活動してもいいだろう。「横の繋がりが結構仕事につながる」という話をフリーのエンジニアからもらえたので、積極的に知り合いを増やすのは悪くない方法だと思う。しかし、自分でこういうものが作れるということをきちんと示せる状態でなければ話に時間を割いてくれた人の時間をただ奪ってしまうことにもつながるだろうし、そもそも信頼など築けないだろうから、まずは確かなスキルが必要なのはいうまでもないだろう。一方、実践こそ最強の学習方法である、という考え方にも大いに賛成できるので、ある程度の積極性と飛び込む勇気は必要であると思う。そのバランスを見極めて行動したい。特に鼻息を荒くして勉強会に参加する必要もなく、普通に参加して普通に交流しておいて横の繋がりを作っておくことは大切かもしれない。他に参加する人にも同じ様な考えの人も多いだろうし、クラウドソーシングで自分が獲得した案件で自分が苦手な場所やできないことを出会った人にお願いするというパターンにも対応できるだろう。

 

交流会で仕事探し

勉強会と同様に異業種交流会なども利用できるかもしれない。これはいうまでもなく確かなスキルが必要だろう。自分のスキルというカードを持っているから、お互いのカードを切り合い、WinWinの関係になることができるからだ。実際に顔をみて仕事を任せたいという人もいるだろうし、仕事以外の人間性もアピールすることもできるだろうから、クラウドソーシングとは違った仕事の探し方ができると思う。Web上とリアルでのバランスの良い営業が必要であるかと思う。

 

クラウドソーシングでプログラミング案件獲得を狙う

クラウドソーシングでプログラミングの仕事が獲得できればフルリモートでの働き方も現実味を帯びてくる。案件にも寄るかもしれないが、リアルでの経験が先に立つ可能性の方がやはり多いとは思うので、リアルでの実績を積み上げて獲得を狙いたい。

 

信頼と実績を積み上げていく

フリーで稼いでいくというのは信頼が全てであると思うので、小さな仕事でもきっちりやり、スキルだけではなく、信頼で仕事をもらえる様にしていきたい。信頼関係を継続して築いていくことができれば、継続して仕事をもらえる可能性も高くなるだろう。不安定なフリーランスで安定して稼ぐには信頼されることに尽きるかと思う。

 

継続してスキルを高める

仕事を継続して獲得できていても、新しいスキルを習得することを意識したい。仕事はただの作業となった時点で、確実に質が落ちてくる。飽きて作業となり、仕事が雑にならない様にするには、新しい知識とスキルを仕入れて、新しい仕事を受注していくことが大切ではないかと思う。

 

 

www.mapp.jp

 

 

www.mapp.jp