パート2 開発者として1段階上の キャリアを目指すための ... -...

3
ORACLE.COM/JAVAMAGAZINE ///////////////////////////////// MAY/JUNE 2015 JAVA TECH 38 COMMUNITY JAVA IN ACTION ABOUT US blog //career / のシリーズの最初の記事 (2015年1/2月号、25ペー ジ)では、開発者としてのキャリ ア向上につながる注目点とし て、3つの大きな領域を紹介し ました。一番重要なのはコード です。これは、開発者としての基 本スキルです。しかし、その他の 2つであるコミュニティと発想 の転換(いつもとは違う考え方) にも背を向けるわけにはゆき ません。この2つは、キャリアに 立ちふさがる壁を一緒に打ち 破ってくれます。 この3つの領域に毎週いくら かの時間を費やすことで、優れ た開発者への道を進んでいくこ とができるでしょう。プロフェッ ショナルとしての完成度を上 げ、新しいチャンスを手にする ことにもつながるはずです。 キャリアをステップアップさせ、 新たな道を見つける上ですべ てのことが役立つのです。また、 この記事で提案しているのは難 しいことでも時間がかかること でもありません。忙しい日々を 送っていても、時間を見つけて 実行できるはずです。 コード:オープンソース・ソフト ウェア コーディングに秀でるために は、たくさんのコードを書く必要 があることはすでに見てきまし た。しかし、コードを書くにして も、書いているのがよいコード なのか悪いコードなのかをどう 判断すればよいのでしょうか。現 在のところ、現実的で議論の余 地がないコードの品質測定方 法はありません。ほとんどの場 合、コードの品質は定量的とい うよりも定性的な問題です。ある コードが確実によいコードだと 断言することはできませんが、 他に比べてよいコードか悪い コードかは認識することができ ます。優れた開発者になるため の正しい道を確実に進みたいな ら、最善の方法は、他の開発者 のコードを見て自分の成長度合 いを推し量ることです。 ソフトウェアの世界では、ソフ トウェアのソース・コードを見る ことで、他人のコーディング方 法を知ることができます。その 結果、そのコードを分析し、実 験し、場合によっては改善する ことまでできます。しかし、その ためには、優れた開発者のソー ス・コードにアクセスする必要 があります。 オープンソースのすばらし さはここにあります。コードを 自由に入手でき、それを分析し て自分のコードと比較するこ とができるのです。GitHubや Bitbucketを見れば、小さなも のからエンタープライズ・レベ ルのものまで、莫大な数のプロ ジェクトが見つかります。そこか ら、新しい技術や、異なる視点 を学ぶことができるでしょう。優 れたコードを見て感動すること も、経験の乏しい開発者のコー ドを見て反面教師とすることも できるでしょう。 コードをテストする方法を探 したいなら、オープンソース・ プロジェクトを調べて、他の開 発者のテスト方法を調べてみ ましょう。システムでしかるべき ログ出力の方法が分からない 場合は、現在使用中のオープ ンソース・プロジェクトのなか からログ情報の充実したもの を選んで、同じ手法を修得しま しょう。 オープンソースに貢献すれ ば、日々の仕事では使っていな い(あるいは、使うことができな い)スキルを修得することもで きます。仕事として多くの人が 行うのは生成、読取り、更新、削 除(CRUD)機能を持った従来 型エンタープライズ・システム の作成に限られるでしょう。しか し、余暇の時間を使えば、学習 や貢献の対象として興味をそそ るオープンソース・プロジェクト を自由に選ぶことができます。 状況によっては、関連するオー プンソースのツールやライブラ リを仕事に利用し、バグの修正 を行ったり、新機能を実装した りすることもできます。これは刺 激的であるだけでなく、既存の 考え方にとらわれない発想を行 うための訓練にもなります。ド キュメントを追加したり、バグ・ トラッカーで問題を提起したり するなど、小さいことから始め ることができます。 やがては、バグ修正や新機能 に関するプル・リクエストを送 信できるようになるでしょう。そ コードを学習し、カンファレンスに参加して人脈を構築する BRUNO SOUZAの写真:BOB ADLER/GETTY IMAGES パート2 開発者として1段階上の キャリアを目指すためのアイデア BRUNO SOUZA、 EDSON YANAGA Bruno Souza: Java 開発者。Summa Technologiesでは オープンソース・エ バンジェリストとし て、ToolsCloudでは クラウドの専門家と して従事。SouJava とWorldwide Java User Groups Communityの 設立者。 Edson Yanaga: Produtec Informáticaの技 術リーダー、 Ínsula Tecnologiaのプリ ンシパル・コンサ ルタント、オープン ソースのユーザー、 提唱者、開発者。

Upload: others

Post on 11-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: パート2 開発者として1段階上の キャリアを目指すための ... - …...を学ぶことができるでしょう。優 れたコードを見て感動すること も、経験の乏しい開発者のコー

