国内的教育体制,培养了这样一批人:
他们努力、奋进,热爱技术,愿意投身软件行业,愿意写出高质量的代码,他们对业界的东西很感兴趣,他们愿意学习扎实的基础知识,他们渴求火热的新技术……
几年以后,他们拥有广泛的视野,阅历宽阔、经验老到、言辞犀利,对行业动态了如指掌,显然,他们是行业的博学者。
然而……
既有的优越感却让他们却缺乏这样一种能力——思考。
他们被过去的经验与成功所遮蔽,其个人不能再做自我突破,也因此常常否定与其既有经验不太相符合的行为。
我很有幸在现有公司碰到了这样的一类人。
也许很多行业都有"尊老"的传统,可惜软件行业不全是。
见贤思齐,见不贤而内自省。前车之鉴,不可覆辙。望自己不论身处何地,身兼何职,都能求知若饥,虚心若愚。因为:
Develop is not easy。
1 细节决定成败
进入软件行业小有几年了,大大小小的软件项目做下来,我清晰地认识到把事情做好并非易事。这里不仅指技术本身,还涉及许多相关的细节,这些细节常常被多数工程师忽略,而正是这些细节才能体现出一个工程师的闪光点。我见过很多优秀的工程师。他们的共同点便是会认真的思考系统的每一个细节,并以coding验证自己的想法。这些平凡的工程师正是软件工程中的灵魂。我更能体会的是软件领域的三七理论,那就是你花百分之三十的时间可以掌握一门知识的百分之七十的常用功能,然剩下的百分之三十却需要用去你百分之七十的时间。我曾花费过大量的时间去学习和实践一些人完全不在乎的技术细节,这些积累得之不易,就算在这个不懂什么一搜便知的时代,也有足够的细节你是搜不到的。这正是"知识"和"操作"的巨大区别。正是细节构成了工程师的核心竞争力,拉开工程师和工程师之间的差距。在这个浮华的年代下,唯有耐得住寂寞,才守得住繁华。
2 态度决定一切
态度决定一切,你的态度如何,在一定程度上已决定你是失败还是成功。我觉得这点在做技术时体现得淋漓尽致。引用曹政的一段话:
"你服务器偶尔出501错误,也许比例不高(知乎也出现过很多次),很多程序员,没错,是很多,假装看不见,不在乎,或者归咎于人品问题。 这就是态度问题。
再往后,负载高了或者其他什么原因,突然频繁出现501错误,不去追寻深入的原因,而是找各种借口, 什么IDC服务商不好,服务器品牌不好,操作系统不好,数据库不好,CDN不好,网络状况不好,web server不好,甚至,直接对Boss说我们被DDOS啦!(遇到过,帮他Boss找过多个安全专家会诊,最后发现根本不是DDOS,是程序员太烂。)
这就是态度,触目惊心,如果能对问题有敏感性,能知道对任何小的,轻微的问题有足够的敏锐度,你就有了一个快速成长的基础。对问题的敏锐度是非常重要的。很多性能或程序逻辑上非致命的bug,在不够敏锐的时候是发现不了的,但是一旦进入特殊场景就会骤然爆发,你多一点敏锐度,就会减少这种危机的风险。"
"直接对Boss说我们被DDOS啦!" ,类似的什么都没搞清楚就下论断的场景在我的工作中有着类似的活生生的示例,一笑带过。希望以后不会再碰到这种笑话。
3 保持努力
在技术突破的道路上,你必须不断的保持努力,不断的更新自己的知识和技能,同时花费充分的时间在系统关键部门所需要的知识的细节上,才能越走越远。送给自己,希望回首过往,是充实而不是空虚。
4 Talk is cheap ,show me the code
怎样区分一个空谈家和一个实干家?给他一个具体的问题是最好的办法。在我刚工作的时候,我曾经很钦佩那些在活动中、讨论中高谈阔论的人,我觉得他们很能说。可是后来我逐渐发现,能说的人实在是太多太多了。
细化设计、甚至落到编码,才是对一个程序员真实的检验。当然,如果你觉得做软件设计的人可以不熟悉编码、架构师可以不首先是一名高级程序员,那我们也没有什么可谈了 :)。
如果你会学习,你可以成长得很快;如果你不会思考,你永远只能跟在别人后面。
另外关于性格,也给自己提出若干建议:
1 人非圣贤,孰能无过。不要过于呵责别人,因为自己也不免有犯错的时候。
2 人外有人、天外有天。保持谦虚。
3 尊重他人,耐心、礼遇每一个人。做人和做事同等重要。
4 真正的权威来自知识,而不是职位。不论身兼何职,以理服人。
以上,送给即将27岁的我。
感谢同样在工作和生活中总结的你们:
http://www.cnblogs.com/yuxc/p/4146623.html
http://news.cnblogs.com/n/213511/
http://news.cnblogs.com/n/202758/
http://www.zhihu.com/question/27180582