程序员面试被要求手写代码,手写代码真的行的通吗?

1

我有个程序员朋友,在深圳工作。他曾经帮公司面试过一些工程师,也要求现场手写代码。有一次,在一个招聘会上,公司有个职位是嵌入式软件工程师,有一些看着还不错的应届生投了简历,为了做一轮刷选,我那朋友就让他们现场写一段代码,实现流水灯功能。

如果是做过单片机相关的开发和调试,一定会写得出来,因为这是单片机入门的第一个基础实验。而我那朋友,考查的并不是他们书写的语法或格式,而是他们解决问题的思路,只要代码中体现了左移或者右移的算法,就可以通过。

结果有些出乎意料,只有少数几个应届生写得出来,所以就只允许他们进一步去公司面试。

你看,用不着大张旗鼓的给面试题,只需要手写个简单的代码,就刷下了一部分人。

所以,你的问题中,程序员面试被要求手写代码,真的行的通吗?

2

谢请!

程序员在面试过程中被要求通过手写代码来完成一个逻辑的实现是比较常见的做法,不同级别的程序员会面临不同的要求,比如研发级程序员通常要面临算法的设计和实现过程,而应用级程序员则需要面临功能模块的实现。为了减轻面试者的面试压力,在手写代码的过程中是可以写“伪代码”的,尤其是关于算法设计和实现的过程,主要考察的是面试者的设计能力和设计思路。

通常来说,在面试程序员的过程中,有两种情况可能会面临手写代码的考察,一种是面试初级程序员开发岗位,另一种是面试研发级程序员岗位。面试其他岗位的程序员,通常会把关注的重点放在项目经验和知识结构上,考察手写代码的情况并不常见,意义也并不大。

面试初级程序员时,通过手写代码的考察,能够直观的呈现出面试者对于编程语言的熟练程度,同时也能通过代码结构考察面试者对于代码的管理能力和是否有一个良好的编程习惯。通常情况下,面试中对于初级程序员的手写代码要求并不会很复杂,通常只是完成一个小功能的实现,比如根据已知数据结构完成业务逻辑数据的管理等等。

面试研发级程序员时,通过手写代码能够考察出程序员是否掌握专业的设计能力,最常见的就是通过算法的设计和实现来解决某个具体的问题,比如最常见的分类问题等。比如面试大数据分析方向的研发级程序员时,通常会给出基于机器学习方面的题目。比较常见的做法是给出一个数据分析场景,然后面试者完成算法的设计(选择)和实现过程,从而考察面试者的研发能力。

3

谢请,

在软件行业混了十几年,参加过很多技术面试,作为面试官也面试了很多面试者,正常的来讲技术类的面试主要分为三种,笔试,面试,上机写代码。现在就这几种面试的方式根据从业的经验做一些总结。

笔试

笔试主要针对应届生,当然一些规模大的企业面试的流程比较繁琐,一般第一关都是先让做笔试,笔试的题目一般比较简单,大部分针对刚毕业的学生看看基本的理论能够了解多少,这种笔试的模式倒是难倒了很多人,很多程序员因为做一个专业方向做的时间比较长了,很多相关的编程知识已经忘记的差不多了,所以见到这种笔试直接放弃,也不能这部分人不能从事软件开发,起码不能作为优秀程序员的标准对待,所以在平时编程过程中要注重基本功的复习,毕竟基础理论知识是一个程序员的必备基本功。

曾经参加过一个面试,有一个一块去的老程序员,看到还有笔试直接放弃,选择直接走人了,然后面试接待人员问为啥不去答题,这位直接到,年龄大了对这些基础已经忘的差不多了,所以选择不做了,说完就离开了面试公司。在现实中很多程序员离开百度就不会自己写代码了,大部分的时间从网上搜上一段代码修改成自己能用的代码模块,离开了网络很多人就不会写代码了。

面试

很多软件公司基本上直接不用笔试,很多人觉得直接聊上几句话就能识别出一个人能力,答案是肯定的,面试主要从两个聊入手,一个编程基础细节,一个是项目经验细节,因为编程细节太多,所以基本上几个细节下来一个人的水平能力如何就能非常清晰的识别出来,所以有些公司干脆笔试都不用了,起码一半的公司直接通过面试就能搞定。

