程序员的自我修养
正确认识自己
我更愿意用技匠这个词来形容程序员,就像我给自己起的花名一样. 程序员应该是那些不断追求更高技术,并有着自己产品梦的工匠. 当您通过对自己技术不断打磨,一次又一次做出那些优秀产品的时候,您会发现自己不再是他人口中的码农或是屌丝,而更多被称为了大师,大神,而受到大家的尊重.
比一般人更加努力
优秀的程序员往往会被同天才或高智商的人联系在一起,但我想告诉您,您周围所看到的那些天才(身边的优秀程序员)只是在您没看到的时候花了更多时间工作或者学习而已,当您也坚持这么做时,您也会变得和他们一样优秀.
适时建立个人权威
建立个人权威,这能让其他人看到您的不同之处,并为您在公司或团队内部构建起良好的影响力.当然,这一切的前提是您通过不断努力积累了自己的实力,并在恰当的时候去展现它.
遵循最佳实践
这些最佳实践或由此衍生出来的框架,工具都是那些富有经验的程序员通过大量实践,总结出来的最优秀的软件开发思想. 通过理解和对它们的有效实践,能够让您站到前人的肩膀之上,对软件开发本身获得更深入的理解和认识.
保持好奇心并乐于探索新的事物
优秀的程序员们也往往非常乐于探索那些看似与工作无关的技术. 比如,做后端的程序员去学习前端的技能,前端工程师则去学习UI设计,等等,这些虽不会让他们成为那一个领域的专家,但技术往往是相通的,当您在探索这些新鲜事物的同时,您会发现您原有的技能也得到了提升.
要为优秀的人工作
环境对一个人的影响是巨大的,而最可怕的是当您身处其中时,很难意识到您正在变得越来越糟.
相信自己的天赋和创造力
- 记录和收集:尝试用一个小本子,将您转瞬即逝的好想法记录下来,它们可能并不直接有效,但下一个更好的想法可能就是从这些您记录下来的想法中产生的.
- 尝试动手:光有好的想法是不够的,您需要成为一个有工匠精神的人,通过亲自动手去尝试和实践,您会不断从中得到新的创造力.
您的薪酬与工作量无关
摆正心态,正确认识到自己在公司中的位置,努力修炼内功,让自己变得越来越重要,相信您的薪资也会随之提升的.
尽可能持续做一件事
我的建议是尽可能持续做一件事.这既是指技术上的积累,也是指您能完整或较长时间参与同一个项目或开发一个产品. 技术深度及完整项目经验的重要性,如果您总是在跟随那些新出现的技术和框架,那您很难在某一项技术上达到理想的深度;
唯一不变的就是变化本身
作为程序员,我们又应该如何应对这些变化呢? 我想说,您很难去改变所处的环境,或是阻挡那些变化的大趋势.您所能做的恰恰是培养自己持续学习的能力.
您的声誉非常重要
除了那些经常挂在嘴边的诚实守信,踏实肯干等之外,有一点特别重要,那便是严谨. 因为它往往是判断一名程序员是否具备优秀潜质的重要因素. 严谨的程序员对于分配给自己的任务会认真理解,对于自己的产出会仔细检查,这些都能大大减少工作中的出错概率,给团队或公司中的其他人留下良好的印象.
理解沟通的意义
当我们没有对问题有深入理解的时候,我们很难写出正确的程序来,因此我们需要向用户虚心求教,去真正理解他们所希望解决的问题.
您的右脑将是您成功的关键
谈到那些我们眼中非常成功的技术大牛,IT高管,都会出人意料地将一些非技术能力作为自己获得成功的关键. 比如,编写文档或做PPT的能力,演讲的能力,说服他人的能力,等等. 我虽然并不完全赞同最优秀的程序员不写代码这种观点,但我确信您的右脑将会是决定您能否成功的关键.
不要轻易说简单和不可能
年轻程序员们不应该轻易做出那些过于绝对的判断,应尽可能去使用科学的方法进行分析和论证,然后用不易被人误解的方式进行有效的表达,这样您提出的观点才能让大家感到信服.
您不应该总是单打独斗
如果您真的希望做出一些具有影响力的东西,那么光靠个人是很难实现的.您需要和团队中不同角色的人进行合作,有时候您需要说服别人,有时候您则会被别人说服.
让您的能力显而易见
程序员的能力来自于大量的编码实践,以及持续学习的能力和勤于思考的习惯. 任何自作聪明,不懂装懂,以及投机取巧在明眼人看来都只会是东施效颦,显得如此微不足道.
会写文档
文档可能是您完成代码编写后一个最佳的展示机会. 当代码实现了它的功能之后,就很少有人会再去看它,除非它出错了. 但文档被阅读的概率却大得多. 从一个文档中,我们可以看到关于作者的很多东西,思路是否缜密,逻辑性是否强,设计方案是否优秀,等等. 可以说,文档质量的高低是衡量一名程序员是否优秀的重要标准之一.
学会包装
说到包装,人们往往会产生一种不好的感觉,把它与虚伪,假的东西联系在一起.其实,我所说的包装应该包含两层意思:
- 知道什么是美的(优秀的).
- 精心制作.
尝试多讲
讲话一直是很多程序员的硬伤,当然这也曾是我的硬伤.根据我的经验,您需要跨过以下两个障碍:
- 敢说.
- 让说的和您想的一致.
建立社会化联系
能够使您建立权威,您的技术博客,在一些社区上的技术问题解答,以及您的开源项目等都会使人认为您是这方面的专家. 同样,您也可以获得他人的帮助,来解决棘手的难题. 您可以找到与您有相同兴趣的人,一起做有趣的事情. 您的社交网络将因此扩大,这意味着您所获得的机会将会更多.