SSブログ

継続的学習(2) [プログラマー現役続行]

業務で使用している技術を深く学ぶ


技術を学習する際に、業務で使用している技術を学ぶことが非常に効率的です。なぜなら、日々の開発ですぐに使用できて身に付くからです。しかし、業務を通しての学習の落とし穴は、「業務で必要な範囲しか学ばない」ということです。

どのようなソフトウェア開発であっても、自分が使用している技術の範囲は狭いことがあります。たとえば、Java言語での開発経験が長いですという人でも、リフレクションを知らないとか、volatile宣言やfinal宣言がどのような意味をもたらすかを正確に説明できる人は、非常に少ないです。どちらも、マルチスレッドプログラミングでは重要な意味を持つにもかかわらずです。

私自身は、社会時になってから本格的にC言語を学び、Unixでのプログラミングを学びました。その頃読んだ本を正確には覚えていませんが、Unixに関するOSの本を1、2冊読んだ記憶があります。C言語に関しては深く学習した記憶はあまりなく、業務をこなせるようになったとこで、新たな学習をしなくなったと思います。関数ポインタを駆使したり、抽象データ型をC言語でも意識するようになったのは、社会人になって4、5年頃だったと思います。あえて、読んだ本としてあげると、次の本です。紙の書籍は、1994年出版なので、社会人となってから10年は過ぎています。

Expert C Programming: Deep Secrets

Expert C Programming: Deep Secrets

  • 出版社/メーカー: Prentice Hall
  • 発売日: 2013/07/18
  • メディア: Kindle版

1988年11月からの米国駐在時代は、Xerox社が開発したMesa言語を用いた開発でしたので、書籍もあるわけでなく、Xerox社内にある資料だけが頼りでした。

1993年からC++言語で開発を始めたのですが、その頃は、マルチスレッドプログラミング関連の本はありませんでした。C++言語に関しては、何冊か読んだと思いますが、C++言語を深く知る上で次の本が役立ちました。

Design and Evolution of C++, The

Design and Evolution of C++, The

  • 作者: Bjarne Stroustrup
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 1994/03/29
  • メディア: ペーパーバック

C++言語で、Solaris上でのマルチスレッドプログラミングを行っていましたので、以下の書籍を読んでいます。

Multiprocessor System Architectures: A Technical Survey of Multiprocessor/Multithreaded Systems Using Sparc, Multilevel Bus Architectures and Solari

Multiprocessor System Architectures: A Technical Survey of Multiprocessor/Multithreaded Systems Using Sparc, Multilevel Bus Architectures and Solari

  • 作者: Ben Catanzaro
  • 出版社/メーカー: Prentice Hall
  • 発売日: 1994/01/01
  • メディア: ペーパーバック

マルチスレッドプログラミングそのものについては、当初は書籍がなかったのですが、プロジェクトの終盤に、得た知識を確認するために以下の書籍を読みました。

Threads Primer: A Guide to Solaris Multithreaded Programming

Threads Primer: A Guide to Solaris Multithreaded Programming

  • 作者: Bil Lewis
  • 出版社/メーカー: Prentice Hall
  • 発売日: 1995/10/31
  • メディア: ペーパーバック

Programming With Threads

Programming With Threads

  • 作者: Steve Kleiman
  • 出版社/メーカー: Prentice Hall
  • 発売日: 1996/01/23
  • メディア: ペーパーバック

日本オラクル時代も様々なオラクル関連の書籍を読みましたが、記憶に残っているのは、次の一冊です。

Oracle Pl/SQL Programming

Oracle Pl/SQL Programming

  • 作者: Steven Feuerstein
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 1997/01/15
  • メディア: ペーパーバック

ジャストシステム時代もWindows関連の書籍を何冊か読んでいますが、あまり記憶に残っていません。

業務で使用している技術に関して、業務で使用していない領域も含めて、その技術を深く知るために関連する書籍を読むことは重要です。

中途採用の面接をしていも、使用してきた技術に関する書籍を読んでいない人が多くいます。与えられた業務を決められた技術で行ったきましたというレベルです。それでは、ソフトウェアエンジニアとしては、年数を重ねただけで、スキルレベルは上がっていきません。