最近在知乎看到一个很有意思的问题,热度还挺高的。
“程序员的通病是什么?”
很多人第一印象就是:
- 加班
- 脱发
- 单身直男
- 亚历山大
- 需求魔幻
其实这些标签在其他行业领域也普遍存在,也并不是程序员真正的悲哀。
真正的悲哀,来自于这个群体的本身上。
程序员的通病
不擅长汇报,演绎思维很差
会做不会说一直是程序员的一个通病。
程序员的工作偏逻辑性,中间的波折和努力很难用简单的几行文字表达出来,大多数程序员只埋头写代码,汇报能力极差。
汇报往往以结果为导向,寥寥两行反馈出直接结果,领导却觉得这项工作很简单。
比如想法和执行力100分,写到报告里只有80分,轮到口头汇报时却只能讲出60分。
很明显,这类人演绎思维不足,往往在职场上上不去。
汇报就是看人下饭,站在领导角度想问题,避开长编大论写过程,结果是好的,就多少讲讲自己的具体工作,结果不好的,就多写一些分析原因,然后复盘得出结论,后续规划如何避免,怎么提高等等。
当然,一切吹嘘都建立在有实绩的基础上,如果一切都是空中楼阁,早晚会有败露的一天,只有做好自己的工作,还有底气做汇报。
比较自大
有一个事实是,大部分程序员的程序都写得很烂,包括我认为自己也是。
无论是在上面花了多大的功夫,其他大多数程序员都会认为你写得代码很烂,自己写得才是如诗一般的代码。
太过自大是所有程序员身上一个非常大的毛病。
一旦开始盲目相信自己的伟大,就意味着你的创造力开始消失、你的谦卑开始消退、你的动力开始衰减。
当你觉得没有什么可学的时候,你的学习自然就停止了。
缺乏学习的程序员,如同骑士失去了他的宝剑,岂不悲哀?
当然了,这并无意味着程序员就要抛弃自己的全部性格。
程序猿应该有自己的骄傲,并捍卫自己的骄傲。正因为你们是一群特殊的人,世界正因你们的努力而在改变着。
理想化,过分关注技术实现
市场的需求和程序员的极致追求,本来就是两个不同的维度。
在技术控看来,占领市场的关键就是你的技术需要登峰造极,碾压同行,建立技术护城河,让别人追都追不上,这样才会获得市场的认可。
但市场真的是这样吗,并不是呀。
像钻石这样完全没有用,技术稀缺度也不高的营销出来的奢侈品,在技术控的价值观里一点价值都没有,最大的功能应该是拿去切玻璃。
可事实是钻石它就卖得很贵,卖得也不错呀。
所以一个优秀的程序员是有两个身份的,一个是开发者,一个是用户。
一方面,他们能努力去理解项目中的所有部分是如何协同工作的,以及它们处于何种状态,分析它们的特性。
另一方面,他们总是能发现问题,会去质疑特性背后的设计和思想,以找到更好更便捷的解决方案,实现优良的用户体验。
4. 其实不喜欢软件开发
很多人从事软件开发,并不是因为喜欢,可能就是因为这个行业火,薪水高,入行门槛低。
当然这无可厚非,人总是要先得到温饱才能有劲工作,谁都希望可以拿到期望的工资。
但是瓶颈该如何突破?
人在做一件不热爱的事情的时候,心理上是不会想着怎么把事情做得更好,往往是差不多就行了,有事完成就行,没事就摸摸鱼,根本不会有精益求精的追求。
做程序没有热情,从一开始就注定了无法走的很远,软件行业日新月异,每一项技术又博大精深,不持续、深入钻研是很难掌握的。
没有热爱加持,终究无法远行。
小结
一个优秀的程序员,并不是一个只会埋头写代码的呆头,他一定站在现实的山峰上,举着自己热爱的旗帜,不断地向下山的神寻找学习,并且在路上,遇到源源不断的同行者。
要想进一步提升,其实也不难的,你只需要一份靠谱的学习资料,一个学习的deadline以及一个没学完就打爆你狗头的人,很快你就会被自己的才华和能力所惊艳。
我收集了一些linux的资料、算法小抄和计算机基础的资料,仅供个人学习使用,欢迎大家一起学习探讨。
linux保姆级教程完整版文档资料