Pythonの入門書を購入しました!

鎌田正浩さんの

確かな力が身につくPython「超」入門

を購入しました!

ようやく本格的なプログラミングのスタートです。
とりあえず愛用のiMacPythonを始めました。
 
私はMacを主に使用してきました。
Windowsはたまにしか使っていません。
これは私の化学者としての背景が関係しています。
私の研究分野では、お絵描きソフト『ChemDraw』を使って作図することが多いんです。*1
私が研究を始めたのは、もう10年以上前になります。
当時はChemDrawで作図したプレゼン資料を、Macを使って表示させた方が明らかに綺麗だったのです。
そんな理由からMacを使い始め、未だにメインのマシンはMacです。
 
PythonWindowsでもMacでも使用可能であり、購入した本は両方に対応していました。
ちなみに私のPCスキルですが、ChemDraw(←簡単)とWordとPowerpointを頻繁に使用し、Excelは時々使う程度です。
 
早速、入門書に従ってPythonをインストールして実行しました。
ターミナル(Windowsだとコマンドプロンプト)を使用したのは初めてだったので、ちょっと感動しました!
行った内容は……
 
・四則演算
・比較演算子(数字の大小を比較)
・カレンダーを表示する
・変数(に値をセットする。tax = 0.08 など) 
 
……です!
序の口過ぎてプログラミングの有用性が分かりません笑
AIがどんなものかを理解するなんて、まだまだ遥か先の話ですね。
何はともあれ、プログラミングの第一歩を踏み出すことができました……!
 

*1:分子を構造式と呼ばれる描き方で表現します。例えば、私のプロフィール画像のようなもので、サプリメントとか育毛剤とかのパッケージで見たことがある人も多いと思います。

今、Pythonがアツいらしい

引き続き、購入した本「プログラミング入門講座」で紹介されていた学習サイトで遊びました。

"CodeMonkey"と"CodeCombat"というゲームです。

前者は1時間ぐらい、後者は3時間近く遊びました。

 

 

codemonkey.jp

 

codecombat.com

 

これらは前回の"Hour of Code"と似たような形式でした。

"CodeMonkey"では、サルがバナナを取るのが目的としています。

"CodeCombat"は、勇者が敵を倒したり、ダンジョンのお宝をゲットしたりすることを目的としています。

 

ただ、今回の2つのゲームは、英語で指示を打ち込むので、プログラミングをしている感じがしてきました。

CodeConbatの場合、例えば……

 

hero.moveRight()

hero.moveDown()

hero.attack("enemy")

 

……という指示を出してから実行すれば、勇者(hero)が右に移動した後、下に移動し、敵(enemy)を攻撃します。

ちなみに、途中からは課金しないと進めなくなります。

 

以上、計3つのサイトをツマミ食いしましたが、これらは全て海外のサイトなんですよね。

この事実は、日本のプラグラミング教育が遅れていることを物語っているのかもしれません。

 

さて、"CodeCombat"に話を戻しますが、これを遊ぶ前に「プログラミング言語」の選択を迫られました。

ちなみに、本屋で見かけた『Python』がデフォルトとして表示されています。

 

購入した本を読み進めてみると、「プログラミング言語」についても書かれていました。

大切だと思ったことを、ざっくりとまとめます。

 

 

1.プログラミングにも、人が話す言語のように様々な言語がある!

 

2.用途・目的ごとにプログラミング言語開発されてきた!

 

3.どのプログラミング言語を学ぶべきなのかは、学ぶ人の目的や興味次第!

 

 

なるほど……!

プログラミングの世界も人間の世界と似ていますね。

マーク・ザッカーバーグさんもそうでしたが、この本の著者である米田晶悟さんもコンピュータと人間を比較しています。

このような考え方は、非常に興味深いです。

 

さて、次の課題は自分がどの言語を学ぶべきかを考えることのようです。

そこで、職場にいるパソコンにめっぽう強い人達に相談してみました。

すると……

 

C言語Javaからプログラミングを始めると挫折するだろう」

「最初はコードが簡単なPythonから始めた方が良い。AIに使われているのもPython

 

……という、ありがたい意見を頂きました。

ということで、今度はPythonの入門書を買いに行くことにしました!

 

"Hour of Code"を体験しました

購入した本の中で勧められている学習サービスの1つ、"Hour of Code"を体験しました。

 

code.org

 

サイト内には様々なコンテンツがありますが、本の指示に従って[古典的な迷路](Write your first computer program)をクリックしました。

開始早々、目に飛び込んできたのは魅力的な動画でした。

 

ビル・ゲイツMicrosoft)やらマーク・ザッカーバーグFacebook!)やらドリュー・ヒューストン(DropBox!!)など、有名な方々がプログラミングを学習し始めた時のことを語ってくれます。

あぁ、引き込み方が上手い……!

プログラミングが持つ膨大な可能性についても語ってくれます。

 

およそ1時間、遊びました。

ほぼほぼゲームなので、「遊んだ」という表現が適切だと思います。

主人公である『鳥』が障害物を避けて『ブタ』を捕まえるゲームであり、ファミコンとかゲームボーイで遊んだことを思い出すような画面でした。

平面の舞台を1マス1マス上下左右に進んでいく、昔のドラクエやFFのあの感じです。

ちなみに、捕獲対象のブタは動きません。

 

ドラクエやFFと違う点は、主人公である鳥の動きを最初から最後まで予め決めておかなければならないということです。

例えば、「1マス前に進む」「左を向く」「1マス前に進む」「1マス前に進む」「右を向く」「1マス前に進む」など、鳥の動きの手順を指定しておいて、その後で『実行』ボタンを押します。

『実行』ボタンを押して初めて、鳥が動き出します。

障害物を避けてブタに辿り着くにはどう動かしたら良いか、事前に頭の中だけで考えなくてはいけません。

考えながら、「1マス前に進む」とか「左を向く」などの動作の手順を組み立てていくゲームでした。

 

途中、マーク・ザッカーバーグさんが動画で自身の考えを語ってくれます。

 要点だけまとめてみますと……

 

「人間は繰り返し作業することに退屈してしまうが、コンピュータは繰り返す作業が得意。しかも間違えない」

 

……ということでした!

このゲームで言えば、「1マス前に進む」「1マス前に進む」「1マス前に進む」「1マス前に進む」「1マス前に進む」と何度も指示する必要などなく、「次の操作を5回繰り返す」「1マス前に進む」と指示するだけで済む……と。

(「5マス前に進む」という指示はできません)

 

日常生活の中で例えるならば、同じ内容のメール(Happy New Year!など)を100人に1通1通送る作業などする必要はなく、ほんの少しコンピュータに指示を付け加えるだけで(←メーリスのこと?)瞬時に100人にメールを送ることができる……と。

 

マーク・ザッカーバーグさんは人間とコンピュータを比較していますね。

プログラミングを習得すると、両者の違いについて考えるようになるのでしょうか?

それとも、彼が特別なだけなのでしょうか……?

なんか深いです。

私はこれまでパソコンをツールとして使っていただけなので……。

 

とにかく、約1時間ですがプログラミング学習サービスを体験しました。

現時点では……プログラミングとは、あらかじめコンピュータに指示を出しておき、実行すると一気に動いてくれるもの。

そして繰り返しに強い。

初心者ながら、それらのことが分かりました!

 

まずはプログラミングの本を買いに行きました

プログラミングを始めよう!

と、思い立ったものの……何から始めたら良いのか分かりません。

分からないので、本屋に行ってみました。

本好きなので、本から学ぶことにしました。

私が頻繁に訪れる本屋さんには、ちゃんとプログラミングに関する本のコーナーがあります。

平積みされている本、そして棚に置かれている本を眺めてみると、「言語」や「文法」という単語が書かれているものが多くありました。

よく分かりませんが、プログラミングにはジャンルがあるようです。

 

C言語』……時折、耳にしますね。

 

Java』……ガラケー時代から目にしていました!  アプリを起動する際に目にしていたような記憶があります。

 

Ruby』、『Python』……初めて聞く単語です。

 

……よく分かりません!

何を買ったら良いのでしょうか!?

始める前から思考停止に陥ってしまいました。

それも一瞬、ふと視線を棚の一角に移すと、初めてのプログラミングとかプログラミング入門といったような、超初心者向けの本が目に留まりました。

表紙には『C言語』や『Java』など、難しそうなことは書かれていません!

これなら始められそうです。

 

ということで、「プログラミング入門講座 基本と思考法と重要事項がきちんと学べる授業」を購入しました。

著者は米田晶悟さんで、コードキャンプ株式会社の取締役だそうです! 

 

 

家に帰り、早速イントロダクションを読みました。

私が印象に残った点を簡単にまとめてみますと……

 

1.プログラミングは仕事に使えるだけじゃなくて、習得すると論理的思考能力が強化されるよ! 世界中の人たちが勉強しています!

 

2.現在、プログラミングは楽しく遊び感覚で学習できるようになっているよ!

 

3.ITはビジネスモデルを変えることができる、素晴らしいものなんだよ!

 

……の3つが挙げられます。

化学の世界に浸かっていた世間知らずの私は、「プログラミングは専門家のみに許される敷居の高いものである」……と思っていました。

その印象はガラリと変わりました。

とくに2の遊び感覚で学習できるということは、未経験の私にとって有り難いことです。

プログラミングをゲーム感覚で学習できるサイトがいくつもあるのだそうです。

 

それでは、この本で紹介されている無料おすすめサイトで楽しく勉強していくことにしました!

 

プログラミングを始めることを決意しました

はじめまして! 気づけばもう30代に突入している理系の研究者です。

理系ですが、プログラミングの経験は全くありません。

そんな私ですが、プログラミングを始めることにしました!

途中で挫折しないためにブログも開設します。

 

昨今、プログラミング関連で騒がれている話題が次の2つ。

 

1.将来、人工知能(AI)が人の仕事を奪う……!

2.来年度から小学校でプログラミングが必修化!!

 

なんだか大きな変革の時期が訪れているようですね。

本屋を眺めてみればAI関連の本がズラリ。

ホリエモンさんや落合陽一さんの本は特に目を引きます。

プログラミングの才を持つ方々がAIについて未来を予想していると、非常に説得力がありますよね!

何冊か購入して読み、プログラミングに興味を持ちました。

 

さて、そんな私のことを少々紹介させて下さい。

私は化学の世界で研究をしてきました。

化学反応が専門です。

原子とか分子を扱うこんな感じのやつですね↓

 

2H2 + O2  → 2H2O

 

「化学」と「科学」は読み方が同じですけど、同じ意味ではないんです。

化(ば)ける学問なので、学じゃなくて学なんです。

ニックネームの「ばけがくしゃ」は「化け学者」ってことで名付けました。

 

最近になって、私の専門分野である化学でも、AIと上手く融合して研究を発展させようという流れが確実に来ています!

しかし、プログラミングを習得していない化学者の方が多数派なんじゃないかなぁ……と思っています。

もちろん私も未習得者の一人であり、よく分かっていないのにマスメディアやネットから得た情報で分かった気になってしまうのは危ない……とも思い始めました。 

 
「プログラミングを習得しないと、実際のところAIがどんなものか分からない!!
 
「しかも、これから若い子たちは学校でプログラミングを勉強して、それから社会に出て来るの!? なんか焦る!」
 
というモチベーションを胸に、プログラミングを始めることを決意しました!