見出し画像

プログラミング未経験から独学で収益を上げるまで(3年間の道のり)

みなさんこんにちわ!
わたしがプログラミング未経験から独学で案件を獲得し、そのまま継続して収益をあげることができるようになるまでどのように学んだか、どんな言語やどんなモジュールを使ってどんな案件で収益を上げ続けれるようになったかをまとめました。

私自身遠回りして学んでいきましたが、失敗したことやうまくいったことなどを交えながらこのnoteを見ていただくことで、遠回りせず収益を得るまでの進み方を学んでいただけると思うのでぜひ参考にしてみてください。
最後には案件獲得にこれだけ覚えておけば自信をもって応募し納品できるスキルセットのまとめを書いておきますのでぜひ参考にしてみてください。

はじまりの1年目

さて、なぜプログラムで収益を稼ごうと思ったかといいますと本業だけの収入では足りないなと感じ、他に収入源を増やそうとおもって色々調べていました。

その中で、好きな場所で好きな時間に仕事をして収益を上げることができるという謳い文句でプログラミングがすごく流行っていたのもあって興味を惹かれ取り組むことにしました。

もともと厨二病の私は、黒いフードをかぶってPCの黒いモニターに緑の文字を打ってデータを盗み取るものがプログラミングだと思っていたのでわくわくしながら学んでいたのを覚えています。
(実際は違いましたが・・)

まず初めにやり始めたのは、ユーチューバーやサイトにもよく最初にこれをやるといいと言われる『progate(プロゲート)』を始めました。
ここでは『html』と『css』の講座を学びました。
この2講座はだいたい1〜2ヶ月で終えました。
あんまり頭に入っていなかったのを覚えています。
「Hello World」とhtmlで書いてもそれがどうなってブラウザに表示されるかもわからないまま、いつ自分がプログラム書けるようになるのか想像もできないときでした・・。

3ヶ月目にはどの言語を学ぼうか迷っていました。
自分でホームページやECサイトを作成できるようになりたい、ワードプレスではなくHTMLで作成してクラウドワークスやランサーズで案件を獲得し収益を上げたいと考えていたので、Javascriptを学びました。

プログラミング言語によってできることや、やりたいことの得意不得意があるので自分のやりたいことがあう言語を選択するようにしたほうがいいです。
(各言語についての説明は割愛します・・)

今はPythonが流行っていますが自分のやりたい、進みたい方向をしっかり考えて選択しましょう。
Javascriptを学び始めたこの頃は、スクリプトを組み込んでブラウザで動きを確認したりしてプログラムの楽しさを感じてました。
自分の作ったプログラムをブラウザを通して目に見える形で動くと達成感もあってモチベーションアップになります。
同時にプログラミング言語を学び始めて、引数やメソッドなどHTMLのときにはなかった分野を学ぶことになり挫折しかけた期間でもあります。

Javascriptの基本を学んだ後は、『Linux』も学んでいきました。
サイト作りには関係なかったですが、やはり映画とかによくでてくる黒い画面にカタカタやってるハッカーをかっこいいとおもっていた自分はこれだろと思い目指している方向とは関係なく興味で学んでいました。
(このときは全然なにも考えていなかったですが後々役に立つことになりました・・)

私自身プログラミングやパソコンをさわっているのはすごく楽しく好きで、収益を上げるまでは絶対やり抜こうと心に決めて勉強していても無理かもしれない、もうやめとこうと思うことが数回ありました。

『Javascript』や『Linux』を学んでいるとなんだこれは・・と思う部分に度々でくわしますが、自分には理解できないと思っていてもやり続けることで必ず理解できる様になるのでみなさんもあきらめずに続けてください。
そうすればいつのまにかできるようになっているはずです。

3ヶ月を過ぎた頃から『ドットインストール』というサイトを利用しました。
このサイトはプログラミングを動画で学ぶことができプログラムを作成する流れをすごくイメージしやすくなりました。
ここで再度『HTML』『CSS』『Javascript』を学び直し、『Python』を学びました。
このとき学んだ『Python』は頭にまったくはいっていませんでした・・。

ただ、講師の作成したコードをみてすごくイメージを掴んだ感覚があったのを覚えています。

そこから3ヶ月くらいは自分のポートフォリオという成果物を作成してみようと思い、『I/O 3000』というサイトの中にあるホームページやLPを同じ様に作成する練習をしました。
このサイトにあるおしゃれなホームページなどをHTML・CSS・Javascriptで作成しました。
色々自分で調べながらJavascriptでモーダルウインドを作成したり、CSSでレスポンシブデザインの作成をしたり。
心のなかでは「こんなにそっくり作れねーよ」と思いながら作っていました。

それと同時に作成したものをポートフォリオとして『クラウドワークス』(個人・法人問わず、業務委託のお仕事をインターネット上で発注・受注することができるお仕事マッチングサイト)で登録し、ホームページ制作などに応募したりしていました。
(このとき応募するのにも、作成しきる自信も全然なかったためドキドキしながら応募していました)
この段階では実績もないため全然案件を獲得できていません・・。
だれからも見向きもされていません・・・・。

