これについてコメントしたいのは、この質問はおそらくこれらのフォーラムで多くの質問が出されたとしても、問題ではなく、質問されるたびに異なる視点を得るからです。
それで、これが私の経験であり、私たちの職業には「知恵または現場」があると思います。これの一部は他の人がすでに述べたものと重複しますが、私は私の経験をリストし、次にそれぞれについて私の哲学/意見/提案をあなたにリストします
1)はい、そうです。他の人が述べたように、複雑なアイデア、プロセスを消化し、問題をコードで解決し、独自のソリューションに到達できるレベルが必要です。一方で、それを使い続け、積極的に取り組み、多くの質問をする意欲がたくさんある場合は、時間の経過とともにより良い問題解決者になることを学ぶことができます。多くの開発者は、すべてを知っている、または自分がそうであるように見せかけようとする場合、多くの質問をした、コードでお尻を削ったなどの事実を隠し、自分がいる場所に到達し、できるだけ上手く行くようにします彼らは
2)私の業界では、やはり私の意見では、残念ながら対処しなければならない自我はたくさんあります。私はこれを良いことだとは思いません、そしてそれはそこにいる多くの開発者にとって特に特徴です。
私の経験からわかるのは、次のタイプのチームの1つです。
「コードと実行」チーム。これは、彼らが気にかけているのはすぐに戸惑うことであり、彼らはコードの品質(クリーンなコード)や後でメンテナンス可能なコードについてあまり気にすることができません。できれば、これらの店から離れてください。会社で面接を行ったとしても、就職するまではチームの運営方法がわからず、実際にコードを作成する方法や実際にチームワークを促進しているかどうかを確認するために4か月から6か月かかるため、これは難しいことです。コラボレーションの促進(アイデアなど)
「大丈夫」である平均的な開発ショップ。つまり、彼らはコードの品質に少し気を配っています。彼らは、チームで上手く働き、前向きな態度を持っているチームに少数の優れた開発者を抱えているかもしれません。それから、自己主義的、怠惰などの他の特徴を持つ可能性のあるいくつかの開発者が混在しています。つまり、一種の独り言のショップしかし、コードが最大ではないが許容できる場合
素晴らしいお店。このショップは、良いデザインパターンに本当に従うように最善を尽くしています。彼らはデザインパターンの専門家ではないかもしれませんが、DRY、SOLIDなどの優れた手法を知っています。彼らは必ずしもスーパースターがチームに参加することを期待しているわけではありませんが、少なくともある程度クリーンなコードをコーディングし、かなりの経験を最初に持っている開発者を探しています。これらはあなたがストライドしたいチームです...しかし、あなたは良いチームを見つけるためにいくつかのお店を通過する必要があるかもしれません
スーパースターショップ。これは絶対に最高のプログラマーだけでなく、それをすべて持っている最高の意味のプログラマーを探す店です。彼らはうまくコミュニケーションをとり、チームとしてうまく機能します(テマをより良くするために他の人と積極的に)。すべての店がそうだと言うつもりであることを覚えておいてください、私たちは最高のものだけを探します。それらのほとんどはナンセンスです...彼らは善意を持っていますが、多くの場合それは単にマーケティングトークです。しかし、本当に優秀な人材を探しているお店の割合は%です。そして、あなたがインタビューに参加し、彼らがスレッドや高度なデザインパターンなどについて質問しているときは、そのレベルに到達するために、そしてこの種の期待を持つチームで働きたいのであれば、 、そこに到達するには数年かかる場合があります
否定的な雰囲気/自我を持つスーパースターショップ。そこにはトップ開発者を雇う予定の店がありますが、その店の大部分はスーパースターである多くの賞品を持つことができます。したがって、不正なコードを許容しないだけのチームも存在しますが、彼らはそれについての真の欠点です。それはチーム環境ではなく、あなたはこのがらくたから離れたいです。私たちの業界はそれを必要とせず、あなたも必要としません
そしてそこにいる次のタイプの開発者の一人:
a)巨大な自我、すべてを知っている、常にすべてから距離を置きたい、ほとんど明らかにしていない、態度を持っている...基本的に、チームプレーヤーでも、一緒に仕事をしたい、またはチームで持っている人でもない
b)平凡な仕事をして仕事を終わらせて家に帰るためだけにいる開発者。個人的には、初期の観点からは何も問題はないと思いますが、私たちの職業には、情熱を持ち、自分の技術を犠牲にして楽しんで最終的に価値を提供するだけでなく、長期にわたって開発者として改善する開発者が必要だと思います彼らはより良くなることを気にしているので
c)おそらく成功する可能性があるが、あまりにも怠惰、否定的、または彼らが持っている他の特性であり、誰にとっても地獄を引き起こす開発者。私のチームに怠惰な人が欲しくない...怠惰なエンジニアは私たちの職業に必要なものではありません
d)優れた開発者に適しており、チームワークに関心があり、謙虚に、他の人に教え、コミュニケーションをとり、プロセスまたはコード(コードレビューなど)に対する建設的な批評に率直である開発者すべての同僚と開発者として働いている間、仕事で前向きであることを気にかけます。あなたはこのような人々、積極的な協力的な開発環境で働きたいと思っています。チームが浸出液を探すべきだと言っているわけではありません...自分の体重を維持できる必要がありますが、チームが「スター」の開発者であると期待しているチームに行きたくありません。決して質問しないこと...それは悪い環境です。それから離れてください...私や他の友人のキャリア全体での経験では、私たちの職業全体での私の意見では、この環境を見つけるのは困難です。あなたは良いチームを見つけることができますが、悪い態度で混沌とした店に着陸するよりも見つけるのは難しいです。開発者がいわゆる「専門家」であるという理由だけで、草は常に環境に優しいとは限りません。これはおそらくどんな仕事にも関係していると思いますが、私たちの職業では、他のほとんどの仕事よりもそうだと思います。
3)私が苦労して学んだことの1つは、完璧主義者であり、優れたプロセスと完璧なコードを重視しすぎると、いつかトラブルに巻き込まれることです。そのバランスを見つけてください。あなたは純粋なずさんなコードを望んでおらず、雇用主が腹を立てるほど多くの時間を無駄にしたくないので、通常中程度のサイズのタスクを完了するのに2週間かかりました。あなたがそれをあまりにもきれいにしたかったので3-4日。私たちの業界で読むのに適した本であり、従うのに適した人は「ボブおじさん」です。多くの開発者がいるように、私は彼の大ファンです。コードに関する彼のブログ投稿を読んで、彼の本を購入してください。最高の実践、態度の面で私たちの職業について大学を卒業したばかりのあなたを含めて、彼があなたに提供しなければならない知恵と経験はどれほどかは言えません。
彼の会社のブログ:http://blog.objectmentor.com/articles/category/clean-code(およびチェックアウトhttp://blog.objectmentor.com/articles/2009/02/03/speed-kills)
すべての開発者が読んだり、読んだりして棚に置いておくべきだと思う彼の多くの優れた本の1つ:http : //www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
彼の個人ブログ:http : //cleancoder.posterous.com/retarded-architecture
そして彼が話した会議での彼の良いビデオ:http : //www.viddler.com/explore/oredev/videos/36/
4)一緒に仕事をしているすべての開発者と競合することについて、自分自身を強調しないでください。CSでうまくやったとしても、私たちの職業の基礎を習得するには数年かかることを理解する必要があります。時間がかかり、懸命に働き、質問をし、研究し、忍耐してください...そして特に、私たちの業界は現在そのような流動的な状態にあるので、すべてを知らなくてもイライラしないでください。最初に基本に焦点を当ててください...最初の数年間はよく理解してください。心配事を複雑にしすぎないでください。あなたはJr.の開発者であり、上手になろうとしています。それは、一生懸命に働き、基本的なOOPを最初に得た場合に起こります。私たちの業界の多くの開発者は、ファンダメンタルズをまだ理解していません。彼らは彼らを知ることに努力を注いでいないため、それはネガティブです。あなたはまず基礎をよく知りたいです(ポリモーフィズム、カプセル化、やだやだ)。最初のいくつかの仕事で多くのOOPを実行する機会があまりない場合は、楽しいペットプロジェクトを楽しんでいる側でコードをいじって、家でそれを研究して実践するために多大な努力をしてください。
この投稿を長くすることはできますが、ここで終了します。私の投稿ごとにさらに質問がある場合は、コメントで返信してください。議論を続けることができます。
究極的には、あなたが天才、超賢い、賢い、平凡、または吸う人なら、あなたがどのレベルであろうと、私たちの職業でそれをやりたいと思うなら、あなたは常に一生懸命働き、継続的に学ぼうとする必要があります。自分自身を向上させ、できる限りのベストを目指します(コード、コミュニケーションなど)。私たちの職業は軽く取るものではありません。