しかし、何人かのプログラマ仲間が私にキャリアに関するアドバイスを求めてきたので、別のアドバイスを書く時期が来たと思いました。ところで、何か他のものをチェックしたい気分なら、私はハインツの最悪のレシピで私が作った恐ろしいものを記録し始めました。ウエストのくびれからもわかるように、おいしく食べたいという圧倒的な欲求に駆られて、料理は私の情熱の 1 つになりました。私はレシピに従わないので、資格のある料理人には程遠いので、私が作る料理の多くは「残念ながら食べられない」として捨てられます。私が欲しかったもの。私のブログでは、成功例と失敗例が文書化されています。もちろん、これは Java とは何の関係もありません。
Java チャンピオン プログラマーになるにはどうすればよいですか?
数か月前、私はビジネスパートナーのカールとフランス語コースの講師ザビエルと一緒にパリのレストランで食事をしていました。会話中、カールと私は、若い頃に使っていたクールなテクノロジーについて笑いながら冗談を言いました。同時に、ザビエルが長い間沈黙していることに気づき、年齢を聞いてみることにしました。正確な年齢は思い出せませんが、私とはかなり年齢が離れており、私の第二子と同じくらいの年齢だったことは覚えています。これは、カールと私が何年にもわたって同時に経験したすべてのプログラミング経験が、彼にとって何の価値もないことを意味しました。
ソフトウェア エンジニアのキャリアにおいて、知識の半減期は 3 年です。これは、3年後には知識の半分が無価値になることを意味します。たとえば、年齢が上がるほど、TSR (Terminate-Stay-Resident) を理解している人に会うのが難しくなり、TSR を書いた人を見つけるのは、干し草の山から針を見つけるようなものです。 DOS システムでは、複数のプログラムを同時に実行することはできません。したがって、カレンダーや電卓などのバックグラウンド機能が必要な場合は、メモリ常駐プログラム (Terminate-Stay-Resident プログラム) を作成し、特定のキーの組み合わせによって別のプログラムからそのプログラムを起動します。
この業界では、決して沈み木にならないように、知識の 3 年間の半減期は実際には素晴らしいことです。 10代の頃、常に新しいことを学ばなければならないと考えて、プログラマーになるのはやめようと人々に忠告されましたが、私はそれが私たちの仕事にプラスになると考えていました。まず、心を新鮮で活発に保つ必要があります。最後に祖母に会ったとき、彼女は98歳で、歩くのが困難でしたが、まだ頭ははっきりしていました。彼女は私の MacBook Pro を見て、「すごいですね、買いたいです。」と言いました。彼女は常に新しいことを学んでいるからです。第二に、あまり興味のないテクノロジーはすぐに置き換えられるため、無視してください。 Subversion の例を示しましょう。以前は必要に迫られて使用していましたが、特別扱いはしていなかったので、Subversion の専門家にはなりませんでした。数年後、git が登場しましたが、私は Subversion に別れを告げることしかできませんでした。残念なことに、私のクライアントの 1 人は実際に今年 CVS から Subversion に移行しました。今年は 2015 年です!
さて、本題に戻りましょう - チャンピオンプログラマーになるにはどうすればよいでしょうか?次の点が非常に役立つと思います:
記憶力が強い。中学 2 年生のとき、私は自分の記憶力がひどいのはすべて亡くなった歴史教師のせいだと自分に言い聞かせました。しかし驚いたことに、何年もプログラマーとして働いてきた私は、以前見たJavaのソースコードを瞬時に再現できることに気づきました。 JDK のメソッドを読むと、そのメソッドが以前のバージョンから変更されているかどうかがわかることがよくあります。おそらく私は誰かの顔と名前をはっきりと思い出せないかもしれませんが、Java コードは写真のような記憶で思い出すことができます。その人の名前も for ループだったら素晴らしいでしょう。幸いなことに、記憶力が悪くてもチャンピオン プログラマーになることが妨げられるわけではありませんが、記憶力が強いことは依然として明らかな利点です。
数学的スキル。優れた Java プログラマーになるために数学の達人である必要はありませんが、数学のスキルがあれば、優れたプログラマーになる資格を得るのに明らかに役立ちます。今年の 1 月に少し時間があったので、Project Euler を試してみることにしました。パズルの 1 つは、解決策を見つけるのに 9 時間半の実行時間を必要とします。実行中に問題を調べたところ、解決策の最適化に使用できる数値間の小さな関係を発見しました。もう一度実行しましたが、今回は 6 分しかかかりませんでした。その間、最初のアルゴリズムは実行を続け、答えを見つけようとします。もう一度数字に戻って、これまで見たことのない別のパターンを発見しました。今では、完了までにわずか 6 秒しかかかりません。また、賢いプログラミング手法と並列処理を使用して、コードの総当り最適化も試みました。これにより、処理速度が少し向上した可能性がありますが、それでも 6 秒未満にすることはできませんでした。
約 10 年前、Sun は Java Champion プログラムを開始しました。その目的は、Java の向上を支援するために積極的に活動している世界のトップ 1,000 人の Java 専門家を発見することです。おそらく今のランキングは160位くらいです。オラクル社はこのプログラムを継続しており、過去数年にわたり、この認識システムのさらなる利点を確認してきました。自ら選んだグループです。新しいチャンピオンは既存のチャンピオンによって推薦され、投票によって決定されます。通常、チャンピオンが選ばれるまでに十数票が必要で、1票で提案に拒否権が発動されます。自己推薦も考慮されますが、一般的に十分な支援は受けられません。
プログラマーの友人は、私がどのようにして Java チャンピオン プログラマーになったのかよく私に尋ねます。「とても簡単です。私のように、Java 関連の記事を 200 件公開するか、Hibernate、Spring、Jacoco などを書くか、何千もの記事に答えるだけです。」質問したり、StackOverFlow で 12 件の優れた記事を公開したり、ヨーロッパ最大の Java 開発者カンファレンスを主催したりする必要がありますが、それには時間と労力がかかります。カリスマ性や容姿の良さだけで Java チャンピオン プログラマーになれる人はいません。すべては努力です。おそらくそれが、私たちの名前にちなんだ顔写真がない理由でしょう ;-) 。さらに言えば、チャンピオン プログラマーになるためにチャンピオン プログラマーになるのはやめてください。利己心を捨てて、他人からの賞賛を待つと、気分も良くなります。すべてのチャンピオン プログラマーが正式に「Oracle Java Champion (Oracle Java Champion Programmer)」という称号を得るわけではありません。
どの道を選んだとしても、チャンピオンプログラマーになることは献身的な努力を意味します。 9時から5時まで働くのとはまったく違います。働きながら必要なことをすべて学ぶことはできません。チャンピオンプログラマーになるには、時代についていくために夜間と週末に勉強する必要があります。最も大げさなジョークは、プログラマは 40 歳になるとすぐに淘汰期に入るというものです。もしかしたら、彼らは Java プログラミングで問題なくやっているかもしれません。書籍や記事を読んだり、開発者カンファレンスや挑戦的なコースに参加して知識を新たにしない限り、卒業証書だけに頼ることは最終的には無価値になり、業界は使用済みナプキンのように廃棄するでしょう。決してそんな人にはならないでください!学んで、学んで、学んで!そして、学ぶための最良の方法は間違いなく、同僚と知識を共有することです。
知識を共有するにはどうすればよいですか?今では、私たちには多くの選択肢があります。StackOverflow や他の同様のサイトで質問に答えることができます。何年も前に私が働いていた会社で行ったように、ランチを食べながら技術的な問題について話し合うこともできます。これには多少の犠牲が必要です。昼食をあきらめて、講演の準備に数晩費やす必要があるかもしれません。ただし、単に情報を消費するだけではなく、学ぶべきことはたくさんあります。
「The Java™ Specialists' Newsletter」は現在、130 か国以上の 70,000 人以上のプログラマーに読まれていますが、その始まりは非常に小さく、友人や家族 80 人 (兄や両親を含む) に送り、私は懇願しました。友人や同僚に転送することができます。時間をかけてゆっくりと発達していきます。周りを見回すと 80 個の電子メール アドレスが見つかると思います。それが始まりです。すべては小さなことから始まります。成長はゆっくりですが、着実に成長しています。 70,000 という数字を見るとショックを受けるかもしれませんが、これは Java プログラマーのほんの一部に過ぎません。
最後に、非常に役立つポイント、つまり情熱でこの投稿を締めくくりたいと思います。ほとんどの人は退屈なコンピュータ作業をしなければならず、それを楽しんでいる人はほとんどいません。私の職場の 1 つでは、電気エンジニアにソース コード リポジトリを整理する仕事が与えられました。彼はすべて間違っていました - 彼がソース管理を行っていたとき、ディレクトリ間でソース ツリーをコピーしましょう。これを毎週のビルド中に同時に行う必要があり、サーバーはクローラーと同じくらい遅いです。マシンがスタックして全員が待たされると、何時間もかかることが多く、苦痛でイライラします。私は VSS (Visual Source Safe: ソフトウェア開発でソース コードやドキュメントのさまざまなバージョンを管理するために使用されます) にはあまり熱心ではありません。自分が情熱を注げることを見つけてください。それは、仕事を辞めた後も意欲的に取り組めるものでなければなりません。私にとって、それは Java エコシステムの隅々まで研究することです。立ち止まる理由が無数にある場合でも、情熱が私たちを前進させる原動力となります。
これが私が料理を愛する理由のようなものです。しかし幸いなことに、私は料理よりもプログラミングの方が得意です。
LAMP BrothersオリジナルPHPチュートリアルCD/「Essential PHP in Detail」を無料でプレゼント 詳細は公式サイトカスタマーサービスまでお問い合わせください: http://www.lampbrother.net
|