除多年编程经验之外,还有什么能区分一个程序员是“老手”还是“新手”?编程技巧当然是一部分,但它绝非是全部。聪明的程序员可能比他们的同行拥有更出众的编程技巧,但那不足以说明他们就是“老手”。同样,仅仅因为拥有10年编程经验也并不意味着他们就是高手。在工作岗位上,拥有多年编程经验也不能说明问题。即便没被炒鱿鱼,那也不能提升你的价值。
下面列举的事情是大多数高级程序员都会做的。
1.至少掌握一门编程语言
我相信有些优秀的程序员只懂(并精通)一门编程语言,但在某种程度上而言,这其实会限制一个人的思维。就像当你手拿一把锤子时,任何东西看起来都像钉 子。我认为,知道并成功使用至少一门编程语言,这是程序员从新手走向老手的重要一步。我要说的是,像JavaScript和SQL这样的辅助编程语言,只 有当你确实已经开发了完整的应用程序,并在其中使用这些编程语言时,它们才有价值。
2.工作之余也经常编程
我抱怨过把开源作为招贤的一项要求,但那仅仅因为许多充满激情的程序员把时间花在别的地方。除了对开源有所贡献,你还可以做兼职顾问,兼职创业,开发自己的产品或者创办自己的微型软件公司。当然,你也可以尝试从外部接些兼职项目,可参考伯乐在线的这篇《成功接项目需要注意的几个要点》。
注:mISV即MicroISV,是一个只有一名员工组成的软件公司,是一种微型公司。
3.经历完整的软件开发过程,从概念设计到产品实现,再到产品维护
有的程序员希望不用自己动手就可以得到详细的设计说明,然后把缺陷代码交给测试/维护小组,这是平庸程序员的一个缩影。任何称职的程序员都会跟客户密切合作,去制定需求分析,然后编码实现,当然也要维护。如果你在编码实现阶段偷懒了,那你在维护阶段不得不付出代价。
4.不断创新
创新就是做一些你身边的人没有做过的事情,用来改善你的过程或产品。你不一定非得是世界上第一个做这件事的人,只要发现一个问题,找到解决方法然后实现它就行。
5.编写的软件能解决实际问题
有一副虚构的场景:一名黑客,仅仅是出于对技术以及自己所做事情的爱,一天到晚都在编写代码。但这几乎无助于成就一名优秀的开发者。事实上,我曾见过 有些开发人员和客户争论,来采用更好但不太有助客户的技术。这会适得其反。你可以利用自己的时间来完善。但涉及工作时,你最好还是编写能实际改进并解决问 题的代码,而不是使用那些不同寻常的算法或接口。
编者后话
这些问题对于任何想成为高级开发人员的朋友来说,都合情合理。因为这些问题和拥有多少年编程经验并没有关联。如果你能做到上面4-5条,那你就是高级程序员。如果只有1-2条,那你还需要加油努力。
当然,在面试中,设置一个简单的“是或不是”问题,通常是一个衡量自己的小练习。更重要的问题会是“你能给我们举例介绍一下吗?”
你的高级程序员测试得分是多少?你怎么看待这些问题呢?对高级程序员来说,其中是否多余的吗?或者你认为还有其他条件可以判断他人为高级程序员? 欢迎在评论或微博中分享你的观点。
本文出处:伯乐在线 - 职场博客
本文链接:http://www.jobbole.com/entry.php/295
Via:Code Anthem 编译:伯乐在线 敏捷翻译组 - 朱勇
本文转自: http://www.itleft.com/archives/35.html
分享到:
相关推荐
总之,《Visual Basic.NET高级程序员指南》是一本全面而深入的教程,它将帮助开发者提升VB.NET编程技巧,理解和应用各种高级特性,从而在.NET开发领域取得更大的成就。通过阅读和实践书中的内容,你将能够更好地驾驭...
作为一名JAVA程序员,编程学习之路是充满挑战且富有成就感的。在这个过程中,掌握数据结构、算法、数据库、操作系统和计算机网络等基础知识是至关重要的。本文将深入探讨这些关键领域,为你的JAVA编程之旅提供宝贵的...
无论是初级还是高级程序员,都应该投入一定的时间来撰写文档,这有助于代码的维护、升级和团队间的协作。缺乏文档的系统容易在未来遇到困难,难以扩展和复用。 3. 规范化和标准化的编码习惯:遵循一定的编码规范和...
总之,作为一名新手程序员,在追求技术进步的同时,也需要关注自身综合能力的提升和个人品牌的建设。不断学习新知识、扩展人脉网络,并勇于迎接挑战,这样才能够在竞争激烈的IT行业中脱颖而出,实现个人职业发展的...
### 程序员的十个层次 在IT行业中,程序员的职业发展路径往往被分为不同...要想成为一名优秀的程序员,不仅需要不断学习新知识、新技术,还要注重个人品质的培养,这样才能在职业生涯中不断突破自我,实现更高的成就。
受到人类学习编程过程的启发,我们提出了一种名为HNCP(Human-Network Collaborative Programming)的新型编程范式。HNCP是一种高级的可微分编程语言,它在提供端到端可微分运行环境的编程语言级抽象虚拟机(dVM)上...
在IT行业中,Linux和C语言是两个至关重要的概念,尤其对于...熟练掌握这些技能,将使你成为一名合格的Linux程序员,能够自如地驾驭C语言在Linux平台上的强大能力。通过不断实践和学习,你将在这一领域取得更大的成就。
成为一名优秀的程序员不仅需要扎实的技术基础,还需要持续的学习能力和自我驱动力。通过本文介绍的方法和资源,希望每位程序员都能找到适合自己的学习路径,不断提升自己,在职业道路上取得更大的成就。记住,持续...
### 97年世界编程大赛第一名作品解析 #### 概述 1997年的世界编程大赛中,一款由汇编语言编写的程序以其惊人的技术成就获得了冠军。这款程序的特点在于其源代码经过精心设计与优化后,编译后的执行文件体积非常小...
本文作者通过分享自己从小接触编程,直至成为一名程序员的成长经历,揭示了成为一名优秀程序员的关键要素。 首先,数学能力至关重要。计算机科学本质上是数学的一个分支,良好的数学基础能帮助程序员更好地分析问题...
因此,掌握C语言的核心概念和技术对于成为一名优秀的程序员至关重要。 #### 二、C语言基础回顾 在深入探讨高级主题之前,首先需要回顾C语言的基础知识,包括但不限于数据类型、变量声明、流程控制等基本概念。这些...
在深入探讨"C语言高级实用编程技巧"这一主题之前,我们首先要理解C语言的基本特性。C语言是一种强大的、低级别的...记住,实践是最好的老师,不断地编码、调试和优化你的程序,是成长为一名优秀C语言程序员的必经之路。
在这个案例中,“机器码编程世界编程大赛第一名”所展示的成就,无疑是编程技艺的巅峰体现。 首先,我们要认识到14KB的代码能实现声音、动画一体的效果是极其罕见的。通常,声音和动画的处理涉及到大量的数据处理和...
这些早期的探索为他日后在科学领域取得的成就埋下了伏笔。 #### 二、图林机的概念及其意义 - **概念介绍**:图林机是一种假设的计算机模型,由一个无限长的纸带、读写头以及简单的指令集组成。它可以模拟任何算法...
"高级 729 阶 5 次雪花幻方"是一个极具创新性的数学成就,它融合了数字排列与计算机算法的智慧。在这个特殊的案例中,"729 阶"指的是幻方的规模,意味着幻方由729个格子组成,每个格子填充1到729之间的不重复整数。...