#前置き
新しい言語やスキルを学びたいと思ったけど、わかりやすいと評判の学習書を読んで挫折したこと、ありませんか?
「入門/よくわかる/初心者のための/たのしい/○○でもわかる!」なんて書いてたのになんで理解できないんだろう…。
自分へのアウトプットと、同じ経験をしている人になにか残せたらと自分なりの向き合い方を考えてみました。
##いまのぼく
前々から興味があった言語について。
新しく学習したいと技術書を買ったのですが、早くも挫折しそうです。
私も一応技術者の端くれ。
今メインで使っている言語に関しても似たような経験があったなぁと考えたとき、
何故か技術とは直接関係のない学生時代を思い出した。
##唐突な自分語り
中学生の頃、英語が好きだった
1つ1つ新しい表現を知ることが楽しくて仕方がなかった
高校に入り、いざスキルアップと考えたが授業内容で躓いた。
「これは関係代名詞だけど、こっちは関係副詞だね」
「時制の一致を用いればここに入る単語は過去形になるよね」
英語を知りたいだけなのにまず「言葉の定義」を覚える事に違和感を感じた
好きだったはずの英語が苦手になった
##おそらく今同じことが起こっている!
たとえば「I have a pen.」の意味として、
**「私 + 持っている + 1個 + ペン + 。」**と教えるのか
**「一人称の人称代名詞 + 動詞 + 不定冠詞 + 名詞 + 終止符」**を説明するのか。
どちらも正しいけど、たぶんここが初心者にとっての壁なんだろうと思った。
例えば以下の説明があったとする。
オブジェクトは「もの」、メソッドは「オブジェクトに対しての操作を決めている仕組み」です。クラスは「設計書」のオブジェクト、インスタンスは「クラスを基にできあがった」オブジェクトです。
そして、クラスオブジェクト内からメソッドを実行してインスタンスオブジェクトを生成する方法はクラスメソッドで、新しいインスタンスオブジェクトからクラスオブジェクト内のメソッドを参照・実行してインスタンスオブジェクトを生成する方法はインスタンスメソッドと言います。
うん、慣れ親しんでいない人にとってはだいぶイメージがつきにくい。
※ちなみに僕なりの解釈をざっくりまとめただけなので間違っていたらすみません。。
##初学者のアプローチ
思うに「初心者」と呼ばれる人には2種類いると思う
####ざっくり全体像を把握したいひと
- 目的はないが、興味がある人
- 目的があるがまずは簡単なものから動かしてみたい人
- スキルの1つとしてとりあえず学びたい人(引き出しを増やしておきたい人)
etc
####正しく理解したいひと
- 目的がハッキリしていて、且つモチベーションが高い人
- 改めて基礎を学びたい人(独学でかじったレベルの人)
etc
僕含め、多分挫折する人は1の括りが多いんじゃないかな?
2の人に関してはおそらく学習スピードが早いと思われる。ただしモチベーション維持が難しい。
##初心者向けの本
そして、所謂「初心者向け」と呼ばれる学習書も2種類あるという事になる。
- 全体像を把握するための本
- 正しく理解するための本
「ざっくり全体像を把握したい人」が「正しく理解するための本」を読んでるのが、苦しむ原因なんじゃないかな。
もちろん、世の中のそういう書籍が駄作かと言えばそんな事はない。
ただ、「初心者」という目線が何を指すのかにもよるんだろうとは思う。
僕が言いたいのはどちらのタイプや本が良いかという話ではなく、
それぞれのタイミングで自分のタイプの学習書を選ぶことが大事ということ。
いずれにしても、興味や関心を行動に移そうとする時点で尊いはず。
なので、技術書は人やネットでオススメのものを買うより、
実際に見て合う合わないを判断したほうがいいと言う事です。
当たり前の事かもですが、それに気づかない間は結構辛い。
##僕なりの結論
今まで
興味を持つ
↓
初心者向けの技術書を探して買う
↓
読む
↓
正しく理解しようとする
↓
全然簡単じゃない
↓
辛い
↓
挫折
みたいな事がよくあって、そのたびに
・向いてないんじゃないか
・やる気が足りないのかな
・理解力がないのかな
なんて思っていたけど、スキルパスの向き合い方を変えるだけで解決しそう。
個人差があるので一概には言えないが、僕の目指す方向としては
- 「ざっくり全体像を把握」してみる
- 何でもいいからとりあえずアウトプットしてみる(デタラメでも最悪動けばいいの精神)
- 自分の中で1と2のトライ&エラーを繰り返す
- 「正しく理解」する事を目的にする
中級者になるためにはどちらの視点も必要にはなってくる。
pen I a have.
でも意味は通じるかもしれない。でも正しくはない。
そんな訳で今までの自分をアウトプットしてみる(物理的に)
def read
##元の興味・やる気(単位は不明)
motivation = 10
#読んだページ数
page = 1
#本を読み続ける
loop do
#読む
puts "本を#{page}ページ読んだけど"
#辛さを味わう
puts "全然簡単じゃなくない?"
puts "辛い・・・"
#読んだページ数は増える
page += 1
#やる気が削がれる
motivation -= 1
puts "(モチベーションが#{motivation}になった!)"
#モチベーションが保てなくなった場合
if motivation <= 0
#挫折
puts "もうダメだ・・・"
puts "~ 挫 折 ~"
#終了
break;
end
end
end
read()
申し訳程度のソースコード、且つ稚拙ですが今の自分にとって動けばいいかな。。
##まとめると
「初心者向けで分かりやすい」と言われた本を理解できなかったのは決してあなたのせいではなく
ただ単純に"今の"自分にとって分かりにくいものを選んだだけ。
凹む事は何一つない。
とりあえず自戒を込めてアウトプット。
願わくば、あなたの「好き」や「知りたい」が苦しみとならないように。