一級建築士資格独学散歩道

一級建築士資格取得までの道のりを散文的に綴ります。

【寄り道】プログラミングな独学のすすめ(その2)

 令和元年の一級建築士学科試験も無事終了した。やっと小職にも寄り道をする余裕ができたのである。会社帰りにちょっと本屋さんに寄り道をする。みなさんも本屋に寄り道をすることがあるだろうと思う。本屋に行くと、その時代の趨勢が背表紙から読み取れるのである。

 

 その日、私は最寄りの本屋に立ち寄り、そしてコンピュータ関連書籍のコーナーに寄り道したのである。その本屋は割と技術系の書架が充実していて、コンピュータ関連の書架は奥行7メートルほどの通路の両側を占める。その半分ほどをプログラミング言語の書籍で占められている。
 やはりjava本が最も多い。ジャバジャバである。しかしRubyとPythonのタイトル本もそれぞれ2から3段ほどの棚を占有している。これはごく普通の本屋の風景なのであった。ところが、最近はそこに変化が表れている。Pythonそのものの教本よりも「人工知能」や「データ解析」など、目的的なPython教本が増えているのであった。「PythonDjangoでウェブサーバ」「Pythonで人工知能(機械学習)」「Pythonによるデータ解析」。これは少し不思議なプログラミング言語本の背表紙風景なのであった。
 
 さて、前回はPythonでプログラミング言語を学ぶための書籍「独学プログラマー」を紹介した。

www.papigani.com

  もちろん独学流一級建築士を目指す私も独学つながりで一通りPythonを学習してみたのである。プログラミング言語と建築技術というのは独学できるという共通点をもつのだ。しかし、一つ大きな違いがある。プログラミング言語は実は技術ではなく言語である点である。人類は古来技術を培い、そしてその技術を「言葉」を使って継承してきたのである。つまり、言語はメタ技術といってよいと思う。

 プログラミング言語は言語である。この言語は人間とコンピュータが会話をするために生まれたのである。そして言語である以上は、実際に会話をしなければ上達しない。プログラミング言語による会話の相手は常にコンピュータなのであった。これが、小職のような人間嫌いの元祖オタクにはうってつけなのだ。さて、どうやって会話を始めるかというと、まずは挨拶をするのである。
  • print("Hello world!")
 実はほとんどのプログラミング言語の教本がこの1行を最初に紹介する。そのことがあまりに有名になりすぎて、最近では小説のタイトルになっているほどである。
ハロー・ワールド

ハロー・ワールド

 

  しかし、キーボードから「print("Hello world!")」と打ち込んでも会話は始まらない。コンピュータに通じるように会話を始めるためには人間の側がまずコンピュータの耳元でささやく必要があるのだ。そして、Python語で話ができるコンピュータは限られている。そのコンピュータの中にPython言語が理解できるアプリケーションが居なければならない。Python言語を理解できるアプリケーションのうち、もっとも気さくなのが「Anaconda」というアプリケーションである。Anacondaとの会話は「Spyder」という場所で行う必要がある。その場所はこんな形をしているのである。

f:id:papigani:20190803124506j:plain

Pythonの開発環境Anacondaに含まれるツール「Spyder」の画面
 さて、かつて小職がFortranやPerl、そしてExcel+VisualBasicで開発を行ってきた経験から述べるなら、Pythonは独学向けプログラミング言語として最高にお勧めしたいものの一つなのである。その理由は次の3つ。
1.開発環境の構築に費用が掛からず、かつ特別な知識を要しない。
2.開発環境が複数用意されていて、かつ非常にわかりやすい。
3.人工知能を含む多くのライブラリが使える。
 
1.費用が掛からず簡単
 もし、Pythonを始めるなら必要な開発環境の導入にはAnacondaというソフトウェアを導入するだけで完了する。具体的には下記のサイトからOSに合わせたディストリビューションをインストールするだけである。なお、2019年7月現在のPythonバージョンは3.7がお薦め。
 一般的には開発環境を準備するためには「コンパイラ」と「エディタ」と「デバッガ」という三つのツールを用意する。この3つが同時に導入できる環境を統合環境という。Anacondaはこの三つのツールをそろえたPython開発のための統合環境なのである。ここから先は、Anacondaを中心にしてPythonの開発作業を開始することができる。
 javaやRubyでもある程度簡単に準備できるのかもしれないが、Pythonの場合はネット上に多くの解説が掲載されているのもありがたい。
 
2.開発環境が複数用意されていてわかりやすい。
 Spyderという開発環境は、ローカルPCアプリケーションであるが、Anacondaの中にはJyupyterNotobookというものも用意されている。これを立ち上げると、Webサービス環境でのPythonの開発環境が準備できる。さらに、Jyupyter以外にも開発環境が用意されていて、自分の手元のPCには開発環境がなくてもPythonを使うことができる。Pizaクラウドなどのクラウドサービスがそれである。
 
3.人工知能とのつながり
 Pythonを使うと人工知能の開発も行えるようになる。これはPython本体ではなく、NumPyやPandas、Scikit-learnなどのライブラリを活用することで実現する。ただ、Python言語を話せるようになれば人工知能を即開発できるかというとそうではない。そこには数学的な知識が必要になる。いわゆる統計解析に係る知識が必要である。ここはハードルがぐぐっと上がるのである。なのでこの場ではあまり言及しない。
 
 ではPythonと会話してコンピュータに何をさせるのか。これは大いに悩むべきところにも思える。しかし、悩む必要はない。言語の目的はあくまでも会話なのである。HelloWorldという世界の始まりは「最初に言葉ありき」なのである。
 さて、Pythonである程度会話ができるようになったら、次のことを考えてみるべきだ。
「いったいPythonで何ができるというのだ?」
 
Pythonでなにができるのかはやってみないとわからないのである。
しかし、少なくともデータ解析が容易になるのは事実のようなのである。次回はPythonの子分であるPandasに寄り道しようと思う。