
プログラミングに関してはIT業界に関係のない方に関しても、最近よく耳にしますよね?義務教育でプログラミングが必修科目となるなど国を挙げてIT業界の重要性を考えていることがわかります。

プログラミング、プログラミングってよく聞くけど実際はどうやっているの?
IT業界に興味があるしプログラミングをちょっと勉強してみようかな
こんな考えのお持ちの方でしたらこの記事は有益だと思いますので読みすすめていただけましたら幸いです。
IT業界を知るためにプログラミングの知識は避けて通れません。エンジニアが使う様々なツールに関してもプログラミングを使って作られているのですから、ガッツリプログラマレベルでコードが書けなくても、エンジニアはプログラミングを知っておくべきです。
筆者は未経験からエンジニアに転職をしました。年齢としては30歳になってからなので遅咲きのエンジニアになります。このmoriblog(モリブログ)では筆者の経験を元にIT業界やIT技術について発信しております。IT業界について興味のある方は読みすすめていただけたら幸いです。
この記事ではプログラミング初学者の方にプログラミングの考え方について知っていただくために書きましたのでプログラミングについてよく知らないという方に読んでいただけたら幸いです。
※IT業界の情報について知りたい方は以下も合わせて読んでみてください。
プログラミングとは

プログラミングについては私もIT業界に転職を考えるまでは全く知りませんでした。
ここではプログラミングについて簡単に解説していきます。
コンピュータープログラミング(英語: Computer Programming)とは、ある特定のコンピューティングの結果を得ることを目的として、実行可能なコンピュータープログラムを設計・構築するプロセスのことである。プログラミングが関係するタスクの例としては、アルゴリズムの生成、アルゴリズムの正確さとリソースの消費量のプロファイリング、選択したプログラミング言語でのアルゴリズムの実装(これは一般にコーディングと呼ばれる)などがある。プログラムのソースコードは、コンピューターのCPUで直接実行される機械語ではなく、プログラマーが理解できる1つ以上のプログラミング言語で書かれる。プログラミングの目的は、あるタスク(オペレーティングシステムのように複雑な場合もある)をコンピューター上で自動化する1連の命令を見つけることで、与えられた問題を解決することである。そのため、プログラミングのプロセスには、アプリケーションドメインに関する知識、特定のアルゴリズム、形式論理など、さまざまな主題に関する専門性が要求されることが多い。
ウィキペディア(Wikipedia)
上記の内容をもとに解説していきます
プログラミングを行う目的はプログラムを設計・構築し、実行することでコンピューターの結果を得ることです。
その目的を達成するためにはプログラミングの言語を使うのですが種類については選択することが可能でプログラミングの実装の工程はコーディングと呼ばれます。
プログラミングはコンピューター上で自動処理を行わせて目的の結果を得るためにコーディングを行っていきますが、コーディングで書くソースコードに関してはあくまでも人間が読みやすい定義として作られたものであり、コンピューターが直接読めるものではありません。
要するにプログラミング言語も人間が作ったものでありコンピューターが読める形に変換することで、プログラムが実行できるということです。
プログラミングはコンピューターに命令してシステム上で目的を達成するための手段になるため、プログラミング言語だけ勉強するだけではなくドメインや、システム、ミドルウェアについての知識も必要になります。
プログラミングの変数とは

