您如何看待程序员对自己所做的事情不好?
如果可能...他/她应该如何改善?
您如何看待程序员对自己所做的事情不好?
如果可能...他/她应该如何改善?
Answers:
当他们无法从自己的错误和同行评议中吸取教训时。
在某个时候,我们都是绿色的。但是,如果您没有进步或试图变得更好,那么您就是一个糟糕的程序员。
一个不知道自己不知道并且根本不感兴趣的程序员。
一个很大的警告信号是他们是否是“货运狂热”程序员-意味着他们做事情但不知道为什么要做那些事情(这只是“魔术”)。埃里克·利珀特(Eric Lippert)的精彩帖子在这里。
从文章:
理解代码功能但不了解代码功能的程序员。
对我来说,一个很大的提示是,当他们询问您或其他程序员的开发问题时,这些问题清楚地表明,他们自己花了绝对零的精力来解决这个问题。
一个必然的结果是,当他们多次问相同的编程问题时,表明他们没有内部化信息。
当他们花很长时间解决FizzBuzz问题时。
拒绝学习新技术/新语言的程序员,坚持坚持自己已经知道的知识。
附录:(添加注释下面的破折号)
对此的扩展是那些了解某些技术功能子集但不希望进一步了解它的人。编程语言,编辑器,其他工具...
当团队成员是负面的开发者。
|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0
意味着由于开发人员不佳,您团队的其他成员必须做更多的工作。 核电厂
当他们定期产生与The Daily WTF相符的内容时。
当他们知道有更好的做事方法时,即使时间允许,他们仍然拒绝这样做。
我个人认为,任何可以查看自己前一段时间编写的代码但没有发现错误的程序员都不是好人。“一会儿”可以随着经验而扩展……我想说的是从几周到一年左右。
当我在一家小商店里担任团队负责人时,我不得不重新任命几个人(我或我的直接主管没有大量的繁文Tape节和一堆文件就没有解雇能力。)或没有合同续签在当前订婚结束时。列举的某些类型也适用于其他团队负责人,他们几乎持相同观点。在我的书中,将人们带入“不良程序员”类别的事情:
这些只是我不得不使用的一些坏角色。
/ s / BezantSoft
除了明显的知识/能力不足之外,如果程序员的代码难以阅读和/或维护,那么它就是一个不好的程序员。
当没有其他人可以阅读他的代码时。你有多亮都没关系。没有程序员是孤岛。
对我来说,程序员分为两类-独奏和团队。
糟糕的独奏程序员是
糟糕的团队程序员是属于糟糕的单独程序员类别的人员,包括
我将答案从一个封闭的重复主题移到了这里,该主题询问您是否认识到自己是否是一个糟糕的程序员? 在撰写回应时,另一个话题已经关闭。我的回答更直接地解决了另一个提问者提出的问题,如果您理解的话,它将读起来更好。
叹!我的一部分不想添加到这个已经很忙的话题,但是我的另一部分赢了!为什么赢了?为什么我还要在这个特定的多日志中添加更多的单词呢?好吧,因为在某种程度上,我对此的看法可能与以前的许多评论员略有不同。
二进制在计算机上的效果很好:它是“ 1”或“ 0”,“开”或“关”。我们可以使用那两个著名的状态来抽象和编码很多信息。但是,对于人类而言,它往往无法很好地发挥作用:“好”或“坏”,“理智”或“疯狂”,“好”或“邪恶”,“聪明”或“愚蠢”,“肥胖”还是“瘦”,“活着”或“死了?” 这些两极分化的评价总是使我这个充满爱心的人感到非常不满意。无论采用哪种测量方案,我通常都会发现,这种鲜明对比的答案实际上位于一个极点与另一个极点之间的连续区域中,而不是在任何一端。
现在,我已经朝着这种两极分化的趋势进行了斗争,而我个人的解决方案是,我发现对任何这样的评价使用三个词要有用得多:“ 到什么程度!”
因此,我对您的问题的回答是建议您重新表述并问自己:“我在多大程度上是一个糟糕的程序员?” 或者,甚至更好的是,从另一个方向问:“我在多大程度上是一个好的程序员?” 如果您追求真理,那么您可能会成为“坏”程序员和“好”程序员之间的连续体。然后,一旦您设法找到沿着这条路径的大致位置,就可以确定一个稍微接近“好”端的点,即您希望在不久的将来找到自己的点。
如果您没有将该点设置得太远,则可能会使您的后端挂入齿轮并开始朝该方向移动。如果您设法多次迭代这个相当简单的启发式算法,您可能很快就会发现自己太忙于编程而无需再次提出这个问题!哦,如果您尽可能快地,经常地开始敲打键盘上的代码,则可能会取得更快的进步。并且,如果您不时休息一下,请阅读同行编写的一些高质量代码!在当今动态的开源开发中,您可以免费学习精美的免费代码!
因此,我强烈建议您尝试使用我的三个小词,“达到什么程度”,并看看他们可以带您走多远!
有人说“这不可能完成”。
我认为这全都与解决问题有关,该工具的实用性应远低于实际完成工作。如果我必须使用MS-Access或汇编语言来解决它,那是时间和金钱的问题,而不是“这无法完成”的问题
警告标志过于注重学术和“适当”的做事方式,而没有过多地关注完成工作。
如果他只知道一种语言的语法却不知道算法的基本概念。
让优秀程序员与新手程序员区别开来的一件事是,他们顽固地坚持以他们使用的任何语言和API来实现自己喜欢的系统。
我曾经继承过一个系统,以前的开发人员在Java中重新实现了在自定义dbf访问库之上分层的大量Ashton Tate DBase III + API。没有使用Java集合框架。
这样一来,他就可以编写外观和行为类似于DBase III +(或可能是Clipper)应用程序的Java / Swing应用程序。
他在此系统中编写的应用具有精简版菜单,当您将lite-bar导航到该选项时,它将打开一个完整的窗口窗体,底部带有一行按钮。就像回到1980年代的时间机器。
这个人显然是一个熟练的开发商。他非常了解自己能够在该项目的时间框架内编写整个系统。他还能够在其他一些内部系统上重用它。
但是他是一个糟糕的程序员,因为他的代码滥用了他工作的系统的功能。他比学习Java / Swing / SQL更愿意花3个月的时间来定制一个可疑收益库。