2018年のプログラミング関係を振り返る(あるいはノンプロ研について)

雑記

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

今回の記事は,私の所属しているコミュニティ:「ノンプログラマーのためのスキルアップ研究会「ノンプロ研 Advent Calendar 2018」の8日目の記事です.私は,コミュニティ内でこの企画が始まるまでアドベントカレンダーなるものを知りませんでしたが,エンジニア関係の皆様には結構知られているものらしいですね.

せっかく,プログラミング勉強コミュニティのアドベントカレンダーで書くので,ならばプログラミング関係の話題をと思いました.また,時期的に年末で振り返り記事なんていいじゃんと思ったので,2018年のプログラミング関係の振り返り記事を書きたいと思います.

後述しますが,たくさんのことが起こった2018年のプログラミング関係ですが,やはり一番大きかったのはノンプロ研への入会です.なので,必然的にノンプロ研の話題が多く上がってくるかと思います.ですので,私の2018年の振り返りに興味の無い方は,「ノンプロ研」のレビュー記事のようなものだと思っていただいても良いかもしれません.

2018年を振り返るにあたり,やはりそれ以前の情報についても小出しにしていかなければならないと感じたしたので,少しだけ2018年以前のプログラミング関係を振り返る記事を書きました.

2018年までのプログラミング遍歴を振り返る(あるいは初めてのプログラミング習得について)
このブログ記事を公開するのは2018年12月5日.2018年が残り30日以内になってしまった日のうちのどれかに該当する日です.なので,このブログを書いている時の私は,そろそろ2018年を振り返ってみようかな,という思いにかられている時期に接

ご興味ある方は,こちらの記事も併せてご覧いただけると,本記事の私の説明不足の一部でも埋められると思います.

今回の記事は,可能な限り,メールやカレンダーの履歴,作業ログなどを参照しましたが,その詳細なんかは“偽の記憶”の影響を受けていて,実際よりも美化されているかもしれません笑.話半分にお読みいただければ幸いです.

では、いきましょう!

 

要約

かなりつらつらと書いていますので,冒頭に2018年にプログラミング関係で行ったことの要約を.主に以下の3つが主要なイベントになります:

  • 「ノンプロ研」に入会
  • Webアプリ・スマホアプリ・Chrome拡張などに手を出す
  • Pythonに入門する

もしかしたら,目次を見てもらった方が分かりやすいかもしれないなと,書きながら思いましたが,まぁ詳しくは以下でまとめてますので,お時間に余裕のある方はご覧ください.

 

ノンプロ研に入会

今年のプログラミング関係で私に起こった最も大きなイベントは,ノンプロ研への入会でしょう.冒頭でも紹介しました「ノンプログラマーのためのスキルアップ研究会(以下ノンプロ研)は今年の3月(Gmailを遡りました)に入会しました.

「ノンプロ研」とは?

このコミュニティは,VBAやGASなどで有名なタカハシさん(@ntakahashi0505)が主宰されており,プログラミングを本業としていないプログラマがプログラミングのスキルを身につけることを目的としています.

なぜ入会したのか?

コミュニティ入会以前より,タカハシさんのブログは拝見していました.主にVBA関連の記事でしたが,他のVBAブログよりも読みやすく,かなり参照したと記憶しています.

ですが,最も大きな理由は,タカハシさんの執筆されたVBA本に大きな影響を受けたからです.

書籍は「2017年4月22日」に楽天ブックスで購入したと記録にありました.私はVBAでは「ただ動けば良い」という気持ちでコーディングしていました.“リーダブル・コード”なんて考えたこともありません.そんな私の意識を大きく変えたのが本書です.私のプログラミングに大きく影響を与えた書籍です(機会があれば書評なんかも書きたいですね).その書籍を執筆された方のコミュニティであれば入会してみたいなーと思ったのです.

私は職場でもVBAを活用してコーディングすることがありましたが,私以外の人はそのコードは全く理解できません.また,VBAでどういった事ができて,どのような事はできないのか,当然ながらその辺りの理解も同僚の方々にはありませんでした.

そういった環境でしたので,当然,プログラミングに関して話をできる人も周りにはいません.また,自分の書いているコードは本当に良いコードなのかを判断してくれる人もいません.当然プログラミングの価値は認められにくく,与えられた少ない時間の中でとりあえずコードを書き試行錯誤するしかありません.暗中模索とはまさにこのこと.本職プログラマには無いであろう,ノンプログラマ独特の悩みだと思います.

こういった悩みなどを解消したいな,もっと上手くコード書けるようになりたいなと思っていたある日,たまたま技術情報が欲しくて閲覧していたタカハシさんのブログで,コミュニティ運営開始の記事を目にしました.とりあえず入会してみて,嫌だったらやめようという軽い気持ちで入会しました.それから今に至るという感じなのですが笑.

ブログ更新開始!

ノンプロ研では,やれブログを書けだの,やれ情報発信しろだの頻繁に聞こえてきます(なんだかネガティブな文脈で聞こえますね笑).「教えることは2度学ぶこと」― これもよく聞きます.なるほど,確かに一理あるなと,今までの経験からも思いましたので,ではブログでも書いてみようかということで,このころから放置気味であったブログを更新するようになりました.

基本はExcelやVBA関連の記事です.最初のころは管理栄養士のためのVBA入門なんて記事も書きましたね.途中で飽きて辞めちゃいましたが….

管理栄養士のためのVBA入門|第1回:VBAとは?
今回から新連載のスタートです。題して、 「管理栄養士のためのVBA入門」です。 「VBA」という言葉は、聞いた事がある人もいらっしゃるかもしれません。 が、多くの方があまり馴染みのない言葉ではないでしょうか。 こ...

その他,VBAで作成した,修正箇所を赤字にするアドインに関する記事も書いたりしました.

変更箇所を赤字にするExcelアドインを作成しました
Excelにて、変更箇所を赤字にするアドインを作成しました。簡単にインストールできますので、お気軽にどうぞ。

私のバックグラウンドがVBAにあること,また一般的に需要が大きいこともあって,ExcelやVBA関連の記事が中心となっていきました.

 

スマホアプリ・Webアプリ・Chrome拡張機能を作成

ただ,私の場合はVBAだけで飽き足らず,他にもやりたいことがでてきました.身の回りの不便をプログラミングで解決したいなーと思った時,やはりVBAだけでは無理がありました.できないことはないのですが,かなり面倒で力技で解決しなきゃいけない部分がでてくる.餅は餅屋,または適材適所ってやつですね.

スプレッドシートのアドオンを作成した際に,一通りのHTMLとJQueryはマスターしたつもりでした.ならば,それらの知識を活かしてなにか作りたいな―と思った時,スマホアプリやWebアプリが視野に入りました.

スマホアプリはMonacaというプラットフォームを使用することで,HTML関連の基本的な知識だけで作成できました.

スプレッドシート栄養計算 for Mobile - Google Play のアプリ
▼おすすめポイント ・シンプルなUIで直感的に操作できる! ・スプレッドシート形式で食品や栄養素が表示される! ▼計算できる栄養素など ・エネルギー ・たんぱく質 ・脂質 ・飽和脂肪酸 ・炭水化物 ・食物繊維総量 ・ナトリウム ・カリウム ・カルシウム ・マグネシウム ・鉄 ・亜鉛 ・銅 ・ヨウ素 ・セレン ・モリブ...

更新日は2018年5月29日になっていますね.たしか,ノンプロ研に入会して最初のもくもく会でこれに関する作業を行った記憶があります.その際,私はBootstrapを使用してUI面を構築していたのですが,それだとアプリ審査に通りにくいと,タカハシさんから教えていただき,それぞれのガイドラインに沿ったアプリ作成ができるOnsen UIを導入することにしました.一人で開発していて,他人のレビューを受けていなければ,もしかしたら今でも気づいていなかったかもしれませんね.

全然更新しておらず,おそらくこれからもそうだろうと思うのですが,一応スマホアプリを作成できたのは良い経験になっています.

その後,GoogleAppsScriptのWebアプリケーション作成機能を使って,Webアプリを作成しました.GoogleAppsScriptの場合,サーバーを契約したりする必要がなく,簡単・手軽にWebアプリを作成することができます.それで作成されたのが,以下のWebアプリです.

Web-Based FFQ

これはOnsen UIを活用することで,GoogleAppsScriptのWebアプリでも疑似的に複数ページに見せています.スマホアプリを作成した際の経験が活きました.

また,Chrome拡張機能も作成しました.これは今年の6月のこと.

GoogleAppsScriptのスクリプトエディタのフォントサイズを変更するChrome拡張機能を作成しました!
GoogleAppsScriptのスクリプトエディタのフォントサイズを変更するChrome拡張機能を作成しました。インストール方法と使い方などを紹介します。

これも,ほとんどHTMLとJSの知識だけで作成できました.HTML関連は,VBAと違って汎用的だなーと実感しましたね.

 

念願のPython入門!

長期休みを利用して一気に

そして8月.私の夏休み&お盆休みという長い空白期間を利用して,念願のPythonに入門を果たすことにしました.

とりあえず,Progateを活用し,基礎を学習.

その後,PyQである程度学習しました.

昔は全く理解できなかったPython.ですが,VBAやGoogleAppsScriptなどの他の言語を触った後だと,かなり理解しやすくなりました.また,ProgaeteやPyQなどの学習支援サービスを活用することで,かなり効率的に勉強できたと思います.

また,まるまるっと大きく空白期間を利用できたのも大きいですね.「新しいことを学ぶためにはある程度のまとまった時間が必要」というポリシーを持っているので,それを活用できたのが,Python入門を果たせたもう一つの要因ですね.年末年始は何しようか….

こういった自身のプログラミング基礎力の習得,様々な学習サービスの登場,まとまった時間の確保によって,念願のPython入門を果たすことができたのです.

Pythonといえば機械学習!ディープラーニングをイチから学習

そして,Pythonを勉強すると,やはりやりたくなるのがAIや機械学習関連.まずは以下の書籍で基本を勉強しました.

この書籍では,便利な機械学習用のフレームワークを使用せず,イチからディープラーニングの仕組みを作り上げていきます.仕組みの部分をフレームワークで隠蔽されちゃうと,その根底の部分を理解しにくかったりしますので,それを使用せず,基本から学びます.フレームワークを使用することで小難しいことを理解せずに使えちゃうというメリットもあるのですが,やはり基本を理解していないと応用も理解できない.ということでフレームワークを使用せず,基本的なライブラリだけで,ディープラーニングを作り上げていき,その仕組を理解しよう!というのが本書のコンセプトです.

これを最初から最後までしっかりと写経しました.不思議なことに,テキストや数式の状態だけだと理解できなかった事柄が,コードに落とし込まれ,そしてそれを実際に手を動かして写経することで理解できるようになったのです.これは不思議な感覚でしたね.そんなこんながありつつ,なんとか機械学習という巨大な壁を登るための足場を作ることができました.

その後は画像認識一直線!

ディープラーニングに関する基本的な理解を得た後は,ただひたすら画像認識に関する勉強をしました.

あまり知られていないことですが,栄養とICTとの組み合わせが,本ブログのメインテーマの1つだったりします.最近は食事画像を認識してエネルギーを計算できるというアプリがたくさん公開されています.「ちょっとそれについて理解したいなー」という動機があり,画像認識を勉強してみました.

最終的には,食品の画像を取得し,それを分類するという機能は実装できました.

【Python/Keras】VGG16をFine-tunignして100種類の食事画像を認識してみよう!【UECFOOD-100】
以前の記事でVGG16を用いて画像を認識・分類する方法を紹介しました. しかし,本ブログのテーマの1つは「栄養×ICT」.やはり食事画像認識をやりたいなー,ということで,VGG16をFine-tuningし,食事画像を...

まだエネルギーの算出まではできていませんが,画像が分類さえできれば,そのエネルギー量をデータベースから取得するだけなので,コアの部分は実装できたと思います.

実際にアプリに搭載したりするにはハードルが高すぎるので,そこまでは私はしませんが,画像認識の世界を垣間見ることができたのは,非常に良い経験になりました.

初Python会でLT

ノンプロ研で,Pythonの環境構築からワイワイやろうというもくもく会が開催されました.こちらは,同じくノンプロ研の方がレビュー記事を書いてくださっています.

私は環境構築済みでしたので,Google Colabを活用した環境構築法ということでLTを行いました.基本的な内容は以下の記事をなぞったような感じです.

機械学習を体験してみたいなら無料で使える「Google Colab」がオススメ
機械学習,ひいてはディープラーニングを体験してみたい!と思ったときの障壁の1つが環境構築です.これらには様々なライブラリを活用することになるでしょうし,また一般的なノートブック程度のスペックでは処理に何時間もかかってしまいます.とい...

初学者の方がどのような所に疑問を持つのかなど興味深かったですね.

 

いろんなことに手を出したが結局VBAに戻る

この2018年は様々なことに手を出しました.スマホアプリやWebアプリ,Chrome拡張やPython.たくさんの新しいことに挑戦しました.これらは私の知的好奇心を刺激してくれましたし,できることを増やしてくれました.しかし,やはり私の本業に活かせるものはそれほど多くはありません.これらを学んだ事自体を活かすことはできますが,その知識を直接活かすことはできませんでした.

また,私が何かしらを実装しようとすると,その出発点なり着地点なりはExcelにたどり着くのですね.Excelのデータを取り込んだり,最終的にExcel形式に整えたり.Pythonで作業しても結局はそうなる.ならば,最初から最後までExcelでも良いよね?って思ったのですね.必要に応じて,VBAからAPIを利用する,という形式でも問題なさそうですし.

なので,やっぱVBA勉強するかーとの結論に達しました.

とりあえず,評判の良い以下の書籍を少し読んで見ることにしました.

けっこう濃い内容で,VBAを勉強し始める際に読むのではなく,実務レベルで活用する/している人が読むと良さそうな本でした.これを100%に近い状態に読みこなせると,VBA上級者といえるかも?しれませんね.

ちなみに,この書籍の勉強はノンプロ研のもくもく合宿でも行いました.プログラミングの合宿ですね.このような合宿は初めてだったので,非常に面白かったですね.以下の記事で詳しく紹介されています.

ノンプロ研スタート以来初めて開催された「もくもく合宿 in 三浦海岸」
なんと行って来てしまいました、ノンプロ研「もくもく合宿 in 三浦海岸」!コミュニティをスタートしてから1年。まさか、メンバーと合宿に行くことになろうとは…嬉しいですね。ということで今回は、もくもく合宿のレポートをします。
【幹事向け】家族で参加できる"もくもく合宿"を開催しました - ノンプログラマー 社内SE     やおらハック
【幹事向け】家族で参加できる"もくもく合宿"を開催しました 12月1日でノンプロ研が産声をあげて1周年。めでたい! この1年で心に残っているのは、やはり自分が幹事をした『もくもく合宿』。 今回は”幹事目線”でもくもく合宿を振り返ります。 ※本日から25日まで「ノンプロ研 Advent Calendar 2018」が始ま...

 

まとめ

今回は2018年を振り返り,プログラミング関係の振り返りを行ってみました.こうやって見てみると,結構いろんなことに手を出していますね.あと,かなーり盛りだくさんで,書けないことが多々ありました.それだけ動きの多い1年でしたね.

かなり長くなりましたのいで,2019年の抱負なりやりたいことはまた次の記事で.

 

連載目次

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