/iOS

iOS data

GNU General Public License v3.0GPL-3.0

-iOS高级面试简历指导

总结一下iOS程序员的简历应该怎么写,有哪些注意事项,如何拿下大厂offer的必备技术点

花点时间,耐心看完,一定会对你有所帮助!

目录

一:iOS开发者定位分析

二:iOS开发基本要求和技术加分项

三:个人简历信息模板分析

四:面试大厂iOS交流群:711315161 ;微信:ios_dx

(加群:获取最新面试题+内推岗位+面试简历交流+iOS资料文档)


一:iOS开发者定位分析

1、简历注意点(了解自己)

  • 1、不要夸张自身的简历;面试一问便知!
  • 2、简历制作尽量不要用"招聘网站"的自动生成简历模板
  • 3、根据自身的特点,自身优势,制作属于自己的简历 (1)优势:学历,技术背景等,哪一块突出,哪一块就是优势!

2、iOS开发者定位分析(仅个人看法)

1:开发者定位--初级iOS开发者

  • 1.能完成基本的UI界面搭建
  • 2.了解网络,能利用网络框架上传
  • 3.熟悉iOS常用内置的API
  • 4.能使用常用的第三方框架
  • 5.能根据业务逻辑,完成数据与uI联系

2:开发者定位--中级iOS开发者

  • 1.能够快速完成界面搭建
  • 2.能够根据项目业务逻辑以及项目需求封装出常用的工具类
  • 3.熟练常用iOS内置API
  • 4.能根据业务需要快速选择合适的第三方,并快速完成第三方学习.
  • 5.了解常用第三方框架底层并能做二次封装
  • 6.具备基本的架构能力.能够根据项目以及业务方向设计健壮的项目架构
  • 7.较好的编程习惯
  • 8.具备一定的产品意识 ......

3.开发者定位一高级i0S开发者

  • 1.第三方库安全性评估
  • 2.架构风险评估,项目风险评估
  • 3.具备创新并开发出新框架的能力
  • 4.有自身技术专项领域.在这个领域有积累有造诣, 解决公司核心业务.比如项目安全.图形图像处理,音视频.能够帮助公司攻克技术难度,做技术研发. ...... (其他能力不一一概括了)

3、开发者定位小总结

总之我们要足够了解自己,才能在简历上有一个清晰的定位,以及在求职过程中,有一个明确的位置选择; 例如:有一家公司招的高级开发者,但个人能力目前达不到高级开发,这样去面试结果可想而知,而且还会浪费一次机会! 当面试中认知到自己的不足,那么就要朝着更高的层次去学习提升!

二:iOS开发基本要求和技术加分项

1、基本需求:

1.多线程

2.网络

3.主流第三方框架实现原理

4.OC本质

5.数据结构/算法

6.数据库

7.设计模式

8.项目经验

9.runtime / runloop

10.c/c++

11.界面开发能力

2、技术加分项:

1.网络直播课堂研发经验[IM,直播,音视频研发经验]

2.初创公司从业经历

3.Swift项目经验

4.音视频编解码,

5.视频直播,短视频开发经验

6.AVFoundation

7.OpenGL/ARKit/GPUlmage图像处理

8.直播产品经验

9.安卓端开发经验

10.5年以上iOS开发.大型APP项目

11.有多种编程语言经验

12.GitHub.上有原创开源框架/项目

13.负责过成熟项目架构设计

14.函数式编程(block灵活运用]

15.英语能力[CET-6]

16.逆向实战项目经验

17.项目管理经验

18.跨平台开发经验(Weex/Flutter/RN/Hybird)

19.博客

20.出书

3、简历要求注意

  • 1.切记生搬硬套.

  • 2.简历必须符合自身技术能力.

  • 3.最好的简历必须要有技术作为支撑.

三:个人简历信息模板分析

1、简历版块构成

1.个人信息

2.自我简介

3.技术列表

4.项目经历

5.教育背景

6.工作背景

7.兴趣爱好


