互联网热门岗位面试指导:后端工程师

作者 :慕课君 2016.9.27

职业解析方面


1.后端工程师的日常工作是什么?


其实说后端工作会比较宽泛,云计算(如基础设施、平台服务、软件服务)、容器技术、各种基础服务(如数据存储、监控、大数据)等一般也都是偏后端的工作。


我主要说说我们产品的后端技术人员主要在做什么。迭代需求交互评审、技术设计与文档撰写、代码开发与单元测试,环境部署,BUGFIX,和上线支持、持续优化等。举迭代需求交互评审的例子,迭代是小而重复的周期里交付一个瀑布式的增量功能集,常规的迭代开始前,产品经理会基于产品现阶段的发展提出相应的需求,以交互稿的形式同步给程序员及其他人,在评审会上会一起与产品和交互确认需求是什么,有什么价值,扩展性、通用性怎么样,可执行性有无风险,可达成效果如何等。


2.程序员除了技术过硬还要具备什么能力吗?


应该需要具备很多,从我个人从业经历来看,我说两点比较关键的:


主动学习的能力,很多时候进入一个行业有太多的东西需要学习,这时候你需要具备很强的自我学习能力,去快速接受新的技能,比如如果你是前端你会去了解微信应用号是怎么回事,然后学习新的东西,这样你才能逐步胜任这份工作并且在众多的人才中展露光芒。


沟通能力,大多数情况下你不仅仅是需要具备驾驭代码的能力,还需要将技术的可行性、风险、方案、工作评估与产品经理或者需求提供方进行沟通,以一种双方都能接受的沟通方式输出,从而能够快速的推进业务迭代。


3.程序员是不是一直写代码呀?他的职业发展是什么样的?


我了解到的是小公司的话选择的余地比较少,一般从底层开始、然后主程序员(业务骨干),再到公司高层,而大公司一般比较发展有两个方向,一个是技术岗,一个是管理岗,什么区别呢?一个是专注于技术,或者往某些技术方向深入研究,成为专家,像网易的话,后边还有研究员、科学家。而管理岗会更为关注业务发展、团队管理建设、人力资源(成本)评估等,大公司可能会是小团队的组长、技术经理、总监、CTO这样的成长路线。


4.做程序员最大的优点和缺点?


不知道抢月饼算不算优点。岗位的优点的话,基本就是大家普遍认为的那些优点吧。不过我想说程序员群体工作过程中会产生一些共有的优点,比如贴心、细心、专注等等。


缺点?can not find object(找不到对象);程序员的形象容易被固化,例如程序员就是只穿格子衬衫被双肩包;程序员“擅长”撕逼技能;另外,其实我觉得可以引用大话西游结尾那句话,哈哈。


面试指导方面


1. 后端需要对哪些知识掌握的比较好,才能经受考验?


各个公司的技术栈不太一样,我说说我们这边的,需要熟悉JAVA基础(IO、泛型、反射、GC、JVM、诊断、并发包等),数据库(索引、事务、锁、sql优化、nosql、redis等)、web基础(session、cookie、servlet、websocket、https等)、常用框架(spring、hession、mybatis、Struts、dubbo、netty、hive、hbase等)、JDK8、9新特性、设计模式、网络通信(TCP、UDP)、linux常用命令等等,当然如果是社招,除了会更侧重项目经验。


2. 怎样的项目经历才能过面试官的法眼?


对于应届毕业生,我会快速看看参加了哪些计算机相关的竞赛、平时研究过或者做过哪些项目、实习期间做了什么项目、对待技术的态度主要这几个方面,另外如果你的项目经历中使用了一些与我们团队比较匹配或者相近的技术栈,会比较吸引我的注意。


3. 在技术面试时面试官最看中哪些方面?


应届毕业生着重看他编程功底怎么样、基础知识点掌握程度、数据库、会活用框架更好;另一方面也会从面试者自己出发,会提出一些实际项目中遇到的问题及对应的解决方案、后续的改善方案等等。


4. 对不是计算机专业出身的求职者怎么看?什么样的表现才能脱颖而出?


程序员的话,还是基本考察你的技术能力,所以还是以相同的标准进行面试;除了基础及常规的技术掌握之外,表达能力、逻辑是否清晰、思维是否敏捷能够决定是否能脱颖而出。


5. 对求职同学们的建议


以我与其他面试官的交流的经验来看,大家都会比较注重基础,并且会考察你和目标岗位的匹配程度,例如你掌握的知识和项目经历中使用过的技术是否与目标岗位匹配。另外,就是简历上的内容和技术要点你要讲明白讲透彻讲完整。所以同学们努力吧!