始めに
こんにちは!
まんじです!!
今回はプログラミングを勉強して時間の無駄になるパターンみたいなやつを書いてみたいと思います。
結論から書くと、大体こんな感じカナーって思います。
- 特に目的がなくなんとなくプログラミングを始めた(ネットなどで見て)
- プログラミングの全体像が見えていない場合(解像度が低い)
- ゴールまでの道筋が曖昧な場合
- 入門者向けの講座を真面目にやってる場合(プロゲート・ドットインストールなど)
プログラミングをやって完全に時間の無駄になるとまでは言えないんですけど、正直、プログラミングを使って何をしたいかってのがないとまあまあ時間の無駄であることは否定できません。
ということで、時間の無駄になるパターンを書いていくぅ。
特に目的がなくなんとなくプログラミングを始めた(ネットなどで見て)
結構あるあるなんですけど
「プログラミングいいぞ!」
「マルチをやるよりもプログラミングをやりましょう!」
「暇な時間があったら副業やプログラミングをやりましょう!」
みたいな意見がネットには多くて、そう言ってる人の大半はプログラミングをやったことがありません😨
そういう感じの意見を見て「なるほど、プログラミングか!」ってことでプログラミングを始める人は多いかもしれませんが、なんとも言えません。
- プログラミングをやって何を得たいのか?
- プログラミングを使って何を作りたいのか?
- プログラミングを仕事にしてどれくらいの年収でどういうライフスタイルにしたいのか?
こういう感じの目的がないと正直すごく微妙だと思います。
というよりも、挫折しやすいというか1ヶ月ぐらい入門者向けのプロゲートかドットインストールあたりをやって挫折するパターンになると思います。
「これ続けても意味なくね?」みたいな。
ぼくも昔Javaを大学1年生と3年生の頃に「なんかプログラミングがいいらしいぞ!」ってことでやろうとしたんですけど、普通に挫折しました。Hello Worldで。。。
なんとなくプログラミングを始めようかなって思った時には、ちょうど↓に書いたプログラミングの全体像を把握してから始めるのが良いと思います。
プログラミングの全体像が見えていない場合(解像度が低い)
プログラミング自体の全体像じゃなくて、プログラミングをやることによっての全体像って感じです。
例えば、プログラミングをやってウェブ系のエンジニアをやる場合は大体こんなモデルケースに落ち着きます。
- 独学で4~6ヶ月ぐらい勉強してポートフォリオ入って実務に入る
- 実務に入ってからは1~3年ぐらい頑張って働く
- その後にフリーランスか転職して年収を上げる(フルリモートも多い)
- フリーランスの場合はまあまあ収入も高くてフルリモートとか場所の自由も効きやすい
ウェブ制作なら1~2ヶ月勉強してそこから簡単なhtml修正をして次にWordPressとかになるのかなって思います。
こんな感じで、プログラミングの全体像を把握して自分が今なんのためにプログラミングを勉強しているのかっていう全体の見通しを持ってプログラミングをやることが重要です。
重要というよりも、プログラミングは文法を1個1個習得していっても基本的にどこにも辿り着けません。
全体像を把握してゴールを決めて、そのためにプログラミングを日々やるっていうのがすごく大事です。
ゴールまでの道筋が曖昧な場合
「全体像を把握するのが大事」ってのは上に書いた通りなんですけど、ゴールまでの道筋が曖昧な場合も微妙です。
ゴールまでの道筋というのは、大きめのゴール、中くらいのゴール、直近のゴールへの道筋です。
例を考えてみます。
大きめのゴール: ウェブエンジニアで年収1000万、フリーランス
中くらいのゴール: ウェブエンジニアに転職 or 就職して2~5年働く
直近のゴール: プログラミング勉強してポートフォリオを作る
こういう感じでゴールが描けたら、そのゴールを達成する道筋を考えます。
直近のゴール: プログラミング勉強してポートフォリオを作る
直近のやること: Pythonをドットインストールで2週間勉強してからDjangoで何かウェブアプリを2ヶ月で作る
ゴールがあって、それを達成するための道筋が描ければ、あとはそれを日々のタスクに落とし込むだけです。
逆に言えば道筋が描けていないのであれば、プログラミングは時間の無駄になります。挫折しがちぃ。
ゴールまでの道筋を描くためにはめちゃくちゃネットで調べたり、あとはシンプルに信用できそうな人にメンターをお願いするのも手です。
プログラミングスクールはdisられガチですが、個人的には良いと思います。
独学でお金をかけずにやることもできますけど、お金をかけないでやることにこだわりすぎるのも時間軸で見た時のコスパ的な側面でリスクもあります。
あと「無料 = いいこと」っていうのは結構幻想です。
例: ネットの無料ジャンク情報を食い漁るよりも、1600円出して良質な情報を1個食ったほうがいい
入門者向けの講座を真面目にやってる場合(プロゲート・ドットインストールなど)
プログラミングは「真面目に1つ1つ勉強して3周する」みたいな勉強法があんまり意味ないです。
学校でやってきた勉強は反復して暗記するって感じですけど、プログラミングは目的のために必要なことをひたすらやっていれば勝手に文法もフレームワークの知識も増えていって書けるようになります。
厳密には勝手には書けるようにはなりませんが、アウトプットの受け皿があってそのためにインプット(適宜ググったりAIに聞いたり調べたり)するということを繰り返すことでしか技術力が伸びません。
本を10冊読むよりも、実務などの目の前のタスクを一生懸命こなして過ごすほうが血肉になるって感じです。
例えば、「フロントエンドのReactができる!」って言ってもレベル感は本当に千差万別です。
・本でやった程度の人
なんかコンポーネントってのを知っててサンプルみたいなUIはギリ作れる
少し複雑になるとお手上げ
・実務で2~3年やった人
クソスパゲッティコンポーネントをリファクタしながら、複雑なUIを作れたり、コンポーネントの設計などもできてパフォーマンスが悪くなったらなおせる、グローバルステートも必要なところで使って、APIのつなぎこみなども早くて上手く、コンポーネントのライフサイクルなども直感で把握できている、などなど
こういう例はバックエンド側でもインフラ側でも同じで、「なんとなく知ってる」と「できる気がする」と「めっちゃ使ってるお」だと似てるようでレベル感が全然違います。
定番のところを全てやったことがあるみたいなことを言う人もたまにいるんですけど、深さがゴミだと意味ないです。
話は脱線してしまったんですが、入門者向けのやつを必死に脳死でやっていても技術力は上がりませんしゴールに向かえません。
入門者向けのやつは最初の1~2週間で十分でそれ以降は使う意味がほぼないので、それ以降はちゃんと目的のための手段となるような実装をやっていく必要があります。
そのためにプログラミング言語やフレームワークやらインフラの知識が必要になるっていうイメージです。
まとめ
プログラミングやった時間を無駄にしないで、プログラミングを使ってなんかちょっと良い感じにしたいなら、覚悟を決めてゴールから逆算して解像度を高めることが大事だと思います。
なんとなくプログラミングを教養として知っておくとかは悪くはないですが、それ以外のケース(プログラミングで稼ぎたい、家で引きこもって稼ぎたい、海外から稼ぎたいなど)の場合は、本気で取り組む必要があります。
目的もなくなんとなく良いらしいからって理由で中途半端にやるのが1番微妙です!
と言っても長い目で見ればやったけどやめるみたいなもの良いのかもしれませんけど、本気でやりたい人はゴールを見据えてそのために何が今必要かを考えて毎日のタスクに落とし込んでプログラミングをやるのが良いと思います!よ!