程序员的三十岁,没有“而已”

程序员的三十岁,没有“而已”
大家好,我是程序员冰零,即将三十的“九零”后。作为一名full-stack,6、7年的技术工作经验,长期沉浸在业务逻辑之中,虽说也时常能够接触到不少大型的、高并发的、微服务的项目,但总归来说,还是不够系统和全面。最近接触到《拉勾教育:JAVA高薪训练营》这个课程,它恰恰能够满足我的需求,三十岁的程序员面临的种种困惑,我都在这门课程中我都找到了想要的答案。

二十不惑,走上程序员这条路

程序员的三十岁,没有“而已”

我很庆幸,出身在一座美丽的海滨城市,它浪漫之城和经济特区。
于是我很幸运,在小学的电脑课,第一次接触到了“LOGO”这门语言,它是一种专门针对儿童的设计的编程语言,老师一边在台上生动富有乐趣的讲诉,台下的我的跟着去实现和执行,及时的、交互式的反馈让我第一次记住了“编程”这个词语。
上了初中,我的这一兴趣得到了全方位的激发,我真的太爱这个城市了。初中的美术课,不再是的拿着颜料、蜡笔,个个都是小花猫。我记得有一天上美术课,班长说,美术课去电脑室,当时还觉得不可思议,难道美术课改成电脑课了?后来我在这美术课上,第一次接触和学习了Photoshop处理图片、Flash(Action Script)制作动画(Action Script)。而在电脑课(或者称之为编程课也是不过分的),我接触到了Delphi并使用它制作一个Windows Form的计算器,当然,学习的最多的还是HTML和JavaScript,当时老师教我们使用DreamWeaver,还说早两年还有个叫Front Page的工具,不过已经淘汰了。
虽然一开始我只是出于兴趣,并没有想过这些会成为我今天进入这一行业难忘的经历。初中以后,由于时代的一些原因,虽说在这个城市出生长大,却不是它能让我在这完成学业的理由。我必须得离开这座城市,回到家乡。
也许回的这趟老家,成为了我走向程序员这条路的导火索。我高中在家乡非常非常优秀的,可是计算机教育的普及,基本是一片空白,也是因为这个原因导致了我心理的不平衡。因为和父母相隔异地,我得到一部新的手机–诺基亚 N73。也是这台智能手机,让我第一次将编程这个兴趣付诸实行。一台智能手机,打开了新的大门,也让我乐此不疲的学习HTML、ASP、PHP,第一次接触到软件汉化、Python,甚至混上了当年某个知名论坛的Symbian S60 V3版主,用Python为论坛制作了一个“编帖辅助”软件和一个”短信辅助“工具,也出过一个”Python for S60 V3”系列的教程,当时反响不错,也小有名气了。
再后来,我就干脆选择了软件工程专业,回到这梦想开始的海滨城市,用我热爱的专业,回报它。
二十多岁的我,和大多数人一样,充满理想和激情。我的第一份工作,是研发IT运维服务软件的,那时候公司处于创业初期,公司人不多,但客户却分散在全国各地。我的第一份工作就是full-stack,不仅仅是前端和后端,还得做需求分析、UI设计、测试,我还得飞往全国,配合销售、合作公司或者就自己,做客户拜访、售前支持、以及现场实施、客户培训。虽然公司不大,但要实施ISO 20000的企业都是非常有实力的,因此我得到了不少的锻炼,非常感谢我的第一任BOSS给我的信任和机会。

焦虑的三十,这世界从来不讲道理

程序员的三十岁,没有“而已”

天下没有不散的宴席,一切朝“钱”看。我后面的几份工作,是担任技术Leader,似乎都是在吃着老本。我一直以为我主攻的方向是利用Java实现客户功能,我利用好Spring全家桶,配置好Jenkins,做好单元测试就万事大吉了。
后来,我意识到,想要实现自我的价值,必须得要做更垂直的平台和业务。新的工作,是垂直的生鲜电商,我干起了PHP,技术上从0到1的实现了微服务、Docker化。到写起了钉钉小程序、Arduino,工作节奏看着似乎挺忙碌、业务方面也似乎越来越有起色。在这种氛围下,确实让我在业务、技术层面开拓了不少眼界。可是好景不长,就在前不久,扛不住疫情的刺激,为了减缓企业的亏损,我被裁员了。
去年底的时候,医生告知我罹患”甲癌“,后面复查的情况也并不理想,建议等“疫情”稳定后再预约手速。同时肥胖和高血压也不断地找我的麻烦。三十岁的年纪,容易疲惫,精力难以集中,记忆力也在慢慢衰退,体力也跟不上了,更别说熬夜。身体素质越来越差,这也是我被失业的重要原因。
三十岁的危机,往往就在这么不经意间降临,所有的焦虑一拥而上。失业之前,公众号、抖音经常能收到类似的推荐“掌握XX技能,轻松月入X万元”、“年薪30万,这个技能你必须懂”、“仅需9.9,领取百万年薪架构师课程”。贩卖焦虑,试图引起我的共鸣,他们做到了。但是,投资自己,绝对不是自认上进。

三十而已,但你必须够拼

程序员的三十岁,没有“而已”

