【PowerShellでやさしいプログラミング】第1回:プログラミングとは?

こんにちは、けいぞうです。
訪問ありがとうございます。

この記事は”これからプログラミングを始めたい”という方向けの記事です。
第1回第8回に分けてプログラミングの基礎について説明していきます。

全て読んでもらえれば、プログラミングの基礎の考え方を理解してもらえると思います。

★この記事を読んで欲しい方

  • これからプログラミングを始めようとしている
  • プログラミングに関する予備知識がほとんどない
  • まずは基本的な考え方から学びたい

★ この記事(1回~8回の全て)を読むと理解できること

  • プログラミングの基本的な考え方
  • プログラミングを学ぶことのメリット
  • PowerShellの基本的な考え方

はじめに

このブログではPowerShellというプログラミング言語の一種のようなものをひとつのテーマとして扱っています。

ですので、このシリーズもPowerShellを使ってプログラミングの基礎を説明してきます。

PowerShellはWindowsのコンピュータに標準で入っているものなので、本シリーズはWindowsユーザー向けの記事になります。Windowsユーザー以外の方ごめんなさい💦

プログラミングを学ぶメリット

私が考えるプログラミングを学ぶ主なメリットは以下です。

  1. 論理的思考力が身につく
  2. 就職に困らない、転職・独立・起業もできる
  3. ITの情弱ビジネスに騙されづらくなる

1.論理的思考力が身につく

よく「算数や数学って勉強して将来なんの役に立つの?」と聞く人がいますが、それに対する私の回答は「論理的思考力が身につく」です。(もちろんそれ以外にもあります)

プログラミングは、算数や数学よりももっと論理的思考を必要とします

自分が頭の中に思い描いている抽象的な概念を、プログラミング言語として全て文字に書き表さなければならないからです。

論理的思考力が身につくということは、頭で考えるクセがつくということです。そうなると、感情的な判断による失敗をしづらくなります。

例えば、ダイエットをしていたとしましょう。

今日は頑張ってたくさん運動して汗をかきました。お腹もすきました。
さて、今日の晩御飯はどうしよう?頑張ったしおいしいもの食べたい・・・焼肉食べ放題でも行こうかな

●感情的/刹那的な判断をしてしまうと・・・

自分へのご褒美に焼肉食べ放題いこう!たくさん運動したし、これくらいなら大丈夫だろう!

 →結局これをいつも繰り返しちゃってダイエット失敗!

● 論理的思考のクセが付いていた場合は・・・

ここで焼肉をたらふく食べたとすると、今日の摂取カロリーはこれくらいになって、一日の目標摂取カロリーがこれだけオーバーする。これを取り戻すためには明日これだけ調整する必要があって・・・明日が大変になりそうだな。今日もいつも通りのメニューにするか。

 →目的を達成するための正しい判断ができるようになり、ダイエット成功に近づける!

「プログラミングを学ぶだけでそんな、大げさな~!」

と思うかもしれませんが、本当です

私の周りのエンジニアの皆さん理性的な方ばかりですし、

若いエンジニアの人たちも日が経つにつれて仕事以外でも論理的な判断ができるようになっています。そういうところを見てきて、プログミングって色んな意味でやる価値あるなあ!といつも思っています。

2.就職に困らない、転職・独立・起業もできる

2020年現在、IT業界は常に人手不足です。
超売り手市場の状況が続いています。

企業は新卒採用・中途採用・パートナー契約に積極的ですし
転職しちゃいそうな優秀な社員には給料をドカッと上げてでも残ってもらいたい、そういう風潮です。

しかも、プログラマーは「業界」を選ばない「職種」になり得ます。

もちろんIT業界でも活躍できますし、インフラ業界でもプログラマーは必須です。

その他、音楽業界、エンタメ・ゲームの業界、出版業界、スポーツなどなど、今や全ての業界にITは関わってきますので、プログラミングができるということを武器に、自分が関わりたかった業界に近づくことができるのです。

そういった意味で、業種の違った転職をすることも可能。

さらに現在では、”ランサーズ”や”クラウドワークス”といったフリーランスのためのプラットフォームも整っており、ある程度のプログラムが作れるようになればフリーランスとして独立することもできます。

→クラウドソーシング「ランサーズ」

→クラウドワークス

