阅读 21

iOS开发从15K到23K,关在家里的日子我都做了些什么!

大家好,这是正在努力进阶iOS的某程序员博客!目前目标30K,希望可以和大家一起进步和成功!

本文所有观点,仅代表个人哦~ 还是希望大家能耐心看完! 查漏补缺是作为一个程序员应该具备的素质,这也是分享本篇文章的初衷!

什么是iOS开发?

iOS开发的标准语言是objective-c。是c的一种超集, 它是对c的扩展,支持面向对象编程。像后来的一些高级语言java,c#等都借鉴了该语言的面向对象特性。 当然在iOS开发过程中,也支持c/c++语言与原生的objective-c混编。

容易上手,难以进阶!这其实是大部分开发语言的通性,这也是导致入行人多,转行人也多的重要原因,毕竟红利风口,都想分到这杯羹!

瞎吹吹

个人认为iOS开发这个职业,远比目前从别人口中得知的更持久、而且坚固! 早在去年,库克就已经将**“苹果倒闭”**这几个字眼解释的很清楚,一个储备资金2600亿美元的公司可没有想象中那么脆弱! 至于每天把“要完了!”这几个字挂在嘴边的开发者,除了技术菜,也没有更好的解释了,毕竟坚持iOS开发的前辈大佬们都过的挺好的~

井底之蛙的轻易否定,只是来源于他们没有见过彩色的世界而已! (毕竟只是嘴嗨劝退别的开发者的人也不在少数)

所以,无视掉这种人这么荒谬的观点,那些真正有技术,懂得学习的iOS高级开发工程师,现在正在各大企业(腾讯百度阿里等),一句话,不要有比上不足比下有余的态度.努力学习.

真正努力的人,即便到了完蛋的那一天,他也会有另一个吃饭的“手艺”!嘴嗨不是他们的特点~

怎么学习!

攻克难关,是每个真正做研发的开发者所具备的品质,也是技术成长最快的方式!

信念:iOS本身就不是一个很难学习的技术,坚持下去就能胜利!

独立:从别人口中得知的,永远是别人脑子里的东西,你的脑子里装了些什么?

一直保持学习的心:当前互联网技术更新迭代技术大家都有目共睹,也许睡醒之后就是下一个技术红利期,怎样让自己领先于别的开发者,保持学习的习惯!

目标:目标和责任是支撑你走下去的重要支柱!实现你的目标也是你增加自信的根源!

模仿:取其精华,去其糟粕!这是缩短你学习时间,增加技术层面的重要动作!优秀的第三方或者APP往往倾注了作者最优秀的代码思想,所以尝试把它装到你的脑子里吧~

你的职业规划是什么?

从iOS这个行业来说,找不到工作只能从自身找原因! 因为简历写的不好?因为现在大部分公司不要iOS开发?因为没有学历? 不,都是因为你菜 iOS本身薪资待遇就优于其他大部分语言,不对你要求高,对谁要求高?

程序员本来就是一个需要努力,需要技术的行业!文凭和经验技术,两者分开哪个都可以给你带来好的结果,文凭高是因为别人前20年的努力,技术好事因为别人后5-10年的努力,所以不需要抱怨!想要好的回报,就需要付出你的时间、精力和头发!

种一棵树最好的时间,是十年前或者今天! 不管是想转行还是坚持,现在就开始做吧!

外包&产品

其本质的区别就是,模式不一样! 说明白点,搬运和创造!

先说外包公司的模式吧,一个好的外包公司,可能福利会好很多,阶级斗争不是很明显,大家就像打工的一样,拿着工资和项目提成,项目比较紧,成熟的外包公司拥有统一化的管理,和优秀的代码规范;

但如果是比较差的外包公司,那就不一样了,整体项目以完成为目的,不需要维护,往往只需要做出来一个雏形,不会到处崩溃,交货之后,此app将再也没有关系,如果需要维护,就再交钱。不论好与坏的外包公司,他的盈利模式就像是流水线,只需要出货量,不要求质量。这对于刚刚步入程序员行列的人会很不利,会养成不用维护,不用注重用户体验,不用做流畅度,耗电量,并发量的测试的坏习惯,得过且过。

总之不用考虑太多。这也是市面上大公司有些会看你之前的工作经历的原因,如果是外包,对不起,我们不要。

产品公司的模式,就是升职加薪,干得越久福利越好,万一你比较幸运,有幸成为未来几年要火的产品的开发者,那就是offer不断啊。产品公司往往分为有成品项目和创业两种。

成品项目人员变动一般较少,阶级斗争比较严重,为了职位更上一层楼,勾心斗角。不过在开发团队还是比较罕见的,大家大部分都是想跳槽的。

创业公司往往需要人才,全面性的人才,就单单说iOS,一个创业公司可能会要求你会 直播,支付,蓝牙,聊天,这也都是老功能了,现在都是什么 AR啊 人脸识别啊。你不学习新知识,注定被淘汰。外包公司也有一点好处就是,涉及的应用多,那功能也就自然而然比较多(如果全部接的那种简单的应用当我没说)。

iOS开发进阶学习路线!

底层:

  • Runtime
    • 对象
    • 属性
    • 方法
    • 协议
  • 应用加载流程
  • Clang&LLVM
  • KVC&KVO
  • 多线程
  • Block
  • AOP切面编程
  • 性能优化
  • Socket
  • 自动打包
  • 持续集成
  • 单元测试

算法:

  • 线性表
  • 队列
  • 数组
  • 树和二叉树

目前来说,底层和算法基本是面试官最喜欢的方向,所以在下次面试前,打好基础是必须要完成的路线! 至于更多的技术,比如目前很火的音视频,视觉、flutter、swift这些!可以根据个人精力来学习,优先掌握本应该掌握的技术,再横向发展是我目前在做的!

**视觉方向:**如果是为了满足部分招聘需求的话,建议OpenGL ES和metal都需要掌握,虽然metal是苹果说要替代的框架!但是目前大部分公司还是优先于OpenGL的!

**flutter方面:**如果只是为了让自己面试或者简历中带有亮点,入门完成项目就行,毕竟深入探索需要花费大量的人力和时间成本,把这花在更快捷的技术上比较好!

**swift方向:**除非是专门做swift的公司,不然OC与swift的项目分化还是比较清楚的,同样,其实OC底层和swift底层有着比较大的相同原理,优先OC底层学习!毕竟这是你熟悉的语言!

至于其他的更多的技术内容,Python、JS等!根据个人精力来分配,在自己本职工作薪资待遇没有达到自己的目标时,显然吃饭更重要!

最后:

最近有从朋友那里拿到一些iOS面试题总结的pdf文档!因为平台不能发送文件,需要的朋友可以添加QQ群:679884541,群里面都是iOS开发者,有什么问题和牢骚大家一起交流吧!