開発者が最新のテクノロジー(webrtc、html5およびcss3の更新、新しいjsライブラリ、TDD、DDD、BDDなどのソフトウェア手法など)を最新の状態に保つ必要があることを常にアドバイスしています。
問題はなぜですか?なぜ自分自身を常に更新する必要があるのですか?私たちが知っていることだけに固執し、それを改善することはできませんか?
開発者が最新のテクノロジー(webrtc、html5およびcss3の更新、新しいjsライブラリ、TDD、DDD、BDDなどのソフトウェア手法など)を最新の状態に保つ必要があることを常にアドバイスしています。
問題はなぜですか?なぜ自分自身を常に更新する必要があるのですか?私たちが知っていることだけに固執し、それを改善することはできませんか?
回答:
理由のために新しい技術が登場します。通常、その理由は、特定のタスクを達成するのにより効率的または強力であるためです。
レガシーシステムのために古いテクノロジーを使い続けることにはまだ価値がありますが、最終的にそれらが寿命に達したとき、あなたはゲームの背後にいます。
ビジネス上の理由はさておき、新しいテクノロジーを常に学習することで、つま先を見つめることができ、古いテクノロジーなどでも、タスクにアプローチするさまざまな方法に目を向けることができます。
運がよければ1つの技術スタックでキャリアを構築することは確かに可能ですが1、有給雇用期間中に技術が複数回変更されることはほぼ確実です。既に知っていることは上手くいくことができます(しかし、そうすべきです)が、事前に新しいことを学ぶことで、次のテクノロジーシフトが業界の隅に来たときに学習曲線を削減するのに役立ちます。
あまり明らかではない側面もあります。新しいことを学ぶことは、新しい言語を学ぶことで現在の言語についてより多くのことを学ぶのと同じように、異なる視点から既に知っていることを見るのに非常によく役立ちます2。
最後に、新しいことを学ぶことの純粋なエンターテインメントの価値を過小評価すべきではありません。
2これは、自然言語とプログラミング言語の両方で機能します。
私たちが知っていることだけに固執し、それを改善することはできませんか?
できますが、新しいことを何も学びたくないというfallに陥るのは本当に簡単です。あなたは「完全に非接触なプログラマー」だから、あなたの仕事の見込みは次第に減り、あなたのチームメイトはあなたと一緒に働きたいとは思わなくなります。
ほとんどの場合、バランスを保つ必要があります。常に新しいことすべてを学ぼうとすると、あなたは多くのことで貧弱になるでしょう。いくつかのことをよく学び、少なくともそれが効果的に使用できない場合でも、存在するものを知ることに集中してください。
それはおそらく、あなたがWeb開発者であり、その分野の技術が非常に不安定であり、言語、プラットフォーム、ツール、および方法論の人気が上昇および低下しているためです。これは非常に高いレベルのフィールドです。その下のレイヤーのいずれかが変更された場合、上の位置が変更されます。そして、率直に言って、それは新しい(っぽい)ものです。新しい分野には革新の余地がたくさんあります。
個人的には、組み込みデバイスで作業し、Cを習得しました。
しかし、私はまだかなり定期的に新しいことを学んでいます。ソケット、SQLライブラリ、ncurses、Cのオブジェクト。そして、方法論はテクノロジーと疎結合されています。ユニットテストは私の学校で恐ろしく教えられましたが、今は頭を包んでいます。先日、依存関係の注入について聞いたところ、それがまさにコンソール機能の単体テストに関する最後の問題の解決方法であることに気付きました。
ほとんどのプログラマは、毎日同じことをする工場労働者ではありません。これらのジョブは自動化できます(また、そうする必要があります)。さらに別のバブルソート実装の費用はかかりません。終わった。
私はあなたがそこにあるものの多くを無視することができると思います。その多くは誇大宣伝と流行であり、古い技術の新しい名前です。本当の進歩はすぐいなくても新しいものに置き換えられます、本当に古いタイマーは、あなたが新しいを理解するために古いものを理解するべきであると言っていても、古いものに依存します。10年間フィールドを離れた場合、戻ってきたときは2年しか遅れていません。
とはいえ、真の新しい技術を見つけるのは難しい場合があります。OOPを見逃さなかったのは嬉しいですが、最初はほんの一握りの話題の言葉のように見えました。そして、3年後に誰もがそれを忘れたとしても、仕事をするために現在の技術を使用する必要があることがよくあります。
ソフトウェア技術の誇大広告と混乱は、日々対処しなければならない変化を倍増させます。しかし、実際には電子技術は急速に進歩しており、それに伴ってソフトウェアを推進しています。そこには本当の変化がたくさんあります。私たちはまだ1965年に使用したのと同じ車両で車を運転し、飛行機を操縦し、宇宙に飛び込んでいます。しかし、1995年の電子ハードウェアは絶望的に陳腐化しています。
あなたの質問に対する深い答えは、電気を扱う科学者とエンジニアは非常に忙しいということです。ソフトウェアは、ハードウェアを活用するために進化する必要があります。さらに悪いことに(むしろ、より良い?)、ソフトウェアはハードウェアに取り残されていると思います。明日、ハードウェア関係者が全員退職した場合、ソフトウェアは少なくとも今後20年間は猛烈に進化するでしょう。
仕事をするために新しいテクノロジーが必要な場合は、それを学ぶ必要があります。20年後もまだ新しい技術である可能性がある場合は、それを監視する必要があります。そして、生きているすべての人のために死ぬ20の技術を見ているなら、あなたはかなり良いことをしています。そして、実際には他のすべてを無視できます。2020年代のすべてのソフトウェアの根底にある明らかな煙を除いて。
私見、あなたはバランスを見つける必要があります。それにはスキルと経験が必要です。
専門とする1つまたは2つの言語を見つけ、この言語で進化するフレームワーク/スタイルの変更を最新の状態に保ち、最高のスキルを維持する必要があります。
ただし、この言語がどのように進化するかを確認し、ソフトウェア開発全体のダイナミクスを理解する必要もあります。Javaは10年後に登場しますが、Phytonはそのままで、PHPは.NETとMonoに置き換えられますか?
これらは大規模で戦略的な質問であり、その答えはあなたの分野で非常に高く評価された専門家になることを可能にします。
私見、毎日開発されているすべての現代言語に従うことは、業界全体にとって最大の問題の1つです。専門家がほとんどいない、未開発の行き止まりの言語がたくさんあります。時間を無駄にする人は、たった1言語でも本物の専門家ではありません。ほとんどの場合、すべての言語が混在したコードを記述し、正しく機能しません。同時に、これらの非標準言語に無駄に費やされた工数は、少数のコア言語フレームワークと仕様の改善に費やされる可能性があります。
他の人が指摘しているように、多くの新しい技術が新しいニーズに対処するために登場しているため、特定の問題を簡単に解決できます。したがって、あなたは最新の状態を保ち、少なくとも自分の分野で何が起こっているかを知り、どの新しい技術があなたに関連するかを理解する必要があります。
一方で、特定のイノベーションには誇大広告要因もあると思います。非常に古いアイデアもありますが、近年では主流になりつつあります。「新しい方が良い」という理由だけで新しいプログラミング言語(またはその新しいバージョン)がプッシュされ、新しい技術が新しい本、新しいプログラミングツール、新しいコンパイラ、新しいプログラミングコース、または言い換えれば、収益。
それは、あなたが以前に使っていた技術WRT任意の本当の利点を見ることなく、新しい技術を習得しなければならないことが起こることができるようにそうでなければ、あなたのスキルを見ているため、市場外とリスク旧式。新しいテクノロジーの開発をフォローし、どのテクノロジーが生産性を向上させ、どのテクノロジーが履歴書の見栄えを良くするのに便利であるかを理解するのはあなた次第です。
結論:新しいものか古いものかに関係なく、あなたが本当に有用だと思うものを学ぼうとするべきだと思います。
なぜなら、「あなたが知っていることに固執する」ことは、「それを上手くやる」ことの失敗を表すからです。新しいプラクティスやフレームワークを採用する必要はありませんが、少なくとも一般的なものについては十分な情報に基づいた意見が必要です。Web開発では、質問するだけでインタビュアーには恐ろしく見えます。Web開発者には、2000年以降に新しいことを学ぶのをやめたいと思っている人のキャリアの死体が散らばっています。興味がなければdevから離れてください。あなたが新しいことを学ぶ部分が仕事のように感じるなら、それはひどい$ /時間の比率です。