GADGET RECIPE

Gadget Recipe

プログラミングの基礎を完全マスター

プログラミングの基礎を完全にマスターするというのはどういうことか?そもそもプログラミングの基礎とは何かを定義します。あくまでも一般的な定義ではなく個人的な見解となります。

プログラミングとは何か?

プログラミングとは、コンピュータに特定の仕事をさせるために命令を作って、それを組み合わせることです。私たちが普段使っているアプリやソフトウェアは、プログラミング言語で書かれたコードが動かしています。

プログラミングは、問題を分解するためのスキルがとても重要となります。プログラマーは、複雑な問題を小さく分けて、それぞれに対する最良の解決策を考えます。これをコンピューターが理解できるようにコードで指示して、プログラムとして書きます。

簡単に言うと、プログラミングは問題を小分けにして、それぞれの小さな問題をコンピューターが解決できるように教えていく作業です。

料理のレシピで考えてみる

プログラミングを初めて学ぶ方は、料理のレシピをすることをイメージしても良いかもしれません。まず、卵焼きを作ってみましょう。

  1. 卵を用意する
  2. ボウルに卵を割って入れる
  3. 卵をかき混ぜる
  4. フライパンに油を入れて中火で熱する
  5. 油に気泡が現れたら卵を入れる
  6. 焦げないように数分間焼く
  7. 自分の好みの焼き加減でお皿に移す

このように卵焼きを作ってと言われたときに頭の中に何をすれば良いか順番がある程度イメージできると思います。しかし、ミネストローネを作ってと言われても何を準備して、どのように調理して良いかも全く分からないと思います。

プログラミングの初心者もいきなりミネストローネを作ってと言われているのと全く同じで、「1から10までの数字を足し算する」プログラムを作ってと言われても何から始めれば良いか分からないのと同じです。

プログラミングの基礎とは?

それでは、まず何から始めれば良いかというと先ほどの「卵焼きを作って」という簡単な料理の作り方をたくさん学べば良いわけです。料理にもレシピがあるようにプログラミングもまずは簡単なレシピを真似しながらたくさん作る練習をする必要があります。

しかし、レシピ通りに卵焼きを作れるようになればいいんですよと簡単に言いましたが、レシピには材料の取り扱いや調理方法などだけしか書かれていないので、そもそも材料を知らなかったり、蒸すという調理法を知らなければ作ることができません。

プログラミングも同様にレシピを見て作れるようになるための基礎を学ぶ必要があります。プログラミングの基礎としては次の3つを理解することができれば問題ないと考えます。

  1. 材料の取り扱い・・・型
  2. 調理方法(煮る、焼く、蒸すなど)・・・演算子
  3. 調理の焼け具合などの判断・・・制御文

料理の材料は、にんじん、じゃがいも、大根、トマト、牛肉・・・と非常にたくさんありますが、さいわいプログラミングでいう材料の「型」は4つを学ぶことで十分です。それぞれの型で定義される値は通常変数と言われる箱に入れて取り扱われます。変数の名前は一部を除いて好きに設定することができます。

  • 整数型(int型)
  • 浮動小数点型(float型)
  • 文字列型(str型)
  • 真偽型(bool型)
# a,b,c,dが変数

a = 10       # 整数型
b = 3.14     # 浮動小数点型
c = "apple"  # 文字列型
d = True     # 真偽型

さらにこれらの型をひとまとめで扱うことができるような器のような「型」をまずは2つ覚えます。

  • リスト型(list型)
  • 辞書型(dict型)
numbers = [1,2,3,4,5] # リスト型
fruits = {"apple":300, "banana":250, "orange":340} # 辞書型

料理では材料を切ったり、潰したり、こねてくっつけたりしますが、「型」にも様々な加工手段があります。特に文字列型にはたくさんの加工手段(メソッド)があります。

# 文字列のメソッドサンプル
moji = "apple"
moji.upper()  # APPLE(大文字に変換)
moji.isalpha()  # True(英文字かチェック)
moji.replace("a", "b")  # bpple (aをbに置換)

演算子

演算子は調理方法に例えましたが、数学として考えた方が簡単です。算術演算子は、四則演算に加えて、べき乗や余りを求めることができます。比較演算子は大小関係を判定して、真偽値として結果を示します。そして論理演算子は数学の論理演算と同じです。

  • 算術演算子
  • 比較演算子
  • 論理演算子
# 算術演算子
a = 1 + 2 # 3(足し算)
b = 8 % 3 # 2(余り)

# 比較演算子
c = 9
10 > c # True

# 論理演算子
point = 60
(point <= 60) or (point >= 80) # True(いずれかが真)  

制御文

最後に焼け具合や煮えたかどうかをなどの判断するためには制御文を用います。制御文には同じ処理を繰り返すfor文と条件によって処理を分けるif文があります。プログラミングはこの繰り返しと条件判断の組み合わせで成り立っているといっても過言ではありません。

  • if文
  • for文
# if文サンプル
c = 9
if 10 > c:
 print("10より小さい")

# for文サンプル
a = [1,2,3]
for i in a: # aのリスト型の要素を1つずつ取り出してiに代入する
  print(i) # Pythonでは制御文の後にはインデントが必要となります。(スペースなど)

