c5n's i18n

Webサービスの多言語化について書きたいとは思っています。

ノンエンジニアのためのプログラミング入門 第1回:Hello World!

こんにちは。フリーランスでWebシステムの開発や新人研修などをしている @chooyan です。

先日、coconalaというサービスで「文系の方向け!プログラミングのプの字を教えます」というサービスを出品してみました。

このサービスは プログラミングのプの字も知らずにエンジニアになった @chooyan がチャット形式でプログラミングの基礎を教えます!というものなのですが、同じ内容を読み物として体験できる版として、この「ノンエンジニアのためのプログラミング入門」シリーズを書き初めてみました。

プログラミングなんてしたことないけどちょっとやってみたい、あわよくば仕事にしたい、という思っている方は是非読んでみていただければと思います。

想定している読者

このシリーズは、プログラミングは初めてだけれどもここで得た知識を仕事でなんらかの形で活かしたい、という方を想定して書いています。

そのため、他の入門サイト等では説明を曖昧にしたり割愛しているような、少し難しめな内容も必要に応じて突っ込んで説明している部分があります。

最初は理解が止まってしまう部分もあるかもしれませんが、実際に仕事で使う場合(自分で開発する場合だけでなく、エンジニアと技術的な話をする場合など)には必要な知識ですので、少しの頑張りとご協力をいただければと思います。

プログラミングを始めてみよう

さて、記念すべき第1回は、「プログラミングとは何か」ということを少し考えつつ、自分で書いたプログラムを動かしてみるところまでをやってみます。

プログラムとは

プログラミングとは、プログラムを書いて動かすことです。 では、プログラムとは何でしょうか。

と自分で書いておいてなんですが、「プログラムとは何か」と言われてもちょっと質問が漠然としすぎていてうまく説明できません。

そこで、ここではエンジニアの思考回路を理解するための説明として、「インプット」と「アウトプット」という言葉の説明から始めてみたいと思います。少し遠回りになりますが、理解を深めるために少しおつきあいください。

一般的な「インプット」と「アウトプット」

「インプット」と「アウトプット」という言葉自体はプログラミングでなくてもビジネスではよく使われる言葉なのではないかと思います。

例えば仕事におけるスキルアップの会話では、「本を読む、ネットで調べる、講座を受けるなどの『インプット』だけでなく、人に話す、ブログに書く、資料にまとめる、などの『アウトプット』が大事だよね」といった話が出たりしますが、この場合の「インプット」と「アウトプット」とイメージは一緒です。

つまり、インプットは受動的に「受け取るもの」で、アウトプットは能動的に「生み出すもの」と言えるかと思います。

コンピューターの世界の「インプット」と「アウトプット」

では、コンピュータの世界でのインプットとアウトプットにはどのようなものがあるでしょうか。

たとえばインプットには、キーボードやマウスによる操作、温度センサーや照度センサ―などのセンサーから受け取るデータなど、様々なものがあります。一方でアウトプットは画面への表示やスピーカーからの音声、プリンタから印刷された紙などがあります。

我々ユーザーの操作によって発生する情報(キーが押された、画面が触られた、など)や、別の機械を通して受けとった情報がインプットで、その結果コンピューターによって作られたもの、表示されたもの、発生したものがアウトプット、というイメージです。

プログラムとは

さて、ここで「プログラムとは」に戻ります。

先ほどのインプットとアウトプットの話を踏まえると、「プログラム」とは「インプットを基に、ユーザーが必要としている情報を適切にアウトプットするための処理」であり、「プログラミング」とは、そのような処理を書くこと、と説明できるのではないかと思います。

「キーボードの"Aち"というキーがタイプされた」というインプットを検知して「PCの画面上に"a"、もしくは『あ』(もしくは『ち』)という文字を表示する」というアウトプットをしているのもプログラムですし、もう少し身近なところだと、スマートフォンの地図アプリで「住所を入力して検索ボタンを押した」というインプットに対して「その住所の地図が表示される」というのもそのように書かれたプログラムが中で動いているからです。

そしてこの記事を読んでいるみなさんは、そのようなプログラムを今まさに書こうとしている、ということになります。

始めてのプログラミング

さて、プログラムが何かについて考えてみたところで、カンタンなプログラムを書いてみましょう。

その「カンタンなプログラム」とは、「画面に"Hello World!"と表示する」というものです。

「"Hello World"ってなんだよ!」って思われた方、その通りです。僕もなんで"Hello World"なのかはよく分かりません。が、そういうものなのでそうなのです。

