もう挫折しない!プログラミング学習の正しいモチベーションアップ3選

むね
どうもーむね(@mune_actor_en)です!

皆さんはどうモチベーションを保ってますか?

プログラミングしていると、

自力でエラーを解決できなかったり、教材見ながら学習するけど内容が難しすぎて嫌になることってありますよね。

むね
なんでこんなエラーも解決できないんだ。先輩エンジニアならサクッと5分で解決しちゃうのに…
と心折れることがたまにあります。笑

壁にぶつかってもできるだけモチベーションを保ちつつ、継続的に学習を進めたいですよね。

なので今回は、

もう挫折しない!プログラミング学習の正しいモチベーションアップ3選

をご紹介しますー!



なぜ挫折するのか

じゃあそもそもなぜ挫折してしまうのか。

Twitterの進捗報告の内容や先輩エンジニアたちが学習を進める上で注意しておくポイントなどを参考に、

原因を大きく3つに分けていきます。

ありふれたサンプルコードの名前を使っている

Progateや教材で学習した内容をこんな風にサンプルコードを使って作りますよね。

内容を理解するために扱うのはいいんですが、なんとなく少しとっつきにくい印象がありません?

確かに汎用的かつシンプルな表現であることは間違いないんですが。

ただ、楽しくプログラミング学習していく上では少し物足りない気がするんですよね。

些細なことですけど、モチベーションアップに繋がっているとは言いにくいんじゃないでしょうか。

あれこれ考えて動けなくなっている

一口にプログラミングの勉強といっても、やることが山のようにあるんですよね。

プログラミング言語の知識、エディターの操作方法、環境構築、HTTPの仕組み……

どれも必要不可欠だし、先輩エンジニアたちも今のうちに学んだ方がいい!と言っている知識がたくさんあります。

ただ、一気に理解してやろうとするのは不可能ですし、モチベーション維持するのもかなり難しくなります。

すごい人たちと比べている

TwitterでやQiitaなどで情報収集しているときに、

この人、自分と同じく未経験からプログラマーになったのに、比較にならないくらい知識量が多いな。
技術的な話が高度すぎて内容がわからないけど、スキル高いんだろうなこの人。

こんな具合に今の自分と先輩エンジニアを比較してません?

確かに上を見ることはモチベーションアップにもつながりますが、あまり自分とかけ離れすぎていると、かえって逆効果になってしまいます。

プログラミング学習の正しいモチベーションアップとは?

じゃあ具体的にどんな対策を取っていけばいいのか。
3つの方法を解説していきたいと思いますー。

ワクワクする目標&仕組みを設定する

ポイントは2つです。

  • 自分が興味のあるものを形にすることを目標にする
  • 変数名やメソッド名を好きな作品のキャラクター名にする

これまで自分が使ったことのあるアプリやWebサービスの中で、

自分もこんなアプリケーションを作ってみたい!と思えるものを目標にしましょう。

「みんなが作っているから、自分もTwitterのクローンアプリを作ってみよう」

ではなく、あなたが作りたいものを選べばいいんです。

例えば、今僕が作りたいなと思っているのは、

「役者専用コミュニティケーションアプリ」です。

  • 演技の技術に関するリアルな情報
  • オーディションで効果的に自分をアピールできるするためのノウハウ
  • 芝居の参考になる映画を厳選して共有する

など、役者特化のコミュニケーションツールがあったら面白いなーと思っています。

こんな風に、自分はどんなものを作りたいのかと具体的に想像を膨らますだけでもワクワクしません?

どうせ作るならまずは自分が興味のあるものを形にすることを目標にするといいですよ。

夢がどんどん膨らんで難易度が高すぎるパターンになってしまうといけないので、

まずは簡単なものから実装していく方向で考えることをオススメします。

それと、実際の実装ではあまり好ましくないですが、

変数名やメソッド名を好きな作品のキャラクター名にすると面白いです。

学習内容を理解するためにコードを書くときは、自分の好きな変数名にしてみると、意外にテンションが上がったりします。笑

例えば、僕はNARUTOが大好きなので、以前Rubyのサンプルコードをこんな風に書きました。

class Sinobi
attr_accessor :name, :type, :jutu