プログラミングを使う上で欠かせないのが変数になります。
ここでは変数について解説していきます。
プログラミングにおける変数(へんすう、英: variable)とは、高水準言語のプログラムのソースコードにおいて、扱うデータを読み書きする記憶域 (storage) のことであり、固有の名前(識別子)によって識別される。変数を用いることで、データを一定期間記憶し必要なときに利用することができる。高水準言語において、変数は記憶装置(メモリ)を抽象化する役割を果たす。
一人一人の人間が異なる名前によって区別されるように、変数も個々の名前によって区別される。これにより、プログラム上で複数のデータを容易に識別・管理することができる。変数の識別子 (identifier) のことを変数名 (variable name) という。一般に、変数が表すデータをその変数の値(あたい、英: value)という。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
プログラム中で、必ず使われるパラメータが変数になります。
変数はデータを保存しておく箱と例えられる事が多いです。(記憶域)
プログラム上でデータを管理するにはこの変数が役に立ち、変数は個々の名前をつけることが可能です。
変数の主要な操作は
になりこれらをプログラミングで使うことで、保存した変数のデータをプログラムが使用することができます。
宣言
プログラムの中でどのような名前の変数を用いるのかを、プログラミング言語の文法にのっとって明確に示すことを変数の宣言(せんげん、英: declaration)という。
ほとんどの静的型付けプログラミング言語では、変数を宣言する際にその名前だけでなくそのデータ型も指定する必要がある。 これにより、各変数が扱うことのできるデータの種類を制限でき、プログラムの型安全性が保証できる。一般に、データに対して行なえる処理はデータ型によって異なるので、データ型を厳密に検査することで、誤ったプログラムを書いてしまうことを防止するのに役立つ。
動的プログラミング言語では通例動的型付けが行なわれ、宣言なしに変数を使うことができる。
関数型プログラミング言語に代表される静的型付けプログラミング言語では、プログラム側で型を明示しなくても、言語処理系(コンパイラ)が型システムに基づいて自動的に型を推論する機能があり、これを型推論 (type inference) と呼ぶ。型推論をサポートする言語では、変数宣言時の初期化式(右辺値)から型を推論し、型名の記述を省略することもできる。ただしバリアント型(英語版)や動的型付けとは異なり、型推論により決定された型は不変であり、再代入によって変数が表す値の型が変わるようなことはない。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
変数を使うにはまず変数の宣言が必要になります。
変数の宣言方法に関してはプログラミング言語の種類によって様々あります。
クライアントサイドからサーバーサイドまで利用できるjavascriptの例ですと
var name
というようにnameは変数と宣言して使います。
var
で変数の宣言を行っております。
このvarは variable のvarということになります。
javaの場合は静的格付け言語になるため変数に対しては名前だけけではなく、データ型も指定する必要があります。
string name;
javaの場合は上記のようにstring型(文字)のnameという変数を定義しております。
そして;が無いとエラーとなります。
このように変数の定義に関してもプログラミング言語によって違いがあります。
代入
宣言した変数に対して実際にデータを関連付けることを代入(だいにゅう、英: substitution / assignment)という。
プログラミング言語によっては、変数の宣言と代入を一度にまとめて行なうことができる。 変数を宣言せずにいきなり代入できる言語もあるが、これは宣言されていない変数に対して処理系が自動的に宣言を補ってくれていると考えることができる。 ある変数に対して初めて行う代入は、特に初期化(しょきか、英: initialization)という。
多くの手続き型言語では、変数は複数回代入をすることができる。すでに代入を行なった変数に改めて代入をすると、その変数とそれまでのデータとの関連はなくなり、新しいデータと改めて関連付けされる。 関数型言語では、一つの変数には一度しか代入できないものも多い。このような言語では、宣言と初期化を一緒に行なうのが一般的であり、また、一つの変数が常に同じ値を持つ(値が変化しない)ことが保証される(参照透過性)。関数型言語では特にこの再代入を許可しない関連付けのことを、束縛 (binding) と呼ぶ。
出典: フリー百科事典『ウィキペディア(Wikipedia)』
宣言をした変数の箱の中にデータを入れることを代入といいます。
var name name = "moriblog"
というように宣言を行った後に
変数名 = 値
という記述を行うことで代入することができます。
既に値が入っていたとしても、通常であれば上書きすることも可能です。ただし宣言時に永続的な値として宣言することも可能ですのでその場合は上書きすることはできません。宣言方法によって変数のセキュリティが変わることがあります。
参照
その変数に代入したデータを利用することを、変数の参照(さんしょう、英: reference)という。
一度も代入を行なっていない、つまり初期化していない変数を参照することは意味を成さず、不正である。 しかし一部のプログラミング言語における特定の変数では、明示的な初期化式がなくとも変数を定義した段階で、自動的に何らかのデータ(通例ゼロまたはゼロに準ずる値)が既定値として変数に関連付けられる。このような場合は、初期化を明示的に記述しないまま変数を参照できる。
変数の参照は、変数の値を見ることになります。
変数定義後に参照は可能で、値が入っている場合は中身を表示し、中身が入っていない場合は空という情報を返します。
プログラミング言語ではコンソールに出力する方法も用意されております。
javascriptであれば
console.log(name)
というコードを書くことでnameの中身を確認することができます。
javaであれば
System.out.println(name);
となります。
先ほどように代入した後に上記のように記述した場合は
moriblog
が出力されます。
代入前など何も入っていない場合はnullという表示がされるはずです。
nullはプログラミングにおいて、参照するデータが何も無いという意味です。
変数を使った計算

変数の計算の例として、
以下の簡単な計算式を見てみましょう。
x = 6
y = 8
(x+y)
出力結果 14
この例では、x という変数に6 を、yという変数に8を代入しています。
宣言と代入と一緒に行う方法もありますが上記の例は宣言をすでに行っておりその後x、yに代入したと読み取ってください。
x+yをすると、それぞれの変数が足し算され、変数を参照すると合計が表示されます。
変数の計算には+(加算)以外にも
-(減算) *(乗算) /(除算) %(剰余算)
などが使えます。
変数が必要な理由

