编程如逆水行舟,不进则退

17,332 阅读10分钟

关于我

中部不知名二本毕业,半路转前端,目前就职于一家中型公司

为什么走编程这条路?

其实是没有选择, 有时 没有选择,就是最好的选择

这一路走来,笑过痛过,开心过也失望过,拥有过,也失去过

壮志未酬

很早就给自己定下了目标:两年月薪20k+,三年进大厂(目标top5的互联网公司)

第一个目标很快就实现,第二个目标却陷入了屡败屡战的死循环中

大厂绝缘体

大厂面了近10次,都是专家岗,到了这个年纪再面普通开发岗,可能连面试机会都不给

2次面阿里,都是hr面挂掉;1次面美团,也是hr面挂。最近1次是面京东,到手的offer因为裁员影响停止了招聘

收到的offfer有:小米、网易、喜马拉雅、叮咚买菜等

阿里面试官后来也给我交了心:技术没问题,但hr觉得你的学历与履历,与其他竞争者相比没有优势。现在大环境不好,应聘的人多,公司的要求更高了

我理解,很感谢他给我说这些话

夜很黑,路还很长

站在风口上的猪

我是半路出家转前端,边工作边学习的情况下,自学了三个月时间,很顺利就找到了前端的工作,还是甲方

我战战兢兢给hr要了10k,令我意外的是,最终给了我11k

能拿到offer,我觉得有几方面原因:

1)当时前端正处于蓬勃发展的时期,vue和react框架的成熟,给压抑了十几年的前端,带来了一次脱胎换骨的巨变,而我只是踩在了这个风口上

俗话说,站在风口上,猪都能上树,可能我就是那头猪

2)我的大学同学在关键时刻,给我指明了方向,这些指引让我了解市场所需,有针对性的学习,在最短的时间达到入门的效果

混沌期

熬过去,活下来

工作第一天

虽然面试我混进去了,但一开始工作,就把我打回原形

第一天上班,开始上手写代码大家就知道了我的水平。同事让我调接口,我胆怯的说没有调过接口,同事一下子就不说话了……

领导找我谈话:我知道你的水平差,也没想到这么差。我说希望给我一个月时间,如果到时候我还不能完成工作,就主动离职

领导可能被我的真诚打动了,他同意了。这一个月,也是给我的最后期限,我心里完全没底

工作第一天的晚上,就背着电脑去找朋友,让他给我讲项目

那一个月我几乎都是凌晨一两点才睡,早上六点多点就起床写代码

整个人是极度亢奋或者说是亢奋到麻木的地步

不知道困,也不知道饿

最终我的表现还是获得了领导的信任,渐渐胜任了工作,算是在前端这个行业站住了脚

是的 我活下来了

上升期

量变引入质变

  • 团队的变化: 加入了技术更强的团队,后来团队中有人去了阿里、小红书、携程等
  • 人员的扩展: 前端从原来的3人变成15个人的团队
  • 项目的增多: 从原来2个项目,变成了几十个项目,最多时手里同时在跑十几个项目
  • 用户的增长: 从几百用户增长到了百万级用户

项目的增多,给予的技术自由度也就更高,各种新技术都可以尝试,不限制使用vue或react

业务的扩展,可以接触到更多的场景,涵盖了pc、h5、小程序、app的混合开发等,解决了很多适配与兼容性问题

边界的扩展,还搞了几个纯后台的node抽奖项目,学会了如何操作数据库,如何解决高并发、接口如何防刷等

随着用户的增多,项目的性能与持续优化就变成的异常重要

一百用户与一百万用户的网站有着本质区别,任何细节都变得更为重要

一个最常见的例子:商城项目的长列表渲染优化,长列表渲染的性能效率与用户体验成正比

用到的技术包括:分页+虚拟滚动、图片懒加载、图片的动态裁剪等等

在挑战中成长

开始第一次负责大型网站的系统架构、性能分析、网站优化、网站监控等方面

开始慢慢理解前端,开始注重用户体验,逐渐学会承受压力

瓶颈期

目标照亮前行的路

我不是一个自制力很强的人,需要给每个阶段都设置一个清晰的目标,否则就会掉队

一个风筝,必须有一根绳子牵着,大厂就是这根绳子

备战大厂

前后准备了8个月时间,把制定的学习计划具体到天

没有严格的时间限制,学习进度和效果就会大打折扣

时间任务
2个月系统性学习了前端的基础知识,浏览器运行机制,重点练习手写js题
2个月练习算法,对应数据结构与题型分类练习!刷了一百多道leetcode题
1个月利用performanc和Lighthouse分析工具,结合web vitals关键指标计算方法,制定页面的整体优化方案
1个月搭建自己的脚手架,创建pc、h5项目模板等,手写webpack、手写babel插件等
1个月复习了node知识,学习了网络协议、网络安全与攻击的防御方法等
1个月复习vue与react源码,学会如何手写一个简单的vue

对算法的误解

之前我对算法的理解,仅仅是为了应付大厂的面试

在两个月的算法练习中,我第一次体会到:编程不仅仅是技术,还是艺术

比如简单的循环,就可以解决很复杂的数学问题

算法对前端来说并不是非常重要,但却是一个优秀前端工程师的必备技能,对于提升编码能力有着举重若轻的作用

开局即巅峰

先从中型公司开始面,面了叮咚买菜、喜马拉雅,下来开始面小米和网易,并顺利了拿到offer

然而花朵没有绽放就枯萎了,后来的面试却屡屡碰壁

结果已经知道了,阿里+美团,hr面挂了3次,京东到手的offer飞了

有半年的时间,不是在面试,就是在面试的路上

大厂基本都是4轮技术面+1轮hr面,多次这样的反复,确实很累

特别是第一次被美团的hr拒绝,以为成功触手可及,其实是海市蜃楼,一场空

根据运气守恒定律,可能前期的运气太好,到大厂这一步怎么都迈不过去,就像一堵透明的墙。我认为伸手能够到,却每次到最接近的时候又给当头一棒

备战大厂的结果虽然差强人意,但也是我目前成长最快的阶段

很享受这种向着目标冲锋的满足感,如今,我也可以违心的说一句:过程比结果更重要

迷茫期

后面的路怎么走?

静下来、慢下来

过去几年我一直很焦虑,怕技不如人 怕蹉跎岁月

经历了这一系列挫折,渐渐认清了自己,我还是我,不忘初心

唯有在路上才能消除心中的迷茫

用心去研究一些框架,了解其设计原理和优秀示例的写法

输出一些文章,也相当于给自己做的总结,大致分为几个系列

  • 系列1:源码解读,比如正在写的组件库系列,经典永远是经典

  • 系列2:把这两年备战大厂的10w字笔记,整理下发出来,温故而知新

  • 系列3:个人随笔,聊聊生活,谈谈理想。难的不是编程,难的是生活

很喜欢《士兵突击》中的这段话

许三多:我就是一个兵
袁朗: 一个很安分的兵,不太焦虑,耐得住寂寞。有很多人天天都在焦虑,怕没得到,怕寂寞。我喜欢不焦虑的人

失与得

唯一的坚持

这几年,唯一做的比较好的一点:坚持做笔记

把遇到的项目难点、解决方案,甚至是细小的知识点都记录下来。不知不觉,十万+的字数应该是有的

text1.gif

编程的好处

程序员活在自己的世界里

电脑没有人那么复杂,如果你的代码写的好,你和电脑的关系就很好相处,可以指挥电脑做你想做的事,不用去关注外边世界的繁杂与变化

编程的弊端

沟通能力的丧失,这一点是我这一年多才意识到的

可能是工作性质的原因,平时也不太需要怎么沟通,办公室哪怕一天不说话,也没啥问题。时间长了,感觉自己都得了“失语症”

嘴的作用在淡化,任何技能都需要练习,沟通的技能在代码世界中,一天天丧失掉了

我在大学里做过班长,交际沟通能力还算不错,到现在竟然落下了“残疾”

三十岁的人,与社会的人打交道,怎么感觉自己还是个学生模样呢

还有朋友圈的固化,想想微信快一年没添加好友了吧,哎,要认真反思了

越往上走,越发现沟通能力的重要性

选择大于努力

上个月,我最好的朋友也离开魔都了,对于这个结果深感无奈又并不觉意外

他这几年一直还是测试,工资没涨多少,而我已经涨了3倍(也只是中等水平)

他毕业于一本的大学,当时和我一起入职,是公司招的第一批本科测试。加上他的学历高,人缘好,沟通能力强,公司把他当成骨干培养

传统测试的天花板很低,后来虽然都升了测试组长,但工资与开发的差距越拉越大

我要走了,劝他也转行做开发,他犹豫后拒绝了,因为他的女朋友就是我们公司的,他不想分开,觉得现在的生活挺好的

现在,压弯他最后的一棵稻草,是谈了4年的女朋友分手了,他觉得魔都对他没有任何留恋的地方了

从他的语气中,感觉他变化很大,很焦躁,杂着叹气与牢骚

他带着满心的遗憾与失望走了,不知到底是女朋友把他抛弃了,还是生活把他抛弃了……

假如他也做了编程,以他的学历与聪明程度,他现在的境遇又是怎么样呢?

有的人来了 有的人走了

bird.jpg

鸟儿飞过天空 天空却没有留下翅膀的痕迹

结语

我不是一个努力的人,但我又是一个一天不学习就浑身难受的人

我不是一个乐观的人,但我又是对明天充满希望的人

10w字笔记推荐

「历时8个月」10万字前端知识体系总结(基础知识篇)
「历时8个月」10万字前端知识体系总结(算法篇)
「历时8个月」10万字前端知识体系总结(工程化篇)
「历时8个月」10万字前端知识体系总结(前端框架+浏览器原理篇)

文章系列

文章系列地址:github.com/xy-sea/blog

文中如有错误或不严谨的地方,请给予指正,十分感谢。如果喜欢或有所启发,欢迎 star