深層または広域に焦点を当てるべきか[終了]


10

私は半年以上プロの開発者であり、世界が本当に大学を卒業していないことに驚いています。私は自由な時間に学習を続けてきましたが、どこに集中すればよいのでしょうか。

FOCUS 1)私の会社で使用されている開発スタック。私の日々の開発で最も早いペイオフ。#深い

焦点2)同じパラダイムを持つ異なる言語。私の知識と考え方を一般化できるかどうかを確認してください。

焦点3)異なる言語、異なるパラダイム。私の境界線を拡大し、物事を行うための新しい方法を学びます。#最も広い

誰かが別の焦点を持っている場合は、そこに自由に出してください。

回答:


18

はい。

あなたは両方をする必要があると私は言うでしょう。すぐに見返りが得られる#1から始めてください。これは非常に長い間行われていません。ただし、#2と#3のいくつかを実行する必要があります。


良い計画です。自分自身をすぐに役立つようにすると、会社での私の価値が高まりますが、後者の2つは、開発者としての私の価値を全体的に高めます。
ボブ・ロバーツ

丁度。あなたのキャリアの中でそれがわかると思いますが、一般的に開発者としてのあなた自身を価値あるものにすることは、会社でのあなたの価値を高めることにもなります。ただし、見返りは数年になる可能性があります。
Marcie、

1
多分答えは「はい」ではなく「両方」であるべきです。質問のタイトルと答えを見て、戸惑う。
Amr

1
新しい言語やパラダイムを学ぶと、#1でより効果的になることがわかりました。これは、幅広い経験を持つことで、特定の問題を解決する方法についてさまざまな視点が得られるためだと思います。同じ教訓:ハンマーしかない場合、すべての問題が釘のように見え始めます。
ブライアンレーバイン

25

人々が私にキャリアアドバイスを求めるとき、あなたの質問は私が彼らに最初に尋ねる質問の1つです。誰もがこの質問に答えられるとは思いません。自分のキャリアの目標を達成するために、深さや幅に焦点を当てることがより可能性が高いかどうかを自分で決定する必要があると思います。

最後にチームを変更したとき、XBOX開発者ツールチームで作業するか、C#コンパイラチームで作業するという2つの機会がありました。私はそれが幅と深さの関係にあることに気づきました。XBOXチームでは、ある日セキュリティシステム、次のオーディオシステム、ビデオ、ネットワーキング、ハードウェアインターフェイスに取り組むことができます。確かに、一部の人々は専門家ですが、誰もがすべてについて少し知っている必要があります。C#コンパイラチームでは、1つの言語と1つのコンパイラに飛び込んで、すべてを深く理解することができました。

多くのことを考え、私は一時的に、多くの場合、好奇心旺盛ではなく、1つのことに精通しているほうが適していると判断しました。それは私には良い選択でしたが、あなたには向かないかもしれません。一部の人々は、すべてを少しだけ知って大成功しています。

したがって、私のアドバイスは、問題を逆転させることです。あなたがどのような人かを理解し、あなたの会社にあなたのような人のための機会があるかどうかを確認してください。そうでない場合は、そうするものを見つけてください。


あなたが誰であるかを考えると、この投稿は本当に壮大です。:)
ashes999 2013年

12

専門家であることはあなたをより高価にすることができます。しかし、その高いレベルを必要とする雇用機会は、その数と地理的な両方の点で制限されます。

ジェネラリストであることは、おそらくより少ないお金を払うが、おそらく世界中であなたに多種多様な仕事の機会を開きます。

また、より高いレベルの管理職の場合は、さまざまなこと、技術、および技術を経験した人がいることが望まれます。エッジを知り、全体像を見ることができることは、貴重な資産になります。


ああ、私は自分の現在の雇用を過ぎるとさえ考えていませんでした(ただし、これが長期の滞在になることを願っています)。
ボブ・ロバーツ、

3

あなたの開発段階では、ある程度の奥行きをつけることが最優先だと思います。たくさんのことを少しは知っているが、すべての知識がエントリーレベルであるため、エントリーレベルの仕事をこなすことができない人が多すぎます。

私がスペシャリストになりたいのであれば、明らかに、深さを作ることが一番の第一選択です。

ジェネラリストになりたい場合は、まず1つのスタックで深度を構築し(少なくとも中間レベルに到達)、次に他の言語に分岐します。最初にある程度の深さを構築すると、より多くの概念が利用可能になり、何を学びたいのかを知っているので、複数の言語で深さを構築する方が簡単な場合があります。それから私は少し他のものに分岐します。その後、戻って高度なレベルに深みを作り、次に再び分岐して、すでに知っているものとは非常に異なる多くのことを学びます。次に、別の領域のその深さを中間レベルに拡張し、別のことをもう一度学びます。

警告-私は特別なので、明らかに知識の深さを支持します


1

どちらのオプションにも代わりがあります。会社で使用されている開発スタックに焦点を当てることは、あなたの仕事であなたを助けるでしょうが、他のテクノロジーについて学ぶことはあなたのキャリアであなたを助けるでしょう。

1990年代後半には、2000年に向けてソフトウェアを準備する必要のある企業からCOBOLスキルの需要が高まりました。しかし、今日でもCOBOLだけを知っている人は、仕事を見つけるのがはるかに困難になります。

同様に、今日のテクノロジーは、ほとんどの人が引退する準備ができるかなり前に時代遅れになるため、新しいスキルやテクノロジーを学ぶことが不可欠です。


0

HaskellやLispのようなものを学びましょう。関数型言語を学ぶには、コードを分離する必要があるため、全体的なデバッグが簡単になります。発生する可能性がある唯一の問題は、戻りたくないということです。

http://book.realworldhaskell.org/read/

http://lisperati.com/haskell/

http://learnyouahaskell.com/


それは正しいです。関数型プログラミングを学び、私と同様に、OCamlまたはF#に投票します
0xFF

F#はC#や作業中の他の.netとうまく統合できます。覚えておくべきこと。ClojureはJavaでうまく動作します。
Theo Belaire、2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.