はじめに
「プログラミングが楽しくなくなった時の対処方法を考えてみる」を題材としていきます。
複数のパターンがあると思いますが、今回は3パターンに絞り考えていきます。
僕の実体験を踏まえた上での考えになりますので一概には言えないとは思いますがあくまで一つの例として読んでいただけたら幸いです。
では考えていきます。
ケース1 そもそも勉強してるが理解出来ない
よくあることだと思います。
僕の場合最初はプログラミングで仕事が楽になればいいなと思って勉強を始めたのですが、理解できずにやめてしまいました。
理解できないことを独りで悩み「なぜ、こんなことをしているんだろう?」と思ってやめてしまいました。
辞める理由はそれぞれかもしれませんが、初心者のうちに理解できずに挫折してしまう人が半数はいると思っています。
では僕の場合はどこで、挫折してしまったのかというと?
VBAの変数と引数の関係とFunctionの引数の関係とどちらも①値が変わること➁引数であることが苦手でした。
どのような流れで値が変わっているのか全く理解できませんでした。
引数の概念が理解できずおよそ半年間ほどプログラミング学習から遠ざかっていました。
その期間は特にプログラミングに触れることなく過ごしていました。
では、なぜ学習再開できたのか?
きっかけはGoogleの検索履歴からオススメ記事として表示されていた記事に「ステップ機能」の紹介がされていたのを試しに実行してみようと思ったことでした。
僕は「ステップ機能」で1行ずつ実行するのを全てのサンプルプログラムで行い1つ1つ理解していきました。
そもそも僕は本で学習しておらず、ブログやネット上の記事を参考に勉強してたので、ステップ機能を知りませんでした。
上記経験を踏まえてRupプログラミング学習サイトでは機能の説明も最初に最低限説明しています。
長くなりましたが以上のことを踏まえた解決策です。
1.ツールの機能を知ること。
・色々なプログラミングサイトを閲覧するといい情報が手に入る可能性がある。
2.ある程度の時間を置いてから学習再開する。
・小学生の時にわからなかった問題が中学生で理解できなかった理由がわからないのと同じ考えです。
3.プログラミング質問サイトに質問もしくは過去の回答を確認してみる。
・わからない箇所を探しに行くパターンです。
4.プログラミングをやっている友人や知人に聞いてみる。
・実は1番いいパターンだと思いますが周りにいないと出来ないです。
ケース2 現場でふとやる気を無くしてしまった
仕事中に「なぜこんなコードを作成しているのか?」と思っていきなりやる気がなくなりました。
理由は休憩も取らず仕事に追われている日々が長く続きメンタルがボロボロになっていたと思います。
解決策
1.休憩をとる
・これ一択です。
全ての仕事で共通ですが、いい休憩はいい仕事につながると僕は実感しました。
私生活の充実なくして仕事の充実なしです。
ケース3 自分の技術力に自信を無くした
自分の技術量と実際の成果物のギャップに幻滅していた時期がありました。
要するに「綺麗なコード」にこだわっていた時期です。
何を作るにしても綺麗さにこだわり全く完成しない時期があります。
解決策
1.なんでもいいから作り上げる。
「完璧を目指すよりまず終わらせろ」と言うFacebook創業者のマーク・ザッカーバーグ氏が言ったようにまずは完成させる。
どんなクソコードでもまずは動かすこと、動くことが大事です。
ユーザー目線では、動くアプリでなくては話になりません。
処理速度や使いやすさは、プログラムのいいところである「後で修正する」で対応してもいいと思いましょう。
2.人のために作ってみる。(クソコードでOK)
人に感謝されるようなプログラムを作成して渡してみる。
本当に便利であればすごく感謝されると思います。
また、使用時のアドバイスなんかも貰えて違った視点での改善の余地がある可能性もあります。
この考えは、今の僕でも意識的に行っています。
例えば完成したプログラムを使ってもらい、後からヒアリングしていく。
当たり前のようで意外と出来ていない人は多いように感じます。
まとめ
3つのパターン考えてみました。
いずれにしても忘れないでほしいのは、「休憩する」「正常に動作する」「人のためのプログラムを作る」この3点です。
どちらも初心者の頃は意識せずに自分の知識を全て絞り出して生み出していたと思います。
今見返すと笑ってしまうようなコードかもしれません。
しかしその完成したプログラムでも正常に動き、人に感謝されたことがあると言うことです。
さらに言うなら「昔のコードがクソだと思えた時は、その頃の自分よりも成長している」ということです。
プロの1行は凡人の100行であったとしても、同じように動くのであれば、「作るぞ!」って気持ちで作りつつ、学習も継続してより良いプログラムを作成していきましょう。