webエンジニアの日常

RubyやPython, JSなど、IT関連の記事を書いています

昨年度の振り返り。経験したこと、勉強したこと

今年度で、社会人3年目に突入しました。

ここで一度、昨年度に勉強したことや、業務で体験したことを振り返ってみたいとおもいます。

【目次】

言語、フレームワーク

RubyRails

2016年の1月から本格的に業務でRuby on Rails開発が始まりました。

研修でも少しコードを書いたのですが、これが趣味以外で行う初めてのコーディングになります。

Rubyはほとんど初心者で、以下の書籍で勉強しました。

メタプログラミングRuby

メタプログラミングRuby

メタプログラミングRubyRubyに慣れてきたころ(2017年の1月中頃ぐらい)から読み始めました。とても楽しく読めました。メタプログラミングを知らなかったら、Rubyの本当の楽しさを知らないまま、機械学習pythonにもっと時間を費やしていたと思います。

Railsは以下の書籍とドットインストールで勉強しました。

Ruby on Rails 4 アプリケーションプログラミング

Ruby on Rails 4 アプリケーションプログラミング

初めてのwebアプリケーション開発ということもあって、まずgetとかpostって何?から始まりました。

勉強し始めのころは、通勤時間を使って、ドットインストールの動画を3周ぐらい見てRailsの文法になれていきました。

その後、Rails本のscaffoldの章を読み込んで、一覧、登録、更新、の基本的な処理の流れを理解しました。

jQuery

jQueryもほとんど初心者で、開発が始まってからは、他のメンバのコードを真似して書いていました。2017年1月からプロジェクトが代わり、しっかりjQueryを書く機会がありました。

jQueryのコードが多く、複雑になるにつれて、検索したコードや真似したコードを貼っているだけでは、実装やバグ修正に時間がかかり、目に見えて生産性が悪くなってきました。

そこで、業務の合間や休憩時間にW3Scoolsというサイトで勉強しました。

W3Scoolsは本当に分かりやすい。jQueryだけでなく、cssも勉強しました。英語のサイトなのですが、英語の勉強も兼ねて頑張って読みました。少しは慣れたかな~

python

2017年1月、最近話題になってる機械学習勉強したいなー、先にpythonを勉強した方がいいのかなーと思っていた時に以下の本を見つけました。

機械学習pythonが同時に勉強できて、オライリーのカレンダーも付いてくる、というのが決め手だったと思います。

内容も本当に面白いと思いました。2章のパーセプトロンの話は、最初機械学習と関係があるのかなと懐疑的でしたが、後に続くニューラルネットワークの章を読むときに理解を助けてくれました。

普段Rubyを使っていると、pythonでは引数がないメソッドも丸括弧を書かないといけないとか、endがないとか、最初は抵抗もありましたが、ベクトルの演算が直感的にかけていいなーと思いました。

endを書かないのも、慣れるとマークダウンみたいでいいですね。pythonの練習で書いたコードを元に、qiitaにpythonの記事を書いてみました。qiita初投稿です。

概念・思想・設計

機械学習

pythonのところでも書きましたが、ニューラルネットワークディープラーニングを勉強しました。

「畳み込み」のところはまだちゃんと理解できていないですが、ニューラルネットワークについてはよく理解できました。1周目は本を読んだだけですが、2周目からは実際にコードを書いて読み進めたいと思います。

まだ全然厳密に理解できていないですが、ニューラルネットワークディープラーニングを勉強して感じたことを書きたいと思います。

  • ニューラルネットワークアルゴリズムは、学習フェーズを通して、そのアルゴリズム独自の観点で物事を判断する。そういう意味で機械学習
    • 例えば、数字(0~9)を画像から判断する問題を考えるとする。私は私の基準でこれは1だとかこれは7だとか判断する。
    • ニューラルネットでは、画像データと回答(その画像がどの数字を表しているのか)を元に、独自の判断基準を形成していく。
    • 形成の仕方は、逆誤差伝搬方だと、間違った画像と回答の組に合わせて自分の判断基準を更新していく。人間のテスト勉強と似ている
  • 学習データが大量に必要なので、IOT・ビッグデータと相性が良さそう
  • これからもっと深く勉強していくには、数学が必要になってくる。楽しい

テスト駆動開発(TDD)

2017年1月からプロジェクトが変わり、テスト駆動開発を行う様になりました。プロジェクトのルールとしてTDDでやろう、というのはなく、勝手に始めてみました。

始めてみた理由は、テストがある程度かけるようになったことと、実装後にテストを書くと、画面上では動いているのにテストは落ちるというストレスがあったためです。

実際に行ってみると、ストレス無く開発を行う以上にいろいろとメリットがありました。以下にTDDをして感じたメリットをいくつか挙げてみます。

  • 実装を始める前に、これからこういうプログラムを書くんだ!と、自分の中で整理ができる。
  • プログラムの細かな仕様を決めてから書き始められるため、あとで、こういうバグにも対応しなくちゃという小さな後戻りが無くなる。
  • 実装中、どこでバグが起きているのかが、テストを実行してみると早く良くわかる。サーバ再起動とかしなくていい。

TDDはやってよかったと思うし、これからもTDDをしようと思います。

でも、たまにテストより前に実装をしてしまうときが。。。

その他・検定試験

文章の書き方

社会人2年目になって、後輩が入ってきたことや、ブログやqiitaへの投稿を始めてみて、分かりやすい文章を心掛ける様になりました。あと、同じチームの先輩の日本語が分かりにくすぎて、自分はちゃんと理解できる文章を書こうと思ったことも理由の一つです。

以下のようなことを気にしながら文章をかいています。

  • 「~だが、」や「~ので、」等はできるだけ使わず、文章は「。」で区切って書く様にする
  • 「~の~の」のように同じ助詞は繰り返し使わない
  • 自分の感想意外では、「~と思う」などの曖昧な表現を使わない。

統計検定

統計検定2級に合格すると、会社から報奨金がもらえるということを知り、受験しました。あ、合格しました。

風の噂で、報奨金の額が下がるということを聞き、2016年の最終試験日12月24日に池袋のコンピュータ学校で受験しました。

多分思い立ってから受験まで1ヶ月無かったと思いますが、お金のために、子供が寝てから遅いときで2時ぐらいまで勉強していました。

受験、勉強をしてみて思うことは、「演習大事」ということ。学生のころは教科書の章末に付いている演習問題を解くのが嫌いで、飛ばしていました。ですが、演習問題を解くと、自分が別っていないところがよくわかるし、なにより理解が早くなります。一通りの演習を短期間でやるには以下の本がとてもよかったです。

新確率統計問題集

新確率統計問題集

この本を一通りやって、特に苦手なところと、はじめにやって忘れてそうなところだけ、もう一度練習し、あとは公式の問題集を解きました。

日本統計学会公式認定 統計検定 2級 公式問題集[2013〜2015年]

日本統計学会公式認定 統計検定 2級 公式問題集[2013〜2015年]

ただ、本番の試験では上記の本だけでは一回も出てこなかった用語があり、まったく解けなかったので、少し前の問題集も使うことをおすすめします。

日本統計学会公式認定 統計検定 2級 公式問題集[2011〜2013年]

日本統計学会公式認定 統計検定 2級 公式問題集[2011〜2013年]

簿記3級

2017年から参加したプロジェクトでは、会社のICT資産を扱うため、会計用語をちらほら見かける様になりました。用語を少し調べるだけで業務上は充分だったのですが、ちゃんと会計を勉強しようと思い、簿記3級を受けてみることにしました。

ちなみに試験は2017年6月11日なので、このエントリーを書いているときはまだ受験申し込みすらしていません。

簿記の勉強は以下の書籍でやっています。

3級商業簿記〔平成29年度版〕 (【検定簿記講義】)

3級商業簿記〔平成29年度版〕 (【検定簿記講義】)

丁寧にやさしく説明されている教科書ですが、勉強し始めのころはとても難しく感じました。

攻略法とまでは行かないですが、これを中心に勉強したらいいんじゃないかと思うところを書いておきます。

  • 「資産」、「負債」、「資本」、「収益」、「費用」がそれぞれ増減したときに、仕訳のどちら側に書くのか
  • 各勘定が上記5つのいずれに分類されるのか
  • 決算手続き
  • 仕訳からの転記手順
  • 財務諸表の読み方

最後に、会計の勉強を始める前に、読んでよかったなと思った書籍を紹介します。

女騎士、経理になる。 (1) (バーズコミックス)

女騎士、経理になる。 (1) (バーズコミックス)

女騎士が簿記の知識を使って世界を変えるという風変わりな漫画です。勇者と税務官?との駆け引きも必見です。

今のところ4巻まで出ています。「くっ、殺せ」が面白い。次巻が待ち遠しいです。

本当にやさしかったです。物語になっているのでサクサク読める。物語自体も面白いです。そして、衝撃のラスト?!