どの国でも、どのレベルのエンジニアでも新しい技術を学び始めるとき最初にやるのは"Hello World"です。ググってみると分かりますが、「PythonHello Worldしてみる」みたいなタイトルのブログ記事は無数にあります。英語圏であれば "Hello World in Python" とかでしょうか。それくらい、「"Hello World"と表示する」プログラムは定番中の定番なのです。

というワケで、この記事でもその定番に倣います。

なお、このシリーズではプログラミング言語としてPythonを使います。

理由は「始めてでも書きやすいから」に尽きるのですが、あまりPython特有の話は出さないようにしますので、他の言語の勉強を検討中の方でも読んで時間の無駄にはならないかと思います。ひとまずこの記事ではPythonを使うということをご了承いただければと思います。

Hello Worldのイメージ

まずは今から作ろうとしているプログラムの実行イメージです。

いきなりスマートフォンのアプリ上に"Hello World!"と表示したりするのはちょっと難しいので、まずはコマンドプロンプト上に"Hello World!"を表示してみるところから始めます。

まずは下の図1を見てください。

f:id:chooyan_eng:20171004084541p:plain
図1:コマンドプロンプトHello Worldが表示される

この黒い画面がコマンドプロンプトです。Windowsには必ず入っています。

このコマンドプロンプトを開き、python helloworld.py とタイプしてEnterキーを押すと、次の行に"Hello World!"が表示される、これが今回のゴールです。

なお、この記事では基本的にWindowsを前提に書いていますが、基本的にはMacでも同様です。「コマンドプロンプト」ではなく「ターミナル」を、「エクスプローラー」ではなく「Finder」を使って読み替えてみてください。

それではやってみましょう。

プログラミングを始めるその前に

さっそくプログラムを書いて実行、といきたいところなのですが、新しくプログラミングを始める場合、多くの場合は「環境構築」が必要です。つまり、Pythonプログラムを動かすためのプログラムが必要になります。

ちょっとなにを言っているのか良くわからないと思われたかもしれませんが、とりあえず「最初にPythonをインストールしなければならない」ということだけ把握していただければ良いかと思います。詳しくは別の回で説明する予定です。

まず、Pythonがインストールされていない状態であることを確認しましょう。*1

コマンドプロンプトを開きます。 "Win"キーと"r"キーを同時押し > "cmd" と入力 > Enterキーをタイプ これで開くはずです。Macの場合は"Command"キーとスペースキーを同時押し > 「ターミナル」と入力 > Enterキーを入力 でターミナルが開きます。

f:id:chooyan_eng:20171004084726p:plain
図2:コマンドプロンプトを開く

コマンドプロンプトが開けたら、python --version と打ち込んでEnterキーをタイプします。

f:id:chooyan_eng:20171004082606p:plain
図3:Pythonがインストールされていないことを確認

'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と表示されたかと思います。確かPythonはまだインストールされていませんので、このエラーは想定通りです。

逆に、エラーにならずに

Python 3.6.2

と表示された場合は、すでにお使いのパソコンにPythonがインストールされていることを表します。おそらくMacの方はこちらになるのではないかと思います。(MacLinuxではPythonはプリインストールされているためです)

f:id:chooyan_eng:20171004082722p:plain
図4:すでにPythonがインストールされている場合はバージョンが表示される

もしインストール済みだけれども表示されたPythonのバージョン(3.6.2の部分)が3.6.2より低い、という場合は、このあと説明するインストール手順と同じ手順でバージョンをアップデートしてみてください。*2

では、エラーになることが確認できたところでインストールを始めてみましょう。

Python のインストール

Pythonの公式サイトを開きます。

Welcome to Python.org

ここが、Pythonというプログラミング言語の公式サイトです。ここから、Pythonの文法やアップデート情報などの資料へのアクセスやダウンロードができるようになっています。

ここからダウンロードページを開きます。ページ上部のメニューバーの"Downloads"をクリックしてください。

ダウンロードページを開くと "Download Python 3.6.2" というボタンがあると思いますので、クリックしてください。python-3.6.2.exe というファイルのダウンロードが開始されますので、ダウンロードが完了したらこのファイルを開きます。

表示される案内に従ってインストールを進めます。

f:id:chooyan_eng:20171004083613p:plain
図5:"Install Now"をクリック

f:id:chooyan_eng:20171004083636p:plain
図6:Pythonのインストール中

インストールが完了したら、ダイアログを閉じてインストール完了です。

f:id:chooyan_eng:20171004083728p:plain
図6:Pythonのインストールが完了

インストールの確認

では、インストールが無事完了していることを確かめるために、再度コマンドプロンプトを開き直します。

※ 先ほど使ったコマンドプロンプトのウィンドウはまだインストールが反映されていないため、閉じてしまってください。

