Home

小鱼驿站

26 Aug 2014

一场印象深刻的面试

这是A同学对B同学之间的一场技术面试,整个过程大概2个半小时,期间基本是一问一答的形式;面试涉及内容之广,故记录于此,以备他日面试他人之用。

####基本技能篇

  1. 最早接触的Ruby版本,使用过的最新Ruby版本; Ruby2.x有哪些新特性,平时使用了这些新特性?
  2. Ruby中一般使用的是进程还是线程,具体是什么技术,这种技术的好处和坏处?
  3. 使用过最早的Rails版本,最新4.x版本有无使用,与3.x有哪些大的改变?
  4. Rails中有哪些可以作为单独的Gem使用的模块?
  5. Rails Model中哪些属于ActiveModel,哪些属于ActiveRecord ?
  6. 模型中共享的代码代码一般放在哪里?
  7. models和lib哪些是autoloaded?
  8. 项目中css是怎么组织的?
  9. 假如有一段css只有一个页面用到,而不想全局引入,该如何处理?
  10. 响应式设计的原理,大概写法?
  11. 数据库表中有个字段叫attribute,如何在不修改表结构的情况下,正常使用ActiveRecord?
  12. Rails中Base Transactions 和 Instance Transactions的区别?
  13. 队列用的什么?
  14. 缓存用的什么? Rails默认缓存是什么,工作原理,和其他缓存的优劣?
  15. Delay Jobs用的什么技术,定时任务怎么处理?
  16. Application Server用的是什么,为什么选择,平时有无当机情况,怎么处理?
  17. 平时写测试不?用的什么技术,什么时候改写测试,什么时候可以不写?
  18. 部署工具用的什么?
  19. 数据库用过哪些?PostgreSQL有哪些特性,是否在项目中使用?
  20. 是否做过Api对接,选用的什么技术?
  21. 想对iphone和android返回不同的结果,该怎么处理,直接在代码中写if/else之类的判断是否可取?
  22. 开发过程中遇到bug,你的一般解决问题流程是?

####基础安全篇

  1. 对称加密和非对称加密有什么不同?
  2. 平时我们说的64位加密和128位加密,那个位指的是什么?
  3. 假如用户在网页上分享一个链接给特定的人,并且只有该特定人才能访问,该如何处理?
  4. 如何设计一个找回密码的功能?
  5. 如何避免用户靠多次/频繁修改token,从而测试出正确的token?
  6. Api设计中如何保证请求是合法的,数据是可靠的?
  7. Rails开发中常见的安全问题有哪些?
  8. 腾讯邮箱会在用户不知道的情况下,将用户邮件内容中的链接全部点击一遍(网络机器人),那么区分出是腾讯机器人的请求,如何block?
  9. OAuth 2.0的基本原理,如何自己设计一个OAuth 2.0认证系统?
  10. 使用过哪些第三方的OAuth 2.0认证服务?

####基础网络篇

  1. UDP和TCP有什么区别?
  2. TCP的会话过程?
  3. 打开一个https的页面,除了第一步域名解析,那下一步是什么?
  4. TCP发包和接受包,哪个是顺序的?
  5. 假如你网站特别慢,你该如何排查原因?过程是怎样?
  6. 无线wifi分为哪些类?
  7. 路由器和集线器有什么区别?
  8. 192.168.0.20中的20什么意思,那16呢?

####基础Linux篇

  1. 当输入free命令后,出现的buffers指的是什么?Swap又指什么,Swap有什么作用,一般在哪个目录?
  2. 假如我有部分命令需要开机启动,但是需要sudo,如何针对部分命令,配置sudo不需要密码?
  3. ssh如何无密码登录?
  4. 一个项目有多个子项目组成,如何使用git来管理?

####基础项目/架构篇

  1. 如何设计一个电商系统,大概有哪几张表?
  2. 订单表和哪些关联?
  3. 退款记录只与哪个有关?
  4. 购物车为什么要单独一张表,是否可以和订单表合并,如果合并,那么如何区分是订单还是购物车?
  5. 多种优惠卷的设计?

####基础职场篇

  1. 假如你的一个同事技术又不好,又喜欢唠叨,又偷懒不干活,你会怎么办?会给他指出? 给其他同事说? 给老板说吗?
  2. 如果有人反对你的设计,而且围住你办公室,叫你出去,你会选择出门吗?
  3. 假如项目deadline块到了,但是发现还有不少功能还没完成,你会怎么办?
  4. 你认为5k,10k,15,20k的人有什么区别,你觉得你是属于哪一类?
  5. 你喜欢将代码最快发布,抢占市场,还是将功能做到perfact后再发布?
  6. 你觉得远程办公有什么好处和不好的地方,你喜欢远程办公吗?

####生活习惯篇

  1. 平时晚上几点睡觉,早上几点起床?
  2. 一般下班都喜欢做什么?
  3. 过去一年你觉得你做的最酷的事情是什么?
  4. 用过哪些数码产品,你最喜欢哪个?
  5. mac上的软件你有在使用哪些?你觉得他们有什么值得提高的?
  6. 你有为国外的软件或服务付费吗?
  7. 喜欢开源吗?阅读过哪些开源项目,你觉得他们写的好吗?好在哪里?

xxxxx 省略部分未记住的问题?

总结: 我们平时可以不妨了解一些面试题目,即有助于了解自身实力,也可以认识一些不错的朋友!

Til next time,
small_fish__ at 22:31

scribble