百度笔试、一面

百度面试时间为去年5月即2016年5月,在腾讯面试之后。申请岗位为java开发工程师,笔试内容包括但不限于:

简单数据结构、java相关知识(内存、GC、虚拟机)、操作系统、计算机网络等。大题为3道算法题,其中一道为翻转二叉树,还有括号匹配,另外一道记不清了,可能是DP之类的。总体来说做的还行。

面试地点是百度大厦,当天去了后先全部在大厅候场(站着,提供小零食、饮用水),之后按岗位排队,由不同的人领入百度大厦内部,最后的面试地点应该是百度的食堂。

面试也是先自我介绍,内容如下:

  1. 手写代码-二分查找
  2. 说一说Java的内存模型(当时说到了GC,但是说的很烂,平常写代码没有很好地归纳积累,即使面试前一周临时学习了也只能是表面学习,不够透彻)。
  3. hash map如何实现(数据结构角度谈了谈)。
  4. OSI七层模型(由于那个学期正在学计算机网络,比较轻松回答出来)。
  5. ARP是哪一层协议(计算机网络)。
  6. 在浏览器地址栏输入www.baidu.com,按下回车键后发生了什么(计算机网络)。
  7. 是否知道BGP协议(学习不仔细,一下子没反应过来,其实学过)。
  8. 思考题:全国各地有很多服务器有日志文件,需要定时把这些文件发往一个目的总服务器。请设计这一系统架构(当时被问懵了,不知道从什么角度去答,匆匆思考了后进行了回答,结果题意没理解清,面试官再讲解后说了“分治”。事后想想,由于自己对于“架构”这一概念理解不到位,导致设计架构也无从谈起,平时的学习中还是缺乏思考和积累)。

面完后感觉还行,搭上了一大半,可是工作人员直接让我回去等通知,其实就是GG了。很多表现优异的可以在食堂的不同区域直接参加二面,甚至一天之内结束几轮面试拿到结果。

感觉自己当时还说太弱了,只在表面使用Java,却从没深挖过其中的原理或机制,只把语言当成实用工具导致自己的收获也就停留在会使用Java语言这一层面。其实每门语言都有复杂的运作原理与优雅的实现方式,因此在平时中遇到问题还是要多思考,查找资料理解原理,要善于总结。将编程语言背后的计算机基础知识、算法、设计模式等与自己本科所学习的基础课程对应,加深对于计算机这一学科的知识的理解、融汇。

你可能感兴趣的:(career,milestone)