始めに
こんにちは、まんじです!
今回はプログラミングを勉強して時間の無駄になるパターンみたいなやつを書いてみたいと思います。
プログラミングを勉強して時間の無駄になるパターンは、大体こんな感じカナーって思います。
- 特に目的がなく、なんとなくプログラミングを始めた(ネットなどで見て)
- プログラミングをやることによって得られる結果などの全体像が見えていない場合(解像度が低い)
- ゴールまでの道筋が曖昧な場合
- 入門者向けの講座を真面目にずっとやってる場合(プロゲート・ドットインストールなど)
- いつまでも稼ぐという行為をしない場合
プログラミングをやって完全に時間の無駄になるとまでは言えないんですけど、「プログラミングを使って何をしたいか?」ってのがないとまあまあ時間の無駄になりがちなことは否定できません。
なんとなくプログラミング始めてみましたって感じだと挫折して終わりな確率99%で時間の無駄感がありますが、「1年後にエンジニアになってこれぐらい稼ぐ」などの目的意識があると時間の無駄になりにくいです。(挫折しにくい。)
ということで、今回はプログラミングを勉強しても時間の無駄になるパターンを解説してみたいと思います。
特に目的がなくなんとなくプログラミングを始めた(ネットなどで見て)
結構あるあるなんですけど
「プログラミングいいぞ!」
「マルチをやるよりもプログラミングをやりましょう!」
「暇な時間があったら副業やプログラミングをやりましょう!」
みたいな意見がネットには多いんですけど、そう言ってる人の大半はプログラミングをやったことがありません😨
そういったエアプ勢の意見を見て「なるほど、プログラミングか!」ってことでプログラミングを知って始める人は多いかもしれませんが、正直なんとも言えません。
- プログラミングをやって何を得たいのか?
- プログラミングを使って何を作りたいのか?
- プログラミングを仕事にしてどれくらいの年収でどういうライフスタイルにしたいのか?
- そのためにはどれくらいの学習コストが必要なのか?
こういった目的意識がなくプログラミングをやっても正直すごく微妙です。
というよりも、挫折しやすいというか1ヶ月ぐらい入門者向けのプロゲートかドットインストールあたりをやって挫折するパターンになるケースがほとんどです。
目的意識とかプログラミングをやった結果どうなるという部分が欠落しているので「これ続けても意味なくね?」みたくなりがちです。
自分も昔Javaを大学1年生と3年生の頃に「なんかプログラミングがいいらしいぞ!」ってことでプログラミングをやってた時があったんですけど、普通に挫折しました。Hello Worldで。。。
なんとなくプログラミングを始めようかなって思った時には、後述するプログラミングの全体像を把握してから始めるほうが時間の無駄だった…!とはなりにくいです。
プログラミングの全体像が見えていない場合(解像度が低い)
プログラミング自体の全体像じゃなくて、プログラミングをやることによっての全体像って感じです。
例えば、プログラミングをやってウェブ系のエンジニアをやる場合は大体こんなモデルケースに落ち着きます。
- 独学で4~6ヶ月ぐらい勉強してポートフォリオ入って実務に入る
- 実務に入ってからは1~3年ぐらい頑張って働く
- その後にフリーランスか転職して年収を上げる(1~3年だと、フルリモートで年収800万円ぐらい(?))
- フリーランスの場合はまあまあ収入も高くてフルリモートとか場所の自由も効きやすい
ウェブ制作なら1~2ヶ月勉強してそこから簡単なhtml修正をして次にWordPressとかになるのかなって思います。
こんな感じで、プログラミングの全体像を把握して自分が今なんのためにプログラミングを勉強しているのかっていう全体の見通しを持ってプログラミングをやることが重要です。
重要というよりも、プログラミングは文法を1個1個習得していってコツコツ毎日勉強したところで、基本的にどこにも辿り着けません。
全体像を把握してゴールを決めて、そのための手段としてプログラミングを日々やるっていうのがすごく大事です。
「なんのためにプログラミングをやるのか?」
「いつまでにどうなるためにプログラミングをやるのか?」
みたいな自問自答がないと、プログラミングを勉強しても挫折して時間の無駄だった〜みたくなりがちです。
プログラミングを始める時には「2年後にフリーランスエンジニアになって年収で〜〜万円稼ぐ!」みたく決めてからスタートするぐらいのスタンスでやったほうがいいです。
時間を無駄にしたくないなら、目標設定をちゃんとやることが大事です。
↓目標設定のお話も書いています。
ゴールまでの道筋が曖昧な場合
「全体像を把握するのが大事」ってのは上に書いた通りなんですけど、ゴールまでの道筋が曖昧な場合も微妙です。
ゴールまでの道筋というのは、大きめのゴール、中くらいのゴール、直近のゴールへの道筋です。
例を考えてみます。
大きめのゴール: ウェブエンジニアで年収1000万、フリーランス
中くらいのゴール: ウェブエンジニアに転職 or 就職して2~5年働く
直近のゴール: プログラミング勉強してポートフォリオを作る
こういう感じでゴールが描けたら、そのゴールを達成するための道筋を考えます。
直近のゴール: プログラミング勉強してポートフォリオを作る
直近のやること: Pythonをドットインストールで2週間勉強してからDjangoで何かウェブアプリを2ヶ月で作る
ゴールがあって、それを達成するための道筋が描ければ、あとはそれを日々のタスクに落とし込むだけです。
逆に言うとゴールまでの道筋が描けていないのであれば、毎日のアクションに落とし込めないのですごく微妙というか挫折しがちです。
ゴールまでの道筋を描くためにはめちゃくちゃネットで調べたり、あとはシンプルに信用できそうな人にメンターをお願いするのも手かなと思います。
プログラミングスクールはdisられガチですが、個人的には良いと思います。
独学でお金をかけずにやることもできますけど、お金をかけないでやることにこだわりすぎるのも時間軸で見た時のコスパ的な側面でリスクもあるのでそこはなんとも言えないです。
「無料 = いいこと」っていうのは結構幻想です。
例: ネットの無料ジャンク情報を食い漁るよりも、1600円出して良質な本を1個読んだほうがいいみたいな
ゴールを達成するためにいつまで何をやるか、
そのために今日何をやるのか、
という部分は意識したいところというか、プログラミングを勉強する場合には意識することが必須です。
入門者向けの講座を真面目にやってる場合(プロゲート・ドットインストールなど)
プロゲートやドットインストールはいくらやったところでどこにも辿り着かないので、がんばって勉強しても時間の無駄になりがちです。
上のほうにも書いた通り、目標設定があって、それの手段として勉強やらポートフォリオやらが必要、そのために入門レベルのプロゲートとかドットインストールを使います。
プロゲートやドットインストールをやりこんでプログラミングのレベルが上がるというよりかは、最初に2週間だけとか決めてやって、次の勉強にとりあえず進んでいって使っていくことでプログラミングのレベルが上がっていきます。
プログラミング入門者あるあるなのが、
「とりあえずドットインストールをなんか何も考えずにやっている」
みたいな状態です。
これだとなんていうか、、、挫折する確率99%なので、時間の無駄になります。。。
プログラミングは勉強して完璧な状態を目指すというよりかは、アウトプットベースで適宜不足している知識をインプットしていくほうが効率が良いです。
いつまでも稼ぐという行為をしない場合
プログラミングをやる目的はおそらくほぼ「稼ぐ」ということだと思います。
もう少し厳密には、、、
- フルリモートで稼ぎたい(家にいながら稼ぎたい)
- プログラミングを使ってフリーランスになりたい
- プログラミングをやって年収を1000万円オーバーにしたい
こういった目的のための手段としてプログラミングをやっていない場合、要は稼ぐという行為を始められない場合には、プログラミングを勉強しても「時間の無駄だったな〜」となりがちです。
そのための解決策としては、シンプルに「早く稼ぐ」ということに焦点を当てることかなと思います。
例えば、入門レベルでプログラミングをやっていてエンジニアになろうとしてる段階なら、さっさとポートフォリオを作ってインターンなり正社員に応募して早く働き始めてお金を稼ぐことです。
簡単ウェブアプリ1個作ってそれをポートフォリオしてがんばって応募しまくれば実務には入れます。
まとめ
プログラミングをやって時間を無駄にしないためには、目標を決めてゴールから逆算して手段としてプログラミングを勉強するのが個人的には最も大事だと思ってます。
なんとなくプログラミングを教養として知っておくとかは悪くはないですが、それ以外のケース(プログラミングで稼ぎたい、家で引きこもって稼ぎたい、海外から稼ぎたいなど)の場合は、目標を定めて本気で取り組む必要があります。
目的もなくなんとなく良いらしいからって理由でプログラミングを中途半端にやるのが1番微妙かなーと思います。
合うか合わないかを試すだけとかはありだけど、、、ぶっちゃけ最初は適正あるような人も苦戦するので、結構そこらへんも難しいところです。
本気でやりたい人はゴールを見据えてそのために何が今必要かを考えて毎日のタスクに落とし込んでプログラミングをやるのが重要です。
繰り返しですが、目的のための手段としてプログラミングをやるのが大事で、いつまでにプログラミングを使ってどうなりたいか?っていう自分の中の問いに対しての答えを持つとプログラミングやって時間の無駄だった!とはなりにくいかなと思います。