建築学科ごっこ

建築学科がむなしくなったら読むブログ

建築を学ぶ人のための、おすすめプログラミング言語とその学習法

この記事では、建築学生やIT分野に関心のある建設業・不動産業従事者を対象に、

  • プログラミングで何ができるか?
  • そのためにはどのような言語を学ばなければいけないのか?
  • そのためには、何から始めればいいのか? 

について、具体的に解説していきたいと思います。

 

 目的別 おすすめプログラミング言語

建築学生や建築業従事者が、個人でプログラミングを学ぶ目的として、下記のようなものが考えられます。

 

  • コンピュテーショナルデザインをやりたい
  • データ分析やそのビジュアライゼーションがしたい
  • 日々の集計・分析・レポート業務を自動化したい
  • AIや機械学習について学んでおきたい
  • VRで自分のモデリングした空間を体験・活用したい

 

これらの目的をすべて満たすプログラミング言語という物があれば、迷うことなくそれを勉強すればいいのですが、そう簡単な話ではありません。

プログラミング言語には沢山の種類があり、それぞれ長所と短所、得意な処理や苦手な処理があります。

 

そこでこの記事では、目的別に

  • VPL系
  • Python
  • C#

 の3つを取り上げ、その特徴と学習方法について解説します。

 

VPL|コンピュテーショナルデザインに取り組む

f:id:houman-arch:20191018164416j:plain

幾何学的で複雑な造形(AppliCraft社公式HPより)

 

おそらく、建築×プログラミングと聞いてみなさんが最初に思い浮かべたのが、コンピュテーショナルデザインやパラメトリックデザインと呼ばれる分野だと思います。

プログラミングによって数学的に、あるいはアルゴリズムによって生物を進化させるように、複雑で多様な造形操作をするためには、プログラミングが不可欠です。

 

では、コンピュテーショナルデザインを学ぶのに最適なプログラミング言語とは、一体何なのでしょうか?

もっとも注目を集めているのがVPL(Visual Programming Language)と呼ばれるジャンルです。

 

 

 

 

「プログラミング」と聞くと、

プログラマーが高速でキーボードを叩くと画面に現れるよくわからない英単語や数式

を連想する人が多いと思います。 

f:id:houman-arch:20191017140401j:plain

「プログラミング」に対する漠然としたイメージ

 

しかし建築学科で主流になっているプログラミングとは、こうしたキーボードによって入力するようなよく知られているプログラミングとは少し違うものです。

 

 

下記の動画を御覧ください。

 

まるで回路のように複数の部品がコードで繋がれており、その部品の接続を組み替えることで3Dモデルを操作していることがわかると思います。

 

このように、特定の機能を持った部品(コンポーネント)をつなぎ替えることで、視覚的にアルゴリズムを組むことができる言語を、VPL(ビジュアルプログラミング言語)と呼びます。

文字コードのみの言語に比べ視覚的に理解しやすいことから、初学者にも学習しやすく、作業効率や生産性の向上も見込めることから、三次元モデリングの世界ではこうしたプログラミングが主流となっています。

 

そのため、「プログラミングによって複雑な設計を行いたい!」という方にオススメなのが、このVPLを学ぶことだといえます。

 

 

建築向けのモデリングソフトの中では、特にRhinoceros 3DとRevitが、それぞれ独自のVPLを持っています。

 

Grasshopper(Rhinoceros 3Dと連携)

f:id:houman-arch:20191018160417p:plain

おなじみ、Rhinocerosに対応したVPL、Grasshopperです。

もっとも有名なVPL対応ソフトと言えるでしょう。

www.applicraft.com

 

 

GrasshopperはかつてはRhinocerosのプラグインという形で別ダウンロードが必要でしたが、Windows版Rhino 6以降標準搭載されるようになりました。

そのため、ライノセラスを購入すればおまけで付いてきます。

 

 

 

学習方法

あたりまえですが、まずはライノセラスを使えるところから始める必要があります。

オンライン上でのライノセラス学習サイトとして、まずは日建設計が社内用に開発したトレーニングサイトを、社外向けにも無料で公開しているRhino-GH.comから始めるのがいいでしょう。

rhino-gh.com

ライノセラスでミースのファンズワース邸をつくる7Lessonと、グラスホッパーに関する5Lessonが動画公開されており、効率的にライノセラスを学ぶことができます。

 

 

書籍での解説書も2点、紹介しましょう。

 

監修者である日建設計の山梨知彦氏が設計した「ホキ美術館」を題材に、Rhinocerosの使い方を学ぶ書籍です。

 

日本におけるコンピューテーショナル・デザインの第一人者、豊田啓介によるRhinoceros及びGrasshopperの解説書です。

 

 

 

 

Dynamo(Revitと連携)

f:id:houman-arch:20191018160600j:plain

また、Autodesk社のBIMソフトRevitに対応しているVPLプラグインに、Dynamoがあります。

 

▼公式サイト

primer.dynamobim.org

 

こちらはグラスホッパーに比べると参考書籍も少なく、いまいち知名度に欠ける存在ではありますが、BIMをダイレクトに操作できるという点は大きな魅力であり、今後の発展に期待が持てるソフトだと思います。

 

Dynamoもまた、Revitを購入・ダウンロードすると、同梱されてきます。

 

 

学習方法

Dynamoはまだまだ発展途上中のため、まとまった学習書籍すらほとんど存在しません。

ただし、下記公式サイトにて丁寧な解説があるため、Revitプレイヤーの方はこちらからの学習をおすすめします。

primer.dynamobim.org

 

 

 

 

 

Python|データ分析・業務自動化・AI・機械学習に挑戦する

f:id:houman-arch:20191018161722p:plain

じゃあ建築学科ではVPLしか使わないのかというと、必ずしもそういうわけではありません。

一般的なエンジニアが使っている言語のなかでも、建築学科が学んで得する言語はいくつかあります。

 

 

例えば、前項にてグラスホッパーと連携して造形を行うと言ったRhinocerosですが、

実はプログラミング言語であるPythonを組み合わせることによっても、数学的に複雑な立体を作成できます。

 

 

Python(ぱいそん)はここ数年で急速に勢力を伸ばしつつ在る今最も旬なプログラミング言語です。

データ分析や業務の自動化に強みを持ち、今注目を集めているAI・機械学習・ビッグデータなどの分野を学ぶのにも最適で、特に統計や分析を行う理系からは絶大な信頼を得ている言語です。

故に、データサイエンスやAIを取り入れた都市分析や建築設計に興味のある人は、一通り学んで損はない言語だと言えます。

 

 

 

ただし、Pythonは全体的に学習難易度が高く、本格的に実務に活かそうと考えるとかなりの学習量を要求されます

 

 

「なんとなくプログラミングに関する知識や考え方を、教養として身につけたい」

くらいであれば片手間の学習でもなんとかなりますが、

 

「なんかプログラミングで副業とかできないかなー」

「建築設計辛すぎワロタwww。おれエンジニアになるわ。」

みたいな動機であれば、Pythonから学び始めると茨の道を歩む羽目になるでしょう。

 

 

スマホアプリやPCソフトのようなアプリケーションを作るのにもあまり向いてはおらず、短期的に利益を得ることが難しい点がネックと言えるでしょう。

というわけで、挫折もはさみつつ数年かけて気長に学ぶことは覚悟しなければならない言語だと思います。

 

 

学習方法 

Pythonの学習には、まずはAidemyProgateなどのオンライン上のプログラミング学習サービスを利用するのがおすすめです。

 

aidemy.net

prog-8.com

 

とくにAidemyは、数多くあるオンライン学習サービスの中でもPythonの講座に力を入れており、

  • Python入門
  • はじめてのAI
  • 機械学習概論
  • ディープラーニング基礎

などの無料コースを試して見るだけでもかなりプログラミングに対する視野が広がります。

また、有料コースは更に輪をかけて充実しており、Aidemy以外の教本はいらないのではないかと思わせるほど豊富です。

 

ひとまずこの2サイトの入門編で基礎を学習し、その後自分の目的に合わせて参考書籍を買い足して行けばいいと思います。

 

みんなのPython

書籍で学ぶ上では、こちらの『みんなのPython』が、特に高評価を集めている一冊です。

日本語で書かれた入門書では最も人気があり、開発環境としてJupiter notebookを採用している点も好印象です。

ProgateやAidemyで無料公開されているPython講座をすべて終えた人には、こちらから学び始めるのが良いと思います。

 

 

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

入門書だと、じゃんけんゲームみたいな実益のないコードばかりでモチベーションが上がりません。

退屈なことはPythonにやらせようは、Webスクレイピング(自動情報取得)やエクセルシートの操作など、日頃手作業でやっているルーチンワークを自動化するノウハウが詰まった一冊です。

 ある程度Pythonを学んだ方が、もう少し実務的な事を学びたいと思った時に、活かせる事例が紹介されています。

 

C#|VR開発やゲーム開発を行う

f:id:houman-arch:20191018114139j:plain

その他、建築学科でよく使われるプログラミング言語として、C#(シーシャープ)も挙げられます。

本来はApplicationの開発を目的として作られた言語ですが、Python同様にRhinocerosやGrasshopperと連携してモデリングに活かす事ができます。

 

WindowsでもMacでも動き、開発環境もツールもかなりの部分が無料で集められ、PC用・

スマホ用・サーバー用とあらゆるアプリ開発に利用されています。

 

 

ただし、建築学生がC#を学ぶ最大の目的は、ゲームエンジンソフト「Unity」の操作でしょう。

Unityはここ数年で急激に普及してきた3Dゲーム製作ソフトで、建築業界では特に作成した空間モデルをVR化する時に利用しています。

 

このVR化の際に必要な処理を施したり、あるいは設計した建築や都市でゲームをする場合、UnityとC#を使うことになります。

 

 

 

ゲームエンジンには他にUnrealEngine4(UE4)というソフトがあり、こちらはブループリントと呼ばれるVPLと、C++というまた別の言語で操作できます。

 

UE4はUnityと比較して圧倒的に美しいグラフィックを誇り、Unityと肩を並べる有名ソフトですが、日本語での解説サイトも乏しく、ここでは省略とします。

 

 

 

学習方法

VR開発やアプリ開発、ゲーム作成をやりたい人は、プログラミングの勉強の前にVRゴーグルとUnityを学ぶことが先決です。

というのも、Unityなどのゲームエンジンの開発が進みすぎて、あなたのやりたいことをやるために必ずしもプログラミングが必要ではない可能性が在るからです。

 

ヘッドマウントディスプレイの選び方については、下記の記事を御覧ください。

www.gakka-gokko.com

 

オンラインでUnityを学ぶ方法もたくさんありますが、ひとまずドットインストールで無料の動画講座を見るところからスタートしましょう。

インストールの仕方から、ごく簡単な3Dの玉転がしゲームの作成方法について学ぶことができます。

▶ドットインストールでUnityを学ぶ


Unityの書籍としては、「ひよこ本」でよく知られている『Unity2019入門 最新開発環境による簡単3D&2Dゲーム制作』(SBクリエイティブ)がおすすめです。

 

 そのうえで、Unityでもう少し複雑な事にチャレンジしたいと思った時、C#を学んでみましょう。

 

C#の独学としては、まずは全9レッスン79回すべての講座が無料で公開されている、paizaで学ぶのが良いと思います。

paiza.jp

 

 

おまけ|プログラミングと副業・転職について

以上、VPL系、Python、C#の3つについてそれぞれの特徴と学習方法について解説しました。

最後に、建築業界人からのプログラミングによる副業・転職についてすこしだけお話します。 

 

 

 建築学科や建築業界に言いようのない閉塞感を感じ、

  • 建築以外の分野でも、クリエイティブな趣味特技を持ちたい
  • 設計だけでは食べていけない。在宅でできる副業はないの?
  • 建築業界は先細りだ。いっそIT業界の方が面白いんじゃないか?

と感じている人は、まぁ少なくないように思います。

 

 

当然プログラミングやIT業界もそんなにバラ色の世界というわけではないのですが、

最後に、未経験の建築卒が「副業・転職に」する上で初めに覚えるべきプログラミング言語として、以下の3つを紹介しておきます。

  • HTML
  • CSS
  • JavaScript

これらは基本的にWebページを作成したり、Web上で動くアプリケーションを開発したりするのに役立つ言語です。

(厳密に言えば上2つは記述言語と呼ばれ、プログラミングではないが)

 

 

そして、建築学科卒の人間がこれからプログラミングで稼ぐのならば、上記3つを学んだ上で、まずはWeb製作者・Webデザイナー(フロントエンドエンジニア)になることをおすすめします。

理由は以下の3つです。

 

 

1.習得が簡単

PythonもC#も往年のプログラミング言語に比べれば遥かにシンプル&スマートで、わかりやすい言語だと聞きます。

が、HTMLとCSSはそれらより遥かに理解と習得が容易です。

JavaScriptはPythonやC#と同じ結構本格的なオブジェクト指向言語で、簡単とは言えませんが、HTMLと組み合わせて動かす分にはそれほど複雑なコードは要求されません。

 

 

また、建築学科卒の人間は、すでにPhotoshopやIllustratorに習熟している上、そこそこのスペックのPCをすでに所有しています。

人によっては、グラフィックデザインやエディトリアルデザインに関する素養を、建築プレゼンを作る過程で学んでいるかもしれません。

 

これは、今からWebデザイナーになる人間にとって、大きなアドバンテージとなります。

 

 

2.他の副業・活動にも役に立つ

この情報化時代、本業にしても副業にしても、商売をする上で自分のブログ・ホームページを持っているということの重要性は上がる一方です。

 

仮にウェブ製作で稼ぐことができなかったとしても、この時代において、HPを作れるとか、そのデザインを修正できるとか、Webページがどういう原理で成り立っているのかわかるとか、そういう知識が在ることは大きな強みになります。

 

3.未経験でも引きうけられる案件はたいていWeb関係

 

未経験・独学でプログラミングを学んだ人間が収入を得る上で最大の壁が、一番最初の実績を作ることの難しさにあります。

 

  • 実績がないから案件を依頼されない
  • 案件を依頼されないから実績ができない

 

という悪循環を断ち切るためには、一個目の仕事のクライアントは自力で探す必要があります。

 

そのためには

  • 自分自身がクライアントになる
  • 知り合い・友人から仕事をもらう
  • ランサーズ等で未経験OKの仕事を探す

の3つの手段がありますが、

HP作成業務はこのいずれも見つけやすく、足がかりとなる最初の作品を作りやすいのです。

 

 

 

 

 

もちろん、HTML・CSS・JavaScriptの3つを学べば即座にWebデザイナーになれるわけではなく、

  • WordPress
  • SQL
  • PHP
  • Ruby
  • Python

と、状況に応じて必要になる知識は際限なく増えていくでしょう。

まともにランサーズ等で案件を受けられるようになるには、半年から一年近い勉強が必要になると思います。 

 とはいえ、これらすべてを一気に覚えなければ仕事にならないわけでもありません。

 

 

まずはおなじみProgateで、ウェブ製作に必要な基礎知識を学ぶところから初めていきましょう。

prog-8.com

 

で、いくらか勉強していると、作りたいサイトやアプリケーションのイメージ像が固まってくると思うので、それに必要な知識を少しずつ足していきましょう。

 

最終的には、作成したWebサイトやアプリケーションをまとめて、ポートフォリオとしてオンライン上に公開しましょう。

それが、Webデザイナー・Webエンジニアとしての第一歩です。

 

 

プログラミングを学ぶにあたって

ここまで一通り、建築学生にオススメなプログラミング言語を紹介してきました。

またそれに合わせて、オススメとなる書籍や学習サービスを紹介してきました。

 

ところで、いま話題のプログラミングスクールについてはどうなのでしょうか?

 

プログラミング未経験の方の中には、

「プログラミングって難しそう。最初からプログラミングスクールで手とり足取り教えてほしい!

という人も非常に多いかと思います。

 

 

独学の限界とプログラミングスクールの限界

 

 確かに、プログラミングスクールは適切に利用できれば、無駄に時間を書けることなく最短で目標(アプリ開発・転職成功など)を達成できるでしょう。

しかし結論から言えば、プログラミング学習経験0の、まったくの初心者がいきなりプログラミングスクールに行くのは危険です。

 

 

なぜならプログラミングスクールでの学習には

  1. 全くの初心者は適切なプログラミングスクールを選べない。
  2. 自力で学ぶ力のない人間に、プログラミングは不可能
  3. 基礎の基礎を学ぶには、スクールでも無料サイトでも効率は一緒

という3つの落とし穴があるからです。

 

 

1.全くの初心者は適切なプログラミングスクールを選べない。

プログラミングスクールって、安いところでも4週間のコースで十数万円くらいかかる、高価な買い物です。

で、プログラミングスクールにもそれぞれ強みや弱みがあり、

「Web系には強い」とか「副業プログラミングに特化」とか、そういう学校ごとの毛色が存在します。

 

そしてそれを見抜くためには、それ相応の業界知識が必要になります。

 

今あなたが、Webアプリが作りたいのか、データ分析がやりたいのか、スマホゲームが作りたいのか、そのためにはどの言語を学べばいいのか、そんなことすらわからないレベルなのであれば、プログラミングスクールは時期尚早です。

せめて無料体験学習や、学習相談で済ませるのがベターでしょう。

 

まず、「自分は何がしたいのか」「そのためにはどのような知識・スキルが必要なのか」くらいは把握していないと、スクール選びの段階で大失敗します。

 

2.自力で学ぶ意思・力のない人間に、プログラミングは不可能

「人に教わればわかるはず」

「お金を払ったんだからわかりやすいはず」

「マンツーマンなら……」

という発想でプログラミングスクールを受けてはいけません。

 

 

確かにわかりやすいプログラミングスクールに行けば、わかりやすくプログラミングを教えてくれるでしょう。

でもそれは、その言語の学ぶべき分野のうち、わかりやすい部分だけ、美味しい部分だけを切り取って食べさせてもらっているようなものです。

こういう人は、一度契約期間が終わりスクールを卒業すると、すぐにプログラミングができない人間に戻ってしまうのです。

 

 

わからない・理解出来ない部分を自力で調べて原因を究明し、解決策を考案するのはプログラミングの大原則です。

この姿勢を学習の最初から放棄するのは、頭の良さとかセンス以前のレベルでプログラミングに向いていません。

 

3.基礎の基礎を学ぶには、スクールでも無料サイトでも効率は一緒

というか、端的に言って、家でも無料で学べる学習内容を、数十万かけて学校に通うのってバカバカしくないですか?

自分で学べる範囲は自分で学んで、

「ここから先がどうしてもわからない」

「このエラーでつまずいて3日も停滞している」

という具合にわからない部分を言語化できていないと、いかに評判のいいプログラミングスクールでも無意味です。

 

「独学でプログラミングやってみたけどわからなかった人」

「プログラミングのどこがわからないかもわからない人」

との間には、天と地ほどの差があるのです。

 

最初は教科書のコードを良くわからないまま書き写すだけの人でも構いません。

まずは、オンラインの無料学習サービスや書籍を一通り履修してから出ないと、プログラミングスクールに通ったところでなんの意味もないのです。

 

 

行き詰まったときが、プログラミングスクールの使い時

とはいえコレは、プログラミングスクールを使わない方がいいという意味ではありません。

まして「独学でプログラミングを学ぶやつは、スクールを使って勉強するやつより偉い」なんて馬鹿な話でもありません。

 

 

 

要するに、プログラミングスクールというのは、全くの初心者には不向きな環境だと言いたいのです。

 

 

プログラミングスクールの使い時は、

  • どうしても解決できないエラーが有る(人に聞いたほうが早い課題)
  • グループ制作の経験や、コードを社会に実装する経験を積みたい

という段階にまで進んでから。

要するに、環境面・技術面において、独学に限界を感じた時こそ、プログラミングスクールの本領が発揮されるのです。

 

 以上の点から、プログラミングの学習では、無料で学べる範囲については自力で学んでしまう事をおすすめしたいと思います。

 

 

 

おすすめのプログラミングスクール

そのうえで、今後の学習の展望として、プログラミングスクールについて話を勧めましょう。

(特に未経験からIT業界への転職を考えている方は、おそらくスクールは避けて通れないので。)

 

 

まずPythonによるAI学習と、副業を目指すWeb開発学習に関するコースについては、群雄割拠とも言うべき無数のプログラミングスクールがひしめいています。

また、Unity・C#に関する講座や、Photoshop・Illustratorの講座を持つデザイン・ゲーム系のスクールも一部ですが存在します。

 

一方でVPL系のプログラミングスクールは流石になさそうですね。

 

 

 

悩ましいのですが、ここではとりあえずTechAcademy [テックアカデミー] という、短期集中型のオンラインプログラミングスクールを紹介したいと思います。

 

▲ TechAcademy [テックアカデミー]

 

【現在提供中のコース】

  • Webアプリケーションコース(Ruby on Rails)
  • PHP/Laravelコース
  • Pythonコース
  • フロントエンドコース
  • WordPressコース
  • iPhoneアプリコース
  • Androidアプリコース
  • Unityコース
  • はじめてのプログラミングコース
  • Webデザインコース
  • UI/UXデザインコース
  • Webディレクションコース
  • Webマーケティングコース
  • Javaエンジニアコース
  • ブロックチェーンコース
  • Node.jsコース
  • Scalaコース

 上述のように豊富なコースと、各受講生に一人ずつメンター(相談相手)がついて、ほとんどのコースで4週間10万円を切るというのは破格の価格設定だと思います。

(この業界、3ヶ月で90万円とかザラなので……)

 

 

 

オンラインブートキャンプ 無料体験

 

無料体験に申し込むと、まずオンライン上で学習できる教材が送られてきて、

 

  • Webサイトの仕組み
  • HTMLとは
  • CSSとは
  • JavaScriptとは
  • 変数
  • 数値計算
  • 条件分岐

 を学び、天気予報ツールを作る事ができます。

 

同時に、メンタリングの希望日時を申請すれば、一週間メンターによるサポート等の学習システムを無料で体験できます。