目錄
回复内容:
首頁 後端開發 Python教學 从我的知乎笔试题目和答案中可以看出我不足在哪里?

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

Jun 06, 2016 pm 04:22 PM
http US

能通过知乎实习生的简历刷选,我想我还是很荣幸的。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;’
我该怎么发出去呢?虽然仔细看你的程序是可以搞定的,但是相当于自己写接口了。虽然接口比较容易,但是我作为面试官肯定是不会花时间去琢磨的。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
http狀態碼520是什麼意思 http狀態碼520是什麼意思 Oct 13, 2023 pm 03:11 PM

http狀態碼520是指伺服器在處理請求時遇到了一個未知的錯誤,無法提供更具體的資訊。用於表示伺服器在處理請求時發生了一個未知的錯誤,可能是由於伺服器配置問題、網路問題或其他未知原因導致的。通常是由伺服器配置問題、網路問題、伺服器過載或程式碼錯誤等原因導致的。如果遇到狀態碼520錯誤,最好聯絡網站管理員或技術支援團隊以取得更多的資訊和協助。

http狀態碼403是什麼 http狀態碼403是什麼 Oct 07, 2023 pm 02:04 PM

http狀態碼403是伺服器拒絕了客戶端的請求的意思。解決http狀態碼403的方法是:1、檢查身份驗證憑證,如果伺服器要求身份驗證,確保提供正確的憑證;2、檢查IP位址限制,如果伺服器對IP位址進行了限制,確保客戶端的IP位址被列入白名單或未列入黑名單;3、檢查文件權限設置,如果403狀態碼與文件或目錄的權限設置有關,確保客戶端具有足夠的權限訪問這些文件或目錄等等。

瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 瞭解網頁重定向的常見應用場景並了解HTTP301狀態碼 Feb 18, 2024 pm 08:41 PM

掌握HTTP301狀態碼的意思:網頁重定向的常見應用場景隨著網路的快速發展,人們對網頁互動的要求也越來越高。在網頁設計領域,網頁重定向是一種常見且重要的技術,透過HTTP301狀態碼來實現。本文將探討HTTP301狀態碼的意義以及在網頁重新導向中的常見應用場景。 HTTP301狀態碼是指永久重新導向(PermanentRedirect)。當伺服器接收到客戶端發

HTTP 200 OK:了解成功回應的意義與用途 HTTP 200 OK:了解成功回應的意義與用途 Dec 26, 2023 am 10:25 AM

HTTP狀態碼200:探索成功回應的意義與用途HTTP狀態碼是用來表示伺服器回應狀態的數字代碼。其中,狀態碼200表示請求已成功被伺服器處理。本文將探討HTTP狀態碼200的具體意義與用途。首先,讓我們來了解HTTP狀態碼的分類。狀態碼分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的回應。而200是2xx中最常見的狀態碼

如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 如何使用Nginx Proxy Manager實現HTTP到HTTPS的自動跳轉 Sep 26, 2023 am 11:19 AM

如何使用NginxProxyManager實現HTTP到HTTPS的自動跳轉隨著互聯網的發展,越來越多的網站開始採用HTTPS協議來加密傳輸數據,以提高數據的安全性和用戶的隱私保護。由於HTTPS協定需要SSL憑證的支持,因此在部署HTTPS協定時需要有一定的技術支援。 Nginx是一款強大且常用的HTTP伺服器和反向代理伺服器,而NginxProxy

快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 快速應用:PHP 非同步 HTTP 下載多個檔案的實用開發案例分析 Sep 12, 2023 pm 01:15 PM

快速應用:PHP非同步HTTP下載多個檔案的實用開發案例分析隨著互聯網的發展,檔案下載功能已成為許多網站和應用程式的基本需求之一。而對於需要同時下載多個檔案的場景,傳統的同步下載方式往往效率低且耗費時間。為此,使用PHP非同步HTTP下載多個檔案成為了越來越常見的解決方案。本文將透過一個實際的開發案例,詳細分析如何使用PHP非同步HTTP

http請求415錯誤解決方法 http請求415錯誤解決方法 Nov 14, 2023 am 10:49 AM

解決方法:1、檢查請求頭中的Content-Type;2、檢查請求體中的資料格式;3、使用適當的編碼格式;4、使用適當的請求方法;5、檢查伺服器端的支援。

C#常見的網路通訊與安全性問題及解決方法 C#常見的網路通訊與安全性問題及解決方法 Oct 09, 2023 pm 09:21 PM

C#中常見的網路通訊和安全性問題及解決方法在當今互聯網時代,網路通訊已成為了軟體開發中必不可少的一部分。在C#中,我們通常會遇到一些網路通訊的問題,例如資料傳輸的安全性、網路連線的穩定性等。本文將針對C#中常見的網路通訊和安全性問題進行詳細討論,並提供相應的解決方法和程式碼範例。一、網路通訊問題網路連線中斷:網路通訊過程中,可能會出現網路連線的中斷,這會導致

See all articles