プログラミングのレシピ

それでは、プログラミング言語「Python」の型、演算子、制御文を用いて「1から10までの数字を足し算する」プログラムをレシピに従って作成してみましょう。

「1から10までの数字を足し算する」レシピ

  1. 合計を保持するための変数totalに0を代入(型)
  2. 1から10まで数字を変数iに入れて繰り返す(制御文)
  3. 変数totalに数字を足していく(演算子)
  4. print文でtotalの結果を表示する(組み込み関数)
total = 0  # 合計を保持するための変数を初期化
for i in range(1, 11):  # 1から10までの数を繰り返す
    total += i  # 各数を合計に加える

print(total)  # 結果を表示

# range()関数は材料の一つで1~10までの数を生成する関数です。

※print関数やrange関数などの関数は、料理の材料として必要に応じて使用するものとなります。

プログラミングのレシピとはフローチャート

プログラミングの基礎としては上記で述べた型、演算子、制御文がありました。(材料としていくつか関数も登場させました。)そして、プログラミングもレシピをもとに作成することができることも分かりました。しかし、実際には例に示したような手順のレシピはほぼ存在しません。プログラミングのレシピはフローチャートと呼ばれるもので定義されます。

プログラミングの基礎を完全にマスターするとは、

プログラミングの基礎を完全にマスターしたと言えるには

  • フローチャートを見てプログラムを書くことができること
  • 問題をフローチャートとして描くことができること

この2つができるようになればプログラミングの基礎を完全にマスターしたと言えるでしょう。

簡単なプログラムであればフローチャートを書かないこともありますが、初心者の方は必ずメモ帳などに殴り書きでも良いのでフローチャートを書いてからコーディングを行うようにしてみましょう。必ず上達の速度が上がるはずです。

最後にまた料理との対比ですが、どんな難しい料理も簡単なレシピをいくつも組み合わせ作られていると思います。プログラミングも同様にどんな複雑なシステムも小さな簡単なプログラムをいくつも組み合わせて開発されています。フローチャートがレシピになると言いましたが、まさしく小さなレシピを積み上げて巨大なプログラムが出来上がります。

ここまで取り上げたプログラミングの基礎の完全マスターについての考え方はどんなプログラム言語を用いても同じです。特に興味があるプログラミング言語がなければPythonから始めることをお勧めします。(詳細は以下で)

さあ、プログラミングへの第一歩を踏み出してみましょう!

プログラミング言語について

上記の例ではプログラミング言語としてPythonを取り上げましたが、プログラミング言語は何を学べば良いか分からないという話もよく聞きます。基礎についてはプログラミング言語によらずにほぼ共通であると考えてもらって問題ありません。しかし、外国語と同様にプログラム言語によって単語、文法や語順などが異なります。

このため、目的がはっきりしているのであれば目的に合ったプログラミング言語を学ぶ方が良いかと思います。スマホのアプリであればswift, java…、Webアプリケーションであればruby, php, javascript(Node.js)…などになります。しかし、明確なやりたい事がなければ、まずはPythonをお勧めします。Pythonの良い点は次の4つが挙げられます。

1.シンプルで読みやすい

Pythonの構文は非常にシンプルであり、他のプログラミング言語に比べて読みやすく、理解しやすいです。このため、初心者がプログラミングの基本的な概念を学ぶのに適しています。

2. 豊富なライブラリ

Pythonには、Web開発、データ分析、機械学習など、多岐にわたる用途で使える豊富なライブラリとフレームワークが用意されています。これにより、初心者でも簡単に高度なプログラミングが行えます。

3. 多様なコミュニティ

Pythonは非常に人気があり、世界中に広いユーザー基盤と支援するコミュニティが存在します。初心者はこのコミュニティから多くのサポートを受けることができ、学習リソースも豊富にあります。

4. 汎用性と拡張性

Pythonは汎用性が高く、Web開発からデータ科学、デスクトップアプリケーション、ネットワークサーバーまで、様々な分野で使用することができます。そのため、初心者が学んだスキルを多方面に活かすことが可能です。

プログラミングのための開発環境

プログラミングをPythonにする利点としてもうひとつ、Web上に開発環境があるということです。多くのプログラム言語と同様にPythonもたくさんのバージョンがあります。バージョンが異なるだけで同じコードを書いてもうまく動作しないこともあります。しかし、Googleの提供している同じ環境で学ぶことでバージョンによって悩む必要がなくなります。

さらに、準備のためにパソコンに開発環境をインストールする必要もありません。

まずは、下記の手順でGoogle colabを用いてうまく動作するか確認して下さい。

1. Google colabの準備

Google colabへアクセスしてみましょう。Google colabにアクセスするには、Googleアカウントが必要です。Googleアカウントを持っていない場合は、まずはGoogleアカウントを作成してください。

2. Google colabの使い方

「ノートブックを新規作成」をクリックすると新しいノートブックが作成されますのでPythonのコードを記述していきます。

試しに「1+1」と記述して三角形のボタンを押してください。’2’が表示されます。

3. プログラムの実行

それでは少し簡単なプログラムを動作させる練習をしてましょう。次のプログラムをcolabに書き写して実行させてみましょう。

バナー広告