喜提offer,对于iOS开发看法和进阶学习路线总结!

大家好,这是正在努力进阶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开发者,有什么问题和牢骚大家一起交流吧!

原文地址:https://blog.51cto.com/14121524/2476011

时间: 2024-08-11 19:38:38

喜提offer,对于iOS开发看法和进阶学习路线总结!的相关文章

iOS之一个iOS开发人员完整的学习路线

iOS开发能力 掌握(最好是精通)OC语言和runtime各种细节(读过相关的clang源码和runtime源码为佳).精通基本的framework(Foundation,UIKit等,平时干活用得最多的).掌握一些第三方的轮子,这个主要看你的工作经验和习惯,如果自己有搞过不错的轮子最好(这点可以看出你的经验,眼界和解决问题的能力.) 基础知识 学校里的那些经典课程(数据结构,算法,三大浪漫基础,各分支研究领域的基础课程),这些反正都是老生常谈了...不好好打基础只能书到用时方恨少了.即使做不到

iOS开发初学者入门需要学习哪些知识?

都说互联网的快速发展改变着人们的就业生活方式,于是像程序员这样的技术性岗位就成为大家争相追逐的岗位,作为一项技术性iOS开发岗位,高门槛,高收入总是伴随着这一行业,所以现在越来越多的新人选择从事iOS开发工作,其中不乏一些转行的程序员. 那么什么是iOS,iOS是苹果公司最早于07年公布的移动操作系统.当时是设计的主要应用就是给苹果手机使用的,原本命名是os,但是这一系统的应用已经不仅仅局限在手机上了,像笔记本,pad都使用这一操作系统,最终在10年更名为iOS系统.iOS操作系统的特点就在于其

iOS学小程序从0到发布(适合iOS开发看)

Emmmm,最近一波失业潮.富某康.某团.摩某.京某.知某.某浪.58 某大面积裁员,那么在这个千钧一发之际,单纯iOS开发也着实不好过,回过头看一下,裁掉的都是单一选手,为了节约成本公司留下的都是身兼多职的全栈开发工程师. 那么iOS, 有些选手就要找对方向再学一手以备下次被裁员的不是自己.HTML,CSS, JS,小程序,React, React Native浮现在选手面前. 好,进入正题,今天开始从0入门小程序.咦,等等,为什么叫选手呢,因为当前环境下经济不景气都是去竞争口饭吃的,就像是在

iOS开发系列--Swift进阶

概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用Swift进行iOS开发还是不够的.在这篇文章中将继续介绍一些Swift开发中一些不常关注但是又必备的知识点,以便对Swift有进一步的了解. 访问控制 和其他高级语言一样Swift中也增加了访问控制,在Swift中提供了private.internal.public三种访问级别,但是不同的是Swift中的访问

IOS开发我该如何学习?

以前是  .Net 程序,学过 Java  .C语言,系统学习过 OC不过可以说是入门级的, 现在想学习 IOS开发 但发现 IOS 开始分家 为 OC和 swift 两大正营了,但对我来说这两个都属于新的东西. 我看过 OC语言基本能写简单程序,也会 Java 自学 Android 玩,发现 swift和我们的 Net .java都很相似. 如果我要学习 IOS开发 到底是学 oc 还是 swift? 现在我可以肯定的告诉你,学OC,现在应该可以说几乎很少会有公司用swift开发,因为不成熟,

李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述

前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C++.Objective-C,其中C++.Objective-C都是以C语言为基础,从C语言衍生出来的.从这讲开始,我们就暂时抛开iOS相关的知识,沉下心来学习传说中的C语言.正式学习之前,先提醒一句:学习一门语言的语法是比较枯燥的事,很像是在学习1+1等于几,不可能说,学习C语言语法过程中就能马上做

李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释

上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像亚洲人和非洲人,大家都有人类的结构:2只手.2只脚.1个头,只是他们外表不太一样,比如肤色.脸型.因此,你掌握好了一门高级语言,再去学习其他高级语言,那是相当快的.而且,很多其他高级语言,比如后面要学习的Objective-C,都是基于C语言.从C语言衍生出来的,好好学习C语言吧,绝对不吃亏. 一.

IOS研究之IOS开发笔记基础知识学习

本文是我的IOS学习笔记,都是基础的知识点,在这里记录下方面以后查询. 1,UIScrollView视图类能完成滚动的功能. 示例如下: UIScrollView *tableScrollView; tableScrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];//窗口大小 tableScrollView.contentSize=CGSizeMake(640, 480);//设置内容视图的大小 ta

【iOS开发-54】案例学习:通过UIScrollView的缩放图片功能练习代理模式的详细实现

案例:(在模拟器中按住option键,点击鼠标就会出现缩放的手势) (1)在ViewController.m中: --缩放东西是UIScrollView除了滚动之外的还有一个功能,所以须要缩放的东西应该先放在UIScrollView里.比方此处的imageView: --而我们在缩放时候,scrollView自己是不知道我们要缩放哪个控件的,所以scrollView须要一个代理来告诉它.这个代理一般就是我们的控制器: --而控制器要成为它的代理就必须遵守它的协议. --控制器在接受协议后,就能够