与其绝望和焦虑,不如寻找解决办法。
好在失业前,我迈出了正确的一步,我要破局。我在各大招聘网上,收集相关岗位的门槛和要求,结合我实际的工作经验,总结出了我和大厂的差距。当你的最开始我的目的是,如何通过PHP学习微服务、大型项目的架构。寻找了一圈,“疫情”过后的培训市场,大多数没能抗住。也是在寻找这份PHP课程的时候,我也逐渐总结,清晰了投资自己、潜心学习的方向。
无论是PHP还是Java, 无论是Hyperf还是Spring全家桶,他们都是相通的。缓存依然可以使用Redis,服务治理也都是用的Consul或者Nacos,也会使用服务降级、服务熔断、配置中心、ElasticSearch等等,甚至连编程思想上也是类似的,包括依赖注入、注解、AOP等。而我欠缺的是对整体项目的架构思维理解,这些框架和技术,是怎么实现的?它的好处是什么?什么时候会用上?我想做一个项目绝不是盲目的,应该是循循渐进的随着业务增长而采用不同的解决方案,解决是实际遇到的问题。既然语言是相通的,那我就应该提升架构思想,累积实战经验。
三十的危机,往往是破局的起点。
我转头看向了那些“JAVA架构师”的课程,我有清晰的学习目标,绝不能一句鸡汤的“投资自己”而盲目投入大量金钱与精力,最后竹篮打水一场空,我必须精挑细选,对比了市面上多家培训机构,最后认准了拉勾教育,这绝非偶然。
非常感谢拉勾教育的销售,在选课的期间不断收集我的需求,向我推荐和耐心的解答我关心的各种问题。《拉勾教育:Java高薪训练营》这门课程,分为十二个阶段:

  • 第一阶段:开源框架源码剖析
  • 第二阶段:Web服务器深度应用及调优
  • 第三阶段:分布式架构设计&微服务深入
  • 第四阶段:大型分布式系统缓存架构进阶
  • 第五阶段:分布式搜索引擎进阶
  • 第六阶段:分布式消息服务中间件进阶
  • 第七阶段:分布式搜索引擎进阶
  • 第八阶段:分布式实时流式计算引擎Flink
  • 第九阶段:容器技术&CI/CD,DevOps
  • 第十阶段:底层调优与算法深入
  • 第十一阶段:大型互联网项目实战和业务解决方案
  • 第十二阶段:进大厂必备-面试求职深度辅导

课程内容设计深入浅出,刚学习完第一阶段的模块一《持久层框架设计实现及Mybatis源码分析》。这个模块,一开始就从JDBC的角度,和业务的需求来看,从0到1自己实现持久层框架,以此入门Mybatis的设计思想。再趁热打铁深入讲解Mybatis的生命周期,剖析阅读Mybatis的源码,体会优秀的框架是如何优雅的实现持久层框架的设计。最后,再总结Mybatis运用的设计模式,真是由深至浅。
课程的学习期间,还有班级群,导师非常敬业,似乎7x24小时的服务。班里的三个导师非常优秀和专业,甚至在凌晨和周末的时候,都能看到他们耐心解答的身影,班里的学习氛围真的和浓厚。除了每周多次的面试答疑,还有一周一次的视频直播课,针对阶段性的学习任务进行梳理总结和作业解答。
最让我惊喜的是作业环节,每个学习模块都安排了作业,必须通过作业和导师评分才能通过。模块一的作业,除了考验对Mybatis的学习和理解的简答题外,还需要自己完成和实现持久层框架,并且需要录制视频并精心进行讲解,绝对没有偷懒的机会。班主任说,学习的目的不在于多快,而是我们真的学会了。我要给我的班主任点个大大的赞。
我分享下我是如何学习这门课程的:
首先,制定学习目标、计划,严格执行。课程周期大致是6个月,班主任会先根据整体的进度,规划好近期的学习计划,当然,每个人都有各自的规划,根据自身情况调整,现在待业的我,可以全身心的投入学习,加快进度。
其次,多看、多练、多思考。课程里面非常多的干货和技术细节,很值得上手一试。建议是看完一小阶段就要停下来自己根据理解的内容,实现代码。平常在班级群或者其他的技术交流群,多参与讨论,考验自己是否学会一项新知识最好的方式就是,能够表达出来并让他人能够理解。这也是我喜欢这个课程作业环节的原因,因为我需要实打实的实现功能,并且讲解。
最后,善于总结,周期性回顾。长达6个月的学习,就需要勤记笔记,温故知新。班主任和导师时常叮嘱我们,多记笔记,讲师也会有课程资料和讲义给到。甚至在作业模块,还会要求提交笔记的url。第一阶段笔记确实做少了,导师批改作业的时候还不忘提醒。

程序员的三十岁,没有“而已”

虽说这个课程有一个星期的体验时间,正是这种学习氛围和方式,有实力的技术讲师、陪伴和给我们规划清晰学习计划的班主任、尽职尽责热情耐心的导师,让我觉得这次的投资一定是值得的。三十而已,虽然身心疲惫,但依旧要足够努力。
二十不惑是生活的开始,三十而已才是真正的人生。人生仅有一次,稀里糊涂,虚度此生,就未免太可惜了。每天究竟应该怎么度过呢?一步一步、不懈努力、持之以恒、精益求精。只要这么做,能力就能逐步提升,人生就能日臻完美。
加油!