何か目標を見つけ、トライするけれど、諦めてしまうことが普通にあると思います。
私も今挑戦真っ只中ですが、諦めようと思うことがたくさんあります。
今ブログの収益を月10万円にすることを目標にしています。
あとはrailsでサーバーサイドのサイトを作ることです。
長期の目標としては月収500億円を目指しています。
こういう目標を掲げるのは簡単ですが、理想と現実のギャップが激しくて、諦めてしまいそうになることがあると思います。
そんなときどうすれば、諦めずにやるとげることができるんでしょうか。
例えばブログであれば、私は超頑張っても月収8万円程度で止まっています。
毎日3つくらい記事を書いて、1ヶ月続けても8万円にしかなりませんでした。
かたやマナブログの学さんや、マクリンなど他のブロガーさんは100万円以上稼いでいると言っています。
こういうのを知ると、「ああ、自分なんて所詮凡人なんだ」と思いますよね。
プログラミングだってrailsやるぞと思ってもすぐに詰まってしまって全然進まなくて、途方にくれたりすることがあります。
それでも私は今日この日まで目標を絶やさず続けてきました。
今後もブログを月収10万、20万とすることを諦めていませんし、目的であるサイトを完成させることを諦めているわけではありません。
ではどうして難しいことを諦めずにトライし続けることができるのか、こちらで書いていきます。
わからなくてもやる
プログラミングをしていると、わからないことに遭遇することがよくあると思います。
私は本業がRPAのロボット開発やVBAでマクロを作ったりする仕事です。
本業においても、「あれ、やば、全然わからない」なんてことがよくあります。
エンジニアは初めて行う作業でもやることを求められます。
でもやったことがないことでも普通に承諾して、やってのけてしまいます。
なぜなら、エンジニアの日常はわからないことに遭遇するのが普通だからです。
一旦わからないことが多い世界に足を踏み入れてみて、それが普通だと思うようになれば良いのではないでしょうか。
落合さんは発明を仕事にしているので、日常でわからないことにトライすることに慣れています。
わからないことをやることが当たり前になれば、どんなに難しいことに遭遇しても前に進むことができるようになります。
わからないことに遭遇したらどうする
ここからが本題です。
「わからないことに遭遇するのが当たり前にすれば良いというのはわかったが、わからないことがあったら具体的にどうしたら良いんですか?」と疑問に思う人がいると思います。
私もそう思います。
初めてプログラミングを学んだ時はHTMLすら難しく感じました。
「え、metaってなに?」という感じですね。
RPAを学び始めた時も、「変数ってなによ」「は、カウンターってどうやんのよ」となったんです。
その状態で初めて案件に回され私は残業をしても、ロボットを作ることができませんでした。
その週は血尿が出ました。
でも今から考えると、「変数w」「カウンターw」レベルの超簡単な概念です。
つまり人間は初めて見たものを難しく感じてしまうということです。
発明王のエジソンは電球を作成するのに1万回失敗したと言っています。
蓄電池は、10年かけて発明しました。
ノーベル賞で有名なノーベルはダイナマイトに安定性を付与するために4年間を費やしました。
なぜ時間と回数が、成功を導くのでしょうか。
それは人間が成長し続けるからです。
今日わからなかったからと言って、10年後にも同じようにわからないとは限りません。
タイムマシンだって今から100年後には実現しているかもしれないんです。
たとえ今どう頑張ってもわからないことだとしても、明日、1週間後、1年後にはわかっているかもしれないということです。
「やってのける」という本には習得型という言葉が出てきます。
これを読むまで私は能力は先天的なもので、普通の人は頑張っても天才にはなれないと思っていました。
ですので、プログラミングでつまずいた時、「ああ、俺はプログラミングに向いてないんだ」と考えてしまっていました。
事実として、私の知り合いはどんどんプログラミングを理解し、上へ上へと階段を上がっていきました。
それを見て私は明らかに自分にはプログラミングの才能がないと思っていたんですね。
それにプラスして、今は習得型という概念が私の頭の中にあるので、人間は成長すると心から考えることができているんですね。
ですので、どんなにわからないことがあったとしても、焦らず問題に取り組むことができます。
ここで、皆さんにお伝えしたいことは、あのAppleのスティーブ・ウォズニアックも始めはコンピュータの中身がちんぷんかんぷんだったようです。
When I designed the first Apple computers in the 70s, little could I imagine that 1bn people would own Apple products worldwide today. I hope to inspire real estate execs at #MIPIM, as they embark on their own digital
revolution. More on my keynote: https://t.co/HrVLaC4NT8 pic.twitter.com/I9CZASPIOR— Steve Wozniak (@stevewoz) February 29, 2020
でも好きだし気になったから、調べてマッキントッシュを完成させることができたんです。
誰しもが始めはわからないんですね。
でもそこで諦めなかったからこそ、できるようになるんです。
わからない時、具体的にどうする
ではわからない時、具体的にどうすれば良いのかを書いていきます。
わからないことが出てきたら、まずは自分が思うアイデアの全てをやってみます。
「こうかな?」「こういうことかな?」と全てやります。
プログラミングなら、元のファイルをコピーしておいて、最悪壊してしまっても良いようにどんどんいじっていきます。
いじって試していると、調べないといけないことが出てきます。
プログラミングの場合、わからない理由は、圧倒的に知識がないだけなんですね。
覚えることが多くて始めは全然前に進みません。
でもそれは知識が少ないからだとわかっていれば、とりあえず向き合う時間を確保するだけで解決していきます。
自分で考えてわからないなら人に聞く
自分ではどう頑張ってもわからないことがあります。
だとしたら、知っている人に聞きに行くのが次にやるべきことです。
では知っている人がどこにいるかわからないければ、どうするのか。
これはひたすら調べるしかありません。
見つからなければ心が折れてしまいますが、これは今自分がどこにいるのかを整理することで解決できます。
一旦諦める
ですが、どんなに頑張っても知っている人にたどり着くことができなければ、一旦諦めるのも吉です。
例えば私はスマホアプリを作るためkotlinを独学で学ぶことにしました。
作成していて、情報量が少ないことが分かったので、railsを先にすることに切り替えたんです。
railsであればkotlinよりも情報量が多いため、今はrailsを先にしようとなったんです。
どういうことかというと、今それができないなら、世界の環境がまだ成熟していないことが理由である可能性があるということです。
だったらまずは今できることをしようとなるんです。
ちなみにkotlinがまだ独学では厳しいのは、自分のスキル不足(プログラミングの考え方が浅いor英語力が乏しい)のか、そもそも情報が少ないのかなどの要因があります。
もしも情報量が少ないのであれば、まずは情報量を多くする方法がないか考えます。
例えばMENTAというサービスがありますが、それが使いにくかったり高いと感じるなら、まずはrailsを習得し、MENTAに変わるサービスを自分で構築するという感じですね。
あるいはconnpassで調べてkotlinのもくもく会へ参加し、kotlinをマスターしている人から伝授してもらい、自分が次の困っている人にkotlinの知識を伝授できる人になるということも環境を変えることになります。
このようにできないことに遭遇したらそれがどうして起きているのかを分析することができます。
そしてそれが環境のせいであったとするならば、その環境自体を作ることができないかを考えるんです。