読者です 読者をやめる 読者になる 読者になる

社会人4年目のエンジニアの自分にとって印象深い技術書10選

読書

これまで読んだ技術書の中で印象深いものについてまとめてみる。
この記事を書こうとしたきっかけは、自分のこれまでの学習のまとめのためと、他のエンジニアの方の学習に少しでも参考になればと思ったため。
それでは1年目から振り返っていく。

1年目

プログラミング言語Java

プログラミング言語 Java 第4版

プログラミング言語 Java 第4版

Java研修の課題で読み、演習問題も全て解いた本。
この本の学習にはかなりの時間をかけたが、1つのプログラミング言語をしっかりと学ぶという意味で良い経験となった。
ここで学んだ知識が、他の言語を学ぶ上でのベースとなっているように感じる。

2年目

Effective Java

EFFECTIVE JAVA 第2版 (The Java Series)

EFFECTIVE JAVA 第2版 (The Java Series)

これもJava研修の課題で読んだ本。
Javaのベストプラクティスだけでなく、API設計についても多くのことを学ぶことができた。

Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

オブジェクト指向や設計について学ぶために読んだ本。
今でもクラス設計をする際に読み返すことが多い。

Code Complete

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

Code Complete 第2版 下 完全なプログラミングを目指して

各所でバイブルと呼ばれていたので興味を持った本。
良いコードの書き方だけでなく、ソフトウェア開発全体について多くの知見を得ることができた。

アプレンティスシップ・パターン

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

アプレンティスシップ・パターン ―徒弟制度に学ぶ熟練技術者の技と心得 (THEORY/IN/PRACTICE)

Java研修の講師の方の関連で読んだ本。
ソフトウェアエンジニアとしてどのように成長していくかについて大きく刺激を受けた。

3年目

Ruby On Railsチュートリアル

railstutorial.jp

Railsの生産性の高さや、Web業界での使用率の高さに惹かれて勉強してみようと思った本。
RailsでのWebアプリの作り方に加えて、Webアプリ開発で必要な多くの技術についても学ぶことができた。

珠玉のプログラミング

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

大学時代の友人と輪講を行った本。
アルゴリズムとデータ構造について学べたことに加え、広く知られたアルゴリズムだけにとらわれない、柔軟な手法についても学ぶことができた。

Linuxカーネル2.6解読室

Linuxカーネル2.6解読室

Linuxカーネル2.6解読室

Linuxの仕組みを知ることで、日々の開発やトラブルシューティングに役立てることができると思って読んだ本。
OSの仕組みについて細かく書かれており、かなり理解が深まった。

Team Geek

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

HRT(謙虚、尊敬、信頼)の大切さを学んだ。
当時の自分は少し傲慢なところがあったが、改心するきっかけとなった。

4年目

Scala関数型デザイン&プログラミング

Scalaへの興味や関数型プログラミングの流行に乗って読んだ本。
難しい部分もあり全ては理解できなかったが、関数型プログラミングの主要な概念について学ぶことができた。
また、他のプログラミング言語を書くときにこの考え方を取り入れられるようになった。

まとめ

この3年半で50冊以上の技術書を読んできたが、本当に多くのことを学ぶ事ができ、仕事での開発や趣味の開発に役立てる事ができた。
今後も継続して学習を続けていくが、これからはアウトプットを出すことにももっと意識を向けていきたい。

YAPC::Asia 2015に参加しました

カンファレンス・勉強会

有給を取って、1日目と2日目に参加してきました。
YAPCへの参加は去年に続いて2回目です。

聞いたセッション

8/21 (Day 1)

  • Effective ES6
  • TBD
  • 若手エンジニア達の生存戦略
  • Electron
  • Lightning Talks

8/22 (Day 2)

  • Mackerel開発におけるScalaとGo、そしてPerl
  • サーバーサイドエンジニア(特にPerl)のためのiOSアプリ開発入門
  • Adventures in Refactoring
  • YAPCあるある
  • Lightning Talks
  • クロージング

感想

どのセッションも良かったのですが、MatzのTBDとLTが特に印象に残りました。
TBDでは、Matzの考えるRubyの悪いところや、Rubyの今後、なぜStreemを作ろうと思ったかなどを話していて、非常に興味深かったです。
LTはどれもとにかく面白くて最高でしたw

また、今年は個人スポンサーで参加したので、Tシャツ、パーカー、タンブラーなどをもらえて嬉しかったです。 活用していきます!

最後に、関係者の皆様ありがとうございました。
非常に有意義な2日間を過ごすことができました。

神奈川Ruby会議01に参加しました

カンファレンス・勉強会

会社の先輩の誘いがあったので参加してみたのですが、非常に楽しい勉強会で参加して良かったです。 以下、特に印象に残ったセッションの感想です。

ペアプログラミング

まともにペアプロするのは初めてだったのですが、時間内に課題もクリアできたし、めちゃくちゃ楽しめました。
初対面の方と色々話しながらコーディングすることで、仲良くなることができたり、自分の知らない書き方などを知ることができたりと良い経験になりました。
こうゆう勉強会の初めにペアプロするのはかなりありだと思います。

Rubyと俺達の生存戦略

様々なバックグラウンドを持つRubyistの方々が少しエモめに話されていました。特に、Rubyのような文脈でSI・メーカー勤務の方が思いを話しているのは新鮮で、興味深く聞いていました。

ロールプレイングゲーム2 真打(仮)

ロールプレイングゲームは改めて読んだのですが、かなり響きました。「あなたのチームの理想のプログラマ」を演じる。難しいですが、もう少し頑張ってみます。
「プロの無職」の話もそうゆう役割の人って大事だなと思いました。
それと、自動朗読を使って発表するのを見たのは初めてで笑いましたw

最後に、運営の皆様ありがとうございました!

シンプルなアンケートアプリを作りました

ruby

諸用で使うために、sinatraを使ってアンケートを収集するWebアプリを作りました。

UIは下のような感じで、アンケートの設問は設定ファイルから動的に作成するようになっています。
アンケート結果はファイルに書き出しています。

f:id:mura-s:20141207173443p:plain

ソースコードgithubに置いてあります。
mura-s/questionnaire

勉強会でvimについて発表しました

vim

先日自分が主導になって実施した部署内の勉強会で、vimについて発表しました。
内容は、vimにあってviにない機能の説明や、vimの操作TIPSが中心となっています。

自分も普段はプラグインに頼りきりになってしまうのですが、素のvimの機能を学んで組み合わせることで、より効率的に操作できると思います。