作为一名攻城狮面试官,我一般会提什么问题,有什么含义

本文从面试官的角度探讨了评价应聘者编程能力的方法,强调了解决问题能力的重要性,并通过一个具体的浮点数面试案例进行说明。同时,文章还讨论了在实际工作中算法的应用及其在面试中的地位。

作为一名攻城狮面试官,我一般会提什么问题,有什么含义

我们是王者

作为一名面试官,我很少面试语言的细节,这些都是可以通过看书或者手册学习到的。我比较喜欢看应聘者解决问题的能力

原文太长,就不贴出来了。一次关于浮点数的面试。

很多毕业生都把计算机学成了文科,他们不是在学习理论知识,而是被动接受/背诵记忆这些知识。他们来公司,编程只是他们的工作而已,聘用他们的真正目的是解决问题,用程序解决很多人共性的问题。

我面试时,他们可以使用任何工具甚至Google,当然,我出的题目一般都不能直接个Google到,虽然网上没有现成的答案,但是可以总结出答案。我的观点是,如果你的任何问题都可以用Google直接解决,你不可能成为一名特别优秀的程序员。

你搜索到的是数据,即使你保存在了evernote,说白了就是01串,你阅读了,思考了,这些数据就变成了信息,0101010…11101 编程了 int a = 4; 你再继续思考,使用,深化,这些信息就变成了知识。 你会说:『哦,这不是李氏代换原则吗?』

还有我的一个朋友问我公司

作为一名做 Web 开发的 Java 工程师,算法在工作中基本不怎么用到,但为什么面试总会问算法的问题?

现在大家用 JavaScript 都讲求模块化,例如AMD、CMD 之类的。假设网站上要用到的功能都是 JavaScript 模块,它们的依赖关系也是已知的,页面对这些模块的依赖关系也是已知的,例如页面 X 需要模块 A、B,页面 Y 需要模块 B、C。我们也知道通常网站在发布时会把非常多的 JavaScript 源文件打包成少数几个文件,这样可以减少对每一个源文件独立请求一次的开销,但又能保证几个文件能够并行下载。

简化的问题是这样子的:假设只考虑上面提到的页面 X 和 Y,模块 A、B、C,请问该如何打包?说得直白点,应该分两个打包 [A, B] 和 [B, C] 还是就一个打包 [A, B, C]?假设我们已知页面 X 和 Y 的流量,也有数据能够表明多少访问页面 X 的用户会点击打开 Y 的链接,或者是反向。假设我们也有 TCP/HTTP 性能开销的数据。如何计算以便作出判断?

真实存在的问题其实是这样子的:对于好像 Facebook 这样复杂的网站,如此之多的页面和模块以及如此复杂的依赖关系,如何打包模块才能使得用户在下载 JavaScript 文件资源时的时间开销尽可能小?Facebook 是有专门一套概率模型来解决这个问题的,感兴趣的话可以自行搜索 Velocity 相关视频。

你只看着你手头上的问题和工具,当然说不需要扩充工具包了,因为你没想过要去解决更大的问题。你要敢去想象那些看起来无法解决的问题,然后才知道自己缺了什么。

最后重申一下:学历代表过去,能力代表现在,学习能力代表将来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值