阅读更多

4顶
4踩

编程语言

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



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

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

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

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


  2.工作之余也经常编程

  我抱怨过把开源作为招贤的一项要求,但那仅仅因为许多充满激情的程序员把时间花在别的地方。除了对开源有所贡献,你还可以做兼职顾问,兼职创业,开发自己的产品或者创办自己的微型软件公司。当然,你也可以尝试从外部接些兼职项目,可参考伯乐在线的这篇《成功接项目需要注意的几个要点》。

  注:mISV即MicroISV,是一个只有一名员工组成的软件公司,是一种微型公司。

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

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


  4.不断创新

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


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

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


  编者后话

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

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

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



  本文出处:伯乐在线 - 职场博客
  本文链接:http://www.jobbole.com/entry.php/295

  Via:Code Anthem  编译:伯乐在线 敏捷翻译组 - 朱勇


  如需转载,请注明原文来源和链接,否则视为侵权,谢谢合作!

来自: www.jobbole.com
4
4
评论 共 4 条 请登录后发表评论
4 楼 汗青boy 2011-06-20 21:29
高级程序员应该是一种态度的缩影
3 楼 damoqiongqiu 2010-11-02 18:56
zozoh 写道
因为他们在下一盘"很大的棋"

素滴
2 楼 zozoh 2010-10-30 12:16
因为他们在下一盘"很大的棋"
1 楼 江南白衣 2010-10-28 23:00
越来越多不是新闻的"新闻"了....

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • C#的Timer

    在C#里现在有3个Timer类: System.Windows.Forms.Timer System.Threading.Timer System.Timers.Timer 这三个Timer我想大家对System.Windows.Forms.Timer已经很熟悉了,唯一我要说的就是这个Timer在激发Timer.Tick事件的时候,事件的处理函数是在程序主线程上执行的,所...

  • 在C#中实现高性能计时

    For performance test, it is very important to measure code execution time. Without measurement, there is no way to tell if we meet performance goal. System.Environment.TickCount is not suitable for

  • C#三种性能分析计时器介绍

    http://www.csharpwin.com/csharpspace/10719r7422.shtml 第一种方法:使用Stopwatch class Program { static void Main(string[] args) { Stopwatch sw = new Stopwatch();

  • C#里多媒体定时器功能实现及性能测试结果

    Windows系统的调度时间片是15ms,且不稳定,这为精确、快速的任务带来很多痛苦。在没有硬件中断源的情况下,多媒体定时器还真是一个不错的选择,我找到了一个C#下可以用的多媒体定时器的库(下载地址在文末),进行了1ms周期的测试,并用c#的timer控件进行了对比测试,差别非常大(详见对比数据)。

  • C#编程技巧-高性能、避免异常、代码简洁-(长期更新)

    字符串 连接字符串 “+”和Append的区别 “+”和Append的功能都一样(连接字符串),两者之间的区别在于执行效率上面的问题。Append构建字符串的效率比使用“+”连接的高,如果有较多的字符串需要拼接建议使用Append进行拼接,少的话使用“+”更方便阅读。 Append和AppendLine的区别 Append和AppendLine的区别:Append是不加回车的拼接(追加);Appe...

  • 如何用c#开发高性能的软件

    这个涉及到两个方面:用C#开发高性能的软件这个问题纵向比较的话,其实C#并不占优势,它毕竟是第五代语言,使用的是类库,大量引用反射,尤其其中间语言的特性(移植性),它本身的性能上来说是有很大的损失的,当然你可以理解C#是拿性能换取了代码的可读性、易用性及移植性等特点。所以对比C/CPP来说,C#本身是没有任何性能上的优势的,所以如果说起语言性能,只拿来比较PHP/JAVA而已,并不能真正地做到性能上的很大优势。这也是驱动/单片/显卡/实时系统等各方面的应用薄弱。这也是C#的定位在于应用软件行业,而不是驱动/

  • Thread.Sleep和Timer性能比较

    Thread.sleep,问天下谁于争峰。   空间: Typework setvirtual bytespage file bytesThread CountHandle Timer 8.990.720 114.978.816 11.444.224 4 115 Thread.Sleep 6.590464 104.296.448 7.14...

  • timer和quartz框架的对比

    来源及许可 Timer 属于JDK自带API,可以直接调用,无需额外授权。 Quartz 是OpenSymphony开源组织的开源项目,需要作为maven依赖项进行导入,使用 Apache 2 License进行授权 主要结构 Timer Timer实现定时任务调度需要Timer和TimerTask两个组件,使用时,继承TimerTask抽象类,实现run方法,由Timer进行调度,实现单次执行或以固定间隔执行。 Quartz Quartz由三个主要组件组成:调度器Scheduler,触发器T

  • C#三种定时器Timer详解

    Timer控件只有绑定了Tick事件和设置Enabled=True后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。而第二种和第三种计时器执行的方法都是新开一个线程,所以执行效率比第一种计时器要好,而第三种互操作性差,且容易出错,所以我们在应用定时器时,一般都会选择第二种。自动重置,默认为值true,true表示每次间隔结束后都会引发一次Elapsed事件,false表示仅在首次时间间隔后引发一次Elapsed事件。

  • C# 超简单的创建高并发、高性能TCP服务器,可用于上位机、PLC、游戏服务器等

    说起TCP大家肯定都不陌生,传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。 TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。那么对于C#又应该

  • C#高精度计时

    简介精确的时间计量方法在某些应用程序中是非常重要的。常用的 Windows API 方法 GetTickCount() 返回系统启动后经过的毫秒数。另一方面,GetTickCount() 函数仅有 1ms 的分辨精度,很不精确。故而,我们要另外寻找一种方法来精确测量时间。Win32 API 使用 QueryPerformanceCounter() 和 QueryPerformanceFrequen

  • c# 高性能服务器端开发,c# 高性能 iocp服务端 示例源码

    【实例简介】【实例截图】【核心代码】using System;using System.Collections;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using Sy...

  • C#使用timer总结

    1、初始化 System.Timers.Timer timer = new System.Timers.Timer(5000); 2、启动 private void Form1_Load(object sender, EventArgs e) { timer.Elapsed += timer_Elapsed;

  • c#中如何获取系统时间,精确到秒:速度最快的方法

    c#中如何获取系统时间,精确到秒:我所知的速度最快的方法 /// <summary> /// 获取精确到秒的时间 /// </summary> /// <returns></returns> public static System.DateTime GetSecondTime() { DateTime now = System.DateT...

  • 关于C#timer 时间精确度的问题

    要精确到毫秒,可以用StopWatch类,或者用GetTickCount API 前者msdn自己查,后者参考http://www.cnblogs.com/jxsoft/archive/2011/10/17/2215366.html windows系统定时器精度默认是15.625ms,所以一般的办法不行。想要到10ms或者更高的精度需要通过api调整系统定时器到1ms精度,然后使用Socket.P...

Global site tag (gtag.js) - Google Analytics