`

是什么成就了一名“高级”程序员?

阅读更多

除多年编程经验之外,还有什么能区分一个程序员是“老手”还是“新手”?编程技巧当然是一部分,但它绝非是全部。聪明的程序员可能比他们的同行拥有更出众的编程技巧,但那不足以说明他们就是“老手”。同样,仅仅因为拥有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高级程序员指南

    总之,《Visual Basic.NET高级程序员指南》是一本全面而深入的教程,它将帮助开发者提升VB.NET编程技巧,理解和应用各种高级特性,从而在.NET开发领域取得更大的成就。通过阅读和实践书中的内容,你将能够更好地驾驭...

    一名JAVA程序员,将自己的编程学习之路做以总结并进行分享

    作为一名JAVA程序员,编程学习之路是充满挑战且富有成就感的。在这个过程中,掌握数据结构、算法、数据库、操作系统和计算机网络等基础知识是至关重要的。本文将深入探讨这些关键领域,为你的JAVA编程之旅提供宝贵的...

    给程序员的建议.pdf

    无论是初级还是高级程序员,都应该投入一定的时间来撰写文档,这有助于代码的维护、升级和团队间的协作。缺乏文档的系统容易在未来遇到困难,难以扩展和复用。 3. 规范化和标准化的编码习惯:遵循一定的编码规范和...

    给新手程序员的10点忠告(精辟)

    总之,作为一名新手程序员,在追求技术进步的同时,也需要关注自身综合能力的提升和个人品牌的建设。不断学习新知识、扩展人脉网络,并勇于迎接挑战,这样才能够在竞争激烈的IT行业中脱颖而出,实现个人职业发展的...

    程序员的十个层次

    ### 程序员的十个层次 在IT行业中,程序员的职业发展路径往往被分为不同...要想成为一名优秀的程序员,不仅需要不断学习新知识、新技术,还要注重个人品质的培养,这样才能在职业生涯中不断突破自我,实现更高的成就。

    一种融合程序员和神经网络的自动化程序生成方法.docx

    受到人类学习编程过程的启发,我们提出了一种名为HNCP(Human-Network Collaborative Programming)的新型编程范式。HNCP是一种高级的可微分编程语言,它在提供端到端可微分运行环境的编程语言级抽象虚拟机(dVM)上...

    Linux程序员——C语言源代码

    在IT行业中,Linux和C语言是两个至关重要的概念,尤其对于...熟练掌握这些技能,将使你成为一名合格的Linux程序员,能够自如地驾驭C语言在Linux平台上的强大能力。通过不断实践和学习,你将在这一领域取得更大的成就。

    程序员自我学习自我培训指南

    成为一名优秀的程序员不仅需要扎实的技术基础,还需要持续的学习能力和自我驱动力。通过本文介绍的方法和资源,希望每位程序员都能找到适合自己的学习路径,不断提升自己,在职业道路上取得更大的成就。记住,持续...

    97年世界编程大赛第一名作品

    ### 97年世界编程大赛第一名作品解析 #### 概述 1997年的世界编程大赛中,一款由汇编语言编写的程序以其惊人的技术成就获得了冠军。这款程序的特点在于其源代码经过精心设计与优化后,编译后的执行文件体积非常小...

    学习程序设计的感受.doc

    本文作者通过分享自己从小接触编程,直至成为一名程序员的成长经历,揭示了成为一名优秀程序员的关键要素。 首先,数学能力至关重要。计算机科学本质上是数学的一个分支,良好的数学基础能帮助程序员更好地分析问题...

    C语言深度解剖(解开程序员面试笔试的秘密)--------以含金量勇敢挑战国内外同类书籍

    因此,掌握C语言的核心概念和技术对于成为一名优秀的程序员至关重要。 #### 二、C语言基础回顾 在深入探讨高级主题之前,首先需要回顾C语言的基础知识,包括但不限于数据类型、变量声明、流程控制等基本概念。这些...

    C语言高级实用编程技巧

    在深入探讨"C语言高级实用编程技巧"这一主题之前,我们首先要理解C语言的基本特性。C语言是一种强大的、低级别的...记住,实践是最好的老师,不断地编码、调试和优化你的程序,是成长为一名优秀C语言程序员的必经之路。

    机器码编程世界编程大赛第一名用

    在这个案例中,“机器码编程世界编程大赛第一名”所展示的成就,无疑是编程技艺的巅峰体现。 首先,我们要认识到14KB的代码能实现声音、动画一体的效果是极其罕见的。通常,声音和动画的处理涉及到大量的数据处理和...

    图林与人工智能的资源

    这些早期的探索为他日后在科学领域取得的成就埋下了伏笔。 #### 二、图林机的概念及其意义 - **概念介绍**:图林机是一种假设的计算机模型,由一个无限长的纸带、读写头以及简单的指令集组成。它可以模拟任何算法...

    高级 729 阶 5 次雪花幻方

    "高级 729 阶 5 次雪花幻方"是一个极具创新性的数学成就,它融合了数字排列与计算机算法的智慧。在这个特殊的案例中,"729 阶"指的是幻方的规模,意味着幻方由729个格子组成,每个格子填充1到729之间的不重复整数。...

Global site tag (gtag.js) - Google Analytics