热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从我的知乎笔试题目和答案中可以看出我不足在哪里?

能通过知乎实习生的简历刷选,我想我还是很荣幸的。2012321号晚上8点左右,知乎hr给我发了面试题。之后我花了4天时间做了这些这些题。昨天(2012325)晚上11点10分左右,我修补完bug就发过去了。今天(2012326)早上10点左右,我又发了一次,增加了些说明。一个小时后,hr回复说我没通过:“由于你的代码思路不够清晰,且是windows编程习惯,与知乎目前的技术架构不符,
能通过知乎实习生的简历刷选,我想我还是很荣幸的。2012/3/21号晚上8点左右,知乎hr给我发了面试题。之后我花了4天时间做了这些这些题。昨天(2012/3/25)晚上11点10分左右,我修补完bug就发过去了。今天(2012/3/26)早上10点左右,我又发了一次,增加 了些说明。一个小时后,hr回复说我没通过:“由于你的代码思路不够清晰,且是windows编程习惯,与知乎目前的技术架构不符,故你未能通过此次笔试”
下面是我写的代码:
第一题:blog.ideapp.us/?
第二题:blog.ideapp.us/?
我想知道我差在哪里?知乎实习生的要求是什么?python我是基本新学的,4天里每天起早摸黑写代码,一个小时就给我回复,我还是很失落的。
-----------------------------------------------
我还有机会,谢谢大家的鼓励
-----------------------------------------------
我断断续续花了一个星期重写了一遍
第一题: blog.ideapp.us/?
第二题:blog.ideapp.us/?

回复内容:

我觉得误区在“差”这种想法。

面试不是高考,没最终牵手不一定自己就差了,就当参加一次非诚勿扰了吧。 其实我觉得对于实习生来说,编码,windows风格之类的其实都不是很重要的事情。这些东西每个公司的规范都不同,这些东西应该是在公司第一周学会的,而不是在大学四年学会的。而且一周之内就能完全熟悉的玩意儿,根本没必要拿来当作用人标准。
其它的我没太细看,至于对于题目的理解和对面向对象的理解是差了点,但其实问题不大,是可过可不过的情况。杀掉你的人明显偏严格了一点,这东西原因可能有很多原因,可能牛逼的候选人很多,也可能面试官很看中的地方正好是你的缺点,也有可能是你的优点导致的……等等,总之面试就是很主观的选择,没什么大不了的。很多牛人在一个地方被相当看好,在另一个地方却被批得很惨,这都是很正常的,面挂了没缘分而已,并不代表神马,继续努力就是了。 虽然已经单独回过你的邮件,这里再补充一下。
你的代码我昨天都已看过了,答复也是昨天作出的。和hr转述的略有不同,我说的是代码不pythonic,不够清晰,windows编程习惯。

你的代码文档一部分是gbk编码,一部分是utf8编码,一打开都是乱码,不得不手动转码,我读的痛苦你可能理会不到。对初学者我不要求你有多熟悉,但期望看到良好的风格.old style class,大量的staticmethod,邮件脚本的gb2312编码都不是好的习惯。

单从答题情况来说,也不算完全完成要求。第一题,因为都是使用windows路径的关系,linux环境下无法发送附件,这里面sohu邮箱的发送还是不成功的。 第二题,服务端和客户端混在一起的代码,根本无法在任何生产环境使用,不说代码隔离,也至少通过配置或参数分开吧,我还得手动改掉了才能运行,也与题目要求不符。

btw,我认为你的动手能力还是不错的,但是这毕竟不是竞赛,速度什么的不重要,我们更看重好的代码风格及编程习惯,这在一个团体中尤其重要。

update 2013-1-11: 现在回头来看,当时因为没有专门招实习生职位,所以都是卡的正式员工标准。在开始招实习生这近一年收到的诸多笔试中,提问者如果在其中还是比较有优势的,当然有更好的但作为一个从java转python的初学者已经很难得。时机不一样,招的标准也不同, 只能说遗憾了。 1. 除了前端页面以外,代码文件里最好不要出现中文,包括注释,中文非常容易引起诡异问题;
2. 你的代码里过度使用面向对象/类了,Java 痕迹过重,你的很多类完全是通过 @staticmethod 把几个方法集合到一起,导致代码结构很不清晰;
3. 确实是 Windows 编程习惯,把编程作为下一步的发展方向的话,建议早日转向 Linux/Mac 。

