#このテーマの目的
最近ITの会社に就職したところ、初学者の同期と共に、研修を受けることになった。
その中で、初学者の人が陥りやすい考え方、のようなものを発見したので、自分もかつてそうだったなぁなどと過去を振り返りつつ、このように考えてみては?と提案をしたいと思う。
まあ、あくまで提案なので、悩みがあればぜひ周りの先輩方に相談してみてほしい。きっと優しく教えてくれるはずだから。
#モチベーションが上がるやり方で勉強する
正直、プログラミングは学び始めが一番しんどいと思う。
教材には何やら呪文のような物がたくさん書いてあるし、教材の呪文を書き写したはずなのに、何故かエラーを吐くし。
モチベーションは下がるし、勉強していて辛い。
そこで、勉強する時は、ぜひ自分のモチベーションを上げること意識してほしい。
例えば一区切り付く度にご褒美があってもいいし、お気に入りの音楽を書けながら勉強してもいい。
スタバでやると落ち着くならスタバでやればいいし、自室でやったっていい。
#段階を踏んで学習を進める
いきなりその言語の全てをマスターしようとすると、精神衛生上、非常によろしくない。
一歩ずつ、着実にやっていこう。
だいたいどんな言語でも、
- 条件分岐(ifとか)
- 繰り返し(forとか)
- 配列(hoge[]みたいなやつ)
が一通りかけるようになれば、基本(fizz-buzzとかじゃんけんとか)は書けるようになるはずだ。
まずは、とにかく上の構文を使い倒して、自作のコードをいろいろ書いてみるといい。これだけでもプログラムの楽しさの、その片鱗はうかがい知ることが出来るから。
そこから、例えばjavaなら、
- オブジェクト指向
- 例外処理
- ...etc
と発展させていくと良いと思う。
#コードを無理に覚えようとしない
段階を踏んで学習する上で、大事なことは、構文を無理に覚えようとしないことだと思う。
これは特に、新卒の人に見られる傾向で、時には写経までしてコードを覚えようとさえしていた。
全く無駄な努力とまでは言わないけれど、そこまでしているプログラマはたぶんほとんどいないんじゃないかな。たくさんコードを書く中で自然と覚えてしまうものだから、あまり気にしなくても良い。
構文が分からない時はどうするかって?
あなたは今、何を使ってこの記事を読んでいるんだい?
#とにかく書く
これは、一見非効率に見えて、近道じゃないだろうか。
プログラムって、どのように使うとどのような挙動をするか、が慣れないとイメージできない。
だから、失敗を恐れず、とにかく書いて試してみるか、位の心持ちで、いろいろとやってほしい。
###※プログラムを書いているソフトの止め方を知る
初心者のうちは意図せず無限ループを発生させてしまうことがある。
そんな時に止め方がわからないと焦ってしまうし、いろいろ試すのにためらってしまうことだってある。だからまずは、困ったときにこれを押す、というボタンを知っておけば、いろいろ試せるんじゃないかな。
#課題は複数回やるように心がける
これは、課題の量が多すぎなくて、時間のめどが付く人にオススメするやり方。
複数回繰り返すことで、その課題で身につけてほしいことが身につくし、そこで身についたことは必ず次の役にたつ。
やり方はいろいろあるだろうけれど、例えば以下のやり方を提案しておこう。
1.教材のコードを見ながらコピペして実行する(結果を知る)
2.教科書を参照しながら自分で書く(その結果を出力させる方法を考えながら書く)
3.細かい構文で覚えてないところだけ調べる(教科書は使わないで)他は自分で書く
4.今書いているものをもっと短くわかりやすく書けないかちょっと考えてみる(じっくり考えなくても大丈夫)
あるいは学習範囲が進む度に、昔のコードを見返してみるのも良い方法かも知れない。
例えば
hoge[0]=1;
hoge[1]=2;
hoge[2]=3;
.......
と全部書いてやっていたのをもっと楽に書けないか?、とか。
(いや、上記のコードにツッコミどころがあるのは認めるけど、大学生の時に友達を教えていて実際経験したことなんだ。初心者あるあるだと思うんだけれど。)
#わからない所はためらわずに経験者に聞く
プログラミングしている中で、自分で調べても分からないとか、何が分からないかが分からないとか、必ずこういう場面に出くわすと思うのだけれど、こういう時はさっさと経験者に聞いてしまうのが良い。
講義中なら講師の人に聞けばいいし、自習してる時でも、同じクラスの経験者に聞けばいいと思う。もちろん相手が忙しい時は即対応は期待出来ないのだけど、slackにコード投げといて、とか言ってくれるんじゃないだろうか。
#書いたコードは必ず経験者に見せる
さて、そうやって書いた自信のコードは必ず経験者の人に見せてほしい。
アルゴリズムやコードの中身は、上級者に近づくほど、短く、分かりやすく、見やすくなっている物だし、言語によって暗黙のルールとがあったりするんだ。(例えば変数の宣言をまとめて先頭に書くかどうか、とか)そうしてどんどん自分のコードをアップグレードしていくと良い。
#まとめ
本当は、変数名とかコメントとか、初心者の人に意識してほしいことはあるのだけれど、まずはここまで意識してくれると、自分でプログラミングを勉強する、コツが掴めるんじゃないかと思う。
何度も言うけれど、初学者にとって最初が一番辛いんだから、モチベーションが下がった時はサボってもいいし、周りに相談してみると良いと思う。
そうやって、ある程度身につけば、いろいろ自作できるようになって楽しいよ。