注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

Demo体验

Demo体验

场景Demo,开箱即用
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有

程序员:全栈的痛你不知道

上周一个同事直接对我开喷,骂我无能,说:“你怎么一个人就搞不定所有系统呢?”,我半支烟纵横IT江湖14余年,还是第一次被人这么嫌弃。 事情缘由 某公司的业务线特别多,有个业务线前后端项目共计上百个,半支烟带着1个大前端、1个Android外包、1个iOS外包在...
继续阅读 »

上周一个同事直接对我开喷,骂我无能,说:“你怎么一个人就搞不定所有系统呢?”,我半支烟纵横IT江湖14余年,还是第一次被人这么嫌弃。


事情缘由


某公司的业务线特别多,有个业务线前后端项目共计上百个,半支烟带着1个大前端、1个Android外包、1个iOS外包在支撑业务线的发展。


突然,有一天大前端同事有事不在,运营同事找到我开发功能,我说要等等,我现在一个人搞不懂所有的端口。此时,运营同事一着急就上头,直接质问我,为什么你不能一个人搞定所有端口?


我当时立马怒怼,我说我一个人确实无法同时搞定IT基建、搞定后端、搞定H5、搞定Android、搞定 iOS、搞定PC、搞定小程序、搞定自动化爬虫。如果觉得我无能,你可以找个全部能搞定的过来。


然后,就是各种撕逼......


这个事情对我还是很触动,倒不是说跟同时互撕了一顿。只是觉得,现在的IT环境真的是看的人后背发凉,不但机会少,对人的要求还特别的高。


在想想前些时间,某高校降低要求大量扩招计算机专业学生,简直是坑学生啦。


全栈的优势


半支烟2010年毕业于计算机专业,工作14余年,后端干过JAVA、Python、Golang,大前端干过React、Vue、Android、iOS,还搞过IT基建运维。


半支烟对全栈还算有些理解,下面说说全栈的优势吧。


个人觉得,最好的技能人才是一专多能,这个绝对毋庸置疑。就是要在某个领域精通之后,在别的领域持续开花结果。说到底还是要做一个全栈的技术人。


全栈的优势非常多,比如:



  • 在中小企业,一个人胜任多个岗位,可保饭碗无忧。

  • 全栈人解决问题更快,因为全栈人的视角更加全面。

  • 可以做一个独立开发者。

  • 可以从事各种副业。

  • 如果还会懂一些产品运营,那直接可以开个赚钱的小公司了。


全栈的痛


虽然全栈有一些优点,但是全栈的痛点也非常明显,比如:



  • 全栈人要学习的技能或者知识非常多,但人的精力是有限的,无法真正做到每个技能栈都非常熟悉。

  • 全栈人找工作会招人嫌弃,尤其是大厂会觉得你不是专业的螺丝钉,经常用某个领域的一些八股文去否定你。

  • 很对人虽说是全栈,但是没有站在解决问题的角度去思考,而只是作为一个会多个技术栈的工具人。这样的思想其实偏离了全栈的初衷。


个人建议


个人觉得,全栈对个人职业发展很有优势,我建议在精通一个领域后做一个全栈人。


我这里说的全栈,不只是IT技术栈,还有更多的是产品运营思维。任何时候全栈人都应该用解决问题、推动事情往前发展的思维去做事。


当前大环境不乐观,未来也未必乐观,中小企业都偏向找全栈人,大公司偏向找专业高级螺丝钉。虽说背点八股文对找工作有优势,但是将来将一文不值。


因为AI发展太迅速了,获取知识已经变更更加便捷。我更不建议做一个高级螺丝钉,那样只会成为工具人,最后失业时一无所有。


我建议,不管你在哪里企业,自己的成长要放在第一位。


尤其在当下这个AI时代,可以让IT人更轻松的成为全栈人,我们应该把握机会,让自己成为一个优秀的超级个体,努力搞出点自己的事业来。


原文链接: mp.weixin.qq.com/s/aY0AJk8gT…


作者:程序员半支烟
来源:juejin.cn/post/7406254193433100351
收起阅读 »

市场行情再差,也不要选择996,它真的会吞噬你

前言 最近,一连有两个朋友和我聊天,说新公司996,自己很犹豫,是不是应该换个工作。 我的回答是,快走,一秒都不要犹豫。 但在目前市场行情不佳的情况下,似乎也很难让人下定决心放弃一份已有的工作。 恰巧,我也曾经入职过一家996的公司,而且也只有这么一家。我想把...
继续阅读 »

前言


最近,一连有两个朋友和我聊天,说新公司996,自己很犹豫,是不是应该换个工作。


我的回答是,快走,一秒都不要犹豫。


但在目前市场行情不佳的情况下,似乎也很难让人下定决心放弃一份已有的工作。


恰巧,我也曾经入职过一家996的公司,而且也只有这么一家。我想把这段经历分享出来,希望能对你有一点点帮助。



重复的工作,会限制人的视野。其实在世界上,还存在着无法想象的广袤天地。



满怀憧憬


2019年,我终于决定从当前的小公司离职,准备换一家更大规模的公司。


经过几轮面试,没想到很顺利的拿到一家公司的offer,涨薪50%,单纯从薪资角度来说,达到了我的预期,及时入职前,HR给我说,我们这边996,你是否能够接受,我也很果断的接了offer。


那时候想法很简单,谁给的钱多,我就去哪里。初入职场的我们,大概率都是这么想的。


由于换工作换的很快,我还没来得及搬家,前公司坐标丰台区,并且我住的地方离地铁站很远,需要坐公交车。


早上七点,起床洗漱,抓紧时间下楼去赶7:20的公交车。七点四十坐上地铁,在八点五十左右到达望京附近,一路小跑在九点前完成打卡。


前面也说了,既然是996,晚上九点才能下班,事实上九点公司根本没人走,但是我是刚入职,自然不会跟着他们一起加班。下班后打车回家,一般在十点半到家,结束一天的工作。


太可怕了,我除了睡觉,剩下的时间不是在上班,就是在上班的路上。


上班第二天,联系了自如的管家,我早下班去看了周边三个地方的房子,准备搬到这附近来,最后还交了定金,这样每天起码能省下通勤的时间。


大家可以看到,这时候我还是很想留下来的,但接下来的两天,我便意识到,此地不宜久留。


为了加班而加班


上面讲过,因为我是新人,加上住的地方离着公司很远,所以我都是九点就赶紧下班跑了。


和我同时进入公司的还有一个哥们,就叫他阿文吧。


阿文挺平易近人,对待工作也挺踏实。他告诉我他就住在离公司两三公里的地方,所以即使是新人,他下班都是和他们那些老员工一起下班。


那么老员工下班是几点呢,他说一般大家都是11点才走,然后第二天早上再晚点来公司,而他依然会九点按时上班。


中午吃饭的时候,大家普遍也是坐着不动,等到12点半才陆陆续续去楼下吃饭。


第一周的周六加班,我七点下班了。周一的时候,阿文告诉我,周六他加班到11点才走。


我是一个不会把工作往后拖的人,有工作就抓紧完成,但问题是白天的时间大家感觉也不是很忙,虽然是996,入职一周了,没有人强调过接下来项目的紧迫性,手头的工作也是一些边边角角的功能。


此时的我已经心里交瘁了,一周的早起晚归,加上比较迷茫的工作内容,已经让我有了要辞职的想法。


接下来的一周,依然是熟悉的内耗与纠结,同时也感到迷茫,如果在这里996下去,对自己的职业生涯,能有帮助吗?


最终,入职半个月后,我决定离开这家公司。



996背后是什么


开头说到,996的公司直到今天依然存在,甚至存在于一些外包公司。


大部分实行996的公司,背后一定处于基建建设差、管理能力不足,战略目标不清的状态。为了兜底,强制实行996试图弥补这两个缺陷。


作为一个开发人员,你对自己一天中高效的工作时间,心里是有一定的预估的。


以我和之前身边同事为例,仅从代码产出的角度来说,一天高效写代码4-5小时,已经相当不错了。


长期加班,强制实行996,一定会出现无效加班的现象。因为持续的加班,会触发我们基因中的“调节回路”,降低我们的效率。


调节回路具体是什么,可以看下我之前写的这篇文章。四个字解释明白,常常说的程序员35岁危机,到底说的是什么?


996可怕的不是长达12小时(可能更多)在公司的时间,可怕的是996会极大的丧失我们对于新事物的接受力,影响我们的思考能力。


关注研发效能


软件开发是一个创造性很高的过程,开发者之间的效率相差很大。就比如,10x程序员的生产效率可以达到普通开发者的10倍。其实,不仅是个人,团队间的效率相差也很大。相比工作时长而言,我们更应该关注的是研发效能。



研发效能,是团队能够持续为用户产生有效价值的效率,包括有效性
(Effectiveness)、效率(Efficiency)和可持续性(Sustainability)三方面。简单来说,就是开发者是否能够长期既快又准地产生用户价值。



软件开发流程本质上就是一套流水线,比如需求设计、技术设计、开发、构建、测试、发布、部署、验证。


其中,流水线的每一套流程都可以细化拆分,找到提高效能的方式。


举个例子,不知道你有没有过部署服务的经验,最基础的部署方式,是手动在本地打包,通过工具把打包的程序上传,替换,再重启服务。


但随着服务器数量越来越多,手动的方式会占用大量时间。


部署的方式也持续在升级,从虚拟化到容器化,再到容器编排,开发人员可以轻松的管理大规模的容器集群。


假设不关注效能,只是招人、996来完成日益增长的大规模部署,得需要多少人来完成这件事呢?


说在最后


好了,文章到这里就要结束了,感谢你能看到最后。


有些人,工作对于他们而言,只是在固定的时间出现在固定的地点,做着固定的事情——重复,重复,再重复。他们或许想的是,“就这样吧,反正也没的选”。


高效的完成工作,留出更多时间给自己。


作者:东东拿铁
来源:juejin.cn/post/7398150089556606988
收起阅读 »

切!我又不是第一次没人要🤡

我和你一样都经历过 家里蹲 狗都嫌 的尴尬时期,每天早上起来拿着手机不断刷着招聘软件, 海投几百份还是杳无音讯,在BOSS直拒、前程堪忧、失联招聘、猎空之间反复横跳... 还经历了十分灰暗的阶段,焦虑导致出现躯体化反应(头痛、严重失眠、吃不下东西等) 整夜整夜...
继续阅读 »

thumb-1920-651952.jpg


我和你一样都经历过 家里蹲 狗都嫌 的尴尬时期,每天早上起来拿着手机不断刷着招聘软件,


海投几百份还是杳无音讯,在BOSS直拒前程堪忧失联招聘猎空之间反复横跳...


还经历了十分灰暗的阶段,焦虑导致出现躯体化反应(头痛、严重失眠、吃不下东西等)


整夜整夜睡不着,躺下脑子都是工作、面试、人生选择带来的压力


不想出门社交,害怕面试。


其实,我想跟你说:裸辞并不是终点。


1.裸辞/辞职并不是终点


当我扛着我的键盘收拾东西离开工位,第一次对辞职的 “人走茶凉” 有了实感,


下午六点跟对我很好的前辈们告了别,公司离地铁有点远,和往常不一样,天还没黑,有黄昏相伴


三号线还是这么挤 还有点闷。


v2-7ab9c9ebffb2d15971a4ec2a9b1b2fe3_720w.webp


算起来这是第二次辞职,但第一次辞职找了一个礼拜就顺利入职了
,这次好像有点久,今年大家都在说被裁员大环境差,同学领证成家的也不少。


我意识到人与人的节奏不同,而我好像又一次走到了岔路口,上一次这么慌张还是在高考前


即便我从来没后悔过离职这个决定,但还是会因为面试带来的压力感到局促不安


每次离职就像是一场查漏补缺的大考,对勇气,对储蓄,对知识点的大考


唯有拆迁认亲能打破这场突如其来的考验。。。啊不是。。。我想说:


唯有行动能打破僵局!!


R.png


行动!!!去吃个冰淇淋!!。。。果然有灵感了


363b10d3887191d03f7a462610206e4.jpg


短暂的欢愉后,是与台灯的昼夜相守,与简历的交织缠绵


(简历编。。不是。。写不出来呀!!!)


v2-e4d9f181546345313e5e36f15d2e3cf1_r.jpg


反复改了几版之后确实多了一些“打招呼”的机会,但是实际面试机会还是屈指可数呀,


切!又不是第一次没人要🤡,拒绝我的多的去了,得从巴黎排到广州...


继续努力,等待运气,厚积薄发


v2-4039118d48100a401ec76dd9e4d73405_r.jpg


2.当知识脱离了考试,真理和美丽才慢慢浮现


2.1 心态调整(分享一下最近对我有帮助的书)



  • 《见识》 - 吴军


这是第一年出来工作,遇上了很好的领导送我的书,每当迷茫的时候再拿出来翻翻有了不一样的感悟,很多我们看上去非做不可的事情,其实想通了并没有那么重要,无论在职场上还是在生活中,提高效率都需要从拒绝伪工作开始,有些苦是可以不用吃的,苦难并非造就人类



幸福是目的,成功是手段




  • 《意志力》 - 罗伊·鲍迈斯特


技术行业的人都知道学习是个漫长/终身的事情,跟考公考研短期爆发式集中不同,我们更需要坚持长期一点点做下去,我认识到所有人的意志力都是有限的,使用就会消耗,压力也并非与动力画等号,人也跟机器一样需要“充电”和合理分配,每个人的节奏和身体承受能力也不同。



  • 《被讨厌的勇气》 - 岸见一郎、古贺史健编著


在心情动荡的时期,这本书就像开了一盏加热灯一样在一旁无声陪伴,那会我就像婴儿一样无意识地紧紧抓着自己的头发,直到我睁开眼看见了、意识到了,放下禁锢着工作、生活、交友的课题的手,更能轻松地赶路了。



生活的方式千千万,人生的意义,由我自己决定




  • 《法律常识全知道》 - 李桥


读书的时候没有一门跟社会接轨的课程,毕业了也一直专研技术,导致一毕业不知道劳动合同/租房有什么坑,把仲裁和维权看得过于艰难,法律条例密密麻麻 一时间不知从何下手,这本书就很适合我这种来一线城市打工没什么社会经验的小白,用简单的案例植入“NPC游戏”攻略,和《影响力》这本书加一起简直就是进城防骗指南哈哈哈



免费法律援助电话:12348



2.2 前端学习路线图:


roadmap-完整路线.jpeg


各位摸鱼的小伙伴下次见,这篇便是我的2023年终总结:


裸辞不是终点,唯有行动才能打破僵局,当知识脱离了考试,真理和美丽才慢慢浮现。




参考资料:


前端学习路线


作者:慌张的葡萄
来源:juejin.cn/post/7312304122535133220
收起阅读 »

这两年,我把28年以来欠的亏都吃完了...

前言 很长一段时间没有总结一下过去几个月的状态了,今天思绪万千,脑海中浮现了很多经历和生活片段,我把它记录下来。顺便今天聊一聊认知突破,分享我在买房这段时间吃过的亏,也希望作为你的前车之鉴。 买房 21年底的时候,那时刚好毕业三年,也正是互联网公司996最流行...
继续阅读 »

前言


很长一段时间没有总结一下过去几个月的状态了,今天思绪万千,脑海中浮现了很多经历和生活片段,我把它记录下来。顺便今天聊一聊认知突破,分享我在买房这段时间吃过的亏,也希望作为你的前车之鉴。


买房


21年底的时候,那时刚好毕业三年,也正是互联网公司996最流行的阶段,由于平时我不怎么花钱,也很少买衣服,上网买东西是个矛盾体,需要花很多时间对比,经常看了一件东西很久,最后又不买。加上比较高强度的工作状态,两点一线,可以说是没时间花钱,再加上自己把钱都拿去理财了,也赚了几万块,最后一共攒了几十万下来。我从小就立志要走出农村,而且认为以后有女朋友结婚也要房子,加上当时花比较多时间在理财上面,那时候其实行情已经不好了,工作上没什么突破,比较迷茫,于是想着干脆就把钱花出去了,自己也就有动力去搞各种路子尝试赚钱。在没有经过任何对比之后就在佛山买了一套房子,房价正是高峰的时候,于是我成功站岗!因为这个契机,躲过了持续了2年多的低迷股市,却没躲过低迷的房地产。


while(true) { 坑++ }


我买的是期房,当时不知道期房会有这么多坑,比如期间不确定开发商会不会破产,我这个开发商(龙光)就差点破产了,房产证无着落,相当于花了200w买了一个无证的房子,这辈子就算是搭进去了。


对于整个购房过程也是很懵逼,对流程完全不熟悉,当时去翻了政府规划文件,看那个地段后续有没有涨价空间,然后跟着亲戚介绍的销售转圈圈,当时说给我免3年物业费,合计也有几万块。在签合同之前销售都有说可以给到,但由于第一次没有录音,导致在签合同的时候销售反口,不承认,我们也没有证据,最后吃了哑巴亏。


开始的时候谈好了一个价格167w,然后销售私下打电话给我洗脑说我给点辛苦费1.5w,他可以向领导申请多几万块优惠。我知道这是他们的销售套路,但是架不住给我优惠5w啊,中间反复拉扯最后说给他8k,采用线下现金交易的方式。这一次我有录音了,因为私底下交易没有任何痕迹,也不合法,所以留了一手,也成为我后面维权时争取话语权的基础。


中介佣金是很乐观的,当时由于我亲戚推荐我去,销售承诺税前有4w,当时看中这个返佣也促使我火急火燎的交了定金。现在3年过去了,这个佣金依旧没有到账,我一度怀疑是中介搞ABC套路把我这个钱💰吃了,其他邻居的推荐佣金都到了账,加上现在地产商没钱了,同时跟那个亲戚有些过节,这个返佣更是遥遥无期。最后通过上面的录音获得了一丝话语权,知道了这个钱还在开发商手上,一直没有拨款下来到中介公司。下面是部分聊天记录:


image.png


不接受微信语音沟通,文字可以留给自己思考的时间,同时也更好收集证据。


image.png


然后去找相关人员把信息拉出来给我看,显示开发商未付款状态,这个状态维持2年了,目前看来只能再等下去。


image.png


签合同的时候,有个律师所说是协助我们签合同、备案、办房产证等各种边缘工作,糊里糊涂交了700元律师费,不交不行,甚至律师所连发票都没有给,而我都没有意识到这个最基本的法律法规问题。现在交房了可以办理房产证了,拿证下来也就80块登记费,居然收我700,其他业主有些是600多,400多,顿时觉得智商受到了侮辱,看了网上铁头各种打假的视频,我觉得自己也应该勇敢发声。现在也在收集商家各种违规证据,提交给相关部门解决。


image.png


image.png


image.png


后面市场监督管理局收到投诉,应该是有协商,意识到没有给我们发票,过来几天之后才把发票补过来,开票日期不是付款时候的2022年,而是2024年,明显属于偷税了。目前跟他要发票的应该只有我,估算2300多户业主都没有开发票的。


当时我首付需要50w,自己手上不够,我爸干建筑一辈子,辛苦供我们两个孩子上了大学,山上建了两层楼,手里没钱。我妈是一辈子没打过工,消极派,说出来没几句好话,家里不和睦的始作俑者,更不可能有钱支持。所以我还有20w是首付贷,也就是跟开发商借的,利率10%,这个利息很高了。销售当时说可以优惠到5%,但是优惠金额是补贴到总房价里面去,其实这也是他们的一种销售套路,这亏我也吃了,2年之后我连本带息还24w。当时认为自己应该一年左右能还完,但是实际远远高估自己的能力,买完房子接着我爸又生病在医院待了几个月,前后花了十几万,人生一下子跌入了谷底。


从头再来


后面2023一年,夫妻出去创业,很多人不赞同,期间遇到了不少小人诋毁我们两夫妻,当时我老婆还在怀孕,但我们最后都熬过来了,还生了一个儿子,6斤多。期间一年赚了十几万,但是开支也大,加上父母要养,我爸还要吃药,房子要供,最后还是选择了先稳定下来,我重新回到了职场,空窗一年后在这个环境下拿了一个还不错的offer,同时也想自己沉淀一下。


自从有了宝宝之后,生活似乎都往好的方面发展,出版社找我出书,为了契合自己的职业发展,我选择了写书《NestJS全栈开发秘籍》,从2023年11月份开始,迄今快半年了,在收尾阶段,希望尽快与各位读者们见面。同时,等了3年的房子也收房了,由于是高层,质量相对其他邻居好,没有出现成片天花掉下来或者漏水的情况。我们经常都说他是天使宝宝,是来报恩的。


由于我们公司技术部门是属于后勤支持性质的,技术变化不大,Vue2+微前端和React管理系统那一套,没有太多的新技术扩展,意味着不确定也大。业务发展不好考虑的是减少这些部门的开支,所以不出意外最近也迎来了降薪。这不是最可怕的,对于我们技术人来讲,最可怕的是我认为在业务中成长停滞了,或者没有业务来锻炼技术,所以在业余时间也选择了参与一些开源项目,如hello-alog开源算法书的代码贡献,并且这也是选择写书的原因。很简单地说,当下一个面试官问到我的时候,我不可能什么都讲不出来,最经典的问题就是:在这个公司期间你做过最有成就感的事情是什么?现在,我有了答案!


哲学


我的人生哲学是不断改变,拥抱不确定性!这么看来,我的确在这些年上了不少当,吃了不少亏,把自己搞的很累,甚至连累到家里人。但,用我老婆经常说的一句话:人生这么长,总是要经历点什么,再说现在也没有很差。的确,不断将自己处于变化之中,当不确定性降临到普罗大众时,我们唯一的优势,就是更加从容


总结


人们还在行走,我们的故事还在继续~


WechatIMG154.jpg


作者:寻找奶酪的mouse
来源:juejin.cn/post/7349136892333981711
收起阅读 »

前端开发,不应止于前端

重新思考前端开发以及自己未来的规划。先说结论,再展开。 烂程序员关心的是代码,好的程序员关心的是数据结构和它们之间的关系。—— Torvalds 编程也是内容创作,认清自己是哪个层级的创作者。 亲身经历 公司在去年选择了一款 Plasmic 这个低码平台,...
继续阅读 »

重新思考前端开发以及自己未来的规划。先说结论,再展开。



  1. 烂程序员关心的是代码,好的程序员关心的是数据结构和它们之间的关系。—— Torvalds

  2. 编程也是内容创作,认清自己是哪个层级的创作者。


亲身经历


公司在去年选择了一款 Plasmic 这个低码平台,希望未来由业务部的人来使用低码平台构建页面,由开发部的人负责研究平台的使用方法、解决复杂的问题。后来,公司有 100+ 个问卷需要制作,并且这个业务是在内网中,不方便使用第三方的表单服务。这 100 个问卷中,有几十个在另一个 Vue 系统中有实现过,还有一些可能需要新增。我推荐让开发部来写这部分代码,但领导还是决定让业务部门的人使用低码平台(基于 NextJS)来构建。理由是这些问卷在另一个 Vue 中有实现过(我实现的),照着页面抄就行了。


在业务部的人经过一个星期的折腾之后,做了几十个问卷,最终因为难以维护而停止。这几十个问卷每个都是单独的页面,每个页面都需要对接口,需要一个问题一个问题的拖拽然后配置。在检查的时候,出现了各种各样的问题,量表出现问题时,还得一个问题一个问题的排查,排查起来不如重做。更何况,业务部的人也不会排查页面,她们没有什么编程基础。




这个问题并不难解决,只是这个决策让人有点令人匪夷所思。我的解决步骤大致分为两个步骤:将 NextJS 中的 Form 的编辑变成声明式的、对 Vue 中的 Form 进行迁移。


将 Form 的编辑变成声明式的,也就是用 JSON 来配置。例如在 Vue 中可以使用 FormCreate、在 NextJS 中可以使用 nice-form-react。我其实并不喜欢拖拽式的低码,拖拽之后再通过点击来配置其实很费时间,在经过我的实践发现,这种声明式的配置配合 GPT 来使用非常妙,只需要把配置相关的要求告诉他,就可以让他完成大部分的工作。前两天发现有类似的文章:低代码与大语言模型的探索实践。把编写 Form 页面变成编写 JSON 文件,复杂度直线下降。业务部的人可以直接通过 ChatGPT 生成 JSON,我只需要给他们一个工具来校验和展示 JSON 所对应的量表即可。


将 Vue 中的 Form 转换到 Next 中,有些人可能会考虑思考 FormCreate 底层的逻辑,然后在 NextJS 中再实现一遍,这样就能无缝迁移。并不需要这么做,这么做工作量非常大,只需要看数据结构怎么转换即可。



总结:Vue 中的 FormCreate 经过了魔改,支持根据题目算分。在 NextJS 先实现类似的声明式构建的机制,然后再将数据库中的 JSON 配置进行转换。



最终,加上业务部的配合,使用 GPT 来生成 JSON 文件,两三天的时间就全部迁移完成。大胆预测一下,拖拽式低码平台后面会被懂 DSL 的平台所替代,利用语义化的 DSL 配合大语言模型,效率应该会非常高。


重新思考前端开发



Linux 的创始人 Torvalds 曾说过一句话:“烂程序员关心的是代码,好的程序员关心的是数据结构和它们之间的关系”。



上面的声明式的 Form 工具是我构建的,由业务部的人来使用,当他们有什么需求的时候,我能很容易知道现有的结构能否实现。将 React 想象成一个更复杂的声明式的 Form 工具,那么熟悉它底层原理的人应该也可以拓展它的边界。


于是我尝试着阅读了一些 React 相关的源码,根据《🚀 万字好文 —— 手把手教你实现史上功能最丰富的简易版 react》构建了一个 mini-react。理解了 React 本质上是 DSL + 高效更新树的算法。JSX 作为 DSL 来引入组件化和简化树形结构的编写,Fiber 树和 Diff 算法来高效的更新树。


沿着树形结构稍微发散一下,就知道为什么会有 React Native 了。在网页中使用 DOM 树,在安卓中使用 View,在 IOS 中使用 UIView,这些都可以被称为布局树。当然除了更新视图,还有很多需要兼容的问题,例如:



  • 解决布局不一致:采用 Yoga 布局引擎。

  • JS 和原生代码交互:跨语言通信都会利用 Bridge 这种机制。例如调用 rolldown 会使用 napi-rs


我还继续沿着树形结构去探索 React 的可能性,想到了 Svg、Canvas、Three.js 这几种技术。我并不是特别了解这几种技术,只是简单的 check 是否有人将 React 用于这些方向,最后发现 React Three Fiber 这个项目。Three.js 中需要渲染场景树,Fiber 树现有的逻辑为什么不能用,非常好奇作者是如何将 Fiber 应用于 Three.js、为什么需要再实现一个 Fiber。




学会用 React 写页面非常简单,从零基础开始学,最多几天就能写出基本的页面,最麻烦的可能就是调 CSS,但是这些问题的复杂度都并不高,多搜索多尝试多问 GPT,基本也花不了多长时间就能解决。


但如果我们遇到的需求是制作 Su7 在线预览、制作 Win98 在线版、制作 Figma(通过 Webasmbly 与浏览器 Canvas 交互,让用户在浏览器端体验到了 Native 软件能力),那我们应该怎么办?薪资水平上不去的原因有部分原因就是这个了吧。我想到的解决方案是:重视源码阅读、重视数据结构和算法、甚至重视底层的数学。虽然上大学的时候就一直听说这句话,但是一直感悟不深。


在我重视了源码阅读之后,开始尝试去阅读 React 源码,然后顺着树形数据结构更新这个核心概念,延展出了 React Three Fiber。假设将时间线往前移动几年,并且我的设计和开发能力足够,可能我就成为了 React Three Fiber 的 Creator。也就是说,我顺着这样的思路再往后学习,可能也会发现一些新的场景,然后做出一些还不错的工具。


在 React 源码中有很多对于树这种数据结构的操作,让我重拾了对数据结构和算法的乐趣。在了解到还有 React Three Fiber 之后,我意识到常见的 Web 页面只是 2D 上交互,未来可能还有很多 3D 交互(比如在 Vision Pro 上),我想自学一下计算机图形学(在这之前可能得补一下线性代数、物理的光学)。好像挺多人推荐 GAMES101: 现代计算机图形学入门 这门课的。


内容创作者


作为一个前端开发者,有时候会逛到一些特别好看官网,就会特别羡慕这些开发者那么强。如:ONEUPSTUDIOGSAP。后面我发现,网站好看与否很大程度上取决于设计师,软件好不好用取决于产品,功能能否实现取决于程序员。


开发者的职责是用代码将他们的想法表达出来,或者制作更好的工具帮助他们去创作和表达。工具之间的区别在于表现力、使用场景和使用范围大小,并且这些工具通常都是声明式的。设计师能使用 Webflow 这样的软件开开发出好看的网页,但是前端开发不一定能做到。作为程序员,最好的做法是制作更好的工具,如果直接表达想法,就会写出维护性和拓展性很差的代码。就像我上面提到的 Form,我应该提供一些制作 Form 的工具,而不是一个页面一个页面的绘制。


我们常见的 CSS 就是表现力非常强大的工具集,里面包含了 Table、Flex、Grid 等等工具。在没有 Flex 的时候,我们可以用 table-cell 这种这种的办法来实现垂直居中,但是在很多场景下使用起来比较麻烦,这就是工具的表现力差。后来引入 Flex,可以轻松的实现垂直居中。


程序员也是一种内容创作者,我大致的划分了一下互联网上的内容创作者,大致有如下的观点(不一定准确):



  1. 内容创作者可以大致分为:数学/物理、框架/库、软件/游戏/网页、视频/图片/文字

  2. 内容创作者如果从上到下排布,创作人数会呈现金字塔形状,从上到下创作难度从高到低、内容的数量会由少到多。

  3. 上层创作者为下层创作者提供基础设施(声明式的工具),并且可以简化下层创作的难度,但有可能会让下层创作者失去工作。


我在写 mini-react 的时候,相当于自己处于「框架/库」的内容创作者,我尝试直接在 codepen 中找一些有意思的作品,然后尽量去提供相关的机制(渲染、Diff、Hook)。作为「框架/库」的内容创作的的时候,可以很容易分析出整个软件的边界,我能知道 mini-react 能否做到某些功能。具体的页面绘制可以交给另一个层级的内容创作者,也可以尝试去复用他们的作品。


不同人有不同的喜好和擅长点。我很喜欢好看的软件,但我在绘画和艺术方面没有非常高的热情 Passion,往「数学/物理」这个方向去拓展应该会更适合我。有些人可能喜欢画画,会往「视频/图片/文字」这个方向,最终成为设计师。


过早优化是万恶之源


“过早优化是万恶之源”来源于 Donald Knuth 的《计算机编程艺术》一书,其原话是:



The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.


真正的问题在于程序员在错误的地方和错误的时间花费了太多时间去关注效率;过早优化是万恶之源(或至少是大多数问题的根源)。



在学习 mini-react 的时候,我想到了一些问题:



  • React 中还有很多种 API 和配置,那我是不是要都实现一遍?

  • React 有很多优化手段,我是否都要看看?


答案都是“不”。通过 React 能实现的网页,用 JQuery 也能实现。这些优化手段和 API 是通常都针对非常具体的场景,其通用性是比较低的。在掌握了整个 React 的核心原理之后,遇到这些场景再去学习会更好。它们大多也是基于核心原理去拓展的,理解起来并不会非常耗时间。比如 React Hooks 和 Fiber 树紧密关联。


半年计划


用以终为始的眼光来看,我十年之后还会在现在这家公司吗?答案是绝对不会。不在沉默中死亡,就在沉默中爆发。继续在公司苟着也只是将问题隐藏起来,所以还是决定了离职。


现在找工作难度越来越大,前端更是重灾区,一个岗位可能几十个人投。在这种环境下,调整好自己的心态比较关键。苦思冥想后,想到了一句可以让自己保持 Passion 的话:“找不到工作这段时间就是提升能力,找到工作就是幸运的”。


最近看到一篇博文非常喜欢,这里转载一下《前端开发的瓶颈与未来之路》 中的一段文字:



我在 2018 年有幸参加了 TypeScirpt 的推广大会,TypeScript 的作者 Anders Hejlsberg 亲自主讲。一位将近 60 岁的程序员在讲台上滔滔不绝的讲技术方案,TS 的设计理念。你真的很难想像这样一位处于「知天命」阶段的老头子(实际上很年轻)讲的东西。


QA 环节有个年轻小伙问到 Anders「在中国做程序员很累、很难应该怎么坚持下去(类似这样的描述,细节记不清楚了)」的问题。


Anders 几乎毫不犹豫的说出了「Passion」这个单词。我瞬间就被打动了。因为在此之前我对于「激情」这个词的认识还停留在成功人士的演讲说辞层面,当 Anders 亲口说出 Passion 一词的时候,让人感觉真的是一字千金。



这里还有一些我非常喜欢的文章,给大家推荐一下:



作者:chieh
来源:juejin.cn/post/7399273700117479474
收起阅读 »

一个普通人的27岁

致工作三年即将27岁的自己 这是一篇自己的碎碎念、即回顾自己以前的成长经历、也小小的持有一下对未来的期待。 我是一个双非本科从事于Java开发的一名普普通通的码农、不同于大多数人的27岁、大部分人在这个年龄都已经工作了4/5年、而我也恰恰刚刚满三年而已。 读书...
继续阅读 »

致工作三年即将27岁的自己


这是一篇自己的碎碎念、即回顾自己以前的成长经历、也小小的持有一下对未来的期待。


我是一个双非本科从事于Java开发的一名普普通通的码农、不同于大多数人的27岁、大部分人在这个年龄都已经工作了4/5年、而我也恰恰刚刚满三年而已。


读书


小时候的记忆很模糊、很少关于有父母的记忆、从小的印象就是他们在很远的地方打工、那边还有一个从未谋面的哥哥、小时候的记忆更多是和爷爷奶奶在一起,爷爷在我记事起、他就很忙、很少在家里也或许是我不记事或者缺少了这部分的记忆。


在小时候的记忆里、住在茅草屋里面、那个时候家里还没有完全通电、印象里经常点煤油灯、这个时间段应该是02/03年的时候、记忆里这个时候家里养了一头牛、是一头老黄牛。家里在需要耕田播种的时候、不管风吹日晒、都能看见爷爷在田里一边驾驭着黄牛、嘴边一直在说什么、应该是教导牛牛该怎么走以便使的犁田犁的更好。记不清了、只知道每次遇到下雨的时候、爷爷披着蓑衣带着一个草帽、颇有一些武林大侠的气息。


那个时候家里有一条很凶很凶的狗、幺爷爷家里还是一条白猫、年龄比我那个时候都大。这条很凶的狗已经不记得长啥样了、甚至什么时候去世的都没有印象。


关于这条狗不多的记忆就是、它很凶、但凡看见我们在地坝(四川话:门前小院的意思、通常用于晒一些农作物的地方、或者夜晚乘凉的地方)里面打闹。它都会狂吠不止、这是对它的一个记忆。


还有一个记忆就是,记得是在某一个夏天、在屋后发现了一只野兔、这个时候不记得是不是爸妈在家了、全家都在追这个野兔、追了好久、这条狗也在追、有一个画面就是在我小时候的眼里那个农田的岸边很高、这个直接就从岸边往下面的田里跳下去、连续跳了好几个这样的梯田、那个姿势在我眼里好帅好帅、现在都记得很清楚。最后这个野兔是被抓住了、炸了酥肉、那个味道真的很香、现在都记忆深刻。毕竟小时候家里都是吃猪油、用很小很小的一块、煎出油炒菜。


幺爷爷在的猫是条白猫,印象里是一条抓老鼠的好手、但是不知道它什么死的、只记得大概有十三岁左右。


奶奶有风湿心脏病、那个时候总会吃一些药和一些偏方、记忆里有这么一幕、爷爷把刚出生的小狗狗杀掉、给奶奶治病、嘴馋的我也要吃、结果吃了一口就闷住了。


奶奶在我的记忆里有个画面就是我不想去读书、在上学的路上跑到了一个斜坡上、就如同那个时候黑白电视机上播放的游击战争片一样、以为自己躲在这里他们指定找不到、当然了最后肯定少不了一顿打。印象里只被奶奶打了这一次。


奶奶是在06年走的、不到六十岁。记忆特别深,当时哥哥从东北回老家也快一年了、那是在一个夜晚、哥哥先去睡了、我和其他堂哥堂姐在家里看电视、电视里播放的是洪金宝主演的、是一部战争片、大概就是他们去越南救什么人、有一个人在飞机上跳伞的时候说要倒数十个数、然后打开伞、结果这个嘴吃的人没数到就摔死了。里面有个画面用草杀人、后面还依葫芦画瓢学过这个东西。


奶奶走的时候、爷爷是第一个发现的、我记得爷爷发现之后、我去把哥哥喊醒了、然后我就一直在哭。虽然当时不知道死亡意味着什么、就是在哭、那个时候我上三年级了。奶奶走的那天的天气很好、我还记得我捡了一个螺母回家、后来我把这个螺母扔掉了、当时就想如果不捡这个螺母就好了、奶奶就不会走了。


第一次见哥哥的时候是在一个夏天、爸妈把他从东北送了回来、打算让他家里面读书、当然读书的地方现在已经垮掉了。那个时候家里的公路还是泥巴路、泥巴路大概还是前一年挖机采挖的、挖坏了几个秧田。他们在回来的前一年、写了一封信寄回来、内容是什么记不住了、只记得有一封信、分别向爷爷奶奶以及我都写了点东西。初次见面的时候很陌生、眼前这个和我差不多高有点黑的就是我哥、我的关注并没有在他的身上、更多的是他们提的袋子里面、因为有一袋子糖。


当然了小时候的记忆还有几个画面、就埋藏在心里吧、为什么说上面的狗狗很凶、因为他在我堂姐的脸上留下了印子、现在都能看见。


奶奶走掉之后、我和我哥就去了东北、因为家里没人会做饭了。就去东北读书、东北的记忆说不上多好、校园霸凌确实存在、我也是被霸凌的那一员、我不像我哥哥那样、他们总是有勇气、那个时候的我没有。


在东北这三年、父母总是在吵架打架、住在平房里面、附近都是和父母一样的体力劳动者、他们一闹附近的人都会知道。我们的右边住了一个也是一个外出务工者、他们的有个女儿、比我和我哥都大、长得很白。在我们的左边也是一户外地务工者、不过是东三省的、不是四川的、这家的女主人好像很贤惠很好看、长得也很白。


在这期间、四川发生了很大的一件事、汶川地震、当时我记得我和附近的小孩偷偷跑去上网、结果附近的网吧都没网、然后回家就看到电视上到处都在播放新闻、去上学的时候、学校组织了捐款、我捐了五块钱。


小学结束之后、过完了六年级的暑假我就被送回到了老家、走的时候是和爸爸在工地上的工友一路的、正好他要回家。他和我们是一个地方的,记得大概是午饭后、叫了一辆出租车、我就和这个工友上了车、爸爸的这个工友坐在了副驾、我坐在了后排、送行的人有几个、车窗升起、行驶了一段路后、眼泪就落下了、大概知道了以后又不会在爸妈身边了、也不知道为什么没有哭出声、就和电视里面一样。这就是小学的记忆。


大概走了三四天、回到家了、就开始上初中了。


报名的时候见到了很多小学同学、他们很容易就认出我来了、然而我并没有很快的认出他们、他们说我五官没什么变化、很好认。


初中是在一所民办初中读的、我们这边的公立学校很水、很乱、上课打牌抽烟都存在、老师也不会管。而且离我们也很远。民办学校离我家很近、这里的校长和附近的家长都很熟悉、自然而然的就去读了、自然而然的也会听到这样的交代、娃儿不听话不好好读书就整哦。初中的算是目前为止的小高光、因为那个时候自己还算聪明、成绩也还算可以、被当着升学的苗子重点关注。当然最后也还算争气、以A+1的成绩考进县一中、我们这一届也还算争气、有一个去了同济大学、算是历史最好的一届了,当然这个学校现在也垮了。


高中的时候流传出了一个梗、你的数学不会是体育老师教的吧、那个时候会自嘲、我初中的时候、不止是数学是体育老师教的、历史和物理也是体育老师教的、这个老师还没上过高中。


高中是lol很火的时候、那个时候脱离了棍棒教育的我、理所当然的沉迷了进去、高一上学期还好、棍棒教育的习惯还在、期末考试全年级2000多人我考了200名左右、班上第五名好像。


学习态度的变化不止是因为lol、还记得当时班上有个人说我很努力、所以成绩这样、当时不知道是脑子抽了还是咋了就认为别人在说我笨、然后就慢慢放弃了之前的学习方式、再加上联盟的影响、自然而然的成绩一落千丈、后来也就去复读了。


复读这一年没什么特别的记忆、涨了几十分、去了一所双非学校。还是没有做到高一班主任说的那样、你好好读上个一本不成问题。当时学校的升学率是前60名可以上川大的程度、200名左右上一个一本好像确实不是什么问题。但也确实没做到。


上了大学就和大部分人一样、加部门、当班干部、实际上就是混吃等死。不同的是大二那年、由于初中埋下的病因、做了双侧股骨头置换手术、这一下就把家里面掏空了、手术是在北京做的、花了20+、是在18年、三月一号做的左腿三月14号下午14:17做的右腿、刚检测出来的时候很崩溃、出了诊室就哭了、因为知道这么大笔钱家里出不起、当时借住在北京的姐姐家,在十五楼窗口处、恐惧战胜了勇气、没有跳下去。


查出来的时候就告知了父母、父母当时在深圳上班、我一个人去的北京找的姐姐、父亲先赶过来、看见父亲憔悴的面庞、自己也彻底取消了跳下去的想法、太憔悴了、没见过这个样子的父亲、也无法去想象如果跳了父亲会咋样、只知道那个时候父亲的头发白了很多、然后开始秃头了。


做手术的那几天恰逢过年期间、医院的人很多、见识了人生百态、有的人痛苦呻吟着想活下去,有的人沉默不语想离开人世,坐在轮椅上的时候、被推出去透透风、看见了一个和我一般大的人、少了一条腿,那个时候心里想着都是苦命人。不同于大一暑假工被晒的黢黑的我,在学校看到一个老外、老外的黑衬托出我的白,那个时候由于被晒的黢黑心情很糟糕,见到这个交换生之后得到了极大的安慰。


因为这个手术需要人照顾、学校是上下铺、因此休学一年、手术很顺利、在我们眼里是一个天大的事情、在医生眼里如果一个小手术一般、就和普通的感冒差不多。术后也会恢复的很好、有一段时间是长短腿、走路一瘸一拐的、过了两个多月吧就彻底正常了。到目前为止至少没什么问题。唱跳rap不打篮球。


后面的大学时光就很平平无奇、本以为就和之前的师兄师姐一样正常大学然后毕业、后面就遇到了口罩事件、在学校都没有好好学习、在家里怎么可能会好好学习、真的是在混吃等死、大学期间没有什么特别的记忆、唯一的印象就是大一老校区是一群室友、大二搬到新校区、又换了一批室友、寝室从原来和其他专业的混寝、变成了同专业的混寝、但是由于休学一年、复学的时候又被安排到新的寝室、又换了一批室友、读了一年这一批室友毕业了、我大四的时候又换了一批室友。也就是一年一批室友。也算是独一份了。不过后面的都没怎么联系了。


这就是整个读书生涯了。还有很多画面就埋藏在心底吧。


工作


毕业之后、第一年认识了一个老师、养鱼达人、第一次约她出来玩、就问我用什么去接他、给了刚毕业的我一个暴击。于是呼在工作上加把力,从刚毕业的几千块不到一年的时间就破万了。也就是在22年左右吧。这个时候总觉得自己谈恋爱应该有点底气了。可在24年又给了我一个暴击。也就是今年。


在整个22年里面、由于工作还行、有大量的自由时间、在b上学习了尚硅谷的mysql和jvm课程、在慕课网上学习Java高并发课程、还算充实、虽然工作上用到的不多。


在22年、养了一只猫取名壹贰、是只三花、很粘人,也很喜欢、但我把它放在老家了。我的头像就是它很可爱吧。


在23年里、由于之前的学习累积、总觉得要记录一下、避免用的时候又到处找、就开始了写博客这个过程、博客更新的速度很稳定、生活节奏也很稳定、每天下班之后、买菜回家做晚饭和第二天中午的午餐、厨艺和刀工得到了大涨,每天晚上还能学习两小时、从周末开始选题、工作日开始编码、验证写博客、一切都有条不紊的进行着,生活节奏很稳定、窗外的阳光也很温暖。


23年发生了一件事、就是爷爷走了、遗憾的是没有带个孙媳妇回去让他看一眼、爷爷是五月份走的、守灵的那个晚上、睡在爷爷旁边、没有丝毫的害怕、下葬的那一天、没有哭但全是遗憾。至此带我长大的两个人都离开了人世。


在23年11月份的时候、认识了一个菇凉、她的名字很好听、长得也很好看、她的生活多姿多彩、现在都觉得她活得很多姿多彩。就和大家想的那样、慢慢的喜欢上了这个人、好巧不巧的是她对我也有点点意思吧、然后就约着出来玩、一起看电影、一起跨年等等、初期总是美好的、回忆也是。她不会做饭、总是吃外卖、我会让她点菜然后我做好了带给她吃、无论什么时候会送她回家然后自己再回家、每次见面都会给她准备一点零食或者小惊喜、理所当然的我们在一起了、直到过完年之后的某一个周末、我朋友约我们出去玩、在晚上回来的时候、我朋友买了房子(和女朋友一起买的)、刚好又说到这个问题、我就说了一句以后我们也一起买、用公积金带款、然后就因为这个问题讨论了一周、直到最后的分手。


具体的细节问题就不说了。我工作三年攒了一些钱、家里修房子我出了一点钱。一时间我家肯定是拿不出来的、我想让他给我点时间、结果不愿意、她之前有过很长一段时间的恋情被分手、大概是害怕再浪费时间、也能理解。


刚分手那段时间、感觉像是丢了半条命。心态很崩溃、觉得自己很差劲、一眼望到了头、好像也成不了家。掘金的更新速度就能看出来影响,虽然在一起的时间不长、三月份分的手、到现在为止有些时候都会因为这件事emo。


分手之前很喜欢做饭、分手之后再也没做过饭、看着那些为了给她做菜买的调味品以及打包盒、总是别有一番滋味、有时候总觉得自己要是当时做的再好一点就好了。在这期间看了一些心理学相关的书、也学会了一些调整自己的方法。


分手这段时间里、激情消费买了辆车、自驾去了一趟若尔盖大草原、草原很好看、自此身上的积蓄被自己花得差不多了。不止如此、由于工作上没有任何发展、总是干一些和Java无关的事情、甚至打算让我做嵌入式开发和大模型这一类工作,职业发展也看到了头。


整理生活这段时间丢了很多东西、总感觉自己也把自己丢了、好在慢慢的把自己拼好重新捡起来了。


下一个月也就马上27岁了、看着身边同龄的人要么成家、要么即将成家、要么事业有成、自己还是孤家寡人,多多少少也很羡慕。


站在生活这条十字路口、迷茫、彷徨、不安、焦虑每隔一段时间都会出现在自己身边、好在自己的调整能力得到了极大的提升、看书总归是有用的。


古人云:三十而立、至少现在看来、在这有限的时间里很难立起来了、但总要去试试、说不定就成了呢。


未来会是什么样子的呢?不知道,能把自己的生活过好就已经很不错了。感知幸福是一种能力、感知焦虑也是。


对生活的感悟如同总有千言万语、却有一种如鲠在喉的感觉。不知道命运会给我带来什么样的生活?不管怎么样都坦然接受吧。期待吗?期待吧。


写到这里、感受万千、内心细腻的人总是容易伤春悲秋。


回顾过往、就如同这篇文字一样、普普通通平平无奇、都无法用鸡肋来形容。但相信生活不会辜负每一个好好生活的人、始终对未来抱有期待与憧憬。不管最终如何、终将相信我们都会过上自己想要的生活。


最后给自己定一个目标吧:



  • 坚持写博客、写到35岁,我相信自己会一直从事计算机行业的!

  • 健健康康的活到退休。


窗外的天空很蓝、阳光很温暖、最近的心情也很好、希望您也是。


谢谢您能看到这里,祝君心想事成、万事顺遂。


作者:Supersist
来源:juejin.cn/post/7396609176744886310
收起阅读 »

前端转产品一年总结!

截止至本月,我从前端研发转岗为产品经理已经一年左右了,这篇文章就讲讲我这一年中的一些经验和总结。希望能为同样身为前端也有想法转产品的你提供一点帮助。 为什么转产品 工作原因 我是22年毕业的,在刚刚毕业的那段时间,我还是对前端开发很有热情的,经常把工作中的一些...
继续阅读 »

截止至本月,我从前端研发转岗为产品经理已经一年左右了,这篇文章就讲讲我这一年中的一些经验和总结。希望能为同样身为前端也有想法转产品的你提供一点帮助。


为什么转产品


工作原因


我是22年毕业的,在刚刚毕业的那段时间,我还是对前端开发很有热情的,经常把工作中的一些内容给总结成文章在掘金发布,而且开发时我会比其他人更加注重整体的代码质量和实现的完整度,毕竟也要写文章嘛,输出倒逼输入。但是随着工作年限的增加(其实也没多少),我渐渐的感觉公司的业务没有什么挑战性了,而且最开始同事们还比较注重代码质量,但随着业务越来越复杂,排期越来越紧张,代码质量慢慢的就开始妥协了。


而且有一些功能实现方式比我想象的复杂很多,但是他们依然执着的要引用一些我不认可的框架或者库,代码这件事大家应该清楚,写的爽是很重要的,如果一个项目的实现都是我不喜欢的实现方式,为了一些虚无缥缈的性能优化把代码写的很复杂。


不知道大家有没有用过 SWR 这个请求库,我曾经写过一篇文章介绍这个工具 《都什么时代还在发传统请求?来看看 SWR 如何用 React Hook 实现优雅请求》,这是我很喜欢的一个请求库。它可以帮助我们在组件中获取请求数据时,不用在父组件获取后一个个通过 props 传递,而是直接在子组件中获取请求数据,并且不用重复请求。


但我有个同事认为直接使用 SWR 性能不好,因为每个组件都调用 hook 去请求,虽然 SWR key 是一样的,那肯定有个判重机制,这个判重机制对性能有影响。我当时就很无语,我说判重机制不就是用避免重复请求这件事情的嘛。更无语的是,他的解决方法时在父组件中使用 react context 创建上下文,通过 SWR 获取数据,将 SWR 中的数据传入 Context,然后在子组件中消费 Context。我当时就觉得这种写法就是恶心,脱裤子放屁行为,这么写何必用 SWR,直接用 Axios 请求后传子组件得了,为什么不直接在子组件里面调用 SWR 拿数据?


后面我与他掰扯,说我们按照 SWR 官方文档的方式来用就好了,无需多此一举,他的观点是 “SWR 又不是 React 官方的。他们的用法也不见得合适”,其他前端同事也没有很大异议,后续就是那段代码依然合并进去了,而且后续他都是这么写的。除此还有很多在 js 代码中使用单字母简写的变量,问就是跟xxx语言学的,我个人是觉得前端项目的变量名还是写全称,尽可能完整,让代码可读性更强,但我也懒得去争了,一旦大家的代码规范不同,那对我来说写代码就是很难受的一件事情了。关于这件事情我希望能在评论区看到大家的看法。


职业规划


其次是职业规划,这个倒不是说我最初就决定了想走产品这条路,而是我不太想一直走前端的路子了。我最初之所以选择前端开发的岗位,是由于我的大学专业是计算机相关,并且在我毕业前有过一段创业的经历,在那段经历中我担任的就是产品经理+前端开发的角色,因此找工作时也自然而然的投递前端相关的岗位。


但慢慢的,我在工作中感受不到前端技术很大的热情,脑袋里的灵感越来越少,工作上的代码写起来越来越乏味,而且社区里还是各种面试拷打,八股文,算法题最吃香。我是真的很讨厌八股文,我知道基础对于前端来说很重要,但还是讨厌,想到一旦要跳槽就要重拾八股文,我就觉得真的很无聊,所以我心理也埋下了要转产品的种子。


兴趣驱动


前面有讲到我在大学期间有创业过一阵子,当时我们一边做外包项目,一边做自己的一些校园产品,不论是网页还是移动端的产品,各个主流组件库都门清儿,而且也画过原型图,对一个产品从零到一的流程比较清晰,自己也对设计一个优秀的产品有执念,虽然至今还不算完成,但毕竟如果一件事情能让你有成就感,那么它就会推着你向前走。


怎么转的产品


在去年八月份,我们公司的产品要做一个大版本的迭代,很多功能都需要重新设计实现。在一个新产品诞生的初期,研发是依赖非常产品经理的产品文档,而产品经理则需要进行产品调研,概念设计等等流程才能写出一份产品方案,这就导致了产品有很大的产品方案设计的工作量,而研发只能先做一些基础框架搭建,写写技术方案,一旦这些简单工作做完就必须停下来等产品出文档,十几个研发两三天没活儿干,对于一个企业来说肯定是无法接受的。因此我们的领导就开始招聘产品经理,与此同时也在内部会议时主动问到有没有愿意尝试一下产品的工作。我本身就与公司里的产品比较熟悉,又有这么一个机会,于是我就毛遂自荐,并且当时在会上主动提出参与的也就我一个,于是就顺理成章的开始了研发向产品的转变。


遇到的问题


相信点进这篇文章的同学,有很多都是有过转岗为产品的想法的,那么我就说说从我自身出发,在从研发转为产品之后遇到了哪些问题是我没有意料到的。


专业知识


当研发时,每一次产品需求评审会上,我会去看这次新增了什么概念,思考这个需求如何实现,产品画的原型图交互流程有没有可以优化的地方,似乎自己对需求的理解能力还是很强的,也能够理解业务。


例如一个微信朋友圈的功能,产品经理提出放在发现页面,然后单击右上角加号可以选择照片发布,长按加号可以直接发布文字,那么我就会想长按这个操作是不是不够直观呢,会不会有用户很长时间了都没有发现这里是可以长按直接发布文字的?于是我就提出问题与产品探讨,长此以往,我会觉得我们的产品有时候考虑问题也不是特别全面嘛,给了我一种我上也行的错觉。


到了实际转变为产品经理后,你就会发现你要做的不只是思考朋友圈的发布是从个入口进去,而是老板给了你一个需求,是用户如何在微信中分享自己的动态。那这时候你就要想:



  • “我是不是加一个类似 QQ 空间的功能?这个功能就叫动态?还是空间?还是叫微博?还是叫圈子?”

  • “这个功能要放在我的页面还是聊天页面,还是说新增一个底部栏?”

  • “这个功能和微博或 QQ 空间有什么本质上的不同?”


或者评审时有同事或领导问你“为什么要叫朋友圈?我觉得叫朋友圈我完全 get 不到是什么意思?”,你应该如何应对?


我在刚刚转产品的初期几乎每次评审都是心惊胆颤,因为我很难接住同事问的问题,而且我也不是一个性格刚猛的人,可以接受讨论但不太喜欢很激烈的争论。这个问题出在两个方面:


一是刚刚转产品,我对于过往的一些概念只是了解但没有深入了解。例如领导问道:“xxx功能为什么要这么设计?”,这个功能并不是一个新功能,而是一个存在已久的功能,但是设计上有些许不合理,但是你并不清楚这个功能具体的上下文,那么人家一问,我也只能支支吾吾。这样的经历在有过几次后就会给人一种你不够专业的感觉,你连系统里的功能设计都不清楚,你还配当产品经理?


二是对自己的职责定位及权限边界还不够清晰,以上面朋友圈的例子来说,我觉得我拍板不了朋友圈具体的名称,我得去找更有经验的同事一起讨论,虽然同事会给你提供意见参考,最终的决定还是得你来做。在方案评审时,发现领导对朋友圈这个概念设计有很多疑问,例如问你:“为什么不参考竞品?”,“这个入口放在发现页也太隐蔽了吧,我作为用户完全不会点进去?”


诸如此类的问题,刚开始我是完全接不住的,总是想着领导说的也有道理,那我就按照他的想法改吧。这样一来,领导提出的意见一旦比较尖锐,你就只能顺从,说明你没有自己的想法,没有自己的主见,即使有想法也不能坚持。尤其是你还没有足够的经验,更容易被人质疑。此时如果没有一颗大心脏,没有一个非常全面的调研和思考,就容易变得很不自信,从而丧失对产品这个岗位的工作热情。


刚刚转产品的那个月我非常煎熬,每次做方案和评审前都特别紧张,有时候睡觉前都在想要是每天同事问了这个问题要怎么回答?


与研发的对接的边界


在我还是前端的时候,我单纯的认为很多边界情况就是需要前端去考虑的,例如页面的加载状态是骨架屏还是加载动画,表单字段在输入时是失焦时触发表单验证还是点击提交按钮时触发表单验证,返回上一个页面是否需要保留页面状态,文本溢出时的省略效果如何。


但当我自己转为产品后,似乎这些情况还是得我来考虑,每天需要面对各种研发提出的各种组件边界情况如何处理,很多边界情况如果你的文档中没有写,那么研发可能就不考虑了,不做任何处理,直到问题被领导或用户发现了,这时候只要你文档中没有提,那多半就要背锅了。一个你自认为通用的空数据页,你这个页面画了图,那个页面没有画空页面的图,那么研发就可以理所当然的在这个页面没有数据时啥都不展示。


这个现象主要出现在产品初期。随着产品迭代到一定程度,产品团队和研发团队通常会达成共识。此时前端的组件已经覆盖了大多数边界场景,产品团队也了解研发团队可能在哪些地方容易疏忽,因此需要特别强调这些方面。


时间分配


前面讲到研发会时不时找你对各种事情,这就导致了你平时可能很少有大段的时间专注于做一件事,每天上午研发问几个小问题,下午问几个小问题,一天就这么过去了。相比于写代码,有时思路清晰的话就可以一整天都在写,遇到问题了再停下来查一查想一想,相对来说还是会有大片的时间去做事。


对于我个人来说,有时候一个需求给到我,我可能一时半会儿没有一个好的思路,这时候你即便怎么想,怎么查都很难有突破,但有时你睡个午觉,或者放空一下,就突然有解决方向了。这导致了我做为产品经理时比较少进入心流状态,我需要思考,需要头脑风暴,但有时候想不出来也不能僵在那儿,而一件事情悬而未决又让我很难受,就容易有焦虑的情绪。


职业规划的变化


虽然很多人说技术人员越老越不吃香,产品就不一样了,可以积累经验,未来的道路也更加广阔,有机会走的更远。话虽如此,但实际上对于前端开发来说,基本上工作的两三年就基本上对整体的前端技术栈有个深入使用的经验,无非就是 React 和 Vue 以及相关的生态,,再深入点就是一些特殊协议或者可视化方面的更深入的技术,在跳槽时,只要技术栈匹配基本都可以尝试。但是产品经理的话,通常都会要求有同个赛道的经验,例如做社交产品的公司,当然希望找有社交产品经验的产品经理,而产品的赛道可就多了


前端转产品的优势


前面提了这么多研发转产品可能遇到的问题,也不能光抽巴掌不喂糖,所以下面再讲下前端转产品的优势,这些点大家可能会更有共鸣一些。


技术背景


关于这一点,有很多网上的文章唱反调说你有研发背景,肯定满脑子技术思维,做产品的时候创新能力肯定不行,你被你技术背景束缚啦。


这一点从我个人出发,我只能说产品懂技术绝对是一个优势,无论是从功能设计,到与研发沟通,天然的少了一层隔阂,尤其我们公司的产品是基础软件,用户群体本身就是相对懂技术的人。刚刚转为产品经理时,产品相关专业能力虽然不足,考虑事情不周全,但是懂技术起码给你兜了底,你不会有过于天马行空的想法,研发在你面前不能也信口开河,大致的实现成本,排期时间你能够做到心里有数。


前端思维


前端思维和技术背景还是有些不同的,前端和后端对产品的理解方向有些不同,前端偏向交互,后端更偏向业务。因此这里我将技术背景和前端思维分开讲。


不同公司使用的原型工具可能不同,我们公司是直接由产品来出高保真原型,因此我们使用的工具是 Figma,
在我转岗产品一个月左右 《👨‍💻 Figma 协作设计工具:前端开发者视角快速上手指南》 我就写了一篇关于 Figma 的使用文章,我认为我的 Figma 上手速度是非常快的,这可能由两方面的因素。



  • 一是我大学的时候就有自学平面设计,对于 PPT,PS 这类创意类工具的使用方式比较了解。

  • 二就是前端思维了,因为做原型其实和用代码写页面的思路是一致的,你看到了一个页面,首先你会想这个页面会由哪些组件组成,这些组件是否已经实现过了?如果没有实现过是否可以抽离到组件库进行复用?


Figma 这个工具是我转产品后,公司才开始使用的,因此大家都不熟悉,那么交互设计的大头就落在我身上,我就拉着我们的 UI 同学一起搭建了一个组件库,这个组件库中包含了常用的所有表单组件,表格组件,还有一些页面组件,其中我根据过往的经验为组件配置了很多参数和插槽,保证插件的拓展性。


如果我没有前端相关的经验,我敢肯定从头要去了解这套组件体系,并熟练的去构建出一套兼容性好的组件库。是要花很多时间的。


后续我们还用上了 Figma 的分支管理功能,这一点和 Git 的分支管理也有些许类似,逻辑上的快速迁移学习为我上手相关工具增速了很多。


对未来的思考


虽然在当前公司已经当了一年的产品经理了,大部分的事情都可以轻松 cover,也算是处于舒适圈了,但是心里还是会焦虑,毕竟目前只是身处一个小公司,而且在产品方面的专业能力又难以评估,网上想要学习关于产品经理的相关专业知识几乎都是卖课的,而且我愈发觉得产品相关的知识不是看任何书籍或课程可以快速提升的,产品经理相关的能力以及可能碰到的问题都是要在解决实际需求的过程中去提升,而且专业的能力与产品的赛道息息相关,你在一个赛道的积累可能换个赛道就派不上用场了,因此还是得持续学习,让自己不论做什么行业都能保持竞争力。


代码的话现在偶尔写写自己感兴趣的小项目,只是没那么多了,公司内偶尔也需要我去支援研发。如果大家有有意思的小项目,小比赛欢迎拉我一起去折腾(不做外包)。


作者:oil欧哟
来源:juejin.cn/post/7395559155686604809
收起阅读 »

哭了,朋友当韭菜被割惨了

最近我的朋友,被某些知识付费坑得很惨。全程毫无干货可言。内容仅仅只适用于初级、或者说部分中级的程序员。为此,我的朋友交了大几千的学费,却收获甚微。 当然,你可能说,是你的朋友问题啊?你朋友烂泥扶不上墙,学习方法不对,别人都有很多成功的案例。什么offer收到...
继续阅读 »

最近我的朋友,被某些知识付费坑得很惨。全程毫无干货可言。内容仅仅只适用于初级、或者说部分中级的程序员。为此,我的朋友交了大几千的学费,却收获甚微。



当然,你可能说,是你的朋友问题啊?你朋友烂泥扶不上墙,学习方法不对,别人都有很多成功的案例。什么offer收到手酸,外包入大厂。




我买这些课就是为了学习,入门一些语言。知识付费很合理呀!!



于是我跟我朋友在微信彻夜长谈,有了如下分析


先说结论



请擦亮你的慧眼,你的一分一毫来之不易。不到迫不得已,才当学费



为什么这么说?


首先,不管你是想就业,还是想学习一些新的技术,网上都有例子,github上也会有前沿的项目提供学习。


类型结论
学习新技术某项技术开源出来,作为技术的布道者,恨不得你免费过去学习,然后你再发一篇文章,越来越多人学习你的技术。
就业简历包装无非就是抄抄抄,抄别人的优秀代码。github开源项目就非常合适

其次,你学费,一定要做到利益最大化。必须要有以下两点



  • 能学到大部分人都学不到的技术亮点。记住,是大部分人,一定要做到差异化

  • 能学到优秀的学习方法,push你前进。


开启慧眼


现在市面的学习机构,鱼龙混杂。,B站大学,某识xin球,某ke时jian 甚至,在某音上,都有那种连麦做模拟面试,然后引导你付费学习。


就业环境不好,买方市场竞争激烈,某些人就抓住你的焦虑心理,坑你一把。回想你的求学生涯,是否也有类似被坑经历?醒醒吧,少年。能救你的,只有你自己


当然,小海也会有潜龙。不可否认,知识付费为我们提供了便利性。



  • 原本散乱无章的知识点,人家给你整理好了,你尽管就是学习,实践

  • 面对焦虑,你觉得很迷茫,需要一个人指点你前进

  • 能认识更多同样诉求的人,为以后学习,就业,甚至做生意提供可能


但是,某些不法分子,就是抓住你的这个心理,疯狂ge你韭菜。什么10块钱知识手册,19.9面试题,100块钱的项目视频。天天一大早,就转发一些公众号到你群上,dddd。


这些内容,不是说没有用。我们讨论适合人群,这类东西不适合中高级程序员



说那么多,你得学会判断这个人是不是大佬




你都可以简历包装,为什么‘大佬’就不会是被包装的



那就稍微整理一下,哪些是真大佬,伪大佬


真伪大佬


某佬博客开源项目学习人群是否顺眼
伪大佬面试题居多,很多基础内容,没有干货无,或者很少。动不动就是商城,博客应届生占比较多可能顺眼
真大佬博客、论坛内容干货。整理分类完善,你能学到东西有,某些大项目的贡献,同时也有优秀开源项目应届生,中高级都有大多数不顺眼,因为实在优秀

就学习人群做一个说明



  • 在就业容易程度上,相对于初中高级别的程序员,应届生无论从考察的内容,招聘的人数。都会容易丢丢。

  • 他说跟着他学,offer赢麻了。但是其中,找到工作的大多数都是应届生


就这些点,我们其实可以能判断个大概了。


记住,你想知识付费。一定要摸清他的底细,不能认为他说得都是对的。人家也是会包装的


你的hello world


或许每个程序员的第一行代码,都是


    print("hello world")

我想说的是,请你记住你的初心。



  • 转行过来当程序员,就是为了狠狠赚他一笔

  • 喜欢写代码,苦中作乐


情况每个人都不太一样,这里不细说。明白你是谁,你还是否有动力能坚持下去。明白这一点,远比你在迷茫的时候病急乱投医更为重要,请勿过度焦虑


为此,后面会说一下如何学习,以及找工作如何不被骗


力量大会


事关钱包的问题,我们都得谨慎谨慎。就业市场那恶劣,朋友找不到工作还被坑了一把。骗子实在可恶。请你先自身强大,先自己找出问题,不花冤枉钱,避免传销式编程


如有雷同,纯属巧合,没有针对任何人,也没有动某些人的饭碗。


作者:Goland猫
来源:juejin.cn/post/7357231056288055336
收起阅读 »

揭秘小米手机被疯狂吐槽的存储扩容技术

前段时间,在小米14的发布会上,雷布斯公布了名为“Xiaomi Ultra Space存储扩容”的技术,号称可以在512G的手机中再搞出来16G,256G的手机中再搞出8G。对于普通用户来说,能多得一些存储空间,无异是个很好的福利,不过也有网友说这是以损害存储...
继续阅读 »

image.png
前段时间,在小米14的发布会上,雷布斯公布了名为“Xiaomi Ultra Space存储扩容”的技术,号称可以在512G的手机中再搞出来16G,256G的手机中再搞出8G。对于普通用户来说,能多得一些存储空间,无异是个很好的福利,不过也有网友说这是以损害存储使用寿命为代价的,那么真相到底如何呢?这篇文章我就从技术角度来给大家详细分析下。


认识闪存


首先让我们来了解一些手机存储的基本知识。


手机存储使用的是闪存技术,其本质和U盘、固态硬盘都是一样的。


在闪存中读写的基本单位是页(Page),比页更大的概念是块(Block),一个块会包含很多页。


虽然读写的基本单位都是页,但是写实际操作的很可能是块,这是为什么呢?


这要从删除谈起,在闪存中删除数据时不会立即删除页上的数据,而只是给页打上一个空闲的标签。这是因为谁也不知道这个页什么时候会再写入数据,这样处理起来比较简单快速。


再看写操作,如果写入分配的页是因为删除而空闲的,数据并不能立即写入,根据闪存的特性,此时需要先把页上之前存储的数据擦除,然后才能写入;但是闪存中擦除操作的基本单位是块,此时就需要先把整个块中的有效数据读出来,然后再擦除块,最后再向块中写入修改后的整块数据;这整个操作称为“读-改-写”。当然如果写入分配的页是空白的,并不需要先进行擦除,此时直接写入就可以了。


预留空间


小米这次抠出来的存储空间来源于一个称为“预留空间”的区域,它的英文全称是Over Provisio,简称 OP。


那么“预留空间”是什么呢?我将通过5个方面来介绍它的用途,让大家近距离认识下。


提高写入速度


在上面介绍闪存的基本知识时,我们谈到闪存的写操作存在一种“读-改-写”的情况,因为额外的读和擦除操作,这种方法的耗时相比单纯的写入会增加不少,闪存使用的时间越长,空白的空间越少,这种操作越容易出现,闪存的读写性能下降的越快。


为了提升写入的性能,我们可以先将新数据写入到预留空间,此时上层系统就可以认为已经写入完成,然后我们在后台将预留空间中的新数据和原数据块中需要保留的数据合并到一个新的数据块中,这样就避免了频繁的读-修改-写操作,从而可以大大提高写入速度。


垃圾回收和整理


在上面介绍闪存的基本知识时,我们还谈到删除数据并不是立即清除空间,而是给数据页打一个标签,这样做的效率比较高。这样做就像我们标记了垃圾,但是并没有把它们运走,时间久了,这些垃圾会占用很多的空间。这些垃圾空间就像一个个的小碎片,所以有时也把这个问题称为碎片化问题。


虽然我们可以通过“读-改-写”操作来重新利用这些碎片空间,包括通过异步的“读-改-写”操作来提升上层应用的写入效率,但无疑还是存在写入的难度,实际写入之前还是要先进行擦除。


为了解决上述问题,聪明的设计师们又想到了新办方法:让存储器在后台自动检测、自动整理存储中的数据碎片,而不是等到写入数据时再进行整理。


考虑到闪存的读擦写特性,当需要移除数据块中部分碎片或者将不同数据碎片合并时,就得把需要保留的数据先放到一个临时空间中,以免数据出现丢失,待存储中的数据块准备好之后再重新写入,预留空间就可以用作这个临时空间。


磨损均衡


闪存中每个块的写入次数都是有限制的,超过这个限制,块就可能会变得不可靠,不能再被使用。这就是我们通常所说的闪存的磨损。


为了尽可能延长闪存的使用寿命,我们需要尽量均匀地使用所有的闪存块,确保每个块的使用频率大致相同。这就是磨损均衡的主要目标。


假设我们发现块A的使用频率过高,我们需要将它的数据移动到没怎么用过的块B去,以达到磨损均衡的目的。首先,我们需要读取块A中的数据,然后将这些数据暂时存储到预留空间。然后,我们擦除块A,将它标记为空闲。最后,我们从预留空间中取出数据,写入到块B。实际上,磨损均衡的策略比这更复杂,不仅仅是看使用频率,还需要考虑其他因素,比如块的寿命,数据的重要性等。


可以看到,预留空间在这个过程中起到了临时存储数据的作用。


不过你可能会问,为什么不直接将块A的数据复制到块B,而需要一个临时空间?


这是因为在实际操作中直接复制块A的数据到块B会带来一些问题和限制。


假如直接进行这种数据复制,那么在数据从块A复制到块B的过程中,块A和块B中都会存在一份相同的数据,如果有其他进程在这个过程中访问了这份数据,可能会产生数据一致性的问题。此外,如果移动过程中发生意外中断,如电源故障,可能会导致数据在块B中只复制了一部分,而块A中的数据还未被擦除,这样就可能导致数据丢失或者数据不一致的问题。


而如果我们使用预留空间,也就是引入一个第三方,就可以缓解这些问题。我们先将数据从块A复制到预留空间,然后擦除块A,最后再将预留空间中的数据写入到块B。在这个过程中,我们可以借助预留空间来实现一些原子性的机制,来保证数据不会丢失和数据的一致性。


错误校正


预留空间还可以用来存储错误校正码(ECC)。如果在读取数据时发现有错误,可以用错误校正码来修复这些错误,提高数据的可靠性。


很多同学可能也不了解这个错误校正码的来龙去脉,这里多说几句。


我们知道计算机中的数据最终都是二进制的0和1,0和1使用硬件比较好表达,比如我们使用高电压表示1,低电压表示0。但是硬件有时候会出错,本来写进去的是1,读出来的却是0。为了解决这个问题,设计师们就搞出来个错误校正码,这个校正码是使用某些算法基于要存储的数据算出来的,存储数据的时候把它一起保存起来。读取数据的时候再使用相同的算法进行计算,如果两个校正码对不上,就说明存储的数据出现错误了。然后ECC算法可以通过计算知道是哪一位出现了错误,改正它就可以恢复正确的数据了。


注意ECC能够修正的二进制位数有限,因为可以修复的位数越多,额外需要的存储空间也越大,具体能修复几位要考虑出现坏块的概率以及数据的重要性。


坏块管理


当闪存单元变为坏块时,预留空间可以提供新的闪存单元来替代坏块,此时读取对应数据时不再访问坏块,而是通过映射表转到预留空间中读取,从而保证数据的存储和读取不受影响,提高了固态硬盘的可靠性和耐用性。


综上所述,预留空间在提升固态硬盘性能,延长其使用寿命,提高数据的可靠性等方面发挥着重要的作用。


小米的优化


根据公开资料,小米将预留空间的占比从6.9%压缩到了约3%。


那么小米是怎么做到的呢?以下是官方说法:


小米在主机端也基于文件管理深度介入了 UFS 的资源管理,通过软件实现“数据非必要不写入(UFS)”,通过软件 + 固件实现“写入数据非必要不迁移”,减少写入量的同时也实现了更好的 wear-leveling 和 WAF


还有一张图:



优化解读


这里用了一些术语,文字也比较抽象,我这里解读下:


UFS(Universal Flash Storage)即通用闪存存储,可以理解为就是手机中的存储模块。


“数据非必要不写入(UFS)”也就是先把数据写入到缓冲区,然后等收到足够的数据之后(比如1页),再写入闪存单元,这样就可以减少闪存单元的擦写次数,自然就能延长闪存单元的使用寿命,推迟坏块的产生。这个缓冲区类似于计算机的内存,如果突然掉电可能会丢失一部分数据,但是对于手机来说,突然掉电这个情况发生的几率极低,所以小米在这里多缓存点数据对数据丢失的影响很小,不过还是需要注意缓冲空间有限,这个值也不能太大,具体多少小米应该经过大量测试之后做了评估。


“写入数据非必要不迁移” 没有细说怎么做的,大概率说的是优化磨损均衡、垃圾回收和整理策略,没事别瞎整理,整理的时候尽量少擦写,目的还是延长闪存单元的使用寿命。


“增加坏块预留” 小米可以根据用户的使用情况调整坏块预留区的大小,比如用户是个重度手机使用狂,他用1年相当于别人用4年,小米系统就会增加坏块预留区,以应对擦写次数增加带来的坏块几率增加。注意这个调整是在云端实现的,如果手机不联网,这个功能还用不上。


wear-leveling:就是上面提到的磨损均衡,小米优化了均衡算法,减少擦写。


WAF:写放大,Write Amplification Factor,缩写WAF。写放大就是上面提到的“读-改-写”操作引起的,因为擦除必须擦掉整个块的数据,所以上层系统只需要写一个页的情况下,底层存储可能要重写一个块,从页到块放大了写操作的数据量。因为闪存的寿命取决于擦除次数,所以写放大会影响到闪存的使用寿命。


概括来说就是,小米从存储的预留空间中抠出来一部分作为用户存储,不过预留空间的减小,意味着坏块管理、错误纠正等可以使用的空间变小,这些空间变小会减少存储的使用寿命,所以小米又通过各种算法延缓了手机存储的磨损速度,如此则对大家的使用没有什么影响,而用户又能多得一些存储空间。


小米的测试结果


对于大家担心小米手机存储的寿命问题,小米手机系统软件部总监张国全表示:“按照目前重度用户的模型来评估,在每天写入40GB数据的条件下, 256GB的扩容芯片依然可以保证超过10年, 512GB可以超过20年,请大家放心。”


同时一般固态硬盘往往都拥有5年的质保,而很多消费者往往会5年之内更换手机。因此按着这个寿命数据来看,普通消费者并不用太担心“扩容芯片”的寿命问题。所以如果你的手机用不了10年,可以不用担心这个问题。


当然更多的测试细节,小米并没有透漏,比如读写文件的大小等。不过按照小米的说法,存储的供应商也做了测试,没有什么问题。这个暂时只能相信小米是个负责任的企业,做好了完备的测试。




最后小米搞了这个技术,申请了专利,但是又把标准和技术方案贡献给了UFS协会,同时还要求存储芯片厂商设置了半年的保护期,也就是说技术可以分享给大家,但是请大家体谅下原创的辛苦,所以半年后其它手机厂商才能用上。


大家猜一下半年后其它手机厂商会跟进吗?


作者:萤火架构
来源:juejin.cn/post/7297423930225639465
收起阅读 »

差生文具多,这么些年,为了写代码我花了多少钱?

背景 转眼写代码有10多年了,林林总总花费了很多的钱,现在主要按照4大件来盘点下我都买了啥。 电脑 acer 4741g ¥4500+ 这是我入门时的一款电脑,整体配置在当时还是属于中等的。 当时用的编辑器还是notepad++,在这个配置下,还是可以愉...
继续阅读 »

背景


转眼写代码有10多年了,林林总总花费了很多的钱,现在主要按照4大件来盘点下我都买了啥。


电脑


image.png


acer 4741g ¥4500+


ceE4n8in48Ac.jpg

这是我入门时的一款电脑,整体配置在当时还是属于中等的。

image.png

当时用的编辑器还是notepad++,在这个配置下,还是可以愉快的编码的。


mac air 2013 ¥8800+


image.png

image.png

image.png


当时被苹果的放进信封的广告创意所折服,这也是我的第一台apple,在之后就一直用苹果了。到手后的感觉是,薄,确实薄,大概只有我宏基的1/3-1/4厚。


当时apple的简洁,快速,很少的配置,让我在环境变量上苦苦挣扎的心酸得以释放。以后也不用比较各种笔记本参数了


mac book pro13 2015 ¥9000+


image.png

image.png


当时买这台的原因是因为air进水了,经常死机,修了2次后,又坏了。一怒之下,直接买了一台。


换了新的retina屏之后,色彩质量和效果都提升了不少,对比原来的air性能也是拉升了超级多。但是因为是16上半年买的,所以没体验到toch bar,到现在都没体验过。。。


这是我真正意义上的第一台十分满意的电脑,大概是当时的理想型了。


公司电脑


2016年下半年进了一家创业公司,公司配置了mac book pro,比我的配置还高,所以之后一直就是用公司的。


2021年换新公司,公司配了thinkpad,又一次开始用win。然后又被win各种打败,有时又有了换回mac的想法。


当前–mac book pro14 2021 ¥21999


image.png


主要入手的原因是公司的电脑我觉得太慢了。当时开发小程序,脚手架是公司自己的,每次打包都是全量的,没有缓存。所以每次打包短则7,8分钟,长则10多分钟。加上切分支/安装依赖(如果两个分支依赖版本不同,需要强制更新),导致我每天花费大量的时间等待上。


同事早于我入手了M1,反馈巨好,于是我也买了,想着配置拉的满点,但是还是高估了自己的钱包,低估了苹果的价格,只能退而求其次的选择了中档配置。


image.png

每次看着低低的负载,都是满满的安全感。

image.png

另外m1是支持stable diffusion的,所以偶尔我也会炼丹


显示器


显示器.png


dell U2424H ¥1384


image.png

其实在写代码之前也买过几台显示器,但是以程序员视角来说,第一台是这台。原因是当时公司也是这个型号,主要是能旋转,谁能拒绝一台自由旋转的显示器呢?

image.png


而且dell的质量和做工都不错,在当时是十分喜欢的。


小米 Redmi 27 ¥789.9


image.png


dell那台显示器是放在家里的,公司也需要显示器,而且自带设备每个月可以补贴100,所以就入手了这款,原因无他:便宜,也够大。


但是用久了,发现也有些问题。例如失真等,但是真的便宜,


厂家送寄,但因为合作内容没谈拢,本周寄回


键盘


当前-cherry G80-3000 ¥689


image.png


一把真正可以用到包浆的键盘,大多数看到这个键盘的感觉应该都是黄色,而不是原本的白色,不知道是不是材质的问题,极其容易变黄。同时由于键帽又不变黄,所以呈现了诡异的脏脏的颜色。


因为本身机械键盘的高度,所以建议加个手托比较好。各种轴也齐全,任君选择。

目前这个键盘在家里游戏了,毕竟是个全键盘


当前–京造C2 ¥253


image.png

选择这个键盘的原因嘛,同事有了,并且是一个带灯的键盘。手感比cherry硬一些,但还属于是能接受的程度,整体延迟比较低(也可能是因为有线的原因)。目前是在办公室使用的一款,当前这篇文章就是用这个敲出来的。


鼠标


image.png


总览


鼠标其实留在手边的不太多,大多数都是消耗品了,这么些年,各种有用过。大概用了不下10个鼠标,我只挑2个重点的说吧。


微软ie 3.0 ¥359


image.png


这是我用过最好的鼠标,没有之一。握感极佳,用久了也不累,比其他的鼠标都舒服万分。


当前–apple magic trapad ¥899


image.png

mac用户的最终归属就是板子,如果你刚开始用mac,那么建议直接用板子吧。支持原生手势操作,各种mac本身触控板的事情都完美适用,真正的跟你的电脑和为一体。


欢迎评论区留言你的设备


如上所述,我这年的大头是电脑,消耗品是鼠标、,那么你都花了多少钱呢?


作者:天元reborn
来源:juejin.cn/post/7395473411651682343
收起阅读 »

30岁之前透支,30岁之后还债。

前言 看到不少私信问我为啥没有更新了,我没有一一回复,实在是身体抱恙,心情沉重,加上应付于工作,周旋于家庭,自然挤压了自我空间。 今天思来想去,重新执键,决定久违地又一次写点分享,奉劝大家珍惜身体,愉悦生活。 愉悦二字说来容易,但各位都一样,奔波于现实,劳累于...
继续阅读 »

前言


看到不少私信问我为啥没有更新了,我没有一一回复,实在是身体抱恙,心情沉重,加上应付于工作,周旋于家庭,自然挤压了自我空间。


今天思来想去,重新执键,决定久违地又一次写点分享,奉劝大家珍惜身体,愉悦生活。


愉悦二字说来容易,但各位都一样,奔波于现实,劳累于生活,岂是三言两语就能改变的。


病来如山倒


我又病了,有些意外和突然的,令我措手不及。


一天早上我起来,脖子有些酸,就伸手揉揉捏捏,忽然发现脖颈左侧有一个肿块,仔细拿捏,发现竟然是在里面,而且硬邦邦的,伴有轻微的疼痛感。


当时早上对着镜子拍下来的肿块,我还保留了照片。


1.jpg


立马便一身冷汗冒出,我从未经历过这样的事情,去年身体毕竟出过问题,两相叠加之下,内心更是难以描述。


因为是周一,怀着忐忑的心情去上班了,接下来一直都有些神经兮兮,觉得自己身体出了大问题。


之前我有文章讲过自己去年其实已经检查出血脂的问题,停更半年之久,调养了一番,才真正感觉到身体有所恢复,根据我发文的日期可见一二。


恢复更新的这段时间,报复式地写作和分享,一度不知不觉地排到榜单第二,今天登录看了一下,居然还在月榜前三没下来,也是意外。


话说回来,人一旦身体冒出点病痛,整个心情都显得低沉萎靡,很快就能在方方面面反应出来。


我是硬着头皮上班的,抽空网上查了下好让自己有个心理准备。



百度一搜便是绝症,这是很多年前就知道的,但病急乱投医果然是人之本性,我毅然决然还是搜了。


然后,各种甲状腺之类的就来了,再搜,淋巴瘤也来了,再搜,好家伙,直接恶性肿瘤十有八九了。



面对未知而产生的接近绝望的心情,想必不少人有类似经验。


比如我,下意识先想到的竟然不是我是不是要完蛋了,而是想到自己是家中独子,父母年迈身体有恙,妻子操劳,孩子尚小,家中主要经济来源也是我。


我一旦倒下,实在不敢想,往深了一想各种负面因子都蜂拥而来。


我不知道有多少人和我的性格相似,就是身体出了这种未知的问题,一面觉得应该去医院看看,一面又怕折腾来去最后拿到最不可接受的结果,可能不知道反而能活久一点,大概就是这种心情了。


是的,我大体是个胆子还算大的人,也猛然间抗拒去医院了。


不去医院的结果,就是你每天都在意这个肿块,每天都要摸摸它是不是变小了,是不是消失了,每天都小心呵护着它,甚至还想对它说说话倾诉一下,像是自己偷养的小情人一样。


只盼着某天睡觉醒来,用手一摸,哈哈没有了这样。


我就是差不多一个月都这样惶惶不可终日地度过,直到这周六才被妻子赶去医院做了检查。


透支和还债



30岁之前透支,30岁之后还债。



说来好笑,摸到肿块的第二天吧,还有朋友私信找我合作,换做平时,我肯定欣然接受,并开始设计文稿。


但身体有问题,一切都索然无味了,再次真切地体会到这种被现实打碎一切欲望的撕裂感。


2.png


为什么我30岁之后身体慢慢开始出现各种问题,这两年我有静下心来思考过。


到底还是30岁之前透支太多了,30岁之后你依然养成30岁之前的生活习惯,无异于自杀行为。



我把身体比作一根橡皮筋,它大概只能扯那么长,我长期将它扯那么那么长,我以为它没事,直到有一次我将它扯那么那么那么长,砰的一声它就断了。


我们都无法知道自己的这根橡皮筋到底能扯多长,只要它没断,我们都觉得它还能扯很长,代价就是,只需断一次,你再也无法重来了。



30岁之前,我努力学习各种知识,熬夜那是家常便饭,睡一觉便生龙活虎。


我就像以前上学的三好学生一样,在学校我扎扎实实,放学了我还进补习班,补习班回来了我还上网学知识。


回头想想,真特么离谱啊,我上学都没这样,走上社会了竟然付出了之前在学校几倍的努力。


早知如此,我好好上学读书最后进入一个更优质的圈子,不就少走很多弯路了吗,但是谁又会听当年的老师和父母一番肺腑之言呢。


埋怨过去没有什么意义,只能偶尔借着都市小说幻想一下带着记忆重生回校园的自己。


细数下来,我30岁之前熬过的夜比我加的班还多,我不是天天加班,但好像真的天天熬夜。


可我身体一点问题都没有,我觉得自己不是那种被命运抛弃的人,内心一直这么侥幸,你是不是也和我一样呢。


30岁之后,该来的还是来了,32岁那年,我有一次咳嗽入院,反复高烧,退了又发烧,医生一度以为是新冠,或结核,或白血病什么的,后来全部检查了都不是,发现就是普通的肺部感染。


每天两瓶抗病毒的点滴,大概半个月才逐渐恢复,人都瘦脱相了,这是我人生头一次住院,躺在病床上像废人一样。


等到33岁也就是去年,偶然头晕了一次,那种眩晕,天旋地转,犯恶心,怎么站怎么坐怎么躺都不行,真正要死的感觉。


后面我一度以为是年纪轻轻得了高血压,结果查了下是血脂的问题,还不算严重,但继续下去很可能会变成一些心脑血管疾病。


我难以置信,这可都是老年病啊,我一个30几岁的程序员说来就来了?


调养半年多,肉眼可见身体有好转,我又开始没忍住熬夜了,想做自己的课题,想分享更多的东西,这些都要花时间,而且包括一些其他领域的内容,想得太多,自然花的时间就多。


一不小心就连续熬了一个多月,平均每晚都是2点左右躺下,有时中午还不午休,刷手机找素材。


终于,脖子上起了肿块,让我整个人都蒙圈了,觉得一切努力都是在玩弄自己,忽然间什么都没意思了。


我尽量把这种感受描述出来,希望你们能看明白,真切体会一二。


为什么30岁之后我一熬夜就有问题出现,说白了,30岁之前透支了已经,一来是身体负荷达到临界,二来养成了多年的坏习惯,一时想改还改不过来。



30岁之前真别玩弄自己的身体了xdm,橡皮筋断了就真断了,接不上了,接上了也没以前的弹性了。



健康取决于自律和心情



对于程序员来说,健康取决于两点:自律和心情。



30岁之前,请学会自律,学习时间自律,生活作息自律,一日三餐自律,养成这样的习惯,30岁之后的你会受益匪浅。


自律真的很难,我就是一个很难做到的人,我有倔强地适应过,却又悲哀地失败了。


就像你是一个歇斯底里的人,忽然让你温文尔雅,你又能坚持多久呢。


我用很多鸡汤说服过自己,对于已经30几岁的我来说,也只能维持一段时间。


想看的多,想玩的多,想学的也多,时间是真不够啊,真想向天再借五百年。


我应该算是幸运的那一类,至少我这般透支身体,我还活着,也没用余生去直面绝望。



我用这两年的身体故障给自己上了重要的一课,人死如灯灭。



如果能重来,我一定会学习时间规划,我一定会把每天的时间安排的好好的。


我一定会保证一日三餐不落下,少吃外卖,多吃水果蔬菜。


我一定会保证每晚充足的睡眠,早睡早起,绝不熬夜。


我一定会每天下班和放假抽出一些时间运动和锻炼。


我不是说给自己听的,因为我已经透支了。


我是说给在看文章的你们听的,还年轻点的,还没透支的,请用我的现在当做你可能更坏的未来,早点醒悟,为时不晚。


自律很难,但不自律可能等死,这个选择一点也不难。



工作压力大,作为程序员是避免不了的,所以我以前有劝过大家,薪水的重要性只占一半,你应该追寻一份薪水尚可,但压力一定在承受范围内的工作,这是我认为在国内对于程序员来说相对友好的途径。



我进入IT行业目前为止的整个生涯中,学习阶段听到过传智播客张孝祥老师的猝死,工作阶段听说过附近的4396游戏公司里面30多岁程序员猝死,今年又听到了左耳朵耗子先生的离世。


我想着,那一天,离我和你还有多远。


心情真的很重要,至少能快速反应在身体上。


当我这周六被妻子劝说去检查的时候,我内心一直是紧张的,妻子没去,就在家陪着孩子,跟我说你自己去吧,如果有坏消息就别回复了,等回来再说,如果没什么事那就发个微信。


我想我理解她的意思了,点了点头就骑车去了医院。


医院真不是什么好地方,我就是给医院干活的,我全身上下都讨厌这里。


最煎熬的时间是做彩超前的一个多小时,因为人太多,我得排队,盯着大屏上的号序,我脑子里想了很多事情,甚至连最坏的打算都想好了。


人就很奇怪,越是接近黑暗,越是能回忆起非常多的往事,连高中打篮球挥洒汗水的模样和搞笑的投篮姿势都能想起来。


喊到我的时候,我心跳了一下,然后麻木地进去了,躺下的时候,医生拿着仪器对着我的脖子扫描,此时的我是近一个月以来第一次内心平静,当真好奇怪的感觉。


随着医生一句:没什么事,就一个淋巴结。


犹如审判一般,我感觉一下无罪释放了。


当时听到这句话简直犹如天籁,这会儿想起来还感觉毛孔都在欢快地愉悦。


我问她不是什么肿瘤或甲状腺吧,她说不是,就一个正常的淋巴结,可能是炎症导致了增生,这种一般3个多月至半年才会完全消掉。


这是当时拍的结果


3.jpg


拿给主任医师看了之后,对方也说一点事没有,只是告诫我别再熬夜了。


我不知道人生还会给我几次机会,但我从20几岁到30几岁,都没有重视过这个问题,也没有认真思考过。


直到最近,我才发现,活着真好。


当晚是睡得最踏实的一晚,一点梦都没做,中途也没醒,一觉到天亮。


更离谱的是,早上我摸了一下脖子,竟然真的小了点,这才短短一天,说了都没人信。


我头一次相信,心情真的会影响身体,你心情好了,身体的器官和血液仿佛都欢腾了起来。


如何保持一个好心情,原来这般重要,我拿自己的身体给大家做实验了,有用!



希望大家每天在自律的基础上保持好心情,不负年华,不负自己。



总结


xdm,好好活着,快乐活着。


作者:程序员济癫
来源:juejin.cn/post/7300564263344128051
收起阅读 »

从一线城市回老家后的2023“躺平”生活

归家 22年的十月份,在上海工作了三年多的我回到了老家。 前端,20年二本毕业的,当时在上海看老家的招聘信息,感觉很棒,很心动。又因为公司在大裁员,刚刚好在最后一轮裁员的时候,被裁了,拿了赔偿金,因为房租没有到期,又最后玩了玩,回了老家。 现实的落差感    ...
继续阅读 »

归家


22年的十月份,在上海工作了三年多的我回到了老家。


前端,20年二本毕业的,当时在上海看老家的招聘信息,感觉很棒,很心动。又因为公司在大裁员,刚刚好在最后一轮裁员的时候,被裁了,拿了赔偿金,因为房租没有到期,又最后玩了玩,回了老家。


现实的落差感


    回到老家后,又休息了十几天吧,就开始看招聘的信息,之前在上海看着很心动的岗位,简历投了又投,要么回复你,岗位已招满,要么压根不理你(后来我才知道,是学历的问题,老家这边的国企,最低学历就是研究生了,压根不看你工作履历)。剩余那些搭理你的公司,大都是小公司,可能只有十个人左右,而且大多都是单休或者大小周,有些甚至五险一金都没有,工资也低的可怜,是之前的三分之一差不多。


    心里难免有很强烈的落差感,但是由于我们(们:我老公,那个时候我们还是情侣,从大学开始的,在一起快7年了)家都是在这边的,两边父母都在这,觉得我们之后就是要在这里发展的,我俩硬着头皮,每天划拉着招聘信息,投着简历,适当地去面试。


    中间有一家公司,我感觉还可以,然后想着去试试,干了两天半。


    刚去的第一天,技术团队是:一个后端和一个外包的后端,以及一个跟我一样刚入职的前端,一共就我们四个人,然后就是老板,只有我是女生。除此之外,还有保洁阿姨(中午会做饭,公司中午管饭)、人事小姐姐等一些非开发人员。下午开会,老板居然直接在会议室抽起了烟(熏得我不要不要的)!然后项目用的是ruoyi的架子,里面有些代码是那俩后端暂时写的,看起来有些乱。就这样干了两天,那俩后端,很爱抽烟,再加上老板也带头会议室开会还抽烟,整天感觉身边烟熏火燎的。


    到第三天的时候,中午开了个会,意思是,之前我们开发的好像需求都不行,并且又提了一堆新需求,还告诉我们说只有两三天的时间搞完。我就意识到不对劲,是逼着人加班,没死没活的干的那种。然后再加上被熏了三天,于是开完会,我就赶紧收拾着我的东西,跑路了,干不了,根本干不了。既不合理,而且办公环境很糟糕(每天烟熏火燎),还没有社保,据说年后才缴纳。下午他们打来电话,问我咋回事,还要给我加薪让我再回去,但我已决心不去那干了。后来的我一点都不后悔这样做,甚至觉得很明智。


    就这样继续在招聘软件上看着,有新岗位咯,就投,就面试。


     突然有一天的周日,我接到了一个电话,说我可以来上班,他们缴纳五险,是双休,还有餐补,并且薪资也比之前面试的也差不多(之前还有个公司给的薪资和他一样,但是他是大小周,我不想去),这种待遇的公司,对于目前的我来说,已经很可以了,然后我就同意了,并且两天后去入职,这家公司就是我现在的公司。相比之前那家“烟熏火燎”的公司,这家就正规了许多,可能因为总部在深圳吧。


我们订婚啦


既然工作稳定了,那就开始丰富生活。2023年02月05日,我们举办了订婚宴~




工作


    这边的前端工作不太是普通的传统前端,而是electron打包出来是个exe啊,或者是针对模型3d渲染引擎啊,依托于基于threeJs二次开发出来的一些第三方,之类的,总之跟之前做的不一样,之前的我做的都是h5、微信小程序、或者接入一些公众号之类的。所以与其说是在工作,不如说是一直在学习吧。公司也知道我不太会,于是乎就给我很长时间先学,先熟悉,然后再去一点点开发。并且我几乎没加过班。


我们结婚啦


后面一切按照计划进行,拍摄婚纱照、男方那边在忙着新房装修,我们这边在置办嫁妆、买车车等。


在2023年10月10日,我们举行了典礼。



安稳且平淡


现在的我们每天安安稳稳,我想着适当提升下自己的学历(因为我们这边的好单位,现在好像都要研究生毕业了),在看着咱们计算机考研408的一些科目(双11心血来潮,一下子买了六七百块的书,不看总觉得买书钱白瞎了TAT),但是每天下班回家,还是忍不住看一些电视剧啥的,佛系考研,阿弥陀佛,哈哈哈哈


我们从上海一直养到现在的猫猫~



这就是我跟大家分享的我的这2023年的一年的经历。说实话,回老家的确比在一线城市更真实,因为身边有父母,有家人,每个周末都可充实。一线城市是素质高、节奏快,人的整个思想境界感觉都跟老家这边的人不一样。但兜兜转转,回老家似乎也并不是“躺平”,有落差感,因为接触过好的了。反正无论怎样,感觉简单、安稳、快乐的过好每一天就挺好。我们一起加油吧~


作者:wenLi
来源:juejin.cn/post/7311206584205869096
收起阅读 »

优秀的程序员都有的十条特征,你中了几条?

之前的文章给大家分享的都是DevOps、自动化测试、新技术趋势等前沿知识和技术,实际上目前能完全掌握这些新技术的开发、测试人员都是少数,毕竟大多是人还是专注于自身工作,用于提升、学习新技术的时间较少,而很多新趋势也并未成熟应用到行业。因此,不必为此焦虑,极速变...
继续阅读 »

之前的文章给大家分享的都是DevOps、自动化测试、新技术趋势等前沿知识和技术,实际上目前能完全掌握这些新技术的开发、测试人员都是少数,毕竟大多是人还是专注于自身工作,用于提升、学习新技术的时间较少,而很多新趋势也并未成熟应用到行业。因此,不必为此焦虑,极速变化中总有一些不变,坚守那些基础的不变的能力,并以积极的心态拥抱变化,才是持续而稳定的成长路径。本期分享一些不依赖于新技术、但作为程序员都可遵循的原则,请根据自身情况取舍、实施。


一、及时更新任务清单


当要实现一个功能点时,最好将较大的任务分割成较小且更清晰的任务,这些任务是相对独立的逻辑单元,可以单独进行测试。列一张这样可完成的较小任务的清单,并在完成之后勾选、更新。这样会形成自我激励,并促使自己去不断完成更多的小任务。
优秀程序员-1


目前主流项目管理软件中,往往内置任务分解和更新功能。如在禅道项目管理软件内,开发负责人进行系统分析,拆解成相对独立的任务并指派给个人,而开发人员可以在自己的页面清晰地看到任务数量及剩余工时,完成后进度将同步更新,这种持续的正向反馈会带来极大的成就感。


二、遵循适当的版本控制


通过创建开发、特性、主分支和设置适当的访问权限来遵循适当的版本控制策略。无论何时开始编码,都要确保先获取代码库的最新版本后再开始。在逻辑部分或功能完成后继续提交/推送代码,不要让代码库长时间处于未提交状态。在将代码提交给版本控制之前,始终在本地机器上测试代码。无论变更多么细微,在输入代码时都要检查修改文件的差异,这将帮助追溯意料之外的变更,并有效避免不必要的Bug。


三、持续重构


代码重构是在不改变源代码的功能行为的情况下改变源代码的过程,目的是通过提高代码的可扩展性、降低代码的复杂度,以此来提高代码的可读性和可维护性。未能执行重构可能会导致技术债务的累积,开发人员会在之后的时间里对这些技术债务付出代价。要知道,没有任何一个开发人员愿意处于这种境况中,他们常常拒绝接触已经工作了很长时间的代码。当需要增强现有特性时,问题就出现了。


如果代码的形式不适合进行简易扩展,那么它将是开发人员的地狱。因此,为了避免出现这种情况,需要始终在代码中寻找可以改进的地方。如果你自己做不到,那就向团队寻求帮助。


四、敲代码前先手写代码


优秀程序员-2


在实际将解决方案转换为代码之前,要养成手写算法/伪代码的习惯。手写还可以帮助你在将代码移至计算机之前规划代码。写出需要的函数和类、以及它们如何交互,可以在之后节省大量时间。尽管要比直接敲代码更耗时间,但这种规范会让你打下牢固的基础,实现之后更稳健的成长。


五、给自己的代码进行注释


在自己写的代码中留下注释,解释为什么要做出某些选择。这将帮助到之后拿到这段代码的人,因为不是每个人都清楚你为什么以这种特定的方式编写代码。不需要对非常明显的编码行为进行注释,因为这无关紧要。正确的代码注释将提高代码库的可维护性。


六、善用搜索引擎和论坛


优秀程序员-3


并不是你遇到的所有问题都能自己找出明显的解决方案。所以记得善用搜索引擎,可能会有数百万的开发人员遇到过与您相同的问题,并且已经找到解决方案。所以,不要花过多时间独自寻求解决方案。很多开发人员低估了搜索作为程序员工作中一部分的重要性。


搜索引擎方面Google是不错的选择,论坛则推荐Stack Overflow。有时候工作需要的更多是知道如何获取知识和解决方案,而非实际编程。


七、寻求他人帮助


编程实际上是一种社交活动。我的程序员朋友都会在某些方面有突出优势,所以每当我有问题的时候,都知道该请教其中的哪一个。当他们有问题的时候,我也会帮助他们。这真的是完成任务的绝佳方法。


互相合作可以遵循敏捷开发的结对编程:两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。二人经常互换角色,工作交替进行。在结对编程中,审查的角色需同时考虑工作的战略性方向,提出改进的意见或找出将来可能出现的问题以便处理。


虽然不能有完全的人力成本全面推行结对编程,但寻求他人建议时,看似无法改变的错误或无法学习的话题,可以通过新思维或对这个话题的新的解释来迅速缓解。所以不要在筒仓里编程,要经常讨论并推进。当你重新开始自己编写代码时,接触到多种想法和思维方式将有助于你解决问题。


八、记住技术永远在变化


我将自己的身份首先视为程序员,第二身份才是编程语言专家,因为总有一天我们现在使用的所有编程语言将不再被使用。比如我从80年代开始使用的某些形式的程序集代码,这些代码现在大部分都已经不存在了。这将发生在任何技术上,无论其自身好坏。总会有一天,没有人会再使用Java。


而另一方面,编程语言有一个广泛的范例,存在着相似的族谱。所以,如果你知道一种和另一种语言相似的语言,那么学会这种语言就很容易。


例如,Python和Ruby几乎是同一种编程语言。二者虽在文化上存在着巨大的差异,但除此之外,它们几乎完全相同,所以当你知道另一个的时候学习一个是非常容易的。因此,不要将自己与任何技术或编程语言绑定在一起,而只将它们视为帮助自己解决手头问题的工具。


九、正视并接受Bug的存在


程序员经常看到在自己开发的功能中报告了很多Bug,这意味着大多数时候,任务是失败的。但如果我们所有的程序都是功能完整的,并且没有任何Bug,那么编程就完全不成其为编程了。事实上,我们正处于编程过程中,这意味着我们要么还缺乏很多功能,要么软件有Bug。所以,在某些方面,你作为一个程序员总是失败的,因为总是存在Bug。这可能很奇怪,但你确实需要对不完美和不工作的事情保持良好的心态,因为这正是我们的工作。


编程是一个长期的过程,在这个过程中,您将一直面临新的障碍。养成记录错误的习惯,这样你以后就不会犯同样的错误了,这表明你作为一个开发人员在不断地学习和提升自己。


十、让重复性任务自动化


经常会有一些任务是需要重复做的。例如运行一组命令或执行某些活动,这些活动涉及在多个应用程序和屏幕之间切换,这会占用您的大部分时间。建议将这些耗时的日常活动转换为通过脚本或简单程序(可以通过单击或命令运行)以某种方式自动化。如针对重复的单元、接口等重复的测试执行,可以进行自动化测试。这将节省你的时间,让你可以专注于更有意义的任务,而不必担心日常繁琐的任务。


做好以上十点,相信你能够从合格的程序员,变为优秀的程序员,那么对于新技术和新知识的拥抱,就是一件水到渠成的事。“你的职责是平整土地,而非焦虑时光。你做三四月的事,在八九月自有答案。”


*参考文章:Nitish Deshpande,10Tips to Become a Software Engineer,2020.


作者:陈哥聊测试
来源:juejin.cn/post/7389931555551133732
收起阅读 »

小镇做题家必须要跨过的三道坎

其实我们大多数人都还称不上小镇做题家,因为我们大多都是来自乡村,只不过在乡镇做了上了几年的学而已。 大多数人的人生轨迹基本上都是从乡村到乡镇再到县城,最终去到了市级以上的城市读大学,没有资源,没人指路,毕业后也是一脸茫然,最终回到原点! 所以大多数小镇做题家的...
继续阅读 »

其实我们大多数人都还称不上小镇做题家,因为我们大多都是来自乡村,只不过在乡镇做了上了几年的学而已。


大多数人的人生轨迹基本上都是从乡村到乡镇再到县城,最终去到了市级以上的城市读大学,没有资源,没人指路,毕业后也是一脸茫然,最终回到原点!


所以大多数小镇做题家的生活永远都是那么艰难,很难成为出题家,是因为多数人身上都出现了致命的弱点,而这些弱点多数是由原生家庭带来的。


一.自卑


自卑可以说是原生家庭带来的第一原罪,也是很难突破的一关,而导致自卑的导火索一定是贫穷。


因为我们多数人从小都被父母灌输“我们家穷,所以你不应该这样做”。


所以在进入大学后,多数人的心中都有一个魔咒,我不配拥有,不配出去玩,不配谈恋爱,不配穿好看的衣服,即使是自己打工赚的钱,多花一分都觉得有负罪感。


因为心里会想着,父母那么辛苦,我就不应该去花钱,而是要节省,当然节省并没有不好。


但是从逻辑上就已经搞错了,首先如果自己舍不得钱去学习,去投资自己,一个月挣3000能够省下2000,那么这个省钱毫无意义,因为省下的这点钱根本做不了什么,但是会把自己置入一个更深的漩涡,收入无法提升,眼界无法开阔,而是一直盯着一个月省2000这个感人的骗局。


除了用钱有负罪感,还有不敢向上社交,觉得自己是小山旮旯出来的,不配和优秀的人结伴,因为父母从小就说: 我们家条件没人家好,人家有钱,人家会瞧不起你的。所以很多人内心就已经打了退堂鼓,从而错过了和优秀的人链接的机会。


但是事实上真正优秀的人,人家从来不会有瞧不起人的心态,只要你身上有优点,你们之间能够进行价值交换,别人比你还谦卑。


我这几年从互联网行业链接到的人有1000个以上,优秀的人不在少数,我发现越优秀的人越谦虚。


自卑导致的问题还很多,比如做事扭扭咧咧,不敢上台,不敢发表意见,总是躲在角落里。


但是这个社会没有人喜欢扭扭咧咧的人,都喜欢落落大方的人,即使你的知识不专业,你普通话不好,这些都不重要,但是只要你表现出自信,大方的态度,那么大家都会欣赏你,因为这就是勇敢。


二.面子


有一个事实,越脆弱的人越爱面子,越无能的人越爱面子。


这句话虽然说起来有点不好听,但是这是事实,我们这种小镇做题家最要先放下面子。


比如自己不懂很多东西,但是不愿意去问别人,怕被别人说,在学校的时候,有问题不敢问,于是花费很多时间去弄,到最后还是搞不懂。


进入工作后,不懂的也不好意思问同事和领导,怕被别人说菜,怀疑自己。


其实真的没几个人有那个闲心去关注你的过往,你的家庭,相反越是伪装,越容易暴露。


我很喜欢的一段话: 我穷,但是我正在拼命改变、我菜,但是我可以拼命学!


面子的背后是自负,是错失,是沦陷。


三.认知


认知是一个人的天花板,它把人划分了层级。


有一段话说得很好:你永远无法赚到认知之外的钱,你也无法了解认知之外的世界。


我们多数小镇做题家的思维永远停留在老师和父母的教导:好好读书,将来就能考一个好工作,就能找一个铁饭碗。

然后在职场中听老板的:好好工作,任劳任怨,以后给你升职加薪。


然后多数人就深信不疑,就觉得人生的目标就是铁饭碗,其他的都不行,工作努力就一定能得到升职加薪,实际上这一切是在PUA自己。


当被这个社会毒打后,才发现自己是那么无知,那么天真。


而这一切的罪魁祸首就是自己认知不够,总觉得按部就班就一定能顺利过好一生。


————


自卑,面子,认知这三点是我们多数小镇做题家难以跨过的三道坎。


而这三道坎基本上都是原生家庭和教育造成的。


跨过这三道坎的方法就是逃离和向上链接。


施耐庵在几百年前就总结出的一句话:母弱出商贾,父强做侍郎,族望留原籍,家贫走他乡。


显然我们大多数都是属于第四类,所以远走他乡是唯一的选择,只有脱离原生的环境,才能打开视野。


事实也是如此,我们观察身边没有背景,没有经济条件的人,他们的谷底反弹一定是逃离。


绝非留恋原地!


作者:苏格拉的底牌
来源:juejin.cn/post/7330295661784875043
收起阅读 »

为什么很多程序员会觉得领导没能力

相信很多人在职场里待久了,都会遇到自己觉得比较差劲的领导,这些人可能除了向上管理能力很强外(会舔老板),其他能力在你看来都挺一般,专业能力一般,超级缝合怪--上级给他的任何任务他都能分配给你们,然后他再缝合一遍完事。 那么遇到这种领导我们该怎么办呢?多数人想到...
继续阅读 »

相信很多人在职场里待久了,都会遇到自己觉得比较差劲的领导,这些人可能除了向上管理能力很强外(会舔老板),其他能力在你看来都挺一般,专业能力一般,超级缝合怪--上级给他的任何任务他都能分配给你们,然后他再缝合一遍完事。


那么遇到这种领导我们该怎么办呢?多数人想到的是跳槽,这确实是一个解法,但你跳到下家公司也保不齐会有这样的领导呀,今天咱们讨论的这个话题就先把条件限定成你不能跳槽,这个时候你该采用什么方法让自己的上班体验变好一些。


多元化自己的评估标准


首先,不能用鄙视的眼光去看待你的领导,觉得他只会舔老板(能舔、会舔也是一种很强的能力呀),有的时候你觉得你领导能力不行,很有可能是因为你的能力评估标准太单一了。


他或许在工作的某个方面不如你,但是他必定在某些方面有自己的长处,努力发现他的长处,认可他的长处,学习他的长处,可以更有助于你和他的相处,也有利于你的进步。


社会是一个大熔炉,你需要的不仅仅是业务能力和展现的舞台,也需要与社会中不同个体的和谐共处。包容、接纳,都是立身处世的能力。


学会变通和沟通,满足领导的存在感


领导之所以会在很多工作上提意见、瞎指挥、乱指挥,更多的情况可能是他知道自己对工作不熟悉,但觉得自己是领导,会有自己独特的见解,想刷自己的存在感。这种情况下,要学会满足领导的存在感。


举个例子说,你在工作中,领导过来给你提了个意见,这个意见明显是不合适的,那你就可以说,“领导,这个思路好,我们之前没往这个角度想,可以从这个角度延展一下……。”他走了,还不是我们自己把控,毕竟他只是过来刷个存在感的,只要最后的方案让客户满意,业绩给领导,把一些光环放在他身上,让他觉得他起到了作用,这些方案和他有关,他通常也不会计较了。


摸清领导管理的思想和套路


说到这里,找到领导心中的关键因素,是非常必要的。在一个项目里,员工承担的通常只是局部,而领导看的是整体,由于高度不同,所以你们考虑的关键因素是不同的。


所以你要知道领导心里到底想要的是什么,提前做好这方面的预期和准备,以及针对领导提出的你们没有考虑到的方面要虚心接受(毕竟领导跟高层接触的更多,有些战略方向上的事情他们会更清楚)。 


比如说,你是一个小编,你在意的是按时完成写作任务、及时发表、赚取眼球,而你的领导主编可能更在意的是你文章的各种数据真实性、转化人群、是否会产生舆情、是否zzzq这些。所以,要搞清领导在意的重要维度,工作才能更有效。


这里有三句话分享给大家:



  • 要能够分清你可以改变的事、无法改变的事;

  • 不去抱怨你服务改变的事;

  • 把精力用在你可以改变的地方。


你的上司,是你改变不了的,但你自己,是可以把握的。当然这篇文章也不是教你怎么委屈自己,只是提供一个不同的角度来讨论"领导不行” 这个事情,以及让你在无法立刻更换环境时,该怎样让当前的环境变得不那么恶劣。


想跳槽的同学还是应该按部就班的准备,骑驴找马有更合适的地方该跳就跳,跳过去了说不定今天学到的这些还能用的上……。


作者:kevinyan
来源:juejin.cn/post/7357911195946336293
收起阅读 »

书评:细读《我与地坛》看史铁生向死而生的自我救赎

读者前言 以前应该是读过《我与地坛》,可能是在课文里或者在网上推荐的断断续续的章节,它实在太有名了。印象中这好像是一个残疾人的励志故事,这次仔细读后才发现,励志并非它的论调,在故事的最开头就已注定绝望的现实将贯穿全文,也贯穿史铁生的一生。 我在想如果它真的仅是...
继续阅读 »

读者前言


以前应该是读过《我与地坛》,可能是在课文里或者在网上推荐的断断续续的章节,它实在太有名了。印象中这好像是一个残疾人的励志故事,这次仔细读后才发现,励志并非它的论调,在故事的最开头就已注定绝望的现实将贯穿全文,也贯穿史铁生的一生


我在想如果它真的仅是一个励志的故事,那史铁生将如何才能扳回这一局?他要以什么结局收尾才能算圆满?难道他要从一个痛苦的残疾人,最终变成一个充实而快乐的残疾人?


最终我认为《我与地坛》绝非一个励志的故事,它甚至没有刻意传达史铁生的人生观,它只是赤裸裸的展示发生在一个人身上的现实;它只是平静的叙述史铁生在这段苦难岁月中的痛苦、挣扎、崩溃与救赎;它只是一遍一遍又一遍的自我剖析、思考、论证,妄图推翻重塑一个全新的人生观和一个全新的自己。


img


文章摘要


出版的《我与地坛》书籍是史铁生多部散文诗歌的合集,而《我与地坛》本身只是一篇散文,而且内容是以故事叙述、内心活动、实景描写为主,只有一万多字,非常容易读。


文中分了七个章节,讲述了史铁生在“最狂妄的年龄上忽地残废了双腿”之后,“摇着轮椅”与地坛公园长达十五年相依相伴的故事。在这漫长的岁月里,史铁生独自一人守在园中,在矛盾与挣扎中反复叩问生命的意义。


第一节:我与地坛


image-20231121141722255.png


地坛就是以前北京还未开发的地坛公园,“园子荒芜冷落得如同一片野地,很少被人记起”,但随着史铁生“忽地残废了双腿”,在十五年前的一个下午,摇着轮椅进入园中,便正式开启了“我与地坛”的篇章。在园子中史铁生开始思考生与死的问题。



在满园弥漫的沉静光芒中,一个人更容易看到时间,并看见自己的身影。



突然的残疾让史铁生近乎绝望,他在痛苦中纠结要不要去死,这样活着还有什么意义。



我一连几小时专心致志地想关于死的事,也以同样的耐心和方式想过我为什么要出生。



就这样几年后他终于明白了,死是一个必然会降临,而不必急于求成的事。这也解决了他的“燃眉之急”,减轻了他在选择生或死的挣扎的痛苦。



一个人,出生了,这就不再是一个可以辩论的问题,而只是上帝交给他的一个事实;上帝在交给我们这件事实的时候,已经顺便保证了它的结果,所以死是一件不必急于求成的事,死是一个必然会降临的节日。这样想过之后我安心多了,眼前的一切不再那么可怕



第二节:母亲


度过了最初痛苦挣扎的几年后,恢复了人气的史铁生,也逐渐回忆起与母亲的生活,儿子经历巨大不幸,母亲的心碎与痛苦也只能隐忍在心里,而当时史铁生沉浸在巨大痛苦中,经常忽视和冷落了母亲。


image-20231121141636640



现在我才想到,当年我总是独自跑到地坛去,曾经给母亲出了一个怎样的难题。




当我不在家里的那些漫长的时间,她是怎样心神不定坐卧难宁,兼着痛苦与惊恐与一个母亲最低限度的祈求。




那时她的儿子还太年轻,还来不及为母亲想,他被命运击昏了头,一心以为自己是世上最不幸的一个,不知道儿子的不幸在母亲那儿总是要加倍的。




有一回我摇车出了小院,想起一件什么事又返身回来,看见母亲仍站在原地,还是送我走时的姿势,望着我拐出小院去的那处墙角,对我的回来竟一时没有反应。



母亲独自照料史铁生多年,直到猝然离世,最终也没能看到史铁生重新回归生活,并在文学上取得如此卓越的成就,这也成为史铁生往后的日子永远无法弥补的遗憾。



有一回我坐在矮树丛中,树丛很密,我看见她没有找到我;她一个人在园子里走,走过我的身旁,走过我经常待的一些地方,步履茫然又急迫。我不知道她已经找了多久还要找多久,我不知道为什么我决意不喊她——但这绝不是小时候的捉迷藏,这也许是出于长大了的男孩子的倔强或羞涩?但这倔强只留给我痛悔,丝毫也没有骄傲。我真想告诫所有长大了的男孩子,千万不要跟母亲来这套倔强,羞涩就更不必,我已经懂了可我已经来不及了。




母亲为什么就不能再多活两年?为什么在她的儿子就快要碰撞开一条路的时候,她却忽然熬不住了?莫非她来此世上只是为了替儿子担忧,却不该分享我的一点点快乐?她匆匆离我去时才只有四十九岁呀!有那么一会儿,我甚至对世界对上帝充满了仇恨和厌恶。




多年来我头一次意识到,这园中不单是处处都有过我的车辙,有过我的车辙的地方也都有过母亲的脚印。



这节里的很多描述,无论是追忆细节亦或内心独白,都极为情真意切,遗憾之情,溢于言表。


第三节:园中四季


史铁生用了非常多的比喻,能将四季比喻成园中的任何东西,十五年的共处,史铁生早已将这个园子与自己融为一体,既是困住自己的牢笼,亦是拯救他的避风港



我甚至现在就能清楚地看见,一旦有一天我不得不长久地离开它,我会怎样想念它,我会怎样想念它并且梦见它,我会怎样因为不敢想念它而梦也梦不到它。



第四节:园中十五年


园子中的十五年,这里曾经的每个人他都记忆犹新,史铁生成为园子中的一部分,仔细观察着这十五年园中的事物更迭,有的人是他多年老友,有的人只有几面之缘,或忽的消失就再也没见。



  1. 一对老夫妻

  2. 热爱唱歌的小伙子

  3. 酗酒的老头

  4. 捕鸟的汉子

  5. 朴素优雅的女工程师

  6. 练长跑的朋友


第五节:智力缺陷的小姑娘


最让史铁生痛心的是一个漂亮的有智力缺陷的小姑娘,可能因为史铁生作为残疾人更能感同身受,更能理解这个世界对他们的不公。被一群小孩欺负的弱智的小女孩,同时也是被迫承受这个世界恶意的他自己。



她呆呆地望着那群跑散的家伙,望着极目之处的空寂,凭她的智力绝不可能把这个世界想明白吧。




哥哥把妹妹扶上自行车后座,带着她无言地回家去了。


无言是对的。要是上帝把漂亮和弱智这两样东西都给了这个小姑娘,就只有无言和回家去是对的。



史铁生并未抱怨这个世界的降临的诸多苦难,因为他看透这个世界的本质,这苦难是无论如何也无法“消灭”的。



假如世界上没有了苦难,世界还能够存在么?要是没有愚钝,机智还有什么光荣呢?要是没了丑陋,漂亮又怎么维系自己的幸运?要是没有了恶劣和卑下,善良与高尚又将如何界定自己又如何成为美德呢?要是没有了残疾,健全会否因其司空见惯而变得腻烦和乏味呢?我常梦想着在人间彻底消灭残疾,但可以相信,那时将由患病者代替残疾人去承担同样的苦难。如果能够把疾病也全数消灭,那么这份苦难又将由(比如说)相貌丑陋的人去承担了。



史铁生深刻的认识到,这可能就是人类的全部剧目,人类有聪明、漂亮、善良、高尚、健全,同时也一定需要愚钝、丑陋、卑鄙、残疾,即使未来能消灭残疾,这种苦难也将由患病者承担,即使疾病也被消灭,那苦难可能也会由相貌丑陋者承担。


因为这个世界本就需要苦难,失去差别的世界将是一潭死水。



于是就有一个最令人绝望的结论等在这里:由谁去充任那些苦难的角色?又由谁去体现这世间的幸福、骄傲和欢乐?只好听凭偶然,是没有道理好讲的。




就命运而言,休论公道。



史铁生终于能接受苦难,虽然充满无奈,但他不会再去抱怨命运的不公,虽然他也是苦难的承受者,但他最终承认“上帝又一次对了”。我觉得从这里能看出,史铁生是真的从心底释怀了。


第六节:人生意义


史铁生在十五年里对生命意义的叩问,总结成三个问题,在反复的纠结与推演中也终于有了答案。这段反复拉扯的心理活动属实是非常真实了。真的很有意思。



其实总共只有三个问题交替着来骚扰我,来陪伴我。第一个是要不要去死,第二个是为什么活,第三个,我干吗要写作。




你看穿了死是一件无须乎着急去做的事,是一件无论怎样耽搁也不会错过的事,便决定活下去试试。




为什么要写作呢?


为了让那个躲在园子深处坐轮椅的人,有朝一日在别人眼里也稍微有点儿光彩,在众人眼里也能有个位置,哪怕那时再去死呢也就多少说得过去了。




要是有人走过来,我就把本子合上把笔叼在嘴里。我怕写不成反落得尴尬。我很要面子。




可是你写成了,而且发表了。


人家说我写的还不坏,他们甚至说:真没想到你写得这么好。我心说你们没想到的事还多着呢。我确实有整整一宿高兴得没合眼。




这一来你中了魔了,整天都在想哪一件事可以写,哪一个人可以让你写成小说。


结果你又发表了几篇,并且出了一点儿小名,可这时你越来越感到恐慌。




我忽然觉得自己活得像个人质,刚刚有点儿像个人了却又过了头,像个人质。


你担心要不了多久你就会文思枯竭,那样你就又完了。


凭什么我总能写出小说来呢?




我为写作而活下来,要是写作到底不是我应该干的事,我想我再活下去是不是太冒傻气了?




恐慌日甚一日,随时可能完蛋的感觉比完蛋本身可怕多了




我想人不如死了好,不如不出生的好,不如压根儿没有这个世界的好。


可你并没有去死。我又想到那是一件不必着急的事。


可是不必着急的事并不证明是一件必要拖延的事呀?


你总是决定活下来,这说明什么?是的,我还是想活。




人为什么活着?因为人想活着,说到底是这么回事,人真正的名字叫作:欲望。


所以您得知道,消灭恐慌的最有效的办法就是消灭欲望。可是我还知道,消灭人性的最有效的办法也是消灭欲望



从开始想为什么不死,到为什么写作,到说服自己开始写,从偷偷写-->发表的兴奋-->玩命写-->文思枯竭的恐慌-->见好就收想放弃-->仍然咬牙坚持-->不明白为何坚持,最终终于想清楚自己其实虽然“不怕死“但也”不想死”,因为人真正的名字叫做欲望。接受了这份欲望,虽然有些苟活的羞愧,但想清楚反而坦然接受了,坦然接受了自己想活着的欲望,也坦然接受了写作就是为了活着,彻底卸下了包袱。


我觉得这段心路历程描写的极为精彩生动,史铁生的内心反复拉扯,矛盾挣扎,活下去的欲望与对现实的恐惧的强烈冲突,我觉得很多受困于自己的人可能都会对这种矛盾非常感同身受,我希望大家都能像史铁生这样,最终坦然的接受。


没有人天生要去当圣人,只是为了更好的生活而已。


当然,很多时候需要很大的勇气,需要痛苦而深刻的反省与自我剖析,可你一旦坦然接受,未来也将是真正的坦途。


第七节:归宿


image-20231121141815162



我忽然觉得,我一个人跑到这世界上来玩真是玩得太久了。




那时您可以想象一个孩子,他玩累了可他还没玩够呢,心里好些新奇的念头甚至等不及到明天。也可以想象是一个老人,无可置疑地走向他的安息地,走得任劳任怨。还可以想象一对热恋中的情人,互相一次次说“我一刻也不想离开你”,又互相一次次说“时间已经不早了”




我说不好我想不想回去。我说不好是想还是不想,还是无所谓。




那时他便明白,每一步每一步,其实一步步都是走在回去的路上。


当牵牛花初开的时节,葬礼的号角就已吹响。




但是太阳,他每时每刻都是夕阳也都是旭日。当他熄灭着走下山去收尽苍凉残照之际,正是他在另一面燃烧着爬上山巅布散烈烈朝辉之时。有一天,我也将沉静着走下山去,扶着我的拐杖。那一天,在某一处山洼里,势必会跑上来一个欢蹦的孩子,抱着他的玩具。


当然,那不是我。但是,那不是我吗?


宇宙以其不息的欲望将一个歌舞炼为永恒。这欲望有怎样一个人间的姓名,大可忽略不计。



到最后一章,我觉得史铁生已经完全想清楚了,不在痛苦与纠结,知行合一,豁达而通透,他内心变得强大而坚韧。他自己一点点塑造起来的内心世界已经可以完全兼容现实世界,他不再去纠结要不要去死,或者追寻生的意义,他也坦然接受了写作这项对他生命非常有意义的工作。


并且他也更坦然的接受了未来最终会走向死亡终点的结局。


《我与地坛》到此完结。


关于读后感


我最直接的感触就是:平静而有力量


虽然在描述苦难,但通篇并不沉重。文字朴素平实,将漫长的十五年的所思、所感、所经历浓缩成的一篇文章,要表达的内容、感情、哲理其实极为丰富和深刻,但文字既不卖弄也不含蓄,就是很平静的阐述,通俗易懂却回味无穷,特别适合反反复复去读。我对文学并无研究,我猜这可能就是文章的内涵吧。


我相信史铁生同样也是一位平静而有力量的作家,我极为敬佩。这也是我一直以来非常想成为的人,我也总在探寻生命的意义,但我内心远没有这么强大,我常会有类似的矛盾,有时想逃避,或者企图找到一个人生终极的方法论,让我能充实幸福的过完这一生。


但我发现这世界并不存在一个唯一终极真理。我们需要用漫长的时间,不断的经历,不断的自我剖析,思考总结,才能得到一个适合自己的真理和与之匹配的心境。


没有经历足够的体验,和这个反复探索的过程,即使聆听再多再深刻的真理,也依然过不好这一生。


如史铁生文中说:



设若智慧或悟性可以引领我们去找到救赎之路,难道所有的人都能够获得这样的智慧和悟性吗?



终究绝大多数人终生都会被困于自己的牢笼,这世界绝大多数人是没有这样的智慧和悟性的,不过有个好消息就是大多数人也不会经历这样大的苦难,虽然生活有时会给我们带来很多烦恼、遗憾、难过,但同样也会有带来很多温馨、甜蜜、快乐,看来上帝还没那么残忍的。


关于人生意义


人生意义这个话题太过深刻,每个人都有不同的答案。简单聊下:



  1. 为什么要寻找人生的意义?


人生的意义其实就是一个终极方法论,来指导我们要以什么样的态度,如何过完这一生。


因为人的一生实在太过漫长,我们需要一个【基座】来【支撑】住,让我们过的充实,否则在人生的很多时刻我们容易陷入一种【虚无、虚妄】,这种【虚无】吞噬人心,会让我们觉得整个人生都没有意义。


所以人为什么要思考人生的意义,是为了人类的进步亦或找到人类存在这宇宙的终极秘密吗?其实并不是,只是我们需要它,它能让我们的生活过的更【踏实】



  1. 如何去寻找人生的意义?


其实不外乎几个方面,代表现代人不同的观念:



  • 个人成就与自我实现:通过追求个人目标和梦想来寻找生活的意义。包括事业、提高技能、创造性表达或个人发展。

  • 人际关系与社会联系:与家人、朋友、同事和社区建立深厚的关系,为许多人提供了生命的重要意义。通过各种关系,人们可以感受到归属感、爱和支持。

  • 精神与宗教信仰:很多人通过宗教信仰或精神的超过寻找人生意义。宗教信仰可以提供一套价值观和生命意义的解释,给予人们心灵的慰藉和方向。

  • 责任、奉献与付出:通过帮助他人和为社会做出贡献,找到了生活的意义,家庭责任、社会奉献甚至报效国家。

  • 感官体验、自由与权利:追求丰富的体验,比如要去吃没吃过的美食,看没看过的风景,人生不过一场体验,不如潇潇洒洒也算不枉此生。


那什么是对,什么是错,哪个高级,哪个低级呢?


不要忘了我们寻找自己人生的意义,最终目的是为了让自己过的更【踏实】,而不是为了正确答案。与其说哪个更好,不如说哪个能撑得住你的人生,如果你觉得感官体验,吃美食,看风景就是你的人生目标,那你就去做就好了。



只是因为我活着,我才不得不写作。或者说只是因为你还想活下去,你才不得不写作。



在地坛公园十五年,史铁生最终给自己人生意义的答案就是:写作


文字的力量


为什么《我与地坛》句子很平实,读起来却总有一种厚重感?我觉得是因为史铁生所描述的视角,常是突破了人的局限,跨越了时间的。


人类最大的局限性莫过于时间,因为我们只能活在当下的某个时间节点,所以我们很难跨越时间去思考问题,这导致我们普通人在思考人生意义这种深刻的命题时,答案往往显得浅薄而幼稚,我们总会在未来的某个时刻推翻过去的所思所想。


我们更常在历史书中体会这种厚重感,短短几行字可能就是一个王朝的百年兴衰,我们感到震撼和唏嘘。《我与地坛》同样会有这种感觉,试问谁又能花十五年的时间去观察一个园子的变化呢?


当时间被慢慢拉长,我们会看到一个个过去【因】链接到了未来的【果】。因果之间错综复杂的链接,在时间的加持下一览无遗,我们会感叹事物的变化会如此复杂,一个很简单的事物,也会变得深刻而有哲理。


我想作为被时间局限住的人来说,这种跨越时间的观察与思考才是我们需要的,我们才能从这复杂的变化中,总结出深刻的哲理,来支撑我们漫长的人生


推荐


《我与地坛》这本书很适合反复阅读,浓缩了史铁生十五年的心路历程,如果你目前也处在人生比较迷茫的阶段,想要走出困境,我推荐你读一下这本书,我相信你能从中获得想要的力量。


这本书不仅仅浓缩了史铁生十五年的所思所想所感,更是对现代的生活方式、生命的意义、人生观、价值观、人性和欲望、生与死进行了非常深刻的剖析,立意深远,这种深刻的问题是人类永恒的话题,所以我相信它将流传的很久,给每代人带去思考与力量。


相关文献


我与地坛(插图版)





作者:阿祖zu
来源:juejin.cn/post/7303798788719198245
收起阅读 »

为什么我们总是被赶着走

最近发生了一些事情,让shigen不禁的思考:为什么我们总是被各种事情赶着走。 一 第一件事情就是工作上的任务,接触的是一个老系统ERP,听说是2018年就在线上运行的,现在出现问题了,需要我去修改一下。在这里,我需要记录一下技术背景: ERP系统背景 后端...
继续阅读 »

最近发生了一些事情,让shigen不禁的思考:为什么我们总是被各种事情赶着走。



第一件事情就是工作上的任务,接触的是一个老系统ERP,听说是2018年就在线上运行的,现在出现问题了,需要我去修改一下。在这里,我需要记录一下技术背景:



ERP系统背景

后端采用的是jfinal框架,让我觉得很奇葩的地方有:



  • 接受前端的参数采用的HashMap封装,意味着前端字段传递的值可以为字符串、数字(float double)

  • 仅仅一个金额,可以有多种形式:1111.001,1,111.001

  • 格式化 1.00000100 小数点保存8位,这样的显示被骂了

  • 数据库采用的是oracle,jfinal的ORM工具可以采取任何的类型存入数据表的字段里,我就遇到了‘1.1111’字符串存入到定义为double的字段中

  • 原来的设计者存储金额、数量全部采用 flaot、double,凭空出现0.0000000000000001的小数,导致数量金额对不上

  • 小数位0.00000000001 会在前端显示成1-e10,直接在sql上格式化

  • sql动辄几百行,上千行,各种连表

  • sql还会连接字典表,显示某个值代表的含义

  • ……


前端不知道啥框架,接近于jquery+原生的js



  • 每改一段代码,都需要重启后端服务

  • 各种代码冗余

  • 后端打包一次40分钟+

  • ……


最关键的是:所有的需求口头说,我也是第一次接触,一次需求没理解,被运维的在办公室大声批评:你让用户怎么想?



后来,需求本来要半个月完成,拖了一个月才勉强结束。一次快下班的时候出现了问题,我没有加班,也因为遇到了问题没人帮忙。第二天问进度,没进展,领导叫去看会,说态度不好。后来换组了……



第二件事情就是我的公众号更新问题,我在八月份的时候个自己定了一个目标:公众号不停更。到最近一段时间发现:很难保持每天更新的需求了。因为我接触到的技巧很少,每篇文章的成本也很大。就拿我的某个需求为例,我需要先把代码写出来,测试完成之后再去写文章,这整个过程最低也需要两个小时的时间。成本很大,所以我有一次很难定顶住这个压力,推荐了往期的文章。


我也经常关注一些技术类的博客,看他们写的文章发现部分的博客都是互相抄袭的,很难保持高质量。更多的是在贩卖焦虑,打广告。


我希望我的每一篇文章都是有意义的,都是原创的、有价值的。所以,我也在陷入了矛盾中,成本这么大,我需要改变一下更新的节奏吗?



最后一件事情就是:我感冒了。


事情是这样的,一连几天没有去跑步了,家里的健腹轮也很少去练了,除了每天骑行了5公里外,我基本没有啥运动量。我以为我吃点维生素B、维生素C我的体质就会好一点,大错特错了。


周一发现嗓子有点干痒疼,晚上还加了班,睡觉的时候已经是凌晨一点了。周二就头很晕、带一点发热的症状,我赶紧下午去医院,在前台测了一下体温,直接烧到了28.4摄氏度。血常规检测发现是病毒性感染,买了两盒药回来了。下午一直在睡觉,睡到了十一点。


也在想:难道我的体质真的这么差吗?如果我坚持那几天戴口罩,坚持运动会不会好一些。我想到了我的拖延症。


我的dock栏永远是满的,各种软件经常打开着,Java、数据库,总是有很多的事情要去做,很忙的样子,最后发现没时间去运动了。一次健腹轮的运动不到十分钟,我都没有去行动。



这次的感冒,让我更加的重视起我的健康了,也让我觉得我丧失了主动性,总是被生活赶着走。


所以,提到了这么多,涉及到了任务的规划、任务中的可变因素……我觉得除了计划之外,更多的是需要保持热爱。不仅仅是热爱生活、热爱运动、热爱事业,更是热爱自己拥有的一切,因为:爱你所爱,即使所爱譬如朝露


作者:shigen01
来源:juejin.cn/post/7280740613891981331
收起阅读 »

努力学习和工作就等于成长吗?

努力学习和工作与成长的关系是一个值得去深思的问题。 有趣的是,参加实习的时候,我将手上的工作做完之后去学其他的技术了,因为那时候刚好比较忙,所以领导就直接提了一个箱子过来,然我去研究一下那个硬件怎么对接。 我看了下文档,只提供了两种语言,C++和JavaScr...
继续阅读 »

努力学习和工作与成长的关系是一个值得去深思的问题。


有趣的是,参加实习的时候,我将手上的工作做完之后去学其他的技术了,因为那时候刚好比较忙,所以领导就直接提了一个箱子过来,然我去研究一下那个硬件怎么对接。


我看了下文档,只提供了两种语言,C++和JavaScript,显然排除了C++,而是使用JavaScript,不过对于写Java的我来说,虽然也玩过两年的JS,但是明显还是不专业。


我将其快速对接完成后,过了几天,又搞了几台硬件过来叫我对接。


显然这次我不想去写好代码再发给前端了,于是直接拉前段代码来和他们一起开发了。


一个后端程序员硬生生去写了前端。


那么这时候,有些人就会说,“哎呀,能者多劳嘛,你看你多么nb,啥都能干,领导就喜欢这种人了”


屁话,这不是能力,这是陷阱。



之前看到一个大佬在他的文章中写道,“如果前端和后端都能干的人,那么大概率是前端能力不怎么滴,后端能力也不怎么滴”。


我们排除那种天生就学习能力特别强的人,这种人天生脑子就是好,学啥都很快,而且学得特别好,但是这样的人是很少数的,和我们大多数人是没关的。


就像有一个大佬,后端特别厉害,手写各种中间件都不在话下,起初我以为他是个全才。


知道有一天,他要出一门教程,然后自己连最基本的CSS和HTML都不会写,然后叫别人给他写。


那么,这能说明他不厉害吗?


各行各业,精英大多都是在自己的领域深耕的。


这个世界最不缺的就是各领域的高手。


在职场中,也并不是什么都会就代表领导赏识你,只能证明你这颗螺丝比较灵活,可以往左边扭,也可以往右边扭。



在自己擅长的领域去做,把一件事尽可能垂直。


之前和一朋友聊天,他说他干过python,干过java,干过测试,干过开发,干过实施......


反正差不多什么都干过了,但是为什么后面还是啥也没干成?


我们顶多能说他职业经历丰富,但是不能说他职业经验丰富,经历是故事,而经验才是成长。


可见垂直是很重要的,不过执着追求垂直也未必是一件好事,还要看风往那边吹,不然在时代发展的潮流中也会显得无力。


就像前10年左右,PHP可谓是一领Web开发的龙头!


那句“PHP是世界上最好的语言”可谓是一针强心剂。


可是现在看来,PHP已经谈出Web领域了,很多PHP框架早已转型,比如swoole,swoft等,只留下那句“PHP是世界上最好的语言”摇摇欲坠。


可笑的是,之前看到一个群友说,领导叫他去维护一套老系统,而老系统就是PHP写的,于是他去学了好久ThinkPHP框架,但是过了半年,这个项目直接被Java重构了。


真是造化弄人啊!



深度学习和浅尝辄止


在我们还没有工作的时候,在学校看着满入眼帘的技术,心中不免有一种冲动,“老子一定要把它全部学完”


于是从表面去看一遍,会一点了,然后马上在自己学习计划上打一个勾。


但是当遇到另外一个新技术的时候,完全又懵了,于是又重复之前的动作。


这看似学了很多,但是实际上啥也没学会。


个人的精力完全是跟不上时代的发展的,十年前左右,随便会一点编程知识,那找工作简直是别人来请的,但是现在不一样了,即使源码看透了,机会也不多。


而如果掌握了核心,那么无论技术再怎么变革,只需要短暂学习就能熟练了。


就像TCP/IP这么多年了,上层建筑依然是靠它。



看似努力,实则自我感动!


在我们读书的时候,总有个别同学看似很努力,但是考试就是考不好。


究其本质,他的努力只是一种伪装,可能去图书馆5个小时,刷抖音就用了四个小时,然后发个朋友圈,“又是对自己负责的一天”。


也有不少人天天加班,然后也会发个朋友圈,“今天的努力只是为了迎接明天更好的自己”。


事实如此吗?


看到希望,有目的性的努力才是人间清醒。


如果觉得自己学得很累,工作得很累,但是实际上啥也没学到,啥也没收获,那么这样得努力是毫无意义的。


这个世界欺骗别人很容易,但是欺骗自己很难!


作者:苏格拉的底牌
来源:juejin.cn/post/7303804693192081448
收起阅读 »

独立开发最重要的还是产品要打出差异化

独立开发者解放思维,开放眼界真的很有必要。就算自己一时没有好的 idea,也可以多观察学习一些(成功的)非主流的独立产品。我之前写文说过独立开发有死亡加速三件套:笔记、记账、todo。但是不得不说我还是保守了,俗话说的好:勇敢的人先享受世界。既然我单个产品都没...
继续阅读 »

独立开发者解放思维,开放眼界真的很有必要。就算自己一时没有好的 idea,也可以多观察学习一些(成功的)非主流的独立产品。我之前写文说过独立开发有死亡加速三件套:笔记、记账、todo。但是不得不说我还是保守了,俗话说的好:勇敢的人先享受世界。既然我单个产品都没优势,那我 all in one,把笔记、记账、待办都做到一个 app 里行不行?


直觉上我感觉这样不行吧?但是,啊?


IMG\_6009.jpeg

Image.png


原来真有人吃粉会点全家福啊。于是我想你做是能做但是用户就会喜欢吗?


Image.png


我直接一个好家伙,两千多评价,4.7分!


IMG\_6010.png

嫉妒使我面目全非了。看了一下会员价格,买断28。这个 app 在没有苹果推荐的情况下,做到了两千多评价,我估计用户数大于 5 万。我看了一下上线时间,这个 app 前后开发持续了一年多的时间。如果我按照付费转化10%算,那么这个 app 扣掉 15% 苹果渠道费后收入大概有 12 万(50000 * 10% * 28 * 0.85)。但是这个 app 如果运营得当,后面还是会有新用户进来。因为app是极简(没有设计师的委婉说法),设计成本几乎没有。以当下的数据看,算是回本了。后面再来的增长都是利润了。


定位分析:笔记、待办、记账是很主流的用户需求,但是也有很多入门用户都只有很轻度的需求,垂直的 app 都太专业了,如果我想要这些数据在一起,很轻量,没有广告,设计简洁,又一次买断,那么市场上就没有对应的产品。


完成这个app 有两个难点:首先你要判断市场有这么一块空白,第二个难点,因为任何一个单点都没有优势,怎样触达目标用户。


我看了作者的小红书,他选择了一个很新颖的切入点:学生群体。他有一个宣传口号是“专注学生自律养成的工具 app”。学生群体不会有特别重度的需求,又集中,因为付费转化有限所以垂类专业app都不太考虑学生群体,在这个用户定位这个app又找到了独特的切入点。


IMG\_6011.jpeg

这个定位有多重要呢,这个帖子带来的用户下载量就能达到 10000。


Image.png


总的来说,这个 app 给我带来了很大的震撼。希望也能给大家带来启发。


作者:独立开花卓富贵
来源:juejin.cn/post/7267409589066563642
收起阅读 »

【年终总结】置顶帖 我们的2023 (• ᴗ •͈)◞︎ᶫᵒᵛᵉ ♡ & 订婚快乐

前言 想着给自己的博客每年一个置顶帖子,于是便有了此文。 1. 博主的自我介绍 我是一名Java开发工作者,20年大学毕业,专业:计算机科学与技术。 当年高考填报志愿的时候,计算机是一个新兴的蓬勃发展的行业,当时选择这个专业的原因时:一是想着毕业之后进入到这个...
继续阅读 »

前言


想着给自己的博客每年一个置顶帖子,于是便有了此文。


1. 博主的自我介绍


我是一名Java开发工作者,20年大学毕业,专业:计算机科学与技术。


当年高考填报志愿的时候,计算机是一个新兴的蓬勃发展的行业,当时选择这个专业的原因时:一是想着毕业之后进入到这个行业从事相关工作,二是想着这个专业在公务员报考中能报考的岗位也很多。但是大四规划未来人生方向的时候,市场给我们开了一个大大的玩笑,互联网行业乱成了一锅粥,有一句话叫做万物皆可转码,再加之培训班疯狂的向社会输送程序员,市场乱象频频发生,培训班出来的新人能把自己包装成4年5年工作经验,然后各个公司为了能降低用人成本,也为了节省培养新人的时间和开支,也是只招聘工作经验大于3、4年以上的程序员,导致市场对于应届生的接收程度极差,都不愿意招聘应届生,班里的很多学生该培训的培训,该考研考公的备考,该转行的转行....


这个时期能走的路只有三条



  • 考研 毕业成为大厂码农 (幻想的)

  • 考公

  • 和现在就成为码农。


考研呢,也考了,大四下半学期备战了半年,怎么说呢,结果不意外,对自己的认知有偏差,如果能报考一个相对稳妥的双非本科,现在说必定也是一个失业的研究生呢,但是收获最少我把计算机四大件(数据结构、计算机网络、操作系统、计算机组成原理)背了个底朝天,也算是在将近毕业的时候努力的学习了一把大学专业基础的知识。


考公呢,那时候我莫名觉得考公绝对不行,当时运筹帷幄,指点江山,告知自己,现在体制内的各种发生的事情和情况导致未来的公务员绝对不是铁饭碗,加之公务员工资毕竟不像成为程序员肉眼可见的工资那么可观,于是果断的放弃了考公务员,真的,现在有巴掌我第一个扇回去。当时可是20年呀,公务员真的不是很卷,你看看现在,后悔 ....


考研失败之后还是找了个互联网的厂子,现在从事这个行业也有三四年时间了,但是行业的前景却并不像七八年前那样的好。


2、2023年


2023年对我来说绝对是人生最重要的一年之一。


上半年是我老婆人生中最重要的时期之一,她面临着毕业压力(一度让她面临抑郁和崩溃,可能你们会说不就是毕业嘛,哪有那么夸张,我只能说每个人的情况不一样,希望你们一辈子也不要遇见像她导师那样的人...)。


正在外边商场吃饭,然后接到导师电话开始开临时组会。


1c4d4447f1b3bfc325028f74d2d7c7a.jpg
我们如履薄冰,战战兢兢度过了这段时间。终于,在六月份,她顺利毕业了(万幸)。


(顺利毕业)


18058ff849d6c84ea59004408b3e19e.jpg


(surprise)


38fdaed159f06cbb6d7c720effcdc64.jpg


七月,她也找到了人生中的第一份工作,我们的生活开始步入正轨。


同样七月终于拥有了人生第一辆车。


(开心)


9654ef10686532c88f25dd47223f341.jpg


在家人和我们自己的决定下,我们如期在十月订婚了。这对我们来说是非常重要的一步。


(去银行买的金条,打的金镯子,很划算哈 ~)


b4c739c3b39ec1cd9f83671caaa07c8.jpg


(自己买的订婚现场的装饰,pdd 买的,至今为止,我还是觉得我布置的最好看。)


bc9af347cdc1514d2ebf14d529f80fb.jpg


(怎么样呀?jym)


4138b0ec9c6eede4cdd6c73f81d35d4.jpg


(家人们,教你们一招 五粮液、软华子直接拿下老丈人)


69f6355e7bd239151ef7f1b7b4ae1ce.jpg


(订婚现场,主持人是我一个妹妹,这张图能看清我桌子上都摆了啥,当天我没拍桌子。)


baf114ff7b6e5c95c24c7cc43304b40.jpg


(订婚书一签,你可不就是我的人了 ~)


c5f694c83c01eaa2732e4f6f9d8d6bd.jpg


(直接拿下)


171af9c21debd04f3f94ddd8763dbd1.jpg


(小样,还想跑)


2616240e27346af08568921e4cbcc7a.jpg


(往后余生,我们一起走)


ac4c494985f65d3ca41f46a3831a9d7.jpg


本以为人生会一帆风顺地继续下去,但工作没多久,因为是制造业,厂里的有毒气体使得她呼吸道和身体都在变差,她不得不选择辞职(裸辞)。23年的社会结构变迁使得学历贬值,大学生人数的激增导致工作变得更加稀缺,失业潮开始席卷。


老婆从失业到现在一直住在我租的小房间里,但是我相信人生不可能总是一帆风顺的。


3、技术成长


除了完成基本的工作业务(今年也上线了 3个web网站 和 3个小程序)之外的技术栈扩充:



  • 学习了 SpringBoot3.0 和 对应的 Spring 的生态。比如 SpringSecurity 6.0 以上 ...

  • 还有 Java 17 的一些新特性和性能。

  • 学习了 C# 和 .Net (只能说和 Java 很像,补全版的Java),正在用C# 做了一个对接 OpenAI的一个类似 ChatGpt 一样的对话类的网站。(还不是很熟,但是能写了,面向百度编程)

  • 学习了 领域驱动 DDD ,真的感觉要长脑子了,很多系统性的东西在慢慢融合。

  • 接触了 Vue3 和 TypeScript (嗯,万物都在往面向对象发展 ~)

  • 可以从 需求制定,域名、服务器、云服务 产品的选型,技术选型,前后端开发,部署上线,性能优化,中间件搭建,后期的运维测试。都能自己一个人搞下来了。(还是勉勉强强,但是按照我们现在这种模式的话,稍微简单一点的服务还是没啥问题的、单体服务就更没问题了。没错,我就是小公司全能手)

  • 现在 Python 和 Shell 脚本 玩得 6 的一 。(脚本真方便,而且这种解释器语言真好用~)


4、个人成长


这一年中,有一丝丝的人生感悟,分享给大家。


在工作上,大家都知道,写代码到一定程度会有质的飞跃。今年我在工作方面有了一些感悟,但随着对知识的深入,我也意识到自己所不知道的更多。我从最基础的 Java、数据库和 Web 开发开始,逐渐深入研究技术,包括 Java、系统设计和架构、各种数据库进阶以及项目管理,然后扩展到安全与性能优化、沟通能力、业务和行业理解,以及技术趋势和新技术。然而,最近我意识到,一切都归结于一个道理:先做人,再做事。懂得做人,任何问题都能迎刃而解。我对此有些许领悟。


在工作中,技术的学习和提升固然至关重要,但随着不断的实践,我逐渐意识到成功并不仅取决于技术能力,更关键的是人格魅力和人际交往能力。我开始认识到要从意识开始转变。


从最开始的技术基础学习,到技术的深入研究,再到全面提升,这是职业发展的必经之路。但是当在职场中积累了一定经验后,我渐渐明白技术只是成功的一部分。在实际工作中,需要与人打交道、管理团队、协调资源,这些都需要更多的人际关系、沟通技巧和领导力。虽然我现在还在追求进步,但这是必经之路。


要学会做人,在职场上就意味着有坚定的原则和良好的职业道德。这意味着以诚实、正直、宽容的态度对待他人,学会尊重和理解他人的不同,善于倾听,愿意分享和帮助他人。


此外,学会做人也包括与同事的良好合作、与上级的有效沟通、与下属的关心和激励。建立良好的人际关系,培养团队合作精神。


我曾听过这样一段话,我们这一代,因为互联网的高速发展,能轻易接触到信息,就以为自己掌握了很多,但这个世界上真正有价值的东西都需付出等价的代价。先学会做人,再学做事。


5、总结与展望


新的一年:



  • 常回家看看,暂时定的两个月最少回去一次吧。

  • 好好给老婆准备明年春招。

  • 好好写一些博客,将自己的技术分享出来。将自己的博客好好运营一下。

  • 好好吃饭、锻炼,我实在是太瘦了,身体是革命的本钱。

  • 交易,看看大A水有多深。兄弟们 2700 抄底了~

  • 攒点钱,再去一次 汉中-留坝县自驾游。

  • 抽时间把婚纱照拍了~


什么都会过去的,抓住现在,不是吗?


(我的头像,在汉中狮子沟牧场拍的)


f106b19bb98a45a043d92d3765f68e6.jpg


(开心最重要,不是吗?)


ed7d33be7e06fb3a435c32183c772e8.jpg


(去年全球总决赛[ wbg vs t1]的时候线下场馆拍的,笑死 ~)


4754e94949a6ca9cb7f59e0976907b5.jpg


(前几天下雪 恐龙 vs 鸭子)


3b80eb80951e36ef753bffc4d6b42c4.jpg


就这些,希望明年年度总结的时候可以将这些都完成 ~


3455534be148991ff60b2bfa5f1755b.jpg


引用《人世间》种的一句话:



从你出生的那一刻起, 端什么碗,吃什么饭, 经历什么事,什么时候和谁结婚, 都是定数。 别太难为自己,顺其自然就好。 人生的剧本, 你早在天堂就看过了, 你之所以选择这个剧本是因为, 这一生中有你认为值得的地方。



jym 加油 !


作者:乐乐家的乐乐
来源:juejin.cn/post/7310101033635725375
收起阅读 »

不戴眼镜也可以看清啦!记录我的摘镜经历

大家好,我是 Gopal。好久不见,甚是想念! 本篇文章记录一下今年我做的一个比较大胆的决定——做近视手术。 首先声明一下,本篇文章不是广告,纯分享个人经历,看完这篇文章,至于要不要做视力矫正?怎么做?个人可以根据需要自行决定哈。 我为什么要摘镜 先说一下,我...
继续阅读 »

大家好,我是 Gopal。好久不见,甚是想念!


本篇文章记录一下今年我做的一个比较大胆的决定——做近视手术。


首先声明一下,本篇文章不是广告,纯分享个人经历,看完这篇文章,至于要不要做视力矫正?怎么做?个人可以根据需要自行决定哈。


我为什么要摘镜


先说一下,我的情况。我是初中毕业后开始慢慢近视的,至今的话,也有十来年了,眼镜都配了好多副。有近视的同学应该都知道,近视确确实实带给我们很多的烦恼,我举几个例子:



  1. 看 3D 电影,我得带两副眼镜,一副是自己的,一副是 3D 眼镜。

  2. 游泳的时候,脱掉眼镜,啥也看不到。

  3. 打篮球或者一些激烈的运动,眼镜经常脱落。

  4. 每天都得擦拭眼镜,对于我这种有点强迫症来讲的人,会是每天的工作。

  5. 早上起来第一件事情,找眼镜。

  6. ...


基于以上的种种,摘镜意愿,我个人是比较强烈的。当我听说现在有手术可以进行视力矫正时候,是非常兴奋的。我之后做了相关的调查,我们来看一下视力矫正有哪些方案吧。


视力矫正有哪些方案


这里我会介绍得比较粗糙一些,毕竟我不是专业的,知识都是我从网络中总结得来。


近视原因:我们大部分人的近视都是轴性近视,是由于眼球的前后长度(轴长)延长造成的,可以看以下的图片。在正常眼中,平行光线入眼后在视网膜上形成焦点。而在近视眼中,焦点位置落在视网膜之前,近视眼想看清,就得调整屈光度,使其聚焦在视网膜上。


image.png


眼镜通过镜片调节屈光度,而近视手术的大致有两种方式进行:



  • 第一种,通过角膜手术改变角膜的形态和屈光力,使物象成像到视网膜上。

  • 第二种,更换晶体或向眼内植入补偿晶体,从而达到类似的效果,这种类似于带隐形眼镜。


其中有一个特点就是晶体是有可逆性,激光手术的话,是不可逆的。以上两种并没有说哪种是最优解,需要通过医院检查才能决定。一般来说,角膜屈光手术建议近视度数小于 1000 度,散光小于 600 度。如果因为度数过高、或角膜太薄不能做角膜屈光手术,可以考虑做晶体植入手术。


现在主流的手术方案有以下四种(前面三种都属于角膜手术),具体的这里不展开了,大家有想法可以自行搜索哈。



  • Smart全激光

  • 半飞秒

  • 全飞秒Smile

  • ICL晶体植入术


而我通过检查之后,选择了全飞秒Smile。主要是我度数还好,角膜厚度也足够。


手术前中后


首先约了一家上市的机构做检查,看得出还是比较慎重,各个方面评估能不能做,以及有哪些方案,最后会有专门的人给我讲解。


做完检查之后,我当时就约了隔周去做,因为手术前几天是需要滴眼药水,而且不能佩戴隐形眼镜等。


手术当天,做术前检查,交代注意事项/术后用药、签署同意书等。说实话,我还是比较紧张的,毕竟把眼睛这么重要的部位交给医生。


然后就是手术了,真正的手术时间也就几分钟,当躺在手术室中,一开始我以为医生还在给我做前置检查,没想到几分钟后医生告诉我已经结束了,可以回家了。手术过程滴麻药,基本不会痛的。整个激光过程,眼睛是会有开睑器撑开固定,手术过程眼睛是同时睁开/闭上的。手术过程中,需要在打激光的过程中配合,眼睛保持不动不眨,听好医生指令


手术后,我和我对象就坐地铁回去了,回家的路上,我一直戴着墨镜,随着麻药的失效,会有一种较强的异物感。虽然我知道这是一个正常现象(医生提前已告知,手术后将会在4-6小时内会出现流泪、畏光、白雾感、异物感、酸胀感等刺激症状,其轻重因人而异),但是当时真的挺怕的,毕竟可不是小事。(所以最好手术当天最好还是有人一起去)。


当天下午,我就感觉好很多了。我做的事全飞秒,周六做的手术,周一的时候,我就可以正常上下班了,基本不会影响工作。唯一我感知到的一点点影响就是切换屏幕的时候,聚焦会需要一点点时间,很短,医生说是正常现象。不过中间需要注意用眼,然后注意按照医嘱滴眼药水等。这里我贴几个术后的注意事项,当然你应该根据你的主治医生来:



  1. 术后一周内清淡饮食,吃辛辣刺激食物。

  2. 术后两周内洗头洗脸时不宜将水溅入眼内,切忌揉眼。(手术室给的眼罩睡觉时带上)。

  3. 术后一个月内勿游泳,不要在眼部使用化妆品并避免异物进入眼内。

  4. 术后一个月在室外请戴太阳镜(全激光术后戴三个月),室内、晚上不需佩戴。

  5. 术后三个月内尽量避免剧烈运动,术后一周后可以适量健身运动,但须注意在活动中不要伤及手术眼。

  6. 术后视力恢复是逐步提高的过程,开始阶段看近会感到稍有模糊,雾感。此症状会逐渐消失,视力提高有快有慢,双眼视力恢复会有波动与近视度数及个人对治疗反应差异有关,六个月基本稳定。


在写本文的时候,已经有两个多月了,感觉日常生活没啥影响。在一个月复诊的时候,我的视力一边是 1.2,一边是 1.5。如果说有啥「副作用」的话,有两点。一个是晚上的视力(在光线比较差的地方)会稍微有点差,另外一个看一些光源(比如路灯),会有一点炫光。不过这些术前医生有给我说过,我是有做好心理准备的。


image.png


整体而言,目前为止,我对这次的近视手术还是很满意的。


手术价格以及副作用


这个我相信不少人比较关注,我做的全飞秒,全部下来大概 1.8w 左右(公司跟这家机构有合作,跟我说是打了折扣,我了解了一下,在深圳,这个价格其实差不多)。激光和半分秒会稍微便宜一些。晶体植入是最贵的(大概 3w 多)。具体的还需要根据不同的城市和机构看。据说虽然近视手术简单,但是它那个机器是需要给专利费用的,用一次给一次专利费用。整体上讲,这个还是可以接受的。另外,近视手术不能报医保。


比如价格,我觉得大家最关心的问题是副作用,或者说风险系数。任何手术都是有风险的,包括近视手术。网络上会有人说:



  • 近视手术这么好,为什么医生也还带眼镜?

  • 近视手术这么好,为什么马化腾还带眼镜?

  • ...


image.png


首先,先不否认大家的疑虑,毕竟眼睛这么重要的东西,要在上面动手术,想想都怕。但是,我们也需要辩证的看待这些问题。



  • 近视手术是需要满足一定条件的,不满足的话,医院是不敢给你做的。

  • 近视手术是不会导致你瞎的,从原理上来说,近视手术是眼睛前面部分的手术,不涉及眼部深层组织,比如晶状体、视网膜等,更加不可能致盲。

  • 近视手术存在发生并发症的可能性,可能性大小而已。(别人没有,并不代表自己没有)比如眼干等。虽然现在手术已经很成熟,但是在你决定要做之前,一定要先了解清楚,看你能不能承担这个风险。

  • 近视手术只是当前帮你调整好你的视力,假如你不注意用眼的话,是存在再次近视的风险的。所以一般建议成年之后,度数稳定之后再做这个手术。

  • ...


最后再强调一遍,近视手术是一种改善型的手术,不做其实本质上对于自身身体健康没有影响,如果摘镜意愿强烈的同学可以尝试去了解一下。


写在最后


目前为止,我感受到更多的是摘镜之后给我生活带来的便利,基本算是满足了我摘镜的预期!


我之前一直在想,假如哪天我落在一座荒岛上,估计是活不下去的。因为假如一旦我眼镜坏了,那么我就「看不清」这个世界了。


不过现在医学科技的进步解决了我的这个问题。


作者:Gopal
来源:juejin.cn/post/7293788137662038050
收起阅读 »

原来我们是这样对工作失去兴趣的

一、前言    相信很多人有过接手别人的系统,也有将自己负责的系统交接给别人的经历。既有交接出去不用在费力治理维护技术债务的喜悦,也有接手对方系统面对一系列维护问题的愁容满面。    但是被人嫌弃的系统曾经也是「创建人」心中的白月光啊,是什么导致了「白月光」变...
继续阅读 »



一、前言


   相信很多人有过接手别人的系统,也有将自己负责的系统交接给别人的经历。既有交接出去不用在费力治理维护技术债务的喜悦,也有接手对方系统面对一系列维护问题的愁容满面。

   但是被人嫌弃的系统曾经也是「创建人」心中的白月光啊,是什么导致了「白月光」变成了「牛夫人」呢?是996,工期倒排、先上再优化,还是随时变动的需求?

   让我们来复盘系统是怎么一步一步腐化的,让我们丢失了最初的兴趣,同时总结一些经验教训以及破局之策。


二、白月光到牛夫人的经历


一般当我们设计一个系统时,总是会抱着要把该项目打造为「干净整洁」的项目的想法,


图片


但是随着时间的推移,最后总是不可避免的变成了这样:


图片


2.1、从0到1


   我们发现大多数人对于创建新项目总是会抱有极大的激情兴趣,会充分的考虑架构设计。但是对于接手的项目就会缺乏耐心。

   这种心理在《人月神话》一书中被说为编程职业的乐趣:

“首先,这种快乐是一种创建事物的纯粹快乐。如同小孩在玩泥巴时 感到快乐一样,成年人喜欢创建事物,特别是自己进行设计 。我想这种 快乐是上帝创造世界的折射,一种呈现在每片独特的、崭新的树叶和雪 花上的喜悦。”

“第四,这种快乐是持续学习的快乐,它来自于这项工作的非重复特性。人们所面临的问题总有这样那样的不同,因而解决问题的人可以从 中学习新的事物,有时是实践上的,有时是理论上的,或者兼而有之。”

图片

正是由于这样的心理,人们在面对新系统时,可以实践自身所学,主动思考如何避开曾经遇到的坑。满足了内心深处的对于创造渴望。
   当一个项目是从0到1开始设计的,并且前期是由少数「高手」成员主导开发的话,一般不会有债务体现。当然明面上没有债务,不代表没有埋下债务的种子。


2.2、抢占市场、快速迭代


   系统投入市场得到验证后,如果顺利,短期会收获大量用户。伴随着用户指数增长的同时,各种产品需求也会随着而来。一般在这个阶段将会是「工期倒排、先上再优化,需求随时变动」的高发期。

   同时由于需求的爆发,为了提高团队的交付率,在这个阶段会引入大量的“新人”。随着带来的就是新老思想的碰撞,新的同学不一定认同之前的架构设计。

   在这个阶段,如果团队存在主心骨,可以“游说”多方势力,平衡技术产品、新老开发之间的矛盾,那么在这个阶段引入的债务将会还好。但是如果团队缺乏这样的角色,就会导致公说公有理婆说婆有理,最后的结果就是架构会朝着多个方向发展,一个项目里充斥着多种不同思路的设计。有些甚至是矛盾的。如果还有【又不是不能用】的想法出现,那将是灭顶之灾。

图片

但是在这个阶段对于参与者又是幸福的,一份【有市场、有用户、有技术、有价值】的项目,无论是对未来的晋升还是跳槽都是极大的谈资。


2.3、维护治理


   褪去了前期“曾经沧海难为水,除却巫山不是云”的热恋后,剩下的就是生活的柴米油盐。系统的最终结局也是“维护治理”。

   在这个阶段,需求的数量将大大减少,但是由于前期的“快速建设”,一个小小的需求,我们可能需要耗费数周的时间去迭代。而且系统越来越复杂,迭代越来越困难。
   
同时每天需要花费大量的时间处理客诉、定位bug,精力被完全分散。系统的设计和技术慢慢的变得僵化。并且由于用户量巨大,每次改动都要承担很大的线上风险。这样的情况对于程序员的精力、体力都是一场内耗,并且如果领导的重心也不在此项目时,更会加重这种内耗。于是该系统就会显得“人老色衰”,曾经的「白月光」也就变成了「牛夫人」。

图片


三、牛夫人不好吗?


3.1、缺乏成就感


《人月神话》中关于程序员职业的苦恼曾说过以下几点:



  1. 对于系统编程人员而言,对其他人的依赖是一件非常痛苦的事情。他依靠其他人的程序,而这些程序往往设计得并不合理、实现拙劣、发布不完整(没有源代码或测试用例)或者文档记录得很糟。所以,系统编程人员不得不花费时间去研究和修改,而它们在理想情况下本应该是可靠的、完整的。

  2. 下一个苦恼---概念性设计是有趣的,但寻找琐碎的bug却是一项重复性的活动。伴随着创造性活动的,往往是枯燥沉闷的时间和艰苦的 劳动。程序编制工作也不例外。

  3. 最后一个苦恼 ,有时也是一种无奈—当投入了大量辛苦的劳动 ,***产品在即将完成或者终于完成的时候,却已显得陈旧过时。***可能是同事或竞争对手已在追逐新的、更好的构思; 也许替代方案不仅仅是在构思 ,而且己经在安排了。


随着业务趋于稳定,能够发挥创造性的地方越来越少,剩下的更多是沉闷、枯燥的维护工作。并且公司的资源会更聚焦在新业务、新方向,旧系统获得的关注更少,自然而然就缺乏成就感。也就形成了【只见新人笑,不见旧人哭


3.2、旧系统复杂、难以维护


《A Philosophy of Software Design》一书中对复杂性进行了如下定义:“Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system.”,即任何使得软件难于理解和修改的因素都是复杂性。

作者John 教授又分别从三个角度进行了解释复杂性的来源:


3.2.1、变更放大


   复杂性的第一个征兆是,看似简单的变更需要在许多不同地方进行代码修改。对于复杂的系统来说,如果代码没有聚敛,那么一次小小的需求可能会导致多处修改。同时为了保证不出故障,需要对涉及的修改点、功能点进行完整的覆盖测试。这种隐藏在背后的工作量是巨大的。


3.2.2、认知负荷


   复杂性的第二个症状是认知负荷,这是指开发人员需要多少知识才能完成一项任务。当一个系统经过多年的迭代开发,其复杂度将是指数级别的。并且会充斥这很多只有“当事人”才能理解的“离谱”功能。这就对维护者提出了极高的要求,需要掌握很多“冰山下”的知识才能做到手到擒来。而这对维护者的耐心、能力又是一次挑战。

图片


3.2.3、未知的未知


   未知的未知是指必须修改哪些代码才能完成任务,或者说开发人员必须获得哪些信息才能成功地执行任务。这一项也是John Ousterhout教授认为复杂性中最糟糕的一个表现形式。
     这句话看起来比较抽象,如果映射到我们日常的工作中就是“我也不知道为啥这么改就好了”、“在我这是好的呀”、“刚刚还能运行啊,不知道为啥现在突然不行了”。

   这种情况就是我们不知道改动的这行代码是否能让程序正常运转,也不知道这行代码的改动是否又会引发新的问题。这时候我们发现,那些“上帝类”真的就只有上帝能拯救了。

   我曾经维护一个老系统,源码是通过文件相互传递的,没有仓库,里面的框架是自己撸的轮子,没有任何说明文档。服务部署是先在本地编译成二进制文件,然后在上传到服务器启动。每次改动上线都是就是一次生死劫,幸好没过多久,这个系统就被放弃了。


四、为何变成了牛夫人


4.1、伪敏捷


   “敏捷”已经成为了国内公司的银弹了。
   需求不做市场分析、不考虑用户体验、不做设计分析、不考虑前因后果,美其名曰“敏捷”。
   工期倒排、先上再说、明天能不能上、这个问题上了再优化,美其名曰“敏捷”。

   我曾经参与过一个项目,最开始是给了三个月的时间完成产品规划+开发,但是项目立项后领导层迟迟无法达成统一,一直持续进行了两个月的讨论后,终于确定了产品模型,进入开发。到这里留给开发的时间还剩一个月,咬咬牙也能搞定。但是开发真正进场,上报了需要开发的周期后,上面觉得太慢了,要求3周搞定,过了一天还是觉得太慢,要求2周,最后变成了要求4天搞定。遇到这种情况能怎么办,只能加人,只能怎么快怎么来。

   之前阿里程序员也开玩笑式的说出了类似的场景:“2月13号上午省领导问逍遥子全省的健康码今天上线行不行,逍遥子说可以。等消息传达到产研团队的时候已经是中午了,然后团队在下午写了第一行代码。”


4.2、人的认知局限


   《人月神话》一书中提到了一种组建团队的方式「外科手术团队」:“十个人,其中七个专业人士在解决问题,而系统是一个人或者最多两个人思考的产物,因此客观上达到了概念的一致性。”
   也就是团队只需要一个或者两个掌舵人,负责规划团队的方向和系统架构,其余人配合他完成任务。目前我所待过的团队也基本是按照这个模式组成的,领导会负责重要事情的决策和团队分歧时的拍板,其余人则相互配合完成目标任务。但是这样的模式也导致了一个问题:掌舵人的认知上限就决定了团队的上限,而这种认知上限天然就会导致系统架构设计存在局限性,而这种局限性又会随着“伪敏捷”放大


4.3、人员流动


   经历过这种离职交接、活水交接的打工人应该深有体会,很多项目一旦步入这个阶段,大多数负责人就会开始放飞自我,怎么快怎么来,只想快点结束这段工作,快速奔赴下一段旅程。
   从人性的角度是很难评价这种情况的,毕竟打工人和老板天然就不是一个战线的,甚至可能是对立面的。而我们大多数人都不可能是圣人,从自身角度从发这种行为是无可厚非的。


五、如何保持白月光


   这里想首先抛个结论,系统变腐化是不可避免的。就类似人一样,随着时间的流逝,也会从以前一个连续熬夜打游戏看小说第二天依旧生龙活虎的青年变为一个在工位坐半小时都腰酸背痛,快走几步都喘的中年人。而这都来源于生活的压力、家庭的压力、工作的压力。同样的,面对业务的压力、抢占市场的压力、盈利的压力,系统也不可避免会变成“中年人”。
   就像人一样会使用护肤品、健身等手段延缓自己的衰老一样,我们也可以使用一些手段延缓系统“衰老”。
   在网上,已经有无数的文章教怎么避免代码腐化了,例如“DDD领域驱动设计”、“业务建模”、“重构”等等。
   今天我想从别的角度聊聊怎么延缓代码腐化。


5.1、避免通用


   软件领域有个特点,那就是复用。程序员们总是在思考怎么样写一段到处通用的代码,以不变应万变。特别是当国内提出中台战略后,这种情况就如脱缰的野马一般,不可阻挡。要是你做的业务、架构不带上xx中台,赋能xx,你都觉得你低人一等。
   但是其实我们大部分人做的都是业务系统,本身就是面向某块特定市场的、特定用户的。这就天然决定了其局限性。
   很多时候你会发现你用了100%的力气,设计了一个80%你认为有用的通用中台,最后只有20%产生了作用,剩下60%要么再也没有动过,要么就是被后来参与者喷的体无完肤。
   当然这里也不说,设计时就按照当前产品提出的需求设计就行,一点扩展的余地都不留,而是在「通用」与「业务需求」之间取一个平衡。而这种平衡就取决于经验了。如果你没有这方面经验,那你就去找产品要「抄袭」的是哪个产品,看看他们有哪些功能,可以预留这些功能的设计点。


5.2、Clean Code


说实话,国内的业务系统80%都没有到需要谈论架构设计的地步。能够做到以下几点已经赢麻了:



  1. 良好的代码注释和相关文档存档【重中之重】

  2. 避免过长参数

  3. 避免过长方法和类

  4. 少量的设计模式

  5. 清晰的命名

  6. 有效的Code Review【不是那种帮我CR下,对方1秒后回复你一个done】


5.3、学会拒绝


   自从国内开始掀起敏捷开发的浪潮后,在项目管理方面就出现了一个莫名其妙的指标:每次迭代的需求数都有会有一个数值,而且还不能比上一次迭代的少。
   这种情况出现的原因是需求提出者无法确定这个需求可以带来多大的收益,这个收益是否满足老板的要求。那么他只能一股脑上一堆,这样即使最后效果不及预期,也可以怪罪于用户不买账。不是他不努力。
   在这种时候,就需要开发学会识别哪些是真需求,哪些是伪需求,对于伪需求要学会说不。当然说不,不是让你上来就是开喷,而是你可以提出更加合理的理由,甚至你可以提出其他需求代替伪需求。这一般需要你对这块业务有非常深入的研究,同时对系统有上帝视角。
   基本上在每个公司的迭代周期都是有时间要求的,比如我们就是两周一迭代,如果需求是你可控的,那么你就有更多的时间和心思在维护系统上,延缓他的衰老。




作者:云舒编程
来源:juejin.cn/post/7312724606605918249
收起阅读 »

谈谈在大环境低迷下,找工作和入职三个月后的感受

前言 今天是新公司入职后的三个多月了个人也是如愿的转正了,对于我个人而言此时的心情好像没有三个月前刚拿到offer那样的喜悦和兴奋了,更像一件很普通的事情在你身边发生了吧。从2023年底离职在到2024年初开始找工作中间休息了三个月,找工作到入职花了一个多月,...
继续阅读 »

前言


今天是新公司入职后的三个多月了个人也是如愿的转正了,对于我个人而言此时的心情好像没有三个月前刚拿到offer那样的喜悦和兴奋了,更像一件很普通的事情在你身边发生了吧。从2023年底离职在到2024年初开始找工作中间休息了三个月,找工作到入职花了一个多月,在这个过程中也是第一次真真切切感受到了所谓大环境低迷下的“前端已死的言论”,也给大家分享一下自己入职三个月的个人感受吧。


从上一家公司离职时的个人感受


因为上一家公司的工作性质是人力外包驻场开发,年底客户公司(中国移动成都产业研究院)我所在的项目组不需要外包人员了,个人也是被迫拿了赔偿灰溜溜的走人了。


工作感受:对于这段工作经历我个人还是比较认可的,毕竟这里没有任何工作压力,也不加班,工作量少,有很多时间去学习新东西,做做自己的开源,认识了新的朋友等等。


学历的重要性:在这里面随便拎一个人出来可能就是研究生学历的国企单位,自己真实的意识到了学历的重要性(第一学历小专科的我瑟瑟发抖)。


和优秀的人共事:如果在一个长期压抑低沉消极的环境下工作无论你的性格在怎么积极乐观开朗,可能也很容易被影响到。相反如果是和在一群积极乐观开朗充满自信的环境和人一起工作,相信你也会变得积极,乐观,自信这或许也是我这一段工作经历最大的收获吧。


2023年底找工作的市场就业环境


抱着试一试的心态在boss上更新了自己的简历状态,不出所料软件上面安静的奇怪ps:49入国军的感觉已读未回可能是很失望的感觉吧,但年底找工作令人绝望的是大多数公司都是未读未回,这也就意味着年底基本上是没有正常公司招聘的了。


大概投了两周简历后终于在智联招聘上约到了一个短期三个月岗位的面试,现场两轮面试通过了,不过最终还是没有选择去。


原因有很多:



  1. 现场的工作环境个人感觉很压抑,从接待我前台和面试官都能感觉满脸写着疲惫

  2. 说公司最近在996,你也需要和我们一起

  3. 招聘岗位和工作内容是threejs开发,薪资却说只能给到普通前端开发的水平

  4. 人力外包公司hr的反复无常令我恶心,二面通过后hr给我打电话最主要就是聊薪资吧,电话内容也很简单hr:成都大部分前端的薪资是在XX-XX,可能给不到你想要的薪资,可能要往下压个1-2K。:我提的薪资完全是在你们发布招聘岗位薪资的区间,既然你们给不到为什么要这样写了(有感到被侮辱了)。过了几天之后人力外包的hr又给我电话,说可以在原来提的薪资基础上加1.4K,希望能早点去客户公司入职。


总结:年底招聘的公司基本上没啥好鸟,如果你的经济能力还行的话让自己放松休息一段时间也是不错的选择


2024年初找工作:真实的感受到了大环境的低迷下的市场行情


印象最深刻的是在疫情时期的2021年,那会儿出来找工作boos上会有很多HR主动给你打招呼,一周大概能五六个面试,大专学历也有机会去自研公司


解封之后本以为市场行情会变得回缓,结果大概就是今年可是未来十年行情最好的一年


简单总结一下2024年的成都就业环境大概这样的:



  1. 只有外包公司会招专科学历

  2. boss上只给hr发一句打招呼的快捷语,99% 都是已读不回

  3. 大多数要完简历之后就没有后续了

  4. 待遇好的公司对于学历的要求更严格了(211,985)

  5. 给你主动打招呼的基本上都是人力外包公司


截至入职新公司前boss上面的投递状况:沟通了1384个岗位,投递了99份简历,一共约到了 8 家公司的面试


image.png


今年找工作的个人感受:不怕面试,就怕没有面试机会


首先说一下个人的一些情况吧,因为在创业小公司待过在技术栈方面个人认为算是比较全面的了


项目经验:做过管理系统(CRM,B2C,ERP,saas等管理系统)、商城和门户网站(响应式,自适应)、移动端(H5,小程序,app)、低代码和可视化(工作流,可视化大屏,3d编辑器)、第三方开发(腾讯IM,企业微信侧边栏)、微前端


项目经历:从0-1搭建过整个大项目的基建工作,封装过项目中很多功能性组件和UI组件二次封装(提高开发效率),接手过屎山代码并重构优化,约定项目的开发规范,处理很多比较棘手的疑难bug和提供相关的技术方案,没有需求概念下的敏捷开发,从0-1的技术调研等


代码方面:写过几个开源项目虽然star数量不多(目前最多一个项目是600+),但在代码规范和可读性方面个人认为还是比较OK的(至少不会写出屎山代码吧)


工作经验(4年):2020毕业至今一直从事前端开发工作


学历:自考本科学历(貌似没啥卵用)


学历确实是我很硬伤的一个点但是没办法,人嘛总归要为年轻时的无知买单吧


在这样的背景下开启了24年的找工作,从2月26号开始投递简历到4月1号拿到offer差不多一个多月左右时间,一共约到了8加公司的面试,平均一周两家公司


大概统计了一下这些公司的面试情况:


公司A:



  1. 数组哪些方法会触发Vue监听,哪些不会触发监听

  2. position 有哪些属性

  3. vue watch和computed的区别,computed和method的区别

  4. vue的watch是否可以取消? 怎么取消?

  5. position:absolute, position:fixed那些会脱离文档流

  6. 如何获取到 pomise 多个then 之后的值

  7. 常见的http状态码

  8. 谈谈你对display:flex 弹性盒子属性的了解

  9. 如何判断一个值是否是数组

  10. typeof 和instanceof的区别

  11. es6-es10新增了那些东西

  12. 离职原因,期望薪资,职业规划


公司B


到现场写了一套笔试题,内容记不清楚了


公司C



  1. vue router 和route 区别

  2. 说说重绘和重排

  3. css 权重

  4. 项目第一次加载太慢优化

  5. 谈谈你对vue这种框架理解

  6. sessionstorage cookie localstorage 区别

  7. 了解过.css 的优化吗?

  8. 闭包

  9. 内存泄漏的产生

  10. 做一个防重复点击你有哪些方案

  11. 解释一些防抖和节流以及如何实现

  12. 说一下你对 webScoket的了解,以及有哪些API

  13. 说一下你对pomise的理解

  14. vue2,vue3 中 v-for 和v-if的优先级

  15. 说说你对canvas的理解


公司D


笔试+面试



  1. vue 首屏加载过慢如何优化

  2. 说说你在项目中封装的组件,以及如何封装的

  3. 后台管理系统权限功能菜单和按钮权限如何实现的

  4. vue 中的一些项目优化

  5. 期望薪资,离职原因,

  6. 其他的记不清楚了


公司E


笔试+面试+和老板谈薪资


1.笔试:八股文


2.面试:主要聊的是项目内容比如项目的一些功能点的实现,和项目的技术点


3.老板谈薪资:首先就是非技术面的常规三件套(离职原因,期望薪资,职业规划),然后就是谈薪资(最终因为薪资给的太低了没有选择考虑这家)


公司F


也是最想去的一家公司,一个偏管理的前端岗位(和面试官聊的非常投缘,而且整个一面过程也非常愉快感受到了十分被尊重)


可惜的是复试的时候因为学历原因,以及一些职业规划和加班出差等方面上没有达到公司的预期也是很遗憾的错过了


一面:



  1. vue 响应式数据原理

  2. 说说es6 promise async await 以及 promise A+规范的了解

  3. 谈谈es6 Map 函数

  4. 如何实现 list 数据结构转 tree结构

  5. webScoke api 介绍

  6. webScoke 在vue项目中如何全局挂载

  7. vuex 和 pinia 区别

  8. 谈谈你对微任务和宏任务的了解

  9. call apply bind 区别

  10. 前端本地数据存储方式有哪些

  11. 数组方法 reduce 的使用场景

  12. 说说你对 css3 display:flex 弹性盒模型 的理解

  13. vue template 中 {{}} 为什么能够被执行

  14. threejs 加载大模型有没有什么优化方案

  15. 离职原因,住的地方离公司有多远,期望薪资

  16. 你有什么想需要了解的,这个岗位平时的工作内容


二面:


1.我看写过一个Express+Mongoose服务端接口的开源项目,说说你在写后端项目时遇到过的难点


2.介绍一下你写的threejs 3d模型可视化编辑器 这个项目


3.以你的观点说一下你对three.js的了解,以及three.js在前端开发中发挥的作用


4.现在的AI工具都很流行,你有没有使用过AI工具来提高你对开发效率


5.说说你认为AI工具对你工作最有帮助的地方是哪些


6.以你的观点谈谈你对AI的看法,以及AI未来发展的趋势


7.你能接受出差时间是多久


8.你是从去年离职的到今天这这几个月时间,你是去了其他公司只是没有写在简历上吗?


9.说说你的职业规划,离职原因,你的优点和缺点,平时的学习方式


公司G


一共两轮面试,也是最终拿到正式offer入职的公司


一面:



  1. 主要就是聊了一下简历上写的项目

  2. 项目的技术难点

  3. 项目从0-1搭建的过程

  4. 项目组件封装的过程

  5. vue2 和 vue3 区别

  6. vue响应式数据原理

  7. 对于typescript的熟练程度

  8. 会react吗? 有考虑学习react吗?

  9. 说一下你这个three.js3d模型可视化编辑器项目的一个实现思路,为什么会想写这样一个项目


二面:



  1. 说说了解的es6-es10的东西有哪些

  2. 说说你对微任务和宏任务的了解

  3. 什么是原型链

  4. 什么是闭包,闭包产生的方式有哪些

  5. vue3 生命周期变化

  6. vue3 响应式数据原理

  7. ref 和 reactive 你觉得在项目中使用那个更合适

  8. 前端跨越方式有哪些

  9. 经常用的搜索工具有哪些?

  10. 谷歌搜索在国内能使用吗?你一般用的翻墙工具是哪种?

  11. 用过ChatGPT工具吗? 有付费使用过吗?

  12. 你是如何看待面试造航母工作拧螺丝螺丝的?

  13. 谈谈你对加班的看法?

  14. 你不能接受的加班方式是什么?

  15. 为什么会选择自考本科?

  16. 你平时的学习方式是什么?

  17. 一般翻墙去外网都会干什么?,外网学习对你的帮助大吗?

  18. 上一家公司的离职原因是什么,期望薪资是多少, 说说你的职业规划

  19. 手里有几个offer?


hr电话:



  1. 大概说了一下面试结果通过了

  2. 然后就是介绍了一下公司的待遇和薪资情况?

  3. 问了一下上一家公司的离职原因以及上一家公司的规模情况?

  4. 手里有几个offer?

  5. 多久能入职?


因为后面没有别的面试了,再加上离职到在到找工作拿到offer已经有四个月时间没有上班了,最终选择了入职这家公司


image.png


入职第三天:我想跑路了!


入职后的第一天,先是装了一下本地电脑环境然后拉了一下项目代码熟悉一下,vue3,react,uniapp 项目都有


崩溃的开始:PC端是一个saas 系统由五个前端项目构成,用的是react umi 的微前端项目来搭建的,也是第一次去接触微前端这种技术栈,要命的是这些项目没有一个是写了readme文档的,项目如何启动以及node.js版本这些只能自己去package.json 文件去查看,在经过一番折腾后终于是把这几个项目给成功跑起来了,当天晚上回家也是专门了解了一下微前端


开始上强度: 入职的第二天被安排做了一个小需求,功能很简单就是改个小功能加一下字段,但是涉及的项目很多,pc端两个项目,小程序两个项目。在改完PC端之后,开始启动小程序项目不出所料又是一堆报错,最终在别的前端同事帮助下终于把小程序项目给启动成功了。


人和代码有一个能跑就行:入职的第三天也从别的同事那里了解到了,之前sass项目组被前端大规模裁员过,原因嘛懂得都懂? 能写出这样一堆屎山代码的人,能不被裁吗?


第一次知道 vue 还可以这样写


image.png


对于一个有代码强迫症的人来说,在以后的很长一段时间里要求优化和接触完全是一堆屎山一样代码,真的是很难接受的


入职一个月:赚钱嘛不寒掺


在有了想跑路的想法过后,也开始利用上班的空余时间又去投递简历了,不过现实就是在金三银四的招聘季,boss上面依旧是安静的可怕,在退一步想可能其他公司的情况也和这边差不多,于是最终还是选择接受了现实,毕竟赚钱嘛不寒掺


入职两个月:做完一个项目迭代过后,感觉好多了


在入职的前一个月里,基本上每天都要加班,原因也很简单:


1.全是屎山的项目想要做扩展新功能是非常困难的


2.整个项目的逻辑还是很多很复杂的只能边写项目边熟悉


3.因为裁了很多前端,新人还没招到,但是业务量没有减少只能加班消化


功能上线的晚上,加班到凌晨3点


image.png


在开发完一个项目迭代过后也对项目有了一些大概的了解,之后的一些开发工作也变得简单了许多


入职三个月:工作氛围还是很重要滴


在入职三个月后,前端组团队的成员也基本上是组建完成了,一共14人,saas项目组有四个前端,虽然业务量依然很多但是好在有更多的人一起分担了,每周的加班时间也渐渐变少了


在一次偶然间了解到我平时也喜欢打篮球后,我和公司后端组,产品组的同事之间也开始变得有话题了,因为大家也喜欢打球,后来还拉了一个篮球群周末有时间大家也会约出来一起打打球


image.png


image.png


当你有存在价值后一切的人情世故和人际关系都会变得简单起来


在这个世界上大多数时候除了你的父母等直系亲属和另一半,可能会对你无条件的付出


其余任何人对你尊重和示好,可能都会存在等价的利益交换吧


尤其是在技术研发的岗位,只有当你能够完全胜任这份工作时,并且能够体现出足够的价值时才能够有足够的话语权


入职三个月后的感受



  1. 公司待遇:虽然是一个集团下面的子公司 (200+人)但待遇只能说一般吧,除了工资是我期望的薪资范围,其他的福利待遇都只能是很一般(私企嘛,懂得都懂)

  2. 工作强度: 听到过很多从大厂来的新同事抱怨说这边的工作量会很大,对我来说其实都还ok,毕竟之前在极端的高压环境下工作过

  3. 工作氛围:从我的角度来讲的话,还是很不错的,相处起来也很轻松简单,大家也有很多共同话题,没有之前在小公司上班那么累


大环境低迷下,随时做好被裁掉的准备


从2020年毕业工作以来,最长的一段工作经历是1年4个月,有过三家公司的经历


裁员原因也很简单:创业小公司和人力外包,要么就是小公司经营问题公司直接垮掉,或者就是人力外包公司卸磨杀驴


除非你是在国企单位上班,否则需要随时做好被裁掉的准备


什么都不怕,就怕太安逸了


这句话出自《我的团长我的团》电视剧里面龙文章故意对几十个过江的日本人围而不歼时和虞啸卿的对话,龙文章想通过这几十个日本人将禅达搅得鸡犬不宁,来唤醒还在沉睡在自己温柔乡的我们,因为就在我们放松警惕时日本人就已经将枪口和大炮对准了我们。


或许大家会很不认同这句话吧,如果你的父母给你攒下了足够的资本完全可以把我刚才的话当做放屁,毕竟没有哪一个男生毕业之前的梦想是车子和房子,从事自己喜欢的工作不好吗? 但现实却是你喜欢工作的收入很难让你在这座城市里体面的生活


于我而言前端行业的热爱更多是因为能够给我带来不错的收入所以我选择了热爱它吧,所以保持终身学习��状态也是我需要去做的吧


前端已死?


前端彻底死掉肯定是不会的,在前后端分离模式下的软件开发前端肯定是必不可少的一个岗位,只不过就业环境恶劣下的情况里肯定会淘汰掉很多人,不过35岁之后我还是否能够从事前端行业真的是一个未知数


结语


选择或者躺平,只是两种不同的生活态度没有对与错,偶尔躺累了起来卷一下也是可以的,偶尔卷累了躺起了休息一下也是不错的。


在这个网络上到处是人均年收入百万以及各种高质量生活的时代,保持独立思考,如何让自己不被负面情绪所影响才是最重要的吧


作者:答案answer
来源:juejin.cn/post/7391065678546157577
收起阅读 »

有财务自由的思维,才能实现财务自由!

前两天在洋哥、竹子姐以及渡心总等大佬的带领下,第一次体验了穷爸爸富爸爸的作者研发的现金流游戏,收获颇丰! 游戏规则说明 心灵创富 现金流游戏分为三步: 一局游戏,时间两个小时;总结分享时刻;以及,最最重要的结合自己的生活,复盘自己关键时间点的选择,是否是符合财...
继续阅读 »

前两天在洋哥、竹子姐以及渡心总等大佬的带领下,第一次体验了穷爸爸富爸爸的作者研发的现金流游戏,收获颇丰!


游戏规则说明


心灵创富 现金流游戏分为三步:


一局游戏,时间两个小时;总结分享时刻;以及,最最重要的结合自己的生活,复盘自己关键时间点的选择,是否是符合财务自由的决策。


首先,说一下明面上的游戏规则:每个人都选择一张身份卡,这张身份卡决定了你的工资,还有每个月的现金流。你的身份可能是小学老师、飞机驾驶员、医生等等,他们月工资和现金流(每月结余)各不一样。


老鼠圈,所有玩家没实现财务自由之前都在老鼠圈。


游戏过程中,通过投掷骰子,可以有五种操作:



  1. 市场风云:变幻莫测的市场,之前不值钱的突然变得值钱,之前值钱的东西也会突然变得不值钱;还有金融政策可能会随时调整,借钱利率忽高忽低等。

  2. 小买卖:开小店挣小钱等。

  3. 大机会:买卖股票、房产等能带来大额现金流的操作。

  4. 意外支出:生孩子、买球拍、买游艇等。

  5. 领工资:领取一个月的现金流,比如:月工资:3300,月支出:2100,则每月现金流:3300-2100=1200。


整个游戏的目标分为两个阶段:第一个阶段,突破老鼠圈,实现财务自由;第二个阶段,实现梦想。


怎么实现财务自由?股票、房产等带来的非工作收入超过你每个月的支出,就算破圈了,实现了财务自由,游戏进入了下一个阶段。


第一次玩游戏,没有人完成第二阶段,就不说了。


二、游戏


带领银行家:竹子


玩家:海子、木川、天雨、Feli、YY、伍六七


身份:小学老师


月工资:3300 $


月支出:2190 $


月现金流:1110 $



一开始选择身份的时候,虽然想选一个工资高的,但是也没有那么强烈,只是不想选工程师了,毕竟现实中是程序员,游戏中想换个身份活一回。所以,也就比较随意选择了工资偏低的小学教师。


整场游戏,我的运气非常不好。本来月现金流就不高,结果第二轮就生了个娃,后面又陆续抽中了额外支出,让本就没钱的我雪上加霜。


唯一称得上的是机会的就是:可以以 5000 $ 购买 10 亩荒地。但是当时没有考虑到可以向银行带款,也没有考虑到可以向其他玩家借款,最终没有购买。


没有考虑到向外部借钱的一部分原因是第一次玩这个游戏,不知道(忘记了)这个规则,另一个原因也是自己平时生活中也是这样一个人,除非迫不得已不向他人借钱。


第一次玩这个游戏,本着要恪守:10% - 20% 的钱投资高风险的产品(如股票),50% 的钱投资低风险的产品(当前最低价的股票、高收益的房产等)。


所以,我也做了两笔投资: 1000 $ 让木川代持的基金, 500 $ 让海子代持的股票。这让我在运气不好的一生中有一定的概率能破圈,虽然最后这两笔投资没有兑现,但是这两笔投资本身,我认为是没有问题的。


另外,太守规则。银行家一开始说的规则是不让给其他人提供决策建议,否则罚款。后来才知道,是可以向其他人提供付费资讯服务的,这种是不受惩罚的。


前两轮 FYY 想向我咨询决策建议,我直接就拒绝了。但是一个是给他人提供建议,可以给其他人好感,可以链接其他人。另外一个,就算有罚款,咨询的人也可以给予相应的补偿。这样就可以相互链接,相互成全。也应该思考,不破坏规则的情况下的有哪些选择。


整场游戏中,印象最深刻的一笔交易是:5000 $ 购买 10 亩荒地


我最终是没有购买,当时第一是看手里的现金,不满足购买要求。


第二是觉得这是一个可以搏一搏的机会,但是手里的现金不满足给自己制定的 10% -20% 投资高风险产品的 rule。


所以,问了在场的玩家,是否有需要这个机会的?拍卖 1000 $。最终,只有海子出价 500 $。当时,我认为这个机会价值还是挺大的,海子本质上是一个愿意花钱投资的人,所以拒绝了。


之后思考,海子是一个愿意投资机会的人,但是他当时手里有几笔房子的带款,而且现金也不充足,所以没有购买这个机会。我只考虑了海子的性格,没有考虑他当时手里的资金,所以,错失了这笔交易。


游戏和自己现实生活中的关系


什么才算财务自由?现实中很多人说有多少多少百万,有说 500 W的,有说 1000 W的。但是这个游戏告诉我们:只要你的非工作收入超过了你的支出,你就实现了财务自由。跟你手里有多少现金是没有关系的。


唯一的目标就是,增加你的非工作收入,减少你的支出,让你的非工作收入超过你的支出。


这个游戏带给我的收获和启发


人这一生,有的人运气好,能碰到很多次大机会。有的人运气不好,可能一生也没什么机会。


不管如何,你需要在一开始就制定好你做决策的依据。这个依据就是你手里的现金流以及你能承受的风险。


你不应该拿手里的大部分现金去投资一个低收益率高风险的产品,但是也不应该守着一大笔资金不做任何投资。


这个决策依据能够让你在没机会的时候,不至于很快破产。也能让你在有机会的时候,能够快速收获第一桶金,实现财务自由。


对我现实的改变



  1. 正在整理自己的权益表和资产负债表,慢慢减少不必要的支出。

  2. 正在实践做自己的个人 IP,增加自己的非工作收入。

  3. 游戏中的小买卖、大机会,在现实中去寻找这样的信息。游戏中,大家都知道且能知道是小买卖还是大机会,但是现实中,你可能不知道什么是小买卖,什么是大机会。

  4. 在心里植入增加非工作收入,减少支出,实现财务自由这样的理念。


应该去践行的



  1. 与现实决策点结合

  2. 早日争取第一桶金

  3. 结果导向

  4. 自己反思,反思自己的不足

  5. 持续来,每次来会有不同的体验,牌面不同,选择不同

  6. 应该多做利他的事情,资源链接

  7. 玩家之间可以互相赋能

  8. 有资源的时候可以投资机会,购买机会

  9. 整理自己的资产负债表

  10. 多分享,清晰自己的认识

  11. 重复玩,玩到财务自由

  12. 映射现实中,改善自己的财务状态

  13. 运气不好,心态也要好,积极链接他人,才能保住底线的情况下,去创造更大的成功机会


作者:伍六七AI编程
来源:juejin.cn/post/7293477092259201059
收起阅读 »

回县城躺平,感觉我的人生过得好失败

从春节前到现在,一个半月没更新了,做啥都提不起劲来。 越来越感觉我的人生过的好失败。 去年我爸因为癌症去世了,家里的门头房用不到了,就想卖掉,找好了买家,价格谈了 140 万。 当时想买我们这个房子的人很多,那个买家怕我们卖给别人,就拿了 20 万定金,和我们...
继续阅读 »

从春节前到现在,一个半月没更新了,做啥都提不起劲来。


越来越感觉我的人生过的好失败。


去年我爸因为癌症去世了,家里的门头房用不到了,就想卖掉,找好了买家,价格谈了 140 万。


当时想买我们这个房子的人很多,那个买家怕我们卖给别人,就拿了 20 万定金,和我们签了一个买房合同。


没想到因为这个房子因为在我爸名下,涉及到继承,需要我奶奶放弃继承才可以过户。


我奶奶现在生活不能自理,由我大娘二大娘养着,然后他们提出条件来,要我们的宅基地,也就是村里的老房子。


我妈开始不同意,因为她想之后从那里出殡,和我爸合葬。


后来也同意了,在哪不能殡出去呢?


然后我这边准备好了材料之后,我堂姐跳了出来,一拍桌说,不行,老房子我们也要,另外你还要给我们 25 万。


她们说咨询了律师要是打官司的话,我们青岛的房子也要分,那个门头房也要分,另外我爸的银行流水也要查,起码得分她们 40 万。


我给讲价到了 20 万,但是我妈不同意,说是她和我爸辛苦攒下的家业凭什么白给他们。


我妈这边也找了律师,给出的意见就是拖着就行,一辈子不卖了。


这时候买房子的不干了,说是合同上写了,如果违约,要双倍返回定金,也就是赔她们 20 万。


当时我们以为就是个收到条就签了,没想到在这等着呢。


其实我们早就把定金返给她了,也说了我们家的情况,但她就是不行。


年前就一直威胁我们要告,刚过完年,马上又来了:



我妈问了下和谈的话怎么谈,她说起诉你赔我 25 万,和谈赔我 18 万。



两头挤我们,家里就要我们老房子 + 21 万,卖房子的就要我们 20 万违约金。


我们夹在中间,几度濒临崩溃。


我想了下,这件事早晚得解决,反正都是一家人,给家里人点钱也没啥。


然后我前几天去找我大爷二大爷,还有堂姐、堂哥坐在一起谈了,我说我同意这 21 万。


最终转了她们 18 万(老房子折合了 2 万块),然后又拿了 1 万律师费(他们请的律师让我拿律师费),还有同意给他们老房子。


但我提的要求是和我妈只能说是 10 万 + 老房子,不然我妈不会同意的。


就这样,我们顺利公证过了户。


公证放弃继承那天,我奶奶才刚知道这个事,她说她只要老房子,不要我爸的其他遗产。


但没办法,她不要不行,我大爷二大爷要啊。


这个房子卖了,到手 120 万。


然后还有青岛的房子,这个房子我买的时候是 70万首付 + 100 万带款,一共是 200 万下来的,最近我妈又花了 7 万装修。


因为不去青岛住,也打算卖了,中介说价格不到 80 万还是可以卖掉的。



这么一算,这边亏了 120 万,那边房子卖了剩下 120,相当于我爸就给我留下了 70 多万还不好卖的房子。


其实我爸这辈子攒了不少钱,差不多 300 万,都是省出来的,从小我跟着他就是一天吃一顿那种,从没感觉到家里是有钱的。


再就是他对我妈也不好,前几年的时候经常打骂,后来我妈离家出走了,但是他生病了还是会来照顾他。


我爸癌症住院那段时间,生活不能自理,都是我妈没日没夜的照顾他。


临走之前,我爸一只手抓着我的手,一只手抓着我妈的手,然后让我们好好相处,他一直觉得对不起我妈,口里一直喊着“从头再来、从头再来”。


我送我爸去火葬场的时候,送我骨灰盒爸入土的时候,我也一直在说,“爸,你别怕,我们从头再来”。


其实我爸葬礼上,我没有咋哭出来,可能当时没大反应过来。


但是之后好长一段时间,我在村里别人家坐着聊天,一谈起我爸,就再也忍不住了,哭的稀里哗啦的。


我有个干兄弟,在村里拜了干爹,因为疫情好多年也没走动了,但是我爸的棺材是他帮忙抬出去的。


而我大爷二大爷就在一边看着。


我今年过年给他家送了礼,我说,我妈说我爸是你们抬出去的,让我一辈子记得你们的好。


当时说到这里,没忍住,又哭的稀里哗啦的。


我想我爸这辈子,是攒了不少钱,但是不舍得吃不舍得喝的,还在房子上亏了半辈子的积蓄。


对老婆孩子不好,临走前才后悔想着从头再来。


我想我前五年是赚了不少钱,但因为工作,好多年没回家,和家人一年待在一起也就几天。


而且最后都赔在青岛的房子上了。


人这一辈子,到底图啥呢?


年后这几周我找了找工作,有几个不错的 offer,都是 base 40+ 那种。



但我又不那么想出去了。


我这一年没工作,其实和我妈在一块生活还是很踏实的。


而且家里房子卖了,青岛的房子也快了,这样我的存款差不多能到 300w。存定期的话每年银行利息 8w 左右,够我生活了。


就这样在家躺平一辈子是不是也不错。


王小波说,那一天我二十一岁,在我一生的黄金时代,我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云,后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消逝,最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。


韩寒说,平凡才是唯一的答案。


小的时候,我希望长大后的自己会光芒万丈。


长大以后,我希望自己有个好的工作打工到退休。


现在的我只想躺平。


我觉得我自己的人生很失败:


打工这些年,钱都赔在房子上了。


我比较社恐,永远达不到我妈对我的会来事、会察言观色的期望。


人家都在大城市结婚生子、买房定居了,而我又回到了小县城。


当年和我同时入职高德的朋友都升 p7 了,我现在啥也不是:



我是 94 年的,今年就 30 了,人生的各种机会和可能性越来越少。


后半辈子,我应该就是在小县城躺平,度过余生了。


但文章我还是想继续写,毕竟人这一生总要坚持点什么。


作者:zxg_神说要有光
来源:juejin.cn/post/7343503718183059471
收起阅读 »

苦撑多年,老爷子70多!这个软件快要没人维护了

0x01、 在粒子物理学的发展过程中,有这样一个计算软件,它一度被视为粒子物理学研究的基础工具之一。 它就是:FORM。 众所周知,高能物理学领域中涉及很多超长且复杂的方程和公式,这时候就需要有一个能满足特定需求的计算软件(或者程序)来完成对应的工作。 而F...
继续阅读 »


0x01、


在粒子物理学的发展过程中,有这样一个计算软件,它一度被视为粒子物理学研究的基础工具之一。


它就是:FORM



众所周知,高能物理学领域中涉及很多超长且复杂的方程和公式,这时候就需要有一个能满足特定需求的计算软件(或者程序)来完成对应的工作。


而FORM则是一个可以进行大规模符号运算的计算程序,可以计算伽马矩阵、并行计算、包括模式匹配等。



多年来FORM一直扮演着粒子物理学领域关键工具的角色,并支撑着领域的研究和发展,行业内甚至有很多软件包都依赖于它。


但是就是这样一个领域必备的软件工具,其维护人现在都已经70多岁了,而如今却快要落得没人维护的田地了。。


0x02、


FORM自1984年就开始开发,距今已经有好几十年的历史了。


FORM的开发者是来自于荷兰的粒子物理学家乔斯·维马塞伦(Jos Vermaseren),也是现在该程序的维护者,现如今也已经70多岁高龄了。



而作为一个源自上世纪80年代的程序,彼时计算机方开始普及,软件工具也才逐渐开始兴起。


FORM的前身是由荷兰物理学家马蒂努斯·维尔特曼(Martinus Veltman)所创建的一个名为Schoonschip的程序,但是受限于当时的存储和外设条件等一系列原因,使用起来并不方便。


于是Jos Vermaseren开始着手研究该如何做出一个更易于获取和使用的工具程序。


起初Jos Vermaseren使用的是FORTRAN语言来写的这个程序,但是后来在FORM 1.0版本正式发布以前,Jos Vermaseren又重新使用C语言把该工具给重写了一遍。


就这样,从最早的Apollo工作站到后来的奔腾PC,这个程序慢慢开始被推广使用并流行起来。



经过多年的发展,目前FORM支持的版本如下:



  • FORM:顺序版,可以在单个处理器上运行;

  • ParFORM:多处理器版本,它可以使用集群和系统,处理器有自己的内存;

  • TFORM:支持处理器共享内存系统的多线程版本,主要用于处理器数量有限的系统。


0x03、


聊回到FORM项目70多岁的维护人Jos Vermaseren老爷子,说实话还是非常佩服的。


进入Jos Vermaseren的GitHub主页(github.com/vermaseren)…



并在同期创建了他个人的首个GitHub仓库,也就是form。



截止到目前,这也是Jos Vermaseren在GitHub上的唯一一个维护的项目仓库。



不过比较遗憾的是,这个开源项目不管是访问量还是star、fork数,都十分惨淡。


0x04、


既然这个软件如此重要且无法完全被替代,那为什么现如今想找一些后继的维护人都不那么容易呢?


关于这个问题,Jos Vermaseren本人也曾说过:


“这么多年我一直都有看到,在计算工具上花费大量时间的科学家却无法得到一个物理学领域的终身职位。”


Jos Vermaseren表示自己还算是幸运的,拥有一个在荷兰国家亚原子物理研究所的终身职位,并且还有一个欣赏这个项目的老板,然而很多相关的研究者却不一定都能这样了。


所以这么看来,这也算是被一些现实的问题,所困扰到了。


投入大量精力却得不到对应的回报,而且还要求维护人员有跨学科的知识技能,不少相关领域的研究者也望而却步了。


而且在物理学术界,大家对于物理学本领域的成果产出和论文发表普遍比较看重,而程序开发的努力和关注度则往往被低估了。


可能这也某一程度上导致了像FORM这种软件工具想要找到持续的维护者都变得不那么容易了。


所以说到底,这也算是一个“坐冷板凳”的现实问题了。


文章的最后也附上和FORM相关的开源项目地址,分享给大家。



感兴趣的同学可以上去看一看,除此之外,大家有兴趣也可以研究一下对应的项目代码。



注:本文在GitHub开源仓库「编程之路」 github.com/rd2coding/R… 中已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理、面试考点、我的简历、几本硬核pdf笔记,以及程序员生活和感悟,欢迎star。



作者:CodeSheep
来源:juejin.cn/post/7394788843207376947
收起阅读 »

2024年中总结-月亮你不懂六便士到底有多重

时光磨灭了许多东西,如今掘金也不再搞年中总结活动了。 别说年中活动了,整体互联网已经“毕业”了一大批员工,互联网缩水,程序员是最大的边际递减成本,但这里也不想再继续说关于焦虑的了。 自己还是照常写写总结吧。 24年已经过去了一半,不止,7.22是大暑,转眼下一...
继续阅读 »

时光磨灭了许多东西,如今掘金也不再搞年中总结活动了。


别说年中活动了,整体互联网已经“毕业”了一大批员工,互联网缩水,程序员是最大的边际递减成本,但这里也不想再继续说关于焦虑的了。


自己还是照常写写总结吧。


24年已经过去了一半,不止,7.22是大暑,转眼下一个节气就又得是【立秋】了。


想到哪就写到哪吧,有时候很痴迷于这种随机性。


因为随机性,上半年先是出版了训练时长2年半的书《程序员成长手记》,没别的,只是有人找写书,按照流程坚持完成下来了。


因为随机性,后来4月的时候,又出了一本小册《AI BOTS 通关指南》,没别的,产品需要运营,运营需要声音,但大家早就知道了,AI Agent、或者说智能体,都在谈应用、何谈应用?估摸 GPT5 出来之前,所谓的这些 AIGC 都只玩具,无法深度参与生产。赚钱的都是教人赚钱的。


因为随机性,断断续续的更文,一方面工作、草、卷起来了,一方面生活耗时占比提升,一方面自己也没动力、懈怠了。


其实,无所谓生活吧,即使每天下午6点离开工位下班,到家也约近于7点,说是早上8.30上班,7点就要开始起床、做准备,有时候还要回想、梳理、做思想建设等等。一天12个小时围绕工作这件事(摸鱼时间也减少)、8小时围绕睡觉这件事,何谈生活呢?


但是生活确实又在持续发生,比如:2024上半年最大的变化,自己身份再转变,马上要为人父了。。


初为人父、这是一个过程。


从备孕、到验孕、到验血、到查胎心胎芽、到B超-查到积液、到多轮产检、到NT、到无创、到二维等等等等,每一个点都会分散出许多新的点,需要不断打破、建设认识。


然后,似乎又回到感觉有些焦虑了?在《何以为父》这本书上看到、这种心态或许是正常的。好的吧,总之无法作甩手掌柜、也不能。


想想,上半年,还有什么?


项目的工作更加熟练了,对其本质(解决方案、商务、PPT等)似乎有了更清晰的认识。期间也发生过一些插曲,也拿不准后面事态会去向何方,总之,好像也不是自己能定的,反复看《大明1566》桥段,“打工、晋升”是不是应该蛰伏?或者是不是自己这辈子连“田县丞”都见不到,那还想那么多干嘛?


还有什么?年初定的目标完成的并不好。


还有什么?离家多年、人在广东已经漂泊十年。理想=离乡?平民就必须拼命。


想起,最开始最开始写年中总结,引用《老人与海》,竟然现在更适用吧。


还有什么?


没有了,马上10.30了,洗洗睡了。


作者:掘金安东尼
来源:juejin.cn/post/7394279685969199139
收起阅读 »

这一年我优化了一个46万行的超级系统

背景我曾带领团队治理了一个超级工程,是我毕业以来治理的最庞大、最复杂的工程系统,涉及到开发的方方面面。下面我给大家列几个数字,大家感受一下:指标数据菜单数量250+代码行数46 万路由数量300+业务组件、util600+构建时间6min关联业务报表...
继续阅读 »

背景

我曾带领团队治理了一个超级工程,是我毕业以来治理的最庞大、最复杂的工程系统,涉及到开发的方方面面。下面我给大家列几个数字,大家感受一下:

指标数据
菜单数量250+
代码行数46 
路由数量300+
业务组件、util600+
构建时间6min
关联业务报表、CRM、订单、车辆、配置、财务...

image.png

这是上一任留给我的烫手山芋,而且从需求迭代频次来看,这个系统占据了这个业务部门50%的需求,也就是说,之前的伙计把几乎所有的业务功能都做进了一个系统中,像屎山一般堆积,构建一次的时间长达6-9min,作为一个合格的前端,简直怒火冲天。

问题

面对这样的超级应用,想要解决,必须先把问题整理出来,才好对症下药。

  • 构建时间过长,影响开发体验。
  • 系统单一,代码量庞大,未做拆分,对于后期维护难度很大,且存在增量上线风险(改一个字,也要整个系统打包上线)。
  • 代码业务组件太少,复用率低,需要整理业务代码,封装高效业务组件库。
  • 工具函数、请求Axios、目录规范、菜单权限、公共能力等未做统一封装和梳理。
  • 存在大量重复的代码、大量重复的组件(有很多都是拷贝了一份,改个名字)。
  • 页面加载极其缓慢,无论是首屏还是菜单加载,很明显存在严重的性能问题。
  • 工程中随意引入各种插件,比如:big.js、xlsx.js、echarts、velocity-animate、lodash、file-saver等。
  • 代码中存在很多mixin写法,导致调试难度很大。

以上是针对46万行的应用做出的问题分析报告,找出这些问题以后,我们就能开启优化之路。

目标

image.png

我觉得不管哪一行,进入这个社会最重要的能力是生存能力,面对生存最重要的技能是解决问题的能力。想要把问题解决好,就要有章法可循,比如:找到问题要害、制定目标、提供解决方案、复盘总结。

方案

  • 250+菜单归类整理、废弃菜单下线
  • 搭建业务组件库
  • 搭建工具函数库
  • 基础框架优化
  • 基于microApp做微服务拆分、引入webpack5的module-federation机制
  • 引入rocket-render插件,对局部页面、基础功能做重构,后续逐步替换。
  • 性能优化

菜单整理

300 多个菜单,业务和产研人员可能已经更换过好几次,通过跟产品的沟通,可以得知,受业务调整影响,很多功能已经废弃,系统未及时下线导致日积月累。然而由于对业务不熟,产研很难判断哪些菜单需要下线,我们也不能随意凭感觉下线某一个菜单或功能,必须采取谨慎的态度,有法可依,因此我们采用如下措施:

菜单汇总

产品牵头,汇总系统所有菜单,按环境进行逐个确认。前端会根据确认结果依次删除路由配置、菜单、关联组件、调用 API 等相关代码。

  1. 同业务方确认后,直接下线。
  2. 线上访问异常菜单,进行标注。
  3. 数据异常菜单,进行标注。
  4. 对于无法确认的,通过监控查看页面访问量,通过1-3个月的观察,最终决定是否下线。

通过1个月的菜单整理,下线了大概50+的菜单、删除了近100+页面,以及不计其数的业务组件代码,整体代码量减少近8万,同时,我们将250多个菜单进行归类,拆分了6个大类,供后续微服务做准备。

框架优化

一个稳定的系统,必然有一个稳定的框架做支撑。我们在梳理的过程中发现系统极其脆弱,无 ESLint 语法检查规范、没有 Prettier 格式化、Hard Code、随处可见的自定义组件、到处报错的控制台...

  • 引入 ESLint 做语法检查.
  • 引入 Pettier 做代码格式化。
  • 引入 Husky lint-staged 规范代码提交。
  • 对于硬编码部分跟产品沟通做成可视化配置或者json配置形式。
  • Axios的二次封装:常规请求、全局Loading、文件下载、登录失效拦截、报错拦截提示、状态码统一适配。
  • 插件删减:big.js 剔除改为手动计算、lodash 替换为 lodash-es、删除动画插件、文件导出统一由后端返回二进制,前端通过Axios封装下载函数进行文件下载等等。
  • 配置文件封装:多环境配置、常量定义。
  • 菜单权限封装。
  • 按钮权限指令封装:v-has="'create'"
  • router路由提取优化,针对路由守卫处理一些特殊跳转问题。
  • 接入前端监控平台,对于资源请求失败、接口请求超时、接口请求异常等做异常监控。
  1. 对于eslintprettier大家自行参考其他文章,此处不再赘述。
  2. 对于Axios二次封装,大家可能会比较奇怪,为什么要封装文件下载?因为文件导出本身也是一个请求,只是跟常规get/post有差异,所以我们为了方便调用,把它放在一个文件里面定义,比如:
export default {
get(url, params = {}, options = { showLoading: true, showError: true }) {
return instance.get(url, { params, ...options })
},
post(url, params = {}, options = { showLoading: true, showError: true }) {
return instance.post(url, params, options)
},
download(url, data, fileName = 'fileName.xlsx') {
instance({
url,
data,
method: 'post',
responseType: 'blob'
}).then(response => {
const blob = new Blob([response.data], {
type: response.data.type
})
const name = (response.headers['file-name'] as string) || fileName
const link = document.createElement('a')
link.download = decodeURIComponent(name)
link.href = URL.createObjectURL(blob)
document.body.append(link)
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(link.href)
})
}
}

我们在api.js中调用的时候,就会变的很简单,如:api.get('/user/list')api.download('/export',{ id: 123 })。当然可能每个人有自己的开发习惯,这些都是我个人的经验,也不一定适合大家。对于上面的参数有一个options变量,用来做参数扩展的,比如展示loadingerror,为了做全局Loading和全局错误提示用的。

  1. 如果你担心页面并发请求,导致重复loading问题,可以通过计数的方式来控制,避免多次重复Loading
  2. 插件删除部分大家可能有争议,这个纯属于个人行为,因为我们不是金融行业,不需要高精度,如果出现计算我们直接四舍五入即可,而lodash-es主要为了做tree-shaking,还有很多插件根据自身情况考虑要不要引入。
  3. 指令封装,对于按钮权限非常管用,举个例子:

封装指令

import { getPageButtons } from '@hll/css-oms-utils'
// 权限指令
Vue.directive('has', {
inserted: (el, binding) => {
let pageButtons = getPageButtons().map;
if (!pageButtons[binding.value]) {
el.parentNode && el.parentNode.removeChild(el)
}
}
})

权限判断

// 1. 通过v-if判断
<el-button type="primary" v-if="pageButtons.create">创建el-button>

// 2. 通过v-has指令判断
<el-button type="primary" v-has="'create'">创建el-button>

getPageButtons 其实是为了兼容历史代码而封装的函数。

整个系统权限极其混乱,代码替换,耗时近 2 周,覆盖近 500 个文件才完成。

  1. 状态码适配

这个我觉得有必要提一下,我相信很多前端可能都遇到这个问题,一个系统对应n个后台服务,不同的后台服务有不同的格式,比如:A系统返回code=0,B系统返回result=0,C系统返回res=0,那前端就要做不同的适配,其实也有不同的方法可以做:

  • 让后端接入网关,统一在网关做适配。
  • 前端在拦截器中开发adapter函数,针对响应码做适配。
  • 针对分页、返回码、错误信息等都可以在适配函数里面做几种适配,或者提供单一函数在不同的页面单独调用,类似于requestto模块。

业务组件库建设

这一部分工作非常重要,不管你在哪个公司,做任何行业,我都建议封装业务组件库,当然封装有三种形式:

  1. 基于公司自建的npm平台开发业务组件库,通过npm方式引入。
  2. 对于小体量项目,直接把业务组件库放在components中进行维护,但是无法跨项目使用。
  3. 基于webpack5module federation能力开发公共组件,跨项目提供服务。

MF文档参考:http://www.webpackjs.com/concepts/mo… 我觉得在某些场景下,这个能力非常好用,它不需要像npm一样,发布以后还需要给项目做升级,只要你改了组件源码,发布以后,其他引用的项目就会立即生效。想要快速了解这个能力,我建议大家先看一下插件文档,然后了解两个概念exposesremotes,如果还是看不懂,就去找个掘进入门文章再结合本地实践一次基本就算入门了。

我是基于上面三种方式来搭建系统的业务组件库,对于通用部分全部提取封装,基于rollupvite搭建一套npm包,最终发布到公司私有npm平台。对于一些频繁改动,链路较长部分通过module federation进行封装和暴露。

梳理业务后,其实封装了很多业务组件,上面只是给大家提供了思路,没有一一列举具体组件,下面给大家简单列一个大纲图:

image.png

业务组件库建设对于这种大体量的超级系统收益非常大,而且是长期可持续的。

微服务搭建

前面第一部分梳理完菜单以后,其实已经将250+的菜单进行了归类,归类的目的其实就是为了服务拆分。拆分的好处非常明显:

  • 服务解耦,便于维护。
  • 局部需求可单独上线,不需要整包上传,减小线上风险。
  • 缩小每个服务模块的构建时间,提升开发体验。

本次基于pnpm + microApp + module federation来实现的微服务拆分,为什么?

  • 微服务拆分以后,创建了 7 个仓库,非常不利于代码维护。pnpm天然具备monorepo能力,可以把多个仓库合并为一个仓库,而且可以继续按7个项目的开发构建方式去工作。
  • 微服务使用的是京东的microApp框架,集成非常简单,上手成本很低,文档友好,我觉得比阿里的乾坤简单太多了(个人主观看法)。
  • 对于难于抽取的组件,直接通过module federation对外暴露组件服务。

上面在搭建业务组件库的时候,其实遇到了一个非常棘手的问题,有些组件跨了很多项目,链路很长,在抽取的过程中难度非常大,大家看一个图:

image.png

服务之间耦合太严重,从而导致组件抽取难度很大,那如何解决? 答案就是module federation,抽取不了,就不抽取了,直接通过exposes对外暴露组件服务,在其它子服务中调用即可。

下面给大家举一个接入microApp的例子:

基座服务(主应用)


import microApp from '@micro-zoe/micro-app';

microApp.start()

添加组件容器(主应用)

<template>
<micro-app name="vms" :url="url" baseroute="/" @datachange='handleDataChange'>micro-app>
template>

<script>
export default {
name: 'ChildApp',
data() {
return {
activeMenu: '',
url: 'http://xxxx',
};
},
methods:{
handleDataChange({ detail: { data } }) {
// todo
},
}
};
script>

分配菜单(主应用)

{
path: '/child',
name: 'child',
component: () => import('./../layout/microLayout.vue'),
meta: {
appName: 'vms',
title: '子服务A'
}
}

就这样,一个主服务就搭建好了,等子服务上线以后,点击/child菜单,就能打开对应的子服务了。 当然因为我们是一个超级应用,所以我们在做的过程中其实遇到了很多问题,比如:跨域问题、变量问题、包共享问题、本地开发调试问题、远程加载问题等等,不过大家可以参考官方文档,都是可以解决的。

Rocket-render接入

这是我个人开源的一套基于Vue2的渲染引擎,通过json定义就可以快速搭建各种简单或复杂的表单、表格场景,跟formly这一类非常相似。

给大家举一个简单的例子:

  1. 安装插件
yarn add rocket-render -S
  1. 组件注册
// 导入包
import RocketRender from 'rocket-render';
// 导入样式
import 'rocket-render/lib/rocket-render.css';
// 默认安装
Vue.use(RocketRender);
// 或者使用自定义属性,以下的值都是系统默认值,如果你的业务不同,可以配置下面的全局变量进行修改。
Vue.use(RocketRender, {
size: 'small',
empty: '-',
inline: 'flex',
toolbar: true,
align: 'center',
stripe: true,
border: true,
pager: true,
pageSize: 20,
emptyText: '暂无数据',
});

插件支持自定义属性,建议默认即可,我们已经给大家调好,如果确实想改,就通过自定义属性的方式进行修改。

  1. 页面应用

search-form 自带背景色和内填充,如果你有特殊需要,可以添加 class 进行覆盖,另外建议给 model 添加 sync 修饰符。

<template>
<search-form
:json="form"
:model.sync="queryForm"
@handleQuery="getTableList"
/>

template>
<script>
export default {
data() {
return {
queryForm: {},
form: [
{
type: 'text',
model: 'user_name',
label: '用户',
placeholder: '请输入用户名称',
},
],
};
},
};
script>

我们针对需要自定义部分提供了slot插槽,所以不用担心用了以后,对于复杂需求支持不了,导致返工的现象,完全不存在,除了json以外,我们还内置了非常多的开发技巧,保证你爱不释手,继续看几个例子:

  1. 日期范围组件,通过export直接暴露两个字段。
{
type: 'daterange',
model: 'login_time',
label: '日期范围',
// 对于日期范围控件来说,一般接口需要拆分为两个字段,通过export可以很方便的实现字段拆分
export: ['startTime', 'endTime'],
// 日期转换为时间戳单位
valueFormat: 'timestamp', // 支持:yyyy-MM-dd HH:mm:ss
defaultTime: ['00:00:00', '23:59:59'], //可以设置默认时间,有时候非常有用。后端查询的时候,必须从0点开始才能查到数据。
}

前端是一个组件对应一个字段,但是接口往往需要让你传开始和结束日期,通过export可以直接拆分,太好用了。

  1. 下拉组件支持一步请求
{
type: 'select',
model: 'userStatus',
label: '用户状态',
multiple: true, // 支持多选
filterable: true, //支持输入过滤
clearable: true,
// 如果下拉框的值是动态的,可以使用fetchOptions获取,必须返回promise
fetchOptions: async () => {
return [
{ name: '全部', id: 0 },
{ name: '已注销', id: 1 },
{ name: '老用户', id: 2 },
{ name: '新用户', id: 3 },
];
},
// 字段映射,用来处理接口返回字段,避免前端去循环处理一次。
field: {
label: 'name',
value: 'id',
},
options: [],
// 如果想要修改其它表单值,可以通过change事件来处理
change: this.getSelectList,
}

通过fetchOptions可以直接在里面调用接口来返回下拉的值。如果是静态的,直接定义options即可。 如果接口返回的类别字段不是label和value结构,可以通过field来做映射。我觉得用的太爽了。

还有很多,我就不举例子了,大家去看文档就好了,文档写的非常清楚。

性能优化

前面几部分做完以后,我们的代码总量基本已经降到了 30 万行左右了,而且整个构建时长从9min降到了 30s ,有了业务组件库的加持,简直不要太爽,不过你看到的这些,看起来容易,其实我们花费了近1年的时间才完成。 剩下就是提升系统性能了:

  1. 资源全部上cdn,不仅上cdn,还要再阿里云针对图片开启webp(需要做兼容处理),cdn记得添加Cache-Control缓存。
  2. 服务器全部支持gzip压缩。
  3. 添加external配置,我在npm开发了一个vite-plugin-external-new插件,可以帮你解决。
  • 这个大家一定要做,因为可以有效降低vender体积,你通过LightHouse做性能分析,就能知道原因,对于体积较大的js会给你提示的。
  • 通过external,我们可以直接让vuevue-routervuexelement-ui等等全部通过defer加载。
  1. 建议在根html
    中加一个Loading标签
<div id="app">
<div class="loading">加载中...div>
div>

这样做的好处是,如果vue.js还没有加载完成之前,可以让页面先loading,等new Vue({ el: '#app' })执行以后,才会覆盖#app里面的 内容,这样可以提升FCP指标。 5. 对于比较大的插件,建议按需

export const loadScript = (src: string) => {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.defer = true;
script.onload = resolve;
script.onerror = reject;
script.src = src;
document.head.append(script);
});
};

某一个页面如果使用较大的插件,比如:xlsx、html2Canvas等,可以单独在某一个页面内做按需加载。

  1. 有些页面也可以针对vue组件或者大图片做按需加载。
  2. 其它性能优化,我觉得可做可不做,针对LightHouse分析报告针对性下手即可,可能很多文章将性能优化会非常细致,比如chunk分包等等,我倒觉得不是很重要。 只要把上面的做完,理论上前端的性能已经会有巨大的提升了。

结果指标

指标优化前优化后
构建时长6-9min30-45s
代码行数46万30 万
服务1个7个
业务组件库乱七八糟基于rollup开发构建
基础框架乱七八糟高逼格
性能评分30分92分
团队成员9个4个

以上就是我面对一个 46 万行代码的超级系统,耗时大概一年的时间所做的一些成果,很多技术细节也只是泛泛而谈,但是我希望给大家提供的是工作方法、解决思路等偏软实力方面,技术功底和技术视野还是要靠自己一步一个脚印。

这一年我过的很充实,面对突如其来的问题,我心情很复杂,这一年,我感觉也老了很多。最后,感谢你耐心的倾听,我是河畔一角,一个普通的前端工程师。


作者:河畔一角
来源:juejin.cn/post/7394095950383710247

收起阅读 »

在自己没有价值前,就不要谈什么人情世故了!

Hello,大家好,我是 Sunday。 昨天有位同学跟我吐槽,大致的意思是:“感觉自己不会搞 人情世故,导致在职场中很吃亏。领导也不罩着自己!” 在我的印象中,好像很多程序员都是 “不懂人情世故的典型”,至少很多程序员都认为自己是 “不懂人情世故的”。 但是...
继续阅读 »

Hello,大家好,我是 Sunday。


昨天有位同学跟我吐槽,大致的意思是:“感觉自己不会搞 人情世故,导致在职场中很吃亏。领导也不罩着自己!”


在我的印象中,好像很多程序员都是 “不懂人情世故的典型”,至少很多程序员都认为自己是 “不懂人情世故的”。


但是,人情世故是什么?它真的有用吗?你跟领导关系好,他就会罩着你,帮你背锅吗?


恐怕是:想多了!!


一个真实的故事


给大家讲一个之前我经历过的真实故事,里面涉及到两个人物,我们用:领导员工A 代替。




员工A是一个很懂 “人情世故” 的人,主要体现在两个方面:



  1. 酒桌文化:不像我这种压根就不能喝酒的人。员工A的酒量很好,并且各种喝酒的说法了熟于心(可以把领导说的很舒服的那种)

  2. 开会文化:各种反应都在领导的 “兴奋点” 上。我不知道怎么进行形容,类似于罗老师的这张图片,大家自己体会



其他方面的事情(私下的吃饭、逢年过节送礼),这些我就不清楚了,所以这里就不乱说了。


在我的眼里看来,这应该就是 熟通人情世故 的了。不知道,大家认为是不是。


不过,结果呢?


当公司决定裁员时,员工A 是 最早一批 出现在裁员名单中的。


领导会帮他争取留下来的机会吗?并不会




当你只能为对方带来 “情绪价值” 时,对方并不会把你当成心腹,更多的只是类似“马屁精”的存在。而这样的情绪价值,并没有太大的意义。更不要指望 领导会为了你做一些影响他自己利益,或者为他自己带来风险的事情了。


在自己没有价值前,就不要谈什么人情世故了!


国人在很多时候都会探讨 “人情世故” 的重要性。因为我生在 山东,对此更是感触颇深。(山东是受 儒家思想 熏陶最为严重的地方)。甚至,在之前,我也一度认为 “人情世故” 是非常重要的一件事情。


但是,当我工作之后进入企业以来。我越来越发现,在企业之中,所谓的 “人情世故” 并没有太大的意义。


人都是非常现实的,别人对你的看法,完全取决于你能为对方带来什么价值。



而这个价值通常需要体现在 金钱上 或者 事业上



当你无法在这两个方面为对方提供价值时,那么你做的所谓的 “人情世故” 也会被对方认为是“马屁精”的嫌疑。


所以,与其把精力放到所谓的“人情世故”中,甚至为此而感到苦恼(就像开头所提到的同学一样),是 大可不必 的!


在你无法为对方带来价值之前,先努力提升自己的的能力,当你可以和对方处于一个平等的位置进行交流时,再去谈所谓的人情世故,也不迟!


作者:程序员Sunday
来源:juejin.cn/post/7393713240995676175
收起阅读 »

去寺庙做义工,有益身心健康

《乔布斯传》中写到:乔布斯把对事物专注的能力和对简洁的热爱归功于他的禅修。他说:“禅修磨炼了他对直觉的欣赏能力,教他如何过滤掉任何能分散时间和精力的其它不必要的事情,在他的身上培养出了专注基于至简主义的审美观。” 如何在当今物欲横流的浮躁社会里不沦陷其中?如何...
继续阅读 »

《乔布斯传》中写到:乔布斯把对事物专注的能力和对简洁的热爱归功于他的禅修。他说:“禅修磨炼了他对直觉的欣赏能力,教他如何过滤掉任何能分散时间和精力的其它不必要的事情,在他的身上培养出了专注基于至简主义的审美观。”


如何在当今物欲横流的浮躁社会里不沦陷其中?如何在每天奔波忙碌之后却不内心疲惫、焦虑?如何在巨大的工作与生活压力下保持一颗平和的心?如何在经历感情、友情和亲情的起起落落后看破放下?如何改变透支健康和生命的人生模式?


程序员无疑是一个高压的职业,尤其是在头部公司工作的程序员们,工作压力更是大。并且在互联网行业,禅修并不是一件新鲜事。我们不一定要正儿八经地参加禅修活动,只是去寺庙走一走,呼吸一下新鲜空气,给寺庙干点活,对身心健康的帮助也会很大。


我与寺庙


我最早接触寺庙是在2011年上军校的时候,我的一个老师,作为大校,经常在课上分享他周末在南京附近寺庙的奇闻轶事,也会分享他自己的一些人生体验和感悟,勾起了我对寺庙生活的向往。


2013年,作为现役军人,我跑到了江西庐山的东林寺做了一个礼拜的义工,在那里,每天早上四点起床早上寺庙早课,负责三餐的行堂,也作为机动义工,干一些杂活,比如卸菜、组装床等,晚上有时也可以听寺庙的传统文化课。


2013年底,我申请退出现役,于是14年春就可以休假了,根据流程不定期去各部门办理手续即可,期间一个周末,我弟带我去凤凰岭玩,偶遇一个皈依法会,为了能看到传说中的北大数学天才,我填了一个义工表,参加了皈依仪式。


因为没有考虑政府安排的工作,所以打算考个研,期间不时会去凤凰岭的寺庙参加活动。考完研后,到18年春季,周末节假日,基本都会去这个寺庙做义工,累计得有200天以上。


期间,作为骨干义工,参与了该寺庙组织的第二至第四届的IT禅修营,负责行堂、住宿和辅导员等相关的工作。


很多人都听过这样一件往事:2010年,张小龙(微信之父)偶然入住一个寺院,当时正是微信研发的关键时刻,因为几个技术难题,张小龙连续几天彻夜难眠,终于一气之下把资料撕得粉碎。


没想到负责打扫卫生的僧人看到后,竟然帮他把资料重新粘贴了起来,还顺手写下了几条建议。张小龙非常惊讶,打听过后才知道这位扫地僧出家前曾混迹IT界,是个著名的极客。


经扫地僧点化,张小龙回到广州苦攻一年后,微信终于大成。这件事传的很广也很玄乎,可信度不会太高,不过故事中张小龙入住的寺院,就是我常去的寺庙。


至于在故事中懂得IT的扫地僧,在这里遇到其实不是什么奇怪的事,你还有可能遇到第47届国际数学奥赛金牌得主贤宇法师,他来自北大数学系;或者是禅兴法师,他是清华大学流体力学博士;又或者贤启法师,他是清华大学核能和热能物理博士。


“扫地只不过是我的表面工作,我真正的职业是一位研究僧。” 《少林足球》这句台词的背后,隐藏着关于这个寺庙“高知僧团”的一个段子。


因为各种不可描述的原因,18年9月之后,我就很少去这个寺庙了,但我知道我依然很向往寺庙的生活。于是22年春,我下定决心离开北京去深圳,其中就有考虑到深圳后,可以去弘法寺或弘源寺做义工。


去了一次弘法寺,感觉那边人太多,后面去了一次弘源寺后,感觉这里比较适合我,人少很安静,不堵车的话,开车只需20分钟到家。


目前,只要我有时间,我都会去弘源寺干一天临时义工,或者住上几天。


何为禅?


禅,是心智的高度成熟状态。直至印度词汇传入,汉语音译为“禅那”,后世简称为“禅”,汉译意思有“静虑”、“思维修”等。


禅修的方法就是禅法,禅法是心法,并不固着于某种具体形式,也不限于宗教派别。从泛义来说,任何一种方法,如果能够让你的心灵成熟,了解生命的本质,让心获得更高层次的证悟,并从而获得生命究竟意义的了悟。这样的方法就是禅修!


从狭义来说,在绵延传承数千年的漫长时空里,形成各种系统的修行方法,存在于各种教派中。现存主要有传承并盛行于南传佛教国家的原始佛教禅法与传承并盛行于中国汉传佛教的祖师禅。


如来禅是佛陀的原始教法,注重基础练习,强调修行止观。祖师禅是中国禅宗祖师的教法,强调悟性、觉性,推崇顿悟,以参话头为代表,以开悟、明心见性为目的。


我们普遍缺乏自我觉察,甚至误解了包括自由在内的生命状态真义。禅修中,会进入深刻自我觉察中,有机会与自己整合,从而开启真我。


近年来,禅修在西方非常流行,像美国的学校、医疗机构和高科技公司都广泛地在进行打坐、禅修。美国有些科学家曾做过一个实验,实验对象是长期禅修的修行人。在实验室中,实验者一边用脑电波图测量脑波的变化,一边用功能性核磁共振测量脑部活动的位置。


最后得出结论:通过禅修,不但能够短期改变脑部的活动,而且非常有可能促成脑部永久的变化。这就是说:通过禅定,可以有效断除人的焦虑、哀伤等很多负面情绪,创造出心灵的幸福感,甚至可以重塑大脑结构。


禅修能够修复心智、疗愈抑郁、提升智慧,让我们重获身心的全面健康!禅修让人的内心变得安静。在禅修时,人能放松下来,专注于呼吸,使内心归于平静,身体和心灵才有了真正的对话与接触。


“禅修是未来科技世界中的生存必需品”时代杂志曾在封面报道中这样写道。在硅谷,禅修被认为是新的咖啡因,一种能释放能量与创造力的全新“燃料”。


禅修也帮助过谷歌、Facebook、Twitter高管们走出困惑,国内比较知名则有搜狐的张朝阳和阿里的马云,还有微信之父张小龙的传说。


对于他们来说,商海的起伏伴随着心海的沉浮,庞大的财富、名声与地位带来的更多的不是快乐,但是禅修,却在一定程度上给他们指点迷津,带领他们脱离现代社会的痛苦、让内心更加平静!


乔布斯的禅修故事


乔布斯和禅修,一直有着很深的渊源。乔布斯是当世最伟大的企业家之一,同时也是一名虔诚的禅宗教徒。他少有慧根,17岁那年,他远赴印度寻找圣人寻求精神启蒙,18岁那年,他开始追随日本禅师乙川弘文学习曹洞宗的禅法。


年轻的时候,乔布斯去印度,在印度体验,呆了七个月。乔布斯在印度干了些什么,我们不得而知。不过据我推测,也就是四处逛一逛,看一看,可能会去一些寺庙,拜访一些僧人。


我从来不认为,他遇到了什么高人,或者在印度的小村庄一待,精神就受到了莫大的洗礼。变化永远都是从内在发生的,外在的不过是缘分,是过客,负责提供一个合适的环境,或者提供一些必要的刺激。


但我们知道,从此以后,乔布斯的人生,就开始变得不一样了。乔布斯的人生追求是“改变世界”,当年他劝说百事可乐总裁,来担任苹果CEO的时候所说的话:“你是愿意一辈子卖糖水,还是跟我一起改变这个世界?”激励了无数心怀梦想的朋友。


早在1973年乔布斯已经对禅有较深的领悟了。他这样说:“我对那些超越物质的形而上的学说极感兴趣,也开始注意到比知觉及意识更高的层次——直觉和顿悟。”


他还说:“因为时间有限,不要带着面具为别人而活,不要让别人的意见左右自己内心的想法,最重要的是要勇敢地忠于自己内心的直觉。”


乔布斯说:“你不能预先把点点滴滴串在一起;唯有未来回顾时,你才会明白那些点点滴滴是如何串在一起的。所以你得相信,你现在所体会的东西,将来多少会连接在一块。你得信任某个东西,直觉也好,命运也好,生命也好,或者业力。这种作法从来没让我失望,也让我的人生整个不同起来。”


他大学时学的书法,被他用来设计能够印刷出漂亮字体的计算机,尽管他在大学选修书法课时,完全不知道学这玩意能有什么用。他被自己创立的苹果公司开除,于是转行去做动画,结果在做动画的时候,遇到了自己未来的妻子。


人呐实在不知道,自己可不可以预料。你说我一个被自己创立的公司开除的失业狗,怎么就在第二份工作里遇到了一生的挚爱呢?若干年后,他回顾起自己的人生,他把这些点点滴滴串了起来,他发现,他所经历过的每一件事,都有着特殊的意义。


所以,无论面对怎样的困境,我们都不必悲观绝望,因为在剧本结束之前,你永远不知道,自己现在面对的这件事,到底是坏事还是好事。


所谓创新就是无中生有,包括思想、产品、艺术等,重大的创新我们称为颠覆。通过那则著名的广告《think different》他告诉世人:“因为只有那些疯狂到以為自己能够改变世界的人,才能真正地改变世界。”乔布斯确实改变了世界,而且不是一次,至少五次颠覆了这个世界:



  • 通过苹果电脑Apple-I,开启了个人电脑时代;

  • 通过皮克斯电脑动画公司,颠覆了整个动漫产业;

  • 通过iPod,颠覆了整个音乐产业;

  • 通过iPhone,颠覆了整个通讯产业;

  • 通过iPad,重新定义并颠覆了平板PC行业。


程序员与禅修


编程是一门需要高度专注和创造力的艺术,它要求程序员们在面对复杂问题和压力时,能够保持内心的安宁和平静。在这个快节奏、竞争激烈的行业中,如何修炼内心的禅意境界,成为程序员们更好地发挥潜力的关键。


在编程的世界里,专注是至关重要的品质。通过培养内在专注力,程序员能够集中精力去解决问题,避免被外界的干扰所困扰。以下是几种培养内在专注的方法:



  • 冥想和呼吸练习:  通过冥想和深呼吸来调整身心状态,让自己平静下来。坚持每天进行一段时间的冥想练习,可以提高专注力和注意力的稳定性。

  • 时间管理:  制定合理的工作计划和时间表,将任务分解为小的可管理的部分,避免心理上的压力。通过专注于每个小任务,逐步完成整个项目。

  • 限制干扰:  将手机静音、关闭社交媒体和聊天工具等干扰源,创造一个安静的工作环境。使用专注工作法(如番茄钟),集中精力在一项任务上,直到完成。


编程过程中会遇到各种问题和挑战,有时甚至会感到沮丧和失望。然而,保持平和的心态是非常重要的,它可以帮助程序员更好地应对压力和困难。以下是一些培养平和心态的技巧:



  • 接受不完美性:  程序永远不会是完美的,因为它们总是在不断发展和改进中。接受这一事实,并学会从错误中汲取教训。不要过于苛求自己,给自己一些宽容和理解。

  • 积极思考:  关注积极的方面,让自己的思维更加积极向上。遇到问题时,寻找解决方案而非抱怨。积极的心态能够帮助你更好地应对挑战和困难。

  • 放松和休息:  给自己合理的休息时间,让大脑得到充分的放松和恢复。休息和娱乐能够帮助你调整心态,保持平和的状态。


编程往往是一个团队合作的过程,与他人合作的能力对于一个程序员来说至关重要。以下是一些建立团队合作意识和促进内心安宁的方法:



  • 沟通与分享:  与团队成员保持良好的沟通,分享想法和问题。倾听他人的观点和建议,尊重不同的意见。积极参与和贡献团队,建立合作关系。

  • 友善和尊重:  培养友好、尊重和包容的态度。尊重他人的工作和努力,给予鼓励和支持。与团队成员建立良好的关系,创造和谐的工作环境。

  • 共享成功:  当团队取得成功时,与他人一起分享喜悦和成就感。相信团队的力量,相信集体的智慧和努力。


修炼内心安宁需要时间和长期的自我管理。通过培养专注力、平和心态、创造力和团队合作意识,程序员们可以在面对复杂的编程任务和挑战时保持内心的安宁和平静。


禅修有许多不同的境界,其中最典型的可能包括:



  • 懵懂:刚开始禅修时,可能会觉得茫然和困惑,不知该如何开始。

  • 困扰:在进行深度内省和冥想时,可能会遇到很多烦恼和难题,需耐心思考和解决。

  • 安和:通过不断地练习和开放自己的心灵,可能会进入一种更加平和和沉静的状态。

  • 祥和:当一些心理障碍得到解决,你会感受到一种更深层的平静和和谐。

  • 转化:通过不断的冥想与内省,你可以向内看到自己的内心,获得对自己和世界的新的认识和多样的观察角度。

  • 整体意识:通过冥想,您将能够超越个人的视野和言语本身,深入探究宇宙的内心,领悟更加深入和广泛的境界和意识。


程序员写代码的境界:



  • 懵懂:刚熟悉编程语言,不知做什么。

  • 困扰:可以实现需求,但仍然会被需求所困,需要耐心思考和解决。

  • 安和:通过不断练习已经可以轻易实现需求,更加平和沉静。

  • 祥和:全栈。

  • 转化:做自己的产品。

  • 整体意识:有自己的公司。


一个创业设想


打开小红书,与“疗愈”相关的笔记高达236万篇,禅修、瑜伽、颂钵等新兴疗愈方法层出不穷,无论是性价比还是高消费,总有一种疗愈方法适合你。


比起去网红景点打卡拍照卷构图卷妆造,越来越多的年轻人正在借助上香、拜神、颂钵、冥想等更为“佛系”的方式去追寻内心的宁静。放空大脑,呼吸之间天地的能量被尽数吸收体内,一切紧张、焦虑都被稀释,现实的残酷和精神的困顿,都在此间找到了出口。


在过去,简单的瑜伽和冥想就能达到这种目的,但伴随着疗愈文化的兴起与壮大,不断在传统方式之上叠加buff,才是新兴疗愈的终极奥义。


从目标人群来看,不同的禅修对应不同的人群。比如临平青龙寺即将在8月开启的禅修,就分为了企业禅修、教育禅修、功能禅修、共修禅、突破禅、网络共修等多种形式。但从禅修内容来看,各个寺庙的安排不尽相同,但基本上跳脱不出早晚功课、上殿过堂、出坡劳作、诵经礼忏、佛学讲座等环节。


艺术疗愈,是截然不同于起参禅悟道这种更亲近自然,还原本真的另一疗愈流派。具体可以细分为戏剧疗愈、绘画疗愈、音乐疗愈等多种形式。当理论逐渐趋向现代化,投入在此间的花费,也成正比增长。


绘画疗愈 ,顾名思义就是通过绘画的方式来表达自己内心的情绪。画幅的大小、用笔的轻重、空间的配置、色彩的使用,都在某种程度上反映着创作者潜意识的情感与冲突。


在绘画过程中,绘画者也同样会获得纾解和满足。也有一些课程会在绘画创作之外,添加绘画作品鉴赏的内容,通过一幅画去窥视作者的内心,寻求心灵上的共鸣,也是舒缓压力的一种渠道。


疗愈市场之所以能够发展,还是因为有越来越多人的负面情绪需要治愈。不论是工作压力还是亲密关系所带来的情绪内耗,总要有一个释放的出口。


当前,我正在尝试依托自营绘馆老师提供优质课件,打造艺培课件分享的平台或社区,做平台前期研发投入比较大,当前融资也比较困难,同时自己也需要疗愈。


所以,最近也在调研市场,评估是否可以依托自营的门店,组织绘画手工+寺庙行禅+技术专题分享的IT艺术禅修营活动,两天含住宿1999元,包括半天寺庙义工体验、半天禅修、半天绘画手工课和半天的技术专题分享。


不知道,这样的活动,大家会考虑参加吗?


总结


出家人抛弃尘世各种欲望出家修行值得尊重,但却不是修行的唯一方法,佛经里著名的维摩洁居士就是在家修行,也取得了非凡成就,六祖惠能就非常鼓励大家在世间修行,他说:“佛法在世间,不离世间觉,离世觅菩提,恰如求兔角”。


普通人的修行是在红尘欲望中的修行,和出家人截然不同,但无分高下,同样可以证悟,工作就是他们最好的修练道场。禅学的理论学习并不困难,但这只是万里长征的第一步,最重要的是,我们要在日常实践中证悟。


简单可能比复杂更难做到:你必须努力理清思路,从而使其变得简单。但最终这是值得的,因为一旦你做到了,便可以创造奇迹。”乔布斯所说的这种专注和简单是直接相关的,如果太复杂,心即散乱,就很难保持专注,只有简单,才能做到专注,只有专注,才能极致。


作者:文艺码农天文
来源:juejin.cn/post/7292781589477687350
收起阅读 »

程序员的副业发展

前言 之前总有小伙伴问我,现在没有工作,或者想在空闲时间做一些程序员兼职,怎么做,做什么,能赚点外快 因为我之前发别的文章的时候有捎带着说过一嘴我做一些副业,这里就说一下我是怎么做的,都做了什么 希望能对你有些帮助~ 正文 学生单 学生单是我接过最多的,已经写...
继续阅读 »

前言


之前总有小伙伴问我,现在没有工作,或者想在空闲时间做一些程序员兼职,怎么做,做什么,能赚点外快


因为我之前发别的文章的时候有捎带着说过一嘴我做一些副业,这里就说一下我是怎么做的,都做了什么


希望能对你有些帮助~


正文


学生单


学生单是我接过最多的,已经写了100多份毕设,上百份大作业了,这里给大家介绍一下


python这种的数据处理的大作业也很多,但是我个人不太会,所以没结过,我只说我做过的


我大致做过几种单子,最多的是学生的单子,分为大作业单子毕设单子


大作业单一般指一个小作业,比如:



  • 几个web界面(大多是html、css、js)

  • 一个全栈的小demo,大多是jsp+SSM或者vue+springboot,之所以不算是毕设是因为,页面的数目不多,数据库表少,而且后端也很简单


我不知道掘金这里能不能说价格,以防万一我就不说大致价格了,大家想参考价格可以去tb或者咸鱼之类的打听就行


然后最多的就是毕设单子,一般就是一个全栈的项目



  • 最多的是vue+springboot的项目,需求量特别大,这里说一下,之前基本都是vue2的项目,现在很多学校要求vue3了,但是大部分商家vue3的模板很少,所以tb上接vue3的项目要么少,要么很贵,所以我觉得能接vue3和springboot项目的可以打一定的价格战,vue2的市面上价格差不多,模板差不多,不好竞争的

  • 少数vue+node的全栈项目,一般是express或者koa,价格和springboot差不多,但是需求量特别少

  • uni+vue+springboot的项目,其实和vue+springboot项目差不多,因为单纯的vue+springboot项目太多了,所以现在很多人要求做个uni手机端,需求量适中

  • .net项目,信管专业的学生用.net的很多,需求量不少,有会的可以考虑一下


这是我接过的比较多的项目,数据库我没有单说,基本上都是MySQL,然后会要求几张表,以及主从表有几对,这就看客户具体要求了



需要注意的点:大部分你得给客户配环境,跑程序,还是就是毕设一般是要求论文的,有论文的会比单纯程序赚的多,但是一定要注意对方是否要求查重,如果要求查重,一般是不建议接的,一般都是要求维普和知网查重,会要了你的老命。还有需要注意的是,学生单子一般是需要答辩的,你可以选择是否包答辩,当然可以调整价格,但是你一旦包答辩,你的微信在答辩期间就不会停了。你永远不知道他们会有怎样的问题



商业单


商业单有大有小,小的跟毕设差不多,大的需要签合同


我接的单子大致就一种,小程序+后台管理+后端,也就是一个大型的全栈项目,要比学生单复杂,而且你还要打包、部署、上线,售后,有一个周期性,时间也比较长


72761aa2847097aa719f2c9728dc560.jpg


image.png


ff5d9aaae6207ab8cbbe847c73cbd36.jpg


9e157d5ddab294d3214fa1d8ece07dc.jpg


为了防止大家不信,稍微放几个聊天记录,是这两个月来找的,也没有给自己打广告,大家都是开发者,开发个小程序有什么打广告,可吹的(真的是被杠怕了)


技术栈有两种情况:自己定客户定


UI也有两种情况:有设计图的无设计图的(也就是自己设计)


基本上也就是两种客户:懂技术的客户,不懂技术的客户


指定技术栈的我就不说了,对于不指定技术栈的我大致分为两种



  • 小程序端:uni/小程序原生、后台:vue、后端:云开发

  • 小程序端:uni/小程序原生、后台:vue、后端:springboot


这取决于预算,预算高的就用springboot、预算不高的就云开发一把嗦,需要说的是并不是说云开发差,其实现在云开发已经满足绝大部分的需求,很完善了,而springboot则是应用广泛,客户后期找别人接手更方便


对于没有UI设计图的,我会选择去各种设计网站去找一些灵感


当项目达到一定金额,会签署合同,预付定金,这是对双方的一种保障


其实在整个项目中比较费劲的是沟通,不是单独说与客户的沟通,更多的是三方沟通,作为上线的程序,需要一些资料手续,这样就需要三方沟通,同时还有一定的周期,可能会被催


讲解单


当然,有的时候人家是有程序的,可能是别人代写的,可能是从开源扒下来的,这个时候客户有程序,但是看不懂,他们可能需要答辩,所以会花钱找人给他们梳理一下,讲一讲, 这种情况比较简单,因为不需要你去写代码,但是需要你能看懂别人的代码


这种情况不在少数,尤其是在小红书这种单子特别多,来钱快,我一般是按照小时收费


cb519bce3fedc451116b659f6cb7388.jpg


e4531c4d8d6527208a03e1dcc6ede32.jpg


aef2baeabe8859caac59fd7ae0b456c.jpg


知识付费这东西很有意思,有时候你回答别人的一些问题,对方也会象征性地给你个几十的红包


接单渠道


我觉得相对于什么单,大家更在意的是怎么接单,很多人都接不到单,这才是最难受的


其实对此我个人并没有太好的建议的方法,我认为最重要的,还是你的交际能力,你在现实中不善于交际,网络上也不善于交际,那就很难了


因为我之前是在学校,在校期间干过一些兼职,所以认识的同学比较多,同时自身能力还可以,所以会有很多人来找,然后做完之后,熟人之间会慢慢介绍,人就越来越多,所以我不太担心能否接单这件事,反而是单太多,自己甚至成立一个小型工作室去接单


如果你是学生的话,一定要在学校积累客户,这样会越来越多,哪怕是现在我还看到学校的各种群天天有毕业很多年以及社会人士来打广告呢,你为什么就不可以呢


当然但是很多人现在已经不是学生了,也不知道怎么接触学生,那么我给大家推荐另外的道路



  • 闲鱼接单

  • 小红书接单


大部分学生找的写手都会比较贵,这种情况下,很多学生都会选择去上面的两个平台去货比三家,那么你的机会就来了


有人说不行啊,这种平台发接单帖子就被删了,那么你就想,为什么那么多人没被删,我也没被删,为什么你被删除了


其次是我最不推荐的一种接单方式:tb写手


为什么不推荐呢,其实就是tb去接单,然后会在tb写手群外包给写手,也就是tb在赚你的差价


这种感觉很难受,而且赚的不多,但是如果你找不到别的渠道,也可以尝试一下


最后


我只是分享一下自己接单的方式,但是说实在的,接一个毕设单或者是商业单其实挺累的,不是说技术层面的,更多的是心累,大家自行体会吧,而且现在商场内卷严重,甚至有人200、300就一个小程序。。。


所以大家要想,走什么渠道,拿什么竞争


另外,像什么猪八戒这种的外包项目的网站,我只是见过,但是没实际用过,接过,所以不好评价


希望大家赚钱顺利,私单是一种赚钱的方式,但是是不稳定的,一定还是要以自己本身的工作为主,自行判断~


作者:Shaka
来源:juejin.cn/post/7297124052174848036
收起阅读 »

劝互联网的牛马请善待自己

掘友们,大家好,我是一名95后全栈程序媛,一直以来在努力追求WLB,28岁前完成了畅游中国,既努力生活也认真工作。很多人可能还不知道WLB这个词,WLB就是work life balance,一开始我看到这个词都是从猎头那里传过来的,岗位招聘一般都是:xxx神...
继续阅读 »

掘友们,大家好,我是一名95后全栈程序媛,一直以来在努力追求WLB,28岁前完成了畅游中国,既努力生活也认真工作。很多人可能还不知道WLB这个词,WLB就是work life balance,一开始我看到这个词都是从猎头那里传过来的,岗位招聘一般都是:xxx神仙外企WLB,一周只上3天班,每周两天可以居家办公,每年年假几十天,要求英语口语流利,有x年工作经验,base范围在xx个w....


众所周知,外企的年包肯定不如那些一线爆肝厂,当然工作时间跟收入都是成正比的,965的外企跟11116的互联网的年包肯定是不一样的,付出的工作时间都不一样。假如拼夕夕给你年薪百万,神仙外企给你年薪50+w,你会怎么选?


最近出来几条消息刺痛了牛马的心情!这个世界变幻莫测~


四十多岁的程序员在公司工作11年被裁员


徐峥出新电影了《逆行人生》讲述的就是一个四十多岁的程序员被裁员后找不到工作只能去送外卖的心酸故事,当现实照进电影,卑微的打工人在时代的潮流下只是一个渺小颗粒的缩影。


Camera_XHS_17207690658921040g2sg3154s6l3ghc6g43ggnii4q1j3db8jeto.jpg
Camera_XHS_17207690682781040g2sg3154s6l3ghc6043ggnii4q1j3mbc8qoo.jpg

得物“35岁被暴力裁员”、“80余万元期权直接打水漂”。


一年前,面临裁员的得物员工徐凯多次与公司沟通取得期权再离职未果后,他到上海市仲裁委员会处申请恢复与得物的劳动关系,后被予以支持。7月,因不服上海市仲裁委员会裁定的结果,得物继续上诉,再度将前员工诉于法庭之上。


去哪儿宣布每周可居家办公两天


这则消息意味着互联网公司开启新的里程碑,向神仙外企的福利看齐了,对于老弱病残的打工人简直不要太友好了。


mmexport1720768757032.png

这种待遇,以前在互联网几乎不存在的。一周连休四天的日子,体验过就不再想去卷996的牛马岗了。


不管我们有多努力,我们都只是老板眼里赚钱的工具人


在互联网,35岁已经是一道坎,人在互联网漂,哪有不挨刀,不管有多努力,到了大龄的年纪,工资比年轻人高产出比年轻人低的时候,面临着公司随时都可能会说:分手吧,没有分手费,你自己知难而退吧,大家好聚好散!像极了一个渣男遇到了更年轻漂亮的白富美抛弃糟糠之妻,完了还pua你说都是你的错我才选择了别人。同样,公司会pua说,都是你的没能力,我才选择了别的员工,渣男有道德的谴责?公司有吗?公司跟你只有劳动关系,只要合法,随时跟你说你被毕业了,给个n+1的分手费都要被牛马说这渣渣企真良心!


对于老板来说,赚钱的时候大家都是兄弟,不赚钱了不认兄弟,说好聚好散!你把公司当家,公司把你当牛马。这点,我们真的要向00后学习,提前认清职场,打工就是为了赚钱,为了更好的生活,并不是为了努力加班毁了我们的生活,那我们辛辛苦苦打工有什么意义呢?


是否真的对自己的选择满意


截屏2024-07-12 15.57.29.png
知乎上有一个热度很高的话题:阿里p7和副处级哪个更厉害?
总说纷云,有人选择p7:


截屏2024-07-12 15.59.46.png

有人选择为人民服务;


截屏2024-07-12 16.03.49.png

也有人两者都想要:


截屏2024-07-12 16.00.06.png

在稳定和高薪面前,大家都想要稳定高薪的工作,最后变成稳定焦虑的牛马,这就好像围城,体制内的羡慕体制外的高薪,高薪的牛马羡慕体制内的稳定。即使义无反顾选择了卷互联网,几年挣够了人家一辈子的钱,但是买了二居想换三居,买了三居想换别墅,收入的增长带来消费的提升,物欲的无限放大,依然很多年入百万的人并不觉得真正的快乐而满足现状!即使选择了稳定的体制内,工作体面生活稳定,但是在权力面前,一直追名逐利,在很多诱惑下,最后的选择身不由己!


所以,欲望面前,你有好好认真的生活吗?认真对待自己的身体健康吗?是为了碎银几两熬夜加班把身体搞垮还是为了三餐有汤就行选择WLB呢?希望每一个焦虑的互联网牛马都好好善待自己,平衡好自己身体的健康和对金钱物欲的追逐。


我最羡慕内心富裕,内核稳定的人,这种人一般要比同龄人状态更年轻。不容易被外界所干扰,明确知道自己该要什么,不该要什么,选择适合自己的生活,幸福满意度极高。


作者:为了WLB努力
来源:juejin.cn/post/7390457313163067431
收起阅读 »

买房后,害怕失业,更不敢裸辞,心情不好就提前还房贷,缓解焦虑

自从买房后,心态有很大变化。虽然住自己的房子,心情和体验都很好,但是一把掏空钱包,很焦虑。买房后现金流一直吃紧,再加上每年16万的房贷,我很焦虑会失业。之前我喜欢裸辞,现在不敢想裸辞这个话题。尤其是在行业下行期,找工作很艰难,背着房贷裸辞,简直是头孢就酒,嫌命...
继续阅读 »

自从买房后,心态有很大变化。虽然住自己的房子,心情和体验都很好,但是一把掏空钱包,很焦虑。买房后现金流一直吃紧,再加上每年16万的房贷,我很焦虑会失业。之前我喜欢裸辞,现在不敢想裸辞这个话题。尤其是在行业下行期,找工作很艰难,背着房贷裸辞,简直是头孢就酒,嫌命太久。


焦虑的根源是背负房贷,金额巨大,而且担心40岁以后失业,还不上房贷。


一次偶然的沟通


"你的带款利率调整了吗",同事问我。


同事比我早两年在北京买房,他在顺义买的,我在昌平买的,我俩一直有沟通房贷的问题。但我没听说利率有调整,银行好像也没通知我,于是我问道:”我不知道啊,你调整了?调到多少了?“。


”调的挺多的,已经降到了 4.3%“。同事兴高采烈的回复我。


”这么牛逼,之前我记得一直是4.85%,我去看看我的利率“,我听说房贷利率下降那么多,很是兴奋。


然而我的房贷利率没有调整,我尝试给银行打电话,沟通的过程很坎坷。工商银行客服说了很多,大概意思是:利率会自动调整,无需申请,但是要等到利率调整日才会调整”。我开始很不理解,很生气,利率都调整了,别人也都调整了,凭什么不给我调整呢?


我想到同事有尝试提前还贷,生气的时候,我就萌发了提前还贷的想法。


开始尝试提前还贷,真香


我在22年初带款买房,其中商业带款 174 万,带款25年,等额本息,每个月要还 1 万的房贷。公积金带款每个月大概需要还 2500。每个月一万二的房贷还是很有压力的,尤其是刚买房的这一两年,兜里比脸都干净,没存款,不敢失业,更不敢裸辞。


即便兜里存款不多,也要提前还贷,因为实在太香了。


我在工行App上,申请 提前还贷,选择缩短 18个月的房贷,只需要 6万2,而我每个月房贷才1万,相当于是用 6 万 顶 18 万的房贷。还有比这更划算的事情吗?


image.png
预约提前还款后,银行会安排一个时间,在这个时间前,把钱存进去。到时候银行就会扣除,如果扣除金额不足,那么提前还款计划则自动终止,需要重新预约!


工行的预约还款时间大概是1个月以后,我是10-15号申请提前还款,银行给的预约日期是 11-14号,大概是1个月。


提前还款,比理财强多了


这次还贷以后,我又申请了提前还款, 提前还 24 期,只需要 9 万,也就是 9 万顶 24 万;提前还 60 期,只需要 24 万,相当于 24 万顶 60 万。


image.png


image.png


还有比提前还贷收益更高,风险更低的理财方式吗?没有! 除了存款外,任何理财都是有风险的。债券和基金收益和风险挂钩,想找到收益5%的债券基金,要承担亏本风险。你惦记人家的利息,人家惦记你的本金!


股票的风险更不必说,我买白酒股票已经被套的死死,只能躺平装死。(劝大家不要入 A 股)


提前还贷划算吗?


我目前的带款利息是 4.85%,而存到银行的利息不会超过 3% ,很多货币基金只有 2%了。两者利息差高达 3%,肯定是提前还带款更加合适。


要明白,一年两年短期的利息差还好,但是房贷可是高达 25 年。25年 170 万带款 3% 的利息差,这个金额太大了。提前还了,省下来的钱还是很多的。例如刚才截图里展示的 提前还 24 万顶了 60 万的房贷。


网上很多砖家说,“要考虑通货膨胀因素,4.85% 的带款利率和实际通货膨胀比起来不高,提前还款不划算。”


砖家说话都是昧良心的。提前还带款是否划算,只需要和存款利率比就行了,不需要和通货膨胀比。因为把钱存在银行也会因为通货膨胀贬值。只有把钱 全都消费,全部花光才不会受通货膨胀的困扰,建议砖家,多消费,把家底败光,这样最划算!


砖家们一定是害怕太多人提前还贷,影响了银行的放贷生意。今年上半年,提前还贷已经成潮流,有些银行坐不住,甚至关闭了提前还贷的入口…… 所以要抓紧,没准哪天就提高了还贷门槛,或者直接禁止。


程序员群体收入高,手里闲钱多,可以考虑提前还带款,比存银行划算多了,别再给银行打工了!


作者:五阳
来源:juejin.cn/post/7301530293378727971
收起阅读 »

刚入职因为粗心大意,把事情办砸了,十分后悔

刚入职,就踩大坑,相信有很多朋友有我类似的经历。5年前,我入职一家在线教育公司,新的公司福利非常好,各种零食随便吃,据说还能正点下班,一切都超出我的期望,“可算让我找着神仙公司了”,我的心里一阵窃喜。在熟悉环境之后,我趁着上厕所的时候,顺便去旁边的零食摊挑了点...
继续阅读 »

刚入职,就踩大坑,相信有很多朋友有我类似的经历。

5年前,我入职一家在线教育公司,新的公司福利非常好,各种零食随便吃,据说还能正点下班,一切都超出我的期望,“可算让我找着神仙公司了”,我的心里一阵窃喜。

在熟悉环境之后,我趁着上厕所的时候,顺便去旁边的零食摊挑了点零食。接下来的一天里,我专注地配置开发环境、阅读新人文档,当然我也不忘兼顾手边的零食。

初出茅庐,功败垂成

"好景不长",第三天上午,刚到公司,屁股还没坐热。新组长立刻给我安排了任务。他决定让我将配置端的课程搜索,从使用现有的Lucene搜索切换到ElasticSearch搜索。这个任务并不算复杂,然而我却办砸了。

先说为什么不复杂?

  1. ElasticSearch的搜索功能 基于Lucene工具库实现的,两者在搜索请求构造方式上几乎一致,在客户端使用上差异很小。

image.png

  1. 切换方案无需顾虑太多稳定性问题。由于是配置端课程搜索,并非是用户端搜索,所以平稳切换的压力较小、性能压力也比较小。

总的来说,领导认为这个事情并不紧急,重要性也不算高,而且业务逻辑相对简单,难度能够把握,因此安排我去探索一下。可是,我却犯了两个错误,把入职的第一件事办砸了。现在回过头来看,十分遗憾!

image.png

难以解决的bug让我陷入困境

将搜索方式从Lucene切换为ElasticSearch后,如何评估切换后搜索结果的准确度呢?

除了通过不断地回归测试,还有一个更好的方案。

我的方案是,在调用搜索时同时并发调用Lucene搜索和ElasticSearch搜索。在汇总搜索结果时,比对两者的搜索结果是否完全一致。如果在切换搜索引擎的过程中,两个方案的搜索结果不一致,就打印异常搜索条件和搜索结果,并进行人工排查原因。

image.png

在实际切换过程中,我经常遇到搜索数据不一致的情况,这让我感到十分苦恼。我花了一周的时间编写代码,然后又用了两周多的时间来排查问题,这超出了预估的时间。在这个过程中,我感到非常焦虑和沮丧。作为一个新来的员工,我希望能够表现出色,给领导留下好印象。然而事与愿违,难以解决的bug让我陷入困境。

经过无数次的怀疑和尝试,我终于找到了问题的根源。原来,我忘记了添加排序方式。

因为存在很多课程数据,所以配置端搜索需要分页搜索。在之前的Lucene搜索方式中,我们使用课程Id来进行排序。然而在切换到新的ElasticSearch方案中时,我忘记了添加排序方式。这个错误的后果是,虽然整体上结果是一致的,但由于新方案没有排序方式,每一页的搜索结果是随机的,无法预测,所以与原方案的结果不一致。

image.png 新方案加上课程Id排序方式以后,搜索结果和原方案一致。

为此,我总结了分页查询的设计要点!希望大家不要重复踩坑!# 四选一,如何选择适合你的分页方案?

千万不要粗心大意

实际上,在解决以上分页搜索没有添加排序方式的问题之后,还存在着许多小问题。而这些小问题都反映了我的另一个不足:粗心大意。

正是这些小问题,导致线上环境总会出现个别搜索结果不一致的情况,导致这项工作被拖延很久。

课程模型是在线教育公司非常核心的数据模型,业务逻辑非常复杂,当然字段也非常多。在我入职时,该模型已经有120 个字段,并且有近 50 个字段可以进行检索。

在切换搜索方式时,我需要重新定义各种DO、DTO、Request等类型,还需新增多个类,并重新定义这些字段。在这个过程中,我必须确保不遗漏任何字段,也不能多加字段。当字段数量在20个以内时,这项工作出错的可能性非常低。然而,班课模型却有多达120个字段,因此出错的风险极大。当时我需要大量搬运这些字段,然而我只把这项工作看作是枯燥乏味的任务,未能深刻意识到出错的可能性极大,所以工作起来散漫随意,没有特别仔细校验重构前后代码的准确性。

image.png 墨菲定律:一件事可能出错时就一定会出错

墨菲定律是一种普遍被接受的观念,指出如果某件事情可能出错,那么它将以最不利的方式出错。这个定律起源于美国航天局的项目工程师爱德华·墨菲,在1950年代发现了这一规律。

墨菲定律还强调了人类的倾向,即将事情弄糟或让事情朝着最坏的方向发展。它提醒人们在计划和决策时要考虑可能出错的因素,并准备应对不利的情况。

墨菲定律实在是太准了,当你感觉某个事情可能会出错的时候,那它真的就会出错。而且我犯错不止一次,因为有120个字段,很多字段的命名非常相似,最终我遗漏了2个字段,拼写错误了一个字段,总共有三个字段出了问题。

不巧的是,这三个字段也参与检索。当用户在课程搜索页面选择这三个字段来进行检索时,因为字段的拼写错误和遗漏,这三个字段没有被包含在检索条件中,导致搜索结果出错……

导致这个问题的原因有很多,其中包括字段数量太多,我的工作不够细致,做事粗心大意,而且没有进行充分的测试……

为什么没有测试

小公司的测试人员相对较少,尤其是在面对课程管理后台的技术重构需求时,更加无法获取所需的测试资源!

组长对我说:“ 要人没有,要测试更没有!”

image.png

事情办砸了,十分遗憾

首先,从各个方面来看,切换搜索引擎这件事的复杂度和难度是可控的,而且目标也非常明确。作为入职后第一项任务,我应该准确快速地完成它,以留下一个良好印象。当然,领导也期望我能够做到这一点,然而事实与期望相去甚远。

虽然在线上环境没有出现问题,但在上线后,问题排查的时间却远远超出了预期,让领导对结果不太满意。

总的来说,从这件事中,我获得的最重要教训就是:对于可能出错的事情,要保持警惕。时刻用墨菲定律提醒自己,要仔细关注那些可能发生小概率错误的细节问题。

对于一些具有挑战性的工作,我们通常都非常重视,且在工作中也非常认真谨慎,往往不会出错。

然而,像大量搬运代码、搬运大量字段等这类乏味又枯燥的工作确实容易使人麻痹大意,因此我们必须提高警惕。要么我们远离这些乏味的工作,要么就要认真仔细地对待它们。

否则,如果对这些乏味工作粗心大意,墨菲定律一定会找上你,让你在线上翻车!


作者:五阳
来源:juejin.cn/post/7295576148364787751
收起阅读 »

有哪些事情,是当了程序员之后才知道的?

1、平庸的程序员占比很大。 还没参加工作时,觉得程序员是个改变世界的高科技职业,后来才发现,其实这个群体里有很多CRUD Boy和SQL Boy,Ctrl C+Ctrl V是我们使用最多的电脑操作,没有之一。 而且,大多数同事上班摸鱼偷懒,遇到问题躲着走,下班...
继续阅读 »

1、平庸的程序员占比很大。 还没参加工作时,觉得程序员是个改变世界的高科技职业,后来才发现,其实这个群体里有很多CRUD Boy和SQL Boy,Ctrl C+Ctrl V是我们使用最多的电脑操作,没有之一。


而且,大多数同事上班摸鱼偷懒,遇到问题躲着走,下班也从来不主动学习充电。每当我问他们,他们都说这样混着也挺好,不想太累。


2、数量堆死质量。 如果你觉得没有写代码的天赋,那么请你先写10万行代码再说。


如果你在刷leetcode的时候非常痛苦,甚至有时候看答案都看不懂。那你就先把代码背下来,然后一遍一遍默写。每当你默写五遍以上,就开始慢慢理解了,刷十遍以上,再遇到类似的题,就有条件发射,能举一反三了。


这种方法运用到看底层源码,看一些晦涩难懂的技术类书籍上,也同样适用。


后来,我在网上看了硅谷王川的一段话:所有的我们以为的质量问题,大多本质是数量问题。数量是最重要的质量。


而欧成效则说得更加直接:数量堆死质量!


3、尽量选择研发出身的老板的公司。 他们会知道程序员不是故意写bug的,也没有任何系统能做到100%的可用性。


而销售出身的老板,却永远把自家公司的程序员看做产出并不令人满意的高成本项。而且还时不时地要求程序员跟销售一样喊几句令人其鸡皮疙瘩的鸡血口号。


4、大厂和小厂的程序员,技术上差距并不大。 他们的差距也许是在学历上,也许是在人脉上,也许是在沟通和向上管理上。


5、对测试同学客气一点, 他们是你写的代码的最后一道防线。再有就是,如果线上出了故障或者严重bug,很多产研以外的人都关注是哪个程序员造成了事故,而不是哪个测试同学没测出来。


6、产品经理是SB,甲方是SB的N次方。 最令人蛋疼的是,任何一家公司都是这样,所以你根本避无可避,只能长期共存。


7、程序员涨薪,最好的方式是跳槽, 而不是兢兢业业地加班工作。如果就靠公司每年涨的那些钱,估计得用7,8年才能实现薪资翻番。但如果靠跳槽,估计3年就能实现薪资翻番。


8、能不去外包公司就尽量不去,那种寄人篱下的无归属感才最让人心累。你会发现,公司的正式员工吃饭和娱乐都是不愿意带你玩儿的,平时跟你说话的表情也是鼻孔朝天。


9、面试造火箭,工作拧螺丝是正常的。 你要做的就是提升造火箭吹牛逼的能力,毕竟这才是你定级谈薪的资本。不要抱怨,要适应。


10、35岁的危机真的存在。 那些认为技术牛逼就可以平稳度过中年危机的人,很多都SB了。人老不以筋骨和技术为能,顺势而为,尽早找后路才是王道。


11、尽量去工程师占比超过30%的公司,因为它的期权可能在未来十年内变得很有价值。因为工程师占比越高,边际成本就越低。


12、离开公司这个平台,也许你什么都不是。  很多大厂的高P前辈,甚至是总监、 VP,也可能在某一个时间点,突然被淘汰!我身边就有一个BAT的总监,真的就突然被优化了,真的就找不到哪怕一半的薪资了。突然之间!


拔剑四顾心茫然.... 所以,永远要分清楚哪些是平台资源,哪些是你的能力。时刻对自身能力保持清醒且准确的认知,千万不要陷入盲目自负的境地。实在太过乐观的大厂朋友,可以周期性出来面试,哪怕不跳槽,认知自己的真实价值。


13、技术面试官问期望薪资,记得往低了说。 因为他们往往并不负责最终的定薪,但如果你的期望薪资高于他,会让他产生强烈的不平衡,从而把你Pass掉。


14、身体才是一切的本钱。 前些天左耳朵耗子前辈的忽然离世,再次验证了这一点,如果身体健康是0,那么其他的所有一切都是0。


15、脱发和格子衫的说法,并不普遍。 我认识的程序员里,80%是不穿格子衫的,而且35岁+的程序员,80%也是不脱发的。


但是有一种东西是很普遍的,那就是装着电脑的双肩包。


16、PPT架构师、周报合并师、无损复读师真的存在,而且越是在大厂,这种人就会越多。


PPT架构师在PPT中讲的架构各种高端大气上档次,其实就是大家很常用的部署流程;周报合并师每周的任务就是每周将团队中每个人的周报进行汇总,再报告给上级;无损复读师要求可能会高一些,对老板提出的问题或者质疑,要原原本本的向下传达给项目组对应的同学,不能有一丝偏差。


或许他们最开始不是这样的,但是慢慢地,他们活成了最舒服的,也是曾经最讨厌的样子。


17、大多数程序员是不会修电脑的。 很多行业以外的人,他们会觉得很多事情程序员都可以做,从盗QQ,Photoshop,硬盘文件恢复,到装系统,处理系统故障和软件问题,安装各种盗版软件,各种手机的越狱Root装盗版应用。


并且,另外这些事情往往不涉及实物,给人的感觉是只是在键盘上打打字,又不需要买新硬件之类的,所以往往会被认为是举手之劳,理应帮忙。


18、杀死程序员不用枪,改三次需求就可以了。 很多程序员并不反感别人说他无趣,也不反感别人说他们的穿着土鳖,也不反感别人说他们长相平庸。


也就是说,除了反复改需求,别的他们都能忍受。


先说这么多吧,总结得也算是比较全了,后续有新的,我再补充。


作者:托尼学长
来源:juejin.cn/post/7292960995437166601
收起阅读 »

这样做产品,死是早晚的事!

昨天和在北京的朋友聊天,他了解到之前我做过餐饮的SAAS系统,于是问我这一块是否还能分到一杯羹! 说实话,我觉得没机会,特别是对于一家小公司来说,基本上没机会,甚至连入场券都拿不到! 这不禁让我想起几年前认识的一个小公司,给他们兼职开发的两款SAAS产品,一款...
继续阅读 »

image.png
昨天和在北京的朋友聊天,他了解到之前我做过餐饮的SAAS系统,于是问我这一块是否还能分到一杯羹!


说实话,我觉得没机会,特别是对于一家小公司来说,基本上没机会,甚至连入场券都拿不到!


这不禁让我想起几年前认识的一个小公司,给他们兼职开发的两款SAAS产品,一款是连锁酒店系统,一款则是餐饮系统。


他们的酒店系统,现在在我看来依然是很牛逼的,我也去看过一些市面上的解决方案,但是依然没有他们的牛逼。


不过残酷的是,最近半年来,他们好像一套也没有卖出去,如果我没猜错的话,这几年下来,他们应该没有卖出多少套。


其实几年前我和他们协同开发,听了他们的一些想法,我就预见他们很难打出去。


因为我发现他去做了一些看似很完美,但是不是必须的功能,而且还花了大量时间去做,当时我觉得这完全就是鸡肋,现在看来是鸡骨头。


说白了,就是定位不明确,想做一个大而全方案,但是这对于一个小公司初创团队来说,这是很致命的,特别是资金不充足的情况下去干这事!


下面从几个方面去看问题。


1.定位不明确


理想一定是会被现实啪啪打脸的,当想去做一个产品的时候,不要觉得自己做得很全很大就能赢得市场,这简直是痴人说梦。


特别是在行业竞争如此之大的情况下,大公司早都入局了,人家的解决方案比你强大,价格比你便宜,售后比你全,你拿什么去拼?


当时我问他,为啥要做餐饮解决方案,你觉得你从技术,价格,服务这些方面,你有哪里比得上客如云,微盟,美团这些巨头,他说别管那么多,东西做出来自然有办法!


现在里面过去了,基本上没有任何推进。


这肯定是定位出问题了啊,不要觉得你手上有产品就能赚钱,如果是这样,那还需要销售干嘛。


对于小公司来说,大家都是技术出身,没有营销经验,就算做出产品来,也只能摆着看,如果要请销售团队,公司又支撑不起,显然矛盾了!


所以就尽量别去做这类似的产品,应该去做一些能解决别人痛点的小而美的解决方案。


就像微信公众号刚兴起的那几年,因为公众号自带的编辑器很难用,有一个人就做了一个小编辑器出来,赚得盆满钵满。


看似冷门,但是垂直!


2.陷入大而全的误区


接着上面的说。


后面有人看到看到了这个红利,就进军去做,他们希望做出更强大,功能更全的编辑器,结果花了大量时间去做,最后产品出来了,但是市场已经被别人抢了先机,最终不得不死。


这就是迷恋大而全的后果!


其实开源就是一个很好避免大而全的方案。


在开源领域,先做出一个小而美的产品,把影响力传播开,然后根据用户的需求不断迭代,这时候不是人去驱动产品了,而是需求去驱动产品。


这样做出来的产品不仅能避免出现很多无用的功能,还能节约很多的成本!


一定要让用户的需求来驱动产品的发展,而不是靠自己的臆想去决定做什么产品!


老罗当年在做锤子科技的时候,我觉得他就陷入了想去做一个大而全的产品,还陷入自己以为的漩涡,所以耗费了很多资金去研发TNT,所以导致失败。


如果那时候致力于去做好坚果系列,那么结局可能大不一样!


3.没有尝到甜头,你怎敢去做!


在我们贵州本土,有一个技术大佬,他一开始做了一个门户系统的解决方案,后续就有人来找他,说要购买他的系统,他从里面尝到了甜头!


于是就在这个领域持续深耕,最终形成了一套强大的解决方案。现在他的解决方案已经遍布全国。


他们公司基本上就是靠门户系统的解决方案来维持的。


所以,做一个产品,只有自己尝到甜头了,再去深耕,形成一套解决方案,那么成功率就会变得越高。


特别对于小公司来说,这是很重要的!


4.总结


做产品一定要忌讳大而全,也不要陷入只要我做出来了,无论如何都能分一杯羹,这是不现实的。


市场上到处是饿狼潜伏,你不过是一只小羊羔,怎么生存?


用最少的成本开发出一个小而美的解决方案,然后拿出去碰一碰,闻到味道了,再不断进击,这样成功率就高一点,即使失败了代价也不高。


今天的分享就到这里!


作者:苏格拉的底牌
来源:juejin.cn/post/7313887095415324672
收起阅读 »

软件工程师,为什么不喜欢关电脑

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 概述 你是否注意到,软件工程师们似乎从不关电脑,也不喜欢关电脑?别以为他们是电脑“上瘾”,或是沉迷于电脑,这一现象背后蕴含着多种实际原因。 1、代码保存与恢复。 ...
继续阅读 »

💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。



概述


你是否注意到,软件工程师们似乎从不关电脑,也不喜欢关电脑?别以为他们是电脑“上瘾”,或是沉迷于电脑,这一现象背后蕴含着多种实际原因。



1、代码保存与恢复。


在编写代码过程中,遇到问题时可能会暂时离开去查阅资料或者休息,而不想打断当前的思路和工作进度。如果电脑不关机,他们可以迅速回到上次中断的地方,继续解决问题,避免了重新加载项目和找回思考线索的过程。


2、远程访问与协作。


很多软件工程师采用分布式团队协作模式,需要通过SSH等远程访问手段进行代码部署、调试或监控线上服务。下班后保持电脑开机,有利于他们在家或其他地点远程处理紧急任务。


3、持续集成/持续部署。


对于实施CI/CD流程的项目,电脑上的开发环境可能作为构建服务器的一部分,用于自动编译、测试和部署代码。在这种情况下,电脑全天候运行是必需的。


4、虚拟机与容器运行。


软件工程师使用的电脑上可能运行着虚拟机或容器,用于支持多套开发环境或者运行测试实例。这些虚拟资源,通常要求宿主机保持运行状态。


5、挂起与休眠模式。


虽然没有完全关机,但许多软件工程师会选择将电脑设置为休眠或挂起模式,这样既能节省能源,又能在短时间内快速恢复到工作状态。


实际上,以上5点归根到底,都是为了保持一个持续开发环境。那么,何为持续开发环境?


持续开发环境


持续开发环境是指软件工程师为了进行软件开发而搭建的、包含所有必要工具和服务的一套完整生态系统。它涵盖了集成开发环境(IDE)、版本控制系统(比如:Git)、本地服务器、数据库服务、构建工具以及各种编程框架和库等元素。这个环境是软件工程师日常工作的核心载体,也是他们实现高效编程、调试和测试的基础。


首先,持续开发环境通过自动化流程,极大地减少了开发过程中的人工干预。每当软件工程师提交代码到版本控制系统时,持续开发环境会自动触发构建、测试和部署流程。这意味着:软件工程师无需手动编译代码、运行测试用例或手动部署应用程序。这些繁琐的任务由持续开发环境自动完成,从而释放了软件工程师的时间和精力,让他们更专注于编写高质量的代码。


其次,持续开发环境有助于及时发现和修复问题。在持续集成的过程中,每次代码提交都会触发一次完整的构建和测试流程。这意味着:任何潜在的错误或问题都会在早期阶段被及时发现。此外,持续开发环境通常与持续监控和警报系统相结合,当出现问题时,系统会立即向团队成员发送警报,从而确保问题能够得到及时解决。


此外,持续开发环境还促进了团队协作和沟通。通过版本控制系统和自动化测试工具,团队成员可以轻松地查看彼此的代码、理解彼此的工作进度,并在出现问题时及时沟通。这种透明的工作方式有助于建立信任、减少误解,从而提高团队的整体效能。


最后,持续开发环境为创新提供了有力的支持。在快速迭代和不断试错的过程中,软件工程师可以迅速验证他们的想法和假设。如果某个功能或改进在实际应用中效果不佳,他们可以迅速调整方向,尝试新的方法。这种灵活性和敏捷性使得软件工程师能够不断尝试新的技术和方法,从而推动软件行业的创新和发展。


在这个日益复杂和快速变化的数字世界中,持续开发环境已经成为软件工程师们不可或缺的利器。但持续开发环境的搭建和启动可能耗时较长,因此为了保持工作连续性,软件工程师往往倾向于让电脑保持开机状态,以便随时可以继续编程或调试。


案例一


假设小张是一位正在开发一款大型Web应用的后端软件工程师,他的工作台的配置如下。


操作系统:Windows 10。


集成开发环境:IntelliJ IDEA,用于编写Java代码。


版本控制系统:Git,用于代码版本管理及团队协作。


本地服务器:Apache Tomcat,用于运行和测试Java Web应用。


数据库服务:MySQL,存储应用程序的数据。


构建工具:Maven,负责项目的自动化构建与依赖管理。


虚拟机环境:Docker容器,模拟生产环境以进行更真实的测试。


在每天的工作中,小张需要不断地编译代码、调试程序、提交更新到Git仓库,并在本地Tomcat服务器上验证功能是否正常。同时,他还可能需要在Docker容器内模拟不同的操作系统环境,以对软件进行兼容性测试。


如果小张下班时关闭了电脑,第二天重新启动所有服务和工具将会耗费至少半小时以上的时间。而在这段时间里,他无法立即开始编程或解决问题,影响了工作效率。


此外,小张所在的团队采用了CI/CD流程,利用Jenkins等工具自动执行代码编译、单元测试以及部署至测试服务器的任务。这就要求他的电脑作为Jenkins客户端始终在线,以便触发并完成这些自动化任务。


因此,为了确保高效流畅的开发流程,减少不必要的环境配置时间,及时响应线上问题以及支持远程协同,小张和其他许多软件工程师都会选择让自己的电脑始终保持开机状态,维持一个稳定的持续开发环境。


案例二


假设小李是一名全栈开发者,他正在参与一个大型的微服务项目,他的开发环境配置如下。


操作系统:Ubuntu 20.04 LTS。


集成开发环境:Visual Studio Code,用于编写前后端代码。


版本控制系统:Git,协同团队进行代码管理。


本地开发工具链:Node.js、NPM/Yarn用于前端开发,Python及pip用于后端开发,同时使用Kubernetes集群模拟生产环境部署。


数据库与缓存服务:MySQL作为主数据库,Redis作为缓存服务。


消息队列服务:RabbitMQ用于微服务间的异步通信。


CI/CD工具:GitHub Actions和Docker Compose结合,实现自动化构建、测试和部署。


在项目开发过程中,小李需要频繁地编译、打包、运行并测试各个微服务。一旦他关闭电脑,第二天重新启动所有服务将耗费大量时间。比如:搭建完整的Kubernetes集群可能需要数分钟到数十分钟不等,而每次重启服务都可能导致微服务间的依赖关系错乱,影响开发进度。


此外,由于团队采用了敏捷开发模式,每天都有多次代码提交和合并。为了能及时响应代码变动,小李设置了自己的电脑作为GitHub Actions的一部分,当有新的Pull Request时,可以立即触发自动化构建和测试流程,确保新代码的质量。


更进一步,在下班后或周末期间,如果线上服务出现紧急问题,小李可以通过SSH远程登录自己始终保持在线的电脑,快速定位问题所在,并在本地环境中复现和修复,然后推送到测试或生产环境,大大提高了响应速度和解决问题的效率。


综上所述,对于像小李这样的全栈开发者而言,维持一个持续稳定的开发环境是其高效工作的重要保障,也是应对复杂软件工程挑战的关键策略之一。


案例三


假设小王是一名独立游戏开发者,他正在使用Unity引擎制作一款3D角色扮演游戏,他的开发环境配置如下。


操作系统:macOS Big Sur。


集成开发环境:Unity Editor,集成了脚本编写、场景设计、动画编辑等多种功能。


版本控制系统:Perforce,用于大型项目文件的版本管理和团队协作。


资产构建工具:TexturePacker用于图片资源打包,FMOD Studio用于音频处理和混音。


本地测试环境:在电脑上运行Unity的内置播放器进行实时预览和调试。


云服务与部署平台:阿里云服务器作为远程测试和分发平台。


在游戏开发过程中,小王需要频繁地编辑代码、调整场景布局、优化美术资源并即时查看效果。由于Unity项目的加载和编译过程可能较长,尤其在处理大量纹理和模型时,如果每次关闭电脑后都要重新启动项目,无疑会大大降低工作效率。


此外,小王经常需要利用晚上或周末时间对游戏进行迭代更新,并将新版本上传到云端服务器进行远程测试。为了能在任何时刻快速响应工作需求,他的电脑始终保持开机状态,并且已连接至Perforce服务器,确保能及时获取最新的代码变更,同时也能立即上传自己的工作成果以供团队其他成员审阅和测试。


因此,对于小王这样的游戏开发者来说,保持持续开发环境不仅能有效提高日常工作效率,还能确保在非工作时段可以灵活应对突发任务,从而更好地满足项目进度要求。


总结


持续开发环境为程序员提供了一个高效、稳定且富有创新的工作环境。它通过自动化流程、及时发现问题、促进团队协作和支持创新,为软件开发带来了巨大的变革。


保持持续开发环境对于软件开发者而言至关重要,它能够显著提高工作效率,并确保项目开发的连贯性。通过维持开发环境始终在线,我们可以在任何时间方便地进行代码编辑、资源优化、实时预览和调试,并能灵活应对团队协作需求,实现快速迭代更新,从而满足项目进度要求。


作者:希望_睿智
来源:juejin.cn/post/7376837003520245772
收起阅读 »

种种迹象表明:前端岗位即将消失

最近,腾讯混元大模型的HR约我面试,为了确定是否真招人,我打开了腾讯内推的小程序,确实有这个岗位,但整个深圳也只有这一个。 于是,我突然意识到:在大模型时代,前端工程师这个岗位应该会是最先消失的岗位。 AI程序员的诞生 24年年初,英伟达CEO黄仁勋表示,自己...
继续阅读 »

最近,腾讯混元大模型的HR约我面试,为了确定是否真招人,我打开了腾讯内推的小程序,确实有这个岗位,但整个深圳也只有这一个。


于是,我突然意识到:在大模型时代,前端工程师这个岗位应该会是最先消失的岗位。


AI程序员的诞生


24年年初,英伟达CEO黄仁勋表示,自己相信就在不久的将来,人类再也不需要学习如何编码了,孩子们应该停止编程课。


然后24年3月,一家叫Cognition美国初创公司,发布了首个AI软件工程师Devin。它掌握全栈技能,云端部署、底层代码、改bug、训练和微调AI模型都不在话下。


只需一句指令,Devin就可端到端处理整个开发项目,这再度引发“码农是否将被淘汰”的大讨论。在SWE-bench上,它的表现远远超过Claude 2、Llama、GPT-4等选手,取得了13.86%的惊人成绩!


也就是说,它已经能通过AI公司的面试了。


接着4月,阿里发布消息称,其迎来了首位 AI 程序员——通义灵码。并在阿里云上海AI峰会上,阿里云宣布推出首个AI程序员,具备架构师、开发工程师、测试工程师等多种岗位的技能,能一站式自主完成任务分解、代码编写、测试、问题修复、代码提交整个过程,最快分钟级即可完成应用开发,大幅提升研发效率。


此次发布的AI程序员,是基于通义大模型构建的多智能体,每个智能体分别负责具体的软件开发任务并互相协作,可端到端实现一个产品功能的研发,这极大地简化了软件开发的流程。


由此带来的影响


一方面, AI技术的迅速发展和普及势必给程序员的工作带来冲击:传统的编码方式将显著改变,水平一般的程序员被取代的趋势或不可避免。


另一方面,尽管AI可以辅助程序员快速生成代码、提高开发效率,但并不能完全取代程序员的角色,尤其是技术理解深厚、能力强大的高水平程序员。


对于未来的程序员而言,掌握AI技术并应用于自己的工作流程中,与AI协同工作从而提高自己的工作效率和编码质量,是与时俱进、适应市场的必然需求。


由此,未来一名好的程序员不应仅仅是一名技术人员,还需要具备广泛的知识和技能。他们是整个人、机、环境系统框架中的创造者,要持续创新、创造价值。


具体而言,为了编写高质量代码,他们可能要精通多种编程语言;为了能按需选用合适的技术方案,他们要能迅速适应新的技术和工具。


为了面对复杂问题时能抓住原因并及时分析解决,他们必须保持与团队及客户的高效沟通协作,并不断积累知识、经验,同步跟进行业技术前沿,针对具体问题设计出创新的解决方案,保障程序的稳定性和可靠性。


所以,去年我在 从美团的开发通道合并谈谈开发的职业规划 就提出:LLM在软件工程的采用,将在众多工程领域产生突破,甚至于颠覆,由此也敦促我们必须认真审视专业能力的变迁和专业角色的定义。


为何最先消失的是前端岗


在我去年写前端学哪些技能饭碗越铁收入还高时,我还没有前端岗位可能即将消失的观点,但过去半年和很多猎头聊了一下前端岗的机会,以及看了很多后端培训课程中都包含前端的知识技能。


再结合22年我在美团内部,给几百个后端同学培训如何快速上手前端开发,我觉得前端这个岗位很有可能以后在招聘中就看不到这一细分岗位了。


其实15年前,全球应该都没有前端工程师这个岗位,当时的多数前端工作都比较简单,一部分是后端自己做,一个部分则是设计出生的切图仔完成~


后来随着移动互联网的兴起,前端开发语言发布了全新的规范ES6,整个前端开发生态逐步繁荣了起来,因为发展很快,网页的多端兼容和多版本工作比较繁杂,所以前端工作才由一个全新的岗位为负责。


原本很多前端同学在整个系统开发中就处于辅助角色,经常是多个团队的后端争抢一个专业的前端工程师,但如今,随着前端技术已经非常成熟和完善和大模型技术的加持,后端完成前端工作越来越容易。


所以,各公司自然就会减少很多前端岗位的招聘,只有少量技术比较新或业务比较复杂的项目才需要少量专职的前端工程师。


从各公司合并开发通道来看,消失的不仅是前端,还有后端和系统开发,对外招聘岗位都是软件工程师,工作内容根据需要动态调整。


总结


知识本身并不是力量,能有效将知识应用于实践才是真正的力量。同样,大量的编程知识可能是有价值的,但若不会运用、不知变通,无法解决实际问题,它就很难产生任何实质性影响。


能够有效使用程序,意味着智能体正具备将知识与学习应用转化的能力。这就需要程序员具备一些编程规则之外的能力,如分析、判断、解决问题的能力等。


程序员之所以能够不被取代,底气正在于其能将所学与实际情况相结合,并作出正确决策,而不是像AI程序员那样的编程工具,为了编程而编程。


未来,AI负责基础重复性劳动、人类程序员负责顶层设计的模式已经初露端倪,而认为人类程序员将被AI取代、沦为提要求的“边缘人”,为时尚早。




作者:文艺码农天文
来源:juejin.cn/post/7392852233999892495
收起阅读 »

一文让你彻底悟透柯里化

什么是柯里化? 在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术 前端为什么需要使用柯里化? 前端使用柯里化的用途主要就是简化代码结构,提高系统的维护性,一个方法只有一个参数,强制了功能的单一性,很自然就能做...
继续阅读 »

什么是柯里化?



在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术



前端为什么需要使用柯里化?



前端使用柯里化的用途主要就是简化代码结构,提高系统的维护性,一个方法只有一个参数,强制了功能的单一性,很自然就能做到功能内聚,降低耦合


一句话就是:降低代码重复率,提高代码适应性



普通函数



实现一个普通的累加函数,调用时需要传入三个参数,如果少 传则输出NaN,多传则后面的参数都无效



function add(a,b,c){
   return a + b + c
}
add(1,2,3) //6

普通柯里化函数



实现一个普通的柯里化函数(含有柯里化性质),通过调用传参的方式将函数传入,并传入参数进行运算,返回一个新的函数的参数进行累计(取决于传入函数时传入参数的个数以及执行函数的传入参数进行累计)



function add(a, b, c) {
 return a + b + c;
}

function fixedCurryAdd(fn) {
 const arg = [].slice.call(arguments, 1);
 return function () {
   const newArg = arg.concat([].slice.call(arguments, 0));
   return fn.apply(this, newArg);
};
}
const curryAdd = new fixedCurryAdd(add, 1);
console.log(curryAdd(2,11)); //14


柯里化函数



通过上面的含有柯里化性质的函数可以看出 ,要实现柯里化函数可以有多种传参方式,例如:


newAdd(1,2,3,4)
newAdd(1)(2,3,4)
newAdd(1)(2,3)(4)
newAdd(1)(2)(3)(4)

含有多种传参方式 ,无论哪种方式,最后都会把所需参数传入,但是柯里化函数只是期望你执行这次函数传入所需参数个数,并不强求你传入所需参数(4个,可传1个后续补上即可,最后一次凑齐4个即可)



function add(a, b, c) {
 return a + b + c;
}
function CurryAdd(fn){
   let arg = [].slice.call(arguments,1);
   return function(){
       let newArg = arg.concat([].slice.call(arguments,0));
       return fn.apply(this,newArg);
  }
}
function Curry(fn,length){
   let len = length|| fn.length; //获取传入函数所需参数的个数
   return function(){
       if(arguments.length <len){
           const callback = [fn].concat([].slice.call(arguments,0));
           return Curry(CurryAdd.apply(this,callback),len-arguments.length);
      }else{
           return fn.apply(this,arguments);
      }
  }
}
let adds=new Curry(add)
let a = adds(1)(2)
console.log(a(1)); //4


以上完善柯里化函数的整个书写。下面来捋一下这个书写过程的思路



  • 首先柯里化函数期待传入一个函数,并且返回一个函数(add)

  • 通过fn.length获取当前以传入的参数个数

  • 在返回函数中判断当前参数是否已传入完毕



    • 如果已传入fn.length个 则直接调用传入函数

    • 如果未传入fn.length个 则通过callback将fn放到第一位在进行合并arguments作为下一次进入此函数的参数,通过CurryAdd 函数对参数再进行一遍"过滤",通过递归调用自己来判断参数是否已经达到fn.length个从而实现柯里化





柯里化应用



说了这么多,那么柯里化到底能做哪些应用呢?




在前端页面中,向后端进行数据请求时,大部分都用到ajax进行请求


function ajax(method,url,data){
...ajax请求体(不作书写)    
}
ajax("post","/api/getNameList",params)
ajax("post","/api/getAgeList",params)
ajax("post","/api/getSexList",params)

如果有这么多请求且每次都需要写请求方式("post"),页面多了请求多了自然成为冗余代码,那么优化一下


const newAjax = Curry(ajax);
const postAjax = newAjax("post")
...

如果url还有类似的那么就可以重复以上的代码,这样能减少相同代码重复出现



作者:Govi
来源:juejin.cn/post/7389049604632166427
收起阅读 »

背调,程序员入职的紧箍咒

首先说下,目前,我的表哥自己开一家小的背调公司,所以我在跟他的平时交流中,了解到了背调这个行业的一些信息。 今天跟大家分享出来,给大家在求职路上避避坑。 上周的某天,以前的阿里同事小李跟我说,历经两个月的面试,终于拿到了开水团的offer。我心里由衷地替他高兴...
继续阅读 »

首先说下,目前,我的表哥自己开一家小的背调公司,所以我在跟他的平时交流中,了解到了背调这个行业的一些信息。


今天跟大家分享出来,给大家在求职路上避避坑。


上周的某天,以前的阿里同事小李跟我说,历经两个月的面试,终于拿到了开水团的offer。我心里由衷地替他高兴,赶紧恭喜了他,现在这年头,大厂的offer没这么好拿的。


又过了两周,小张沮丧地跟我说,这家公司是先发offer后背调,结果背调之后,offer GG了,公司HR没有告知他具体原因,只是委婉地说有缘自会再相见。(手动狗头)


我听了,惋惜之余有些惊讶,问了他具体情况。


原来,小李并没有在学历上作假,也没有做合并或隐藏工作经历的事。


他犯错的点是,由于在上家公司,他跟他老板的关系不好,所以他在背调让填写上级领导信息的时候,只写了上级领导的名字,电话留的是他一个同事的。


我听后惋惜地一拍脑门儿,说:“你这么做之前,怎么也不问我一下啊?第三方背调公司进行手机号和姓名核实,都是走系统的,秒出结果。而且,这种手机号的机主姓名造假,背调结果是亮红灯的,必挂。”


小李听后,也是悔得肠子都青了,没办法,只能重新来过了。


我以前招人的时候,遇到过一次这样的情况,当时有个候选人面试通过,发起背调流程。一周后,公司HR给了我一份该候选人背调结果的pdf,上面写着:


“候选人背调信息上提供,原公司上级为郭xx,但经查手机号主为王xx,且候选人原公司并无此人。”


背调结果,红灯,不通过。


基本面


学历信息肯定不能造假,这个大家应该都清楚,学信网不是吃素的,秒出结果。


最近两份工作的入离职时间不要出问题,这个但凡是第三方背调,近两份工作是必查项,而且无论是明察还是暗访,都会查得非常仔细,很难钻空子的。


再有就是刚才说的,手机号和人名要对上,而且这个人确实是在这家公司任职的。


大家耳熟能详的大厂最好查,背调公司都有人才数据库的,而且圈子里的人也好找。再有就是,随便找个内部员工,大厂的组织结构在内部通讯软件里都能看到的。


小厂难度大一些,如果人才数据库没有的话,背调员会从网上找公司电话,然后打给前台,让前台帮忙找人。但有的前台听了会直接挂断电话。


薪资方面,不要瞒报,一般背调公司会让你打印最近半年或一年的流水,以及纳税信息。


直接上级


这应该也是大家最关心的问题之一。


马云曾经说过:离职无非两种原因,钱没给够,心委屈了。而心委屈了,绝大多数都跟自己的直接上级有关。


如果在背调的时候,担心由于自己跟直接上级关系不好,从而导致背调结果不利的话,可以尝试以下三种方式。


第一,如果你在公司里历经了好几任领导的话,可以留关系最好的那任领导的联系方式,这个是在规则允许范围内的。


第二,如果你的直接上级只是一个小组长,而你跟大领导(类似于部门负责人)关系还可以的话,可以跟大领导沟通一下,然后背调留他的信息。像这个,一般背调公司不会深究的。


就像我的那个表哥,背调公司的老板所说的:“如果一个腾讯员工,马化腾都出来给他做背调了,那我们还能说什么呢?”


第三,如果前两点走不通的话,还可以坦诚地跟HR沟通一次,说明跟上级之间确实存在一些问题,原因是什么什么。


比如:我朋友遇到了这种情况,公司由于经营不善而裁员,老板竟然无耻地威胁我朋友,如果要N+1赔偿的话,背调就不会配合。


如果你确实不是责任方的话,一般HR也能理解。毕竟都是打工人,何苦相互为难呢。


你还可以这么加上一句:“我之前工作过的公司,您背调哪家都可以,我的口碑都很好的,唯独这家有些问题。”


btw:还有一些朋友,背调的时候留平级同事的真实电话和姓名,用来冒充领导,这个是有风险的。但是遇到背调不仔细的公司,也能通过。通过概率的话,一半一半吧。


就像我那个朋友所说:“现在人力成本不便宜,如果公司想盈利的话,我的背调员一天得完成5个背调,平均不到两个小时一个。你总不能希望他们个个都是名侦探柯南吧。”


信用与诉讼


一般来讲,背调的标准套餐还包括如下内容:金融违规、商业利益冲突、个人信用风险和有限民事诉讼。其中后两个大家尽量规避。


个人信用风险包括:网贷/逾期风险、反欺诈名单和欠税报告。


网贷这块,当时我有一个同事,2021年的时候,拿了4个offer,结果不明不白地都挂在了背调上,弄得他很懵逼。


当他问这三家公司HR原因的时候,HR都告诉他不便透露。


最后,他动用身边人脉,才联系上一家公司的HR出来吃饭,HR跟他说:“以后网贷不要逾期,尤其是不同来源的网贷多次逾期。”


同事听了,这才恍然大悟。


欠税这个,就更别说了,呵呵,大家都懂,千万别心存侥幸。


再说说劳动仲裁和民事诉讼。


现在有些朋友确实法律意识比较强,受到不公正待遇了,第一想法就是“我要去仲裁”,仲裁不满意了,就去打官司。


首先我要说的是,劳动仲裁是查不到的,所以尽量在这一步谈拢解决。


但民事诉讼在网上都是公开的,而且第三方背调公司也是走系统的,一查一个准儿。如果非必要的话,尽量不要跟公司闹到这一步。


如果真遇到垃圾公司或公司里的垃圾人,第一个想法应该是远离,不要让他们往你身上倒垃圾。


尤其是你主动跟公司打官司这种,索要个加班费、年终奖什么的,难免会让新公司产生顾虑,会不会我offer的这名候选人,以后也会有对簿公堂的一天。


结语


现在这大市场行情,求职不易,遇到入职前背调更是如履薄冰,希望大家都能妥善处理好,一定要避免节外生枝的情况发生,不要在距离成功一米的距离倒下。


最后,祝大家工作顺利,纵情向前,人人都能拿到自己满意的offer,开开心心地入职。


作者:托尼学长
来源:juejin.cn/post/7295160228879204378
收起阅读 »

那些年,我在职场中做过的蠢事

大家好,我是程序员马晓博,目前从事前端行业已有5年有余,而近期由于被裁员有一段时间,也开始回顾自己的过往,发现自己以前在职场中,做过不少傻事,这里就写篇文章来记录下。曾经的犯傻已不可避免,索性公之于众,坦然面对。 ps: 像一直戴工牌,故意露个工牌带子在外面就...
继续阅读 »

大家好,我是程序员马晓博,目前从事前端行业已有5年有余,而近期由于被裁员有一段时间,也开始回顾自己的过往,发现自己以前在职场中,做过不少傻事,这里就写篇文章来记录下。曾经的犯傻已不可避免,索性公之于众,坦然面对。


ps: 像一直戴工牌,故意露个工牌带子在外面就不说了,谁还没年轻过呢?还真谁也别笑话谁哈哈。


自诩正义强出头


这是我在腾讯实习的时候遇到的,故事很简单,有个同事加了一个全局错误捕获的逻辑,导致原本有报错但是能够正常运行的程序,出现了线上 bug。


此时团队间要追究责任,认为是加了全局捕获错误的同事的责任。从现在的视角看,加了全局错误捕获同事自然是有问题的,但是当时的我,非常正义的认为,写 bug 的人才应该承担责任,而为了让代码更健壮写了全局错误捕获的同事是没有错的。


现在回想起当时自己义正严辞的发言,真是太年轻啦。


更何况这事我连当事人都算不上,只能安慰自己:谁还没年轻过呢?


平易近领导


这个事,也是发生在腾讯实习期间。


在来实习之前的我,深受互联网扁平化管理,工位不做区别,这些非常先进的思想影响,到了腾讯之后,听领导说,自己平时喜欢游泳,我一想我也喜欢啊,就直接跑领导工位上问,你平时在哪里游泳?


吓的我的直属上级,直接跑出来拉住我,我给你推荐,我带你游泳。


还有一次是,午休一起打王者荣耀,人多了把我空出来了,我就指导领导玩亚瑟,上来就说你这出装太肉了,没一点伤害,要怎么怎么玩。


我现在还能想起来他当时的眼神,你,是在教我做事?


对于领导,毫无距离感。这应该是很多年轻人都会有的心态,还会认为这就是年轻人的本色,是互联网的特色,而且会对奉承领导的人嗤之以鼻。


当然,互联网公司文化本身也都提倡这种,没有上下级,大家都能上。也就是倡导所谓扁平化管理,工位也是领导普通员工没区别。


曾经的我认为这一切都是问题不大的,就是扁平化,互联网就是不一样,但是透过一些其他行业的人,我虽不介意工位情况,但是难免对其底层所宣扬的扁平化产生一定的怀疑。


ps: 这里放一个其他行业的人的对互联网工位的一些看法,我妹妹(中国移动打过一段时间工)来参观了我的工位之后说了一句话:这是工位?牛马间吧这是,我不以为然。直到我看到了她的工位,差别还真不是一般的大,好歹有隔间。这里应该放一张图,但是我没有,大家自行脑补吧哈哈。


自诩性格真诚直率


可谓是初生牛犊不怕虎吧,看到认为拉垮的代码,就会找同事当面聊,应该怎么怎么样,不应该怎么怎么写。


但是实际上,代码写成你认为的不合理的样子,往往是很多因素导致的,或工期,或对方当时也是初学者,或团队风格,或当时环境,或仅仅是对方对新方案的尝试。


上下文不了解,就开始吐槽。但是实际上人家的代码线上运行毕竟没有问题,没有故障的代码,本身就是一份合格的代码以及对方能力的认证。


而我的当面不友好交流,真是一点礼貌没有。还美名其曰,性格比较直率真诚。


好在当时的同事比较友好,并未计较,还在我后来选房子的时候还提供了很大的帮助,可叹没有仔细聆听对方的教诲终究还是没有十全十美。


夜郎自大而不自知


这是在我工作两年左右时候产生的一种感觉,觉得自己完成业务没有任何压力,而且还承担了一些比较重要的工作,从而有一种觉得自己很行的错觉。


但是当时面试很快就泼了一盆冷水,一般来讲,这个阶段做业务的同学,应对业务开发其实基本都没有什么问题。


但是国内对程序员的面试根本不限于业务,深挖一些知识点,理解其原理才是及格线。


而当时的我就是一直停留在使用阶段,用好本身没有问题,但是奈何不足以应对面试。


当然,心态还是最重要的。半瓶水晃荡而不自知才是最可怕的。


开弓来个回头箭


这个事,说实话有点羞于启齿。


是我工作大概第四个年头发生的,那时我在网易工作有一年多一些。


由于自己做了一个还算比较有技术难度的项目,想要寻求晋升,结果当时的晋升期答辩都结束了自己还不知晓。


心里有闷气,就开始面试找工作,也顺利拿到了几个涨幅非常不错的 offer。


开始跟上级提离职,哈哈,对方聊了下,也答应了。


结果我自己晚上就是睡不着,始终觉得自己这个时候走,是逃避,是逃兵。而且这个时候走,之前的积累就全部白费,新公司还得从零做起。


网上都说开弓没有回头箭。但是我就还是厚着脸皮来个回头箭。


不得不说,这个决定并不算蠢事,我在整件事里最蠢的是没有想好就和上级提了离职,虽然拿了 offer,但是没有想清楚就离职,是非常不成熟的表现。


好在我的上级,也主打一个真诚,也明确说明,想清楚了就行。


接下来一年的合作非常愉快,既有可视化埋点平台这样的业务技术都有挑战的项目,也有团队状态管理方案的产出,顺利在第二年迎来了自己的晋升。


这一次,愚蠢更多是在于自己没有想清楚就开弓,而真诚待人在我看来是双向必杀技,但真诚也为我后来吃亏埋下了种子。


整体而言,在网易的几年,领导,同事,大家都比较真诚,不屑于暗地里去做一些掉份的事情,也让我在职场上,形成了真诚而缺少防范的一个问题,这在我的下一步职业生涯中,给我带来了比较大的打击和跟头。


和同事交往讲真诚


这是我在离开网易后,选择的一家规模比较小的公司。


这时候,我工作已经整整 5年了,但是我过往的经历终究让我缺少了一些对同事的防范,大公司还好,大家相互之间,利益冲突不大,更多的是合作关系,同时由于大家或多或少都有自己的一点点的"骄傲",所以其实并没有遇到一些因为利益冲突而导致的暗箭。


而过往的经历也在告诉我,真诚,并不会带来什么问题。


真诚无错,但是说者无意听者有心。


到新公司之后,也到了该带人的职级,此时,我还是主打真诚,很快就和团队融为一片。


几个关系近的同事和下属,知道我家里买了几套房,知道我平时看的书,知道我平时都在干啥,知道我对生活和工作的态度,知道我在工作上的安排。


这些事情,平时没有什么问题,但是当和有心的同事出现利益冲突的时候,这些事情就成为一把利剑,间接导致我失去了这份工作。


而这些利剑,是我亲手递给了对方。


对职场恶意的容忍


如果说真诚是给别人递了一把利剑,那么自己的容忍和锋芒的隐藏,是我自己收起了盾牌。


我在周围的同事身上,总能看到自己的影子,所以对于他们的恶意,往往有一定程度的容忍,我觉得,年轻人嘛,有点锋芒,很正常。


比如,当他们吹嘘自己写了一篇文章,获得了几个赞的时候,我往往是进行倾听并表示赞赏,虽然几个赞的文章其实真的很简单。又或者公开场合提出质疑,虽然我会讲道理,理可以辩明,但是对于这其中的恶意,我一般会选择包容。


但是就是这一步,自身锋芒的隐藏,在对方眼里却是得寸进尺的机会。


个人觉得,作为级别比对方高的,还是需要适时的漏出自身的锋芒,而不是仅仅倾听加赞赏,同时由于私下交往的密集,更导致对方的肆无忌惮。


从而亲手递给对方利剑,又自己收起盾牌。


只能说,在这条路上,我还是太稚嫩。


最后


以上,就是我个人认为在职场中,做过的一些蠢事。虽然已经工作了五年之久,但是这条路上,还是觉得太过稚嫩,谨以此文,纪念哪些蠢事!


ps: 不知道看完这篇的你,有没有回忆起一些类似的事情呢?欢迎交流哈。


// 还是那句话,都年轻过,谁也别笑话谁~


作者:程序员马晓博
来源:juejin.cn/post/7357994849386102836
收起阅读 »

从20k到50k再到2k,聊聊我在互联网干前端的这几年

大家好,我是程序员晓博,目前从事前端行业已经有将近 6年。这六年,从最初的互联网鼎盛时期,到今年是未来十年内最好的一年,再到疫情时期的回暖,再到如今年年都喊寒冬的寒冬。从最初的 20k,到最近的一份 50k 的工作,再到如今的 "政府补贴" 2k,可谓是感悟颇...
继续阅读 »

大家好,我是程序员晓博,目前从事前端行业已经有将近 6年。这六年,从最初的互联网鼎盛时期,到今年是未来十年内最好的一年,再到疫情时期的回暖,再到如今年年都喊寒冬的寒冬。从最初的 20k,到最近的一份 50k 的工作,再到如今的 "政府补贴" 2k,可谓是感悟颇多。


刚好最近 gap 一段时间,有所空闲,就整理下这几年的经历以及我所看到的行业的兴衰。


学生见闻


我是 2011 年读的大学,当时是电子科学与技术这个专业,并非计算机科班出身,更偏向于硬件编程,单片机,嵌入式,FPGA 这些会更多一些。


所以当时对于互联网行业的前端后端,并没有特别明确的概念,也对于 c++, java 这些语言的地位和适用性其实也没有明确的认知。


记得是 2012, 2013 年的时候,学校里经常有 java 培训班的宣传,说实话,那会还看不上 java,虽然自己也不会,但是学校里教的都是 c, c++, java 那会在我看来,更多的是一个 c++ 简化后的语言,所以对于我这个非科班的并没有提起兴趣。


现在回想起来,那时可真是入行的好时期,当然也是风云变换的几年。那会学校流传着一个段子: 你只要会安装 eclipse,就能找到一份美团的工作。而之后的一年,你得开发过自己的 app,才能找到安卓开发工作。


不过当时更多的观念告诉我至少得读个研究生出来,所以我选择了读研而非直接工作。可以说是错过了互联网飞速发展的黄金时期,直接毕业就来到了今年是未来十年里最好的一年。


也就是在研究生阶段,我才慢慢了解到,外界的互联网大厂,其实已经分化出了移动端,前端,后端这样的岗位,当时的前端圈最为活跃,而移动端,后端,似乎都已经定型。而前端圈的新框架此起彼伏,从 react, vue, webpack,还有很多已经消失在历史中的框架。


在当时的就业情况下,前端的工资似乎是最高的,在加上当时的前端圈确实很活跃,而学习起来也比较简单。作为非科班的学生,自学前端上手最快,所以我选择了前端作为自己的就业方向。专业对口的硬件开发就不说了,工资实在是大相径庭。


但是话说回来,硬件开发如今的热门程度,并不亚于当时的软件开发。硬件开发培训,挑战 30w 年薪这样的培训班,在 2022 年左右也出现了,一如当时 2015 年左右 java 开发包就业那样的火热。


不过这个专业,其实还给我带来了一份现在看起来可以称为副业的东西:代写课程设计和毕业设计,因为是比互联网前后端更细分的赛道,所以竞争并不激烈,我还是接到了不少的单子,但是由于自己本身也是学生,所以定价很低,基本按照 100/h 的费用在收,也有做代码复用的整合,但是在硬件这一块,它的售后并不像软件这样,往往需要花费时间帮用户在板子上走通,这一部分是比较花费时间的。也在研究生阶段尝试过转项目的方式来获取收益,但是由于定价过低以及单子并不多的问题,而没有继续。不过如今想来,借助 chatgpt 等 AI 工具,定价确实还能更低(尤其是包含论文的单子)。


第一份实习


出于提升自身竞争力的考虑,我在研究生阶段就开始了边自学,边找实习。好在自学的时间比较早,准备的也比较充分,顺利拿到了腾讯等几家公司的实习。


当时虽说还处于互联网发展的时期,但是竞争其实就已经比较激烈了,没有实习进大厂基本就是 hard 模式,我也是面试了 n 家公司,才拿到的 offer。


不过腾讯这个部门虽然在面试的时候,会问一些比较现代技术的问题,但是实际进去后,是写的 php 和 jquery。我的收获其实并不多,但是简历上好看一点,后来也顺利拿到了转正的 offer。


当时给的薪资应该是 16k 左右,还会加上城市的补贴大概 2k。不过最终因为房价的原因,并没有考虑留在深圳。


ps:我在实习的时候专门考察了深圳腾讯总部附近的房价,好像是 6w,确认过眼神,是掏光 6 个钱包也买不起的房子。不过据说一度涨到了 10w,现在没有再关注了,可能有所下跌吧。


说起来当时还有一个事让我印象比较深刻,也因此对阿里有了一些抵触。就是 2017:众多应届生被阿里毁了 offer。而对于这种事情,阿里给的解释是:拥抱变化。


可能马爸爸从那时就嗅到了危机,但这却是我第一次听说毁应届生 offer,非常败好感。ps: 现在这种毁应届生 offer 的事是非常常见啦。


似乎那时警钟已经敲响,但是我并没有未雨绸缪。


第一份工作


我是 2018 年毕业的,那会北京,上海,都有落户的限制,甚至还有一些积分制等似乎不欢迎应届生去上班的感觉。


那会刚毕业,可谓是心比天高,落个户都这么麻烦,我还不想去呢!还不如人深圳的口号,来了就是深圳人。而当时阿里的总部,就在杭州,而且杭州只要是大学生,立马就能落户,立马能摇号买房。而当时房价也比较亲民 (确认过眼神,是掏光钱包可以买得起的价格)。


所以基本上只找杭州的工作。最终入职了当时比较热门的 p2p 领域的独角兽,51 信用卡。


当时的 51信用卡,可以说是 p2p 领域的一只牛逼独角兽,甚至这家公司的缩写就是 51NB。


不过以我当时的认知,入职 51信用卡,纯粹是因为 20k 的薪资,以及全额报销来回路费。要知道当时 BAT 虽然有报销,但是实际上都有各种限制和上限。


ps: 以我当时的认知,几乎没有任何犹豫,我就关闭了我的副业通道,因为我觉得,精进前端技术,带来的收益更大,毕竟一个月 20k 的收入,更别提还有 4个月加的年终收入了。而这份副业,一方面对主业没有提升,同时还要消耗比较大的精力(主要集中在给学生讲解代码以及售后上),收入也就几千块而且时间比较集中,很难兼顾。


现在回过头来看,真的是误打误撞赶上了 p2p 行业的末班车。起始薪资确实不错,但是很快就来到了国家严控 p2p 行业的开端。


最终,入职当年,就遇到了一波一波的裁员,从开始的 n + 3,到 n + 2 再到 n + 1,可谓是一波一波的裁员。也包括了应届生。一如现在,应届生也还是裁员重灾区。


也因为 51 当时是杭州互联网第一波开启的裁员,还裁了应届生。口碑急转直下,但是很快就迎来了反转,隔壁滴滴,微店等也迅速开启裁员模式,仅仅只有 n + 1。


ps: 在 51 的第一年,是有年会的。第二年,年会倒是有,但是主题就是一句话,今年将是接下来十年内,最好的一年。也是这一年 2019,p2p 彻底宣告结束,51 也出现了警车上门的事件。最终借贷业务转型为依赖于银行的借贷业务。也结束了接近 10% 的储蓄利率时代。


短暂的阿里之旅


2020 年年初,p2p 行业宣告结束叠加疫情之初,悲观情绪四处蔓延。我在 51 的旅程也渐渐走到了尾声。


当时面试了字节和阿里。彼时的字节跳动,在杭州名气和规模还没有如今这么大。权衡之下选择了名气更盛,当时口碑更好的阿里。但是我对于字节的判断,实在是偏差的离谱,看着如今蒸蒸日上的字节,真是后悔莫及。


但是进了阿里,说实话是真有些不适应。


一方面生活上,不提供纸巾,让我颇为诧异,而时不时的团队聚餐竟然是 AA 也让我非常不适应。


当然,对方看我也很奇怪,说了一句话,感觉你是外企来的 (ps: 如今的 51信用卡还是有点小而美的感觉,各项业务依托也还在继续,也有露营等新业务的开拓,老板自由后也还在继续折腾着)。


因为疫情的原因,我并没有经历百阿培训。但是有一本小册子,写着价值观。让我印象深刻的是,"此时此刻,非我莫属" 和 "不难,要你做什么"。


这两句话听起来都没有什么问题,鼓励人奋进并没有任何问题,但是以前的奋斗,伴随着可能的巨大的回报,而我当时的付出与回报,显然已经是大打折扣了。


那时还没有 pua 的说法,但是确实有一些话让我觉得不舒服,比如目标要跳起来才是 3.5,蹦起来才是 3.75,以及业务好和你一点关系都没有,你把业务做好了,也只能给你 3.25。必须得出一些技术项目,才能拿到好绩效。


而那种没有人会点明但是大家都在执行的道理:和我 kpi 有关的就是天,无关的就是已读不回,而已读不回,就是拒绝。更是让当时还非常稚嫩的我想要逃之夭夭。


这些也不能说错,但是这确实和我在 5信用卡当时围着业务转的风格大相径庭。


说回技术,阿里整个集团的基建可以说非常好,反而我所在的这个小前端团队的基建,赶不上 51前端团队的基建。


不论是脚手架,发布系统(比较让我震惊的是我当时团队的发布是自己丢文件到服务器上,测试正式环境的区分还是靠手动维护的一份文件),开发流程,完全赶不上 51当时的丝滑程度。


可以说是对压力的逃避,也可以说是对这种环境的不适应,也可以说是对涨幅的不满,我很快就开启了下一段旅程。


现在回过头来看,当时离职,还是冲动占了大部分。一方面,随着后来业务接触的多了,能够理解当时那个小团队的基建差的原因:主要是业务形态,当时的小团队是 toB 的,要维护的仅仅是一个项目,自然在发布流程上的投入不会太多,而且收益也是远远不及 51 这种移动端几十上百个工程的发布工作来的实在。


而另一方面,所谓的深夜开会,不明说但是心里都清楚的加班氛围,以及唯 kpi 导向的风气,其实也不过是一种生存规则而已。强行说服自己接受也很容易。毕竟人生如戏,适应规则,利用规则,掌握规则,但凡能够想通这一点,当时坚持下来也非常容易。


长达三年的网易之旅


当处于阿里的水深火热之中时,一个在周末就完成了全部流程的网易团队,向我抛出了橄榄枝。


经过短暂的调整,我也就入职了这个团队,不曾想一待就是三年。此时的薪资来到了 30k 左右,但是由于当时这个团队独特的奖金制,月收入会比 base 高出不少。


团队的业务主要是直播,所以 toB 和 toC 的业务都有。基建上也比较完善,发布系统,组件库,脚手架,微前端,等等,相对更为繁荣。


这个团队并没有明确的技术项目的考核,还是以业务为主,大多数人,完成业务开发目标,就能够顺利拿到 3.5 的绩效,同时由于当时直播行业的繁荣,基本都会有一笔不菲的奖金。而技术项目属于锦上添花,确确实实能在最终的绩效上有所体现但是并不多。


但是恰恰是在这样的环境下,组内的同学在相对宽松的氛围下,更热衷于鼓捣技术项目,反而平时对技术的研究及讨论会更多一些。


这三年,也算是见证了业务的兴衰,从开始的营收暴涨开始出海,到最终营收暴跌收缩,到裁员。也不过短短三年。


现在回头来看,在这三年里,对于业务的了解更多的还是停留在表层,虽然当时觉得自己理解业务方的需求了,但是其实内部的很多玩法还是远非仅仅理解需求就能接触到的,什么大 R 运营,"军火商" 等等秀场直播的黑话,我是没有学到一点。


由于组内业务还算比较综合,c端页面的开发,b端后台都有所接触。同时业务之余还会有很多时间去做一些技术项目,比如我负责的 CloudIDE, WebIDE, 可视化埋点项目, 基于 zustand 的状态管理库, 均是这一时期的产物。


整体来讲,这三年不论是工作节奏,还是技术产出,都还算可以。


但是如今回过头来看,似乎这三年,对外界的关注,基本上有了一定的钝感,不像之前,对互联网的各个信息都会去了解看一下。反而这几年,说内敛沉稳也好,说闭门造车也好,说停留在自己的舒适圈内也好,除了技术层面的精进,对于整个行业的发展,都太过闭塞,仿佛只是重复一种舒适的生活过了三年:每天和老婆一起轮流开车上下班,顺便再健个身,住着自己的房子,还着公积金就能覆盖还有结余的带款。


如今回想起来,也正是这三年的经历,让我在技术上有所精进,但是对互联网行业的关注,反而有所下降。同时由于同事间的关系比较简单,也让我在人际交往上变得更加朴素真诚。


半年的小公司之旅


怎么说呢,好像人总是在不稳定的时候追求稳定,在稳定的时候追求不稳定。


所以在结束了网易的三年相对稳定的工作之后,我内心反而变得很躁动,想要去小公司,谋一番事业。


出来看机会之后,才发现外界的环境其实并没有平时了解的那么糟糕,确实不像之前机会那么多,但是确实也还有一些岗位。


在这之中,我选择了在发展业务第二曲线同时又有第一业务支持的说稳定又不稳定的公司 ---- 爱普拉维。


这家公司业务主要集中在海外,所以整体业务情况也还是非常客观。给出的薪资也比较客观,我的薪资也在这一时期,达到了 50k 左右。


不过入职之初,就经历了一些人事变动,如今想来,可以说是警醒,但是我应该是选择性的进行了忽视。心思沉浸在技术和一点点的管理上。


这个团队前端同学并不多,但是业务上除了常规的 h5 和少量的后台项目之外,还会存在一些 chrome 扩展逆向,爬虫项目的存在,而我被招进来的主要任务,也就是 chrome 扩展的逆向和爬虫项目。


在这一期间,我一度沉浸在了技术上的钻研中,从 webpack 的解码逆向,到 puppeteer 爬虫的实现,从 项目秒开的优化,到 svelte 的重构,都是对我之前技术经验的一个补充。也顺利在技术角度上在公司站稳了脚跟。度过了这个公司网上传言的不好过的试用期。


不过终归还是在人际交往上有所欠缺,叠加上公司的业务方向调整,导致了最终今年 1月份的离职。而这,也为我的职场画下了短暂的暂停键。


离职快小半年了


不知不觉离离职已经快小半年了,也顺利领到了失业金,也就是题目中提到的 2k。


这段时间从刚开始的玩乐,到中途的读书写文章,再到一些副业(对于无业人员来讲应该是主业)的探索。焦虑在所难免,未来也还比较迷茫,而其他主业的探索,说实话也没探索出来什么结果。


反倒是这段读书的时间给了我一些收获,一方面是 《穷爸爸富爸爸》中对于资产负债表的解释,我自己也做了一份,还参加了财富流沙盘游戏,对自己的财务状况有了更好的认知。另一方面便是 《认知觉醒》中关于焦虑的说法,一定程度上命中了当下的自己很多。


最后,就用《认知觉醒》中关于焦虑的根源来结束这篇文章吧:想同时做很多事,又想立即看到效果。自己的欲望大于能力,又极度缺乏耐心。人的天性就是避难驱易和急于求成。


ps: 避难驱易,这几个字实在太戳我了,也正是因为避难驱易,所以其实很多之前就想写的文章都拖拖拖,直到认识到是内心的避难驱易之后才开始控制自己开始输出,而也正是输出才让我注意到了自己之前没有注意到的点,才有了这篇文章以及 那些年,我在职场中做过的蠢事


最后的最后,愿我们都有美好的未来!


作者:程序员马晓博
来源:juejin.cn/post/7366567675315126281
收起阅读 »

听说去哪儿混合办公了? 聊聊程序员如何找到远程工作和好处

视频地址 哈喽大家好,这两天看到去哪儿开始混合办公了,作为远程工作的支持者我表示很开心,终于有大厂全面开始支持远程员工,去哪儿的邮件截图是这么说的 去年开始现在一些团队做小范围的尝试,好评如潮,有的同学利用通勤的时间减肥,有的同学可以回家陪家人,家人对工作的支...
继续阅读 »

视频地址


哈喽大家好,这两天看到去哪儿开始混合办公了,作为远程工作的支持者我表示很开心,终于有大厂全面开始支持远程员工,去哪儿的邮件截图是这么说的


去年开始现在一些团队做小范围的尝试,好评如潮,有的同学利用通勤的时间减肥,有的同学可以回家陪家人,家人对工作的支持度变高,而且工作效率一点都没下降,所以去哪儿在7月开始,每周三周五可以居家办公,无需申请


image.png


远程的好处非常明显,尤其是在一线城市,通勤的一个半小时就省下了,生活幸福度直线提高,你出去旅游周四就可以出发,如果五天都可以居家就是完全远程,你可以回老家省会还有北京一线的收入,老板节省下了组办公室的费用


因为远程无论是对员工满意度,还是老板的成本控制都很友好,混合或者远程办公在海外已经比较流行了,基本海外所有的招聘网站都有是否远程的选项,你可以过滤只看支持远程的,你搜工作就有一个选项是坐班,混合还是远程的,不像国内boss直聘,默认都是要通勤的,哪怕跟我说支持远程,也是只是面试可以远程


比如英国这边混合办公室基本操作,好一些的就会全员远程,比如这边大厂,Meta是每周去两天还是三天,我给忘了,我觉得国内以后支持远程的会越来越多,越来越多的小老板会抛弃自己奴隶主的思想,必须得盯着你干活,反而会考虑更真实的办公室成本


对远程最大的批评就是会降低工作效率,所谓的见面沟通效率才是最高的,确实有一些场景面对面效率最高,但是扪心自问,你现在开会的效率真的高吗,大公司动辄就一小时的会议,而且你首先就在通勤上浪费了一小时,你一天的效率可能很高吗 ,腾讯会议的AI总结功能比以前人工写的会议纪要不知道好多少倍


而一个人能有更多的时间照顾家庭后,闲暇时间才会产生创意,尝试新的工具和沟通方式等等,可能会让效率有非常大的提高


远程我就可以工作的同事带家人出游,远程久了你换工作就会只考虑远程的,再也不想挤地铁了,虽然现在通勤还是主流,尤其是还有马斯克这种非常反对远程的人,但是我最近聊的一些创业公司和小公司,基本都支持混合办公的


image.png


image.png


说了这么多远程办公的好处,喜欢工作和生活平衡的你可能已经蠢蠢欲动了,那远 程工作需要哪些能力呢,以及如何找到一个远程工作呢


其实远程工作有很多最佳实践,比较典型的有37signals这家公司,这家公司坚持小而美,写出来ruby on rails这种框架,有一套书叫重来,有三本,第二本就叫remote,比较系统的介绍远程工作文化的方方面面


image.png
包括远程工作的好处,可以逃离大城市的房价,更好的work life balance,更自在的生活,还反驳了一些对远程文化的批评,比如觉得坐在一起才能效率高,家里干扰大等等


更重要的介绍了如何更好的远程协作,这是需要学习的技能,比如如何可视化你的工作进度,高效的沟通,怎么管理远程员工的效率,还有远程人如何更好的生活,非常推荐


还有就是有一个公司叫gitlab,这个更厉害,这是一家美国上市公司,应该是第一个招股书里没有办公地址的,从老板到实习生,全员都散落在世界各地办公,关于大型公司如何实践远程文化,他们有一个专门的文档,质量非常高,主要是关于如何管理远程团队,还有很重要的远程开会技巧
地址和上面重来的电子书,评论区好像没法发链接,要不加我吧,我研究下怎么发给大家


image.png


image.png


那最后如何找到一个远程工作呢,其实之前我也分享过,这里简单总结下


首先程序员是非常适合远程的,所有的代码任务都可以在线完成,通过git管理代码,腾讯会议或者zoom开会,飞书钉钉slack等工作聊天等等
就像前面所述国内远程机会比较少,而且很多国内的老板哪怕远程也依然是监控心态,比如要求你开摄像头或者响应速度也挺难受,所以我觉得比如你想明年找个远程,那现在就优先学英语,程序员怎么学英语大家感兴趣以后可以专门聊,大概方法就是不要学英语,而是用英语学习编程就可以了


希望大家都能尝试和探索混合或者远程工作的新体验,能够拥有一个更加自在的职场,在努力工作的同时,可以有时间陪家人探索世界


作者:花果山大圣
来源:juejin.cn/post/7392116075674927131
收起阅读 »

同为情怀程序员,给博客园提供几个救园思路

博客园是老牌的技术社区,近来因为各种原因,导致社区运营岌岌可危。 笔者也是一个情怀型程序员,但是在这几年的创业生涯中,也摸爬滚打,养成了一些商业思路。 这个世界,就是一个肉弱强食,尔虞我诈的,不要做一个纯粹的情怀主义者,也不要做一个老实人。 那么下面呢,基于笔...
继续阅读 »

博客园2024年7月15日救园文章


博客园是老牌的技术社区,近来因为各种原因,导致社区运营岌岌可危。


笔者也是一个情怀型程序员,但是在这几年的创业生涯中,也摸爬滚打,养成了一些商业思路。


这个世界,就是一个肉弱强食,尔虞我诈的,不要做一个纯粹的情怀主义者,也不要做一个老实人。


那么下面呢,基于笔者的认知和思路,给博客园提供一些救园思路。


降本增效


个人认为,这是非常核心,非常重要的问题。


收入骤减,那么我们的开销成本,也要跟着降低,才能维持更久的运转。


比如关停不必要的网站功能,减少服务器的运行开支。


作为一个技术社区,主要的金钱投入,除了人员开支,办公场地之外,应该就是服务器的运行成本了吧。


那么相应的,人员开支,办公费用,场地,该减少的减少,该换场地的就换场地。


这是降低成本,控制支出最直观的方式了。


那么接下来呢,就是如何提高收入了。


外包接单


这是博客园正在做的,当时我看到官方提成只拿5%(原文我没找到了,如有错漏,请指正),这个提成,太低了。


我自己也做接单撮合,运营2-3个月,撮合成功30-40单,平台提成是15%。


那么这个提成,市场行情是多少呢?20%-30%。


5%,说实话,太少了。


接单撮合,有一个问题非常重要:接单,客户,技术,三方都要能赚到钱


你拿5%,唉,还是程序员思维,还是在做情怀。


不要这样,商业就是商业,程序员作为最终实施的一方,确实出力最多,最苦,最累。


平台少拿点,给技术多一点,非常好,但是,我的个人建议是不能低于15%,为什么呢?


如果有额外的介绍人,可以给介绍人5%或一半(7.5%),这样才有余地。


如果平台赚不到钱,那么如何运营好接单撮合这个项目呢?


广告接入


这个问题,在博客园7月15日的文章中已经说明了。


博客园7月15日文章


我的感觉是,令人肃然起敬,但是违背社会规律。


可以这么说,为了博客园的存亡问题,至少90%以上的用户,是不反感广告的。


但是,目前来看,似乎只有网站的运营者反对广告。。。


只要不做成某C开头的社区,看个电视剧,广告比剧集还长。


所以,我突然发现,这一整个事件的根本原因是什么?居然是人的执念。。可怕。


凭博客园的流量,接入广告,分分钟救园,大家又能愉快地玩耍。


不要考验人性


笔者曾经说过一句话,在网上广为流传。


程序员的钱,比马桶的粪还难掏


博客园是一个程序员社区。


博客园T恤


通过卖社区周边产品,还是通过情怀变现,下策,下策啊!


既然要商业化,那就不要过多考虑情怀,要从商业的角度去思考问题。


所谓的商业,并不是变成一个尔虞我诈的商人,有太多的既盈利,又给用户带来有价值,有意义的参考,大家可以想想有哪些。


而且,不管是会员,还是周边,这根本不是一个“我尽心尽力服务多年,当我落难的时候,大家挺身而出”的问题。


大家受益于博客园,博客园也因为所有用户而收益,这是一个相互作用。


绝大多数用户,仅仅只是看客,真正写文章,在博客园出人头地的,少之又少。


社会和技术的发展,日新月异,技术内容,也远不及当年那么必需。


周边也不是必需,会员也是一次性的,根本不具备持续性。


救了这次,下次呢?所以还得从长计议。


产品推广分成


现在,有各种“严选”,“甄选”,“优品”。


博客园也可以做严选,甄选产品。


通过合作的模式,降低产品价格,获得产品提成,也不失为一个好地方方式。


比如,某某软件,某某产品,以低于官网价格的拿货价,平台推广卖给光大社区用户。


这样,用户购买价格更低,产品方销量更好,博客园平台也赚到了钱,也是一个三方共赢的方案。


比卖会员,卖周边好。


这种方式,选品品类更多,更接近用户刚需。


甚至可以发起投票,让用户选择拼团购买什么产品,软件,工具。


既可以积累社区凝聚力,也能让用户买到真正的,需要的东西,平台也赚到了钱。


舆论维护


要倾听用户的声音,目前技术圈,对博客园的这段时间运营情况,可以说非常不满。


鱼皮的这篇文章我觉得就说得不错,这是具备真正生意头脑的创业者思路。


鱼皮的文章链接


鱼皮的文章


如果一意孤行,还是程序员的传统思路,最终很可能连口碑也坏了,三思。


网站出售


最后呢,当然,是最坏的情况,万不得已,也可以卖掉博客园,获得一笔不菲的收入。


当然,这是下下之策。


希望博客园可以挺过这次难关,不论如何,这么有情怀的社区,真的不多见了。


如果它真的消失了,那将是技术圈的重大损失。


作者:前端之虎陈随易
来源:juejin.cn/post/7392071328520994816
收起阅读 »

显示器分辨率的小知识

数字化时代,显示器是我们日常生活和工作中不可或缺的一部分。无论是在电脑、手机、平板还是电视上,我们都依赖显示器来呈现图像和文字。然而,对于许多人来说,显示器分辨率这一概念可能并不十分清晰。 分辨率是影响显示器性能和视觉效果的关键因素之一。它决定了图像的清晰度、...
继续阅读 »

数字化时代,显示器是我们日常生活和工作中不可或缺的一部分。
无论是在电脑、手机、平板还是电视上,我们都依赖显示器来呈现图像和文字。然而,对于许多人来说,显示器分辨率这一概念可能并不十分清晰。


分辨率是影响显示器性能和视觉效果的关键因素之一。它决定了图像的清晰度、细节和整体观感。
因此,了解显示器分辨率的知识对于我们选择和使用显示设备至关重要。


本文将向大家介绍关于显示器分辨率的一些小知识,希望能够帮助大家更好地选择合适的显示器,并提升在使用显示设备时的体验。


1. 常用的分辨率


代号分辨率备注
720p1280 x 720也被称为 HD高清
1080p1920 x 1080也被称为 FULL HD全高清
1440p2560 x 1440也被称为 QHDQuad HD
2160p3840 x 2160也被称为 4K
4320p7680 x 4320也被称为 8K

2. 一些术语


关于显示器,最常见的三个术语就是:


2.1. 刷新率


刷新率Refresh rate)是指屏幕硬件每秒刷新以显示图像的速率,通常以赫兹Hz)为单位。
刷新率是指显示器的能力,简单理解就是每秒屏幕能切换多少个图像。


刷新率越高的显示器,显示的视频越流畅。
不过,由于人眼有视觉暂留的能力,一般60Hz左右的液晶屏已经很流畅了。


2.2. 帧速率


帧速率Frame rate)是指视频或游戏每秒传输的图像帧数,通常以FPS每秒帧数)为单位。
帧速率一般取决于视频或者游戏本身,与显示器关系不大。


帧速率越高,视频和游戏的清晰度和流畅度越高,当然,占用的硬盘空间也越大,对显卡要求也越高。


在实际使用中,如果帧速率高于刷新率,可能会出现屏幕撕裂等现象,因为显示器无法完全跟上图像的更新速度。
而如果刷新率高于帧速率的话,对显示影响不大,但是对显示器来说,有点大材小用。
因此,刷新率和帧速率的匹配和协调对于获得最佳的视觉体验,以及购买显示器时考虑性价比至关重要。


2.3. 纵横比


纵横比Aspect ratio)概念比较简单,是指水平像素数垂直像素数的比率。
对于视频和游戏,一般可以调节输出的纵横比;对于显示器,也可以通过调节像素来显示不同的纵横比。


视频或游戏与显示器的纵横比匹配的时候,显示效果最佳,图像不会变形。
这也是为什么很多视频在手机上竖屏看的时候,只会集中在中间显示,上下很多部分都是黑屏,
就是因为视频的纵横比在竖屏上的纵横比不匹配,只能缩小在中间那部分显示。


换成横屏观看,视频才能完全展开。


3. 容易混淆的概念


关于纵横比刷新,有2个概念可能我们平时容易混淆。


3.1. 4:3 和 16:9


这两种纵横比常常被误会成差不多,甚至是一样的,但是细算起来,它们的差距还挺大。


对于4:3 的纵横比意味着图像中每 4 个宽度单位就有 3 个高度单位,
最终显示出来,屏幕宽度比长度增加了 33%


16:9 的纵横比意味着图像中每 16 个宽度单位就有 9 个高度单位,
最终显示出来,屏幕宽度比长度增加了 78%


3.2. 1080i 和 1080p


i 代表隔行扫描,通过照亮屏幕上的奇数像素和偶数像素,然后将它们的结果拼接在一起以获得最终图像,容易闪烁。
p 代表逐行扫描,对图像以逐行平滑的方式拼接,有效防止屏幕闪烁。


1080p1080i的显示效果更加的清晰和细腻,因为1080p是后来改进的技术,现在的显示器用 i 的方式已经不多了。


作者:databook
来源:juejin.cn/post/7302268383315148827
收起阅读 »

失业的七个月,失去了很多很多,一个普通的不能再普通的人的年中总结

开篇 这不是一篇技术的文章。 第一阶段 裸辞后的两个半月 介绍下自己的情况,坐标上海,双非院校前端打工人,目前是有三年的工作经验,在23年的年底裸辞了,有一个女朋友,本来异地,她在22年10月来到了上海,选择相信我。 在刚刚裸辞的时候,我信心满满的在各个平台投...
继续阅读 »

卡卡西.jpg


开篇


这不是一篇技术的文章。


第一阶段 裸辞后的两个半月


介绍下自己的情况,坐标上海,双非院校前端打工人,目前是有三年的工作经验,在23年的年底裸辞了,有一个女朋友,本来异地,她在22年10月来到了上海,选择相信我。
在刚刚裸辞的时候,我信心满满的在各个平台投递着简历,给自己做了一个规划:“先投外包的,投小公司来练手,最后一鸣惊人进入大厂,走向人生巅峰!”当时已经可以在各大论坛上看到,前端已死啊之类的标题,但从实际感受来说,好像并没有那么夸张,程序员还是比较高薪的职业。已读不回是挺常见的,但实际面试还是比较多的,并不像大家在网上说的感觉前端开发都要找不到工作了。在这三个月里,我BOSS上沟通了400个人左右,面试的有11家,其中有5个外包。这样的情况在现在的我看来真有点属于暴殄天物了,只沟通了400多个公司就约了11家面试,后来的我才知道这就是我找工作最顺利的阶段,也是我最浪费机会的阶段。由于没有一个正确的认知,以及一个具体的规划和行动,我面试没有尽力去准备,再加上父亲住院,经常往医院跑,一来一回基本一天就没了,11家面试只有一家进入了二轮复面,甚至没有一家进入到谈薪阶段。可当时的我始终是抱着一个比较乐观的态度,还会天天和我的女朋友吐槽一些公司,从来没有认真的找过自己的问题,天真的认为只要我好好准备一下,就一定可以拿下offer,还和她保证我过年前一定能找到工作!她也十分信任我,可后续的发展就愈发的不可控了。


第二阶段 字节面试一轮结束 失业的第四个月


因为之前的面试都没有一个很好的反馈,渐渐的我有点开始着急,也已经渐渐处于摆烂的状态投递简历,就是海投,不看公司介绍,只要是个公司我就打个招呼,有回复我就发个简历,以至于在投递简历的过程中,都不知道何时自己投了字节的一个岗位,然后还约到了面试,我一时间来了信心,约了两周后的字节一轮面试。这两周我没有打开招聘软件,处于一个孤注一掷的状态,实际上就是抱着侥幸心理想碰碰运气,这期间我看了一周的技术课程,浅浅的背了一些八股文,但并没有对之前所有面试的经历进行一个总结,找找自己的问题。之后时间很快就到了面试的当天,这天我突然感觉自己差的东西有很多,但还是硬着头皮去面了,结果可想而知,一轮没有通过。我当时非常沮丧,给女朋友打了一个电话说自己没有通过,她还是非常鼓励我,不给我压力。她工作也很忙,基本就是早上8点到晚上11点的上班强度,但还是一直很有耐心的和我说没事,没有工作也没事,等你想找工作的时候再找也来得及。实际这个时候我就应该醒悟了,自己并不是什么技术大牛,只是一个顶着一个前端工程师光环的cv工程师,一个凭借一些错误的自我认知,就觉得自己未来一定会更好的愚蠢、不可理喻的愚蠢的人,况且我已经不算年轻,是一个快要奔三的大龄青年了,还抱着这种天真,不成熟的想法,但这也是后话了,当时的我还是挫败了几天后继续着躺平的生活,还大言不惭的和我的女朋友说着我三四月份一定可以找到一份合适的工作,做出承诺,但却没有匹配承诺的态度和行为,这时候的女朋友已经对我有了一些意见,但她没有明确的和我说,怕给我压力,只是感觉她的工作状态逐渐不对了,疲惫和内耗占据了她大部分空闲时间,她第一次跟我说了,要不试试别的岗位吧,前端的工作这么不好找,不如换个方向,但这句话我没有放在心上。因为报了健身班,我的健身教练已经开始为我着急了,他说要不来干健身教练吧,我带你入门,我也只当是玩笑话了。


第三阶段 裸辞后的六月半


不出意外的,在金三银四过去之后,我仍然没有找到工作,面试机会也几乎没有了,一个月可能有一两个外包的面试,但自己因为不想考虑外包,在某一家外包面完挫败感的驱使下,屏蔽了BOSS上大多数的外包公司,自此我的BOSS上再也没有一点水花。后来在我认为是缘分的加持下,我的父母和她的父母在上海碰到了,然后顺利的吃了饭,见了面,我爸妈给了我的女朋友见面礼一万零一的红包,寓意万里挑一。我的父母是很普通的农民,一辈子都跟种地打交道,不善言辞,一整个饭局,基本就是我的哥哥和她的爸妈和她在聊天,我在饭桌上也一言不发,可能是怕她的父母问及我工作的问题,也可能是因为哥哥是个很优秀的人,他对于我的期望很高,每次他在场的时候我都会避免开口,以免被抓到会被教育的点。总之饭局也很快就结束了,她的父母对我也没有什么过分的要求,也没有着急让我找工作,说着安慰我的话,现在市场环境不好,找不到工作很正常,利用这段时间学习,以后还有很多机会,你还年轻呢,不要害怕。现在的我几乎是流着眼泪打出当时阿姨跟我说的话,她们一家都是很讲道理,也会为别人考虑的人,但我还是辜负了他们的信任,让他们失望了。这期间面试机会少之又少,我这时候已经渐渐由摆烂,变得慌张的不知所措了,现在发生的情况我之前完全没有考虑到,随着存款一点一点的被社保、房租、吃喝消耗,女朋友的状态也愈发变得消极,我内心陷入了很痛苦的境地。但这并没有让我去总结面试的问题,只是一味的投着简历,看着八股文,等待面试。在六月初,女朋友第二次和我商量,如果前端的工作不好找就换个别的干干吧,这时我已经有点想逃避社会了,想要避免外出,除了每天去健身房,剩下时间几乎都呆在小小的出租屋房间。但我还是答应了她,在6月15号之后我就找其他岗位的工作。接下来几天,有了两个面试,还有原来公司的人找我想让我帮忙做个项目,因为甲方报价还没有,所以这个事情就相当于没有后续,但实际我还是心存幻想,想走更平坦的路。接着时间很快就到了6月13号,她问我计划还实行吗,我说当然实行啊,不过想等一下这个项目的事情,她第一次发泄了自己的情绪,说自己要等到什么时候啊!6月14号,她说她好累,不想等了,想分手。晚上沟通中我没有任何的话可以讲出口,一直沉默,气氛一直很凝重,6月15日,我整理了一些我的问题,想和她聊聊,她上班回来之后很平静的和我说了分手,说了本身对我的期望也没有那么高,说只需要有一个工作,或者我努力的心就可以。我说了我的很多问题,保证我自己会改,但为时已晚,因为她已经给我了足够的时间,但我没有珍惜。她把礼金退给了我,我搬了出去,故事在这就画了句号。


现在


痛苦总是后知后觉,并且悄悄击碎你的防线。父亲身体愈发不好,在知道我分手之后,去医院检查身体的时候晕倒了,进入急诊的那一刻,看着急诊中的病人,看着意识模糊的父亲,我的世界一下就崩塌了。好在父亲没有大碍,但精神状态不是很好。我没有一个最坏的预期,并且时刻都在回避问题,不敢直面自己,承认自己的弱小以及愚蠢,还渐渐看不到身边人做出的牺牲和努力。我浑浑噩噩的过着这几天,这几天是我第一次正面的和哥哥进行了我认为的平等的沟通,我第一次很认真的听他讲话,不再排斥,也第一次觉得他说的其实都对,他的话第一次在我眼里不是说教,而是关心和爱护。我发现了自己的很多问题,他还教会了我一个人生态度:凡事抱最大的希望,尽最大的努力,做最坏的打算。我的世界开始慢慢重建起来,我发现了自己之前的工作内容很简单,基于vue2、antdv、Echarts的后台管理系统,图表,小程序。我发现我没有规划,总是走一步看一步,并且还带着莫名的自信。我发现我辜负了很多人的期待,让自己也很失望。我发现了很多很多,我不知道这次裸辞还会持续的给我带来什么影响,但生活总是要继续,一手好牌最终打的稀烂,但已经没有时间让我继续消沉下去,2024年有可能是我这一生都不会忘记的。


结语


这七个月,让我失去了很多很多,失去了工作,失去了信任,失去了挚爱,失去了···这篇文章主要目的不是为了卖惨,或者贩卖焦虑,只是一个普通的不能再普通的人的一段时间的总结,是对可能已经逝去爱情的怀念。未来还会有很多很多意外的事情发生,我需要做的是积极的去面对,能做的是适应环境,找自己的不足,及时补救,不要一切都来不及的时候才后悔,才反思。我想要和林克一样,忍受孤独,努力变强,去找到她。


微信图片_20240621211014.jpg


作者:小颜同学
来源:juejin.cn/post/7382892371224461352
收起阅读 »

程序员的这10个坏习惯,你中了几个?超过一半要小心了

前言 一些持续关注过我的朋友大部分都来源于我的一些资源分享和一篇万字泣血斩副业的劝诫文,但今年年后开始我有将近4个月没有再更新过。 有加过我好友的朋友私聊我问过,有些回复了有些没回复。 想通过这篇文章顺便说明一下个人的情况,主要是给大家的一些中肯的建...
继续阅读 »

前言



一些持续关注过我的朋友大部分都来源于我的一些资源分享和一篇万字泣血斩副业的劝诫文,但今年年后开始我有将近4个月没有再更新过。




有加过我好友的朋友私聊我问过,有些回复了有些没回复。




想通过这篇文章顺便说明一下个人的情况,主要是给大家的一些中肯的建议。



我的身体



今年年前公司福利发放的每人一次免费体检,我查出了高密度脂蛋白偏低,因为其他项大体正常,当时也没有太在意。




但过完年后的第一个月,我有一次下午上班忽然眩晕,然后犯恶心,浑身发软冒冷汗,持续了好一阵才消停。




当时我第一感觉就是颈椎出问题了?毕竟这是程序员常见的职业病。




然后在妻子陪伴下去医院的神经内科检查了,结果一切正常。




然后又去拍了片子看颈椎什么问题,显示第三节和第四节有轻微的增生,医生说其实没什么,不少从事电脑工作的人都有,不算是颈椎有大问题。




我人傻了,那我这症状是什么意思。




医生又建议我去查下血,查完后诊断出是血脂偏高,医生说要赶紧开始调理身体了,否则会引发更多如冠心病、动脉粥样硬化、心脑血管疾病等等。




我听的心惊胆战,没想到我才34岁就会得上老年病。




接下来我开始调理自己的作息和生活,放弃一些不该强求的,也包括工作之余更新博客,分享代码样例等等。




4个月的时间,我在没有刻意减肥的情况下体重从原先152减到了140,整个人也清爽了许多,精力恢复了不少。




所以最近又开始主动更新了,本来是总结了程序员的10个工作中的不良习惯。




但想到自己的情况,决定缩减成5个,另外5个改为程序员生活中的不良习惯,希望能对大家有警示的作用。



不良习惯


1、工作


1)、拖延症


不到最后一天交差,我没有压力,绝不提前完成任务,从上学时完成作业就是这样,现在上班了,还是这样,我就是我,改不了了。



2)、忽视代码可读性


别跟我谈代码注释,多写一个字我认你做die,别跟我谈命名规范,就用汉语拼音,怎样?其他人读不懂,关我什么事?



3)、忽视测试


我写一个单元测试就给我以后涨100退休金,那我就写,否则免谈。接口有问题你前端跟我说就行了发什么脾气,前后端联调不就这样吗?!



4)、孤立自己


团队合作不存在的,我就是不合群的那个,那年我双手插兜,全公司没有一个对手。



5)、盲目追求技术新潮


晚上下班了,吃完饭打开了某某网,看着课程列表中十几个没学完的课程陷入了沉默,但是首页又出现了一门新课,看起来好流行好厉害耶,嗯,先买下来,徐徐图之。



2、生活


1)、缺乏锻炼和运动


工作了一天,还加班,好累,但还是得锻炼,先吃完饭吧,嗯,看看综艺节目吧,嗯,再看看动漫吧,嗯,还得学习一下新技术吧,嗯,是手是得洗澡了,嗯,还要洗衣服,咦,好像忘记了什么重要的事情?算了,躺床上看看《我家娘子不对劲》慢慢入睡。



2)、加班依赖症


看看头条,翻翻掘金,瞅瞅星球,点点订阅号,好了,开始工作吧,好累,喝口水,上个厕所,去外面走走,回来了继续,好像十一点半了,快中午了,待会儿吃什么呢?


午睡醒了,继续干吧,看看头条,翻翻掘金,瞅瞅星球,点点订阅号,好了,开始工作吧,好累,喝口水,上个厕所,去外面走走,回来了继续,好像5点半了,快下班了,任务没完成。


算了,加加班,争取8点之前搞定。


呼~搞定了,走人,咦,10点了。



3)、忽视饮食健康


早上外卖,中午外卖,晚上外卖,哇好丰富耶,美团在手,简直就是舌尖上的中国,晚上再来个韩式炸鸡?嗯,来个韩式甜辣酱+奶香芝士酱,今晚战个痛快!



4)、缺乏社交活动


好烦啊,又要参加公司聚会,聚什么餐,还不是高级外卖,说不定帮厨今天被大厨叼了心情不好吐了不少唾沫在里面,还用上完厕所摸了那里没洗的手索性搅了一遍,最后在角落里默默看着你们吃。


吃完饭还要去KTV?继续喝,喝不死你们,另外你们唱得很好听吗?还不是看谁嗷的厉害!


谁都别跟我说话,尤其是领导,离我越远越好,唉,好想回去,这个点B站该更新了吧,真想早点看up主们嘲讽EDG。



5)、没有女朋友


张三:我不是不想谈恋爱,是没人看得上我啊,我也不好意思硬追,我也要点脸啊,现在的女孩都肿么了?一点暗示都不给了?成天猜猜猜,我猜你MLGB的。


李四:家里又打电话了,问在外面有女朋友了没,我好烦啊,我怎么有啊,我SpringCloudAlibaba都没学会,我怎么有?现在刚毕业的都会k8s了,我不学习了?不学习怎么跳槽,不跳槽工资怎么翻倍,不翻倍怎么买房,不买房怎么找媳妇?


王五:亲朋好友介绍好多个了,都能凑两桌麻将了,我还是没谈好,眼看着要30了,我能咋整啊,我瞅她啊。破罐破摔吧,大不了一个人过呗,多攒点钱以后养老,年轻玩个痛快,老了早点死也不亏,又不用买房买车结婚受气还得养娃,多好啊,以后两脚一蹬我还管谁是谁?



总结



5个工作坏习惯,5个生活坏习惯,送给我亲爱的程序员们,如果你占了一半,真得注意点了,别给自己找借口,你不会对不起别人,只是对不起自己。





喜欢的小伙伴们,麻烦点个赞,点个关注,也可以收藏下,以后没事儿翻出来看看哈。


作者:程序员济癫
来源:juejin.cn/post/7269375465319415867
收起阅读 »

为什么常说,完成比完美更重要

前言 Hi 你好,我是东东拿铁,一个正在探索个人IP的后端程序员。 最近学习了12个生财思维,受益匪浅,但是纸上得来终觉浅,绝知此事要躬行,没有亲身实践,怎么能更好的理解呢? 单纯的学习,尤其是思维工具类的学习,只看但不实践,是不会有太好的效果的。 课程中的案...
继续阅读 »

前言


Hi 你好,我是东东拿铁,一个正在探索个人IP的后端程序员。


最近学习了12个生财思维,受益匪浅,但是纸上得来终觉浅,绝知此事要躬行,没有亲身实践,怎么能更好的理解呢?


单纯的学习,尤其是思维工具类的学习,只看但不实践,是不会有太好的效果的。


课程中的案例虽然真实,但是每个人的眼界、能力不同,所以案例对自己只能开开眼,但自己对于思维模式的理解却不会有太多的帮助。


为了更好的理解每一个生财思维,我决定根据每一个生财思维去复盘过去十年间遇到的机遇,看看自己错过了什么,有抓住了什么,然后把学习过程中的思考重新整理出来。


今天想和大家分享的是迭代思维,希望对你有所帮助。


迭代思维


什么是迭代思维


迭代是什么意思,一种重复反馈过程的活动,每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。


迭代对于一个程序员来讲并不陌生,甚至很多公司把版本发布,都成为“迭代”。


如何真正的用好迭代思维?


主要有三步



  1. 确定目标,比如在软件开发中,我们首先要知道,我们目标是什么,是收入、用户数,还是流量。

  2. 找到迭代方法,这个依然很常见,利用上一篇文章讲的对标思维,参考领域成功的高手,看看他们用了什么工具、方法。

  3. 持续改进,每次哪怕只改进一小点,让每一步走的更踏实。


先完成,再完美


一周上线的新系统


软件开发是离不开迭代的过程的,就算是你设计了完美的框架,也会在各类需求的轰炸中不得不进行迭代满足用户需求。


在上家公司,有一次领导安排一个新业务启动,于是要单独启动一个项目。


我不知道大家平常对于一个新项目的开发需要多久,那时候我的能力较弱,开发语言也不熟悉,以往的经验是,从技术设计、框架搭建、代码开发、测试这一套流程下来,我觉着这个项目起码也要1个月左右才能完成吧。


但是经过领导们评估,最终决定这个系统的开发时间是5天,留两天时间自测,说实话我是持着怀疑的态度,硬着头皮接了下来。


最终项目用了一周多的时间就上线了,虽然时长报警,缺乏监控,代码性能不够高,但快速验证了业务的可行性。


我承认刚上线的系统并不是一个完美的系统,甚至有问题时发下连日志都没打印。


但是,发现问题排查困难,所以先不停的完善日志打印。


接着觉着发现问题太慢了,补充了监控和报警,异常情况第一时间就能感知。


性能不够,响应时间长,花了3天时间优化性能瓶颈点。


业务不断扩充,代码扩展性不好,优化了1周的时间,进行了一部分重构。


就是随着一段段时间的投入,一次次的发版上线,最终服务趋于稳定,也成了业务的一部分收入来源。



不断练习的写作


如果还能想到一个例子,那这件事就是写作。


去年年底决定开始写作时,发布的那篇文章,写完就直接发布了,很明显,数据非常不好。


内容很少分段,也没有配图,更不用说加黑、二级标题这些了。


先从内容开始,对比很多流量好的文章,都有一个共性,就是没有一大段话,而是都进行了分段。为了让大家阅读更加轻松,把一大段话,拆成几个小段,看来更加清爽。


添加了分段之后,又发现如果正片内容都是文字,一样让大家阅读压力很大,所以在其中搭配上配图,效果会更好。


后面,改进了文字排版,开始带有一级标题、二级标题。


再后来,学习如何取标题、如何选题,还建立了自己的写作模版,开头和结尾,还添加上了引导关注的文案。


就用这种方式,在掘金和公众号上,也写出了一些数据比较好的内容,掘金的创作登记,从lv3,也升级到了lv5。



而迭代思维,也会在写作上,持续应用下去。


不去开始,必定失败


迭代思维,主要适用于哪类场景呢?


当你有一件事情、一个项目时,因为内心没有完美的方案,迟迟没有行动时,就需要用到迭代思维了。



记得我发布的第一篇文章,可以是2022年了,然而下一次再次发布,已经隔了1年多的时间。


相隔时间这么久的原因,就是因为我在那个时候,我发现我写出的文章和别人差距太大了,别人的文章洋洋洒洒一两千字,标题吸引人,然而我自己的文章即没有深度,又没有自己的感触。


我在和一篇优秀的文章做比较时,我完全不知道应该如何做,才能写的像别人一样好。


于是,遇到问题不做了,睡大觉。这一睡,就白白荒废了1年的时间。


迭代思维,首先要避免完美思维,先开始,然后最重要的是小步快跑。


记得在学习写作的时候,听到老师的一句话,让我记忆犹新,也再次分享给大家。



想都是问题,做才有答案。



说在最后


好了,文章到这里就要结束了,总结一下。


迭代思维从概念上看其实不难,只需要三步即可,确定目标找到迭代方法持续改进




作者:东东拿铁
来源:juejin.cn/post/7390134326871080972
收起阅读 »

前段时间面试了一些人,有这些槽点跟大家说说

大家好,我是拭心。 前段时间组里有岗位招人,花了些时间面试,趁着周末把过程中的感悟和槽点总结成文和大家讲讲。 简历书写和自我介绍 今年的竞争很激烈:找工作的人数量比去年多、平均质量比去年高。裸辞的慎重,要做好和好学校、有大厂经历人竞争的准备 去年工作...
继续阅读 »

大家好,我是拭心。


前段时间组里有岗位招人,花了些时间面试,趁着周末把过程中的感悟和槽点总结成文和大家讲讲。


image.png


简历书写和自我介绍



  1. 今年的竞争很激烈:找工作的人数量比去年多、平均质量比去年高。裸辞的慎重,要做好和好学校、有大厂经历人竞争的准备


image.png



  1. 去年工作经历都是小公司的还有几个进了面试,今年基本没有,在 HR 第一关就被刷掉了

  2. 这种情况的,一定要走内推,让内推的人跟 HR 打个招呼:这人技术不错,让用人部门看看符不符合要求

  3. 用人部门筛简历也看学历经历,但更关注这几点:过去做了什么项目、项目经验和岗位对不对口、项目的复杂度怎么样、用到的技术栈如何、他在里面是什么角色

  4. 如果项目经历不太出彩,简历上可以补充些学习博客、GitHub,有这两点的简历我都会点开仔细查看,印象分会好很多

  5. 现在基本都视频面试,面试的时候一定要找个安静的环境、体态认真的回答。最好别用手机,否则会让人觉得不尊重!

  6. 我面过两个神人,一个在马路上边走边视频;另一个聊着聊着进了卫生间,坐在马桶上和我讲话(别问我怎么知道在卫生间的,他努力的声音太大了。。。)

  7. 自我介绍要自然一点,别像背课文一样好吗亲。面试官不是考你背诵,是想多了解你一点,就当普通聊天一样自然点

  8. 介绍的时候不要过于细节,讲重点、结果、数据,细节等问了再说

  9. 准备介绍语的时候问问自己,别人可以得到什么有用的信息、亮点能不能让对方快速 get 到

  10. 实在不知道怎么介绍,翻上去看第 4 点和第 5 点

  11. 出于各种原因,很多面试官在面试前没看过你的简历,在你做自我介绍时,他们也在一心二用 快速地浏览你的简历。所以你的自我介绍最好有吸引人的点,否则很容易被忽略

  12. 你可以这样审视自己的简历和自我介绍:


    a. 整体:是否能清晰的介绍你的学历、工作经历和技能擅长点


    b. 工作经历:是否有可以证明你有能力、有结果的案例,能否从中看出你的能力和思考


    c. 技能擅长点:是否有岗位需要的大部分技能,是否有匹配工作年限的复杂能力,是否有区别于其他人的突出点



面试问题


image.png



  1. 根据公司规模、岗位级别、面试轮数和面试官风格,面试的问题各有不同,我们可以把它们简单归类为:项目经历、技能知识点和软素质

  2. 一般公司至少有两轮技术面试 + HR 面试,第一轮面试官由比岗位略高一级的人担任,第二轮面试官由用人部门领导担任

  3. 不同轮数考察侧重点不同。第一轮面试主要确认简历真实性和基础技术能力,所以主要会围绕项目经历和技能知识点;第二轮面试则要确认这个人是否适合岗位、团队,所以更偏重过往经历和软素质


项目经历


项目经历就是我们过往做过的项目。


项目经历是最能体现一个程序员能力的部分,因此面试里大部分时间都在聊这个。


有朋友可能会说:胡说,为什么我的面试大部分时候都是八股文呢?


大部分都是八股文有两种可能:要么是初级岗位、要么是你的经历没什么好问的。哦还有第三种可能,面试官不知道问什么,从网上搜的题。


image.png


在项目经历上,面试者常见的问题有这些:



  1. 不重要的经历占比过多(比如刚毕业的时候做的简单项目花了半页纸)

  2. 经历普通,没有什么亮点(比如都是不知名项目,项目周期短、复杂度低)

  3. 都是同质化的经历,看不出有成长和沉淀(比如都是 CRUD、if visible else gone)


出现这种情况,是因为我们没有从面试官的角度思考,不知道面试的时候对方都关注什么。


在看面试者的项目经历时,面试官主要关注这三点:


1. 之前做的项目有没有难度


2. 项目经验和当前岗位需要的是否匹配


3. 经过这些项目,这个人的能力有哪些成长


因此,我们在日常工作和准备面试时,可以这样做:



  1. 工作时有意识地选择更有复杂度的,虽然可能花的时间更多,但对自己的简历和以后发展都有好处

  2. 主动去解决项目里的问题,解决问题是能力提升的快车道,解决的问题越多、能力会越强

  3. 解决典型的问题后,及时思考问题的本质是什么、如何解决同一类问题、沉淀为文章、记录到简历,这些都是你的亮点

  4. 经常复盘,除了公司要求的复盘,更要做自己的复盘,复盘这段时间里有没有成长

  5. 简历上,要凸显自己在项目面试的挑战、解决的问题,写出自己如何解决的、用到什么技术方案

  6. 投简历时,根据对方业务类型和岗位要求,适当的调整项目经历里的重点,突出匹配的部分

  7. 面试时,要强调自己在项目里的取得的成果、在其中的角色、得到什么可复制的经验


技能知识点


技能知识点就是我们掌握的编程语言、技术框架和工具。


相较于项目经历,技能知识点更关键,因为它决定了面试者是否能够胜任岗位。


image.png


在技能知识点方面,面试者常见的问题有这些:



  1. 不胜任岗位:基础不扎实,不熟悉常用库的原理

  2. 技术不对口:没有岗位需要的领域技术

  3. 技术过剩:能力远远超出岗位要求


第一种情况就是我们常说的“技术不行”。很多人仅仅在工作里遇到不会的才学习,工作多年也没有自己的知识体系,在面试的时候很容易被基础知识点问倒,还给自己找理由说“我是高级开发还问这么细节的,面试官只会八股文”。框架也是浅尝辄止,会用就不再深入学了,这在面试的时候也很容易被问住。


第二种情况,是岗位工作内容属于细分领域,但面试者不具备这方面的经验,比如音视频、跨端等。为了避免这种情况,我们需要打造自己的细分领域技能,最好有一个擅长的方向,越早越好。


第三种情况简单的来说就是“太贵了”。有时候一些资深点的开发面试被挂掉,并不是因为你的能力有问题,而是因为岗位的预算有限。大部分业务需求都是增删改查和界面展示,并不需要多复杂的经验。这种情况下,要么再去看看更高级的岗位,要么降低预期。


在我面试的人里,通过面试的都有这些特点:



  1. 技术扎实:不仅仅基础好,还有深度

  2. 解决过复杂的问题:项目经验里除了完成业务需求,也有做一些有挑战的事


有些人的简历上只写项目经历不写技能知识点,对此我是反对的,这样做增加了面试官了解你的成本。问项目经历的目的还是想确认你有什么能力,为什么不直接明了的写清楚呢?


软素质


这里的「软素质」指面试时考察的、技术以外的点。


程序员的日常工作里,除了写代码还需要做这些事:



  1. 理解业务的重点和不同需求的核心点,和其他同事协作完成

  2. 从技术角度,对需求提出自己的思考和建议,反馈给其他人

  3. 负责某个具体的业务/方向,成为这个方面所有问题的处理者


image.png


因此,面试官或者 HR 还会考察这些点,以确保面试者具备完成以上事情的能力:



  1. 理解能力和沟通表达能力

  2. 业务能力

  3. 稳定性


第一点是指面试者理解问题和讲清楚答案的能力。遇到过一些面试者,面试的时候过于紧张,讲话都讲不清楚,这种就让人担心“会不会是个社恐”、“工作里该不会也这样说不清楚吧”;还有的人爱抢答,问题都没听明白就开始抢答,让人怀疑是不是性格太急躁太自大;还有的人过于能讲,但讲不到重点,东扯西扯,让人对他的经历和理解能力产生了怀疑。


第二点是指在实现业务目标的过程中可以提供的能力。 业务发展是需要团队共同努力的,但有的人从来没这么想过,觉得自己上班的任务就是写代码,来什么活干什么活,和外包一样。


业务发展中可能有各种问题。定方向的领导有时候会过于乐观、跨部门协作项目可能会迟迟推进不动、产品经理有时候也会脑子进水提无用需求、质量保障的测试同学可能会大意漏掉某个细节测试。这个时候,程序员是否能够主动站出来出把力,帮助事情向好的方向发展,就很重要了。


遇到过一些面试者,在一家公司干了好几年,问起来业务发展情况语焉不详,让人感觉平时只知道写代码;还有的面试者,说起业务问题抱怨指责一大堆,“领导太傻逼”、“产品经理尽提蠢需求”,负能量满满😂。


第三点是指面试者能不能在一家公司长久干下去。 对于级别越高的人,这点要求就越高,因为他的离开对业务的发展会有直接影响。即使级别不高,频繁换工作也会让人对你有担心:会不会抗压能力很差、会不会一不涨工资就要跑路。一般来说,五年三跳就算是临界线,比这个频繁就算是真的“跳的有点多”。


针对以上这三点,我们可以这样做:



  1. 面试时调整心态,当作普通交流,就算不会也坦然说出,不必过于紧张

  2. 回答问题时有逻辑条理,可以采用类似总分总的策略

  3. 工作时多关注开发以外的事,多体验公司产品和竞品,在需求评审时不摸鱼、多听听为什么做、思考是否合理、提出自己的想法

  4. 定好自己的职业规划(三年小进步、五年大进步),在每次换工作时都认真问问自己:下一份工作能否帮助自己达到目标


总结


好了,这就是我前段时间面试的感悟和吐槽。


总的来说,今年找工作的人不少,市面上的岗位没有往年那么多。如果你最近要换工作,最好做足准备。做好后面的规划再换、做好准备再投简历、经历整理清楚再面试。




作者:张拭心
来源:juejin.cn/post/7261604248319918136
收起阅读 »