写点什么

iOS 开发面试 - 如何打破 30 岁的中年危机

作者:iOSer
  • 2022 年 4 月 26 日
  • 本文字数:2018 字

    阅读完需:约 7 分钟

程序员圈子里一直流传着一个魔咒:30 岁的中年危机。


他们说,30 岁程序员的精力和体力会无法避免地下降;他们说,30 岁程序员的丰富经验没有年轻员工的创新活力吃香;他们说,30 岁程序员会面临越来越窄的职业上升通道和日益复杂的社会压力。


这些“传说”令许多程序员每离 30 岁进一步,就更焦虑一分,并迫切寻找打破这一魔咒的方法。


而今天我要介绍的程序员可谓是“不一样的烟火”。非科班出身亲身证明了 30 岁之后的无限可能。

为什么年长的软件开发人员如此稀有?

  • 高昂的薪资


很显然,经验丰富且年龄偏大的软件开发人员拿到的薪资理应高于年轻人(尽管有时未必),而且他们的期望值也会偏高。问题在于需求。软件公司是否需要这些经验丰富的开发人员?他们值得雇佣吗?基本上可以说,答案是否定的。各个公司往往并不需要大量经验丰富的高级开发人员。每个公司都需要面对现实的问题,负担大量高薪的高级开发人员的压力可不小。


  • 换工作


绝大多数开发人员都会找到一种无需编写代码即可赚更多钱的方法。因此,换工作是另一个原因。


  • 永无止境的学习


技术、编程语言和框架的发展日新月异,所以许多年长(甚至年轻)的开发人员都跟不上时代的步伐。随着年龄的增长,人们还要负担很多其他责任。他们往往没有足够的时间来学习新技术。这是这个行业没有太多高龄开发人员的另一个原因。其他行业的专业人士就无需面对如此巨大的学习压力。程序员需要没完没了地学习新技术。


  • 环境


随着时间的流逝,大家会逐渐注意到自己成为了团队/公司的老一辈,周围是一群年轻的程序员。由于代沟以及其他的一些因素,许多人无法与年轻的程序员很好地沟通。他们感到在工作中很孤独。这是另一个原因。


  • 相对较新的行业


与其他行业相比,软件行业比较新。这是最大的原因之一。随着行业的发展成熟,希望我们有机会看到更多年长的开发人员。

那么程序员如何在这个行业生存

按照我工作年限,我应该是没资格来说这件事的,不过周边有不少朋友是 CTO,技术 VP 之类的高管,都是顺利度过“中年危机”的优秀人才,我专门为了这个问题去向他们请教,结合他们的意见,我总结了几条建议如下:


对于许多人来说,编程不仅仅是一份职业。最近,我在阅读一些相关的文章时发现,许多 50 岁以上,甚至 60 岁以上的开发人员仍在从事编程。他们中的一些人也有其他的工作机会,但是他们都拒绝了,因为他们喜欢编程。其实,能够从事自己喜欢的工作,是人生一大幸事!但是,无论你喜欢与否,如果想长期从事这个职业,就需要牢牢记住一些忠告。无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃。


紧跟年轻人的思想


除了便宜以外,各个公司喜欢招募年轻开发人员的原因还有两个:


  • 他们渴望学习。他们很好奇,喜欢学习新鲜的事物。他们学习的知识都很先进。

  • 他们可以激发很多新想法,并分享新的观点.


因此,请紧跟年轻人的思想。只要有年轻的心态,年龄无关紧要。


放下“技术包袱”


许多程序员都有技术“包袱”。请放下包袱,对新技术保持开放的心态。如果某个程序员长期从事某个特定的编程语言,而没有任何其他方面的工作经验,则一些招聘人员会视之为危险信号。


专注本业,做深做强


程序员这个职业和律师,医生,运营等职业不同,它要求从业人员更好的新技术学习能力,反而对于从业人员的经验要求不高。就单从程序语言来说,2000 年初 JAVA 才刚刚起来,不到 10 几年的时间已经代替 C++成为使用最多的技术语言。而 GO,Groovy,Python 等后起之秀也快速发展。这就要求这个行业的从业人员需要具备快速的技术学习能力。如果你是一个技术狂人,能够快速的学习新的技术语言,并对枯燥的 IT 技术甘之如饴,那么持续沿着技术这条路走下去也是一种选择。毕竟每一个行业,总需要能够钻研最底层技术的人。

关于 iOS 方面的技术储备

现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。



对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!


对于一些不知道学习什么,没有一个系统路线的程序员,这里给大家提供一个大概的思路:



iOS 的开发的三个阶段

iOS 初级工程师的技术要求


  • 精通Objective-C 语言基础

  • 精通UIKit 等 Cocoa Framework

  • 熟悉网络通信机制以及常用数据传输协议

  • 具备主流开源框架的使用经验


iOS 中级工程师的技术要求


  • 扎实的编程、数据结构、算法基础

  • 深入理解语言机制、内存管理、网络、多线程等

  • 精通常用设计模式、框架、架构

  • 良好的分析、解决问题的能力


iOS 高级工程师的技术要求


  • 解决研发过程中的关键问题技术难题

  • 调优设备流量、性能、电量等

  • 较强的软件设计能力

  • 对 iOS 内部原理有深刻理解

面经整理

目录:



BAT 算法面试题



内容:BAT 面试宝典



阿里 iOS 面试题



内存管理面试题



设计模式面试题



OC 底层面试题



Runloop 面试题



Runtime 面试题



UI 相关面试题



多线程面试题



限于平台篇幅原因,更多内容展示不了,觉得不错的需要的可以三连支持一下如需要上述这些 PDF 的资料可以添加 VX:mayday1739 来获取一下(申请时可以备注一下 Info 面试题获取)

用户头像

iOSer

关注

微信搜索添加微信 mayday1739 进微信群哦 2020.09.12 加入

更多大厂面试资料进企鹅群931542608

评论

发布
暂无评论
iOS开发面试-如何打破30岁的中年危机_ios_iOSer_InfoQ写作社区