牛客网讲座笔记

晚上听了牛客网直播的面经讲座,感觉还是有干货的,虽然可能内容上是属于开发类童鞋的对口菜,不过安全的也可以有所借鉴,在此将要点总结小记一下。

1.怎么做项目

筛选

筛选要有目的性,即要明白自己做项目是为了什么?比如:为了练习语言,为了学习框架,为了学习协议,为了了解设计模式,还有为了以后的职业规划考虑(要做C++工程师,java工程师)等等。如果要练习语言,比如要练习java语言,那就不要考虑去做C++的项目,这样子~

循序渐进

  • 难度:不要一开始就想着做一个屌爆天的项目
  • 兴趣:做的一定是自己感兴趣的项目,这样才有动力源
  • 造轮子:先从模仿开始
  • 最后再考虑改进创新
  • 可考虑的项目有:爬虫,游戏,编辑器,网站,app,库…

2.实践

新手上路

  • 先点后面:即先考虑做出来项目中一个很小的点,比如网站,可以先实现一个小点(上传文件怎么处理?用户登陆怎么处理?)之后再考虑其他功能点
  • 先模仿后改进:先抄轮子,再造轮子改轮子

老司机

  • 核心难点
  • 从架构到模块
  • 找资料的顺序:官方文档->RFC->权威书籍->Google->StackOverFlow->博客

3.项目总结

核心难点和结果

  • 核心算法
  • SDK,框架
  • 并发量,准确率
  • ……

扩展和深入

  • 从单机程序到网络程序
  • 从单线程到多线程
  • ……

4.面试的时候讲项目之面试官的关注点

能力

  • 你了解什么(即知道项目的要素,是亲手做的项目,简历非伪造)
  • 你深入探索过什么(要有深入学习的意识,而不仅仅是用一些现成的API,组件之类的,更要关注这些中间件的实现原理,底层细节)
  • 你横向了解过什么(同类型程序和产品的对比)

即学习一个东西并不仅仅停留在这一个东西上,有自己深入钻研的意识,形成自己的总结甚至方法论。

潜力

  • 你怎么解决问题
  • 你怎么举一反三
  • 你如何优化项目
  • 你如何快速学习

5.自己介绍项目

核心箴言:有理有据,不要吹牛逼

  • 博客网站(怎么做权限控制,数据库安全如何保障…)
  • APP(SDK的实现细节,自定义控件优化,方案对比…)
  • 算法(坑和解决思路,灵感来源与融会贯通…)