很多开发者会认为要想成为一个明星程序员所需要做的事情一定都是与编程技能相关的,不过这种想法却是完全错误的!优秀的代码是很好,但要想得到更好的工作,获得更高的报酬则需要让更多的人知道你是谁。换句话说,你需要推销自己,下面是我根据这些年的工作经验所得出的成为明星程序员的 10 个提示。
1. 撰写博客
搭一个博客,一个月写几篇文章。进行真正的研究,确保你所写的不是那种非常简单的东西。更严肃地说,就是要学会怎么写文章。根据学校的英语老师教你的方式来做:创建一个大纲、叙述、检查语法和拼音。接下来,简化刚才所写的东西,要做到让读你文章的人快速过一遍就能迅速掌握文章的要点。现在的互联网可是要做到精益求精才行。
2. 开源
不要相信那些关于开源的谎话。你们当中的那些年轻人可能已经记不起来过去有的开发者会失业的那种情况了,不过即便在经济不景气的时候,我创建的开源项目的所有开发者依然不会被裁员。请确保你所开发的开源代码能够反映出你的工作。我希望使用最简单的解决方案来解决难题,不过我面试了很多开发者,他们都将简单的问题给搞复杂了。无论你相信与否,这么做是有市场的,不过请确保你所编写的代码能够反映出你所在的市场。
3. 不是 6 个月,更不是 10 年
不要每 6 个月就换一次工作。严肃地说,一个公司的很多人都会出现离职的情况,同时也会有新人加入进来。换句话说,不要在同一个地方,做相同的事情达到 10 年以上,否则你会与市场绝缘并形成惯性的。举个例子,假如你在 IBM 工作,那么要想保持自身的价值,你就不能仅仅满足于按照 IBM 的方式,使用 IBM 的技术栈来编写代码。我从来没有雇佣过在 IBM 等类似的公司中工作过 2 年以上的人。他们给我的印象常常是面试中表现很不错,不过在实际的编程中却败下阵来。
4. 放眼新技术,着眼实际情况
尤其是一些年轻的开发者们都喜欢使用新技术。Ruby 是我最喜欢的一种编程语言,不过平均来说,Ruby 带给我的回报是不如 Java 的,Ruby 的市场也比较小。事实也并非总是如此,Scala 看起来势头很猛,不过不要忘记它的市场占有率,其实还是很小的。另一方面,也不要长久以来一直使用同样的技术,比如那些 COBOL 或是 PowerBuilder 开发者们。
5. 编写自己的文档
当我参与开发一个项目时,经常会被拉出去参加会议,原因就是他们看了我编写的文档或是演示,而且能够理解,这种情况出现太多次了。我总是一张总览图开始,后面则是对其各种细节的阐述。问题是:对于一个非常忙碌的人来说该知道哪些内容呢?大多数经理们想要知道什么?请按照这个思路编写文档。
6. 简洁是灵魂
对于管理来说,那些知道自己在说什么的人常常会给出更简洁的答案。如果回答很长且很复杂,那就意味着回答的人并不知道答案是什么。此外,声调通常与主题的重要性成反比。如果有坏消息来了,那么大家走进办公室时就会轻手轻脚,关上门,然后窃窃私语。请保证你知道自己说的是什么,知道如何总结,如何描述细节,不过请不要事无巨细地进行方方面面的介绍。请确保你的团队成员都经过了深思熟虑,然后清晰地阐明你的哪些观点要好于其他人的。
7. 当众发言
知道如何做演讲,学习如何在公众场合发言。研究一个主题,然后让自己成为这个主题的专家。如果能有一些幽默感的话,在公众场合的演讲效果就会更佳。要想掌握这种技能,你需要花费很多的时间与精力,还要忍受住别人的嘲笑,不过对于工程师来说,如果能用英语向管理者解释清楚问题,同时能就某个主题做出专业的演讲,那么他的薪资一般来说要比那些不具备这种能力的开发者高一些。
8. 现实一些
你很喜欢 Erlang,不过 Erlang 的市场却没有那么大。你应该了解多种语言,还应该知道那些“新”的话题,不过请不要说出这种不成熟的话“如果不是 Erlang,那我就不打算写代码了”,除非你真正理解了业务问题。这么做也许会让你成为一个狭窄领域的专家,不过即便这样也是有代价的,如果你所掌握的技能过时了,结果就不好玩了。当然了,NoSQL 更适合于你自己的一些小项目,不过公司却不会在那种一次性的系统中对其进行投入,这种情况下 RDBMS 就很适合了。
9. 解决疑难问题,了解相关工具
花点时间学些大部分人都不了解的工具。你知道哪些很少有人知道/使用/理解的工具,让你比周围的人更具效率呢?比如说,Aspect4j 并不适合于每一个人,不过它却适合我。我编写了一些 .class 文件操作,让其在 Tomcat 下正常运行,从而替换掉 WebSphere,我修复了私有软件的内存泄漏问题。这每一次经历都让我超过了其他人,因为我使用了其他人很少知道的工具来解决重要的难题,而其他人则还在等待着厂商的解决方案。当然还有其他的,不过这些简单的工具却能够解决复杂的问题,让你超越其他开发者。
10. 保持谦卑
很少有开发者具备谦卑这种特质。有时,这意味着你需要做一些很具体的工作。极客的声望来去匆匆,不过请记住,是你的行动才让你收获这种声望的。下一周可能一切都烟消云散了。换句话说,“你并没有什么特殊的”。
相关推荐
如何成为一个优秀的程序员:深入解析与实践指南 在IT行业,成为一名优秀的程序员是众多技术追求者梦寐以求的目标。在《如何成为一个优秀的程序员》一文中,作者罗伯特·L·里德(Robert L. Read)列出了多达一百条...
本文介绍了十个可以让你成为优秀程序员的有效方法,感兴趣的朋友可以看看。
以下是对标题和描述中提到的十个程序员习惯的详细解释: 1. **学无止境**:持续学习是优秀程序员的基石。随着技术的快速发展,必须不断关注新出现的语言、框架和编程实践,通过阅读专业文章、参加在线讨论和社区...
通过以上内容,我们可以看到,成为高效程序员并非一件容易的事,它需要程序员在技术、团队协作、个人态度等多个方面持续修炼。《高效程序员的45个习惯 敏捷开发修炼之道》不仅是一本指导书籍,更是引导程序员不断...
600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员...
成为一个优秀的程序员并非易事,它需要的不仅仅是一两门编程课程的学习。以下是对成为一名好的程序员所必需的关键要素的详细解释: 首先,扎实的基础知识是程序员的基石。这包括理解计算机科学的基本概念,如数据...
程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级10个秘诀程序员从初级到中级...
【程序员的十层楼】是一个比喻,用于描述程序员在技术成长过程中的不同阶段。这个概念主要是为了分析和比较中国与西方程序员的技术水平。通过设定不同的技术层级,我们可以更清晰地了解程序员所需掌握的知识和技能,...
13. 程序员要有韧性和灵性:雷军认为,程序员需要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。 14. 编程技术:雷军认为,编程技术非常重要,需要不断学习和提高。 15. 程序员经验...
如何成为优秀的程序员?请看程序员的10层楼
周伟明将程序员的技术层级划分为十个层次,每个层次代表了程序员在技术能力和职业发展上的不同阶段。以下是对这十个层次的简要概述: ### 第1层:菜鸟 这是程序员职业生涯的起点,门槛较低,只需具备基本的计算机...
不仅仅从技术上,而且从工作方式等角度详细介绍了怎样成为一个高薪的程序员
《一个程序员的奋斗史》是一篇描述了主人公段伏枥从大学毕业生到步入职场,开始程序员职业生涯的心路历程。该文通过主人公的亲身经历,展现了程序员在职业生涯中可能面临的种种挑战和抉择,以及程序员如何通过不断的...
以下是根据标题和描述中的内容,详细阐述的十个阶段: 1. **基础学习阶段**: 这是程序员的起点,通常在学校的环境中进行。学习计算机科学的基础知识,掌握一种或多种编程语言,通过编写简单的程序来理解和实践...
标题“一个程序员走过的路”暗示了这可能是一份关于程序员成长历程的资源包,包含学习、实践和经验分享等内容。描述中同样的话再次强调了主题的个人化和经验性。标签提到了“C”,“C++”,“程序员”,“文件”和...
如何让自己成为大牛,也许这篇文章改变你以后的人生。
想成为嵌入式程序员应知道的N个基本问题
2. **智能提示**:当用户输入部分代码时,输入法会根据上下文提供相关的代码补全建议,类似于IDE中的自动完成功能,帮助程序员更快地编写出正确的代码。 3. **特殊字符支持**:编程中常常需要输入一些特殊字符,如...