プログラミング言語とは?
プログラミング言語とは、コンピューターと会話するための「言葉」です。
人間同士が日本語や英語で意思疎通するように、コンピューターには独自の言語が必要になります。
例えば「このボタンを押したら画面を赤くして」と伝えたい場合、その指示をコードとして書けばコンピューターが理解して動作します。
プログラミング言語はたくさんの種類があり、それぞれ得意分野や特徴が異なります。
コンパイルとは?
プログラムを書いただけではコンピューターは理解できません。そのままでは「外国語の文章」を見せられたようなものです。
そこで登場するのがコンパイルです。コンパイルとは、プログラムをコンピューターが理解できる「機械語」に翻訳すること。
例えば、英語の映画を日本語字幕付きで見られるのは、翻訳者が英語を日本語に変えてくれたから。プログラムの世界でも、コンパイラという翻訳者がコードを機械語に変換してくれるのです。
ただし、プログラミング言語にはコンパイラが必要な言語と不要な言語があります!
- コンパイル型(事前に翻訳する方式)
- 例:C言語、C++、Java
- 書いたコードをコンパイルして機械語に変換し、実行ファイルを作成してから実行する。
- 事前に変換するため、実行速度が速い。
- インタープリタ型(その場で翻訳する方式)
- 例:Python、JavaScript、Ruby
- コードをその場で1行ずつ読みながら実行する。
- 手軽に試せるが、コンパイル型に比べると実行速度が遅いことがある。
コンパイル型は速度が速いのがメリットですが、事前に変換する手間が必要。インタープリタ型はすぐに実行できるのが便利ですが、大規模な処理ではやや遅くなることがあります。
それぞれ得意な作業があるんですね。
プログラミング言語の学習方法
これは私見ですが、ばりばりとプログラミングをする人でも、文法・使う語句などを完璧に記憶している人は多くありません。大体は「ここでこういう処理をしたいな~、こういう時どう書けばよかったかな~」と都度調べている人が多い印象です。(もちろんよく使う処理はそらで書けます)
プログラムを組んでみたいけど、一からどうやって勉強すればいいの?
どの言語を使うにしてもまず一番に大切なことは、
やりたいことに対して、それをどう具体的な処理に落とし込めるか。
例えば、Pythonで「おみくじを引くプログラム」を作りたいとします。
まずは日本語で処理内容を書いてみます。
1. おみくじの結果を「大吉」「吉」「中吉」「小吉」「凶」の5種類にする
2. ランダムで1つの結果を選ぶ
3. 選んだ結果を画面に表示する
ここで、処理に必要なのは「5種類の中からランダムで選ぶ」「選んだ結果を画面に表示する」
というところです。
「5種類」という数字を入れると検索結果が絞られてしまうので、
「複数個からランダムで選ぶ Python」などでGoogle検索してみましょう。
そうすると、小難しそうなサイトから初心者向けのサイトまで結果がずらりと並びますので、
いくつかサイトに入ってみて、とっつきやすそうな書き方のサイトでコードを確認します。
import random
data_list = ["大吉", "吉", "中吉", "小吉", "凶"]
rand_data_list = random.choice(data_list)
print(rand_data_list)
実際に動かしてみると、エラーになることもありますが、
エラーをまたGoogle検索することで先人たちの知恵が得られることもあります。
と私の学習方法を書いてみました。
仕事で開発するときもそうですが、大きな動きの設計(基本設計)、具体的な動きの設計(詳細設計)を
日本語で行ってから、コードにしています。
大体の動きは先人たちが実現させていますから、「させたい動き +プログラミング言語名」で検索して、
それらしいコードを書いて(問題ない環境やデータで)動作させて、おかしな部分を修正するという形をとっています。
おすすめの言語はPythonです。
使えるようにするまでが簡単で、文法に難しいところがなく、
先人たちの知識がたくさんネット上に転がっているからです。
環境構築(使えるようにするまでの準備)はまた別の記事で説明しますね!
まとめ
プログラミング言語はコンピューターとの会話をするための「言葉」であり、さまざまな種類や用途があります。
コンパイルは人間が書いたプログラミング言語を、コンピュータ側でわかる「機械語」に翻訳する作業であり、プログラムが動く仕組みの重要な部分です。
勉強方法についての記述が多くなりましたが、初心者でも少しずつ学ぶことで、楽しくスキルを身につけられるので、「ちょっと試してみようかな」という気持ちでスタートするのがおすすめです!