Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

是什么成就了一名高级程序员 #9

Open
lietoumai opened this issue Sep 18, 2017 · 0 comments
Open

是什么成就了一名高级程序员 #9

lietoumai opened this issue Sep 18, 2017 · 0 comments

Comments

@lietoumai
Copy link
Owner

除多年编程经验之外,还有什么能区分一个程序员是“老手”还是“新手”?编程技巧当然是一部分,但它绝非是全部。

聪明的程序员可能比他们的同行拥有更出众的编程技巧,但那不足以说明他们就是“老手”。同样,仅仅因为拥有10年编程经验也并不意味着他们就是高手。在工作岗位上,拥有多年编程经验也不能说明问题。即便没被炒鱿鱼,那也不能提升你的价值。

下面列举的事情是大多数高级程序员都会做的。

1.不止掌握一门编程语言

我相信有些优秀的程序员只懂(并精通)一门编程语言,但在某种程度上而言,这其实会限制一个人的思维。就像当你手拿一把锤子时,任何东西看起来都像钉子。我认为,知道并成功使用至少一门编程语言,这是程序员从新手走向老手的重要一步。我要说的是,像JavaScript和SQL这样的辅助编程语言,只有当你确实已经开发了完整的应用程序,并在其中使用这些编程语言时,它们才有价值。

2.工作之余也经常编程

我抱怨过把开源作为招贤的一项要求,但那仅仅因为许多充满激情的程序员把时间花在别的地方。除了对开源有所贡献,你还可以做兼职顾问,兼职创业,开发自己的产品或者创办自己的微型软件公司。

3.经历完整的软件开发过程,从概念设计到产品实现,再到产品维护

有的程序员希望不用自己动手就可以得到详细的设计说明,然后把缺陷代码交给测试/维护小组,这是平庸程序员的一个缩影。任何称职的程序员都会跟客户密切合作,去制定需求分析,然后编码实现,当然也要维护。如果你在编码实现阶段偷懒了,那你在维护阶段不得不付出代价。

4.不断创新

创新就是做一些你身边的人没有做过的事情,用来改善你的过程或产品。你不一定非得是世界上第一个做这件事的人,只要发现一个问题,找到解决方法然后实现它就行。

5.编写的软件能解决实际问题

有一副虚构的场景:一名黑客,仅仅是出于对技术以及自己所做事情的爱,一天到晚都在编写代码。但这几乎无助于成就一名优秀的开发者。事实上,我曾见过有些开发人员和客户争论,来采用更好但不太有助客户的技术。这会适得其反。你可以利用自己的时间来完善。但涉及工作时,你最好还是编写能实际改进并解决问题的代码,而不是使用那些不同寻常的算法或接口。

编者后话

这些问题对于任何想成为高级开发人员的朋友来说,都合情合理。因为这些问题和拥有多少年编程经验并没有关联。如果你能做到上面4-5条,那你就是高级程序员。如果只有1-2条,那你还需要加油努力。

当然,在面试中,设置一个简单的“是或不是”问题,通常是一个衡量自己的小练习。更重要的问题会是“你能给我们举例介绍一下吗?

你的高级程序员测试得分是多少?你怎么看待这些问题呢?对高级程序员来说,其中是否多余的吗?或者你认为还有其他条件可以判断他人为高级程序员?

值得思考。

原文出处:http://www.codeanthem.com/blog/2010/07/what-makes-a-programmer-senior/”

@lietoumai lietoumai changed the title 是什么成就了一名高级程序员? 是什么成就了一名高级程序员 Sep 18, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant