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