@IT·互联网IT面试

「校招季」怎样做一个漂亮的项目介绍 And 面试官到底在考察什么

2017-09-17  本文已影响287人  FeelsChaotic

为什么要重视项目介绍?

你可以尝试着讲一遍你的项目经历。我第一次讲的时候就挺乱的,卡壳、专业词汇匮乏、逻辑混乱、用词不当、没有介绍到项目重点……

项目经验面试在面试中占很大比重,面试官通过一些专业性的技术问题来了解你的技术水平,问题从哪来?要么来源于结构化面试题库(每个面试者的问题都一样,多出现在校招一面),要么,就是从你的简历中项目经验来。所以对项目整体而深入复习的重要性不言而喻。

介绍项目时面试官会考察应聘者的沟通能力和思考能力,我们大部分情况都是做产品的一个功能或一个模块,但是即使是这样,自己有没有把整个系统架构或产品搞清楚,并能介绍清楚,为什么做这个系统?这个系统的价值是什么?这个系统有哪些功能?优缺点有哪些?如果让你重新设计这个系统你会如何设计?这些都是值得你好好思考的。

项目介绍思路

这部分技巧对简历上的项目介绍也是通用的。

  1. 首先用一句话介绍这个项目做了什么,打个比方,我使用XX 框架实现了一个 XX

  2. 主要功能

    挑亮点和创新点讲,细碎的功能点一句带过。

  3. 然后讲基本的实现:主要运用到的技术点有XXX。

    (这里面试官从你介绍的技术点切入考察,所以要好好回顾复习项目中运用到的技术点细节。)

  4. 架构

    (面试官还会问一问为什么你选了这样的架构/方法来实现。)

  5. 我在项目中的角色

    主要介绍项目中的职责和作用,是多面手 or 组长 or 技术 。这点主要凸显你的工作量和贡献率。

注:可以在简历上附上项目github地址,上传重点功能的演示 gif ,让面试官可以很直观地评估你的项目规模和难度。

面试官会考察些什么?

知己知彼,摸清面试官心理,你才能有针对性去准备。

1. 能力、技术
2. 潜力
3. 细节
4. 主动性
5. 沟通能力

在面试的过程中,悄声无息进行的还有另一项考察 —— 沟通能力。想想自己面谈时是否能让面试官感觉舒服,是否能清晰表达自己的要点,是否能清晰表达自己未来的个人发展规划。可以尝试模拟面试录下音,看是否有过多的语气词表达出的不自信。

6. 例子

说了这么多,搞个直观的例子谈谈。

问:

项目中推送是怎么实现的?

答:

刚开始做推送的时候,对目前主流的推送方案大致了解了一下。发现推送实现不止一种。

(展示技术选型和方案,简单谈下就ok)

(1)GCM服务

优点:Google提供的服务、原生、简单,无需实现和部署服务端。

缺点:该服务在国内不够稳定、需要用户绑定Google帐号。

(2)XMPP:

优点:开放性,标准性,可扩展,跨平台,且已有开源项目。

缺点:数据冗余(基于XML),不支持二进制数据,协议虽然完整扩展性虽然好,它耗费网络流量很大,跑起来比MQTT慢很多;有高达70%的流量是耗费在XMPP本身的标签和编解码上面。

(3)MQTT

优点:协议简洁、小巧、可扩展性强、省流量、省电。

缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。

(4)HTTP轮循
优点:实现简单、可控性强,部署硬件成本低。
缺点:实时性差。

(体现技术细节)

所以后续选型,我选择了 XMPP + MINA + AndroidPN 来实现推送。

(体现项目优化改进之处,体现自己的思考和能力,对开源项目进行改造)

但是 AndroidPN 开源项目也存在一些不足之处:

  1. 如果将消息从服务器上推送出去,就不再管理了。

    我的做法是:客户端收到推送后给服务端一个反馈,如果服务端在一定时间内没有收到反馈,则重发。

  2. androidpn服务器收到消息后如何知道要发给哪个用户?

    所以我加了个tag维度来做用户分组

  3. 一旦服务器重启了,客户端似乎不会自动重连,需要用户自己中断后台Service再重启应用。

    完善的方法是加上心跳机制和断线重连

  4. AndroidPN服务器不保存消息。就是说它一有消息就会发出去,即使客户端根本不在线,它也不会重发。

    解决方案是让服务端保持对客户端状态的监控

再问:

怎么不用现有的极光推送?

答:

极光推送初始的版本文档不全,接入麻烦,同时我对推送的原理很感兴趣,所以想自己实践下。

问题示例

最后,是面试官针对项目面试可能提出的问题汇总。

开放性问题

当然,存在有的面试官倾向于问一些开放性的问题。主要看重你是如何解决问题的,看你的思维方式是怎么发散的。

比如面试官问我,你为什么觉得你做的产品就比别人好?你为什么要对你们的产品进行性能优化,主要瓶颈在哪里?你是通过什么方式进行优化?你优化的点是怎么考虑的?你在使用第三方服务是处于什么目的,你对它的评价是什么,它们给你带来的好处是什么?让你去思考如何更好的为开发者提供服务,你觉得还有什么东西是开发者需要的?你对开发工具类产品感兴趣吗?

可以从这些问题看出,面试官并不仅仅看重你的技术能力,还有你对产品的认识。面试官想找的人不仅仅要在技术上有亮点,还有其他方面能吸引到他们。

最后

最重要的一点:不知道的技术点不要不懂装懂。很多时候我们都会遇到一个情况,就是面试官的问题我不会,这时候大多数情况下不要马上说我不会,也不要糊弄回答,要懂得牵引,转移话题往类似的你擅长的技术点方向去,不然当你抱着侥幸心理随便回答出问题后,面试官会一直沿着往下深挖,挖到挖不出来为止,这就很尴尬了。

关于面试,你可能还想知道:

上一篇 下一篇

猜你喜欢

热点阅读