阅读更多

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
越来越多不是新闻的"新闻"了....

发表评论

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

相关推荐

  • TimerTicker计时器

    需要XP下可能需要安装.net Framework3.5,软件会自动在线下载 功能介绍: 1.全屏模式 PPT模式两种计时模式 2.支持正计时,倒计时 3.可以自定义声音,背景及主题名称 4.可支持自由拖动小窗显示位置 5.支持两次计时提醒 6.时间到后锁定屏幕 PS:README.txt里面的授权注册信息错了。新的用户名,密码均为 usst

  • C#的Timer

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

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

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

  • timer和quartz框架的对比

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

  • C# 定时器的深入解析:从初始化到性能优化的全面分析

    定时器(Timer)是编程中的一种工具,用于在。它允许开发者在设定的时间周期后,自动触发特定事件或函数,从而实现定时任务、周期性操作或延迟执行等功能。C#中的定时器主要包括System.Timers.Timer本文将从初始化,定时器的启停,是否是多线程,UI更新,是否造成堵塞,是否立刻执行等角度分析。特性Timer初始化简单,适合UI应用适用于一般定时任务适合复杂后台任务,需要回调函数启动与停止使用Start()和Stop()使用Start()和Stop()通过。

  • C# 测试代码的性能计时方法

    在上面的示例中,我们在TestMethod方法上添加了[Benchmark]标记,表示该方法需要进行性能测试。然后,在Main方法中使用BenchmarkRunner.Run方法启动性能测试,并获取测试结果的摘要信息。然后执行需要测试的代码。在上面的示例中,我们首先使用DateTime.Now获取开始时间,然后执行需要测试的代码。选择合适的计时方法取决于具体的需求和场景,可以根据实际情况选择最适合的方法来进行性能测试。在C#中,我们可以使用计时方法来测量代码的运行时间,以便优化程序性能。

  • 性能优化-内存泄露常见例子

    之前说了内存泄漏和检测工具,这里就记录一下常见的内存泄露有哪些 前言 在举例子以前,需要明白两个概念 内存泄露(Memory Leak):某些对象已经不再使用,但仍然直接或间接的被引用到GC ROOT中,此时GC没法对其进行回收,就造成了内存泄露 内存溢出(OOM):当应用占用了大于虚拟机分配的内存空间时,会造成内存溢出 静态变量引起的内存泄露 ...

  • C#三种定时器Timer详解

    System.Timers.Timer类:定义一个System.Timers.Timer对象,然后绑定Elapsed事件,通过Start()方法来启动计时,通过Stop()方法或者Enable=false停止计时。Timer控件只有绑定了Tick事件和设置Enabled=True后才会自动计时,停止计时可以用Stop()方法控制,通过Stop()停止之后,如果想重新计时,可以用Start()方法来启动计时器。Intervel:获取两次Elapsed事件的时间间隔,以毫秒为单位,默认值为100毫秒。

  • Timer定时器多线程执行任务的优化

    查阅了相关资料,Timer每隔固定的时间执行一次任务,不管上次任务有没有执行完,当任务消耗的时间大于定时器间隔的时间,任务就会累积并且消耗大量线程资源,因此有必要让线程有序、高效、安全地执行。在某个工控机项目上,需要定时、频繁从设备读到数据然后呈现在UI界面上,程序刚开始运行UI数据正常刷新,久了之后UI数据不变动内存使用也逐渐变大,不得已只能关闭软件重启,用户体验特别不好。以下为调优后的代码,软件修改后再也没有内存飙升、UI数据不刷新的问题,希望能给大家提供参考。

  • 在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();

  • 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...

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

    转自:http://bbs.csdn.net/topics/390952917 我想用精确的时间计算,需要精确到毫秒级别,代码运行后发下有误差。请教高人怎么实现。 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

  • C#超时处理

    在网上搜索了很多C#超时处理的方法,下面一种是我调试过的: /// /// 超时处理 /// /// /// public class TimeoutChecker { long _timeout; //超时时间 System.Action _proc;

  • C# 性能优化

    1、使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多 2、强制垃圾回收3、多dispose,close4、用timer,每几秒钟调用:SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);具体见附录。5、发布的时候选择Release6、注意代码编写时少产生垃圾,比如String ...

  • C# 时间性能测试代码

    System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); //开始监视代码运行时间 //需要测试的代码 watch.Stop(); //停止监视 TimeSpa...

  • C#高精度计时

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

Global site tag (gtag.js) - Google Analytics