4

这个问题之前,我先讲讲自己学习编程的经历:

  • 02年刚上大学,那时候因为家庭条件的原因无法拥有一台电脑,所以上大学之后才有机会学习和使用电脑;那时候还叫“微机房”,我们计算机专业有专门的“上机课”。

  • 大一的时候就有C语言课程,刚接触编程的我对其很感兴趣,每天下课去机房敲代码?别闹了,那时候上机一小时好几块钱呢,而且机房的机器简直是“一机难求”(很多同学打游戏和上网),所以那时候我都是先在本子上把代码写下来,等有机会上机的时候,再一个字母一个字母地敲到电脑里面,运行调试。

  • 等成功了之后,把代码保存到软盘上(那时候一张软盘五块钱,可以存1.44M的东西)。

说到面试的时候手写代码,我认为是行得通的;我们现在面试的时候,也是要求手写代码的;但是手写代码到什么程度,我觉得这个是可以商榷的。

5

面试中要求手写代码是完全行得通的,尤其是对那些没有任何工作经验,无法用实际项目证明自己编程能力的人群,采取看代码能力行不行,直接拉出来溜溜。

比如,应届毕业生,非常有必要在面试中设置笔试,考察编码能力,手写或者上机都可以,不同测试环境,灵活选择。

以往,在招聘软件开发毕业生的时候,会安排专业笔试,包括考察代码,目的有两个。其一过滤掉明显不行的,态度和能力都有;其二展现出严谨的考核流程,对程序员不进行编码是非常不严谨的,判断会太主观和武断,不够科学。

近年来,去校园做招聘软件开发的毕业生,很多大厂不做笔试,同学们是非常质疑,觉得不够重视技术。没有怎么面试,就直接录用的,毕业生也不敢去,担心太随意了,含金量不高。

6

手写代码的时候,数据库sql语句我一般都要先写from后面的东西,写完再写前面的select列名。

因为子表sql写完了,才能知道其中列名,才能写select

7

如果面试官,我希望通过多种手段包括考试来考核,但是如果我是面试者,手写代码就意味着我不会来这家公司,就算我写了,也只是对应聘的尊重而已。

手写代码是验证代码硬实力的手段之一,但是也体现了公司的文化是很封闭的。而我工作的时候是需要网络的,需要工具的,需要调试的,我还需要一个开放的工作环境。你可以说大牛只需要记事本,但是现在用牛耕地的真的不多,再厉害的老牛也比不上机械化的效率,没必要为了体现自己力气大而放弃效率,编程还有很多方面需要做,需求分析、项目整体规划、架构设计等等。

总的来说,我认为面试涉及代码一块的部分可以用“伪代码”说一说就好,能讲好思路和技术点就可以了。

8

各位好,我是小码农薛尧。

一般企业面试的话,手写代码一般不会写业务逻辑,一般的都会是写一些算法,一些算法他是考虑你个人技术基础是否扎实,所以这个我觉得很合理,但是他如果写的是业务中的某一个功能,我觉得那个是为难你,这个我觉得不提倡。

一般有些人面试的话是问一些手写的代码,基本上它是以算法为基础,基本上问一些排序排序的实现,某个排序冒泡呀,还是快速排序之类的。或者写一些设计模式,按照自己的想法写一些设计模式,这样我觉得是考察一个基本程序员的基础是否扎实,是否了解一些编程基础。

这是自己的个人理解,但是现实中遇到手写代码的次数还是很多的,但是没有具体的业务逻辑,是某一种算法,或者是设计模式。

9

现场手写应届毕业生肯定很多写不出来了:第一、现场环境及调试环境都可能不适合第二、应届毕业生学习的理论和实践结合的很少,除非在校的时候有老师带着做了些项目第三、大学出来其实大部分都需要后期打磨的,就是有人带或者不断的处理BUG,不断的解决问题才得到提升。试问面试官,贵司现存的程序员,如果回到刚毕业那会,又有几人能写出来。

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章