プログラミング経験0から
半年後に副業で
10万円を得た話!
こんにちは、ぼお です!
前回の記事は
読んでいただけましたでしょうか?
今回の記事は、
わたしが実際に教えた人の
実話を元にして書きました。
はじまり
彼は倉庫会社で働く会社員で
独身で年収は300万程度でした
そのためかなり切り詰めた生活
を送っていましたが
将来的には頑張って責任者になり
500万ぐらいに年収を上げて
結婚して子供を作って
普通の家庭を持つのが理想
だったそうです
しかし倉庫業界は慢性的な
人手不足で少子高齢化の影響
も直撃していて
新入社員が入ってこないため
頑張ったからといって
部下がつく可能性は低く
責任者になれる見込みは薄い
なので現在のまま
本業だけを続けていても
とても妻子を持って
暮らしていけるだけの
経済力が得られるとは
思えないし
それどころか
昨今の長引く不況のせいで
会社が潰れてしまうかも
しれないという
大きな不安を
感じていたそうです
だからどうしても
手堅く収益をあげて
長く続けていける
そんないい副業はないものか
そう考えて探していたそうです。
決意
そしてあるとき
twitterでプログラミングに関する
ツイートを見ました
彼はプログラミングに関して
全く興味も経験もなく
パソコンの操作もおぼつかない
人物でしたが
楽しそうであることや
人工知能という刺激的な
ワードもあったり
求人情報が多数あることから
世の中に必要とされていて
楽しそうで将来性もあって
長くつづけられそうな副業で
さらに調べると50万/月以上の
高額な案件がずらり
と掲載されている
うまくいけばこれで
独立できるかもと考え
プログラミングを
やってみることを
決意したそうです。
エラーの嵐で進まない
そしてほどなくして
動きはじめたのですが
まずパソコンを買うところから
何を選んだらいいのかわからず
2週間ほど過ぎてしまったそうです
そしてどんなプログラミング言語が
いいかを調べた結果
Python(パイソン)が初心者にいいらしい
ということでPythonに決め
初心者向けの本を買ったそうです。
さあこれで準備はOKだと思い
いざ本を片手にプログラミングを
やり始めたところ
まずインストールでつまづきました
インストールしようとした場所が
悪かったらしく
3時間以上も格闘したあと
1週間も放置したそうです。
でもこのあと
このままではらちがあかないので
OK WaveというQAサイトで質問
したそうです。
何人かから回答がありましたが
2日たってようやく
期待通りの回答があり
言われたとおりにしたら
なんとかうまくいきました。
その後はしばらく本のとおり
にやっていると
インデントが違うエラーとか
予期せずファイルの最後に到達
したエラーとか
いくつかエラーが出たものの
Webで検索してなんとか対処
できたそうです。
しかししばらくして
Webで検索してもわからない
エラーメッセージが出て
呆然となってしまいました
Non-UTF-8 code なんとか
というエラーです
何がなんだかわからない
考えていても
よくわからなかったので
Webで検索したのですが
検索結果を見ても全くわからず
またOK Waveで質問したところ
1日後に回答があって
言われたとおりにしたら
これもうまく動作したそうです。
ちなみにこのエラーは
日本語を使った場合に良く出る
エラーで
Windowsで日本語を使うときは
プログラムのはじめに
きまり文句を書くと動きます。
後でわかったことですが
本の内容から少しそれて
試しに日本語を使ってみたことで
ハマったのですが
日本語を使っただけで
こんなにも時間がかかって
しまうとは!
その後、しばらくは順調に
学習が進みましたが
今度は
EOLがなんとかというエラーです。
Webで調べてもたくさん表示され
いろいろと修正と実行を繰り返し
いつの間にか3時間
その日は疲れて諦めたそうです
そして2日後
もう一度、プログラムを
確認したところ
シングルクウォート(‘)を
つけ忘れていたことが
原因だとわかったそうです
えーっ!
またたったこれだけのことで
動かないとは・・・
これは衝撃的な出来事だったので
ご本人もはっきりと
覚えているそうです
さらにその後も
いくつもの難しい問題に
遭ったそうです
繰り返しのところを間違えて
繰り返すはずのところが
すぐに終了してしまったり
ファイルが見つからないという
エラーが出て
何度見てもあるはずの
ファイルがないと言われ続けたり
変更したはずの変数の内容が
変更されなくて
エラーも出ないので調べられず
3日間修正方法が
わからなかったり
条件文(if文)の中が
何度やっても実行されず
原因がわかるまでに
3日かかったり
その後、何度も何度も
エラーが繰返し発生しては
数日間悩んだり放置して
の繰り返しとなり
やがて解決して
理解が進むのですが
ものすごく時間をかけて
ゆっくりと進んだそうです
そして
最初はつまずいても
やる気が続いたのですぐに
次へ次へと進めていったのですが
後になるほど
少しずつやる気がなくなり
スピードがでなく
なってきたのです
エラーが頻発するだけが
問題ではありませんでした
本の内容としても
オブジェクト指向という
考え方を理解して
作っていくところから
急に難しくなり
特に多重継承とか
パッケージとか
ポリモーフィズムとかは
理解が難しくて
本を読むだけでも
2週間以上かかって
それだけ苦労したのに
未だに使っていない
ものがあるそうです。
そしてようやく
本を終わらせたのが
半年近く経ったとき
だそうです
長かった・・・ というのが
本音でしたが
ついに本を終わらせた!
という達成感から
次にもっと応用できて面白そうな
題材はないかとWebを検索し
基礎を終えたあとは
簡単なゲームの開発がいいらしい
ということで
ゲームの開発をやることに
しかしゲーム開発の本は
本格的なものばかりで
用語も含めて
何もかもが難しく
全然わかりません
『スプライト』とか
『フレーム』とか
のような用語が説明がなく
出てきて当たり前のように
使われていたり
高校のときに習った
三角関数や対数なんかを
使っているのですが
もう覚えてない上に
プログラムの中では
教科書のとき以上に見にくく
見るのも嫌になる
別にゲームを作ることが
最終目標でもないので
こんな難しいゲームは
勉強する気にならない
もっと簡単なゲームでいい
ということで
独自にWebで調べて
進めてみることに
しかし本での演習とは違って
まるで方位磁石を持たずに
歩いているかのよう
そもそも何で検索かけたら
良いかもわからず
何度も迷子になりながら
つぎはぎの情報を
何とか集めて進めました
しかし以前おさまっていた
エラーの嵐が再発しました
そのうちの1つが
ライブラリ の使い方が
わからないこと
だったそうです
ゲームを作るのに
Webで検索して見つけた
お手本を元に
画面関係のライブラリを
使ったのですが
Webサイトのとおりにしたのに
動きませんでした
なのでライブラリの説明を
見に行ったのですが英語ばかり
Google翻訳で読めましたが
それでも一部が良く理解できず
理解しないまま使ったところは
別の問題を起こしたそうです
こういったライブラリの使い方が
原因で問題がよく起こるように
なったそうです。
また
自分が原因で発生する問題も
良く起こるようになったそうです。
誤字とかは以前からありましたが
そういう問題は簡単なほうで
自分が作った部分が
何なのかが分からなくなったり
プログラムの関数とか
変数にリストや辞書(dict)
といった高度なものを
いくつも使うようになって
自分で自分の首を締めるような
問題が発生したそうです。
そしてWebで検索しても
解決しないので
QAをまた繰り返して
またしても時間ばかりが
かかってしまう状態に
なったそうです
そうしているうちに
ついにOK Waveに聞いても
解決できない問題が
出てきました
自分が作ったプログラムの
内容がわかっていないと
問題がわからないので
OK Waveの回答者も
こちらにいろいろ
聞いてくれるのですが
説明に苦慮することが
たくさんあり
お互い感情的になること
さえもあったりして
ふり返ると自分の
理解や聞き方にも
問題があったのですが
QAサイトに依存しすぎていた
と感じたそうです
そして後になって
気づいたそうですが
結局のところ
どういうふうに
考えて進めていけば
いいのかが分からずに
いたために
自力で解決できず
同じことを繰り返している
ばかりになっていた
ということでした
出会い
もうさすがに
このまま同じことを
繰り返していては
ダメだ
そう思い
Webで検索したところ
たまたま私のサイトが見つかり
メールで連絡してきたそうです。
その後、何度かメールでやりとりし
Skypeで打ち合わせをしました。
そうしたところ
本を読んでいたとしても
絶対に気づけなかったこと
があることが分かりました。
その気づけなかったこととは
プログラムを上から下に
文字と数字の連続でしか
見ていなかった
ということです。
そこで私は言いました。
『絵に描いてみましょう』
文字と数字だけで
上から下に向かってしか
見ていないから
わからないことが多いので
絵に描いてもっと
自分の脳がすんなりと
把握できるように
してあげることが
必要だったのです。
なのでこのときは
プログラムの動きを図示(*1)し
改めて自分のプログラムを
見直してもらって
エラーを取り除くことが
できました。
その後、彼には
コンピュータの中の仕組みや
プログラムの動作を
どうやって絵に描くか
そのときに登場人物として
何を描くのか
ということまで
詳しく説明しました。
Skypeの画面共有を使って
絵を実際に描いて です。
その結果
彼の頭の中のもやもやが消え
より鮮明に理解できるようになり
指導から2日で
ゲームが完成したのです!
簡単なゲームなのですが
内容は非常につまっていて
イメージング学習も体験し
とても濃いものだったそうです。
理想への道
それからというもの
彼の副業としての成功のために
スキルを勘案して
まずは、お仕事探しの
Lancers(ランサーズ)で
Pythonで開発する案件を目指す
ことをおすすめしました
Pythonにした理由は
Javaよりも乗り越えるカベや
決まりごとが少なく
文法が非常にシンプルで
Pythonでプログラミング
そのものの難易度を低くして
『開発』という大仕事を
一通り経験したあとで
Javaに戻るのは
難しくないからです。
そしてこの目標を念頭に
プログラミングの
基礎学習を開始しました
最初のうちは
プログラムを10行書くごとに
7~8個ものエラーに
みまわれました
しかしよく発生するエラーは
すぐに対処法を伝えて排除し
それでも対処できない
エラーについては
どのようにエラーと向き合って
対処法を導くかを伝えました
これを伝えてからは
エラーの発生率は
10行に1個となり
発生しても1,2分で
対処できるものが
増えていきました
エラーが減るとともに
開発スピードは上がり
2ヶ月後には全ての
プログラミング課題を
終了しました!
しかし仕事の案件を獲得する
にあたっては
プログラミングだけでなく
開発をする上で踏むべき工程や
設計書などのドキュメントの
作成作業など
いくつも作業が必要となります。
これらについて指導しつつ
3ヶ月ほどの期間で
開発の疑似体験を行って
案件獲得後の仕事の
イメージをつけてもらいました。
そして、ついに
指導をはじめてから
半年近くたって
あるシステムのサーバ上で
動作するプログラムを開発して
10万円を獲得したのです。
獲得の一報があったときは
とにかくその日一日が
何をやっても
笑っていられるぐらい
素晴らしく思えました。
それ以降も、彼とは連絡を取り
ときどき質問を受けましたが
最近は独りでほぼこなせて
しまえるようになったため
近況確認するのみとなりました
もうあのときの
何をするにもわからないと言い
エラーの嵐にさらされながら
時間を大量に消費し
呆然としていた彼はいません。
エラーが出てもすぐに対処し
冷静に判断をくだして
先に進めて成果を出す
失敗したとしても動じずに
次のステップにつなげる
そんな彼が活躍している姿が
目に浮かびます。
科学に基づいた効果的学習法
昨年も私のところに
3名のかたが来られ
彼と同じ指導をして
いずれのかたも
プログラミング経験が
ほぼない状態からはじめ
仕事を受注したり
アプリの開発を始めたり
しておられます。
これらのかたに共通することは
インターネットや書籍
学習サービス、スクール
によって
・理解しにくい学習法
・必要のないことまで学習
・パターンだけを学習
してしまったことが原因で
思うように進まなかった
ということです。
3WAY学習法はこれを
イメージングや
たとえを使って
頭に入りやすく学習し
ハードウェア/ソフトウェア
の本質と考え方を理解して
要所や考え方を
しっかりとおさえ
ゼロまたは少ない情報から
想像をめぐらして
ことに当たることで
エラーなどのトラブルや
未知の分野、環境変化への
適応力を身につける
ことで解決します。
さらにこの学習法は
非常に根本的なところに
立って開発した手法であり
プログラミング以外にも
適用ができるのです。
次はあなたの番です
決して難しいことではありません。
次は あなた に
効率的な3WAY学習法を
習得いただいて
将来に通じるスキルと理想
を手にしてほしいと思います。
プログラミングという
楽しみながら手に職がつき
感染病にも影響をうけず
将来性の高いスキルは
そうそうあるものではないです。
なので
なんとしてでも
やり遂げていただいて
その先にある本当の
『理想』
を実現してほしい
と願っています。
では今回もここで
簡単なワークをしていただきます
下記のワークを行うことで
ご自身のやりたいこと
これからどうしたいかを
見つめ直してください!
ワークの回答です。
1.あなたは、なぜプログラミングを
してみたいと思ったのですか?
・脱サラしてエンジニアとして
高収入を手にしたいから
・今までにないアプリや
サービスを作って
会社を作りたいから
2.あなたは いつまでに
どうなっていたいですか?
・2ヶ月後にWebアプリを
自力で作れるようになりたい
・半年後にWebアプリの案件を
獲得して10万の収入を得たい
3.あなたは目標のためにどのくらい
時間を捻出できますか?
・1日1時間以上を捻出できる
・週に8時間を捻出できる
ここまでの間に、
このワークに回答されていないかたが
何人かおられました。
このままでは私がいくらがんばって
何かをお伝えしようとしても
空振りしてしまいますので
しっかりとご回答ください。
ついに次回の記事では
効率的にプログラミングを
進めていく3WAY学習法
の全体像について
詳しく解説していきます。
私はこの学習法にたどり着くまでに
10年は試行錯誤を繰り返し
悩み続けてきました。
同じ時間や苦労をあなたには
味わってほしくありません。
ここまで読んできてくださった
あなた にこそ実践していただきたい
と思っています。
では、次回を楽しみにお待ち下さい!