ORACLE.COM/JAVAMAGAZINE ///////////////////////////////// MAY/JUNE 2015

JAVA TECH

38

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//career /

このシリーズの最初の記事(2015年1/2月号、25ペー

ジ)では、開発者としてのキャリア向上につながる注目点として、3つの大きな領域を紹介しました。一番重要なのはコードです。これは、開発者としての基本スキルです。しかし、その他の2つであるコミュニティと発想の転換(いつもとは違う考え方)にも背を向けるわけにはゆきません。この2つは、キャリアに立ちふさがる壁を一緒に打ち破ってくれます。 この3つの領域に毎週いくらかの時間を費やすことで、優れた開発者への道を進んでいくことができるでしょう。プロフェッショナルとしての完成度を上げ、新しいチャンスを手にすることにもつながるはずです。キャリアをステップアップさせ、新たな道を見つける上ですべてのことが役立つのです。また、この記事で提案しているのは難しいことでも時間がかかることでもありません。忙しい日々を送っていても、時間を見つけて実行できるはずです。

コード:オープンソース・ソフトウェアコーディングに秀でるためには、たくさんのコードを書く必要があることはすでに見てきました。しかし、コードを書くにしても、書いているのがよいコードなのか悪いコードなのかをどう判断すればよいのでしょうか。現在のところ、現実的で議論の余地がないコードの品質測定方法はありません。ほとんどの場合、コードの品質は定量的というよりも定性的な問題です。あるコードが確実によいコードだと断言することはできませんが、他に比べてよいコードか悪いコードかは認識することができます。優れた開発者になるための正しい道を確実に進みたいなら、最善の方法は、他の開発者のコードを見て自分の成長度合いを推し量ることです。ソフトウェアの世界では、ソフ

トウェアのソース・コードを見ることで、他人のコーディング方法を知ることができます。その結果、そのコードを分析し、実験し、場合によっては改善する

ことまでできます。しかし、そのためには、優れた開発者のソース・コードにアクセスする必要があります。オープンソースのすばらしさはここにあります。コードを自由に入手でき、それを分析して自分のコードと比較することができるのです。GitHubやBitbucketを見れば、小さなものからエンタープライズ・レベルのものまで、莫大な数のプロジェクトが見つかります。そこから、新しい技術や、異なる視点を学ぶことができるでしょう。優れたコードを見て感動することも、経験の乏しい開発者のコードを見て反面教師とすることもできるでしょう。 コードをテストする方法を探したいなら、オープンソース・プロジェクトを調べて、他の開発者のテスト方法を調べてみましょう。システムでしかるべきログ出力の方法が分からない場合は、現在使用中のオープンソース・プロジェクトのなかからログ情報の充実したものを選んで、同じ手法を修得しま

しょう。オープンソースに貢献すれば、日々の仕事では使っていない(あるいは、使うことができない)スキルを修得することもできます。仕事として多くの人が行うのは生成、読取り、更新、削除(CRUD)機能を持った従来型エンタープライズ・システムの作成に限られるでしょう。しかし、余暇の時間を使えば、学習や貢献の対象として興味をそそるオープンソース・プロジェクトを自由に選ぶことができます。状況によっては、関連するオープンソースのツールやライブラリを仕事に利用し、バグの修正を行ったり、新機能を実装したりすることもできます。これは刺激的であるだけでなく、既存の考え方にとらわれない発想を行うための訓練にもなります。ドキュメントを追加したり、バグ・トラッカーで問題を提起したりするなど、小さいことから始めることができます。 やがては、バグ修正や新機能に関するプル・リクエストを送信できるようになるでしょう。そ

コードを学習し、カンファレンスに参加して人脈を構築する

BRUNO SOUZAの写真:BOB ADLER/GETTY IMAGES

パート2

開発者として1段階上の キャリアを目指すためのアイデア

BRUNO SOUZA、

EDSON YANAGA

Bruno Souza:Java開発者。Summa Technologiesではオープンソース・エバンジェリストとして、ToolsCloudではクラウドの専門家として従事。SouJavaとWorldwide Java User Groups Communityの 設立者。 Edson Yanaga:Produtec Informáticaの技術リーダー、Ínsula Tecnologiaのプリンシパル・コンサルタント、オープンソースのユーザー、提唱者、開発者。

Page 2: パート2 開発者として1段階上の キャリアを目指すための ... - …...を学ぶことができるでしょう。優 れたコードを見て感動すること も、経験の乏しい開発者のコー

ORACLE.COM/JAVAMAGAZINE ///////////////////////////////// MAY/JUNE 2015

JAVA TECH

39

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//career / うなれば、オープンソースのもう1つのすばらしいメリットを得ることができます。貢献が受け入れられ、その成果がプロジェクトの次のバージョンで何十人(あるいは何千人)もの開発者の手に渡ったときの感動を味わうことができるのです。もちろん、それを自慢しても構いません。感謝され、人脈が広がり、友人も増え、仕事のオファーも届くかもしれません。オープンソースによって、皆さんのコードはオープンになります。そして、そこに注がれる光によって、皆さんの開発者としてのキャリアが花咲くことになるでしょう。

アクション・アイテム:毎日の仕事で使っているオープンソース・プロジェクトを1つ選び、そのコードを見てみましょう。フレームワークでも、ライブラリでも、OpenJDKプロジェクトのJava仮想マシンでも、JSRリファレンス実装のコードでも構いません。ただし、コードを見るだけではいけません。そのコードがどのように動いているかを学び、コードを使って実験してみましょう。アクション・アイテム:興味のある分野のオープンソース・プロジェクトを1つ選びます。データベースの内部処理やメモリ割当てのようなテクニカル分野でも構いません。その他のこと、たとえば音楽やゲームのプロジェクトでも、宇宙探検やサッカーのように、子供の頃やりたかったことでも構いません。そして、そのコー

ドを学習します。変更したい点や、改善したい点がないか見てみましょう。

コミュニティ:イベントここ数年で画期的な技術革新が起こっていますが、直接顔を合わせて会話を交わすのは何者にも代えがたい経験です。しかし、多くの人々はイベントに参加する価値に疑問を持っています。参加するには大量の時間とお金が必要かも知れません。ところがセッションはオンラインでも見ることができ、内容の質が保証されているわけでもありません。しばらく家族と

離れるのは言うまでもなく、その間にもオフィスでは仕事がたまってゆきます。しかし、誤解しないでください。イベントの真の価値は人そのものにあり、人との関わりの中にあります。人と直接顔を合わせることができるイベントは、人脈を広げたり、知名度をあげたりする絶好の機会です。 「人目に触れない者は記憶に残らない」というのは当を得た表現です。近年は、インターネットを活用

すれば、人目に触れることは簡単です。難しいのは記憶に残ることです。そして、一番記憶に残るのは、直接出会い、同じ時間を共有した人々です。 ですから、大小を問わず、イベントに参加したときは、人々とのやり取りを楽しむのがよいでしょう。登録待ちの列の中で会話をすることもでき

ます。混雑した食堂や、夜遅くのディナー、飲み会などで知らない人と一緒に食事をすることもできるでしょう。イベントには、一言挨拶をするだけで人脈が広がるチャンスが数え切れないほどあります。今直面している問題と同じような問題を抱えている人や、今やりたいと思っていることをやった経験のある人を見つけるのは驚くほど簡単です。 そして、多くの参加者より一歩前に出ることで、経験を最大限に活用することも可能です。話を聞いただけの講演者に挨拶をしにいってみましょう。その後、ホールまで追いかけ、親しく話し込みましょう。セッションをいくつかやり過ごし、会ったばかりの人と話したり、一緒にお茶を飲んだりするのもよいでしょう。腰を下ろして得意のソリューションを披露したり、相手の仕事について話を聞くのもお勧めです。他の開発者と一緒に時間を過ごすように心がけるのです。そして、ぜひその体験を持ち帰り、同じチームのメンバーに伝えてあげてください。一番よかったと思う話題を自分の言葉で伝えてみましょう。出会った人の仕事に興味を持ちそうなメンバーがチームにいれば、その人を紹介しましょう。新しく学んだクールなことをブログに投稿したり、多分あなただけが交わしたホールのちょっとした会話を共有してみます。 また、イベントで話をして、講演者になることもできます。そうすれば、イベントへの参加を別の角度から見ることができます。この点については、別の機会に詳しく見てゆきましょう。アクション・アイテム:興味のあるトピックについて、近隣で行われるイベ

ントに登録し、参加しましょう。その際には、人に注目するようにします。努めて、できるだけ多くの人と会うようにしましょう。講演者と話をする余裕ができるようにイベントのスケジュールを設定し、ホールでゆっくりと会話をしてみましょう。ずっと友人と一緒にいるのではなく、毎日新しい人と会うことを心がけてください。アクション・アイテム:人と会う場合には、最近どのようなプロジェクトに携わってきたかを聞いてみましょう。自分がどんな仕事をしてきたのか話せるように準備をしておきましょう。「元気ですか?」と聞くよりもはるかによい会話が生まれます。