①.个人信息,模块需要包含如下信息:

  • 姓名
  • 性别
  • 年龄(年龄在30-35岁左右,建议不用直接写年龄)
  • 电话
  • 常用邮箱
  • 常住地
  • 学历+专业(985/211学历优势,靠前写;计算机专业靠前写;)
  • 英语能力
  • 工作年限
  • 籍贯
  • 个人博客

仅供参考: image


②.自我简介版块:

自我简介:是通过一段简短的语言,快速让面试官知道自己的技术优点,技术特点;描述的是自己的能力,而不是自己的个性!

例子:个人介绍(仅供参考) image

【重点】:个人信息模块需要包含如下信息:[切记必须符合自身真实情况]

  • 个人突出经验(开发经验,知名项目经验,知名企业经历等)
  • 个人技术优势(逆向,音视频,跨平台开发经验,Swift完整上线项目,其他平台开发经验)
  • 个人学习成果(gitHub开源项目,开源框架,个人技术博客,公众号,社群以及博客粉丝等.
  • 个人学习成果(个人技术书籍出版,国外技术文献翻译书籍出版,国外技术文献翻译文档)
  • 个人管理经验(某项目架构设计以及项目管理等)
  • 自我技术优势:可以从技能列表中筛选,例如组件化/响应式编程等
  • 自我简介宗旨:突出自我优势!

模板:自我简介(仅供参考)

image


③.个人技术列表解析

网上案例:(仅供参考) image

注意点:个人技术优势放前面

【重点】:技能列表模块注意细节:[切记必须符合自身真实情况]

  • 所有技术点必须符合目前自身实际能力
  • 建议面试前针对技术点准备3-5个值得探讨的技术点(注意点
  • 注意技术点书写正确,以及表述必须能完整表述其技术的名称+功能+亮点
  • 简历尽量以PDF格式形式(开发者简历尽量简约即可)
  • 技术切换以方向为技能例如:建议不要写精通逆向(而是细数对于逆向你具备实际能力)
  • 技术列表中排序根据开发年限: iOS核心开发技术->技术亮点->使用/了解的技术

iOS技术列表简介,各方向都有简单列出(仅供参考)

底层基础:

  • 熟练掌握Runtime , Runloop底层原理以及底层源码分析
  • 熟练掌握KVC , KVO使用及其底层原理
  • 熟练掌握多线程原理以及NThread, NSOperation使用
  • 熟练掌握GCG高级使用以及GCD源码分析
  • 基于GCD自定义NSOperation
  • 熟练网络(OC/JS交换/NSURLProtocol/Socket )
  • 具备封装网络框架构建能力
  • 了解项目单元测试(逻辑测试/异步测试/性能测试/UI测试/OCMock依赖注入)
  • 项目持续集成/自动化打包
  • 掌握项目性能优化(内存优化/界面优化/启动优化/网络优化)
  • 了解常用架构模式(创建型模式/结构型模式/行为型模式).
  • 了解直播项目架构设计
  • 熟练掌握组件化开发

基本框架:

  • 熟悉AFNetworking网络框架高级使用并了解底层原理
  • 熟悉Alamofire网络框架高级使用并了解底层原理
  • 熟悉响应式编程RAC框架高级使用并了解底层原理
  • 熟悉响应式编程RXSwift框架高级使用并熟悉底层源码
  • 熟悉微信开源框架WCDB使用并了解底层源码实现
  • 熟悉FMDB 数据库使用并了解底层实现原理
  • 熟练掌握项目缓存策略,熟悉YYCache使用以及底层缓存策略.
  • 熟悉图片加载框架SDWebImage , YYWebImage , YYImage使用以及底层图片加载/解码原理.
  • 熟悉YYAsyncLayer异步绘制框架以及底层异步绘制原理
  • 熟悉美团开源框架Graver框架的使用以及底层原理

图形视觉

  • 熟悉Mac OS平台下OpenGL图形图像开发
  • 熟悉OpenGL ES渲染技巧(背面剔除/深度测试/多边形偏移/颜色混合)
  • 熟练掌握OpenGL ES着色语言GLSL.可以编写shader
  • 熟悉iOS下OpenGL ES GLKit框架
  • 熟悉OpenGL ES多重纹理混合/光照混合/颜色混合等。
  • 熟悉OpenGL ES实现视频渲染以及加滤镜
  • 熟悉OpenGL ES实现图片滤镜实现
  • 熟悉OpenGL ES加载3D模型
  • 熟悉Metal框架以及渲染流程.
  • 熟悉Metal shadeing Language能实现图形图像处理
  • 了解SpriteKit框架
  • 熟练使用GPUImage上层框架并了解GPUImage底层源码.

音视频

  • 熟悉AVFoundation音视频采集/视频播放/视频帧获取/切换前后摄像头/静态图片捕捉
  • 基于AVFoundation封装直播/小视频音视频数据采集工具类
  • 熟悉视频投屏技术AirPlay
  • 熟悉AVFoundation人脸识别/二维码识别
  • 了解视频封装格式.视频/音频编码格式
  • 了解直播/小视频客户端架构
  • 了解CDN网络
  • 熟悉视频编码原理( IBP帧/帧内预测压缩/帧间预测压缩)
  • 熟悉H264视频编码原理以及H264数据结构
  • 熟练掌握VideoToolBox视频硬编解码,并基于videoToolBox封装视频编码/解码工具类
  • 熟练掌握AudioToolBox音频编解码,并基于AudioToolBox封装音频编码/解码工具类
  • 熟悉音频裸流PCM播放/ AAC解码播放.
  • 熟练基于OpenGL ES在iOS平台下渲染视频并添加滤镜.

逆向安防

  • 熟悉iOS加密手段(哈希算法/对称加密算法/非对称加密算法/Openssl)
  • 熟悉APP签名(数字签名/代码签名/iOS双重签名机制)
  • 了解Enitilements/CSR文件/Provisioning Profile
  • 熟悉重签名技术( codesign重签名/xcode重签名/shell脚本自动重签名)
  • 熟悉逆向项目进攻(、Framwork注入 / MachOview / LC_ LOAD_ DYLIB / DYLD / yololib / Dylib 注入)
  • 熟悉Runtime运行时机制,通过SEL方法号寻获IMP函数实现
  • 了解MachO文件,熟悉应用加载过程。
  • 熟悉逆向项目进攻( HooK技术)以及防护反Hook
  • 熟练逆向调试工具(LLDB / Cycript / MokeyDev / Logos )
  • 熟练掌握越狱开发(应用砸壳/Theos)
  • 熟悉越狱攻防手段(修改RESTRICT段防护Tweak/二进制修改破坏防护/dy1d源码分析/检测RESTRICT段防护二进制修改)
  • 熟练掌握汇编语言(还原高级代码/指针反汇编/Block反汇编/OC方法反汇编)
  • 逆向开发项目(逆向微信抢红包,实现自动拆红包,抢红包.)
  • 逆向开发项目(逆向钉钉打卡,实现异地wi-fi打卡)
  • 熟悉项目安全防护基础反调试(ptrace反调试/ sysct1反调试/破坏ptrace , sysctl 防护/ Ptrace&sysctl 提前执行)
  • 熟悉项目动态调试/静态调试。
  • 熟悉项目安全防护检测(MethodSwizzie检测/签名检测/代码检测)
  • 熟悉项目安全防护(定位防护代码/破解fishhook防护手段)
  • 熟悉项目安全防护(字符串加密/隐藏核心函数调用/汇编防护)
  • 熟练使用LLDB调试工具.

④:项目经历

项目经验:

误区:

  • 1.写的越详细越好
  • 2.哕嗦,找不到重点
  • 3.冗余信息过重,掩盖亮点
  • 4.排版不清晰
  • 5.认为独立开发才是好开发!
  • 6.项目经验与工作经历混为一谈

项目案例简单分析(无参考)

项目周期:1年/日期 项目名称:*** 项目人员:5名 项目描述:(项目分类,项目成绩) 项目技术点:(架构,框架,底层技术出发) 1、** 2、****** 3、******

##结语 本文仅供参考,每个人的经历都是不一样的,需要每个人自我补充,自我完成简历,才会呈现更好的!

  • 最后附上一份精品整理的《大厂--iOS面试题答案合集.pdf 》

在这里插入图片描述

  • 需要的可加 iOS高级开发群:711315161,群文件直接获取