始めに
こんにちは、まんじです!
今回はプログラミングの勉強がつらい時の解決策っぽいものを書いてみたいと思います。
プログラミングの勉強がつらい時は、大体ここらへんが解決策な気がします。
- 全体像を把握したうえで、今の現在地とゴールをちゃんと確認しつつ勉強する
- 黙って習慣化
- シンプルに気分転換を多めにする
- あんまり無理しすぎない(勉強時間を増やしすぎない)
- ちゃんと多めに寝る
- 気持ちが暗くなりすぎないように工夫し続ける(部屋でずっと1人で勉強とかはやっぱり病むので避ける)
- そもそもある程度のつらさを許容するという前提条件のマインドを持つ
わりとどれも普通ではあるんですけど、大事なのはちゃんと目的のための手段になっているかどうかの確認と習慣化らへんかなーと思います。
実際つらい時は「つらいのはこれやれば一発でなおるぜ!!!」ってものでもなかったりするのが微妙にめんどいところです。
ただ裏を返すと、ピヨピヨ駆け出し勢はそこで脱落していくのである意味で「つらさ」がプログラミングの参入障壁っぽくなっている感はあります。
個人的にはちゃんとやるべきところらへんが抑えられている前提があるなら、あんまり頑張りすぎずにしっかり休むというか遊んだりすることが大事なんじゃないかなって思います。
ってことで、アーダコーダと書いていきます。
1個目: 全体を把握したうえで、今の現在地とゴールをちゃんと把握して勉強する
全体像から見て、今ここらへんをやれているっていうコントロール感があると、多少なり勉強のつらさが減るのかなって思います。
いわゆる俯瞰するみたいな感じで、全体を見据えて、今やってることに価値があることを再確認する、みたいな感じです。
プログラミングの勉強って結局日々の小さな積み重ねで、それが3ヶ月とか半年とか経過すると気付いたらすごい伸びてたとか、できるようになってたとか、仕事にできたとか、給料が上がったとか、そういうそこそこ中長期戦です。
1日めちゃくちゃやってみたり、1週間めちゃくちゃ頑張ったからと言って目に見える凄まじい伸びとかは期待したいけど、実際はそこまで伸びない(けど、確かに伸びている)ので、なんていうかメンヘラにならないためにも俯瞰した大局的な視点を忘れたくないところです。
目の前のことに集中するのも大事ではあるんですけど、近くだけ見すぎてしまうと、それはそれでちょっと微妙かもしれないので疲れたらちょっと俯瞰してみる、って感じの心がやっぱ大事かなーと思います。
実際に紙に書いてみると、なんか良い気がします。
↓こんな感じ。
- ゴール: 〜〜〜ができるようになる、〜〜〜円、来年稼ぎたい
- 現状: 〜〜〜を毎日やってる
- 思うこと
- 多分これをあと半年ぐらい続けられれればここらへんまでいけそう
- だから今日はこれをやって、明日はこれをやる、これさえすればとりあえずOK
- 最近はつらいけど、とりあえず脳死で耐えるカナー
地図なくずっと歩いてると不安になってつらいですけど、地図で目的地にピンをぶっさして歩いていくとちょっとつらくても耐え抜けるって感じなイメージです。
自分の場合だったら、「Goとこの領域をある程度高いレベルでできれば、エンジニアとして成長できるから、この1ヶ月はGoにだけフォーカスしよう」てきな感じで少し大きい部分から今日へ落とし込むようなイメージです。
(どうでもいいけど、ぼくはGoはやっていないし、多分やらない)
なんとなく無意識的にプログラミングの勉強をやれるのも大事ではありますけど、いつまでにどうなるためにやるのかっていう全体を俯瞰して見たときの目標はメンタル的にも効率的な意味合いでも大事です。
趣味でプログラミングの勉強をしてるならいいんですけど、プログラミングで稼ぎたいとか少し良いライフスタイルおくりたいとかなら、それを言語化してちゃんと目標設定してから日々の作業をやると良いと思われます。
目標設定とかの記事はこれに書いてます。
2個目: 黙って習慣化
習慣化できてくるとあんまりつらいとか楽しいとか何も感じずにただやるって状態になりやすいので、習慣にするのは大事だと思われます。
習慣の偉大さとかはよく語られますが、プログラミングの勉強においても習慣に勝るものはほぼないと言って良いと思います。
例えば、「朝起きて3時間プログラミングやる」とかって繰り返しまくってると徐々にまじで何も思わなくなります。
自分も朝起きてフリーランスプログラミング稼働とか別に何も思わなくて、意識低くただ惰性でプログラム書いてる(しかし成長はする)だけです。
休みの日も朝は予定入れないでほぼお金稼ぐための作業をしていますけど、別にそれも頑張ってるというよりかは、習慣になってるからただ無心で(定期的に熟考しつつ)やっているだけだったりします。
という具合に、、、習慣というか毎日やってれば別に何も意識しなくてもやれるようになります。
人間は良くも悪くも慣れてくるので、慣れてくると「つらい」って感情が減っていく感じです。
もし慣れるぐらいまでプログラミングの勉強にフォーカスできないのであれば、その邪魔してる要因を捨てましょう。
例えば、Youtube1個見始めたら永遠に見ちゃうとかなら、Youtubeを日常的に見ないことを習慣にする、みたいな感じです。
自分が今最もフォーカスすべきことにフォーカスしてると、習慣というかそれ以外やることがなくなるので、習慣になります。
そんでもって習慣化された無意識的な行動は楽にできるようになるので、つらさは減るかなーと思います。
(習慣化できていてつらい時は後述する気分転換らへんか、環境を変えるとかが必要カナー。)
習慣化するためには、決まった時間に決まった場所であんまり集中できなくていいから何がなんでもやることが大事です。(だと思われます。わからん。)
個人的には普通に使える時間の80%ぐらいをプログラミングして、終わったら残り20%を遊ぶなり家事なりなんかの作業に使うみたいなスタンスがいいのかなって思ってます。
3個目: シンプルに気分転換を多めにする
遊びに行くと、結構メンヘラっぽい感情はだいぶ緩和されることが多いと思われます。
実務前とか駆け出しシーズンはぶっちゃけプログラミングの勉強がつらいと感じることが99%ぐらいで、ぶっちゃけつらいですし、自分もつらかったです。
プログラミングスクールやらYoutubeやらで
「プログラミングはリモートで働けてフリーランスにもなりやすくて収入も高くてノマドもできる!」
みたいなの見て入ってくると、現実と理想とのギャップにわりと悶絶しがちです。
リモートとかフリーランスとかノマドとか収入が高いとかはちゃんとバリューを出せるようになれば得られるものなんですけど、最初の頃からは手に入らないです。
実務前
「え、勉強つらすぎ、しかもつまんない!」
実務後(駆け出しシーズン)
「え、周りのレベル高すぎてまじでつらい、しかも給料も安いしメガネがイキってマウント取ってくる」
大体こんな感じの現実があってそれでも勉強をする必要があります。
正常な感情を持ってればこのクソ劣悪な環境下で勉強を続けるのはつらいと思うのが結構普通です。
そんでそん時に大事なのが、勉強(仕事)を思いっきりやりつつ定期的に遊びに行ったりリフレッシュすることかなーって思います。
やっぱ引きこもって毎日毎日プログラミングの勉強だけしてるとシンプルにくそつまらないので、気分転換はクソ大事です。
自分が駆け出しシーズンの頃は上手に気分転換できなくて結構病んでましたけど、今思うと無駄だったなと思います。
遊んで気分転換することも仕事というか、そこらへんのセルフケア含めて、勉強というか作業です。
お金使えばそこそこ気を紛らわせる娯楽は資本主義にはたくさん用意されてるので、お金を使って誰かと飲んだり遊んだりするのが手っ取り早いです。
病んでて人と関わりたくない場合とか自信がなくて人と関わりたくない時とかは、結構しんどいんですけど、その場合でも一旦受け入れて無理やり人とか社会と関わることが大事カナーと感じます。
1人で引きこもって自分の世界に逃げると基本的に終わるし、メンタルダメージをそこまで恐れても結局それ以上のダメージをくらうように世の中ってのはなってるんで、メンタルダメージを一旦許容してやってその後に勝ちにいけばいい、てきなマインド。
なんにせよ週3日ぐらいはやることやってから遊んだほうがいいんじゃないかとか個人的には思ったりします。
4個目: あんまり無理しすぎない(勉強時間を増やしすぎない)
1日の勉強時間を長くしすぎるとつらくなるんで、ある程度に抑えようってことですね〜。
プログラミングは量ゲーな側面はあるものの、量を増やしすぎるとそれはそれで微妙に病むポイントになりがちです。
なので、「最近勉強時間増やしすぎてんなー」というメタ認知的なものを働かせて、ある程度のところで量を抑えるってことをするとつらみが少しだけ解消されるかもしれません。
プログラミングの勉強はおかれる状況によって一概にどれぐらいの長さやればいいってのもないですけど、自分の許容範囲ギリギリちょい下ぐらいまでやれればいいんじゃないかなって思います。
最近無理しすぎてるように思えるなら、意識的に休みを増やす意識を持つって感じです。
途中で心が折れるとそこで試合終了なので、折れないところらへんまでに意識して抑えるイメージ。
あと心が折れるまではいかなくとも、病んじゃって勉強をもう1週間やってません、、、とかもなんていうか無駄というか「何やってんだよおまえ感」があるので、プログラミングが必要なのであればそういうメンタルケアは自分で意識的にやりたいところです。
長時間作業しすぎてそれをずっとしてるとやっぱ誰でも病みます。
最近だるいから8時間だけやって終わったら外に遊びに行こうとか、マッチングアプリをやろうとか、そういう活動を心が病む前にやるって感じ。
5個目: ちゃんと多めに寝る
寝れば大体なおる説はあります。
結局、こういうちょっとメンヘラ系の気分が強く表面にで始めた時は睡眠時間を多めに取ってやれば、まあまあ解決します。(ていうか、睡眠時間が全てと言ってもいいんじゃないかっていう)
睡眠多く取って集中して勉強できたりできる状態だとそもそもつらいとかはあんまり思わないことがほとんどの人の場合で多いので、多く寝ましょう!が結論だと思います。
「もう疲れたしヤダナー」と思っていても、ぐっすり寝て次の日は「めっちゃ捗るんだがwwwww」みたいなのは結構人間あるあるです。
プログラミング自体が病みやすい行動なのが否定できないんで、つらい時は寝よう、という寝よう啓発。
寝るで思い出したのが、自分は半日以上外の空間に行って人間と酒飲んでくっちゃべって8時間ぐらいぐっすり寝ると、次の日めちゃくちゃ気分が復活します。
たっぷり寝て社会的な関わりを持つことが大事なのかもしれません。わかりませんけど・・・。
6個目: 気持ちが暗くなりすぎないように工夫し続ける(部屋でずっと1人で勉強とかはやっぱり病む)
外に出るとか身体を動かすとか、そういう活動をすると、わりと気分はなおります。
大体つらいとかってその時の気分の問題なので、なんていうか、自分の気を紛らわすことが大事です。
自分は独学でプログラミングやってた頃によく気分的にオワタって思うことが多かったんですけど、その頃は家で1人で誰とも話さずにプログラミングばっかしてるみたいな生活でした。
し、毎日毎日部屋で黙々とプログラミングとかしてると、実際のところ、正常な心の場合はやっぱり気持ちが暗くなるケースがほとんどの人に当てはまると思います。
なので、外に出るとか、外で勉強するとか、仲間を作るとか、手段はなんでもいいので気持ちが暗くなりすぎないようにすることは大事カナーと思います。
あとはある程度ルーティーンを決めて、そのルーティーンさえこなしていればいいマインドとかも結構おすすめです。
例えば、朝4時間家でやって残り3時間はコワーキングスペースでやって、それでOK!!!みたくコンスタントにやるとかそういうスタイルです。
ただなんだかんだ言っても、外に出て人と関わるというか、社会と関わるのが心を健全に保つコツな気がします。
というプログラミングに限らないお話で、2度目か3度目の繰り返しになっちゃいました😨
一緒にやれる仲間とかメンターとか環境があるのがやっぱり1番いいと思われます。
7個目: そもそもある程度のつらさを許容するという前提条件のマインドを持つ
そもそもプログラミングの勉強は多分どう考えても結構しんどいというか、つらいことが多いですし、実際しんどめ率高めです。
- エラーで進まない
- エラーというよりも、なんかよくわからなくて進まない
- 意図した通りに動かない
- コードが読めない
- ぶっちゃけプログラミング自体が楽しくない
などなど、プログラミングの勉強はつらい部分が多いのは否定できません。
「プログラミング最高!楽しい!」みたいな人は実際稀で、結構みんな苦しみつつもなんとか乗り越えていってる人が多い印象です。
(つらいならやめたほうがいいなどの意見もあるけど、ずっと楽しいみたいなものってどんな仕事でも存在しないと思われる)
なので、ある程度はそもそもつらい部分もあるということを許容して勉強をしないと、結構心が折れがちです。
↓実際はこんなんです。
理想: タカタカターン、はい、動きましたああ!
現実: は?(発狂)つらすぎ(発狂)動いた(嬉)
自分もフリーランスになってからもちょいちょいハマるところとか重い実装とか複雑な部分とかに直面すると微妙に病むし、みんなそういうちょっときついこととかとは上手に向き合ってるように思えます。
なんか許す心みたいなのが大事なのかもしれません。
まとめ
ざーっと読み返してみると、「つらい時はあんまり無理しすぎないほうがいいよね!中長期的にいこか!てか外出てたくさん寝よか!」みたいな感じの普通の内容でした。
そもそもやり方に問題があったり、ゴールを見据えずに漠然とプログラミングの勉強してるとかは微妙なんですけど、ある程度ちゃんと考えてやれてるならあとはいかにメンタルを維持するかってところな気がします。
大体なんでもそうですけど何かを伸ばす時は日数がかかるので、あんまりがっつきすぎずに少しのゆとりを持ってやれるといいように思えます。
とか書きつつも、自分もちょいちょい作業しすぎたりしてメンヘラ気味になることは多いですけど。。。
ただ、メンタルヘルスのコントロール含めて作業ってのは忘れたくないところです。
勉強して実務入ってからも、実務入ってから転職やらフリーランスになってからも、プログラミング乗り捨てたとしてもメンタルコントロールとは上手に向き合い続ける必要があります。
正社員やらフリーランスでプログラミングを仕事にするようになってからはメンターとか上司がいるからまだ楽にはなるものの、仮に仕事にしてからもメンタルケアというか「ある種のつらみ」のセルフケアは常に必要になります。
ちゃんと休むというか、そこそこ良い状態のメンタルをキープするためにも工数というかリソースを割きましょう!みたいな感じでした。