新しく開いたコマンドプロンプトで、先ほどと同じようにpython --versionと打ち込んで、Enterキーをタイプします。

f:id:chooyan_eng:20171004083806p:plain
図7:再度コマンドを打ち込んでPythonがインストールされていることを確認

今度はエラーではなく、Python 3.6.2が表示されました。Pythonが正常にインストールされていて、バージョンは"3.6.2"であることが確認できましたね。これでPythonのインストールは無事完了です。

いざ、プログラミング

これでようやくプログラムを書く環境が整いました。

それでは、先ほどの "Hello World!" のプログラムを書いてみましょう。

まず、「メモ帳」を開きます。

実際の開発現場ではここでメモ帳ではなくもっと高機能でオシャレなテキストエディタを開くのですが、そのエディタ自体の使い方を知る必要があるなど余計な手間が増えてしまうため、ここではなんの機能もないシンプルな「メモ帳」を使います。

メモ帳が開けたら、以下の一文をタイプします。コピペはダメです。勉強のためにも一文字ずつ書き取りましょう。エンジニアの世界ではこの作業を「写経」と呼んでいます。

print('Hello World!')

さあ、これだけです。

これだけ書けたらファイルを保存します。名前はわかりやすいよう、helloworold.py としておきます。ファイルの末尾についている ".py" が、Pythonプログラムが書かれたファイルであることを示す拡張子になります。*3

保存場所はどこでも良いのですが、あとで整理しやすいよう、Cドライブの下(C直下と言ったりします)に programming というフォルダを作り、その中に保存すると良いでしょう。

f:id:chooyan_eng:20171004083400p:plain
図8:helloworld.pyをprogrammingフォルダに保存

保存できましたでしょうか?

それではこのプログラムを実行します。

実行するのですが、ファイルをダブルクリックするわけではありません。プログラムの実行は、先ほど少しお見せしたようにコマンドプロンプトからするのが基本です。以下の手順でコマンドプロンプトを開きましょう。

まず、保存したフォルダをエクスプローラーで表示します。表示したら、エクスプローラー上部にあるアドレスバーに、"cmd" とだけ打ち込んでEnterを押してください。これでコマンドプロンプトが表示されるはずです。*4

f:id:chooyan_eng:20171004083129p:plain
図8:programmingフォルダからコマンドプロンプトを開く

最後に、表示されたコマンドプロンプトpython helloworld.pyとタイプし、Enterキーを押してみてください。

先ほど示した実行イメージの通り、次の行に"Hello World!"が表示されたのではないでしょうか。

f:id:chooyan_eng:20171004084541p:plain
図9:Hello World!

まとめ

お疲れ様です!

初めてのプログラミングはいかがだったでしょうか?

もしかしたら「Hello Worldなんてできて何になるんだ」と思われたかもしれません。確かにこれだけではまだ何ができたわけでもありません。しかし、「プログラムを書く環境ができた」ことは、実はとても大きな一歩です。次回からは、一度動いたこのプログラムに処理をどんどん追加する形でプログラミングを学んでいきます。*5

この記事を読みながら"Hello World"をする中で、様々な疑問やうまくいかなかった点が出てきたかもしれません。その場合はどんどん調べたり、コメント欄へコメントしていただければと思います。プログラミングを学ぶ上で一番大事なのは疑問や不明点はどんどん自分で調べて試して体験してみることです。この記事に書いてあることが全てではありませんので、ぜひ色々なサイトや書籍をみてみてください。

次回は「第2回:引数を使ってインプットしてみる」です。

それでは、楽しいプログラミングライフを!

*1:この「作業前の(エラーになる)状態を確認しておく」というのはとても重要です。作業後にBeforeとAfterを比較することで、自分の成果を明確にすることができます。

*2:特に、Pythonはバージョン2.x.xと3.x.xでは入門の説明から変えなければならないほど違ったりするため、ここでPython "2.x.x"と表示された方は必ずアップデートしてください

*3:「拡張子って何?」という方はググってみてください。簡単にいうと、ファイルの種類をWindowsに教えてあげるためにファイル名の末尾につける文字のことです。

*4:ここでコマンドプロンプトを開く手順を先ほどと変えているのには理由があります。詳しくは別途説明しますが、コマンドプロンプトは「どのフォルダで開いたか」によってできることが変わるためです。

*5:もしプログラムを書く前の環境構築が難しい、面倒だと感じた方、それもとてもまっとうな感想です。環境構築は得てして面倒でつまづきやすく、現場のエンジニアでもこの作業に想定外の時間をとられてしまうことが珍しくありません。この問題を解決するため、環境構築を誰でも簡単に、ミスなくできるようにする工夫は様々なアプローチで今も行われています。