変数の必要な理由はおわかりでしょうか?
わざわざ変数を使わないでベタ書きで6+8をプログラム上で書けば良いのではないか!?
と思われる方もいるかもしれません。
例えば
1から100を画面に出力してください
という要件があった場合に実現するために1から100まで人の手でキーボードで打っていては大変ですよね?
しかしプログラミングの変数を使うことで、一瞬で上記の表示を実現する事が可能です。
例1から100まで数字を出力するプログラム
先ほどの1から100を画面に出力するコードについてプログラムを使うと実際にどういう書き方をするのか解説していきます。
まずはこちらのjavaのコードを見てみましょう。
for (int number = 1; number <= 100; number++) { System.out.println(number ); }
上記はプログラミングのfor文という文法で繰り返しの処理になります。java以外でもfor文はありますが、プログラミング言語によって書き方が変わりますので使用する場合は注意してください。
上記のコードのないようになりますが、繰り返しの条件はforの()の中身が表しています。この条件内であった場合に{}の中身の処理を繰り返し処理します。
forのカッコの中身は、
int型(数値)のnumberという変数に1を代入しています。
ここでは変数の宣言と代入を一度に行っております。
number++
によりnumberはループする毎に 1ずつ値が加算され上書きされます。
number <= 100
のよりnumberが100になるまで繰り返し処理を行う
というのがforの中身の処理になります。
System.out.println(number );
は変数の参照を行っており{}内に書かれておりますので、numberの値を繰り返し表示するということになります。
このようにして変数を使うことで
1から100を画面に出力する
ということが数行コードを書くだけで一瞬でできてしまいます。
変数を使うメリット

今回は1から100までの数字ですが今度は1から1000までを出力してくれと言われたらどうしますか?
最悪100まではタイピングスキルがある方なら頑張って打ち込む事ができるかもしれませんが1000までの数字を打ち込むのは人の手でやる事は相当しんどいですよね?
変数を使ってプログラミングをすることで数箇所変えるだけで、直ぐに内容の変更が可能なのも変数を使うメリットになります。
先ほどのコード
for (int number = 1; number <= 100; number++) { System.out.println(number ); }
こちらの、100の部分を変えるだけで自在に出力を変えることができます。
1000まで出力したいのであれば
for (int number = 1; number <= 1000; number++) { System.out.println(number ); }
とすればいい話ですよね?
変数を使えばこのような変更も一瞬でできてしまいます。
プログラミング言語による違い

これまで変数の
について見てきました。
先ほども触れましたが、プログラム言語によって変数の定義の仕方とセットの仕方が変わります。コードがどの言語でも共通して使えるわけではなく、言語にあった書き方をしないとエラーとなってしまいプログラムを実行することができません。
Javaの場合

javaの変数について見ていきましょう。
age(年齢)という変数に代入するとします。
Javaの変数の宣言は
int age;
となり、代入は
age=10
となります。
また宣言と代入が同時に行うこともでき、その場合は
int age =10;
という書き方ができます。
上記は数値になりますが、文字列に関しては
string name = "ken"
と書くことで宣言と代入が行えます。
javaの場合は方が変わりますので気をつけましょう。
JavaScriptの場合

JavaScriptであれば宣言は
var age
となり代入は
age = 10
と書きます。
以下のように
ver age = 10
と書くことで変数の宣言と代入が同時に行えます。
文字列は
ver name = "ken"
というような書き方になります。
上記で紹介したように言語によってコードの書き方は多少変わりますが考え方は共通する部分があるため、プログラミングを学習してコードが書ける人は、自分が扱ったことの無いプログラミング言語もできるようになります。
この記事のまとめ

この記事では、プログラミングの変数について解説してきました。
変数は値を入れる箱と例えられることが多く
という機能を使うことで、様々なプログラムを動かしています。
この変数により、データを変更したり加工をするのも容易に管理ができて変更箇所が複数あっても変更忘れをなくす事ができます。
プログラミングは目的の為の手段として使われますのでシステムを構築するにはプログラミングの知識だけではなく連携するミドルウェアや関連技術についても知識が必要です。
未経験からエンジニアになるためには、IT業界のについての学習が欠かせません。
以下記事にて未経験からエンジニアになるための方法を解説しておりますので確認してください。
コメント 記事に関するご意見・ご感想・ご質問などお気軽にどうぞ!※メールアドレスは非公開です