あまり良いことではないですが
ぶっちゃけ「こんなに技術力低い人がフリーでやっていけてんの!?
と思うパターンもあります。それだけ需要があるということなんですね。

さらに、フリーとして事業を拡大できれば、起業することもできます。今は1円で起業できるようになりましたから、1人会社の社長さんになることも簡単です。

もちろん事業を成功・拡大させるのは大変なことですが、プログラミングを学んで自分のものにできれば、IT企業の社長になれるんですよ。

夢ありますよね✨

3.ITの情弱ビジネスに騙されづらくなる

ここはちょっと個人的な話も入ってきてしまうかもしれませんが・・・

1.の「論理的思考力が身につく」だけでも騙されにくくなりますが、プログラミングの知識があればもっと直接的に情弱ビジネスに騙されづらくなります。

例えばよくあるのが、株やFXやバイナリーオプションの自動売買ツール。
マニュアル通り作業するだけでこんなに儲けることができるんです!っていうアレです。

私も昔、買ったことがあります(あるんかい!)

そして、案の定、元を取ることはできませんでした。

そして時は流れて、私がプログラミングを学んで何でも作れるようになってから、仮想通貨バブルというものがやってきました。
2017年の秋~冬のことですね。

仮想通貨の取引で少し儲けを出せた私は「これ自動売買にしたらもっと稼げるんじゃね!?」

と思って自動売買ツールを作り始めました。

語りたいことは色々とあるのですが、自動売買ツールを自分で作ることではっきりしたことがあります。
なるほど、自動売買で絶対儲かるシステムを作ることは不可能なんだな」と。

そして、それが分かった後に見る広告はちょっと違って見えました。

自動売買ツールの広告も、その他の広告(ダイエット食品や育毛剤、脱毛剤など)、全て同じ作り、同じ手口のものに見えたんです。

あーこれも結局売るためだけの広告で中身のある商品じゃないのかなあ・・・と。

それから物を買うときはしっかり吟味するクセもついて、変な商品に飛びつくこともなくなったと思います。

ちょっと特殊な例を挙げてしまいましたが、物を作ることが出来るということは、作る側・売る側の観点を得ることができるということです。

いつも買う側の視点だけ持っていると、騙されてしまう可能性がありますが、プログラミングを身に着けて実際にモノを作る側、売る側の立場になれたことで気付けることがある。これも1つの大きなメリットだと思います。

プログラミングとは?

皆さんが普段スマホで使っているアラームやメモ帳やゲームのアプリも、

パソコンで使っているエクセルやウェブブラウザなども、

全てプログラミングによって作られた「プログラム」です。

プログラムは「プログラミング言語」という
コンピュータがが理解しやすい言葉で書かれています。

いきなり日本語や英語で命令してコンピュータが命令を聞いてくれるようになればいいですが、まだ現在は人間が話す言葉で本格的なプログラミングをすることは不可能です。

コンピュータは実際には「0」と「1」だけで書かれた機械語で動くことになるのですが、

人間がコンピュータに命令するときに「0」と「1」だけしか使えないというのはあまりにもハードルが高すぎます。

そこで、もう少し人間が理解しやすい形として記述して、それを機械語に内部で変換し、それをコンピュータは読み取って命令を実行してくれる、という流れになっています。

これがプログラミングです

まあぶっちゃけ、あんまり細かいことは理解していなくてもプログラミングはできます。

色んなプログラミング言語があって、それぞれを開発した偉~い技術者がいますが、細かいことを意識せずにプログラミングできるようになっています(とくに新しい言語ほど)

ですので安心してプログラミングの世界に足を踏み入れましょう!

プログラミング言語の種類

世の中にはたくさんのプログラミング言語があります。

Webページを作るのに適した言語、
スマホアプリを作るときに使う言語、
機械学習プログラミングに適した言語などなど・・・

有名なプログラミング言語とその特徴をいかにまとめてみましたので、ざっくり眺めてみてください。興味あるものがあれば、それを学んでみるのもいいでしょう。

プログラミング言語説明
htmlWebページを作るための言語です。皆さんがWebブラウザを通して見ている全てのWebページはこのhtmlで書かれています。「エイチティーエムエル」と呼びます。HyperText Markup Languageの略
csshtmlで書かれたWebページを綺麗に装飾するための言語です。htmlの中に一緒に記述することもできますが、凄く複雑なこともできるので、普通はhtmlとcssは分けて考えます。「シーエスエス」と呼びます。Cascading Style Sheetsの略
JavaScript動的なWebページを作るための言語です。Webページを見ているユーザーが操作した結果を画面に反映させたりしたい場合に、JavaScriptを使います。(例:簡単なゲームの画面で、ユーザーに名前を入力してもらってその名前をプレイヤー名欄に表示するなど)「ジャバスクリプト」と呼びます。後に出てくるJavaとは似て非なるものです。
php動的なWebページを作るための言語です。JavaScriptはユーザーのWebブラウザ上で動作するものですが、それに対してphpはWebサーバー上で動作するものです。より複雑なWebページを作成することができます。「ピーエイチピー」と呼びます。
本格的な解説はまた違う機会にしましょう。
CPCのソフトウェア、組み込みソフト、はたまたOS(オペレーティングシステム)を作ることができるのがこのC(シー・C言語(シーげんご)とも言う)です。汎用性が高い一方、難易度も高いです。C言語ではコンピュータのハードウェアの動作まで意識してコーディング(プログラムを書くこと)する必要があるので、広い知識が必要になります。
C++シープラスプラスと呼びます。通称シープラプラまたはシープラです。C言語の拡張版になります。C言語に「オブジェクト指向」という考え方を取り入れた言語です。
C#C++を元に作られた言語で、マイクロソフトが開発した言語です。C++にJavaの概念を取り入れたような言語になっています。といっても、C++と互換性があるわけではなく、まったく別のプログラミング言語です。マイクロソフト社製ということもあり、Windows上で動作するシステムを手軽に作ることが出来ます。「シーシャープ」と呼びます。++を上下に重ねたら#に見えることからこのネーミングにしたんだとか。
Java“OSに依存しない汎用的な言語”を思想に作られたプログラミング言語です。処理速度がそこそこ速く、OSに依存せずに動作するのが特徴です。プログラミングを学ぶならJavaからという人も今では珍しくありません。そのくらいメジャーで重要なプログラミング言語です。「ジャバ」と呼びます
Python近年で人気の上がっているプログラミング言語の一つで、初心者向けとして扱う人もいます。ソースコードが簡潔で分かりやすく、少ない行数で書けるという点が特徴です。機械学習に関するライブラリが多く用意されており、AIの分野で多く利用されているプログラミング言語です。「パイソン」と呼びます。
Ruby主にWebアプリケーションを作成するための言語です。日本人が作成したプログラミング言語で初めてIEC(国際電気標準会議)に認定された言語としても有名です。Pythonと同様、シンプルで分かりやすく、初心者向けとして扱う人もいるプログラミング言語の1つです。「ルビー」と呼びます。
PowerShell私が初心者向けのプログラミング言語No.1として推しているのがこのPowerShell(パワーシェル)です。Windowsなら、何も準備しなくてもすぐに始められます。C#と同じ.Net Frameworkライブラリを使うことが出来るので、手軽に書くことが出来る割にはとても複雑なことまでできるので、超便利なヤツなんです。

PowerShellとは

PowerShellとは?についてはコチラ記事でも書いているので、ご覧ください。

【PowerShell入門】PowerShellとは?PowerShellの使い方[初級編]

簡単に言うと、シェルの1種類です。
シェルというのは、コンピュータに命令をするための窓のことです。

普通、シェルに入力する命令は1行づつ命令するだけで、プログラミング言語と言えるほど複雑なことはあまりできないのですが、PowerShellはプログラミング言語のように細かいロジックを組むことができます。

シェル言語でありプログラミング言語ともいえるとても面白いヤツなんです。コイツ。

PowerShellでプログラミング入門勉強するメリット

PowerShellで入門勉強するメリットはズバリ
環境構築が不要」これです。

WindowsのPCを買ったらもうそこにはPowerShellでプログラミングする環境が整っているんです。

これがC#だったらVisual Studioを入れたりだとか
JavaだったらJDKやEclipseを入れたりだとか
phpだったらXAMPPを入れたりだとか。

何かと事前準備が必要で、最初の1歩を踏み出す以前で躓きがちです。
でもPowerShellならいきなり始められます。これがデカい!

皆さん、PowerShellでプログラミングのいろはを、私と一緒に学ぼうではないですか!