摘自:陈皓博客
情绪化思维
情绪化的思维或态度很可能把你变成一个怪物,比如下面这些话:
-
我的程序不可能有这种问题。
-
Java就是shit。
-
需求怎么老在变,没发干了。
-
受不了这些人,不知道他们在想什么。
这些情绪化的思维和态度,不仅让你成为一个很糟糕的程序员,甚至影响你的前途,情绪化通常是魔鬼,让你作出错误的判断和决定,甚至影响人生。
怀疑别人
“我的代码一定是正确的,编译器有问题”,“我这里应该没问题,这个类库怎么这么难用”,过早下结论是一个不好的习惯,任何事情都有原因,只有知道了原因,才知道是谁的问题。
过多关注实现,陷入问题细节
我们面对一个问题或需求的时候,糟糕的程序员会马上找一个解决方案或实现,这是一个很不好的习惯,认清本质和特性比如何实现更重要。
对于客户的问题来说,首先想到的是如何先让用户正常工作,如何恢复正在“流血”的系统,而不是把用户放在一边去分析问题并找到解决方案。
对于解决bug来说,重现bug,了解原来程序意图是首先重要的事情,而不是马上去修代码,否则引入更多的bug。
对于一个需求来说,我们需要了解需求后面的商业背景,user case和真实意图,而不是去讨论具体实现。只有了解用户真实意图,实际的方式和案例,才能真正知道如何去设计。
不要陷入细节,争论于如何实现,而忽略了更重要的东西,只有看懂了地图,才知道怎么走。
拼命工作而不是聪明的工作
糟糕的程序员总是在拼命的修正bug,总是话很多时间并重复的完成某项工作。
而好的程序员可能会花双倍时间来转变一个有效的开发环境,工具及在代码中会花10倍的时间来避免一些可能的问题。
好的程序员会利用一切的工具或手段来让自己的工作变得更有效率。
后期程序出现错误的成本是巨大的,所以糟糕的程序员会陷入一种恶性循环,总是疲惫,总是辛苦,更没有时间改善,就会有更多的问题,所以拼命工作可能表明你不是一个好的程序员。
总是在等待,找借口及抱怨
当需求不明确时,当环境不满意时,他们总是在等待别人的改善。出现问题的时候总是在找借口,或是抱怨。
糟糕的程序员希望自己的环境是最好的,这个世界没有十全十美的团队,如果任何事情都完美来,你的价值还在哪?
滋生办公室政治
如果一个人没有真实能力,一定会在其他方面做文章。
糟糕的程序员,如果编程不好的话,他们通常去指责别人,推脱责任,或排挤他人来保全自己。
说得多,做得少
糟糕的程序员总是认为自己什么都懂,不会意识到自己认知和知识上的有限。
他们对别人的设计方案,总能挑出一堆毛病,但自己的程序写的很烂,总是批评抱怨,没有建设性意见,或可行的解决方案。
顽固
糟糕的程序员总是倔强的认为他们的做法才是最好的,这些程序员不会去想,也从来不会找人讨论有没有更好的方案,而是坚持自己的想法,哪怕是死路一条也一往无前。
写“聪明”的代码
糟糕的程序员写出的代码需要别的同事查看程序语言参考手册,或其程序的逻辑或风格看上去时髦,但非常难读。
代码应该整洁和易读,而他们喜欢在代码中表现自己,并尝试另类的东西,认为这些才是能力的显示。