1. 浑浑噩噩的 10 年
我 1985 年出生,2006 年二本毕业,专业是电子信息工程专业。说实话,大学毕业之后一直没有什么职业规划,也不懂什么叫职业规划。老师没教过,父母虽高中文化,奈何没有很好的建议,也帮不上忙。
这 10 年走了太多的弯路,请容我娓娓道来。我做过四种类型的工作:LED 工程设备修理工程师、房地产公司行政、人事、策划。但是每个工作都做不长,最长的 2 年,短的三个月不到。再说说工资,最高也没超过 1w,我一度怀疑自己的能力,未来怎么办?焦虑不堪。
文章讲述了一位非科班出身的技术人员,在经历十年迷茫期后于 30 岁转行成为程序员的真实经历。从零基础自学 iOS 开发,到面试碰壁再到获得机会,最终成长为前端负责人的过程。内容涵盖了职业转型的心路历程、技术学习的具体方法(如内存管理、框架原理)、IM 系统开发实战经验以及给年轻程序员的建议。强调持续学习、责任心、业务理解能力及身心健康的重要性,鼓励读者在低谷期保持乐观,通过知识改变命运。

我 1985 年出生,2006 年二本毕业,专业是电子信息工程专业。说实话,大学毕业之后一直没有什么职业规划,也不懂什么叫职业规划。老师没教过,父母虽高中文化,奈何没有很好的建议,也帮不上忙。
这 10 年走了太多的弯路,请容我娓娓道来。我做过四种类型的工作:LED 工程设备修理工程师、房地产公司行政、人事、策划。但是每个工作都做不长,最长的 2 年,短的三个月不到。再说说工资,最高也没超过 1w,我一度怀疑自己的能力,未来怎么办?焦虑不堪。
哦,对了,2010 年工作实在不怎么样,我裸辞备战考研,一个月内感冒 3 次,这一年我轻度抑郁,半年内搬了 4 次家,后来逼着自己去健身,身体才好起来。之后报的南开大学的经济学,由于专业课太差(专业课 79 分,高数 140 分),未能上岸。
2015 年初,我发现我 30 岁了,可是一事无成,觉得不能再这样混下去了,是时候要做出改变了。我四处咨询朋友,终于贵人出现了。
其实要说起贵人,还真的不止一个,我们一个一个来。
第一个,我的小舅子,虽然不是他教的我 iOS,但是他根据我的特长、性格,以及当时的互联网环境,给我了很好的职业建议,我非常非常感激他。
第二个,小舅子的同事(已回贵州老家,但现在依然是最好的朋友兼老师),不言而喻,刚入门时给了我很多技术上的指导。我相信你应该能体会,非科班出身的程序员一开始有多难,我觉得如果不是他,也没我的今天,感恩贵人。
第三个,我的家人,尤其是我的老婆对我的支持,给了我坚强的后盾,让我这个结婚时没有工作的人,能义无反顾、毫无顾虑的学习 iOS,投身 IT 行业。
最后说说自己当时的感受,人生到了低谷,其实挺无助的,我抓住了能抓住的任何希望,然后发疯的、不要命的学习,真的唯有知识才能改变自己。我依稀记得自学那半年基本没出过门。
因为没什么编程相关经验,我就网上各种找资料,模拟一些小项目,记得当时简单的写了一个登录界面,就海投简历了,现在想起来自己还是太天真了。
由于市场上招聘岗位挺多,投出去几千份简历,可是约面试的寥寥无几,当时也是初生牛犊(30 岁算老牛啦)。
我珍惜每一次面试,无论多远,都风风火火的按时到达。我记得有多次面试乘坐一个多小时地铁到公司后,面试官让随便做几道题,聊了没到 5 分钟就打发走人啦;有的一屋子做了十几个人,像黑社会一样,一点技术没问,就说试用期没有工资,但管吃住,问我干不干的。差不多一个月时间,被人拒绝了至少 20 次。当时我就想,反正我什么都不会,你们拒绝我正常,只要谁能给我机会,我肯定比他们学的都快。
终于,功夫不负有心人,碰到一个在深交所上班的大佬,他因为工作轻松,业余时间学习了 iOS,并研发了几款爆款 APP(面向海外市场),于是他和腾讯的同学创立了一个小公司,公司刚成立,需要 iOS 初级研发。
我还记得当时过去面试,直接上机做题,在流水布局的单元格中,区分一下视频,并标记出来,完全没有实操经验的我,竟然懵懵懂懂完成了需求,之后他又和我聊了一会儿,居然第二天下午就通知我去上班了。我觉得我所有付出没有白费,我把这个好消息告诉了我媳妇。
后来他告诉我录取我的原因是:虽然快 30 了,但是感觉我完全是积极向上的心态,特别有活力,加上又是自学 iOS 的,说明还是有一定潜力的。事实证明,我确实进步很快,转正后老板多加了 500 元给我,现在想想,真的挺感谢他给我的第一次机会改变我的人生。
我也就这样顺利入坑,记得入职当天,我发了一个朋友圈,图片是苹果笔记本配上一台苹果 4S,文字是'开启神奇之旅',真的好难忘,哈哈哈,人生真有趣!
截止此时此刻,我已入坑近 6 年时间,经历 3 家互联网公司,最近一份工作已有 3 年之多,目前任职前端负责人。
目前我任职的公司是某行业头部企业,研发中心预计年底 500+ 人,前端部门包括安卓、iOS 和 web 工程师,目前 30+ 人。
这六年我是这么做的:
当时最有效的学习方式是看视频,不断的看视频,然后进行实操。我找到第一份工作后,老板只提需求,实现方式全部自己想。那段时间下班我先跑半个小时步,然后回去疯狂撸代码,各种找资料、各种调试、遇到问题百度,翻墙,问朋友等等,总之,不搞定问题不罢休。
在 iOS 开发初期,我深入研究了 Objective-C 的内存管理机制,特别是 ARC 与手动管理 MRC 的区别,理解了引用计数、循环引用的常见场景及解决方案。对于 UI 渲染,我掌握了 Auto Layout 的原理,能够处理复杂的自适应布局需求。随着技术发展,我逐步过渡到 Swift,利用其类型安全和现代语法特性重构旧代码,提升了项目的可维护性。
进入前端领域后,面对 Web 生态的快速迭代,我系统学习了 JavaScript 核心概念,包括闭包、原型链、异步编程(Promise/Async/Await)。在框架层面,我深入钻研了 Vue.js 或 React 的生命周期、状态管理(Vuex/Redux)以及组件化设计模式。为了提升构建效率,我配置了 Webpack 或 Vite 等构建工具,优化打包体积和加载速度,确保用户体验流畅。
责任心来自父母的言传身教,我从小内心就觉得自己要做一个负责的人,就应该这样,这样才对。
工作之后,尤其是现在的这份工作,有深刻领悟。耐心、细心这些,可能和性格有关,我比较内敛、心细、也有些敏感,这或许还蛮适合干程序员这行的。
关于沟通能力和业务理解能力,其实和我之前(前 10 年)的工作有关,加上我 2014 年开始逼着自己健身,看书后,有很大提高,尤其是看书,虽然是以小说为主,确实让我思想上打开一扇大门,比如三毛、冯唐吴晓波、东野奎吾、王朔等等。
那个时候才发现,原来看书真的爽,我现在有时候还会幻想,如果以后有条件,偶尔能让我安静的找个地方看看书,真的是一种享受。
关于积极主动承担更多,有个很典型的例子就是 19 年初,公司想自研 IM 系统,后来找来了大佬,搭建后台,我觉得自研 IM 这个东西难度大,知识点多,对研发要求也高,如果做好了,技术肯定能提升,而且后续维护也离不开参与的人,于是我主动提出参与 iOS 端的 SDK 封装,后来历经半年多时间,成功上线,SDK 的开发经验,对我的架构思维有很大帮助,加上我主动提出参与重要模块研发的行为,顺利晋升为 iOS 小组长。
在 IM 系统的开发过程中,我重点攻克了网络层的设计,采用了 Socket 长连接保持在线状态,实现了消息的可靠投递和离线存储。同时,考虑到移动端性能,我对图片、语音等多媒体资源进行了压缩和缓存策略优化。这段经历不仅锻炼了我的编码能力,更让我理解了分布式系统中的一致性问题和数据同步机制。
最有代表性是——老板或者总监提出的任何问题,第一时间,先思考解决方案,提出有效的解决思路,如果有困难或需要协助的地方,提出来大家共同完成,而不是第一时间拒绝老板或者需求提出方,这是我最最深刻的一点。
后来也逐渐明白,我们如果确实能时刻从公司利益出发,一旦遇到问题,第一反应肯定是先想解决方案,而不是抱怨和逃避。
我感觉,我 6 年时间的个人成长超过一般人 10 年的时间,但我工作的前 10 年了走了弯路,不过我并不后悔,人生没有白走的路!
我最近一年多面试很多人,至少 100+,凡录取的优秀者,他们具备的品质基本都差不多,但是被淘汰的人,缺点或问题却五花八门。
如果非要对年轻的程序员提点建议的话,我有如下几点建议:
**首先,我希望能认清自己,知道自己的优势与不足,然后不断扩大优势,弥补不足。**对自己有一个很好的定位——也就是职业规划,请不要眼高手低,不要一味地为了薪酬而频繁跳槽;
**其次,就是在不断精进技术的同时,多读书,多和比自己强的朋友同事交流。**牢记:一切的技术最终都是为业务服务的,学会审时度势,学会分享自己所学,开放自己的大脑和思想。
最后,就是养成好的习惯,比如持续学习、保持自我驱动力、活到老、学到老,还要坚持锻炼身体,程序员真的需要身体好,这不是一句空话!
在职业生涯的中后期,单纯掌握一门语言已经不够了。我们需要建立技术视野,了解上下游技术栈。例如,作为前端开发者,不仅要懂浏览器原理,还要了解 Node.js 服务端逻辑,甚至容器化部署(Docker/Kubernetes)的基础知识。这种全栈思维能帮助我们在架构设计时考虑得更周全,减少跨端协作的摩擦成本。
此外,阅读源码是提升技术深度的捷径。通过阅读主流开源框架的源码,可以学习到优秀的代码组织方式、设计模式的实际应用以及异常处理的边界情况。不要害怕啃硬骨头,每一次源码阅读都是一次与资深工程师的思维对话。
技术决定了你的下限,而软技能决定了你的上限。在项目推进中,需求分析往往比代码实现更关键。学会用非技术语言向产品经理解释技术可行性,学会在团队冲突中寻找共识,学会向上管理预期,这些都是职场进阶的必备技能。定期复盘项目中的得失,形成自己的方法论库,这将是你未来带团队时的宝贵财富。
最后的最后,我还想再唠叨几句,智商可以决定你对专业知识的理解深度;情商可以让你用专业知识更好的创造价值,包括个人价值和社会价值。
选择大于努力,每个人的人生都不是一帆风顺的,这其中充满各种坎坷。如果你暂时遇到低谷,请保持乐观并努力改变自己而不是抱怨。
与君共勉!

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online