次に収益のことを調べていたらブログでアフィリエイトによる収入を得ることができることを知りました。

このとき唯一使えるプログラミング言語であるが『Jacascript』
そのフレームワークである『nuxtjs』を使いブログサイトを立ち上げることにしました。
「フレームワークってどんなのかなー?」
って思っていた自分にとってちょうどいいタイミングでした。

このとき学んだのが、
・Javascriptのフレームワークである『Nuxtjs』
・netlifyというWEBサービス(静的サイトをホスティング)を使ってブログを立ち上げ
・microCMSというAPIを使ったコンテンツを管理してブログ記事をここで書いたものをNuxtjsにデータを送る
・CSSのフレームワークである『Tailwind』

初めての作成物で、これを作成したことにより今まで勉強していた『HTML』や『CSS』がどのようにつながってWEBサイトに立ち上がるのかという流れも理解できるようになってきました。
点と点が面になってきた感覚でした。

こちらが自分で作ったサイトです

このようにしてブログサイトも立ち上げましたがなかなかgoogleアドセンスも合格せず、アフィリエイトによる収益も簡単ではないと気づき始めた頃です。

プログラミングを学んでから9ヶ月が経ちましたがこのままでは収益を上げる見込みも自信もありませんでした。
このときいろんな情報を調べていると、ワードプレスで作成して収益を上げるyoutubeなどがよく目に入りました。
なんとかしたい気持ちもありましたが自分の中でプログラムを書いて収入を得ることを目標にしているのでワードプレスなどローコードやノーコードでの収益を得る考えは一切ありませんでした。
しかし特になにも思いつかなかったので違うプログラミング言語でも学んでみようかと思い『Python』と『Ruby』どちらかを学んでみようと思いました。
『Python』は今流行っていて流行りに乗っかりやすい自分としてはあってるかもしれない、ただAIとか機械学習って何?という感じ。
『Ruby』聞こえはこっちのほうがかっこいい。
調べたら直感的にコードを書くことができるので楽しい、得意な分野も
WEBアプリで今まで学んできたHTMLやJavscriptも活かせるみたい・・。
自分の誕生石もルビー・・(関係ないか)
という悩みに悩んだ結果『Ruby』を学ぶことにしました。

『Ruby』を学んだ流れとしては『Progate』ではなく『ドットインストール』でまず基礎を学びました。

Rubyを学んでいくときにはじめにつまづくのは、環境構築になるとおもいます。
私はLinuxを先に学んでいたので少し環境構築するのに助かりました。

そのこともあってプログラミングを学ぶ順番としては、
HTML>CSS>Javascript>Linux>Rubyが一番いいと思っております。

とにもかくにも『Ruby』を勉強することでプログラムの書き方、作り方を理解できました。
プログラムの構造を理解しやすかったので、初心者の方には『Ruby』から学ぶことをおすすめします。

といいながらもまだまだ1円も収益を上げることができてない状況が続いておりました。
そんな時に親戚の中に、事業をはじめるという人があらわれました。
youtubeやネットなどで案件の獲得の仕方を調べているとまずは身近な人から案件を獲得するというのがよく言われていましたが、私は友人も少なくそんなコネもないので縁のない話だと思っていましたが、
私「ホームページ作れますけど・・」

初案件獲得です。

ホームページの制作といえばワードプレスで作成されるのが多いと思いますがせっかくなのでRubyのフレームワークである『Ruby on Rails』を使って作成することにしました。
Rubyを学び始めて2ヶ月くらいでの作成、やること全てが初めてで全部が勉強になりました。
Railsでの問い合わせフォームの作成、SMTP接続でメールの送受信。
自動見積もり作成ツールも『Javascript』で作成しそれをRailsの中で組み込み、CSSのフレームワークには『bootstrap』を使いました。
『heroku』というPaaSを使ってデプロイし、RailsのWEBアプリ制作がすごくスピーディーにできることに驚きました。
1ヶ月ほどで完成し、お客様からのメール問い合わせを初めて確認したときはすごく達成感を感じ、自信にもなりました。

このときプログラミングを学び始めて1年ほど、親戚からの案件を獲得したと言っても継続して収益を上げる見込みはこのときまだ全然ありませんでした。

よくよく考えてみると自分は黒いフードをかぶって黒い画面に文字を打つのがかっこいいと思い始めたプログラミング・・
今やっているのはフロントエンドだがやりたいのはバックエンドだなと考え直しました・・。
バックエンドがやりたいとは思っていたけれど、未経験でバックエンドは敷居が高い・・しかしやってみよう。

そこで調べた結果スクレイピングが稼ぎやすいのではないかと思い、その案件を獲得すべく学ぶ様にしました。

