# iOS-offer **Repository Path**: ios-code-for-the-future/iOS-offer ## Basic Information - **Project Name**: iOS-offer - **Description**: iOS高级简历制作+模板参考 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-07-08 - **Last Updated**: 2023-02-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # iOS高级面试简历指导 ### 前言 **这篇文章我来总结一下iOS程序员的简历应该怎么写,有哪些注意事项,如何拿下大厂offer的必备技术点;** **花点时间,耐心看完,一定会对你有所帮助!** ### 目录 **一:iOS开发者定位分析** **二: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学历优势,靠前写;计算机专业靠前写;`) >* 英语能力 >* 工作年限 >* 籍贯 >* 个人博客 **仅供参考:** ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xMzI3NzIzNS0wMjYzYmQzYjBjNjYxZDcwLnBuZw?x-oss-process=image/format,png) *** #### ②.自我简介版块: 自我简介:是通过一段简短的语言,快速让面试官知道自己的技术优点,技术特点;描述的是自己的能力,而不是自己的个性! **例子:个人介绍(仅供参考)** ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xMzI3NzIzNS1iZGUzNTMyNTA1ZWQ0NDY1LnBuZw?x-oss-process=image/format,png) #### 【重点】:个人信息模块需要包含如下信息:[切记必须符合自身真实情况] >* 个人突出经验(开发经验,知名项目经验,知名企业经历等) >* 个人技术优势(逆向,音视频,跨平台开发经验,Swift完整上线项目,其他平台开发经验) >* 个人学习成果(gitHub开源项目,开源框架,个人技术博客,公众号,社群以及博客粉丝等. >* 个人学习成果(个人技术书籍出版,国外技术文献翻译书籍出版,国外技术文献翻译文档) >* 个人管理经验(某项目架构设计以及项目管理等) >* **自我技术优势:可以从技能列表中筛选,例如组件化/响应式编程等** >* **自我简介宗旨:突出自我优势!** **模板:自我简介(仅供参考)** ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xMzI3NzIzNS0zOGIzN2I2MmQ4NTM3YzNmLnBuZw?x-oss-process=image/format,png) *** #### ③.个人技术列表解析 **网上案例:(仅供参考)** ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xMzI3NzIzNS00MjkyY2RjN2YxM2YwNTYwLnBuZw?x-oss-process=image/format,png) `注意点:个人技术优势放前面` #### 【重点】:技能列表模块注意细节:[切记必须符合自身真实情况] >* 所有技术点必须符合目前自身实际能力 >* 建议面试前针对技术点准备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开发高级进阶必看学习库](https://github.com/LGBamboo/iOS-Mark) ### 结语 **本文仅供参考,每个人的经历都是不一样的,需要每个人自我补充,自我完成简历,才会呈现更好的!** * **最后附上一份精品整理的《大厂--iOS面试题答案合集.pdf 》** ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210511155353430.png#pic_center) * **需要的可加 iOS高级开发群:[937194184](https://jq.qq.com/?_wv=1027&k=5PARXCI),群文件直接获取** #### 参考目录: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210506160832847.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzkyNDEz,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210506161039994.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzkyNDEz,size_16,color_FFFFFF,t_70)