MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

18. 学び続ける姿勢 Clint Shank:『プログラマが知るべき97のこと』

# 目次

# はじめに

以下の記事は,オライリージャパン社から出版された

『プログラマが知るべき97のこと』

の中から1つのエッセイを選び,

そのエッセイを,クリエイティブコモンズ3.0の条件の元で転載したものです.

Creative Commons ― 表示 3.0 アメリカ合衆国 ― CC BY 3.0

本書の内容は,オープンソースモデルに従い,

ほぼ無制限で利用が可能です.

クリエイティブ・コモンズ表示3.0の条件下で,

自由に使用することができるのです.

つまり,どのエッセイも,

著者の名前を明記すれば,自由に転載,改変が可能であるということです.

ーー"はじめに"から抜粋 pXII


もし,他のエッセイを読みたい場合には,

記事末のリンクを辿るか,

以下のリンク先のTwitterアカウントのつぶやきからお探し下さい.

Twitter Account: 97 Things Bot



また,元の英文によるエッセイを読みたい方は,

こちらを参照して下さい.

Contributions Appearing in the Book - Programmer 97-things


18. 学び続ける姿勢 クリント・シャンク (Clint Shank):『プログラマが知るべき97のこと』

今,私たちは実に面白い時代に生きています.

ソフトウェア開発を仕事にする人は,世界中に存在しています.

自分と同じくらいの能力を持った人は,

どこでも,いくらでもいる.

そう実感することも多いのではないでしょうか.

そういう状況で自分の市場競争力を維持するためには,

「学び続ける姿勢」がとても重要です.

学ぶことを止めれば,すぐに恐竜のように,

滅びてしまうことになるでしょう.

ずっと同じ仕事にしがみついていると,

いずれ必要とされなくなる日が来てしまいます.

自分の仕事が,

よりコストの安い誰かにアウトソースされてしまうこともあるでしょう.



学び続ける,と言うのは簡単ですが,

具体的にはどうすればいいのでしょうか?

社員のスキルセット拡大のために費用を負担して

トレーニングを受けさせてくれる気前のいい会社もありますが,

社員のトレーニングのためにわざわざ時間やお金を使うことは,

一切しない,という会社も多いでしょう.

やはり会社は当てにせず,

自らの力で学んでいくのだと思っていた方が確かでしょう.

学び続ける姿勢を保つための手段をあげておりましょう.

インターネットを利用すれば無料で済むものも多いです.



・書籍や雑誌,ブログなどを読む.

 Twitterや各種のWebサイトも参考になる.

 より深い知識が欲しい時には,メーリングリストやニュースグループへの参加も考える.



・本当に身に付けたい技術は,コードを自ら書き,手を動かして学ぶ.



・常に自分よりレベルの高い人と仕事をするようにする.

 自分よりレベルの高い人が周囲にいないと,

 学ぶことは難しくなる.

 誰からでも何らかの事柄は学べるというのは確かだが,

 自分より賢明で経験も豊富な人から学べることは,

 やはり圧倒的に多い.

 レベルの高い人がどうしても周囲にいないようなら,転職を考えたほうが良い.



・自分の「良き師」になりえる人をネットで探す.

 書いてあることがどれも面白く,

 「勉強になる」と感じる人がいれば,

 その人は師になり得る.

 もしその人のブログ等があるようなら,欠かさずに読むようにする.



・自分の利用しているフレームワークやライブラリに対する知識を深める.

 その機能と構造を十分に理解すれば,よりうまく使いこなせるようになる.

 オープンソースのものなら,デバッガを使って,コードを逐一確認し,

 中でどういうことが行われているのか順に見ていけばよい.

 これは最高に頭のいい人たちが書き,

 レビューもされたコードを直接目にする絶好のチャンスであると言える..



・何かミスをした時,バグを修正したとき,

システムに何か問題を発見した時には,

ただ解決するだけではなく,そのバグや問題について深く理解するように努める.

すでに過去に同様の問題に出会い,

Web上で情報を提供している人がいる可能性も高い.

Googleで検索すれば,ほぼどんな情報でも見つかる.



・自分が学びたいことを人に教えたり,話したりすることは非常に有効である.

 誰かが自分の話を聞き,質問をしてくると思えば,

 学ぶ意欲は自然に高まる.

 会社の同僚に昼食をとりながら,話してもいいし,

 ユーザグループや,

 地元で開かれているカンファレンスなどを利用しても良い.



・自分が興味を持っている言語,技術,分野に関連する勉強会

 (例:パターンについて学ぶコミュニティなど)

 を自分で立ち上げるか,地元のユーザグループなどがあればそれに参加する.



・カンファレンスに積極的に参加する.

 直接その場に行けない場合でも,

 内容のかなりの部分がオンラインで無料提供されていることが多いので,

 それを利用する.



・通勤時間が長い場合には,ポットキャスティングを利用して学ぶ.



・自分のコードベースに対して静的分析ツールを実行する.

 あるいは,IDE使用中に警告が出される場合には,それについてよく調べる..

 ツールのレポートや,IDEの警告の内容を詳しく分析し,

 なぜ,このようなレポート,警告になったのか,

 その理由を追求する.



・『達人プログラマー』


 を読み,学んだことを実践してみる.

本の教えに従い,毎年一つ新しい言語について学ぶ.

 たとえ言語が無理でも,

 少なくとも毎年一つは新しい技術,

 ツールについて学ぶ.

 そうして未知のものに触れることは,

 新たな発想の元になる.



・新しく学ぶのは,

 必ずしもコンピュータ関連技術でなくても変わらない.

 システムが応用されるドメインについて学ぶことも重要である.

 そうすれば,顧客の求めていることがよくわかり,

 ビジネス上の問題の解決により役に立つシステムを作ることができる.

 また,自分の生産性を高める方法も学ぶべし.

 「生産性を高める」

 とは,一定の労力,時間で得られる成果を大きくすることを意味する.



・学校に通う.



映画『マトリックス』のネオのように,

必要な情報があれば即座に,

脳にダウンロードするような能力が私たちにもあればいいのですが,

あいにくそんな能力はありません.

時間をかけ,努力して学ぶしかないのです.

とはいえ,

起きている時間のすべてを学ぶことに向けることは不可能だし,

そんな必要もありません.

そのほんの一部でも,たとえば週に一回1時間でも,

なにもしないよりはずっと良いでしょう.

人間には日々の業務とは関係ないことをする時間があってもいいし,

むしろ,そうであるべきでしょう.



技術はすごい速さで変化していきます.

学ばなければ,置いていかれるのは確実です.



■著者データ

[クリント・シャンク (Clint Shank)]

Sphere of Influence社のソフトウェアデベロッパ,

コンサルタント,メンターである.

同社は効率的で魅力的なソフトウェアの開発に役立つ,

画期的なデザイン駆動開発の技術を提供しており,

高い評価を得ている.

Shank自身は主に,

エンタープライズアプリケーションの設計や開発に関する

コンサルティングを行っている.

個人的には,継続的インテグレーションやテスト駆動開発といった,

アジャイルソフトウェア開発関連のプラクティスや

Java,Groovy,Ruby,Scalaなどのプログラミング言語,

SpringやHibernateなどのフレームワークの他,

設計とアプリケーションアーキテクチャに強い関心を持っている.

「ソフトウェアアーキテクトが知るべき97のこと」

の寄稿者でもある.

ブログも参照のこと.

Clint Shank's Blog

関連記事

1.分別のある行動 Seb Rose:『プログラマが知るべき97のこと』 - MY ENIGMA

2.関数プログラミングを学ぶことの重要性 Edward Garson:『プログラマが知るべき97のこと』 - MY ENIGMA

3.ユーザが何をするかを観察する (あなたはユーザではない) Giles Colborne:『プログラマが知るべき97のこと』 - MY ENIGMA

4.コーディング規約を自動化する Filip van Laenen:『プログラマが知るべき97のこと』 - MY ENIGMA

5.美はシンプルさに宿る Jorn Olmheim:『プログラマが知るべき97のこと』 - MY ENIGMA

6.リファクタリングの際に注意すべきこと Rajith Attapattu:『プログラマが知るべき97のこと』 - MY ENIGMA

7.共有は慎重に Udi Dahan:『プログラマが知るべき97のこと』 - MY ENIGMA

8. ボーイスカウト・ルール Robert C. Martin:『プログラマが知るべき97のこと』 - MY ENIGMA

9. 他人よりまず自分を疑う Allan Kelly:『プログラマが知るべき97のこと』 - MY ENIGMA

10. ツールの選択は慎重に Giovanni Asproni:『プログラマが知るべき97のこと』 - MY ENIGMA

11. ドメインの言葉を使ったコード Dan North:『プログラマが知るべき97のこと』 - MY ENIGMA

12. コードは設計である Ryan Brush:『プログラマが知るべき97のこと』 - MY ENIGMA

13. コードレイアウトの重要性 Steve Freeman:『プログラマが知るべき97のこと』 - MY ENIGMA

14. コードレビュー Mattias Karlsson:『プログラマが知るべき97のこと』 - MY ENIGMA

13. コードレイアウトの重要性 Steve Freeman:『プログラマが知るべき97のこと』 - MY ENIGMA

14. コードレビュー Mattias Karlsson:『プログラマが知るべき97のこと』 - MY ENIGMA

15. コードの論理的検証 Yechiel Kimchi:『プログラマが知るべき97のこと』 - MY ENIGMA

16. コメントについてのコメント Cal Evans:『プログラマが知るべき97のこと』 - MY ENIGMA

17. コードに書けないことのみをコメントにする Kevlin Henney:『プログラマが知るべき97のこと』 - MY ENIGMA

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

https://gumroad.com/l/myenigmasupportersgumroad.com