ここでせっかく学んだRubyを使ってスクレイピング案件を獲得できるようになろうと、ここではseleniumというライブラリを学びました。
『Nokogiri』や『Mechanize』も学びましたが、最近のサイトはJavascriptを使った動的なサイトが多くSeleniumを使う場面が多くこればかり使うことことになりました。

2ヶ月ほどクラウドワークスやランサーズに応募しながらRubyでのスクレイピングを学んでいると初めて案件を獲得することができました。
すでにクライアントが作成しているプログラムのクラスやメソッドを使ってスクレイピングプログラムを作成し組み込むという案件でした。
このときはZoomで説明があるとのことで初めてのスクレイピング案件、クラウドワークスでの初めてのクライアントとのZoomでのミーティングを行いました。
正直Zoomで説明を受けた時やりきることができるか不安になりましたが、渡されたサンプルコードをみて安心しました。
Rubyのコードをみてホッとしたのを覚えています。
(Ruby最高・・と心の中で思いました)

スクレイピング初案件を獲得することができ、自信と実績を作ることができましたが、この案件は複数サイトの継続案件依頼でした。
しかしプログラムよくなかったのでしょう、次の案件は受けることができませんでした。
まだまだ実力不足でした。

諦めかけたプログラミング

このときプログラミングをやり始めて1年3ヶ月になります。
このとき甘い誘惑がクラウドワークスのメッセージに届きました。
データ収集の案件依頼でした。
プログラム作成は関係のない公式サイトからの情報をスプレッドシートに入力して納品する案件です。
ここまで思ったように案件を獲得できず、まだこれからの見込みも見出せていないため自信を失っていた自分はその案件を受けることにしました。

このクライアントからは継続的に依頼をいただき月20万ほどの売り上げをいただくこともありました。
副業で月20万・・毎月これなら文句ない・・
作業内容は結構大変で納期までずっとパソコンと睨めっこです。
プログラムを書いているときはなんともなかったのにはじめて首が痛くなるという症状がでました。
収益を得るという観点からもうこのようなデータ収集案件をやり続けようとこころが折れた瞬間になります。

そうはいってもプログラムを書くのは楽しかったので、『Python』を触ってみようと思うようになりました。
『Ruby』を学んでいたので『Python』を覚えるのは結構すんなり覚えることができました。
一つの言語を学ぶとどの言語も仕組みは同じ様になっているのですぐに身につくみたいです。

なぜ『Python』かというとクラウドワークスやランサーズでのスクレイピング案件でPythonでの言語指定が多かったのが理由です。
Rubyでのスクレイピング案件はほどんどなくそれならばと思いやりはじめ、『Python』はUdemyの動画で学びました。
Seleniumなどの使い方はほとんどRubyと同じだったのですんなり使えたので助かりました。
環境構築に関してはanacondaをインストールすることで使えるjupyter notebookというのが便利すぎてこれを使っていて、デバックが簡単に行うことができプログラムの動きを確認しやすかったです。

このときプログラムを学び始めて2年ほどになります。
自分のペースでやっていましたが遅すぎるのかもしれません・・。
まぁしかし続けることができているのでよしとしましょう。

転機のスクレイピング案件

Pythonで『Scrapy』というスクレイピング専用のフレームワークがあることを知りました。
さっそくUdemyに講座があったのですぐに購入し勉強しました。

タイミングよくクラウドワークスにScrapyを使った案件があったので応募したところ契約することができました。
金額はかなり安かったですが、案件をこなしながらスキルアップできることがうれしくて契約しました。

ここではSlackとGitを使った、よくプログラマーがSNSで言ってるようなツールを使って本格的な作業をすることになります。
gitの使い方もなんとなくしかわかっていなかったのですがいい経験になりました。
マージされたときは嬉しかったのを覚えています。

そんな案件も2ヶ月ほどで終了し、さらに案件を獲得するようになります。

クラウドワークスの案件にはスクレイピングツール作成を募集されていることが多く、はじめツールを作成するのは自分のスキルでは全然足りないのでできないだろうなと思い手を出していませんでした。

しかし案件がなかなか取れない状況を変えるためにこのツール作成をすることにしました、やってみるとPythonのモジュールで『Pyinstaller』というものがあり簡単に実行ファイルの作成ができます。
これがとても便利でRubyではocraというライブラリがあったのですが、これはmacでしか実行ファイルを作成できませんでした。
Pyinstallerは実行したOSに依存して作成できるので、windowsでもmacでも実行ファイルを作成することができます。これを使うことでクライアントに作成できたツールを納品することができます。

これを覚えてからランサーズやクラウドワークスで案件を獲得できる様になってきました。
プログラミングをはじめて3年経った今では月に2〜3件案件を獲得できています。
これからももっと受託できるようにスキルアップしていきますので、その後もまたnoteに書いていきますのでお待ちください。

スクレイピング案件必須スキルセット

ここから先は

1,460字

¥ 480

この記事が気に入ったらサポートをしてみませんか?