我不是知乎员工,以上只是个人看法和建议,仅供参考。 大概看了一下你第一题的代码,有几点愚见,仅供参考。
  1. 过度面向对象。sender、address都可以用字符串搞定,attachments做成文件名字符串的list,没必要全都做成类。
  2. 过度封装。Utils.isFileExist()没必要存在,可以直接os.path.isfile();Utils.regex()也没必要,re.match()搞定。
  3. 过度设计。本来不复杂的事儿有点被搞的太复杂了,在Python里很多事儿都可以用函数搞定,不需要这么多类。400多行代码有点恐怖……如楼上所说,不够Pythonic。
  4. 单元测试。建议看一下unitest模块。
  5. 编码问题。如@杨昆 @吴畅 所说。
看得出lz代码经验比较丰富,只是Python刚入门,还需要时间学习。继续加油吧! 不知道题目是不是指定要python。

不断的强调自己是现学是没意义的,作为面试官,没有能力和必要去考证这一点。

既然指出的问题主要是风格,而你又是现学现卖的语言,那也就是说没有否定你的能力,只是现阶段不适合而已,不必过分纠结。 我用我的人品保证,@杨昆(面试官)不是一个不尊重实习生/面试者的人,相反他是一个待人和善的人,甚至是对生物和善,他是我认识的第一个素食主义者。
我觉得楼主面试失败没有什么问题,面试官是一个hardcore pythoner,注重代码的清晰,单元测试和完整性。然而,他关注点正是楼主的弱项,因此lz被拒我觉得是理所当然的。因为面试不是100分的考试,而更像是恋爱,看面试者和面试官/公司是否match,不是说你算法强项目经验多就一定会要你。

不过我能理解你和楼主的心情,楼主的代码和博客我看了,确实很强,比我见过的大部分学生,我的学生时期都要强。

但我仍然要说,就像大叔控的萝莉对正太说 “你真的很萌,但是对不起,我控的是大叔”

Ps:我们也会从这次面试中吸取经验教训,努力更全面地考察面试者的综合能力,谢谢 别太认真,主要是气质不符合。有很多面试官会认为你不符合他们的团队气质。我不大懂python。但是稍微看了一下。他们所谓的gd2312我个人认为是还是一个比较崩溃的拒绝借口。混用的确不太好。如果应试者能够在提醒之后认识到这点。那么还是非常好的程序员。还有,你晒题目需要征求过面试官同意。windows的确不是一个大问题,一个路径是小问题,但是必须认识到你的程序在linux无法运行。可能有人认为比较致命就是不用linux的程序员不是好程序。如果你能够在windows下编写程序在linux无需调试运行也是非常好的。mozilla公司是相当牛逼,他们也有程序员在windows下编写程序。如果面试官当时有要求说你的程序将部署在linux环境。那么你就必须要考虑linux环境。个人还是坚持认为拒绝你的理由有部分是扯淡。继续坚持,编程不止。 一看你的代码就属于没怎么在Linux编过程的。 大概你期望的是知乎的人给予回答,我不是,抱歉让你失望了。

个人觉得你写注释的风格还是蛮好的,有点过分模块化(个人感觉)。
另外,第一题中,“接受参数输入”这一点你似乎没有达到啊,你好像只实现了一个命令行的邮件发送,而没有简单的“接受参数输入”的接口,就比如说,我现在有:
发件人: ‘sender@mail.com’
密码: ‘password’
收件人:' receiver1@mail.com; receiver2@mail.com;receiver3@mail.com;'
附件:‘file1;file2;file3;’
我该怎么发出去呢?虽然仔细看你的程序是可以搞定的,但是相当于自己写接口了。虽然接口比较容易,但是我作为面试官肯定是不会花时间去琢磨的。
推荐阅读
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • Python字典推导式及循环列表生成字典方法
    本文介绍了Python中使用字典推导式和循环列表生成字典的方法,包括通过循环列表生成相应的字典,并给出了执行结果。详细讲解了代码实现过程。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • 本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
author-avatar
核能裸麦_536
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有