Udemyのシリコンバレー発講座でPythonを学び、月10万円を稼げるようになるまで
TL;DR(この記事で言っていること)
- Pythonの教材は色々やったけどUdemyの酒井さんの講座(現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル )が圧倒的にオススメ(中級レベルまでならこれだけでOK)
- フリーランス(副業)で案件を受注する際、Qiitaの記事がそのまま自己PRになったのでやはりアウトプットし続けることは大事
- Cloud Worksは手数料で20%も持っていかれる(高すぎやろ)ので、あくまでも個別契約をしてくれるお客様を探す場、として割り切る
- TL;DR(この記事で言っていること)
- はじめに
- WHO ARE YOU?
- 何故プログラミングの勉強を始めたか?
- どうやって勉強したか?
- 何故おすすめなのか?
- 自分の身の回りの業務を自動化するプログラムを作る
- クラウドワークスで案件を受注を目指す
はじめに
副業でPythonの契約(月10万、プログラムの運用保守契約)を企業様とかわすことができたので、
自分がどういう形で学び、スキルアップしてきたか、記録を残す意味でも書いておこうと思います。
1年前に比べて年収が120万近くアップしました。
ちなみにもともとは文系出身で研修の簡単なプログラミングのテストで100点中16点をとったことがあるくらい、素養無しです。
以下の流れで月10万を達成しました。
Pythonの勉強(後ほど紹介するUdemyのPython講座)
↓↑
4~5つくらい身の回りの業務を自動化するプログラムを書く(詰まったらPython講座の該当する箇所を学び直す)
↓
Cloud Worksで案件を受注(ここで10万くらい稼いだ)
↓
Cloud Worksでプログラムを提供したお客様と運用保守契約を受注
それぞれのフェーズで何に気をつけてきたかをこの記事で書いていこうと思います。
WHO ARE YOU?
経済学部を卒業後、新卒でブラック目のIT企業に入り、そこで2年半近く働きうつ病になりかける。
その後、第二新卒というカードを使ってたまたま未経験でもOKな若手を募集していたWEB企業に転職、という経歴です。
現在も正社員でそこで働き(6年目)、副業で他の会社でプログラムの開発運用保守を行う、という働き方をしています。
何故プログラミングの勉強を始めたか?
頭悪い理由ですが、黒い画面でコーディングしている姿がかっこいいから、というのが一番の理由。
その次に重度の面倒臭がり屋で単純作業を行うとすぐ眠くなってしまう、プログラムを書いて楽をしよう!という不純極まりない理由から勉強をはじめました。
ただ、プログラマの三大美徳「短期・怠惰・傲慢」と言われてるので、割と向いていたかもしれません。
どうやって勉強したか?
結論から申し上げると、Udemyで勉強した後、実践ベースで身のまわりの業務をプログラムで自動化させていくことで勉強しました。
progateやりまくっても、オライリー読みまくって写経しても、かけるようになはなりません。
とはいえ、inputが何も無し、常にgoogle任せでやるのは辛いと思います。ただのコピペエンジニアです。
私はUdemyの以下の酒井さんの講座を超おすすめします。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
何故おすすめなのか?
めちゃくちゃシンプルな理由ですが、教材のクオリティとボリュームがすごいです。あと安い(確か1200~1400円くらい)。そして買い切り。
Progateやドットインストールもやったことありますが、この講座はクオリティが段違いで、講師が現役でシリコンバレーで働かれてるエンジニアなのでとても実践的です。
働かれてる企業(splunk)も我々の業界では超有名で、いいプロダクトです。
wordpress教材が12万、で炎上されてる方がいましたが、この教材が12万なら納得です。
12万の情報商材なんかより
— ぽろん (@ZA4J3BzLCgRF4Lc) 2019年5月14日
酒井さんのpython講座の方が100億倍ええで https://t.co/4jVGzxbkH1
オライリーでいうと、入門 Python3や、Effective Pythonで学ぶような幅広い内容が一つの講座に凝縮されています。
上記の本はどっちも色々なブログでいい!と紹介されてますが、自分は挫折しました。
オライリーって日本語わかりにくすぎるし、頭に入ってこないんですよね・・・。
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
Effective Python ―Pythonプログラムを改良する59項目
- 作者: Brett Slatkin,石本敦夫,黒川利明
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/01/23
- メディア: 大型本
- この商品を含むブログ (6件) を見る
全部通しで一から勉強すると、結構なボリュームで3ヶ月くらいかかっちゃいます。なので、必要な箇所に絞って集中して勉強した方がいいと思います。
ここでは、副業で求められるスキル、という観点で話します。
- スクレイピングで特定のURLから特定の情報を抜き出す
- 業務の自動化
系だと思います。
①も②も、xpathやbeautiful sourpの使い方だけでなく、基本的なPythonの文法の理解が必須です。
スクレイピングで取得した情報を変数にいれ、その変数を配列になおし、ファイルに吐き出す等、基礎がおさえられてなければ、上記の案件を受注しても苦労するでしょう。
苦労というか、そもそもできないと思います。
ではどのポイントを注力して勉強するか
このコースのなかで自分は以下の赤字の箇所を優先して勉強した方が良いと思います。
優先度"高"のと箇所ができていれば、他は案件に応じて勉強、で良いと思います。
ちなみにこのコースをめっちゃおすすめしてるのは、悩みどころであるコードスタイルやロギングなどの絶対必要だけど、ベストプラクティスがわからない、というところに対し、しっかりフォローされている点です。お客様にプログラムを提供する以上、この辺は必ず抑えておいた方がいいです。
目次 | 優先度 | 備考 |
ここから開始しましょう。 | 低 | 個人的にはvscodeの方が使いやすい |
Python環境の設定 | 高 | |
Pythonの基本 | 高 | 基本的な文法の使い方などで、マスト。 |
データー構造 | 高 | 特にリストと辞書型はよく使うので、要確認 |
制御フローとコード構造 | 高 | 基本的にif,for,while等がこの章。rangeや内包表記、zip,enumerateなどなど大事な項目が続きます。例外処理もしっかり抑えたい |
モジュールとパッケージ | 高 |
人に提供するプログラムならこの辺はマスト モジュール化の方法がこの章です。 |
オブジェクトとクラス | 中 | クラスを使うほどの案件はないかな |
ファイル操作とシステム | 高 | ファイルの読み込み、ファイルの書き込みの部分はマスト |
入門編の終了 応用編に行く前に簡単なアプリケーションの演習 | 低 | MVCは後でもよい。Django案件はそんな無い。webアプリケーションを作りたい人は抑える |
コードスタイル | 高 |
お客様に提供するプログラムなので、この辺はマスト ここら辺の項目に対してこうするべき!と取り扱ってくださっているのが有難い |
コンフィグとロギング | 高 | |
データーベース | 低 | |
WEBとネットワーク | 高 | Jsonの扱いやスクレイピングはこの章 |
テスト | 中 | もちろんやったほうがいいが優先度は他に劣る |
並列化 | 低 | |
暗号化 | 低 | |
インフラ構築自動化 | 低 | Ansibleの案件はそんなない |
Pythonの便利なライブラリやツールや豆知識 | 高 | 正規表現はマスト |
グラフィックス | 低 | |
データ解析 | 低 | |
キューイングシステム | 低 | |
非同期処理 asynico | 低 | |
最後に | 低 |
勉強の仕方は動画に合わせて写経し、実際にプログラムを実行していく方法がおすすめです。手を動かさないと頭に入りません。
ただ、写経してもわかった気になってしまうので、さっと概要を抑えた後、この後のプログラム作成で迷ったら適宜みる、という勉強の仕方がおすすめです。
自分の身の回りの業務を自動化するプログラムを作る
次のステップでは、自分の身の回りにある業務を自動化するプログラムを作っていきます。
inputとoutputが必要なプログラムがおすすめです。
例えば、
- csvファイルを読み込んでjsonファイルに書き出す
- Excelのデータを読み込み、textデータを吐き出す
- csvを読み込み、jsonファイルに吐き出し、特定のサービスにリクエストを投げる
- urlが記載されている、textファイルを読み込み、そのtextファイルに記載されているurlをスクレイピングし、必要なデータをtextにまとめ吐き出す
ナドナド、実践でも使えるような業務があれば、それを自動化するのがおすすめです。
個人的には普段の面倒な業務を自動化の対象にしたほうがモチベーションが続きやすいのでおすすめです。
プログラムの構成ですが、自分はいつも以下のような構成で作っています。
main.pyに大元の流れの処理をかき、個々の細かい処理はmain.pyからscripts配下のプログラムを読み込むようにしています。(需要があれば別記事に・・・)
そうすることでプログラム全体の見通しがよくなります。
自分でも、もっといい構成があると思っているので、githubなどで実際のPythonでできているSaasのプログラムを見るのがいいのかな、と思っております。
Datadogとかよく参考にしてます。
クラウドワークスで案件を受注を目指す
続いてクラウドワークスで案件を受注を目指します。
ここでの目的はあくまでもお客様を探すためです。
クラウドワークスやランサーズは手数料で20%も持っていかれるので、ずっと使いづけることはおすすめしません。
毎回毎回コンペになるので、負担も大きいです。
自分は初めてすぐに2件案件を受注し、現在も5万円と3万円の案件を受注しています。
計15マンくらい受注していることになります。
案件受注のポイント
ランサーズやクラウドワークスは競合が多いです。10人超えはざらです。
そのなかで受注を目指すには何が一番大事でしょうか。
逆の立場(発注者側)で考えると答えはシンプルです。
その人は要件通りに案件に対応できるか??
というポイントです。
発注者側は企業に属していることが多いです。その人の一番のリスクは変な人に頼んでしまい、納期までに間に合わなかったこと、です。
受注するためには実績が一番です。
自分はQiitaのアカウントでよく技術の記事を書いているのですが、案件の内容と似たようなことをやったことがあれば、そのURLを貼り付け、
「自分はできますし、この要件に対する解決方法を知っています。なぜなら似たようなことをやったことがあるからです。と返します。」
また自分の得意な範囲ではなくても、事前に調べ、詳細に「こういう手順でやります」、というのを伝えます。
下記はpythonの案件ではありませんが、例えば以下のようなレベルで、手順まで落とし込んでこうすればできます。やらせてください、ということを伝えます。
受注できたら、最初に3日が大事
自分は最初の3日が大事だと思っています。
案件受注後、発注者のお客様は進捗が全く報告されなかったらどう思うでしょうか?
普通にあの人大丈夫かな・・・・?と心配になります。
私は必ず
- 毎日、または隔日の進捗報告
- 入出力部分を先に作ってプログラムのイメージを合わせる
ということをやっています。
進捗報告はいわずもがなですが、
- 入出力部分を先に作ってプログラムのイメージを合わせる
ということがとても大事です。
これはどういうことかというと、例えば
textデータを読み込んで特定の文字列を置換(変換ルールは10個)してcsvに出力する
という案件があるとします。
自分はまず、
- textデータの読み込み
- 変換ルールの作成(一個だけ)
- ファイル出力
部分だけを素早く作ってお客様に渡して確認してもらいます。
入出力のイメージを合わせるということはプログラム作成において非常に重要で、ここの認識をしっかり合わせられていれば、一番怖い手戻りを防ぐことができます。
関数のコメントをちゃんと書く
これは酒井さんの講座のdocstringあたりで講義されているところですが、
関数が何をやっているか、という情報は非常に大事です。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
例えば以下のように関数には必ず説明、引数、返り値を書く、というのはあとで読み返す自分にとっても非常に大事です。
案件終了後に依頼者をフォロー、保守契約の提案
案件終了後は連絡先を添えて、必ず以下のようなメッセージを残すようにしています。
ご確認有難う御座いました。
バグ対応は納品後も迅速に、もちろん無償で行いますので、何かありましたら遠慮なくご連絡ください。
今後とも宜しくお願い致します。
また、案件を依頼してくれた方は必ずフォローしておきましょう。
二件目も頼んでくれたら、その方は自分の仕事を認めてくれた、ということです。
保守契約を提案したら、高い確率で個人契約を結べると思います。
参考
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
please follow me
@sakaijun
— がじぇったー (@hackmylife7) 2019年6月10日
酒井さんのPython講座でスキルアップして年収上がりました。
1400円くらいで購入したのですが、コスパが良すぎる。。。。感謝しかないです。
Udemyのシリコンバレー発講座でPythonを学び、月10万円を稼げるようになるまで - がじぇったー https://t.co/8Gq5nKABD1