hideyoshi.life

WEB系フリーエンジニアの日々

プログラミングとは?

今後ちゃんとした記事を書くために言葉の定義を練習がてら残しておこう。

 

概要とパーツがあれば後は組み立てて、体裁整えるって形までに持っていきたい。

 

プログラミングとは、プログラムを書く作業のことなのでプログラムとは何かを知る必要がある。

プログラムとは、コンピュータやスマホ上で動くアプリやインターネット上のサービス(Amazonや楽天といったお店やfacebook,Twitter.インスタグラムといったsns)を動かすための設計図みたいなもの。

 

一言でプログラムといっても日本語、英語とかと同様に用途や経緯によって様々なプログラミング言語が存在している。

 

有名なものはjava,c#,php,ruby,python等がある。

それぞれ一長一短があるので作りたいものや作り方によって選ぶ必要がある。

 

初心者の方が特にこれといって作りたいものがなくプログミング言語の基本として勉強するのであればjavaが無難であろう。phpやpythonはとっつきやすく、結果簡単に動かせるので取り組むのは楽。ただ、最近のプログミング言語のベースとなるオブジェクト指向やコンパイル等プログラムの仕組みを学ぶにはやはりちょっととっつきにくてもjavaから学習するのが他の言語への応用が効きやすいと思う。

 

興味がある方は、プログラマ言語の比較はこちら。

 

注意

それぞれの言語でそれぞれの目的によってフレームワークというアプリやサービスを簡単に作るための雛形の仕組みが存在している。

簡単に例えるなら、コンビニの店舗立てるみたいなものかな?

コンビニとかだと冷蔵庫とかレジとかフライヤーとかは基本機能はみんな同じだからあらかじめ用意されているけど、それをどこでどう使うとかを自分で決めて設定できる。また、用意された棚は使いづらいから自分で作っちゃおう!的なこともできる。有名なものだと、

webシステム作成用に

ruby製のruby on rails略してror

java製のspringやstruts

php製のcakephpやlaravel

がある。

 

 

特にウェブシステムを作るのであればフレームワークを使わないケースは、現在ほとんど無い。ただプログラムの基礎を学びたい方にとっては、プログラム自体の勉強にはならないので、基礎学習にはフレームワークは避けた方が良いだろう。

必要であればフレームワーク比較、選定はこちらが参考になると思う。

 

前にも書いたけど、プログラミング言語は用途によっても変わる。

大きく分けて以下の4つになる。

 

ウェブサイト

スマホアプリ

pcアプリ

組み込み系

 

やる気を削ぐ様で申し訳ないが、今まで述べたものはベースとなる言語なので、実は単独の言語だけでシステムが完結することはほとんど無い。

大抵のシステムはデータベースと呼ばれるデータを記録するためのソフトを使う必要があるし、それにも色々な言語がある。sqlといわれるものが一番メイン。

ウェブだと見た目を作るためのhtml,cssとか動きをつけるためのjavascriptもある。

 

細かいウェブサイトの仕組みはこちらをどうぞ。

 

話を戻すとプログミング言語だが、結局知りたいのは何をしているのかだろう。

 

プログラムがしていることはごく単純で

インプットがあって

足し算引き算といった四則演算を順番を定めて実施してアウトプットを返しているだけ。

インプットは、キーボードとかマウスの操作のこと。

アウトプットはモニターが分かりやすい。

他のプログラムとやりとりすることもあるから、アウトプット、インプットがデータベースになることもある。

 

四則演算の実施順番というのがキモで、何回繰り返すとか、もし何とかだったら、なになにするといった条件によって順番を変えてたりもする。

 

以上、プログラムとは何かの説明だがどうかな?

 

単純化すると原理は本当に簡単なのだけど、他のシステムが色々あったり、登場人物が多かなってくると、色々と覚えること多くて大変だと思う。

 

プログラムは単なる四則演算の順番を決めてるだけ

 

こんがらがってプログミング勉強が嫌になったときにでも、原理、原則を思い出すとちょっと変わった見方が出来るのかなと思う。