ExcelでのVLOOKUPの代用(MATCH,INDEXとMATCH,OFFSET)と速度について


よく忘れるのでメモ。

知ってる人も多いと思いますが、ExcelにはVLOOKUPという関数があります(参考:VLOOKUP 関数 – Office のサポート)。これは、表の中にある、特定の値(検索値)に対応する値を取得する関数なのですが、この関数は検索値よりも右側の値しか取得できません。最初、第三引数にマイナスの値を指定する右側の値を取得できると思って試したのですが、無理でした。このため、昔は表の右側に、検索値より左側の値を参照する式を追加していていました(検索値がB列でほしい値がA列の場合、C列に”=A列の値”といった式を入力する)。

ただ、最近になって代用方法があるということを知りました。どうやら、MATCH関数とINDEX関数の組み合わせ、もしくはMATCH関数とOFFSET関数の組み合わせで代用可能とのこと(参考:徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技)。

簡単に説明すると、MATCH関数は指定の範囲から検索値が何番目にあるかを返す関す、INDEX関数は指定の範囲内にある指定の行数、列数から値を取得する関数、OFFSET関数は指定のセルと行数、列数から指定のセルの行数、列数分移動したところにある値を取得する関数です。

言葉だけでは分かりにくいと思うので、実際に試した結果の画像を下記に載せておきます。
エクセルで試した結果

F列がG列の式をセットした結果です。検索範囲はA列からC列、検索値はF1にある『近畿』です。見てもらえればなんとなく何をしているか分かるかと思います。F2,F5,F7では『近畿』という値をB列から検索し、その右側の値を取得して『7』という結果を得ています。F4,F6では『近畿』という値をB列から検索し、その左側の値を取得して『5』という結果を得ています。

直感的にはINDEX関数よりOFFSET関数のほうが意味合いが分かりやるいと思っています(INDEX関数って言われても、どういう関数なのかピンと来ない)。ただ、OFFSET関数は第二引数に-1を付けなきゃいけない(1引く必要がある)ので、自分は何度も間違えました。なので、慣れたらINDEX関数とOFFSET関数の組み合わせで対応するのがいいかと思います。

というより、そもそもこの組み合わせを分かっていたらVLOOKUP関数を使う必要はないかもしれません。たとえ探したい値が検索値より右側にあったとしてもINDEX関数とOFFSET関数さえ使っておけばいいんじゃないかと(もちろん、こっちのほうが少し冗長ですが)。

ただ、そこで気になるのが速度の問題です。関数が一つですむVLOOKUP関数にたいして、INDEX関数とOFFSET関数の組み合わせだと関数を二つ使うことになります。ということは、その分、速度も遅くなってしまうのではないかと。

というわけで、検証してみることにしました。用意したのはアルファベットをランダムに3文字並べた文字列50万個をSheet1とSheet2の二つのシートのA列に記載し、Sheet2のほうにはB列に行番号を追記するというもの。その後、式のままだと問題があるので、式を結果で上書きしました(全体をコピーした後、右クリックで値貼り付け)。
参考:アルファベットをランダムに表示したい−CHAR関数・RANDBETWEEN関数:Excel(エクセル)の関数・数式の使い方-文字列

作成後は下記のようになっています。
Sheet1
Sheet1
Sheet2
Sheet2

その後、VBAにて計測処理とSheet1のB列において検索式の追加処理、C1の値に処理を開始してから完了するまでの時間(秒)を記載する処理を追加。具体的には下記のような感じ。

上記はINDEXとMATCH関数の組み合わせのみ記載しましたが、VLOOKUP関数やOFFSETとMATCH関数の組み合わせでもほとんど同じです。5行目がVLOOKUP関数になるかOFFSETとMATCH関数になるかが違うぐらいです。

結果は下記のような感じになります(環境Excel2010です)。
結果

以下、それぞれ5回ずつ試した結果。

VLOOKUP実行 INDEX_MATCH実行 OFFSET_MATCH実行
1回目 78.453125 77.2578125 77.234375
2回目 77.3046875 77.5 77.2734375
3回目 77.359375 77.6171875 77.421875
4回目 77.5390625 77.59375 77.4140625
5回目 77.4296875 77.75 77.3671875
平均 77.6171875 77.54375 77.3421875

ほぼ全く関係なさそうです。微妙に違いますが、誤差レベルと思われます。INDEX,MATCH関数の組み合わせよりOFFSET,MATCH関数の組み合わせのほうがちょっとだけ速いような気もしなくはないですが、気にするほどの差はないかと思われます(VLOOKUP関数の1回目が遅いのは、最初の実行だからかと思われます)。

昨年退職した元同僚から、引き抜きの誘いを受けた話


自称、技術ブログだけど、3回連続雑記エントリー。

今回の話は書こうかどうか迷いました。会社の人に見られるとすごくまずいので(このブログは、会社の人が見たら誰が書いてるか分かるていどのことは書いてるので……)。

先日書いたように、最近、転職について頭の片隅で考えている自分です(2016年になったので自分の転職観について書く | while(isプログラマ))。

そんな中、先日、昨年の7月頃に退職した元同僚の先輩(営業の人。以下、Aさんとする)から、LINE経由で飲みに行く誘いを受けました。試しに、「他にも誰か誘ってるんですか? それとも、僕から誘ったほうがいいですか?」と送ると、二人だけがいいとのこと。高いツボでも売られるんじゃないだろうなと思って約束の場所に行きました。

そこで、衝撃の事実が発覚。なんとAさん、なんと同業他社(以下、B社)に転職していることが発覚しました。自分が社長から聞いていた話では、東京に行ったとのことだったのだけど……。いやまあ、年賀状の住所が変わってないからおかしいなとは思ったんですけどね。

そんな中、今の会社はどうかという話があって、「相変わらず大変だなぁ」みたいなことを言われたような気がします。それで、自分が務めている会社(=Aさんが前に勤めていた会社)について、あれが嫌でこれが嫌でという話をした後に、転職の話になり、さらいAさんがB社について忘年会やら社員旅行がすごく楽しいという話になり、その中で引き抜きの誘いを受けたような気がします(メモをとっていなかったし、慣れないアルコールを飲んでいたこともあってかこのあたりは記憶が曖昧です。順序が異なっているかもしれません)。

自分も転職について頭の片隅で考えていたとはいえ、そんなすぐに答えれるわけがないので躊躇していました。その中で、自分が今働いている会社の悪いところ(大部分は同意できる)とB社の良いところと僕のことについて優秀だとか勉強家だとかを語りだして、それでも自分が躊躇していると、「うちに来たらこの人の元で働いてもらう」と言って、B社の忘年会の集合写真を見せてきました。

「えっ……」と思わず声が漏れました。そこには昨年退職した上司が写っていました(病気がちだから親戚の叔父さんのところで細々と手伝うと聞いていたような……)。

確かに同時期に辞めましたけどね、まさか同じ所で働いているとは思いませんでした。

勤務地はともかく、今より悪くなることはなさそうです(給料については、少なくとも現在の手取り以上は出すとのこと。なぜ、給料ではなく手取りであらわしているかというと、うちの会社が保険や税金を低くおさえるために工夫しているため)。

会社の将来性にたいしても、B社のほうがいいのは分かります。具体的なことは知りませんが、うちの会社はジリ貧状態です。Aさんいわく、うちの会社は倒産しかねないとのこと(正直、そういうこともあるかもしれないなと思って話を聞いていたのですが、Aさんのある言葉で、確かにうちの会社はやばいと思いました。何でそう思ったかはちょっと書けません)。Aさんとしても迷う理由が分からないとのことですが、人が少ない状態でやってるうちの会社で自分がやめるのは、それはそれで躊躇します。

それから3日たちました。両親にも話していろいろ悩んではいるのですが、結論はでていません(父は悪く無い印象を持っており、母は「引き抜きだったら普通、給料をあげるとかいう条件だすでしょ!」と怒っています)。何度かAさんとLINEでやりとりして、聞いてみましたが、確かに悪い話ではないと思いました(ただし、Aさんとしては質問はLINEではなく会って話したいとのこと。LINEのほうが手軽でいいんだけどなぁ……)。

ちょっと話は変わって、誘いを受けた次の日。仕事中に隣の席の同僚(技術者)からメールが届きました。読んで驚きました。なんと、フェイスブックを見てAさんと元上司がB社で働いたということを知り、その報告とのこと。社長にも伝えたらしい。そしてメールの最後には、『今の会社でできることを頑張っていきましょう。色々信頼しているのでよろしく』という旨のメールが……。何この転職を引き止めるような文面……。

話は戻って、引き抜きの誘いの話。正直、悪い話ではないので、もう少し質問を考えてちょっとでもいい答え、というより悪く無い答えが返ってきたら転職してみてもいいかなと思いました(といっても、面接はしなきゃいけないと思いますが)。本社で働いてみて一人暮らしデビューも悪く無いかもしれないと空想したりして……。

と思ったのですが、よくよく調べてみると、退職した従業員が引き抜きを行うという行為って法的にどうもグレイっぽいんですよね……(参考:退職する従業員による引き抜き行為について調査する方法 |弁護士事務所咲くやこの花法律事務所)。確かに、他のシステム会社ならともかく、B社はかなりうちの会社とやっていることが似ています(実はうちの会社で作って使っていたシステムとソースコードをB社に昨年売りました。本当なら、B社が一から作ろうと思っていたみたいなんですが、断念したと聞いています。売ったならいいじゃないかと思うかもしれませんが、その分、そのシステムを使って得ていたお金は入ってこなくなりました。正直、もっとトラブルや質問があると思ってたけど、思ったよりすんなりと使いこなせてるようだと驚いたのですが、元上司が転職していたなら納得できます)。

実は、法的にグレイと知る前は、「もし転職するとしたら、自分は嘘をつくのは苦手だし、Aさんや元上司みたいに後でバレて関係を悪化させるぐらいなら、いさぎよくAさんから引き抜きの話を受けてそこに転職する旨を伝えよう」なんて思っていたのですが、どうやらそういう退職の理由はまずそうです。ただ、自分自身、嘘が苦手なもんで、追い詰められたら正直にいいかねません。

というわけで、一度、引き抜きの誘いを受けようと揺らいだものの、今はやっぱり断ろうかなと思っています。ただ、Aさんとしても急いでいるわけではないので、もう少し考えてみようと思います(そもそも、Aさんは同情して話をしてくれたっぽいです。B社に転職するかどうかに関わらず、転職はしたほうがいいと言っていた気がするので)

いっそのこと、このブログを見て良さ気な会社が引き抜いてくれたらなぁ、と甘い考え。いや、引き抜きがあるような記事書いてないか……。

2016/02/13追記:
ずっと書き忘れてましたが、結局、今の会社に残ることにしました。名前と会社名を出さずに社長に相談したら、いろいろ良くしてくれたので……。

2016年になったので自分の結婚観について書いておく


昨日の転職のエントリーにつづいて、今日は結婚について。

自分は今年の2月に28歳になります。周りに結婚したいるわけではないのですが、父が結婚した年齢が22歳(自分が生まれた時は24歳)と考えると、結婚を意識したほうがいいんだろうなと最近思います。自分の職場でも、結婚してないのって自分だけですしね(といっても、自分の次に若い人は、30代後半ですが)。

とはいうものの、結婚する相手がいるわけではありません。それどころか、そんな相手にめぐりあえたことがありません。つまり、恋人いない歴=年齢です。親にも結婚は諦めている節があるらしく、時々、妹に子どもができたら仲良くするように言われます(といっても、妹も結婚も結婚するような相手もいません)。

そんなんじゃ駄目だと思い、先日、500円で参加できる体験お見合いパーティというイベントに参加してきました(もともとは、答えるとポンタポイントがもらえる『婚活・結婚診断テスト』というものがあり、それに答えたら営業らしき人から電話がかかってきて、その流れで参加することになりました)。
 参加して思いましたが、付き合うとかもうそれ以前の問題なんだろうなということに気づきました。いや、むしろ前から分かっていたことなのですが、自分は人見知りでコミュニケーション能力が低く、1対1だと何を話していいか分からないわけです。自己紹介カードというものを交換して、そこから会話をすればいいそうなのですが、何を話せばいいか全くわからない。だいたい、相手(女性)が質問したことを一言二言返して話が途切れる状態でした。
 イベント終了後、営業の人と話をして、そのことを伝えると、「女性と話をするとあがってしまうんですね」と言われましたが、そうじゃないんです。男だろうが女だろうが、初めての人とは上手く話せないんです。

ちなみにそのパーティーの主催はとある結婚相談所で、イベント終了後にはどういうプランがあるか説明を受けました。自分の年齢の場合、入会費に90000円がかかり、月会費がないプランというものがあるそうです(1年入会するとすると、実質、月7500円)。その他に、お見合いをする時やイベントに参加する時に費用が発生するとのこと(このプランで結婚相手を見つけた場合には100000円の費用が発生するそうです)。
 正直、少しは迷ったのですが、何で大概の人は結婚相手を見つけるのにお金を払ってない中、自分はお金を払ってまでこんなことをしなきゃいけないんだと思うと嫌になり、やめました。それに、営業の人の印象があまりよくありませんでした。自分は身長、158cmと低いんですけどと伝えると、「もっと低い女性もたくさんいますよ」と答えられて、そうじゃないだろと思った。他にも、僕が気にいりそうな可愛い子もいるとかどうとかと勧誘(風俗か!)。そりゃ、自分が気にいる子はいるかもしれないけど、肝心なのは自分のことを気に入ってくれるような子がいるかだと思うんだけど……と思いました。自分の場合、年収も低いですし。

そもそも、自分、友だち自体、少ないんですよね。パッと思いつくだけで3人いますが、1人は5年以上連絡してませんし、1人は5年近く会ってませんし、1人は1年以上会ってません(同じマンションなのに)。

大学の時は何してたんでしょうね。サークルにも入らず、バイト先でもだれとも仲良くならずに4年をすごし、研究室に所属したらさすがにと思いましたが、結局誰とも連絡先を交換することなく卒業しました。そんなんだから、就活もうまくいかなかったんですけどね。実際、何社かに、友だちや彼女についての質問をされました(こういう質問はタブーだろと思いながら、正直に「いません」と答えました)。まあ、今働いている会社の最終面接でも聞かれたんですけどね。「何で友だち作らなかったの? 『こんにちは、こんにちは』って挨拶したらできるでしょ」というようなことを社長に言われたのを覚えてます(頭の中はポポポポーンと脳内再生されたのを覚えています。何せ、2011年の4月のことだったもんで)。

今もスポーツジムに週2,3回の頻度で通っているんですが、友だちを作るなんてことは考えられません。実際、ジムで出会った人と友だちや恋人になる人もいるそうなんですけどね。マシントレーニングと有酸素運動を適当にやって帰る自分には縁もなさそうです。あっ、「一人でトレーニングしてる人に話しかけろ」なんて言わないでください。自分にはかなりハードルが高いことなので。

ここまで書いといて、なんだか虚しくなってきました。いったい、どうすればいいんだろう。

まあ、特別、急いでるわけでもないんですけどね……。

2016年になったので自分の転職観について書く


自分は2010年の3月に内定をどこの会社からも得られないまま大学を卒業し、その1年後の4月に現在働いている会社から内定を得て、その年の5月から現在まで同じ会社で働いています。つまり、今年の5月で就職してから5年が経過するわけです。

今の会社から内定を得るまでは多分、100社ぐらいの会社の選考を受けており、面接も何十社も受けてきましたが、ほとんどは一次面接で落とされてきました。なので、現在働いている会社には採用してくれたという感謝してもしきれません。仕事は自分の希望していたプログラミングやWeb制作の仕事が主ということもあり、本当によかったと思います。

じゃあなぜ、今回転職の話を書くのか。正直積極的に辞めたいと思っているわけではないのですが、もしかして転職したほうがいいのではないかと思うことが多々あります。今回はそのことについて書こうと思います。

転職したいと思う理由

・仕事がつまらない

 これは現状だけだと思うのですが、最近やっている仕事が全くもって面白くありません。もちろん、サラリーマンである以上、仕事を選べる立場ではないのですが、もう少し開発の仕事(できたら、ウェブ開発)がしたいと思う時があります。まあ、でもこれはたいした問題ではないです。

・会社の業績がここ3年ぐらい悪い

3年前に主要取引先の一社から契約が切られ、そこから急激に業績が悪化していった印象があります(同時に、何人かクビになりました)。さらに、数カ月後に他の主要取引先からも契約が大部分切られることになり、この時ばかりはつぶれるのではないかと思いました。そこで事業転換し、官公庁が公募している小規模の公告案件を入札していき、なんとか会社が保っている状態です(といっても、自分は財務を把握していないので、実際のところよく分かっていません)。
 ここで、3年前と書きましたが、よくよく考えると自分が入ってから業績が悪化し続けている気がしてなりません。そう思う理由ですが、自分が入った時には16人ほど従業員がいましたが、現在は6人しかいません。自分が入ってから、誰も入ってきていない状態です。実は、自分が入って数カ月後にもある主要取引先から切られています。あれ? もしかして自分が疫病神?

・給料が少ない

先ほどの内容からして予想できるとは思いますが、給料は少ないです。はっきり言ってしまうと、年収300万円いきません(その分、残業はほとんどありませんが)。調べてみると、自分の年齢のプログラマだと年収はもっと高いみたいなんですよね……。実家ぐらしなので、特別お金に困っているというわけではないのですが、平均年収を知ると、どうにも少ないよなぁと思って今います(もちろん、平均は平均であって、もっと下もいるとは思います)。
 ただ、実は給料が少ない以前に給料に対してはちょっと困ったことがあります。まず、給与明細がなかなかもらえません。これは、自分が入社してからなのですが、業績が悪化してからはもっと間隔が長くなってきました。ちなみに、最近もらった給与明細は平成27年7月分です。言ったらもらえるのかもしれませんが、絶対に必要というものでもないので、「早くください」と言ったことはありません。ただ、できるなら早く欲しいと思ってはいます。
 後、これはもしかしたら言ったらだめなことかもしれませんが、会社名を公表していないので言うと、実は給料は2社から振り込まれています。もう少し具体的にいうと、自分はA社という会社に努めており、25日になるとA社から給料は振り込まれているものの、月末になると別のB社からも給料が振り込まれるという状態になっています。A社からは健康保険料、厚生年金保険料、雇用保険料、住民税が引かれ、B社からは所得税のみが引かれています。節税対策らしく、その分、手取り額も増えているそうです(ただし、年金は減るとのこと。年金はあてにならないというのが社長の言い分ですし、自分もそれについては同意できます)。自分は業績が悪化してからなのですが、他の先輩方は前からそうなっているようです。マイナンバーが運用されたら、この運用はできないと思っているんですが、どうなんだろう……。
 そもそも、業績悪くなってから経理がいなくなって、経理のことは全部社長一人でやってるんですよね……。それはそれでどうなんだと思わなくないです(同時に社長業もこなせてはいるので、優秀な人ではあると思うんですけどね。実際、かなり頭の回転が早いです)。

・職場に目標とできる人がいない

 自画自賛じゃないですが、自分は会社の中ではHTMLやJavaScriptといったフロントエンド側のウェブ技術に詳しい自信があります。実際、その辺りの仕事についてはよく相談を受けますし、社員の皆さんからも優秀と言ってもらえます。ただ、自分程度のレベルが優秀と言われるこの職場はどうなんだと思う時があります。プログラマには必須のツールと言われるGitは全然使いこなせてないし、興味のあるフロントエンド側のWeb技術だって、JavaScriptフレームワークを使ったことがなければ、AltJSもCSSプリプロセッサーも触りしか使ったことがない。だいたい、未だにpaizaの恋愛SLGでサンタ服をゲットできません
 正直、優秀な人のもとで働きたいなと思うわけです。まあ、このへんは自分勝手な意見かもしれませんけどね。実際、自分より技術力のある人はいるにはいますし(鬱病気味ですが……)。
 そもそも、社長が直属の上司という状況は正直、嫌です。できたら、間に人がほしいです。

・親含めて、会社のことを話すと転職したらどうだと言われる

これは客観的な話。先ほど書いた、給料体系などの話をすると、だいたい転職をすすめられます。そう言われるたびに、したほうがいいんだろうなと思ってしまいます。

転職したくないと思う理由

ここまで転職したくない理由を書いてきましたが、それでも少し転職するには抵抗があります。

・就職活動をしたくない

最初に書いたとおり、自分は何十社と面接に落とされてきており、正直、またそれをやらなければいけないと考えると嫌になります。もちろん、5年分のキャリア経験はあるにはあるものの、採用面接で胸をはっていえるようなことではないです。いや、なくはないのですが、もう一度やれと言われても無理かもしれません……。この5年間でコミュニケーション能力がアップしたかというと、そういうわけではないと思いますしね……。

・自分が抜けると会社が潰れかねない(と思うし、そう言う人もいる)

今、自分が担当しているところはほぼ自分しかわかりません。ただし、そういう状況なのは自分だけではなく、他の社員についてもその人自身しか分かっていない箇所ばかりです。なので、一人でもぬけると、会社が保てなくなってしまう危険性があります。正直、会社には恩もありますし、自分がぬけたことによって会社がつぶれるなんてことにはなってほしくありません。
 ただ、よくよく考えると、昨年、技術のほとんどを担当していた上司が退職した時点で潰れると思ったものの、なんとかやっていけているので、そう簡単には潰れないかもしれません。

・辞める理由がない

なんだかんだ言って、これが一番の理由かもしれません。最初にも書きましたが、積極的に辞めたいと思っているわけではありません。実際、残業もほとんどないですし、仕事をやっていて辛いと思ったことはほとんどありません。しいて言うなら、社長から叱られてる時が一番辛いです(もちろん、叱られる原因は自分にあるのですが)。職場で働いている人は良い人ばかりですし、勤務地は片道一時間と遠いわけではありません。給料は少ないですが、実家ぐらしなのでお金には困っていません。このように少しの不満ならありますが、多分、どこの会社で働くことになっても少しぐらい不満なんてあるものだと思います。社長だってワンマンなところは多少ありますが、決して悪い人ではありません。それどころか、昔の技術者だった時の武勇伝の話を聞くと本当にすごい人だという事がわかり、とても面白いです。なんとか会社を維持しようと奔走していますし、2月以降になるとよくなってくるという話も聞いています。

まあ、いろいろ書いてきましたが、多分、今年も転職せずにすごしていくんだと思います。転職するかどうかは、4月以降にまた考えようと思います。

2015年、買ってよかったWeb制作・プログラミング等の本


今年も後1日で終わりです。いろいろあったような気がするけど、そうでもなかったような年でした。

ちょっとだけ自分の話をすると、ブログの更新頻度が下がったのは、あることを成し遂げようとして、そちらに時間を割いたからなのですが、結局途中で挫折しました(まあ、挫折した後も更新頻度あがらなかったわけですが……)。

仕事のほうはというと、就職して初めて出張しました。飛行機(格安航空)で東京や北海道まで行きました。その出張することになったあるプロジェクトで、初めてLinuxとシェルスクリプトに携わりました。大変だったけど、面白かったです(その時は、ですが)。

というわけで、今年も買ってよかった技術書(Web制作・プログラミング関連の本メイン)を10冊に絞って紹介します。紹介順は購入した順番です。2015年に買ってよかった本といっときながら、昨年購入したけど昨年時点では読み終えてなかった本も含みます。
過去のエントリーは下記。
2013年、買ってよかったWeb制作・プログラミング等の本 | while(isプログラマ)
2014年、買ってよかったWeb制作・プログラミング等の本 | while(isプログラマ)

プロとして恥ずかしくない 新・WEBデザインの大原則

プロとして恥ずかしくない 新・WEBデザインの大原則
プロとして恥ずかしくない 新・WEBデザインの大原則
昨年の12月に購入した本。WEBデザインとあるけど、中身は配色やユーザビリティやアクセシビリティ、Sass、運用・分析手法など、Web制作(フロントエンド側)全般について書かれた本。
Webフォントとして利用できる日本語フォントについてもいくつか紹介しており、使ってみたいと思った(まだ使ってない……)。

Webエンジニアの教科書

Webエンジニアの教科書
Webエンジニアの教科書
3月に購入した本。Ruby on RailsやPHPでのサーバ言語、NoSQL、データの可視化や環境構築まで、Web技術全般について幅広く書かれた本。ただ、教科書とあると初心者向けなイメージがあるけど、少なくとも初心者向けではない。ある程度フロントエンドやサーバサイドに携わったことがある人じゃないと少しむずかしいんじゃないかと思った(少なくとも、SQLは分かってないと難しいと思う)。
自分はまだこの本のレベルに達していないのだけど、これぐらいのことを分かっておきたいとは思った。

現場のプロが教えるHTML+CSSコーディングの最新常識 知らないと困るWebデザインの新ルール4

現場のプロが教えるHTML+CSSコーディングの最新常識 知らないと困るWebデザインの新ルール4
現場のプロが教えるHTML+CSSコーディングの最新常識 知らないと困るWebデザインの新ルール4
3月に購入した本。『知らないと困るWebデザインの新ルール』シリーズ4つ目。最近のHTMLとCSSのコーディング手法について書かれた本。AltJSだとかCSSプリプロセッサだとか、覚えたら便利なんだろうけど、面倒そうなうえに、直接修正してしまったら後から修正が困難と思っていて敬遠しているのだけども、Emmetという短縮記法はそういう問題もなく、すごい便利だと思った。

コーディングWebアクセシビリティ – WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション

コーディングWebアクセシビリティ - WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション
コーディングWebアクセシビリティ – WAI-ARIAで実現するマルチデバイス環境のWebアプリケーション
3月に購入した本。Webアクセシビリティについての具体的な書き方について。今までアクセシビリティについては意識したことはなかったのだけど、この本を読んで意識してコードを書いていきたいと思った。

ブレイクスルーJavaScript フロントエンドエンジニアとして越えるべき5つの壁 オブジェクト指向からシングルページアプリケーションまで

ブレイクスルーJavaScript  フロントエンドエンジニアとして越えるべき5つの壁―オブジェクト指向からシングルページアプリケーションまで
ブレイクスルーJavaScript フロントエンドエンジニアとして越えるべき5つの壁―オブジェクト指向からシングルページアプリケーションまで
5月に購入した本。フロントエンドエンジニアとしてステップアップしたいと思ったら読んだほうがいいと思った本。JavaScriptのオブジェクト指向、UI・インタラクティブ表現、グラフィック表現、Ajax・API連携、シングルページアプリケーションについて網羅してある。jQueryの$.Deferredの勉強にもなった。

これからの「標準」を学ぶマルチデバイス対応サイト構築

これからの「標準」を学ぶ マルチデバイス対応サイト構築 (Web Designing BOOKS)
これからの「標準」を学ぶ マルチデバイス対応サイト構築 (Web Designing BOOKS)
6月に購入した本。名前のとおり、パソコンやスマホやタブレットなど、様々なデバイスに対応したサイト制作について書かれた本。レスポンシブデザインはもちろん、画像の最適化やWebページの高速化まで。
Webページ最適化はなるほどと思うところも確かにあったのだけど、CSSのファーストビューの箇所のみインライン化するというのはさすがにやりすぎじゃないかと思った。修正がかなり大変になりそう。

SQL実践入門 高速でわかりやすいクエリの書き方

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)
SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)
8月に購入した本。今年、うちの会社の技術に関して、かなりの広範囲を担当していた上司が退職し、自分はデータベースを引き継ぐことになったので読んでみた。正直、SQLは基本的なselect文が分かれば後はパズル的な感じと思っていたし、実際そういう箇所も多いのだけど、ウィンドウ関数すら自分にとっては目からウロコだった。コレ知ってると、ウィンドウ関数が使えないMySQLは使いたくなくなります。
他にもデータベースの更新処理が非同期など、初めて知ることが多くあったので、自分はまだまだデータベースについて精通していないことを実感した。もっと勉強していきたいです。

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック HTML文法解析から機械学習まで まだ、Webデータを手で集めていますか?

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
10月に購入した本。Webスクレイピングとありますが、スクレイピングしたデータを用いた形態素解析やベイジアンフィルタによる分類、文字認識やチャートの作成と、かなり広範囲に書かれておりJavaScript(ほとんどはNode.js)でここまでできるのかと驚きました。本当に、いろいろな手法が書かれており、自分もいろいろ試してみたいと思いました。
今回紹介する本の中で、最も買ってよかったと思った本です。

図解HTML5&CSS3 最新版

今すぐ使えるかんたんmini 図解 HTML5&CSS3[最新版]
今すぐ使えるかんたんmini 図解 HTML5&CSS3[最新版]
正直、1000円程度の本を買う必要があって買っただけで、さほど内容については期待してなかったのですが、薄い本ながらもHTML5とCSS3について広範囲に書かれており、HTML5にどういうものがあるか振り返るのにいいと思いました。
よくよく考えたら、今年購入した本でWeb Componentsについて書かれてる本はこれだけかもしれない。

新米探偵、データ分析に挑む

新米探偵、データ分析に挑む
新米探偵、データ分析に挑む
11月に電子書籍版を購入。とある弁当屋の統計技師(データサイエンティスト) ―データ分析のはじめかた―の著者による、最新の統計(?)小説です。
平均や中央値などの統計の基本的なことから、回帰分析や因子分析、テキストマイニングにまで幅広く、R Studioを用いた方法について書かれており、さらに小説形式なのでどういう時にどういう解析をすればいいのかも分かり、ためになった。
とはいっても、最近はR言語を全く触ってないんですけどね……。

以上、オススメの10冊でした。もちろん、他にもいろいろ買ったのですが、あまりに多くなるのもなんなので10冊にしぼりました。一応、その他に今年買ってすでに読み終えた技術書を下記に列挙しておきます。
Webエンジニアが知っておきたいインフラの基本 ~インフラの設計から構成、監視、チューニングまで~
Web API: The Good Parts
CSS3&jQueryで作る スマートフォンサイトUI図鑑 (WEB PROFESSIONAL)
Gitが、おもしろいほどわかる基本の使い方33〈バージョン管理、SourceTree、Bitbucket〉
頼られるWeb担当者になる! Googleウェブマスターツールの教科書
WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)
ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack(これは技術書じゃないですが)
入社1年目からの「Web技術」がわかる本
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問

決して、良書ではないというわけではないです。どちらかというと、読んだものはいいものの、実践できていないという本がオススメ10冊から漏れました(特に、インフラ本とWeb API本とGit本)。
ただ、『入社1年目からの「Web技術」がわかる本』については、誤字脱字が多く、それが修正されない限りはオススメしません。
『WEB+DB PRESS総集編[Vol.1~84]』については、総集編だからという理由で外しました。オススメからは外しましたが、買って損はないと思います。

それにしても、こうやって振り返ってみると、昨年とくらべてもあまり読んでる本が代わり映えしていないような気がします。内容が大きく変わったかというと、そうでもないし、試せているかというと全くそんなこともないわけです。
正直いうと、現状、読んで満足してしまってる本も多いので、来年はもう少し読む数を減らして、実際にコードなどを試していく作業をもっと増やしていきたいと思います。