def initialize(name:, type:, jutu:)
@name = name
@type = type
@jutu = jutu
end

def info
"名前:#{@name} 所属:#{@type}得意な術:#{@jutu}"
end
end

sinobi1 = Sinobi.new("うちはサスケ", "うちは一族", "千鳥")
sinobi2 = Sinobi.new("ナルト","うずまき一族","影分身の術")
sinobi3 = Sinobi.new("サクラ","不明","百豪の術")

sinobies = [sinobi1, sinobi2, sinobi3]

sinobies.each.with_index(1) {|sinobi,i|
puts "#{i}{sinobi.info}"}

当時書いたものをそのままコピペしただけなので、現時点で動作確認はしてません。
すみません。笑

よく目にするサンプルコードの変数名と違って、なんだか愛着というか、親近感がありませんか?

ちょっとしたことですけど、これが意外とモチベーションが上がって学習がはかどったりするんですよ。



範囲を絞ってとにかく手を動かそう

一度にたくさんインプットしても身につかないので、まずは学ぶ範囲を絞りましょう。

範囲を決める判断基準の例を挙げると、

  • 今必要な知識かつ自分が理解していないものは何か
  • 繰り返し調べていることは何か
  • ワクワクする目標を達成するために最低限必要な知識は何か

すごく技術のあるエンジニアでさえ、はじめは初心者であり、豊富な知識があったわけではなかったはずです。

決定的な違いは、作業量経験値

ちゃんと行動しながら試行錯誤していけば、今あこがれている人たちと同じステージに上がれるはずです。

まずは今できることから始めて、少しずつレベルアップしていきましょう!

他人と比較するくらいなら過去の自分と比較しよう

すごい人たちと比べても、

落ち込むか憧れに浸るかで、行動できないままになってしまいます。

先程もお伝えした通り、すごく技術のあるエンジニアもはじめは初心者でした。

同じところはそこだけです。

今のレベルや頭の回転の速さ、理解力、価値観、これまで育った環境など比べても全く意味ないです。

例えば、カレーのおいしさとチキン南蛮のおいしさって比べられますか?

素材も味付けも全く違うものだし、比べること自体間違ってますよね。

個人的にはチキン南蛮が好きです。笑

それぐらい他人と自分は違っていて、いくら比べたところで時間がもったいないだけです。

じゃあ何と比べればいいかというと、過去の自分です。

昨日の自分と今日の自分では何が違いますか?

  • エディターのショートカットを1つ覚えた
  • メソッドを1つ理解した
  • SQLでWHERE句を使ってSELECT文が書けた

もしかして、こう思ったりしてません?

今日は全然大した成果をあげられなかった。やっぱり自分はダメなんだ…
むね
いやいやそんな風に思う必要は全くありません!というか、その時点で自分ではなく他人と比較している証拠ですよ。

たった1つのことでも新しい知識やできることが増えたということは、昨日の自分とは明らかに違う一歩を踏み出しているんです。

そこをちゃんと認めてあげてください。

進むスピードに速い遅いはあるかもしれませんが、続けていれば着実に前に進んでいます。

進んでいる方向が間違っていないかは、定期的に先輩エンジニアや信頼できる人に相談して軌道修正していきましょう。

ぼくたちに必要なのは、継続して学んでいく姿勢です。

うまく自分をコントロールしてスキルを磨いていきましょう!

最後に

もう一度まとめると、

プログラミング学習の正しいモチベーションアップ3選
  • ワクワクする目標&仕組みを設定する
  • 範囲を絞ってとにかく手を動かそう
  • 他人と比較するくらいなら過去の自分と比較しよう

です。

ぜひ、今回の方法試してみてください!

以上、

「もう挫折しない!プログラミング学習の正しいモチベーションアップ3選」

をお送りしましたー!



コメントを残す

メールアドレスが公開されることはありません。

ABOUTこの記事をかいた人

どうもーむね(@mune92283498)です! 大卒→医療事務1年8ヶ月→都心で1年6ヶ月役者→営業を1年8ヶ月→全くの未経験でIT系へ転職。プログラマー1年目。 大切な人からの言葉は、「あんた崖っぷち1mやで」 【やれなかった後悔よりもやった後悔】 だって、全部経験値になって自分を作ってくれるから。