最近プログラミングを始めたんだけど、覚える事がいっぱいあって大変だし、いろんな言葉が出てきて意味がわからないよぉ。
確かに最初のうちは簡単そうな事でも1回で覚えられなくて、何度も本を見たりググったりするよな。
うん、昨日勉強した事ですらもう忘れちゃってさぁ。
僕、才能ないのかなぁ。
プログラミングに才能なんていらないぞ。経験を重ねれば絶対にできるようなるからな。
でも、勉強するときに意識するといいポイントがいくつかあるから試してみたらどうだ?
プログラミング学習時に意識すると良いこと
プログラミングを習得する上で、これをやると効率がいいなと思ったことがいくつかありますので、初心者の方の参考になればと思います。(言語はPythonですが、多分他の言語にも言えることだと思います)
- 関数などの、元の英単語と日本語訳を知る
- 関数とメソッドの違いを理解する
- 最初は良いコードで書けているか気にしすぎない
関数などの、元の英単語と日本語訳を知る
教材を見ながら毎日真面目に学習しているのに、関数がなかなか覚えられなかったり、覚えたと思ってもすぐに忘れてしまったりする事はありませんか?
そんな時には関数名の元になった英単語と、その日本語訳を知ると覚えやすくなるかも知れません。
なお、ここで言う関数とは組み込み関数の事を指します。
print > 印刷
例えば文字列を表示するprint関数ですが、これはすぐに分かると思います。
プリントですから日本語訳は「印刷」ですね。文字をコンソールに出力します。
プリンターとかで身近な単語ですからこれはすぐに覚えてしまうのではないでしょうか。
len > length > 長さ
では、続いてはlenです。lenは文字数や要素の数を返してくれる関数ですが、
元の英語は「length」です。日本語訳は長さですね。
要素、文字数などの「長さ」を数えてくれると言うイメージで覚えましょう。
dict > dictionary > 辞書
元となる単語は「dictionary」なので辞書ですね。これも学習の中で辞書とそのまま出てくるので覚えやすいかもしれません。
ここまでは簡単なので、ちょっとレベルアップしていきましょう!
abs > absolute value > 絶対値
これとか最初はちょっと悩みませんか?
「アンチロック・ブレーキ・システム」かなとか「腹筋」かなとか…
でもabsoluteが元なんだとわかれば絶対値を求める関数なのかーと言うイメージが湧くかも知れません。
iter > iterator (iterate) > 繰り返す
これなんか関数名だけ見るとなんと発音するのかも分からないんじゃないでしょうか。私だけでしょうか。ずっとイテルって読んでました。だからいつも忘れるんです。イテルのスペルはitelだっけ…とか。でもイテレーターと言う呼び方と、繰り返すと言う日本語訳を見ると配列から要素を順に「繰り返し」取得するイメージで覚えられないでしょうか。
append > 追加
pop > popout > 飛び出る
extend > 拡張
listで使うメソッドですが、どれがどれだか分からなくなる事はないでしょうか。要素を増やすのがextendだっけ、消すのはdelじゃないんだっけとか。この辺も日本語訳と併せて覚えるようにすると、「リストに追加したいんだから、えーっとpopが消すやつでappendが追加だ」などと思い出せるのではないでしょうか。
dicimal型 > 10進数
これは型ですが、これも日本語訳を見てから型の名前を知るとしっくりくると思います。
10進数のことですね。英語で言う機会なんて日常ではほとんどないですよね。
def > define > 定義
自作関数を作成するときのdefは、関数を「定義」すると言う意味ですね。
関数名を定義することで利用できるようになるんですね。
メリットは2つ
1、単語と日本語をセットで覚えると思い出しやすくなる
例のように省略されていたり、普段使わない英単語だけを見て覚えようとするよりも、元となっている英単語やその日本語訳も覚えると忘れにくくなると思いませんか?
元の英単語がわかれば意味がわかるでしょうし、元の英単語を覚えてなくても日本語訳がわかればその関数は何をするものか大体想像がつきます。
私は知らない名前が出てきたら一度翻訳してみるようにしました。すると意味がしっくり来るので、忘れたり迷ったりすることが(少)なくなりました。
2、知っている英単語が増えると英語の公式ドキュメント読むときに役に立つ
プログラミングの公式ドキュメントはどうしても英語が多いです。
しかもプログラミングで使う単語って普段の英会話ではあまり出ないような単語も多いです。
ついでに単語も覚えてしまえば今後ドキュメントを読むときに役に立ちますよ。
毎日コード書いていれば、いちいち調べなくても意味が単語の分からなくても、覚えてしまうと思います。しかし、初心者のうちは英単語と日本語セットで理解を深めながら覚えてみるのはいかがでしょうか。
関数とメソッドの違いを理解する
初心者のうちって関数とメソッドの違いとか曖昧なまま、とりあえずコード打っていませんか?
私は教材見ながらコード打つのに必死でそれが関数なのか、メソッドなのかあまり意識しないまま勉強していました。
しかし、ここの違いをしっかり認識しておくと、後々困らなくなると思います。
関数とは
まず、関数からいきましょう。
関数とは、ある値を与えると、呼び出し元に1個以上のなんらかの値を返す一連の文の事です。
ちなみに、どんな言語でも最初は「Hello,World」を表示させるのが定番だと思います。
Pythonでは print(”Hello,World”) と入力するだけのシンプルな関数ですよね。
len関数なんかも調べたい値や変数を入れるだけで使えますよね。
また、Excelを使った事がある人は多いと思うので、SUM関数などで「関数」という言葉には慣れていますよね。関数の文字列入力したら()の中に引数を入れていく…という認識で今のところは問題ないでしょう。
メソッドとは
じゃあ、次はメソッドですね。
メソッドとは、オブジェクト指向の言語で出てくる、オブジェクトを通して作用する関数の事です。
学習を進めていくと、list関数が登場すると思います。
そして、リストにデータを追加するものとして、list.append()がしれっと登場してくると思います。
初心者の方は是非、このドットで始まる関数のオプションみたいなのがメソッドなのだと、関数とは違うんだと認識してください。
関数はExcelにありますが、メソッドってExcelでは出てこないですよね。(VBAなら出ますが)
だから私は最初はあまり気に掛けてなかったんですよね。
それで、関数とメソッドの違いを知らないと何が不便なのかと言うと、
学習をさらに進めると、入門書の後ろの方に、必ずモジュール、クラス、メソッドと言う言葉が出てくると思います。
その時にクラスメソッドとか、インスタンスメソッドとか色々なメソッドが出てきて、混乱してしまう事があると思います。その辺の詳細は省きますが、最初のうちはまずは関数とメソッドと言う区別があるという事を認識しながら学習を進めて、いきましょう。
いずれクラスが登場した時に「なんとかメソッド」がいろいろ出てきますがが、その時に全てがごちゃごちゃになってしまうと思います。私はそうでした。でも、関数とメソッドとは何か?を自分なりのイメージでもいいので固めながら勉強を進めておくと、後で別のメソッドが出てきても、この場合のメソッドはこういう特徴なんだな、機能としてこういう区別があるんだなとか理解がしやすくなると思います。
最初はいいコードが書けているか気にしすぎない
これはよく言われていますが一応述べます。
ちなみに、インデントはタブキーを使うとか、PEP8的な話は最初から覚えていった方がいいと思います。
ここでいう、いいコードはいわゆる綺麗なコード、短いコード、読みやすいコードといったものです。
ある程度学習を進めて、いざ自分のアプリを作りたいとか、0から生み出そうとするときの話です。
自分の持っている知識で書き始めていくと、結構同じことをたくさん書いてるなぁとか、これforを使ったらもっと手軽なのになぁとか気になるポイントは出てくると思います。しかし、すぐに思いつかず調べてみるけど答えが分からず、結局何も進まずその日は終わってしまう…と言う状況がよくありました。
もちろんコードの質は大事ですが、最初のうちは何かが作れた、出来たと言う成功体験を積む方が意欲が湧くと思います。
例えば、
=2+2+2+2+2 というコードを書いていたとしても数をこなせば必ず
=5×2 というコードが書けるようになっていきます。
それを最初から上手に書こうとして、何も生み出せないでいるよりは、とりあえず動く、とりあえず形になったという目で見てわかる結果が出る方が学習意欲も高まると思います。
もちろん、最終的にはきれいなコードが書けるようになりたいですが、初心者のうちはこだわりすぎなくていいという事です。迷ったらとりあえず=1+1+1+1+1+1でもいいんです。
以上3点が、私がプログラミングの学習をするときに意識している事です。
どれか一つでも使えそうなものがあれば幸いです。