开篇
又到了下一届学弟找工作的时候啦,最近我简单的询问了几个学弟的情况都不是很乐观,首先不可否认的时候现在的大环境就业确实是很难的,但是难也是相对而言的,我们要从自身去出发,发现自己的不足,是否是自己的学习闭环出了问题,又或者是我们的学习成果达不到对标的需求的岗位。
学习方法
首先简单的说下我的学习方法,因为主要是给学弟们看的,我也就不怕大家笑话,自告奋勇,不要脸的来做下分享。 首先学习的话要是有目标的,朝着目标不断的迭代递进,如果对于软件工程有了解的话,我觉得学习的过程就是一个敏捷开发scrum的一个迭代周期,简单的说就是行成一个闭环的学习,周期性的review,找到自己的缺陷,feed到下一个周期的学习中。不再多做赘述,因为我本身也不是很了解,而且自己也在不断的探索中。
iOS基础知识
iOS的基础知识的话在面试中也是经常被问到的,我总结出三个方面
- C语言基础(掌握即可)
- Foundation基础 (常见的掌握)
- UIKit基础 (常见的布局,UI要会)
c语言基础就不再多说了,因为我们现在面对的主要是应付面试,找到一个我们理想的工作。
Foundation基础
Foundation的基础支撑着整个iOS的开发,从最基本的方法调用,到高级的runtime的应用都是属于Foundation框架的基础,这里我罗列下我所知道的关于Foundation基础在面试中经常被问到的问题,由于我自身能力有限,而且面试的主要是针对初级iOS开发所以问题含量有限。
- 关于属性关键字的运用 (strong,weak,copy…)
- OC动态性的理解
- runtime的理解
- 内存管理
- block的原理与block循环引用的解决
- 多线程的应用
- Runloop的应用
UIkit基础
- 常见UI布局
- 自定义UI
- 常见控件的运用
网络基础
- http与htpps区别
- Tcp/IP 相关知识
- 三次握手/四次挥手 目的
- session/cookie的作用
操作系统基础
- 线程与进程区别
- 银行家算法
数据结构与算法基础
- 基本的排序算法
- leetcode经典题目
其他
- 设计模式的理解
上面举得例子是我认为重点的,其他部分可以参考网上的面试题目,多多使用牛客,leetcode,来刷面试题,可以找学长进行一些内推操作。
面试的重心放在iOS基础和数据结构与算法,因为时间原因和最近没有面试的经历,所以暂时想到这些,有不明白的可以及时来问我,我最近也会再补充题目。
最后
希望各位工作顺利,前程似锦。