発想の転換:モノのインターネット次の数十年で、モノのインターネット(IoT)が世界を変えるという研究があります。フォーブス誌は、2020年には地球上で500億にものぼるデバイスがインターネットに接続されると推定しています。世界規模のインパクトは、開発者や愛好家が現在取り組む実験の進化の先に控えています。私たちは、IoT時代の黎明期にいます。そして、ほとんどのプロジェクトは趣味のためのおもちゃに過ぎないと見なされています。しかし、数々のツール、キット、ボード、センサーなどがすでに誰でも使えるようになっています。現在は、畑に種や肥料をまいている段階です。しかし、作物が育ち始めれば、あらゆるところで爆発的にチャンスが広がるでしょう。しかし、このシリーズで記してきたように、キャリアアップのために直接IoTに興味を持つ必要はありません。むしろ、ほとんどの人は、末端でIoTの

顔を合わせる最近のインターネットを活用すれば、人目に触れることは簡単です。難しいのは記憶に残ることです。外に出て、やり取りを楽しみましょう。

Page 3: パート2 開発者として1段階上の キャリアを目指すための ... - …...を学ぶことができるでしょう。優 れたコードを見て感動すること も、経験の乏しい開発者のコー

ORACLE.COM/JAVAMAGAZINE ///////////////////////////////// MAY/JUNE 2015

JAVA TECH

40

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

//career / 爆発による影響を受ける側にいて、新しい考え方に基づく製品やサービスのユーザーとなるだけでしょう。おそらく当分の間、勤め先の会社やプロジェクトはIoTとは何の関係も持ちません。おそらく、キャリアに関して言えば、近い将来、実際にIoTを使う可能性は低いはずです。では、なぜわざわざIoTについて考える必要があるのでしょうか。それは、IoTについて考えるとき、私たちは発想を転換せざるをえないからです。Sun Microsystemsのスローガンだった「ネットワークこそがコンピュータ」という言葉と、1990年代にネットワークがどのように姿を現し、ソフトウェアやサービスの作り方をどれほど変えてしまったかを覚えている方もいらっしゃるでしょう。私たちは、現在もまだその波に乗り続けています。私たちは今、実験を行って未来を垣間見ることができます。そうすることによって、現在の物事の行い方や、明日の道の選び方は確実に変わります。IoTは、仕事の基本ツールであるコンピュータを変えてしまいます。その結果、IoTは私たちに発想の転換を迫ることになります。IoTは、仮想化の対極にあるものです。コンピュータが世界の一部となり、現実世界を読み取り、直接現実世界に働きかける時代が訪れます。私たちがコンピュータとどうやり取

りするか、そして作成するソフトウェアがどのように私たちとやり取りするかが変わります。ユーザビリティ、持続性、セキュリティ、そして規模やパ

フォーマンスの観点でも、これは別の種類のソフトウェアだと言えます。クラウドを扱う際には、あらゆるものが無限だったらアプリケーションはどう変わるかということを考えます。IoTを扱う際には、アプリケーションが決して止まることがなければ、またアプリケーションが1つのことしか行わず、アップグレードもできないとしたら、アプリケーションをどう変える必要があるかということを考える必要があります。ネットワーク・アクセスが問題に

なる可能性もあり、別の制約が出てくる可能性もあります。その結果、考えが研ぎ澄まされ、日々の仕事に役立つことがあるかもしれません。IoTを扱うことで、将来的なキャリアに新しいチャンスが開かれるか

もしれません。また同時に、IoTは、私たちがときどき忘れてしまう開発の楽しさを思い出させてくれるでしょう。アクション・アイテム:Raspberry Piキット(最近は安く入手できるようになっています)を購入してソフトウェアをロードし、何ができるのか感覚をつかんでみましょう。センサーを一緒に買えば、ボーナス・ポイントが付いてきます!アクション・アイテム:Raspberry PiでJavaを使い、何ができるかを考えてみましょう。Java.net IoT Developer Challengeには、すぐにやる気が出るすばらしいビデオが多数あります。

まとめイベントのすばらしい点の1つは、人と出会い、活動に参加して人脈を広げるチャンスがあることです。Adopt-a-JSRハッカソンに参加すれば、学習

し、コードを書いて、オープンソースのリファレンス実装に貢献することができます。世界最大のJavaカンファレンスであるJavaOneに参加することもできます。もう少し簡単な方がよければ、地元のJavaユーザー・グループ(JUG)主催のIoT関連イベントに参加することもできます。すべての時間をセッションに費やす必要はありません。他の参加者と一緒にホールに座り、プロジェクトのコードについていろいろ試してみましょう。ところで、少し目立ちますが、ユーザー・グループに新しいトピックを持ち出すのは気が進まないでしょうか。次の記事では、どうすれば講演者になることができ、それによってどのように開発者のキャリアをステップアップできるか紹介しましょう。</article>

LEARN MORE• JUG に参加• 「 Code Java on the Raspberry Pi」、2014 年 11月 /12月号、 35 ページ

• 「 Raspberry Piと Javaでコーヒーを入れる」、本号

TO DO「 Raspberry PiでJava を 使いましょう」