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

崔亚玲


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

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

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

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

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

  • 手写出来的代码必须很精确,精确到输入到电脑里面,不需要调试就可以正确运行?我觉得完全没有这个必要。

  • 能大概把功能实现,写出解决问题的思路,我觉得就可以了;要是能写出来整个程序分几个方法,讲清楚每个方法的功能,如何调用组合就更好了;如果能用恰到好处的用到一些设计模式,那更棒棒哒。

  • 有时候,只要是有方案和思路,就算是写伪代码也是没有问题的。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。


会点代码的大叔


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

笔试

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

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

面试

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

很多刚入行的程序员会背诵一些常见的面试理论和面试题目,这种应付笔试还是有点用,但在面试天马行空的问题中,这种准备几乎就是徒劳的。偶然碰上几个问题,但大部分来讲需要有真材实料。

手写代码也是面试中发生的,有的时候问到一个问题的时候,为了表达更加准确,直接用代码在纸上写出来,这种情况在面试中也是很常见的事情。

上机写代码

谷歌招聘技术人员都会直接采用这种模式,这种方式直接就能看出代码的直接编写能力,可以非常直观的看到代码质量以及编写代码的一些习惯,这种方式在国内很多技术公司也在采用,主要这种方式在实际操作过程中,相比前两种操作难度更大一些。虽然只看代码能力有点偏,但可以结合面试这样就能从总体上考察出一个人的综合能力,能够获取更加客观的评价。

在行业内也发生这种事情,发现公司有上机写代码的测试,直接选择放弃,这也是一类的程序员的典型,代码都不是发自内心的写的,大多都是从网上直接摘录修改的,真要直接在电脑上敲代码什么思路也没有,典型的基本功不过硬的表现。

作为一个面试人员,只要去面试就要遵守面试公司的规则,即使真的写不出来,也没有必要当面拒绝,发现自己的缺点后续努力去修补,坦然面对自己的不足,不是什么丢人的事情。

希望能帮到你。


大学生编程指南


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

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

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

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

对于程序员来说,通过手写代码的过程能比较直观的呈现出自己的动手能力和对编程语言及算法的熟练程度,是一个全面呈现个人能力的好机会。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网方面的问题,也可以咨询我,谢谢!


IT人刘俊明


手写代码,我个人是不推荐的。我们小公司也有一套笔试题,是从一个大公司拿来的,因为题出的实在太烂,我又没时间出题,所以基本上不会看答题的情况。

但是我会问一下其中几个加密算法分类的选择题,刚好那个题问题在一页,选项在另一页。直接问原题,纸上的答案正确,又不能现场答对的,我会按流程面试完,然后直接淘汰。

笔试题可以出,但是尽量不要出一些自己都看不懂的,我司的笔试题就是这样。编程题也应该以伪代码为主。

增加笔试的环节,目前看来是很有必要的,现在很多的培训机构会包装一些没有从业经验的人出来,简历、面试题都会有准备。一般技术面试官水平通常比较高,而且时间也比较宝贵,用来应付这些人,是很大的一种浪费。


冰玉210659147


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

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


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

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


小码农薛尧


如果能手写代码,要编译器干什么,干脆大家写代码的时候直接在纸上写。这样的企业不去也罢。同事面试的时候,也需要根据面试者的经验和能力进行分别对待,不要不管什么人都是一样的题,一样的问题,很有损公司在面试者的地位。

个人觉得,优秀的人完全可以从几个问题摸清楚这个人的能力。这没必要弄一些没有技术含量的,写一个单例模式,写一个排序。一个人的能力不在于这点,要看他分析问题的思路。个人觉得,思路决定一个人的编程能力。

有的人来说,是主要考察个人的算法。算法在大项目确实很重要,但是一定要根据自己的实际需求或者企业需求着重对待。别你开发一个茅草屋的项目,你却拿着人家面试大数据级别p8级别的题考人家。

总之一句话,我们时刻提升自己的能力尤其是我们做互联网这个行业的,遇到不适合,不合适的我们找自己合适的就行了,不喜欢手写代码就直接走人就行,既然你想手写代码,那就代表你此刻还是需要这份工作的。

根据实际情况出发。


程序书写人生


我也碰到过,但我个人觉得这种方式不好。手写? 大括号就把你写懵逼,而且通常不能一次写好,怎么改啊? 所以我认为,纸上写实现思路还差不多。


柳柏生活日记


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

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

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


Amber833


手写代码在面试中要求很正常,能够检查程序员的hands-on能力,在工作中并不是要求大家手写,在平时大家多认真review自己的代码,基本就能够符合面试要求。

面试也可以写伪代码。写伪代码的习惯也是很重要的,面试这么要求大家肯定是有用意的,大家认真对待,不会了也没关系,不要恼羞成怒进行抵触。


IT编程分享


经历过手写,面试官并不会把你的手写代码实际的拿到机器上去编译运行,然后是否报错,但都会看一下,然后问你解决思路,为什么你这么写,就够了


分享到:


相關文章: