其实很简单 要求明明确确的在各大招聘渠道的岗位要求里
以BAT、网易、美团、大众点评等典型的行业内顶尖互联网企业为例,我大致总结了下成为一名合格的高级iOS开发工程师的基本要求:
1. 精通Objective-C,熟悉C/C++语言。至于Swift,一般没有硬性要求。
前者不用说,后者是很多大公司的加分项。因为历史原因大公司的很多成熟的项目还是用Objective-C开发的,而很多跨平台库都是用C/C++写的,熟悉这两门语言对理解项目本身有很大的帮助。
对于Swift有要求的一般为创业公司,但是总体来说这门语言是趋势,老项目也可以通过混编的方式逐步过渡,早点学会没有坏处。
2.熟悉常用的热更新方案。
目前最主流的有JSPatch、React Native和Weex。就我来看,只要深入了解其中一种就行了,其他的熟悉即可。如果目标是阿里,果断学Weex,马屁当然要拍(严肃脸)。
3.数据结构与算法
大公司属于必备能力,至于要求,不用太难,剑指offer的题能熟练答出基本没有问题。
4.基础知识考察
见各种面试题(高级)。最佳的学习方式是应用于项目。
5.阅读第三方库
看哪些?除了常用的网络库(这种网上有很多现成的解析文章),打开Github,点Explorer,Trending,选你自己的语言看就行了,甚至还有机会提Issue和PR(YY中)。
6.完整的APP开发经验
很多创业公司或者中小型公司很看重这点,因为你是要去挑大梁的,有些甚至需要你一个人完成开发工作。这里涉及到的有从申请账号,从零开始架构项目(这里可能涉及到自己去写一些基础库),打包(证书配置、给测试打Ad-Hoc包、自动化等),上架(企业版等)等等。
有些小公司还会要求你会写单元测试(意思就是测试人员都没有)。
7.对新技术敏感
有些成为话题的新技术,用一用总没有坏处,比如最近的Flutter
8.自己有优秀的开源项目、技术Blog、StackOverFlow优秀回答 加分
这三个放在一起说是因为基本上这三者基本上能达成一点就已经是很大的加分项了。
优秀很重要,这才能让你脱颖而出成为加分项哦。
9.其他专业知识 加分
比如音频业务方向的APP可能需要熟悉音频处理相关知识的开发者。音视频这块一般需求更多一些。
10.跨平台的项目经验 加分
一般指前端,后端要求的较少。