プログラマーは自分がやっていることを下手だと思いますか?
可能であれば...彼/彼女はどのように改善する必要がありますか?
プログラマーは自分がやっていることを下手だと思いますか?
可能であれば...彼/彼女はどのように改善する必要がありますか?
回答:
彼らが自分の間違いやピアレビューから学ぶことに失敗したとき。
ある時点ですべてが緑になります。しかし、あなたが良くならない、または良くしようとしないなら、あなたは悪いプログラマーです。
彼が知らないことを知らず、調べることにまったく興味がないプログラマー。
大きな警告サインは、彼らが「カーゴカルト」プログラマーである場合です。つまり、彼らは物事をしますが、なぜそれらのことをするのかわかりません(単に「魔法」です)。Eric Lippertによる素晴らしい投稿はこちら。
記事から:
コードが何をするのかを理解しているが、どのようにそれを行うのかを理解していないプログラマ。
FizzBuzz問題の解決に時間がかかる場合。
新しい技術/言語を学ぶことを拒否し、既に知っていることに固執することを主張するプログラマー。
補遺:(コメントにダッシュのコメントを追加)
これの延長線上にあるのは、一部のテクノロジーの機能のサブセットを知っているが、それについてそれ以上何も学びたくないという人々です。プログラミング言語、エディター、その他のツール...
チームメンバーがネガティブプロデューサーである場合。
|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0
悪い開発者のために、チームの残りの部分がより多くの仕事をしなければならないことを意味します。 NNPP
定期的にThe Daily WTFに登場するものを作成する場合。
私が小さな店のチームリーダーだったとき、私は再割り当てしなければならなかった(私も私の直属の監督者も大量のレッドテープと書類の山なしで終了能力を持っていなかった)、または契約更新を持たないいくつかの人々がいました現在のエンゲージメントの終わりに。列挙されたタイプのいくつかは他のチームリーダーでも機能し、ほぼ同じ見方をしていました。私の本の「悪いプログラマー」カテゴリーに人々を連れて行ったもの:
これらは、私が協力しなければならなかった悪いキャラクターのほんの一部です。
/ s / BezantSoft
プログラマーには、ソロとチームという2つのカテゴリがあります。
悪いソロプログラマーは
悪いチームプログラマーは、次のような悪いソロプログラマーカテゴリに分類される人
彼らが答えを知らないことや、物事を調べることを望まないことを認めたくない。
あなたがそれを知らないなら、あきらめないでください-それを理解して、それを終わらせてください。
私は答えを閉じた重複トピックからここに移動しています。あなたが悪いプログラマであるかどうかを認識できますか? もう1つのトピックは、回答を作成しているときに閉じられていました。私の答えは、他の質問者によって表現された質問をより直接的に扱っており、あなたがそれを理解すればより良く読めるでしょう。
はぁ!私の一部は、すでに忙しいこのトピックに追加したくありませんでしたが、私の他の部分が勝ちました!なぜ勝ったのか。この特定のマルチログにさらに言葉を追加するのはなぜですか?なぜなら、これについては、以前の多くのコメンテーターとは多少異なる見解を持っているかもしれないからです。
バイナリは、コンピューターで最適に動作します。「1」または「0」、「オン」または「オフ」です。これらの有名な2つの状態を使用して、多くの情報を抽象化およびエンコードできます。しかし、それは人間の問題に対してあまりうまく機能しない傾向があります。「良い」または「悪い」、「正気」または「非常識」、「良い」または「悪」、「賢い」または「愚かな」、「脂肪」または「薄い」、「生きている」、または「死んでいますか?」これらの種類の二極化された評価は、常に思いやりのある人間の一部を非常に不満のままにしてきました。私が適用する測定スキームが何であれ、私は通常、そのような厳しいコントラストに対する答えは、実際には、そのような極と他の極との間の連続体に沿ったどこかにあることを見つけます。
私はこの傾向とかなり長い間戦いましたが、私の個人的な解決策は、このような評価に3つの単語を適用する方がはるかに便利だということです。
したがって、あなたの質問に対する私の答えは、あなたがそれを言い換えることを提案し、これを自問することです:「私はどの程度まで悪いプログラマーですか?」または、さらに良いことに、他の方向でそれを尋ねることができます:「私はどの程度まで良いプログラマーですか?」真実を追求すれば、おそらく「悪い」プログラマーと「良い」プログラマーの間の連続体に沿った自分自身を見つけるでしょう。次に、この経路に沿ったおおよその位置を特定できたら、おそらく「良い」終わりに近いポイント、つまり近い将来自分自身を見つけたいポイントを特定できるでしょう。
そのポイントをあまり遠くに設定しなければ、おそらく後端をギアに入れて、その方向に動かし始めることができます。このかなり単純なヒューリスティックアルゴリズムを何回か反復処理すると、すぐにこの質問をする必要があるプログラミングに忙しすぎることに気付くかもしれません!ああ、できる限り早く頻繁にキーボードのコードを叩き始めると、おそらくより速く進歩するでしょう。そして、少し休憩をとる場合は、仲間が書いた高品質のコードを読んでください!動的なオープンソース開発の最近では、学ぶべき無料で絶妙なコードが不足していません。
だから、私はあなたに私の3つの小さな言葉「どの程度まで」を試して、彼らがあなたをどれだけ良い方向に導くことができるかを見ることを強くお勧めします!
「できません」と言う人。
私の意見では、それはすべて問題解決に関するものであり、このツールは実際に作業を完了するよりもはるかに関連性が低いはずです。MS-Accessまたはアセンブリ言語を使用して解決しなければならない場合、それは時間とお金の問題であり、「できない」という問題ではありません。
警告サインは、物事を行う学術的で「適切な」方法に焦点を合わせすぎており、仕事を成し遂げることに十分に焦点を合わせていません。
悪いプログラマーと初心者のプログラマーを区別する1つのことは、作業している言語やAPIにお気に入りのシステムを実装するという頑固な主張です。
以前の開発者がカスタムdbfアクセスライブラリの上に階層化されたAshton Tate DBase III + APIの大規模なセットを(Javaで)再実装したシステムを継承しました。Javaコレクションフレームワークは使用されていません。
これは、DBase III +(または場合によってはクリッパー)アプリのように見え、動作するJava /スイングアプリを作成できるようにするためでした。
このシステムで彼が書いたアプリにはライトバーメニューがあり、ライトバーをオプションにナビゲートすると、下部にボタンの列があるフルウィンドウフォームが開きます。1980年代にさかのぼる小さなタイムマシンのようでした。
その男は明らかに熟練した開発者でした。彼は、そのプロジェクトの期間内にシステム全体を自分で記述できることを十分に知っていました。また、他のいくつかの内部システムで再利用することもできました。
しかし、彼は自分のコードが作業したシステムの機能を悪用したという点で、ひどいプログラマーでした。彼は、Java / Swing / SQLを学ぶよりも、疑わしい利益のカスタムライブラリに3か月を費やす意思がありました。