非科班应届硕士面试 iOS 初级开发被打击到了

2023-06-28 09:19:22 +08:00
 drainlin

我今年毕业,之前在学校里自学过一段时间 iOS 开发(大概一年多) ,原生和 flutter 都有,上架 AppStore 几个小项目(现在开发者过期了) 像做一些大学课程表这种应用,查查成绩,交空调和电费之类的,还有一些第三方音乐播放器 但是全部都是自己亲手做的,包括网站后端 api ,应用 UI ,发布应用等等 毕业后想找一个初级 iOS 开发的工作,面试的时候被各种怼 这点基础不牢固啊,那里概念理解不清啊,我都觉得自己一无是处 感觉信心受挫,我的要求其实不高,公司对新人也就 5k ,在成都我也能接受 结束 2.5 个小时的面试+笔试,感觉整个人都不好了 可能是我太脆弱了

11731 次点击
所在节点    Apple
117 条回复
SiLenceControL
2023-06-28 11:30:53 +08:00
确实是 ios 行业问题,如果去日韩或者北欧,基本都可以进入高收入圈了。。
beimenjun
2023-06-28 11:35:57 +08:00
稍微说一下我刚才出的几道。

1. 考察的是 convenience init 和 required init 的概念,实际在工作中体现的时候,是你写的类的初始化方法,什么时候该调用 super.init(),什么时候应该调用 self.init() 什么时候不需要调用。

2. unowned 和 weak 其实字面意思就很直观了,这两者使用的时机主要考虑你是否确定 closure 里面的对象执行的时候有么有可能被释放,为什么官方很多时候会写 unowned ,你如果不了解这个,会影响你看不少代码。而且退一万步,你如果 weak 都不了解,那你写出的 closure 大概率是有坑的。

3. UITableView 的 Cell 的重用机制啊,这个机制不了解,你写出来的 TableView 稍微复杂点(比如一些元素在这个 cell 上会隐藏,另外的 cell 上不隐藏),要么你根本不重用 Cell ,要么你写出的 Cell 视图元素可能会错乱(该隐藏不隐藏)

4. Intrinsic Content Size 这个属于 Auto Layout 的基础,这个自动布局为什么这个视图比那个视图大,这个视图为什么有最小 size ,自定义视图怎么放在视图里面 Size 合适,全看这个了。

但凡工作经验超过一年的 iOS 开发,是不合适一点都不知道的,尤其是第三点,如果一点都不知道,公司招到你这种多年经验的 iOS 开发真是招到宝了。
beimenjun
2023-06-28 11:38:22 +08:00
@SiLenceControL 韩国情况不清楚,但是据我所知的日本 iOS 和挪威 iOS 开发工作在社会里应该算是平均水平。这两个地方都属于程序员不是国内这种收入层面相对其他行业可以用“鹤立鸡群”来形容的。
drainlin
2023-06-28 11:41:04 +08:00
@beimenjun 可能我自学的时候确实没有深入思考过这些问题
ichanne
2023-06-28 11:47:25 +08:00
@hjw45611 这事我也干过,哈哈
Skifary
2023-06-28 11:50:04 +08:00
@drainlin 不用在意那几个问题,这些问题都是工作中遇到以后稍微研究一下就能弄明白的问题,可以区分一个人有没有相关的经验,不适合评判个人能力。
lmmlwen
2023-06-28 11:57:53 +08:00
成都是一样的
beimenjun
2023-06-28 12:10:45 +08:00
其实 iOS 开发初级水平主要内容主要是几部分:

1. Swift 语言,

- 这里你起码得达到知道有 map ,reduce 之类的稍微高阶一点的 API ,不一定要会用,但是要知道有这么些东西,做什么的
- 对 Array Set Dict 做增删改查大概有经验
- 对初始化,结构体,类要有对应的概念
- 一个东西什么时候可以释放啥的也得知道
- Optional 是什么,强制解包有什么问题
- guard 是干嘛的,if let 什么时候用等等
其实这些基本在官方教程 https://docs.swift.org/swift-book/documentation/the-swift-programming-language 都讲的挺清楚,你把近几年的特性排除掉,差不多就是要看的内容。

2. 一般现在还是要求 UIKit 的要求的,所以一般要求能写出一个 UICollectionView/UITableVIew 的水平,大概要知道这几点:

- 添加进来该注册 cell 需要注册的,这些 cell 是循环使用的
- 这些 view 的 delegate 和 datasource 该添加也是要添加的
- UICollectionView 还有 layout 的概念,这个 layout 是什么时候赋值的
- 如果在 cell 加 button ,怎么让这个 button 添加响应之类的
- 如果你要更新数据要怎么更新,如果只更新一两个数据怎么做

除了上面说的这两个 View

你可能还得知道

- AutoLayout 的布局,起码得知道大概是怎么布局,怎么居中一个按钮,什么是 SafeArea 等等。
- viewDidLoad/viewDidAppear/viewWillAppear 几者的执行顺序
- 发 notification ,监听 notification
- GCD 的基础使用(知道同步,异步的概念,UI 元素为什么不能在异步线程修改等等)
- 一些权限(位置 /照相机)获取请求要分几步(加 plist ,弹授权,错误处理)

3. Xcode 相关内容

- 添加项目
- 加断点,debug 怎么调试
- 怎么 print 到 console
- 怎么在 console 里面 po 之类的

这些知识巩固完,基本上初级岗位遇到不会的问题(排除掉某个比较冷门 View 的使用这种有文档就会的东西)基本属于超纲的。

P.S. 我虽然知道现在就业市场不好,但是 5K 想找个这些都会的,哪怕是成都都有点给少了。
hustlzp
2023-06-28 12:12:10 +08:00
老哥不要在意,之前也被打击过 😂
方便加个微信不,我的微信号:hustlzp
iOCZ
2023-06-28 12:22:55 +08:00
5K 我觉得是 10 年前的价格了。
akring
2023-06-28 12:25:27 +08:00
@ichanne 会用 unowned 的不是精通就是新手 😂
bloomy8
2023-06-28 12:48:01 +08:00
@beimenjun 现在已经开始卷 swift 八股啦
SiLenceControL
2023-06-28 12:59:36 +08:00
@beimenjun 国内这个程序员收入还是因为这是唯一一与世界接轨的行业,在日本挪威平均水平已经很高了其实,初代移民如果不是什么理工科博士,很难达到这水平
sankemao
2023-06-28 13:10:24 +08:00
客户端性价比太低了,转前端
jshmysq
2023-06-28 13:24:38 +08:00
找工作就像相亲,接触之前不知道对方到底啥样。
可能会遇到合适的,但更多的是不合适的和奇葩的。
多找找,慢慢找。
l1993419419
2023-06-28 13:26:57 +08:00
5k 工资面 2.5 小时,什么牛马公司
Daniel17
2023-06-28 13:29:55 +08:00
5k 要求这么高吗
proletarius
2023-06-28 13:34:23 +08:00
应该学 vue 和 react 的不比这好找工作
fengjianxinghun
2023-06-28 13:34:27 +08:00
@Ackvincent 别做梦了,更卷,不会 llvm 编译器优化别想找到工作
1996v
2023-06-28 13:40:05 +08:00
@FreeEx 是真的,而且特别还是成都这种小公司非常多的地方。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/952264

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX