2018年までのプログラミング遍歴を振り返る(あるいは初めてのプログラミング習得について)

雑記

みなさん,こんにちは.
シンノユウキ(@y_stadio)です.

このブログ記事を公開するのは2018年12月5日.2018年が残り30日以内になってしまった日のうちのどれかに該当する日です.

なので,このブログを書いている時の私は,そろそろ2018年を振り返ってみようかな,という思いにかられている時期に接していました.いい感じに振り返りたいなーなんて思っていたちょうどそのころ,ノンプロ研のアドベントカレンダーという素晴らしい企画が発生.なので,それにのっかり,2018年のプログラミングの振り返り記事を書こうと決意しました.

しかし,2018年のプログラミング関係を振り返ろうとすると,どうしてもそれ以前の事柄について書く必要がでてきました.その必要が出た際にいちいち説明するのも面倒でありましょう,ということで,ならばそれ以前の私のプログラミング遍歴について記事にしてしまおうではないか.そういう考えが浮かび,出来上がったのが本記事です.

とりあえず,私が学生だった時(高校生くらい?)から社会人1年目(~2017年度)までのプログラミング遍歴について振り返ってみようと思います.必然的に,私のパーソナルな部分が多めで,あまり一般的に抽象化できるような事項については触れていません.ある意味で,私の自己紹介的な意味合いの強い記事になってしまうと予想されます.

なので,私に興味の無い方には,まったく面白みのない記事かもしれません.そういう方は,あまり深読みせず,プログラミングに触ったことのなかった入門者がプログラミングを習得するまでに行ったこと,といった感じで読んでいただければ幸いです.

では行きましょう!

 

~2015年度(高校生からM1まで)

まずは高校生くらいから修士1年(M1)くらいまでのプログラミング歴を振り返ってみたいと思います.だんだんと昔のことを思い出すのが難しくなってきました….~2015年です.

プログラミングは雲の上の存在...

この時期は,私がまだ若かりし頃,パソコンはいろんな事ができるんだな~なんて漠然と思ってた時期のことです.この時はプログラミングというとまるで雲の上のような存在でした.カッコいいなーという憧れを抱くこともなく,最初から「できるわけもない」というもので,やってみようなどと微塵も思いませんでした.

高校生の頃からPC(この時はMacBook!)を使ってはいたものの,ネットサーフィンするだけで満足していました.ブラウザを標準のものでなく,FireFoxを使用しているだけでなんとなく優越感に浸っているような有様でした.

今思えば,このころにプログラミングに興味をもっていたら,かなり違った人生だったかもですね.

大学の授業で「Excel」に目覚める

大学では,私は栄養学を勉強する学科に入りましたので,もちろん授業でプログラミングに触れられることはありませんでした.一応,パソコンを使用した授業はあるのですが,Excelを始めとするOfficeソフトの使用法を教わるのが主で,それも基本的な内容だけ.それ以上の内容はとても実施できるような感じではありませんでした(同学年の学生の中にはキーボード入力だけで精一杯という学生もいました).

しかし,やはりExcelはかなりしっかりと勉強しました.その際に「Excel」のカッコよさにに衝撃を受けました.Officeソフトの中でもExcelは特に使用頻度が高く,授業でも多くの時間を割かれて説明されていました.その際にExcelでできることの多さや,関数などのカッコよさに心惹かれました.特にlookup関数のカッコいいこと.授業外でも勉強するほどExcelに魅了されましたね.今思えば,先生方の教え方も上手かったのでしょうね.

Excelでマクロなどを使わずに関数やExcelの基本的な機能のみで自作のアプリケーションも作成したりしていました.幾重にも重なった関数が連動して動くだけでワクワクしましたし,違うシートにジャンプするボタンを作成しただけで一端のアプリケーションを作成した気分でした.

データ分析大変….マクロ使おう!

大学4年になると,卒論に関するデータを収集したりするようになり,それからExcelなどの使用頻度が飛躍的に増えました.修士1年にもなると,その増加は更に加速しました.

集めたデータを入力しクリーニング,集計したりする過程で,長い時間Excelを触ることになりました.この作業,個人的な好きな作業でしたが,膨大なコピペの作業や,条件を変更しての集計のやり直しなど,かなり大変な作業でもありました.

その過程で,どうにかこのような作業を簡単にできないかを試行錯誤した結果,Excelにはマクロという便利な機能があることを知りました.この時は簡単なものでしたが,相対記録などの機能を活用し,なんとか目的の作業を自動化することができました.これだけでもかなりの満足感でしたね.

当然,マクロの記録だけで造られたマクロは,無駄の多いものでした.また,「このセルを選択した状態で始める」とか,「シートはこの順番で並べておく」とか「この集計をする際はこのセルにこの値を入れてこのマクロを実行する」とか,かなりユーザー側での運用が大変でもありました.

実は,マクロを使い始めると同時にVBAの勉強もしてみたのですが,ネット上の記事を見てみてもほとんど分からない.また,手当たり次第に入門書を読んでみても全然分からない.という経験をしてVBAへの入門は諦めました.

また,私のVBAに関する当時の認識は,VBA→Excelを効率的にするためのもので,別に大した作業はできないじゃん,というものでした.特段,事務員さんになりたいわけじゃないし…といった感じです.今思えばかなり舐めた認識ですね.なので,当時ネットで検索した際に人気だと書かれていたPythonやJavaScriptを勉強したいなーなんて漠然と思っていましたが,VBAにはそれほど意識が向きませんでした.

 

2016年度(M2)

データ量が更に増加!手作業ではとても…

M1のころにはマクロを活用していた私ですが,M2になると扱うデータ量はさらに増加しました.そして,データの集計なども条件を変更して多くの視点から分析する必要がありました.たとえば,男性と女性を分けて分析する必要が出た場合,その後の分析ももう一度やり直しになります.また,男性と女性とを分けた場合,またそれを年齢区分で分けた場合などでは,これまたやり直しです.

ちなみに,しっかりとしたデザインのもと研究できていた場合,このようなやり直しは不要です.最初に決めた分析手法通りにやるだけでOKです.しかしこの時はそんなことは頭になかったので,とにかくデータを捏ねくり回していました.今思えばかなり悪いことですね笑.

データ分析なら!ということで「R」も勉強

しかし,やはりデータ分析は面倒だったりします.当時はSPSSという統計ソフトを使用していました.SPSSは基本的にGUIで操作するので,分析を何度も行う場合はいちいちマウスを使って操作しなければいけないので,かなり面倒です.当然,ミスも増えます.

ということで,データ分析用のプログラミング言語:「R」を勉強することにしました.ネット記事を読んだ感じ,結構やりやすいんじゃね?という思いもありましたので,ちょっと頑張って始めてみました.

初めてプログラミングに触れる私ですが,実は私の所属していた研究室は,非常にプログラミングを始めやすい環境でもありました.私の指導教員は栄養系の教授なのですが,プログラミングが好き(VBAにも精通)なので,私がプログラミングを始める際にも,非常に手厚くサポートしてくださいました.非常にプログラミングの勉強をしやすい環境でした.研究に直接は関係しないR言語の書籍を購入してくださることもありました.

その書籍のうち,以下の書籍は非常に重宝しました.

こちらの書籍では,R言語の書き方だけでなく,統計学に関する基礎的知識も説明されています.私の場合,統計学の知識にも怪しい部分がありましたので,こちらで基礎的な理解の確認もしました.

結局のところ,Rでデータ分析をしても他人はそのデータを触れないので,個人での使用のみに限定,共有データはSPSSで分析することにはなりました.Rの良い勉強にはなりましたが,データ分析を効率化するにはあと一歩というところでした.

SPSSのシンタックスを作成するマクロ

仕方ないので,SPSSのシンタックスを活用することにしました.先程も紹介しましたが,SPSSは基本的にGUIで操作.なので,やっぱ面倒だなーということで,シンタックス(SPSSのCUI)を活用することにしました.

しかし,当然SPSSのシンタックスなんてよくわかりません.なので,分析を何通りか行い,その際に出力されたコードを比較し,どこのステートメントがどんな分析を意味しているのかを理解するようにしました.ここを変更すれば分析するグループを変更できるのかや,対応のないt検定から対応のあるt検定に変えることができるのか,などですね.

なので,そのシンタックスを出力するためのプログラムをVBAで書きました.セルに分析対象群や分析手法を入力し,それを予めテンプレート化していたシンタックスに反映させ,新しく生成するというプログラムです.今思えば,かなり斜め上の使い方ですが,当時は非常に重宝しました.

その他,SPSSの計算結果をExcelに貼り付けるという作業もVBAで実装しました.当時はミスなく楽したいという思いから始めましたが,その動機さえあればネットのコードをコピペして使い回すだけでも意外とどうにかなりましたね.必要は発明の神?(なんかちょっと違う)なんだなーとこの時実感しました.

空いた時間で本格的にVBAの勉強開始!

M2で一通りに研究を終えると,後はかなり暇になりました(私の場合です.全ての研究室でこうはならないかもしれません).私の場合は就活もほとんどしていなかったので,その空いた時間に,体系的にプログラミングを勉強したいと思いましたので,書籍などを活用し,勉強を始めました.

その際,まずはVBAから始めることにしました.あれだけ舐めきっていたVBAですが,おそらく就職先で使うことなるだろう,と思いましたので,意を決して入門することにしたのです.今までの経験(管理栄養士国家試験の勉強など)から,自分にあった入門書を選ぶことが重要!と感じていましたので,手当たり次第に入門書を購入しました.その際に,非常にマッチしたのが,以下の書籍です:

 

非常にわかりやすく,他の書籍では果たせなかったVBA入門をこの書籍でなんとか果たしました.何度読み返したことか….私は良いと思った本と同じ著者の書いた本は,同じく良いと思う場合が多いので,同著者の書いた本はかなり買い込みました.おかげで,VBAの基礎程度は身につけることができたと思います.

少しHTMLやPHPなども

VBA入門の後,M2の終了間近といった時期です.時間もあるし他の言語も勉強してみるか,ということでHTMLやPHPなども勉強してみました.これに使用したのがProgate.

Progate(プロゲート) | Learn to code, learn to be creative.
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。

2017年の1月から2月に課金している履歴が見つかりました.

非常に面白く,勉強になるプログラミングの学習サービスです.私はこれでHTMLやPHPの基礎を勉強しました.これだけ勉強したからといって即実践で使用できるとは限りませんが,わからないことを検索して解決するための能力は養う事ができると思います.実際,私はこれ以外でHTMLを勉強していませんが,必要になったらその都度ググることで,以下のようなWebサイト(簡単なものではありますが)を作ることができました.

Open Source Recipe
オープン・ソースの料理レシピを提供しています.無料で利用できます.

話は少しずれてしまいますが,Progateは,これからプログラミングに入門してみたいという方には非常に有益な学習サービスだと思っています.

 

2017年度(社会人1年目)

GASにも手をだすように

社会人1年目,仕事ではVBAを少し活用するくらいで,その他に勉強したプログラミング言語は無用の長物となっていました.

ただ,社会人になっても,ある程度の時間を確保できていましたので,何かしら趣味の部分でプログラミングしたいなーと思いました.仕事は基本的に9時~17時までで残業などは発生しません.プライベートでの個人開発にはうってつけ,ということでGoogleスプレッドシートでなにかアドオンを作ろうと思いたちました.Excelだとありきたりなので,Googleでするかーくらいの簡単な気持ちからでしたね.

なので,即座にGoogleAppsScriptの勉強を始めました.当時は体系だった書籍はなかったので,ネットの記事を参照しながら,勉強しました.その結果できたのが以下のアドオンです.

スプレッドシート栄養計算 - Google Sheets add-on
Googleスプレッドシートに栄養計算機能を追加するアドオンです。

このアドオンを作る際の試行錯誤で,HTMLやCSS,JavaScript(JQuery)などもある程度理解できるようになりました.JQueryによるDOM操作なんかは,本当にやりたいことからのトップダウン方式で勉強したので,全然体系だって勉強できていませんが,それでも試行錯誤の過程で非常に多くのことを学ぶことができました.

ブログ作成!ただしプログラミング関連の記事は少なめ…

また本ブログを作成したのもちょうどこの時期でした.

「スプレッドシート栄養計算」を作成した際,なにかしらの宣伝媒体が欲しいなーと感じていました.Web上に個人情報保護ポリシーなども置く必要がありましたので.なのでその場所にもちょうど良いだろうと感じ,ブログを開設することにしました.

当初は栄養(管理栄養士)に関する記事がメインで,プログラミング関係の記事はほとんどありませんでした.

【管理栄養士が検証】 アリナミンの臨床試験データは信用できるか?
栄養ドリンクとして有名なアリナミンは、「臨床試験データ、Webで公開中」というCMを放送しています。しかし、その臨床試験データを詳しく見る方は少ないのではないでしょうか。そこで今回は、その臨床試験データを確認し、そのデータを信用する...
【栄養学部の学生向け】新卒管理栄養士の就職活動について
新卒管理栄養士の就職活動についての記事です.管理栄養士独特の就職活動や,参考にすべき情報について紹介します.
進学する!管理栄養士が大学院に行くメリット・デメリット
私は大学を卒業後、大学院に進学しました。管理栄養士として大学院に進学する方はそれほど多くなく、かなり珍しいといえるでしょう。今回は管理栄養士が大学院に行く際のメリットとデメリットについてまとめました。 メリット 研究スキルが身に...

プログラミングではありませんが,Excel関連の連載をこの時期に始めました.リライトした関係で公開日が最近になっていますが,2017年の10月ごろに公開しはじめた連載です.

Excelで栄養計算ソフトを自作しよう!
「Excelで栄養計算ソフトを自作しよう」の連載第1回。この連載を通してExcelで栄養計算を自作できるようにしていきます。

実は本連載は,当ブログで一番のPVを集めていたりします.

そんなこんなで2017年度は過ぎ,2018年に向かっていきます.

 

まとめ

今回は2017年度までのプログラミング遍歴を振り返りました.

振り返ってみると,結構いろいろやったなーって感じですね.

次は,この続きから,2018年の振り返りを書いていきます!

 

連載目次

  1. 2018年までのプログラミング遍歴を振り返る(あるいは初めてのプログラミング習得について)
  2. 2018年のプログラミング関係を振り返る(あるいはノンプロ研について)
  3. 2019年の目標(あるいはノンプログラマーとブログについて)