Ede's Blog

工作的碎碎念

为什么选了前端

由于之前想维护自己的形象(其实屁形象都没有),一直掖着,害怕比不过别人。基于「坦诚清晰」的议题下,感觉也可以大大方方讨论下这个话题:我觉得我现在的工作在各种偶然中又充满了必然:

体格方面,瘦小无助,所以读书阶段自懂事后是一刻都不敢停啊,生怕考不上大学去工地搬砖搬不动,然后饿死街头;性格方面,不善言谈。以及生活在某个贪官盛行(12年中央派过工作组下来前前后后把局长以上的全抓了)的城市,我作为有那么一点正义感的同学,对在公家干活同流合污的事情,充满了不屑。体力活干不了,公家不感兴趣,那只能干点文职技术类的混混日子。

为什么选择了当程序员呢?大概是学生时代,有两个关键的卡点,一个是中考,一个是高考:

  • 初三毕业,因为浏览某些不健康的网站导致QQ号中毒被偷,于是我下定决心一探究竟,有模有样买了一些《从零入门做黑客》,《从零开始学C》之类的书籍,因为没有一个系统的学习计划,除了在各种安全论坛灌了一暑假的水其余啥也没学会。但种下的一颗小小的种子,以至于高考时三档志愿我都填写了计算机相关类专业。
  • 高考填写志愿的前一天,我压根没听过山东大学。当时我高考分数并不高,甚至够不上本地的211高校(暨南大学)。当时广东采用分批的报考方式,通用的报考策略是:第一批,冲一冲万一上了呢;第二批,稳一稳也算不留遗憾;第三批,保一保不至于复读。因为广东的同学普遍不喜欢到外省读书,所以我期望能在此偷鸡成功。经过短暂的查阅,我选择了报读东北大学,但有老姐的同学在QQ群说了一句:“东北大学不好,山东大学好”。于是我将志愿改成了山东大学。而后,山东大学成为了那年唯一一所在广东断档的985高校。顺带一提,软件工程在当年因大三大四学费太贵(一万八)成为了调剂大户,我是我们班四十多号人唯二报这个专业的人。

每当想起这两件事情,我都会想,万一我当时QQ没被盗,我现在会怎么样。万一我姐的同学没有在QQ群里那随口一句,我现在会怎么样?当然,有时候我还会幻想,万一在那个云淡风轻的午后,当武汉大学(提前批)招生办打电话过来询问是否服从调剂的时候,我电光火石间万一回答了“是”,我现在是否会成为一名驻守边疆的兵哥哥?(不过刚刚查阅了一下当年的投档线情况,差了两分,哈哈哈,幻想破灭)

为什么选择成为前端程序员呢?还TM不是因为菜!

当时学习不突出(年级排名前35%),然后坚持面向工作学习结果眼光太窄学了一堆工作用不上的老掉牙的技术(不得不说,图书馆里的书都是过时的,多读技术类的书真不一定好啊)。又加上表达差、形象差这些要命的DeBuff,以及家里一直坚持的“男孩要穷养”导致我认为我们家真的很穷很自卑。要命的是因为早早成为了APIer,学会了调各种各样的Api,导致同学们以为是我很厉害,有了“大神包袱”。各种不利因素混在一起,让我在找工作时抬不起头,在各种连名词都没听过的招聘启示中,突然看到了那一束光:

了解HTML、CSS、JavaScript、Node、Bootstrap、Jquery….

妈呀,这些名词我都听过!就你了!

当时,我以为的:了解 === 用过。实际上大厂:了解 === 读过源码。(当然,读源码其实也不是那么恐怖的事情,但前提是得有人带一带,我孤陋寡闻木有人带啊。)干你丫的,掀桌子,不玩了!

不玩?晚了丫,已经被套上了。

…….其实,刚毕业时,还是可以解套的。当时刚入用友,做的就是后端的工作。不过因为我小时候学过一期素描,骨子里有追求视觉美的倾向,觉得天天和数据打交道好无聊啊,固执自见申请做前端,自此,终于走上了一条前端不归路。

所以,前端这条路嘛,怎么说呢……最近看知乎的人装逼,引用了一段话,我觉得感触挺深:

当你老了,回顾一生,就会发觉:什么时候出国读书,什么时候决定做第一份职业,何时选定了对象而恋爱,什么时候结婚,其实都是命运的巨变。只是当时站在三岔路口,眼见风云千樯,你作出选择的那一日,在日记上,相当沉闷和平凡,当时还以为是生命中普通的一天。

