优秀开发者的标准是什么?
BAT 级别的工程师是什么样的?有什么要求?

首先我们看看 BAT 级别公司的招聘要求,下面是阿里巴巴国际无线技术部 的 JD:

我们要怎样的iOS开发?

岗位要求:

  • 3年以上iOS开发经验,有SDK开发经验更佳;
  • 精通Objective-C,熟悉Swift,对iOS编程有系统化的知识体系;
  • 具有良好的工程能力,能够独立解决有一定复杂度的问题,如果你有一套自己解决问题的方法论,我们更欢迎你加入;
  • 良好的适应能力,面对新的技术栈,能快速学习,并将习得的知识转化成解决问题的方法论;
  • 优良的编码习惯,对于设计模式等常见的编码技巧有很好的认知,在意命名,在意函数/类之间的联系;
  • 有多个完整的IOS项目经验,至少参加过一个完整的商业级手机应用;

从上面的 JD 中可以看出来,阿里巴巴对一名 p6 ~ p7 的 iOS 工程师的要求:

  1. 实战经验丰富,至少 3 年;
  2. 对相关的语言和框架非常熟悉,有完整的知识体系;(自己列个学习计划,平时注意查漏补缺,在工作中以点带面)
  3. 善于解决复杂问题、难题,有自己的方法论;(这个就需要平时工作中自我约束了,遇到问题不能敷衍了事,解决问题后要自己总结回顾)
  4. 学习能力强;(平时不断学习新东西,并在工作中实践、举一反三)
  5. 编码能力强,代码规范;(这个需要自我驱动力,多造轮子,多学习开源项目,培养专业素养)
  6. 对设计模式和架构非常了解;(设计模式和架构实际上是前人总结的基本经验,但是在真正设计程序时,是没有固定套路的,需要自己在实践中去梳理、抽象)

我自己补充几点其他的:

  • 有自己擅长的方向、领域,也就是说在某个领域你比大多数做得更好,比如优化,动画,安全。
  • 基本功扎实,包括数据结构和算法,计算机操作系统,计算机网络等等。
  • 掌握其他方向的技术或语言,比如 JavaScript、Python 等前后端技术、语言。
  • 有自己的 GitHub,里面有不少有价值的内容
  • 有自己的博客,里面最好要有自己的一些思考和积累、总结,这些往往代表着积极思考的结果。
  • 表达能力:说得明白,写的清楚

Last but not least,那就是不马虎,追求卓越的品质。我相信,不论做什么事情,要想做好都是如此。

参考: