プログラミング初心者が学習し始めると、これまでに出会ったことのない用語がたくさん出てきます。学習する用語が多すぎて嫌になってしまった、何から理解したら良いのかわからない、という悩みを持つ方もいると思います。
本記事では、どのプログラミング言語でも共通して理解すべき用語を10個に絞ってみました。
実際に開発現場で使われる用語を中心に、プログラミングする上では避けて通れない用語や概念を解説していきますので、まずはこの10個を理解してもらえると、その先の難しい部分もだんだんと分かるようになってくると思います。
僕自身も最初は苦労して理解しましたし、新入社員研修などで講師をすると、たくさんの人がこれらの用語の理解で躓いていました。そうした経験も交えながらできるだけわかりやすく解説していきます。
最初に理解すべき用語10選
①変数
変数はよく、何かを入れる「箱」という表現をされます。
箱に名前をつけて、プログラムの色んなところで、その箱から中身を取り出したり、入れ替えたりということをします。
変数は前に実施した処理結果を保存しておきたい時に使います。
例えば「1+1」という結果の「2」を覚えておく仕組みがないと、毎回「1+1」をプログラムに記載することになります。
人間なら「1+1=2」という処理結果を頭の中に記憶しておくことができますが、プログラムも同様に変数という中に記憶しておくことで色々な場面でそれを使えるようになります。
②条件分岐
「もし~だったら」、「もし~ではなかったら」という、ある条件によって処理を分ける時に書き方です。
これはプログラミングには必ずと言っていいほど出てくる書き方になります。
言語によって文法は様々ですが、条件分岐がないプログラミング言語はほとんどありません。
現実世界において、同じことをするとしても、人や時間や天候など、様々な条件によって結果が変わることはたくさんあります。
そうした条件によって結果が変わることを、プログラミングでは条件分岐として、条件によって異なる結果の数に応じて記述していきます。
③繰返し・ループ
繰返し・ループも条件分岐と並んで、プログラミングには必ず必要な書き方になります。
条件分岐と繰返しがあれば、これから出てくる用語を知らなくてもほとんどの処理を書けるというほど、重要な書き方になります。
人間は同じことを繰り返すと、体調や集中力によって異なる結果となることがありますが、プログラムは同じ処理の繰返しであれば必ず同じ結果となります。
その点で、繰返し作業は人間が行うよりも、プログラムに任せたほうが良いと言えることもあります。
繰返しの書き方も言語によって様々ですが、繰返す条件や繰返す時にどんな処理をするのかを記述していきます。
④関数・メソッド
関数・メソッドは、言語によって関数と呼んだり、メソッドと呼んだりします。
メソッド(method)は英語で、辞書的には「やり方、方法」という意味になります。
プログラム的には、処理をまとめて名前を付けたものを表し、「足し算する」「文字列を表示する」というのも関数・メソッドの1つとなります。
どんな処理を関数・メソッドにするのかは、プログラマ次第です。(もちろん言語によって指針があったり、案件によって決められていたりはしますので、また別の記事で紹介したいと思います。)
関数(メソッド)を利用する時に「関数(メソッド)を呼び出す」という言い方をします。
関数・メソッドを使うメリットは、やはり同じ処理を色々なところで使いたいときに、関数・メソッドにしておくことで、何度も同じ処理を記述しなくて済むという点です。
この後に出てくる引数と戻り値を組み合わせることで、少しだけ違う処理をうまく共通化することで、効率よくプログラミングをすることができます。
⑤引数(ひきすう)
引数は現実世界ではあまり聞くことがない単語や概念なので、慣れるまで苦労する方が多いです。
関数・メソッドを呼び出すときに一緒に渡される変数、または関数・メソッドの立場としては受け取った変数という意味です。
この引数に何が渡されるのか(受け取ったのか)が理解できず、期待する結果が得られない、初心者の方をたくさん見てきました。
そのような時には、関数・メソッドで受け取った変数の中身を最初に表示する処理を入れてあげることをおすすめします。
中身が見えないので何をやっているかわからないというときには、表示する処理を入れて分かるようにしてあげる、またどんな順番で処理が動いているのかが わからないというときには、1処理ずつどんな結果になってそれをどう使っているのか、処理を追ってあげる(自分の頭や紙で処理を動かしてみる)と良いです。
⑥戻り値
引数は、関数・メソッドが値を受け取ることを意味していましたが、戻り値はその逆で、関数・メソッドが返す結果、また呼出し元の立場としては関数・メソッドから受取る結果を表します。
呼出し元は、戻り値を変数として受け取ることで、その後の様々な処理に使うことができます。
関数・メソッド、引数、戻り値は、使わなくてもプログラムを書くことは可能ですが、業務や一定規模のプログラムになると必須の用語・概念になります。
⑦フラグ
フラグは旗という意味ですが、現実世界でも「フラグを立てる」「フラグが立った」などと言うことがあります。
フラグは上げるか、下げるかのどちらかを表すもので、条件分岐の条件として使われります。
「もしフラグが立っていたら~の処理をする」という形で、条件となりうるものをフラグとして設定します。
⑧配列
配列は、書籍などでは箱が並んでいる絵でよく表されます。
変数という箱をいくつかまとめて、まとまった箱たちに1つの名前を付けるというものです。
配列も必ずしも使わないといけないというわけではなく、箱を1つ1つバラバラの状態で、変数1、変数2として扱えばプログラムとしては記述できます。
ただ、繰返し処理を行う時は、この配列と相性がよく、処理を簡潔に記述することができます。
プログラムは、コンピューターに処理させるものであると同時に、自分以外の人がわかりやすいように記述するものでもあります。
できるだけ処理を簡潔に、同じ処理を何度も記述しない、というのも良いプログラマ、エンジニアを目指すには必要な力となります。
⑨型
言語によりますが、型と呼ばれる機能が備わっている言語があります。
数値や文字列の変数を数値型、文字列型というような値の種類によって区別し、同じ処理でも型が異なると、違う結果となる場合があります。
例えば、数値型の1と文字列型の1をそれぞれ+(プラス)すると結果が異なる場合があります。
数値型:1+1 の結果は 2 (数値同士の足し算)
文字列型:1+1 の結果は 11 (文字列同士の結合)
このように型を使うと、数値型の変数に文字列を入れることをできなくしたり、異なる型同士を処理することをできないようにするなど、言語が持つ機能によってプログラミングのミスを未然に防ぐことができるメリットがあります。
チームで開発する際には、他人が作ったプログラム(関数やメソッド)を利用する場合がありますが、この時に型があると、使い方を誤ってミスしてしまうことを防ぐことができるため、最近では型の機能を持つ言語が選択されることが多くなって来たように思います。
⑩コメント
コメントはその名の通り、注釈、補足、解説等の意味で、プログラムを見ただけでは分かりづらい部分を、日本語や英語などの人間が使う言葉で補足してあげるというものです。
プログラムの中にそのままコメントを記載すると、コンピュータが実行する際に処理と見誤ってしまい、意図しない結果となったり、実行に失敗するため、言語によってコメントを区別するための記載方法があります。
一人でプログラミングする際は、自分で書いたプログラムなのですべて理解できますが、チームで開発する際にはこのコメントを記載することが重要です。
コメントとして何を書くべきなのかは、様々な指針がありますので、また別の機会に紹介したいと思います。
最初に理解すべき用語10選を理解した後の学習方法
上記の10選が理解できると、ある程度のプログラムは書けるようになります。ここから先は、プログラミング言語によって持っている機能が様々ですので、それぞれの言語によって進めていく学習が異なります。
最後にもう1つだけ、覚えて、実践して欲しい用語があります。それは「リファクタリング」という用語です。
プログラミングを行う際に、悩んで手を動かせない方がいます。きれいに書こうとすることは大事ですが、まずは手を動かすことが重要です。
ソースコードが汚くなったと思ったら、「リファクタリング」を行います。リファクタリングは改善と近い意味合いで、ソースコードの結果は変えずに、中身の処理を変更する手法になります。変数の名前をわかりやすく変える、同じ処理を関数やメソッドとして切り出す、複雑な条件分岐を整理して見やすくする、コメントを入れる、など様々ですが、これらを常に行ってより良いプログラムとなるように改善をしていきます。
最初は汚くても、リファクタリングをすればよいのです。
プログラミングを学習するには、たくさんのソースコードを書くことが必要になります。まずは手を動かしてプログラミングの楽しさを感じてもらえたら幸いです。
コメント