【程式设计师】拣好Programmer切忌只靠CV 比CV更重要的六大要点

撰文: 撑场来稿
出版:更新:

【文章原刊于01撑场,欢迎下载香港01 app,与星级作者一同讨论喜爱话题。】

撰文:Tecky Academy

有一个大部分雇主都面对的难题,在芸芸履历之中,如何万中挑一,找到好Programmer呢?聘请程式设计师很难,不像其他行业,打开履历就一目了然。有时履历上满满证书的,其实连FizzBuzz也写不了;有时看起来像个Fresh Graduate的,却又有无限潜力。 如果你是一个要聘请程式设计师的雇主,你应该如何是好呢?

比起CV,性格和潜力对于程式设计师更为重要(gettyimage/视觉中国)

《好程式设计师的特质》

要理解此困境,首先要解答一个更困难的问题:就是好程式设计师有何特质?以笔者个人聘请经验,加上与其他同行交流所得,归结出以下六点,有些是性格特质,有些是行为表现,现列举如下:

1.思维清晰有条理

程式设计是一个将想法化为代码的过程,要不想一忘二,一个好的程式设计师必然思维慎密,思维有清晰条理。优秀程式设计师可以理解复杂问题,并得出合乎逻辑的结论。思维清晰一事上,不限于程式设计,好程式设计师在其他事情,也擅于运用同样的逻辑思维去解决问题。所以,如果你有一个面试者在程式设计上看来不错,但是生活上其他方面好像迷迷糊糊一样,就要小心一点。也许他真是一个还好的程式设计师,但不会是优秀的一员。

分辨此项特质的面试问题:可以解释一下井字过三关规则是怎样吗?一个HTTP请求由浏览器到伺服器中间过程是怎样的?

观察点:是否能够清晰解说每一条规则、每一个步骤。

好的程式设计师需要思维清晰有条理(gettyimage/视觉中国)

2.有强烈好奇心

科技日新月异,资讯科技变化的速度更快得惊人,优秀程式设计师通常有着强烈的好奇心,不会抗拒学习新事物。在程式设计这门学问上,每年每月每星期都有新的框架、新的程式库、新的想法诞生。不热爱学习,欠缺好奇心的人,会觉得很难适应。因为刚刚习惯的做法,可能又有其他新的可能性。好程式设计师通常会定时学习新知识,更新自己的理解,亦会希望以新学成的东西应用在新专案之上。不会因为过去一直的做法,而毫无理由的选择因循守旧。

分辨此项特质的面试问题:你有学过(新科技A)吗?你对(新科技A)有何看法? 下一个专案你会运用(新科技A)吗?原因为何?

观察点:有否学习新科技及思考过其优劣之处。

3.性格不固执

普遍程式设计师都对软件工具有自己见解及喜好,但优秀的不会固执于自己喜好的程式语言、框架、程式库。如上一点所言,好程式设计师经常有学习新事物的渴望,如果他看到有合理原因要使用其他工具,不会因为个人喜好,而坚持己见,也就是使用适当工具,解决适当事情(Use the right tools for the right thing)。于他而言,使用其他工具亦是一个学习的过程,不会因此而觉得自尊受损。不固执的性格亦令好程式设计师可以与他人磋商最佳解决方案。

分辨此特质的面试问题:可以解释一下(一种新科技)与(对立的新科技B)有何异同?你会在哪个情况使用各自工具呢?

观察点:有否对科技有强烈的喜好及见解。

对工具不固执,会变通是程式设计师需要的特质(gettyimage/视觉中国)

4.习惯三思而后行

优秀程式设计师由于思维比较慎密的原因,所以行事通常都会三思而后行。而解决问题最痛苦的莫过于花了很多时间,却发现徒劳无功。因此好程式设计师明白Solve the right problem,比Solve the problem right更重要。因而会花一定时间在详细计划之上,待理解整个问题后,才开始着手解决。

分辨此特质的面试问题:请分享一个开发新专案的故事。

观察点:是否习惯做事有计划,及是否会跟随自己制定的计划。

5.热爱编程

这一点大概是最重要的一点,好程式设计师一定会热爱编程。正是由于热爱,才会孜孜不倦改善自己。也正是由于热爱编程,才有足够热情一直进步。热爱编程令程式设计师在工余时间或学习之外,会再花时间学习新科技,这些额外努力正是令好程式设计师更加优秀的原因。如果面试者是一个朝九晚六式程式设计师(9-6 programmers),也就是工作时间以外完全不碰编程,基本上不可能是一个优秀程式设计师。

分辨此特质的面试问题: 你工余时间外有其他专案正进行中吗?最近有学习其他框架/程式库?

观察点: 是否热爱编程本身。

热爱编程是最基本的因素(gettyimage/视觉中国)

6.沟通能力强

有一个常见的误解,就是程式设计师都是不善辞令。然而优秀程式设计师通常是沟通能力很强,因为大部份程式设计是都需要多人合作,只能一个人工作的程式设计师,不论写的代码多好,都不及善于与他人合作的程式设计师。好的程式设计师能够清晰解释事情,并能协助他人解决问题。因为程式设计不只与懂编程的 人沟涌,亦要与许多如专案管理(Project Management)、质素鉴定(Quality Assurance)等部门的同事合作。

分辨此特质的面试问题:请分享一个与非技术的同事合作的故事。

观察点:是否有良好沟通能力。

《如何使用本文所谈的技巧》

以上是一些在优秀程式设计师身上常见的特质,要如何使用本文所谈的技巧,取决于你:

如果你正在聘请程式设计师,又不知如何入手,以上一些技巧应该能够帮助你;

如果你本身是初出茅芦的程式设计师,可以对照自己,看看如何继续努力下去;

如果你想学习编程,但不知自己是否适合,可以看看自己是否适合写程式一行啊!

【编按:文章题目为编辑所拟,原题为“【请人必睇】好Programmer是怎样炼成的?”​】

(文章纯属作者意见,不代表香港01立场。)

立即下载《香港01》,紧贴公务员职位空缺、劳工处笋工推介,了解CV、面试致胜技巧!
下载网址:https://hk01.app.link/bkbJyY5t4O