生活很广、人生很长,我们今天所走的每一步,经历的每一瞬间,做出的每一个决定可能会成为遗憾,也可能会带你走向幸运。所以,别慌张、别放弃,如果你有想要的生活,那就努力让自己配得上它。

—— 《杀鹌鹑的少女》

关于博客,关于技术

我有一个博客,ede.ink(曾用域名 edeity.me )

我最开始将博客搭建在阿里云的云服务器上,通过 WordPress 的方式,图床偷的是新浪的流量。WordPress 对于一名前端来说,实在是太重了,也不方便自定义个性化的主题,于是我改用了 Hexo,学习了 Markdown。又因为 阿里云 对于一个学生而言,实在是太贵了,尤其在流量付费上,导致网页打开的速度非常慢,于是我转到了 Github Pages,通过 Cloudfare 加速,新浪不可用后,图床改用了阿里的OSS。

博客搭好的时候,我感觉自己就是世界上最靓最潮的崽。为此我还花了很长的时间,打磨了一个独一无二的简约风主题,支持黑夜模式,支持响应式,大小控制在200kb以内,PWA,各种Jquery小插件….就像一名小朋友在用沙子构建他的城堡。尽管这个城堡不会对任何人产生任何深远的影响,也必将在下一次涨潮后就消失的无影无踪。

不过,“潮”是一时的,不用多久,Hugo 出现了,React 普及了,短短一两年的时间,自认为很潮的玩意,就变成了老掉牙的技术,就像,就像 WordPress 一样。我也曾好几次计划升级一下。但我认识到,这些升级可能会让我的网页往更重的方向发展,也会耗费不少的时间,更蕴含着一种否定,于是我拒绝了,就像一些现在还停留在 Jquery 技术栈的网站一样:就这样吧,它够用了

我就这样想着,从 Webpack 到 RollUp / Vite ,从 ES6 到 Typescript。不知道哪天,我突然意识到,我成为了我所鄙夷的对象——“那些保守的不愿意采用新技术的老家伙”。很多新奇的东西出现在我面前,我不会。除了羞愧,更有一种悲伤也浮于心头。有那么一瞬间,觉得自己被生活所淹没,在一次次“边际效益不高”的决定中,失去了探索新奇技术的那份好奇和动力,一种游走于现实和理想的无奈。

但,我又想起我搭建博客的最初动力:除了好奇,也期望通过搭建博客,能给我面试提供一点面试加分项。由于太过功利性,它的内容缺乏创新而乏味,以及面试策略的失败,它其实并没有发挥什么功效。但是,幸运的是,我坚持了下来,在一个看起来已经过时的技术栈上坚持了下来,却又体会到了当初被建议搭建博客的另一层含义:

我在很长一段时间内,将搭建博客和博客两者混在了一起。搭建博客,是为了了解当时独自搭建网站技术的可行性,而博客,则更多是一种思想的修炼,记录过去,放眼前行。在我早期为数不多的博客文章中,我最为满意的,是一篇关于数据库基准测试工具的文章。这是我唯一一篇读过完整源码和论文后记录的文章,和前端无关。我之所以满意,除了它有种没落贵族的高雅外,也因为它总让我想起我和崔老师(现在已经是山东大学软件学院的院长了丫,贴金,尽可能往自己身上贴金,哈哈哈)的微小的矛盾,一种不快乐但也算不上痛苦的回忆。

是的,就在我纠结于我的博客所采用技术栈是否过时,我已经忘却了博客更基础的目的:写博客是为了思考人生的丫!技术容易更替,初心难得可贵。博客本身更多的还是用于沉淀思考的地方,甚至,无关技术。

有时候太忙了,忙得自己忘记了一些事情。需要有更好的方式去记着。

关于卷的种种

(1)

众所众知,广东是一个发展很不平衡的省份。作为一个从粤西小县城杀出来的小朋友,从小就被灌输一种略病态的思想:不卷,不卷你拿什么和珠三角的同学斗??!!所以,就勤奋这个属性而言,我是敢和河南的同学聊聊天,敢和衡水的普通同学肩并肩。从山东到字节卷动,不能说风头正茂,至少也不落下风。这可能是我为数不多的难得可贵的打工人品质了吧。内心充满了对安逸的渴望,但又怕在一时安逸之中,丧失了竞争力,在各种关节节点中败退下来,正如在中考高考那样,一分即是天差地别。

约在20年初,互联网“反卷”风潮愈演愈烈,甚至和“女权”一样背离了初衷,走向了一种魔楞的地方:你勤奋学习?不好意思,你这是卷,你有罪!所以,也曾困惑,到底什么是勤奋?什么是卷?我怎么样做才能不让大家反感?我觉得简单的观点可以分享下,不分对错:

  1. 尽可能从团队的角度思考,自己的勤奋,更多的是服务于团队,而不是为了个人的短期绩效,抢活,挤压同事的生存空间。勤奋,更应该是去开疆扩土,增强团队的能力,让整个团队拥有更强大的生命力。当然,个人境界越高,这个团队的范畴越大。
  2. 要承认竞争的存在,是社会必然的存在,是刻在基因里的遗传密码。对于直接的竞争对手,而非合作团队,不要过分在乎对面的评价,在合乎道德法律范围内,努力做得最好。
  3. 清晰地知道自己追求的是什么东西,追求产出,追求效率,而不是追求时间,反对无效卷,反对病态卷,反对为卷而卷,这个对个人的身心健康很重要。

当然,最近越来越多人选择了“躺平”。这个与其说是因为“反卷”口号的功劳,不如说,是这股反卷风,让大家认识到,其实生活中也可以有其他的追求,学会做一个有温度的人,而不是成为冰冷的机器;认识到,外部环境已经发生了变化,勤奋的收益在递减,要关注赛道,而不是一昧勤奋。“躺平”,是上升通道变窄后的一种温柔的抗议,但绝不是“我累了,我不想勤奋了,你比我勤奋,你比我过得好,所以是你的不对。”不要为了“反卷”而“反卷”,避免从一个极端走向另外一个极端。

(2)

随着年纪的增长,“卷”这个大杀器,越来越难以实施。一是多年熬夜,精力略有透支,一朝通宵,三天躺尸;二是有了家庭,父母也老了,分散了精力(我父母年纪基本比同龄人的大一轮);当然,作为打工人,也有了为数不多的存款,总感觉要是不花点的话,万一哪天猝死了就太遗憾了。

必须承认,前端各种工程的框架工具,迭代是很快的,虽说重要的是思想,但从思想到代码落地最后那一点点路,不折腾下或许真的只是思想。当零零后的小朋友在讨论一种很新的工具时,自己也终将认清到,在这层面是有些“落下来了”。也有了一点“没有人永远年轻,但总有人正年轻”的感慨。

但是生活还得继续啊。于是,也不得强迫自己思考,到底如何才能让自己的职业生涯更长寿一点,或许也有了一点点想法,可以分享下,不分对错:

普通打工仔的工作,是把这个工作做好。把工作做好,就不仅仅在于会用一种很新的工具,懂一些很hack的技巧,而是对垂直业务的积累,对业务全貌有一定的认知。我认为,就业务本身,很值得投入时间,如果没有高纬度的打击,淘汰的速度会非常缓慢,甚至超过人的一生。对业务的认知,我踩过的坑可能有:

  • 认知领域全貌,既要知道怎么做是对的,更要知道怎么做是错的。怎么实现这个模块或功能,比较容易从之前团队的成功中总结整个设计和实现,但切忌沾沾自喜,因为这不是你的。当别人负责这个模块,提出了一个和你认知差异巨大但又看似可行的办法时,比起成功的套路,或许错误的经验更能避免不必要的风险,提高影响力。此点,不仅体现在技术上,也体现在项目管理上。能够一眼洞察利弊,需要长久的经验积累。
  • 积累人脉,知道如何拉通对齐(别吐槽,暂时找不到有什么更优雅的词汇,哈哈)。公司内,能刷脸,让公司的同事信任你,配合你,是需要长期的言出必行,助人为乐,利益平衡。一切均是人情世故。如果之前的履历没有光芒万丈,不妨脚踏实地,一滴滴积累信任。当然,这个过程中,把自己擅长的和不擅长的,同步相关的人,不故弄玄虚,自信,坦诚清晰,非常重要。
  • 敢于承认自己不熟悉的领域,快速学习。学会树立里程碑,填充空白。
  • 认识不同的人,共赢,永远是保持人与人之间良好关系的关键。

To Be Continued…