iOS ios开发高级工程师师是怎么进阶的

iOS 高级工程师是怎么进阶的?
我从事 iOS 两年了,感觉只会搭建 view,用第三方库,还有些机械代码?真的迷茫了。想进阶,具体从什么大点入手呢?
按投票排序
高票答案其实有点偏题,楼主问的是如何进阶,并不是高阶人士应该具备的哪些素质。就像一个人问如何才能成功,如果你告诉他成功人士都是“永不放弃,艰苦朴素,吃苦耐劳,对事执行快准狠,对人温良恭廉让……”,他听完懵逼一阵后估计会想打你……(开个玩笑…:D)“那我照着高阶人士的技能树一条一条去学习,我不就也高阶了么?”憋闹,高阶人士说自己精通多线程GCD编程,你跟着去研究了一番,熟练掌握了dispatch_async的用法,觉得多线程也不过如此嘛……但之后你会发现,你除了知道了几个新api,其实技能并没有得到实际的提升,你还是不知道为什么有的代码在main_queue里执行以及在worker queue里执行会有不同的结果……事实就是,很多问题你没有亲自遇到并解决,是没办法真正掌握的。扯远了,说回如何进阶的问题。从操作性的层面,我觉得主要可以有以下几个方向:了解苹果的新技术,绝大多数苹果的新技术都是为了提高开发效率而服务的(虽然有的也有坑,比如@IBInspectable这玩意儿,但毕竟是少数。),总体绝对是性价比很高的学习。“那文档,好长啊,看不完怎么办
T_T”请移步app store,搜索WWDC。里面有历年WWDC技术会议的内容,近两年的还配有字幕 以及demo project,学起来趣味性十足,比看Ray wenderlich的教程还简单……修炼基本功, , 现在也支持Swift了。总体难度适中,不像ACM那么刁钻。非常适合当做了解语言特性以及锻炼自己基本编码能力的地方。 虽然算法没有用……但能写出算法的能力,很有用。这个训练能够潜移默化的提高你在平时写代码的速度。了解FRP(Functional
Reactive Programming),对应框架就是ReativeCocoa和RxSwift,没错,这并不是必须的。但我还是忍不住要安利一下。这是能够最直接,最显而易见的提供你工作效率的框架。学习别人造的轮子, github上有很多优秀的开发者的源码,其中很大一部分都有极高的学习价值。 这里是一个集合的,你可以根据自己感兴趣的库进行学习。(记住是学习……是研究怎么实现……是思考换你来做的话,你会如何做……不是pod install然后跟着readme使用一下就完了……),国内也有很多大神的框架值得学习,比如ibireme的YYKit。造轮子。
学得差不多了,就该自己造了。当你第一次以框架/Api设计者而不是使用者的角度来思考问题,也能够获得很多的收获。这一步能带给你能力的提升是最明显的,如果说1-4 ,都是在韬光养晦的积累阶段。那造轮子,就是你在成为高阶工程师之路的收获阶段。@optional贡献你的知识,把你的心得,领悟的东西写成博客。或者把你看过优秀的英文文章翻译成中文,方便后来的国内开发者们快速掌握。这并不是单纯的做好事,分享的过程,你能让你有新的感悟,学到新的知识。利人利己。
顶着高级头衔,但感觉我也只能算一个中级吧。1. 会熟练使用Profiler来调试应用性能。比如其中有一个很好的模板叫Time Profiler,会告诉你应用当中哪行代码花了最长时间,当你界面卡顿的时候,用这个可以很快找到优化点。2. 写测试,写测试不仅仅可以帮助你找BUG,更重要的时会让你去思考如何更好地架构你的应用,其实很多好的工程师,代码架构能力都是很不错的。同时也会用OS X Server和XCode配置 Continuous Integration。3. 可以轻松编写多线程代码,熟悉NSOperation,GCD等4. 熟知一些常用的系统类库的原理和Best Practics,比如Core Data,这个玩意儿要玩得好,也是很花时间的。5. iOS应用,UI占很重要的一部分,可能大部分时候你只需要使用默认的UI组件就行,但是有些时候,你必须要自己去实现一些UI组件和动画,这个时候Core Animation啊,UIDynamics啊都是很值得去学习的点。我一般的路径是,当要解决一个问题或实现一个功能的时候,我尽量自己去实现,但当自己写的东西无法达到预期的时候(性能太差,实现不了或代码逻辑过于复杂)我才会去找第三方库。还有就是,如果你做了两年都觉得自己没啥大进步的话,那问题可能是你手头的项目并没有什么高的要求,没有性能问题要你解决,公司也对很多细节问题无所谓,那作为有要求的工程师,你要么自己有项目可以帮助自己提高(比如我总是会自己写应用来学习一些新API和技术);要么就换家公司吧。
说实话,两年时间只会搭建view、使用第三方类库,真的不能称为一个合格的iOS开发工程师!1. 先说OC部分既然做了两年了,对Objective-C足够了解吗?OC是如何基于C来进行的封装?解释一下这两行代码啥意思?typedef __attribute__((NSObject)) CGGradientRef GradientObject;
@property (nonatomic, strong) GradientObject storedGradient;
protocol、category这样的东西应该要手到擒来才是? 多线程部分的知识点掌握是否扎实?runtime这种黑魔法研究过没?代码足够优雅、后续维护容易吗?各种设计模式也得会吧?2. 再说UI部分既然写了两年的view,那么能快速仿造市面上这些主流App的UI吗?使用Reveal分析过微信、豆瓣、网易新闻、知乎、QQ、苏宁、淘宝、支付宝的UI吗?使用Charles去抓过他们的接口吗?UI研究稍微深一点,比如侧滑菜单这种要怎么实现?如果你要做实现应该要了解UIView和UIViewController,UIViewController和UINavigationController的关系了吧?我嘞个草,UIView一堆方法,UIViewController一堆方法,到底都是干嘛的啊?你难道不好奇?这块知识点一直是你的盲区,你能忍?我忍不了!UIView再往深了看,下面还有CALayer,你研究过没?为什么修改CALayer的某些property默认会有个动画产生呢?那么Animation、UIKit Dynamics、Drawing、Graphics这些随便拎出来一个,够你研究一阵了吧?你看看比如网易新闻,在新闻详情页面上拉,回到新闻列表页面的这个动画做的出来吗?你看看QQ在电话通信页面,点击右下角缩放图标,缩放成一个头像的这种动画,你会做不?3. 还有这些大的功能点既然用了两年第三方类库,那么比如图片缓存这类,看过源码实现没?如果自己来实现的话,有哪些Caching Algorithms?该怎么取舍?各种常用的第三方类库你研究过原理没?你的App在和服务器交流数据的过程中安全性怎么样?你是不是要研究一下加解密?HTTP理解的够清楚吗?想没想过自己来写接口?或者更甚至一些自己来写个简易的HTTP服务器?接口部分甚至用CGI来实现也可以啊!要写服务器,那应该要了解一下网络部分吧?TCP/IP 协议得熟悉吧?然后Wireshark各种抓包得会吧?网络这块顺带过来之后,即时聊天类的App采用的什么技术?选 xmpp 还是 mqtt 还是自己写?正好可以顺势了解一下吧!iOS SDK里面的各种API你掌握到了什么程度?这些功能模块排除地图、通讯录这种,说些高级的比如CloudKit、Extensions、TextKit、AirDrop、PassKit?觉得这些模块在自家公司的项目中压根没用过?可是看看你手边的App!4. 其它专业化的方向视音频处理做过吗?此类诸如豆瓣FM、虾米音乐、喜马拉雅、QPlayer这类的App你去研究过他们吗?还有VoIP这类的,我实习的时候做过这种╮(╯_╰)╭游戏开发方向有没有兴趣?自己有没有去研究过呢?(反正这个我是真没有╮(╯_╰)╭)5. 项目安全优化等项目中写单元测试吗?UI Automation 自动化测试做的怎么样?持续集成平台诸如Jenkins等会用吗?App的各种性能优化、Crash的统计分析等等你做了没?App本地数据储存够安全吗?你对逆向了解多少?敏感部分是否做了代码混淆?6. 知识体系要持续更新官方的文档、国外的相关书籍采用的语言都是Swift,难道你不准备学学?除了native的,现在的HTML5也很火啊,难道不准备学?英文练习的怎么样了?官方所有的开发者文档以及历年的WWDC视频看完了?这么多书,这么多大牛的博客,你难道从中一无所获?官方1k多的文档不说,发下我的部分书单给你看看吧:=====================================================================更新时间: 统一回复下:首先我不是大神。但是一堆呵呵着说臣妾做不到,这是有很多年工作经验的人写的,还什么我语气有问题,就是各种这样冷嘲热讽balabala的,我真是醉了。敢情我这心平气和的写个答案您还不乐意,还得要以低三下四一脸巴结相的语气照顾各位爷的心情啊?麻烦你投个简历,去那些要求比较高的公司面个试好吗?实在不行,你也可以看看人家那些招聘的需求啊,你不行有人行,傲娇没用。。私信以及评论求书单的,还让我打包发给你,别为难我好嘛?给也不是,不给也不是。我承认有些电子书是网上找的电子版的,可是也有好多电子书都是我花了大价钱买的。随便举个列子,比如matt大神的这本,$29买的:就算我批量打包发给你们,就这么轻松得来了也没什么意义,你真的觉得你能一本本的看完?估计也就搁置那儿了,跟你买了书就扔一边了一个道理。在下建议,你觉得你的知识点哪块需要补充,查查有没有相关的书籍或者文档,去美亚或者豆瓣看看书的质量怎么样,然后再决定是买还是找盗版还是怎么的都行。比你屯一大堆书强多了。。。就算我批量打包发给你们,就这么轻松得来了也没什么意义,你真的觉得你能一本本的看完?估计也就搁置那儿了,跟你买了书就扔一边了一个道理。在下建议,你觉得你的知识点哪块需要补充,查查有没有相关的书籍或者文档,去美亚或者豆瓣看看书的质量怎么样,然后再决定是买还是找盗版还是怎么的都行。比你屯一大堆书强多了。。。什么英文不好的balabala,英文不是母语,谁都有一个从不好到好的阶段。看书坐不住看不进去balabala,去健身房跑跑步,回来撸一发切入贤者模式再试试?时间都是挤出来的,耐心也是一点点练出来的,我说熟悉网络,自己写简单的HTTP服务器,说起来是轻松。可实际没少吃苦头啊,那大部头的书自己看着都怕,可这还不是自己忙里偷闲挤出来的时间,趁坐地铁,趁餐馆点饭,慢慢来,多给点耐心、压力、动力,一定看的进去!通过实际的项目、看书、看文档,能力肯定能不断的提高。还有,
这位兄台说高票答案有问题,他指的不是我这个答案,你们自己判断^_^
我算不上什么高级工程师,但我在BAT在二线互联网公司创业公司都呆过,见过一些算得上『高级iOS工程师』的人,我就先谈谈他们的共性吧。这些共性不是成为『高级』的充分条件,但肯定是必要条件。如果这些都做不到,那也算不上高级。1. 对计算机基础知识的了解很全面。网络协议TCP,UDP概念要懂伐...Base64不是加密要知道伐...线程和进程区别要知道伐...诸如此类2. 对iOS开发的基础知识了解的很扎实。Runtime大概几个概念,msg_send怎么找方法的流程,大概能比较清晰讲一遍伐...多线程有几种写法、各个场景下的不同用法知道伐...hittest和respond chain的流程能讲清楚伐...3. 良好的沟通能力、需求理解能力,乃至对未来需求的修改的判断能力。这个能省下N多因为理解不对或者改需求引起的加班时间。这个在大公司很重要,不过很多时候程序员的沟通能力取决于PD和交互的能力。4. 学习能力很强,看一个技术文档,很快能抓到重点,看一个bug,一分钟内能找到stackoverflow,然后扫一遍就知道怎么改。其实有时候一个老手遇到一个很简单的问题不知道或者出错太正常了,但很少会因为一个这样的问题卡住。说句老实话,这几点其实看上去要求都不高,没有提到业界影响力,没有提到懂算法,没有提到会很多黑科技。但符合这几点的人才,我接触下来,其实并没有那么多。说道底,因为行业不算光鲜,国内程序员群体的平均能力良莠不齐导致的。为什么很多大公司对学历有要求,或者对在别的大公司工作过的人特别青睐。因为对他们来说,上面提到的1、3、4条,学历好、待过大公司的人,会有更大的概率符合。其实我没有回答题主的问题,我说了『是什么』,而没有回答『怎么做』,如果看到的人能有点启发,那就可以了。
谢邀,这题不敢妄言,毕竟在 BAT 里面一些高级、资深啊什么的,其实很水的,你懂的。 在我个人的概念里面,高级 iOS 工程师的定义,其中 iOS 只占了一半,这一半是熟悉 Objective-C、Swift、Cocoa、Xcode、App Store 等等,其实就是 语言 + 工具链 + 生态 另一半,是 高级工程师,高级工程师是什么样的已经有很多的讨论了。
高级是多少级,技能树点亮多少了?
等你什么时候基本可以写出自己可控的代码,不依赖调试时,就可以进阶了。
在我看来无所谓ios高级工程师,只有软件高级工程师。我从08年第一代ios sdk开始开发,至今已做ios开发7年,越发感受到高级与初级的本质区别还在于计算机的基础知识是否扎实,是否知其然且知其所以然。举个例子,你可能知道多线程怎么调用,但当遇到一个线程同步的问题时,你会怎么去解决和对待呢?高级工程师应该需要去深入多线程同步机制,理解有哪些锁,每种锁的适用场景是什么,每种锁的原理是什么,挖的更深甚至可以去了解在硬件层级是如何处理多线程任务的。从初级工程师逐步晋升到高级工程师或者顶级工程师,关键看你对待问题的态度,如果你能将每个问题深入研究到计算机基础层面,日积月累,成为高手指日可待。ps:同意cyan同学的看法,bat的水货高级工程师太多,切勿以头衔论实力。
针对楼主的情况,你很明显还处在搬砖的阶段,还不能算一个合格的iOS工程师。如果要进阶,推荐你看以下两本书。1,图灵程序设计丛书&Objective-C高级编程:iOS与OS X多线程和内存管理2,Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法如果你把这两本书看完基本上对objective-c这门语言已经到了登堂入室阶段了,称的上一个合格中级工程师,这两本书唯一的遗憾是有几个盲区没有涉及到。1,runloop,两本书里都没有讲runloop,所以你得自己去研究runloop,建议你看先搞懂线程,再去研究runloop,最好是runloop的源码2,再就是ui的基本功了,不要说你懂ui,比如iOS
导航栏机制,传递链和相应链,等等这些都要去理解深入。以上如果你都懂了,应该算一个高级工程师了。
我一直认为最出色的移动端程序员(其实所有的程序员)应该是个全栈程序员,因为我认识的好多优秀的ios开发工程师都是有一定的服务端开发背景,搭的了服务端架构,写的了前端js,和产品撕的了逼,做设计有自己的理由,写的了ppt,做的了演讲,一个优秀的开发工程师,成为一个全栈,我在路上
已有帐号?
无法登录?
社交帐号登录【ios开发高级工程师待遇|ios开发高级工程师工资】-看准网
ios开发高级工程师工资水平(元/月-税前)
¥13793职位平均工资
数据说明:
图表中根据看准网企业员工发布的职位薪酬数据统计所得,工资数据受地域、工作年限,用户分享数量等多种因素影响,仅供参考。
本数据取自&563&份样本,最新更新时间:
ios开发高级工程师工资待遇
共563条工资(441个职位)
平均工资/月
最高工资 ¥16,125
最低工资 ¥11,200
最高工资 ¥6,500
最低工资 ¥6,300
最高工资 ¥50,000
最低工资 ¥20,000
最高工资 ¥16,000
最低工资 ¥15,600
最高工资 ¥16,900
最低工资 ¥12,000
向途意境 IOS高级开发工程师(4条)
请你或以查看更多工资信息
互贷网 IOS高级开发工程师(4条)
请你或以查看更多工资信息
敢聊 IOS高级开发工程师(4条)
请你或以查看更多工资信息
合广众 IOS高级开发工程师(3条)
请你或以查看更多工资信息
杭州短趣网络传媒技术有限公司 IOS高级开发工程师(3条)
请你或以查看更多工资信息
图例: 工资范围
说明: 所有工资数据来自用户匿名分享。工资水平受地域、工作年限等多种因素影响,仅供参考。
晒晒我的工资&&&帮助更多的人,及时了解自己岗位的工资信息!
&在职&&&&&离职
为保证向用户提供的内容的时效性,我们只接受最近两年的职位工资
基本工资元
销售提成元
其他收入元
感谢您在看准分享您的工资信息,TA将帮助大家更好的了解该公司的薪酬待遇!
ios开发高级工程师热门公司面试
8条信息1&&4.2
4条信息2&&4.2
2条信息3&&4.1
2条信息4&&4.0
2条信息5&&3.7
2条信息6&&3.8
2条信息7&&3.9
2条信息8&&3.8
2条信息9&&4.0
2条信息10&&3.7我从事 iOS 两年了,感觉只会搭建 view,用第三方库,还有些机械代码?真的迷茫了。想进阶,具体从什么大点入手呢?
说实话,两年时间只会搭建view、使用第三方类库,真的不能称为一个合格的iOS开发工程师!1. 先说OC部分既然做了两年了,对Objective-C足够了解吗?OC是如何基于C来进行的封装?解释一下这两行代码啥意思?typedef __attribute__((NSObject)) CGGradientRef GradientObject;
@property (nonatomic, strong) GradientObject storedGradient;
protocol、category这样的东西应该要手到擒来才是? 多线程部分的知识点掌握是否扎实?runtime这种黑魔法研究过没?代码足够优雅、后续维护容易吗?各种设计模式也得会吧?2. 再说UI部分既然写了两年的view,那么能快速仿造市面上这些主流App的UI吗?使用Reveal分析过微信、豆瓣、网易新闻、知乎、QQ、苏宁、淘宝、支付宝的UI吗?使用Charles去抓过他们的接口吗?UI研究稍微深一点,比如侧滑菜单这种要怎么实现?如果你要做实现应该要了解UIView和UIViewController,UIViewController和UINavigationController的关系了吧?我嘞个草,UIView一堆方法,UIViewController一堆方法,到底都是干嘛的啊?你难道不好奇?这块知识点一直是你的盲区,你能忍?我忍不了!UIView再往深了看,下面还有CALayer,你研究过没?为什么修改CALayer的某些property默认会有个动画产生呢?那么Animation、UIKit Dynamics、Drawing、Graphics这些随便拎出来一个,够你研究一阵了吧?你看看比如网易新闻,在新闻详情页面上拉,回到新闻列表页面的这个动画做的出来吗?你看看QQ在电话通信页面,点击右下角缩放图标,缩放成一个头像的这种动画,你会做不?3. 还有这些大的功能点既然用了两年第三方类库,那么比如图片缓存这类,看过源码实现没?如果自己来实现的话,有哪些Caching Algorithms?该怎么取舍?各种常用的第三方类库你研究过原理没?你的App在和服务器交流数据的过程中安全性怎么样?你是不是要研究一下加解密?HTTP理解的够清楚吗?想没想过自己来写接口?或者更甚至一些自己来写个简易的HTTP服务器?接口部分甚至用CGI来实现也可以啊!要写服务器,那应该要了解一下网络部分吧?TCP/IP 协议得熟悉吧?然后Wireshark各种抓包得会吧?网络这块顺带过来之后,即时聊天类的App采用的什么技术?选 xmpp 还是 mqtt 还是自己写?正好可以顺势了解一下吧!iOS SDK里面的各种API你掌握到了什么程度?这些功能模块排除地图、通讯录这种,说些高级的比如CloudKit、Extensions、TextKit、AirDrop、PassKit?觉得这些模块在自家公司的项目中压根没用过?可是看看你手边的App!4. 其它专业化的方向视音频处理做过吗?此类诸如豆瓣FM、虾米音乐、喜马拉雅、QPlayer这类的App你去研究过他们吗?还有VoIP这类的,我实习的时候做过这种╮(╯_╰)╭游戏开发方向有没有兴趣?自己有没有去研究过呢?(反正这个我是真没有╮(╯_╰)╭)5. 项目安全优化等项目中写单元测试吗?UI Automation 自动化测试做的怎么样?持续集成平台诸如Jenkins等会用吗?App的各种性能优化、Crash的统计分析等等你做了没?App本地数据储存够安全吗?你对逆向了解多少?敏感部分是否做了代码混淆?6. 知识体系要持续更新官方的文档、国外的相关书籍采用的语言都是Swift,难道你不准备学学?除了native的,现在的HTML5也很火啊,难道不准备学?英文练习的怎么样了?官方所有的开发者文档以及历年的WWDC视频看完了?这么多书,这么多大牛的博客,你难道从中一无所获?官方1k多的文档不说,发下我的部分书单给你看看吧:=====================================================================更新时间: 统一回复下:首先我不是大神。但是一堆呵呵着说臣妾做不到,这是有很多年工作经验的人写的,还什么我语气有问题,就是各种这样冷嘲热讽balabala的,我真是醉了。敢情我这心平气和的写个答案您还不乐意,还得要以低三下四一脸巴结相的语气照顾各位爷的心情啊?麻烦你投个简历,去那些要求比较高的公司面个试好吗?实在不行,你也可以看看人家那些招聘的需求啊,你不行有人行,傲娇没用。。私信以及评论求书单的,还让我打包发给你,别为难我好嘛?给也不是,不给也不是。我承认有些电子书是网上找的电子版的,可是也有好多电子书都是我花了大价钱买的。随便举个列子,比如matt大神的这本,$29买的:就算我批量打包发给你们,就这么轻松得来了也没什么意义,你真的觉得你能一本本的看完?估计也就搁置那儿了,跟你买了书就扔一边了一个道理。在下建议,你觉得你的知识点哪块需要补充,查查有没有相关的书籍或者文档,去美亚或者豆瓣看看书的质量怎么样,然后再决定是买还是找盗版还是怎么的都行。比你屯一大堆书强多了。。。就算我批量打包发给你们,就这么轻松得来了也没什么意义,你真的觉得你能一本本的看完?估计也就搁置那儿了,跟你买了书就扔一边了一个道理。在下建议,你觉得你的知识点哪块需要补充,查查有没有相关的书籍或者文档,去美亚或者豆瓣看看书的质量怎么样,然后再决定是买还是找盗版还是怎么的都行。比你屯一大堆书强多了。。。什么英文不好的balabala,英文不是母语,谁都有一个从不好到好的阶段。看书坐不住看不进去balabala,去健身房跑跑步,回来撸一发切入贤者模式再试试?时间都是挤出来的,耐心也是一点点练出来的,我说熟悉网络,自己写简单的HTTP服务器,说起来是轻松。可实际没少吃苦头啊,那大部头的书自己看着都怕,可这还不是自己忙里偷闲挤出来的时间,趁坐地铁,趁餐馆点饭,慢慢来,多给点耐心、压力、动力,一定看的进去!通过实际的项目、看书、看文档,能力肯定能不断的提高。还有,
这位兄台说高票答案有问题,他指的不是我这个答案,你们自己判断^_^
&p&高票答案其实有点偏题,楼主问的是如何进阶,并不是高阶人士应该具备的哪些素质。&/p&&br&&p&就像一个人问如何才能成功,如果你告诉他成功人士都是“永不放弃,艰苦朴素,吃苦耐劳,对事执行快准狠,对人温良恭廉让……”,他听完懵逼一阵后估计会想打你……(开个玩笑…:D)&/p&&br&&p&“那我照着高阶人士的技能树一条一条去学习,我不就也高阶了么?”&/p&&p&憋闹,高阶人士说自己精通多线程GCD编程,你跟着去研究了一番,熟练掌握了dispatch_async的用法,觉得多线程也不过如此嘛……但之后你会发现,你除了知道了几个新api,其实技能并没有得到实际的提升,你还是不知道为什么有的代码在main_queue里执行以及在worker queue里执行会有不同的结果……&/p&&br&&br&&p&&b&事实就是,很多问题你没有亲自遇到并解决,是没办法真正掌握的。&/b&&/p&&br&&br&&p&扯远了,说回如何进阶的问题。从操作性的层面,我觉得主要可以有以下几个方向:&/p&&br&&p&&b&&u&了解苹果的新技术&/u&&/b&,绝大多数苹果的新技术都是为了提高开发效率而服务的(虽然有的也有坑,比如@IBInspectable这玩意儿,但毕竟是少数。),总体绝对是性价比很高的学习。&/p&&p&“那文档,好长啊,看不完怎么办
T_T”&/p&&p&请移步app store,搜索WWDC。里面有历年WWDC技术会议的内容,近两年的还配有字幕 以及demo project,学起来趣味性十足,比看Ray wenderlich的教程还简单……&/p&&br&&p&&b&&u&修炼基本功&/u&&/b&,&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& , 现在也支持Swift了。总体难度适中,不像ACM那么刁钻。非常适合当做了解语言特性以及锻炼自己基本编码能力的地方。 虽然算法没有用……但能写出算法的能力,很有用。这个训练能够潜移默化的提高你在平时写代码的速度。&/p&&br&&p&&b&&u&了解FRP(Functional
Reactive Programming&/u&&/b&&b&&u&)&/u&&/b&,对应框架就是ReativeCocoa和RxSwift,没错,这并不是必须的。但我还是忍不住要安利一下。这是能够最直接,最显而易见的提供你工作效率的框架。&/p&&br&&p&&u&&b&学习别人造的轮子&/b&,&/u& github上有很多优秀的开发者的源码,其中很大一部分都有极高的学习价值。&a href=&///?target=https%3A///matteocrippa/awesome-swift& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&matteocrippa/awesome-swift&i class=&icon-external&&&/i&&/a& 这里是一个集合的,你可以根据自己感兴趣的库进行学习。(记住是学习……是研究怎么实现……是思考换你来做的话,你会如何做……不是pod install然后跟着readme使用一下就完了……),国内也有很多大神的框架值得学习,比如ibireme的YYKit。&/p&&br&&p&&u&&b&造轮子&/b&。 &/u& 学得差不多了,就该自己造了。当你第一次以框架/Api设计者而不是使用者的角度来思考问题,也能够获得很多的收获。这一步能带给你能力的提升是最明显的,如果说1-4 ,都是在韬光养晦的积累阶段。那造轮子,就是你在成为高阶工程师之路的收获阶段。&/p&&br&&p&@optional&br&&/p&&p&&b&&u&贡献你的知识&/u&&/b&,把你的心得,领悟的东西写成博客。或者把你看过优秀的英文文章翻译成中文,方便后来的国内开发者们快速掌握。这并不是单纯的做好事,分享的过程,你能让你有新的感悟,学到新的知识。利人利己。&/p&
高票答案其实有点偏题,楼主问的是如何进阶,并不是高阶人士应该具备的哪些素质。就像一个人问如何才能成功,如果你告诉他成功人士都是“永不放弃,艰苦朴素,吃苦耐劳,对事执行快准狠,对人温良恭廉让……”,他听完懵逼一阵后估计会想打你……(开个玩笑…
顶着高级头衔,但感觉我也只能算一个中级吧。&br&&br&1. 会熟练使用Profiler来调试应用性能。比如其中有一个很好的模板叫Time Profiler,会告诉你应用当中哪行代码花了最长时间,当你界面卡顿的时候,用这个可以很快找到优化点。&br&2. 写测试,写测试不仅仅可以帮助你找BUG,更重要的时会让你去思考如何更好地架构你的应用,其实很多好的工程师,代码架构能力都是很不错的。同时也会用OS X Server和XCode配置 Continuous Integration。&br&3. 可以轻松编写多线程代码,熟悉NSOperation,GCD等&br&4. 熟知一些常用的系统类库的原理和Best Practics,比如Core Data,这个玩意儿要玩得好,也是很花时间的。&br&5. iOS应用,UI占很重要的一部分,可能大部分时候你只需要使用默认的UI组件就行,但是有些时候,你必须要自己去实现一些UI组件和动画,这个时候Core Animation啊,UIDynamics啊都是很值得去学习的点。&br&&br&我一般的路径是,当要解决一个问题或实现一个功能的时候,我尽量自己去实现,但当自己写的东西无法达到预期的时候(性能太差,实现不了或代码逻辑过于复杂)我才会去找第三方库。&br&&br&还有就是,如果你做了两年都觉得自己没啥大进步的话,那问题可能是你手头的项目并没有什么高的要求,没有性能问题要你解决,公司也对很多细节问题无所谓,那作为有要求的工程师,你要么自己有项目可以帮助自己提高(比如我总是会自己写应用来学习一些新API和技术);要么就换家公司吧。
顶着高级头衔,但感觉我也只能算一个中级吧。1. 会熟练使用Profiler来调试应用性能。比如其中有一个很好的模板叫Time Profiler,会告诉你应用当中哪行代码花了最长时间,当你界面卡顿的时候,用这个可以很快找到优化点。2. 写测试,写测试不仅仅可以帮助你…
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 ios高级工程师简历 的文章

 

随机推荐