ysaz (ImanazaS) blog

最近はデータ分析や機械学習が中心。たまに音楽や書評。

30才から向き合うプログラミング

プログラミングを学ぶことを通じて論理的思考が鍛えられたり、問題解決力が身についたりと、現代社会において、プログラミングは英語と並ぶくらい有用なスキルとして注目されている。当然早くからスタートするほうがより定着するだろうということで、プログラミング教育を取り入れる小学校が増えていたり、習い事の一つとしてプログラミングを組み入れる親が増えているなど、子どもの頃からプログラミングに触れられるような機会が広がっているように思う。

今回の記事では、プログラミング(主にpython)を始めたきっかけと、pythonに出会うまでの自分とプログラミングとの接点について、簡単に振り返ってみたい。

 

 

30才からのプログラミング

一方、私がプログラミングを学び始めたのは30才を過ぎ、31に差し掛かってきた頃。留学先の大学院でデータサイエンスの授業を履修したことがきっかけで、Rとpythonに出会った。それまでにもStataを使ったデータ分析はやったことはあったが、いわゆるプログラミング言語に興味を持ち始めてから学ぶのはこのときからである。

当時、データサイエンスという言葉がバズワードのように取り上げられていて、「データサイエンティストは21世紀最もセクシーな職業」とも言われていた。

hbr.org

 

また、RStudioというIDEの扱いやすさや、機械学習系のパッケージが充実しているということなどからR言語がもてはやされていた時代でもあったが、ipython notebook(現jupyter notebook)の使い勝手の良さに触れたり、たまたま参加したKaggleのコンペで、Rでは処理できないほどの行数をもつデータセットを扱ったりしたこと、webアプリづくりにも適していたりすることがきっかけで、pythonをメインに学習するようになった。

どちらが良いというわけでもないが、昨今取り沙汰されているDeep Learningのフレームワークpythonを中心に数多く存在していることを鑑みると、pythonをメインにしていて良かった気もする。

 

過去の自分とプログラミングとの接点

思い返せばそれよりもずっと前にプログラミングとの接点はあったはずだが、どちらかという苦手なほうだった。記憶にある限り最初に触れたのは中学校の技術の授業。何をやったかはっきりと覚えていないが、簡単な野球ゲームのようなものを作ったような気がする。当時からパソコンを触るのは好きだったが、直感的な操作が可能なインターフェースを持つアプリケーションを好む一方で、真っ黒な画面に白色の字を一行ずつ打ち込んでいき、動作を一つ一つ確認していくという作業はかったるかったように思う。

 その次にプログラミングに触れたのは大学一回生のときで、必修の授業の中でFortranを学んだ。簡単な計算処理から分子軌道計算の触りまでをやったような気がするが、得意だと感じることもなければ、のめり込むようなこともなかった。そもそも私のいた学科は化学系であり、汗水垂らして化学実験に没頭することが醍醐味という雰囲気があったため、机上のシミュレーションはそれほど人気もなく、教育カリキュラム的にもあまり重視されているように思えなかった。

 

なぜそれまで、プログラミングは自分を惹きつけるものではなかったのか?

これまで振り返ってきたように、大学を卒業するまでに触れたプログラミングに対する印象は大して記憶に残らないようなものであったが、それはプログラミングがどんな形で活用されているのか、実態を把握することができなかったからのように思われる。それはプログラミングだけでなく数学や哲学のような抽象的な学問に対しても言えることで、「有機化学の技術によって合成された化合物が新薬の成分として使われている」、という具体的な事例を聞くと、化学が世の中でどんなふうに役に立っているかをそれなりにイメージできるのに対し、「相対性理論や三角測量がGPSの技術として使われている」と言われても、目に見えないのでピンとこない。このようにプログラミングは、身の回りの生活において実態がなく、ブラックボックス化されていて特に知らなくても問題ないという存在であったため、惹きつけるような魅力を感じさせないものであったように思う。

 

プログラミングは実社会において有用か?

そんな自分のプログラミングに対する印象が少し変わったのは、社会人になって経験したことがきっかけである。大量のテキストファイル(csvファイル)をエクセルで扱うにあたり、VBAを用いたマクロ処理に業務を通じて触れたことで、人がチマチマと時間をかけておこなっていた手作業が、ボタン一つで簡単に自動化できてしまうという便利さを実感することができた。

これ以外にも、例えばBlogの見栄えをよくするのにhtmlが一役買っているとか、いろんなアプリケーションを動かしているのはJavaだとか、色んなことを見聞きするようになり、プログラミングに対する興味は少しずつ高まってはいた。

しかし、VBAのコードも先輩が書いたものやインターネットで見つけてきたものを適当に切った張ったして使っていた程度の知識しかなく、自分で書くにはハードルが高そうだし、自分のなかでは英語などに比べて勉強するインセンティブも優先順位もそれほど高くないと捉えていたため、それっきりであった。

 

新しいことを始めるのに遅すぎることはない

VBAを少しかじったものの、そこから特に進展することもなく4年ほどが過ぎた頃、冒頭で述べたようにpythonに出会った。「何か新しいことを身につけたい!」と思っていた時期だったので、自分としては良いタイミングだったと捉えている。

次回の投稿では、微力ながら、これまでどうやってpythonを学んできたか、どんなことを心がけているかについて、まとめてみたい。