「时光不负,创作不停,本文正在参加2022年中总结征文大赛」
迷茫
一开始,自己大学选择专业的时候第一志愿就是计算机科学与技术,无奈计科太火热,竞争很剧烈,分数差了6分被调剂到了交通运输专业
本想着就这样认命吧,哪个专业不是学呢,反正都是工科专业,动手能力强一些总都是有路可以走的。
到后期专业课的时候,发现自己对于涉及计算机和软件操作相关的课程成绩都非常不错,慢慢的也就想着自己接触了解计算机相关知识了
但由于那时候方向不是很明确,而且自己也不是很坚定,所以四年来在编程方面也没有什么成绩(现在想想,那时候真的是荒废了时间啊)。
直到就业之后,发现很多工作场景的计算需求都可以用代码来做一些定制的计算器来提高效率,就想着用大学学的 VB 来写一些小软件,实现之后和同事分享,却被吐槽说:
你这个只能在电脑上用,出去谁带电脑啊!
至此,开始萌生了做移动开发的想法。
扬帆
那时候移动互联网还刚刚起步(2015年),于是自己选择了做 iOS 开发,自己买书,逛社区,发现进步缓慢,于是还是选择了培训班这条路。
不过,系统性的学习相关知识的确效率很高,有一定的编程基础和编程思想,很快就能按自己的想法做成一个完整的 App ,为此还开通了开发者账户,把自己的 App 发布上架。
后来做了一段时间的 iOS 开发之后,微信小程序横空出世,自己公司前端、iOS、Android 也没人愿意尝试,自己抱着试一试的态度完成的公司业务的小程序雏形,这也算是第一次接触 Web 开发的知识和技能。
虽然现在看那时候的第一版小程序代码真的很烂,但回头想想,没有开始怎么会有现在的我呢?
做过微信小程序之后,算是拥有了基本的 Web 开发技能,三板斧嘛~
峰回
因为一些不稳定的业务,需要兼顾体验和热更新,那个时候很火的 JSPatch 横空出世(做过 iOS 开发的应该都知道),但后来好像因为底层调用了系统的一些敏感 Api 审核被卡,导致一些 App 下架,于是接触了 Ionic 移动端开发框架。
这个框架技术栈是 Angular + TypeScript,又是全新的东西,但并不影响我边做边学
巧的是 TypeScript 也是刚刚起步,当时只有2.0+版本,对于做客户端的我来说,ts 的静态类型检查和语法也是让我在学习的过程中没有很吃力,因为很多概念都是相通的。
事实证明,大型项目 TypeScript 的维护成本比 JavaScript 高多了,不仅仅是简单的类型声明,还有很多关于类的语法特性,让业务代码看上去简练、清晰了不少,加上合理的注释,看上去比原生 JS 舒服太多啦。
得益于 Web 开发的代码所写即界面所得的特性,开发速度是比原生提高的太多,有了热重载,少了很多编译的过程,项目代码多了尤为明显。
iOS 开发如果是纯代码布局不使用 xib 辅助写界面的话,只能在大脑里模拟想象界面的样子,调整 UI 细节的时候就很恶心了,要反复重新编译过(当然后面知道了动态 Framework 替换的方案,是可以不用重新编译的)。
也因为这样,让我对 Web 开发的高效心生向往,开始将重心转向 Web 前端开发。
原因有三:
- 开发效率高
- 跨平台
- 灵活发布,限制少
从0开始?从来都不是从0开始!
从交通车辆专业,到移动端 iOS 开发,再到 Web 前端开发。
从小程序的初识,到 Ionic 的探索,再到 Vue 全家桶的精进,知识技能的掌握是逐步的。
之前看很多人抱怨道:
前端框架更新太快了,学不动啦!
的确,多变的需求催生了层出不穷的开发框架,很多是为了完成 Kpi, 当然也有很多框架是实际解决了某些场景的问题。
而且前端相关的知识技能学习都是万变不离其宗的,只要我们能明白其中的核心思想,自己撸一个 Vue 4.0,也是不太可能的(笑)
有了前面的技术沉淀,对于掌握新的框架或者技能来说大有裨益,学习的速度也会出奇的快,所以不用担心,新的技术会带来新的学习成本,新的变化,也会让我们有新的角度看待问题,思考问题。
况且,当我们遇到对应的业务需求的时候,我们依然会感谢这广袤无垠的社区贡献,让我们摸鱼的时间又多了一些~
学习的路上从来没有捷径,不积跬步无以至千里。
看似从0开始,以往知识积累与经验判断又何尝不是伴我们一起攻克难关。
共勉