私はしばらくの間、さまざまな言語でプログラミングを行っています。私は実際に学校でプログラミングを勉強したり、2人以上のチーム(私も含む)で働いたりしたことはありません。それでも、私は3年以上プロの開発者として働いています。
昨年、私は最初のC#プロジェクトを引き継ぎましたが、結局はうまくいきました。私は一人で学んで働いたので、いくつかのコンセプト/ヒント/エッジが欠けているに違いないと考えざるを得ません。
チームに参加する前に単独の開発者であった人のために、あなたの経験を共有できますか?何かが足りないことに気づきましたか?難しいと思いましたか?あなたはその後より速く学びましたか?
私はあなたにeveryone誰が、特にコードを書くときに孤立して働いていることを保証できますが、あらゆる種類の作業で、100%、彼らが実際よりもはるかにうまくやっていると信じています。
したがって、チームでの作業を開始したときに(そして私が見つけた)最初に目にする利点は、実際にはかなり謙虚なものです。他の人と一緒に、特に才能があるときは、他の人と一緒に作業すると、考えられるすべての方法であなたより優れているという異常な状況であっても、最初に自分の間違いと弱点を強調します。あなたが批判をうまく行うことができ、能力がある場合(たとえ他の人と一緒に仕事をしているときに見られるように、自分の仕事の観察からだけでも)、経験は良いものになる可能性があります。
この最初のメリットは持続します。チームと、そしてより多くの人々とより多くの作業をするにつれて、間違いについてより多くの、より良いフィードバックを継続的に得ることができます-そして、それを使って修正することができます。また、成功についての肯定的なフィードバックも得られますが、特にプログラミングの世界では、否定的なフィードバックが広まっています(バグ追跡システムで「アンチバグ」を開いて、モジュールを見て特にニースのアルゴリズムを見たことはありません。実装)。
長期的には、他にも学ぶことのできるレッスンがいくつかありますが、その一部を単独で学ぶのは非常に困難です。
ええ、ソロで作業するときは、自分の間違いや落とし穴を逃してしまうので、それほど大したことはないように見えます。 ...どうしてそんなことを考えなかったのか」
私を信頼してください。追加の目は、プログラムに関しては常に価値があります。
チームに参加した直後に、多くのメリットが得られます。一部はしばらくしてから来ますが、間違いなく来ます。
あなたはもう部屋で一番賢い人ではありません。チームで作業しているときに、プログラミングであなたよりも優れた人がいることを知るのは非常に謙虚な経験です。 しかし、あなたがそれを愛する数少ないプログラマーの一人なら(私はそうです!)、あなたは彼らからあなたができる限りのものを吸収します。
あなたは突然必要他の人々のコードを読む方法を学ぶために。あなたの知識を広げることはもはや推奨されていることではありません。あなたはそれをすることを学ぶか、あなたはそこで長い間働きません。
あなたはさまざまなタイプのプログラミングにさらされているので、何が機能し何が機能しないかを学びます。良いコメントをするもの、悪いコメントをするもの。メソッドを操作するのが恐ろしいのはなぜか、また、そのメソッドをあらゆる機会で使用したいのはなぜですか。貴重な、そしてこれを教える本はありません。 :)
社会的スキル。同僚のコードを批評する方法と、誰かがあなたに良い方法を示したときにlistenする方法をゆっくりと学びます。
コードを書くとき、あなたは卵殻の上を歩きます。これにより、変数に名前を付ける際に余分なことを考えるようになります。自分用のコードを書くことも、他のプログラマーがそれを読むことを知っているときは、まったく別のことです。
チームに加わることは私にとって大きな変化でした、そして、ここの誰もがその経験に代わるものは何もないことに同意するでしょう。
私の最高のツールの多くは、他の開発者から入手したものです。私はインターネットと本から学ぶことに非常に積極的に取り組んできましたが、テキストと学校のみからそれらの年を費やしていた場合、私が現在行っている仕事をすることはできません。私は一緒に働いたすべての開発者から何かを学びました。時には、何をすべきでないか、どのように行動しないかを学びました。それはまたあなたにあなた自身を説明する機会を与えます。 コードがどのようにまたはなぜ機能するかを他の開発者に説明したことがなく、それらの推奨事項や懸念事項に耳を傾けていなければ、本当に見落としていることになります。これは、開発の最も基本的なものの1つです。プログラマーの演習。まれな超天才を除いて、私が独りで働くならば、どんな開発者も非常に高いレベルのスキルを得ることができるかを真剣に疑っています。
私の最初の実際のプログラミングのギグは、小さなお店で一人のプログラマーであったことから、チームで作業することになりました。私のスキルは、そのチームと彼らとのやり取りから指数関数的に増加しました。私がチームを変えるたびに、新しい思考領域全体が探求され、ネオがマトリックスでカンフーを学ぶような感覚で物事を学ぶこの最初の期間があります。