はじめに
皆さま、こんにちは、ham(@sweettweet000000)と申します。
趣味でゲーム作りつつ、都内のプログラミング教室で小中学生の生徒にScratchとUnityを教えています。
ある同僚に 「何でプログラミングを学んでいるのか?」 と問われたのがきっかけでこの記事を書いています。
目次
困ったこと
どう返そうかと考えてみましたが、すぐに困ったことに気づきました。
この問い、答えられなかったんです。
理由
おそらくこの問いは、教科書はどれ?ということなのですが、ないんです。
少なくとも自分は、ScratchやUnityを勉強しようと思って書籍も買ってないし、よくある入門サイトも見てない。
「自分ってどうやって勉強してたっけ・・・?」
実際にアプリを使ってゲーム作りながら、へぇ、これってこう使うんだなとか、分かんないことはネットで適宜調べつつ・・・でも、これだときっと聞きたいことと違うんだろうな、と至りました。
そこで、自分の勉強スタイルを一から記事みたく説明してみよう、と閃いたわけです。
ここからやっと本題に入ります。
本題
まず、自分の目指しているゴールは2つです。
- 他人のコードが何となく読める
- 自分でコードが何となく書ける
そもそも、プログラミングのような先端技術は流行に影響を受けやすいので、この前勉強したことなのにもう使えない、ということがたまに起こります。また、言語によっても文法が異なるので丸覚えしていると応用が効かなくて辛くなりがちです。
例えば、「ふむふむ、C++ではint main() { return 0; }で関数が実行されるんだな」と丸覚えしてもPythonでは全然動きません。
そのため、自分は細かなところをいちいち覚えてはいません。Pythonでfor文にコロン必要かな?というふうに毎度ネットで調べています。
でもそれだと時間かかりません?ってツッコまれそうですが、頻出の構文があって何回も調べれば勝手に覚えてしまいます。そうつまり、この調べる過程が超重要なんですよね。
この流れどっかで見たことあるような・・・
プログラミング学習は外国語学習と似てる
ちょって待って・・・
ゴールが読みと書きなら、ほぼ外国語学習じゃん!!!!!!
実際、プログラミング学習は外国語学習にかなり似ていて応用がききます。
- 単語を学び
- 文法を学び
- 実践して確かめ
- よくあるフレーズを覚え
- 何となく言ってることが解るし、何となく自分の言いたいことを表現できればゴール
以下、それぞれの段階で自分がどうしてるのかについて簡単に説明します。
単語
プログラミング学習において、単語はあまり重要じゃないです。ネットという素晴らしい辞書のおかげですぐに調べられるから。
例えば、
・true / false
・int / float / string / bool
・Vector
・Rigidbody2D
trueなど、一部の語は大抵のプログラミング言語に共通しているため、一度覚えれば応用が効くのでお得
勉強するなら、知識の漏れがないように網羅的に扱っているものがオススメ。例えば、自分は「〇〇 入門」で出てくるサイトに加えて、店頭で読み比べして買った書籍が数冊で勉強しました。
コードを読んでてよく出てくる単語は覚えていて、たまに出てくる単語も調べたらすぐ分かるくらいの理解が理想です。
文法
プログラミング言語の文法は必須です。特別な概念が多々あるのがちょっと難しいですが、使用頻度が超高く超重要です。
例えば、
・波括弧({}) セミコロン(;) の用法
・void / return の用法
・private / public の用法
勉強法は、単語と同じです。
文法がわからないと読みにも書きにも影響するので完璧にしておきたいです。
実践
単語と文法に慣れてきたら読み書きの練習をします。
自分もやっていることですが、おすすめは他人の短いコードを手本にすることです。
流れは、こんな感じ。
- 理解する
- アレンジする
- もっと長いスクリプトに挑戦する
はじめは、一行ずつ丁寧に理解していきますが、だんだん慣れてくればスピードが上がって読み流せるようになります。また、このとき分からないことがあれば即座に調べるのが重要です。これがよい復習になります。
コメントを読む、print()といった出力を用いて変数の中身を確認する、なども理解につながります
コードが理解できたら、元のコードを少し変えてみたり新たにコードを追加したりして動きを試してみます。思った通りの動きができると楽しいです。
慣れてきたらもっと長いスクリプトに挑戦してみましょう。自分で一から作ってみるのも大変勉強になります。
フレーズ
おまけです。
いくつもコードを読むと、同じような箇所が多くあることに気づくと思います。それがフレーズです。例えば、「〜キーが押されたら」や「音を鳴らす」など。
よく出てくるフレーズを覚えておけば、次に出てきた時にとっても楽です。保存しておけばコピペして使うこともできます。
終わりに
プログラミングってどう勉強してるの?と何度か聞かれたことがありましたが、上手く答えられずにいました。
外国語学習とほぼ一緒という気づきで説明がわかりやすくなっていればと期待しています。
長い文章を最後までお読みいただき、ありがとうございました!
X(旧Twitter)もやっています。よろしければフォローお願いします。