注册
环信即时通讯云

环信即时通讯云

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

环信开发文档

Demo体验

Demo体验

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

RTE开发者社区

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

技术讨论区

技术交流、答疑
资源下载

资源下载

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

iOS Library

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

Android Library

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

话说工作的“边界感”

一句话的合作例子 今天有一个业务的运营同学匆匆忙忙找到我,说要跟我这边有一个问题,业务要合作,然后已经提前和我老板打过招呼了。事情是这样的,我这边负责的是工作台门户,然后作为一个平台业务,有大量的客户需要找到对应的服务商来给自己定制门户。然后这位同学负责的是定...
继续阅读 »

一句话的合作例子


今天有一个业务的运营同学匆匆忙忙找到我,说要跟我这边有一个问题,业务要合作,然后已经提前和我老板打过招呼了。事情是这样的,我这边负责的是工作台门户,然后作为一个平台业务,有大量的客户需要找到对应的服务商来给自己定制门户。然后这位同学负责的是定制业务,所以要统一把所有的定制业务全部收口,但是这位定制同学的业务没有对应的技术研发同学,所以他就找到我的老板同步了这个情况。


分工协作的本质


其实问题的合作方式是比较简单的,但是当她跟我说最终客户定制界面也由我来开发的时候,比如定制的费用是多少、定制的时间要求等等,我就觉得问题有些奇怪了。因为按照常理来说,我负责的是工作台,但是由于有定制业务相关的逻辑,所以我要处理一定的业务逻辑,但是让我去承担这个定制页面的开发,我觉得是有问题的。


举一个简单的例子,假如我现在是一个博物馆,原来用户是直接可以免费没有任何阻挡地进入博物馆的,但是突然有一天市政府说所有公共设施要收费了,那么对于博物馆的工作人员来说肯定是支持的,但是突然你又告诉我,我这个博物馆还要去维护全市统一的收费系统,这个就是不合理的。哪怕他找我的主管沟通结果也是一样,因为我和我的主管是属于博物馆体系的工作人员,他也没有义务和责任去维护整个所有的公共设施的收费系统。但是作为公共设施系统的一部分,如果有统一的收费规则,那么对于博物馆来说也是要遵守的。


所以这面就引出了我对于业务边界上面的一个思考。我经常看到同学给我转发一段话,说跟你老板打沟通了业务的合作情况,你的老板觉得非常不错,于是这位同学就匆匆忙忙的找到我来开始谈业务,谈实施细节并且需要我快速落地。而实际上这种所谓的业务协同的情况大部分也只会停留在沟通的层面,在最终落地的时候,往往和业务同学的预期不相符。在业务同学眼里看来,就是你们阴奉阳违,恨不得马上就开始投诉。


这里面非常核心的一个误区就是业务同学往往没有划清业务界限和系统界限的边界。对于业务同学来说,边界可能不会那么明显,但对于一个系统开发的同学来说,业务和边界是非常明显的,因为系统是物理存在的,有着天然的“隔离”。所以对于业务同学,如果想要顺畅的推动业务,必须要事先清晰的划分参与方的角色和业务边界,并且可以进一步了解到系统边界在哪里。


这个由谁来做就涉及到了一个很大权责问题。简单来说就是我做了有什么好处,换句话来说做这件事和我的职务目标有什么关系?如果没有关系,我为什么要做?就算同一个公司,也有很多需要完成的事,比如公司保洁不到位,我作为公司的员工,是否也立即从事保洁?


如果是我的职务目标,我的责任有多少?我承担了既定的责任,那我是否能够承担起对应的权利?在我上次借用的博物馆的例子可以看到,如果我承担了全市的公共系统的收费设施的维护,那么我的权利在哪里?如果我的权利只是在博物馆这一个地方的收费上面,那么这就变成了权责不对等。


但是如果我做成了全市公共收费系统,并且能掌管全市所有公共设施的收费业务,那么对于这个收费系统的开发权则是相等的,但是对于我本身职务的权责又是不等的,因为公司请我来管理博物馆的,而非管理整个全市的收费系统。


所以在思考业务推进的时候,首先就要思考系统的边界和权责对等关系,如果这一层面没有理清楚的话,合作大概率是不能完成的。而很多的业务同学就以“我和你老板谈好的东西,为什么你不去做”这么简单的方式来拷问协同关系,我觉得是非常的幼稚的。


所以我希望其实我们在去和别人沟通业务的时候,往往要带着权责,带着边界的思考,去和对方去讨论,去协商,去沟通。简单来说,我在跟你聊之前,我要知道你的系统,你的业务边界在哪里?我跟你聊的时候,我要清晰地告诉你,这个事情做了对你有什么好处,对我有什么好处,哪部分应该你做,哪部分应该我来做。只有在这样的一种沟通方式下面才是真正合理的,真正是可以落地的沟通和协作方式。


而在这些问题没有达成一致之前,由谁来做都没有定下来的时候,应该先去往上升,在顶层设计里面去规划去重新思考如何从组织设计的方式去让业务协作自然的发生。


总结


这里再总结一下,这里是一个小的心得。这个案例也告诉我们,我们去沟通协同的时候要有边界感,包括业务的边界和系统的边界。只有把边界理顺了,合作才有可能。

作者:ali老蒋
链接:https://juejin.cn/post/7233808084085309477
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

代码中被植入了恶意删除操作,太狠了!

背景在交接的代码中做手脚进行删库等操作,之前只是网上听说的段子,没想到上周还真遇到了,并且亲自参与帮忙解决。事情是这样的,一老板接手了一套系统,可能因为双方在交接时出现了什么不愉快的事情,对方不提供源代码,只是把生产环境的服务器打了一个镜像给到对方。对方拿到镜...
继续阅读 »

背景

在交接的代码中做手脚进行删库等操作,之前只是网上听说的段子,没想到上周还真遇到了,并且亲自参与帮忙解决。

事情是这样的,一老板接手了一套系统,可能因为双方在交接时出现了什么不愉快的事情,对方不提供源代码,只是把生产环境的服务器打了一个镜像给到对方。

对方拿到镜像恢复之后,系统起来怎么也无法正常处理业务,于是就找到我帮忙看是什么原因。经过排查,原来交接的人在镜像中做了多处手脚,多处删除核心数据及jar包操作。下面来给大家细细分析排查过程。

排查过程

由于只提供了镜像文件,导致到底启动哪些服务都是问题。好在是Linux操作系统,镜像恢复之后,通过history命令可以查看曾经执行了哪些命令,能够找到都需要启动哪些服务。但服务启动之后,业务无法正常处理,很多业务都处于中间态。

原本系统是可以正常跑业务的,打个镜像之后再恢复就不可以了?这就奇怪了。于是对项目(jar包或war)文件进行排查,查看它们的修改时间。

在文件的修改时间上还真找到了一些问题,发现在打镜像的两个小时前,项目中一个多个项目底层依赖的jar包被修改过,另外还有两个class文件被修改过。

于是,就对它们进行了重点排查。首先反编译了那两个被修改过的class文件,在代码中找到了可疑的地方。

可疑代码

在两个被修改的类中都有上述代码。最开始没太留意这段代码,但直觉告诉我不太对,一个查询业务里面怎么可能出现删除操作呢?这太不符合常理了。

于是仔细阅读上述代码,发现上述红框中的代码无论何时执行最终的结果都是id=1。你是否看出来了?问题就出在三目表达式上,无论id是否为null,id被赋的值都是1。看到这里,也感慨对方是用心了。为了隐藏这个目的,前面写了那么多无用的代码。

但只有这个还不是什么问题,毕竟如果只是删除id为1的值,也只是删除了一条记录,影响范围应该有限。

紧接着反编译了被修改的jar包,依次去找上述删除方法的底层实现,看到如下代码:

删除操作

原来前面传递的id=1是为了配合where条件语句啊,当id=1被传递进来之后,就形成了where 1=1的条件语句。这个大家在mybatis中拼接多条件语句时经常用到。结果就是一旦执行了上述业务逻辑,就会触发删除T_QUART_DATA全表数据的操作。

T_QUART_DATA表中是用于存储触发定时任务的表达式,到这里也就明白了,为啥前面的业务跑不起来,全部是中间态了。因为一旦在业务逻辑中触发开关,把定时任务的cron表达式全部删除,十多个定时任务全部歇菜,业务也就跑步起来了。

找到了问题的根源,解决起来就不是啥事了,由于没有源代码,稍微费劲的是只能把原项目整个反编译出来,然后将改修改地方进行了修改。

又起波折

本以为到此问题已经解决完毕了,没想到第二天又出现问题了,项目又跑不起来了。经过多方排查和定位,感觉还有定时任务再进行暗箱操作。

于是通过Linux的crontab命令查看是否有定时任务在执行,执行crontab -ecrontab -l,还真看到有三个定时任务在执行。跟踪到定时任务执行的脚本中,而且明目张胆的起名deleteXXX:

删除脚本

而在具体的脚本中,有如下执行操作:

删除核心依赖包

这下找到为什么项目中第二天为啥跑不起来了,原来Linux的定时任务将核心依赖包删除了,并且还会去重启服务。

为了搞破坏,真是煞费苦心啊。还好的是这个jar包在前一天已经反编译出来了,也算有了备份。

小结

原本以为程序员在代码中进行删库操作或做一些其他小手脚只是网络上的段子,大多数人出于职业操守或个人品质是不会做的。没想到这还真遇到了,而且对方为了隐藏删除操作,还做了一些小伪装,真的是煞费苦心啊。如果有这样的能力和心思,用在写出更优秀的代码或系统上或许更好。

当然,不知道他们在交接的过程中到底发生了什么,竟然用这样的方式对待昔日合作的伙伴。之所以写这篇文章,是想让大家学习如何排查代码问题的过程,毕竟用到了不少知识点和技能,但这并不是教大家如何去做手脚。无论怎样,最起码的职业操守还是要有的,这点不接受反驳。


作者:程序新视界
链接:https://juejin.cn/post/7140066341469290532
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

开发的功能不都是经过上线测试,为什么上线后还会那么多 Bug ?

你是否也经过这样的灵魂拷问:「开发的功能不都是经过上线测试的吗?为什么上线后还会那么多 Bug ?」。 大家明明都很努力,为什么「输出」的结果没有更进一步?今天我们就水一水这个「狗血」话题,究竟是谁个锅? 本篇只是毫无意义的「故事」,内容纯属「虚构」,如有...
继续阅读 »

你是否也经过这样的灵魂拷问:「开发的功能不都是经过上线测试的吗?为什么上线后还会那么多 Bug ?」。


大家明明都很努力,为什么「输出」的结果没有更进一步?今天我们就水一水这个「狗血」话题,究竟是谁个锅?




本篇只是毫无意义的「故事」,内容纯属「虚构」,如有雷同,自己「反思」。



对于这个话题,我想用一个「虚构」的故事来介绍下,这个故事里我有一个「朋友」,他在某电商项目组,当时恰逢经历了公司内部的「双十一需求立项」:


立项时


老板:“这次的需求很简单,主要就是参考去年 TB 的预热活动来走,核心就是提高客单量和活跃,具体细节你们和产品沟通就行”


产品:“TB 去年的活动预热大家应该都了解吧,我们这次主要就是复刻一个类似的活动,时间一个月,具体有***,总的来说,双十一活动一定要准时上线,这次运营那边投入很多经费,需求方面我会把控好,核心围绕老板的思路,细节大家可以看文档,基本就是这些内容,一个月应该够的,大家没问题吧?”


开发:“没问题,保证完成任务”


3 天后:


老板:“我刚看了 JD 好像推出了一个不错的小游戏,我觉得这个可以导入到这边活动里,这样可以提高用户的活跃,用户活跃了,消费自然就起来了”


开会


产品:“鉴于老板的意见,我觉得 JD 的这个游戏活动效果可以提升我们的复购,所以我计划在原本需求基础上增加一个支线活动。


产品:“大家不要紧张,支线会和当前主线同步开发,支线活动比较灵活,不对账号级别做限制,另外「设计」那边看下入口放哪里比较合适。”


开发:“上线时间还是没变吗?”


产品:“双十一日期会变吗?老板说了大家抓紧点,功能不多,时间还是够的”


10 天后:


老板:“我刚和x总沟通了下,他觉得我们的活动少了互动,不利于留存,你看下怎么处理”


开会


产品:“经过这几天和老板的探讨,我们发现这次活动少了一些互动性,必须增加一些交互游戏,这样才能提升日活和用户体验。


产品:“这样吧,这部分功能也是比较迫切,我知道任务比较重,但是为了这次能取到较好成果,大家加把劲,接下来周末幸苦下大家,先不休假,后面调休补回来,具体需求大家可以看文档,有一些调整,不多,时间还是够的”


开发:“。。。。”


14 天后:


老板:“我看大家工作的热情还是可以的,刚运营提了可以增加一些视频支持,我觉得这是一个很好的意见”


开会


产品:“目前看起来我们的开发进度还比较乐观,运营的同学说了他们录制了一些活动视频,我看了还不错,就在主会场增加一些视频播放的功能吧,细节你们直接和设计讨论下”


产品:“这个应该不难吧,把分享和下载加上,视频播放这么基础的东西,应该不耽误事,我看网上开源服务就挺多的。”


开发:“。。。。”


20 天后:


老板:“我刚去开发那里看了下效果,感觉分会场的效果挺好的,做支线太可惜了,给他加回主流程里”


开会


产品:“老板那边觉得分会场的效果更好,让我们把分会场的效果做到主会场里的核心交互里,分会场部分的逻辑就不要了,入口也取消。


产品:“大家不要激动,都是现成的东西,改一改很快的,不过项目进度目前看来确实起有点拉垮,接下来大家晚上多幸苦点,我们晚上11点后再下班,我申请给大家报销打车的费用”


开发:“。。。。”


23 天后:


老板:“整体效果我觉得可以,就是好像有一些糙,你们再过一过,另外大家开个会统一下目标,看看能不能有新的补充”


产品:“可以的,过去我们也一直在开会对齐,基本每两天都会对齐一次”


开会


产品:“我和设计对了下,发现有一些细节可以优化,比如一些模块的颜色可以细调一下,还有这些按键的动画效果也加上,我知道工期紧张,所以我从「隔壁」项目组借了几个开发资源,未来一周他们可以帮助大家缓解下压力”


开发:“。。。。”


28 天后:


开会


产品:“好了,项目可以提测了,相信之前测试也陆续介入跟进了需求,应该问题不大,目前看起来「燃尽图」还可以,测试完了尽快上线,老板那边也在催了”


测试:“不行啊,今天走了用例,一堆问题,而且提测版本怎么和用例还有需求文档不一致,这个提测的版本开发是不是自己没做过测试啊,一大堆问题,根本测不下去,这样我们很难做”


产品:“这个我来沟通,开发接下来这几天大家就不要回家了,马上活动上线,一起攻克难关”


产品:“我也理解大家很努力了,但是这次提测的质量确实不行,你们还是要自己多把把关,不能什么问题都等到 QA 阶段才暴露,这样不利于项目进度,需求一直都很明确,大家把 Bug 尽可能修一修,有什么问题我们及时沟通,尽快解决,敏捷开发”


开发:“。。。。”


上线前一天晚上 10 点:


开会


测试:“不行,还有 20 几个问题没有确认,这种情况我不能签字,上线了有问题谁负责。”


产品:“一些问题其实并不影响正常使用,目前主流程应该没问题,让开发把 P0 的两个问题修了之后先上线,剩下的在运营过程中逐步更新就好了,有问题让运营先收集和安抚”


开发:“上线了脏数据不好弄,会有一些账号同步的问题,而且用户等级可能还有坑”


产品:“没什么不好弄的,到时候有问题的用户让运营做个标志,接下来小步快跑修复就好了,时间不等人,明天就是上线时间, 活动上不去对老板和运营都没办法交代”


项目上线:


老板:“运营和我反馈了好多问题,你们版本上线是怎么测试的,要反思一下xxxx”


开会


产品:“我说过用户要集齐碎片和好友砍价之后才能给优惠券,等级不够的不让他们砍价成功,为什么只完成砍价的新人拿到大额优惠券?”


产品:“什么?因为账号数据绑定有 Bug ,不同渠道用户合并账号就可以满足?为什么会有这个 Bug ,测试那边没覆盖到吗?”


测试:“我不知道啊,需求文档没有说还能账号合并,而且这个功能之前没说过要限制用户等级吧?”


产品:“我出的需求肯定有,文档里肯定有,另外开发你既然知道问题,为什么不提前沟通,现在用户都消费了,这个事故你和测试 55 责,后面复盘的时候要避免这样的问题再次发生”


开发:“。。。。。”



最后


所以大家觉得是谁应该背锅?是开发的能力不够,还是测试用例的覆盖缺失?说起来,其实在此之前,我在掘金也遇到了一个 “Bug” ,比如:



文章 Markdown 里图片链接的 content-type 字段如果不符合 image/*** 规格,那么发布出来的时候链接就不会被掘金转码,所以不会有图片水印,同时直接指向了我自己的图床地址。



那么你觉得这个是 Bug 吗?明明是用户不遵循规范。但是这样不就留下漏洞了吗?



如果在文章审核通过之后,我修改图床上的图片内容,这样不就可以绕过审核在掘金展示一些「违规」内容了吗?



所以有时候一些功能的初衷是好的,但是引发的问题却又很隐蔽,那么这能怪「测试用例覆盖不到位吗」?


那么,你觉得「经过测试,为什么上线后还会那么多 Bug 」更多可能是谁的问题?


作者:恋猫de小郭
链接:https://juejin.cn/post/7207715311758393405
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

28岁小公司程序员,无车无房不敢结婚,要不要转行?

大家好,这里是程序员晚枫,又来分享程序员的职场故事了~ 今天分享的这位朋友叫小青,我认识他2年多了。以前从事的是土木行业,2年前找我咨询转行程序员的学习路线和职业规划后,通过自学加入了一家创业公司,成为了一名Java开发。 **最近他遇到了新的职业上的困惑,又...
继续阅读 »

大家好,这里是程序员晚枫,又来分享程序员的职场故事了~


今天分享的这位朋友叫小青,我认识他2年多了。以前从事的是土木行业,2年前找我咨询转行程序员的学习路线和职业规划后,通过自学加入了一家创业公司,成为了一名Java开发。


**最近他遇到了新的职业上的困惑,又找我聊了一下,我也没想到好的解决方法,**大家可以一起看一下~下面是沟通的核心内容。


1、他的问题


小青是中原省份省会城市的大专毕业,毕业季就去了帝都实习和工作。后来发现同学中有转行程序员的,薪资很诱惑,所以就找到我咨询如何学习和转行,现在一家帝都创业公司负责后端开发。工资1w出头。


今年已经28岁了,有一个女朋友,最近女方家里催他结婚,他自己也有结婚的意愿。但是考虑到自己人在大城市,无车无房,创业公司的工作也不稳定,以后吃住花销,结婚后养孩子的花销,再看看自己1w多的工资,女朋友做财务,一个月到手不到1w。


双方家里也都是普通家庭,给不了什么实质的资助,靠自己目前的收入根本不敢想象成家后压力有多大。


所以目前非常迷茫, 不知道自己在28岁这个年龄应该怎么办,应不应该成家?应该怎样提高收入?


虽然自己很喜欢程序员这份工作,但是感觉自己学历不好,天花板有限,程序员还能继续干下去吗?


2、几个建议


平时收到后台读者的技术问题或者转行的困惑,我都会尽力给一些详尽的回复。


但是这次听到小青的问题,说实话,我也不知道该说什么。


在28岁这种黄金年龄,想去大城市奋斗一番也是人之常情,但因为现实的生活压力,却不得不面临着选择离开大城市或者转行到自己不喜欢但是更务实的职业里去。


如果想继续留在帝都,我能想到的有以下几个办法:



  • 首先,如果想继续从事程序员工作,努力提高收入。最快的办法就是跳槽,已经工作2年多了,背一背八股文,总结一下项目经验,应该是可以跳槽到一家更好的公司了。

  • 其次,探索另一个副业收入,例如自媒体。因为我自己就是通过在各个平台开通了自媒体账号:程序员晚枫,分享自己的程序员学习经验获得粉丝,进而得到自媒体收入的。小青也可以实事求是的分享一下自己大专毕业从建筑工作转行到程序员的经验,应该也能帮助到别人。

  • 最后,努力提高学历,想继续在程序员这行卷出高收入,趁着年轻,获得一个本科或者本科以上的学历还是很有帮助的。


受限于自己的经验,我只能给出以上几个建议了。


大家还有什么更有效的建议,欢迎在评论区交流~


3、写在最后


说句题外话,很多人都觉得程序员工资高想来转行,但其实程序员和其它行业一样,高收入的只是一小部分,而且那部分人既聪明又努力。


最重要的是,高收入的那部分人里,大部分都不是转行的,而是在一个专业深耕了多年,最终获得了应有的报酬。


无意冒犯,但听完小青的经历,我依然要给大专以下,想转行程序员拿高薪的朋友提个醒:如果不是十分热爱,请务必三思~


作者:程序员晚枫
链接:https://juejin.cn/post/7209447968218841144
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

内向性格的开发同学,没有合适的工作方法是不行的

一、背景 做软件开发同学的从性格上来说有两类人:外向的、内向的。 外向的人在工作中擅长交流,内向的人在工作中善于总结,两种的人都是开发团队需要的。 外向的人在工作中善于活跃团队内的气氛,逐渐走向技术管理路线,带领团队走的更远,控制开发目标与路线;内向的人更擅长...
继续阅读 »

一、背景


做软件开发同学的从性格上来说有两类人:外向的、内向的。


外向的人在工作中擅长交流,内向的人在工作中善于总结,两种的人都是开发团队需要的。


外向的人在工作中善于活跃团队内的气氛,逐渐走向技术管理路线,带领团队走的更远,控制开发目标与路线;内向的人更擅长观察,容易成为团队的定心骨,逐渐走向技术专家路线,肯研究肯花时间提高自己。



那么,在这个过程中,内向人前期的成长尤为重要,合适的工作方法和习惯也会提高在团队中的地位,而不是单纯的低头干活,本文分享下自己的经验,不一定对希望对大家有参考。


不同的性格的人,具有不同的工作方式和方法,和生活习惯,对于软件开发这个职场环境来说,内向性格不是劣势,很多人外表看着外向,其实潜意识也有很多内向性格的特征。


内向也是人的宝贵的一面,有时也是能力优势的一部分(如善于深度思考等),如果让自己掌握外向同学的行动方式,逐渐的做出改变,会更好。



二、现状


 刚毕业不久进入到职场中工作的毕业生,如果性格是外向的,那么他其实问题并不大,很多的时候,可以快速调整自己,并被其他人看到自己的工作成果,而内向性格的毕业生,如果在职场中没有主动去做某些工作和承担哪些职责,或对自己目前的工作状况没有及时调整和改变,就会造成成长缓慢,有的人会出现明明自己每天努力学习,却还是工作中那个让同时感觉能力最差的,导致经常没有分配到核心的开发工作,长此以往,消极的各种状态就出现了。


比如内向性格的毕业生在初入职场中经常会出现如下症状:


1、明知项目组的工作环境和方式存在一些不健康的因素,自己不太愿意去参与或评论


2、对开发整体流程和环节不清楚,及需求的判断有问题,需求频繁改动,代码写了被删除,自己却不敢说,或说了一次被骂以后沉默了


3、项目组缺失技术经理等全流程人员,需求自己理解和功能设计,自己却没有及时吧自己的想法与他人沟通 ,外包团队更明显


4、身边缺乏可以聊天的mentor、同事,自己感觉开发能力无法提升,却一直憋在心里,产生怀疑


5、不知道工作中如何问同事问题,才愿意帮忙解答,持续很长时间未获得同事的信任


6、有时过于逞强,不想让别人觉得自己不行,不会拒绝,实际工作量与评估有差别,导致自己延误工期。



以上的这些问题,可能不止内向性格的人会有,很多外向的人可能也会有,只是在内向性格的人身上更明显而已,如果内向性格的毕业生,明知道自己有这种情况,却不思考解决办法和改变,长时间后自我开始产生怀疑。 职场中,沟通、反馈、改变是很重要的,但是沟通不一定就是说话,反馈不一定是面对面,而改变是一直要持续去做的。 


之前看过一点得到的沟通训练营的视频教程,感觉里面有些技巧是值得大家去学习的,不仅仅是开发类型的同学。


三、经验分享


 下面我分享下,我的一些经验,可能不太对,但是希望可以帮助到看到这篇文章,深有同感的你。 


问题1:内向性格的毕业生,说的话,或者请求别人的东西,别人听不懂怎么办?


 这里先记住一件事情,在职场中,开发者要学会给不懂技术的人员,讲明白事情,要逐渐学会用生活中的事情去类比。


这个真的很重要,当你给不懂技术人讲的多以后,很多人可能都会来请教你关于某件事的理解,这个通常我们和系统的售前、需求人员、产品人员用的比较多,得学会用生活中的例子或故事去告诉他,XX能做,XX不能做的原因是什么。要坚持去练习。 


 对于请教一些人技术问题时,不管是同事也好还是网友也好,要明确自己给他的这个消息,别人是否会听懂,马上给出解决办法,还是别人看到这个问题以后,还要和我交流1小时才能知道是啥意思,这个也是很多有经验的人,不愿因帮助低级程序员的原因,这里分享下请教问题的描述模板: 


我遇到了一个问题或场景:【问题描述】,我想要实现【X功能】,但是出现了【Y现象】,我经过以下尝试:【思路细节】,但是不能解决,报错如下:【报错信息或截图】,或者我使用【关键词】百度,但是找不到答案,请问我该怎么解决或分析。


 而很多时候有经验的人,也会发现你百度的搜索词不对,这个时候,他根据你的阐述可能会告诉你怎么输入比较靠谱的搜索词来解决办法。 


问题2:评估工作计划有时过于逞强,不想让别人觉得自己不行,不会拒绝


这个真的想说,工作前期真的别逞强,没做过就是没做过,不行就是不行,别找啥接口,但是别直接和负责人说这个东西我不会(这个是很不好的,不能说不会,这是明显不相干的意思),比较合适的说法是:这个东西或概念我暂时不太清楚,没接触过过,需要一会儿或下来后我需要去研究下,然后咱们在沟通或者确定一下。 


 而很多内向性格的毕业生,缺少了这种意识,同时安排某项工作任务时,缺少对任务的分解能力和排期能力和工作后排期后的To do List梳理能力,以至于自己5天完成的任务,口头说2天就搞定了。 


 其实这种,前期mentor该给你做个示范分解的操作,或者自己主动问下,如何分解项目的需求和任务。


 而真正开发的时候,每天可能都感觉这里需要加上XXX功能,那里需要加上YYY功能,但是不知道是否需要做,这里我的建议是,把他加入到自己To do List中,然后找个时间和同事去沟通下这个想法,长此以往,同事的心里,你就是一个有想法的人,虽然不善言辞。


 主要就是这里,我们要体现自己的一个工作的对待方式,而不是一直被动接受,不拒绝,不反馈。 


问题3:明显知道产品经理、项目经理等等人员对需求的认识不足,自己闷着不反馈和说话


 很多时候,任务的返工和需求的变更,有一部分是这个原因的,在经验尚少的情况下,自己未能说出自己对这个需求的认识和怀疑,就去搞了,最后大家都不是特别的好,尤其是在产品需求设计初期,包括需求提出者也是理解不够的,这里可能有很多内容其实是你可以提供的服务,也有一些是产品在犹豫使用哪种方式实现的功能,在与你讨论后,觉得你说的又道理,而决定复用你已经有的系统。 


 很多出入职场的同学,觉得没成长也有这方面的一点原因,自己开发的功能,缺少自己设计思想和认知的影子,如果能在当前系统中体现出了自己的想法,时间久了多少成就感会有点提升的。 


要学会做自己负责的模块/功能的主人,把他们当做自己的孩子一样,主键养成主人翁的意识


问题4:项目组,当前啥都没有,文档、测试,自己也和别人一样不做改变


 这个也是目前很多公司的现状,但是不代表别人不干,你就不干,这个时候,谁主动,谁就能表现一把,同时,这也是被动让同事主动问你或咨询你的机会。


 比如没有协同的东西,那你能不能自己先装个Confluence Wiki或飞书云文档工具,自己先用起来,然后某个时机在同事眼前展示下,自己基于这个软件形成的技术思考、技术经验、技术记录等等等。


比如没有自动发布或代码质量的东西,那你能不能自己先搞个jenkins、sonarqube、checkstyle、findbug,让自己每次写完的代码,自己先搞下,然后某个时机告诉同事这个东西必须这么写怎怎么样。


 是不是有人又说了,工作没时间搞这些东西,你是不是又在扯皮呢,我只能说起码比你空闲时间自己偷偷学习公司短期内用不上的技术或长时间用不上的东西好吧,至少我能非常快速的获得1个同事的信任、2个同事的信任,从而获得团队的信任与核心工作的委派。


大部分人的想用的技术都是和公司的技术栈不搭边的,至少先把脚下的路走出来。


四、总结


 其实最近几年,发现好像很多人被卷字冲昏了头脑,每天都在想着高大尚的技术点和八股文,导致短期的这个工作没干好,还说没成长,以至于某些情况下还被认为是工作和团队中那个能力最差的,即使做了很多的努力。我想说的是,某段时间点或时期内,至少要把当前工作做好在谈论吧,这个在一些内向性格的人身上会表现的明显一些。


IT行业,很多优秀的人也是内向性格的,掌握了合适方法,会让他们成为内向性格顶端的那批优秀的人群。 


说道性格吧,即使是内向型的,可能针对十二星座还是衍生出不同的人生和结果,每个星座的也是有区别的。而在这里面最突出的我觉得是天蝎座的人群。


身为天蝎座的我,经常会想到那些和我一个星座的大佬们:


搜狐创始人张朝阳、腾讯创始人马化腾、百度创始人李彦宏、雅虎创始人杨致远、微软创始人比尔.盖茨、联想集团CEO杨元庆、推特CEO杰克.多尔西、新浪董事长曹国伟。


他们的成长也一直在激励着我。


这些经验对正在阅读文章的你有用吗,欢迎一起交流,让我们一起交流您遇到的问题。 


这篇文章是去年写的,今天增加了点内容,掘金上同步更新了一下,希望可以被更多的人看到。


如果这篇文章说道你心里了,可以点赞、分享、评论、收藏、转发哦。


作者:爱海贼的无处不在
链接:https://juejin.cn/post/7232625387296096312
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

从前端变化看终身就业

接触前端已10年有余,从菜鸟到现在的老鸟;肚皮围度增长了,发量却减少了;头开始往下低了,发际线却往上走了!感叹时光易逝之际,不免有些伤感;风云突变的年代,总是少不了焦虑和无奈; 而立之年开始背负了各种债务,操很多心,最担心的莫过于父母一年年老去,小孩成长路上各...
继续阅读 »

接触前端已10年有余,从菜鸟到现在的老鸟;肚皮围度增长了,发量却减少了;头开始往下低了,发际线却往上走了!感叹时光易逝之际,不免有些伤感;风云突变的年代,总是少不了焦虑和无奈; 而立之年开始背负了各种债务,操很多心,最担心的莫过于父母一年年老去,小孩成长路上各种担心、顾虑;当然还有工作,一份安稳的、相对不错的收入是一家人生活的保障,也让希望增加了不少,今天跟大家一起聊聊工作吧!



终身就业还是终身职业



作为社会人、搬砖人,已经错过了最好的机会;也许是从来就不曾有过机会,已经失去了终生职业的可能(公务员、事业单位....);在国内很少有人能在一家企业供职到领社保,听说国外(比如德国、日本)有,我想说的是: 而今我们(在能力不是超强、又没有Backgroud的情况下)应该努力追求终生就业; 



企业自然想要你终生职业,但实际呢? 不管在任何一家单位,企业总是希望员工极度忠诚,可以胜任公司各种任务,把公司当自己家,有奉献精神;错吗? ---当然是对的; 如果我是老板我也会这么想;


很不幸,现实和理想总是惊为天人,面对糟糕的经济形式,活下去成为企业第一要务,而精简人员总是成为企业断臂求生的一种惯用方式,现实就是残酷如此;于个人而言,在不乐观的环境中能有一份相对稳定的工作,有个可观的收入就显得极为重要,这就需要追求终生就业的能力(不论什么行业);


互联网的发展与前端



说说自己这10多年的心路历程,可能是反面教材,如果能为你带来一些参考或借鉴或一些帮助我是很高兴的;



进入编程世界,与PHP的初恋

进入编程世界,源于羡慕!(2010年)看到同学用HTML写了一个表单,当时觉得觉得很高级,很厉害; 当时他学的是PHP(号称最好的语言),所以也就不自然的被影响、认可了PHP;


转行

从高中到大学,想从事的一直是健身相关的行业和工作,但是真正接触了发现似乎跟自己设想的那么好;当然这不是真正导致转行的原因;真正原因是朋友找我(大学专业:软件工程,但是从来没有学过)做一个网站,我却屁都不会,跟亲戚、朋友说自己还是软件相关专业毕业的;所以,为了装X,也为了对得起软件工程专业那个本本(成人自考),放弃了自己研究多年的健身,毅然报了培训班学起了PHP; 诸位有没有跟我一样的呢?


痛苦的学习

大学几年浑浑噩噩的过了,去报PHP培训时候,老师说:“学过C很容易学的,PHP先从HTML开始,很容易上手的”;交钱的时候自以为学过(上课虽然在睡觉)也或多或少听了一些,没吃过猪肉还没见过猪跑啊(实际上啥都不会),应该问题不大;想起同学说(10年刚毕业)在深圳(拿6-8K),就开始幻想上了;


最难的Table + CSS布局

学习PHP的路上,最让我难堪的竟然是HTML和CSS;保守起见,老师选择了(相比DIV + CSS)更为简单的Table(用Dreamweaver拖拽) + CSS;然而,半个月过去了,竟然连写个百度首页都写不出来;呜呼哀哉,布局难难于上青天!恰逢十一国庆节,老师留的任务就是写个百度首页,如果连百度首页都写不出来,那说明不适合走这一行;结果呢? 一周过后还是写不出来,唉,每天上课时候会想到一万个放弃,回家后每一分钟都会想到N多个放弃;后来想着,钱也交了,就多坚持一下吧,就稀里糊涂的把课程学完了(HTML CSS Javascript PHP)


找到适合自己的方向

课程结束的时候,老师给个建议: PHP感觉有难度,就好好把div + css + jQuery学好,做前端、做前端、做前端!然而,入门的我还是选择了做PHP,一年多的时间学会了从切图、写页面、写PHP、写SQL语句、搭建服务器,天呐,完全飘了(实际上还是个小白),直到偶然机会(2013年)做了前端,突然找到了码页面的灵感,这种所见即所得的搬砖工作很有感觉,哈哈哈;


其实,这里想说的是:1是坚持;2是老师的层次比我高很多,他在很早就给我指明了道路,而执着于自己的愚见(当然也不全是错,也有收获),最后还是走上了老师指导的方向!


诸位,如果你们有个好的老师、高人指导,那是极为幸福的事情,一定要珍惜!


PS: (2011年)《编写高质量代码--web前端修炼之道》这本书对我前端方面的能力提升帮助非常大; 同时也感谢作者: 阿当,在我成长道路上的一些指导和帮助;


PS: 现在互联网平台很发达,在学习视频课程、阅读技术类书籍、技术资料的时候,建议可以尝试联系一下作者(或译者);很多技术大牛还是很乐意给一些建议和指导的<致敬>;


学会听取建议、做出自己的判断

3年后,厚着脸皮请教老师接下来该学点啥能让薪资再增长一些,对未来有帮助; 老师给了一个方向: “Web GIS”,这一次照做了,掌握了一些Gis相关的基础,了解了Arcgis for javascript的常用方法等,结合近期的招聘,我觉得这算是很好的扩展了自己的选择;


PS: 建议菜鸟多向行业内的大牛请教,向身边段位高的朋友、同事多请教;


拥抱变化



互联网变化之快,技术更新之快,已经让很多人发出"学不动"的呼喊,但是我想说的是,只要你还想吃这碗饭,学不动还是要学;



yu6.png


学习&&提升

记得入行时前端面试:

- 会不会处理IE6、IE8兼容,有没有写过hack

- DIV + CSS 怎么实现div的垂直居中和水平居中,有几种实现方式

- 块级标签和行内标签的区别

- jQuery的prop方法和attr方法的区别

- Ajax有没有用过

- 会不会PS切图?gif和png的区别

- 什么是闭包?举个栗子


再后来学习了: 


- Bootstrap (不用了)

- AngularJs \ BackboneJS (不用了)

- requireJs \ seajs (不用了)

- grunt \ gulp \ bower(不用了)

- 响应式布局 (几乎不用了)


现在用的Vue \ React 也写了有好多年了,我想很快也会被新的所替代吧;

18年花了接近一万大洋购买了珠峰架构的课程,系统的学习了几个月,算是第二次技术比较大的提升吧,当然收入也相应的提高了一些;


PS: 想分享的是,很多技能可能生命周期很短,但是,身处当下我们还是要去积极学习,哪怕后来不用了,但是里面的一些思想会给我们未来某个时候带来很多帮助(懂得Bootstrap的设计思想就容易理解less\sass的使用,看到ElementUI、AntD等就一看就懂);


PS: 决定工作岗位、薪资的技术只是一部分,切勿过于迷恋于某个技术,跟随时代、拥抱变化,市场才是决定二者的最重要的因素!


运动&&养生

说点轻松又严肃的,各位看官,身体才是革命的本钱! 10年的老菜鸟目前除了颈椎不舒服(怪手机不怪写代码)外,其他的还好,论加班还能跟年轻人一战,哈哈哈! 这当然得益于过去多年的习惯:


- 经常跑步、爬山、健身;

- 很少胡吃海喝,水果吃的多,烧烤啤酒几乎不碰;

- 每天吃饭不吃饱,原则上是不饿就行;


PS: 建议大家适当的增加运动; 如果歇了很久,要启动你的小马达,要慢慢来,勿操之过急; 最重要的是坚持;


"舍"&&"得"


舍得之间品味人生,舍得之间自有方寸;然而,舍 && 得又何其的难;



- 菜鸟期间的我是舍不得花钱买课程学习的,心疼钱啊; 后来受朋友影响开始花钱去买课程,花钱找老师学习(有的技能人家凭什么告诉你呢?),发现自己的进步突然就快了很多、收获也很大(为什么工作后就不舍得花钱学习了?);


- 知识就是金钱,如今我们知道听歌、追剧都要买VIP,为什么找工作的时候不知道购买VIP呢(我好多朋友、同事上BOSS刷招聘说每天都是那几个,殊不知买了VIP后消息就多了很多,你都没购买服务,招聘APP凭什么给你最新的资讯呢?)


- 工作、学习之余一定要花点时间去陪陪家人、运动、多走一走(哪怕是带小孩玩、哪怕去公园晒晒太阳、去商场逛逛看看美女),工作、技术很重要,人生的全部还有很多;工作是个弹力球,掉下去还有机会弹起来,而身体、家庭是玻璃球,要是碎了那就。。。


踏平坎坷成大道,路就在脚下

- 说了那么多,此刻会想什么呢? 代码要一行一行的写,日子还得一天一天的过,我曾因为负债累累(每个月却只发一次工资)而着急,然急又能如何,倒不如平静以对,正如《论语》中有云: "吾尝终日不食 终夜不寝,以思,无益,不如学也"!


- 环境不友好,是不是就没有机会了? ----当然有机会,当然有路可走! 

- 路在哪? ---- 路在脚下


前端的路该怎么走


各位,我们看到招聘APP上前端岗的需求量比往年同期少很多,这个是事实;与此同时企业还是有各种各样的需求的; 2023年了,还是以过去的思维去看(劳资会Vue 、 React),无异于缘木求鱼,那一定会让你感动悲观;何不换个思路、换个角度呢?



- 大前端方向还有很大空间: Vue\React + Flutter(或类似) + 小程序,正所谓:“山重水复疑无路 柳暗花明又一村”


- 前端 + GIS(或3D),观察BOSS上关于Webgis的招聘就知道了,如果能先于大多数人掌握了GIS、3D方面的知识,那选择是不是广阔了很多,正所谓: "有心栽花花不开 无心插柳柳成荫",何必要拘泥于某一种形态呢


- 前端架构师也是一些技术深度追求者的方向


(个人在二线城市,结合自己的经历和对Boss上岗位、薪资变化的观察,提出的拙见,欢迎批评、指导)


结语


- 强哥说了:“风浪越大鱼越贵”,挑战与机遇共存,我们应当在大变化的浪潮中调整自己的帆,拥抱惊涛骇浪和变化,磨砺出终身就业的能力!



  • 不要给自己贴标签(强哥:“我就是个卖鱼的”),现在的处境不代表未来没有机会、希望(到强盛集团);


- 编码之路上是: 路漫漫其修远兮 吾将上下而求索


- 人生道路上需要另一种气度《定风波·莫听穿林打叶声》---苏轼 : "莫听穿林打叶声 何妨吟啸且徐行; 竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生; 料峭春风吹酒醒,微冷,山头斜照却相迎; 回首向来萧瑟处,归去, 也无风雨也无晴" 。


作者:风雪中的兔子
来源:juejin.cn/post/7220800667589197885
收起阅读 »

时光里能否开出花

时光里能否开出花 昨天偶然翻出了一个老电影《何时是读书天》,有人会觉得压抑而难以理解,有人会关注里面的狗血情节。每个人的故事虽然都不同,但是归宿终究还是回到一条道上--如何让自己幸福。 似乎情感文章不应该发到技术圈,作为一名技术人,每天最多的事大概就是用充沛的...
继续阅读 »

时光里能否开出花


昨天偶然翻出了一个老电影《何时是读书天》,有人会觉得压抑而难以理解,有人会关注里面的狗血情节。每个人的故事虽然都不同,但是归宿终究还是回到一条道上--如何让自己幸福。


似乎情感文章不应该发到技术圈,作为一名技术人,每天最多的事大概就是用充沛的精力设计项目,规划项目,反思项目。但自然和世界不是人造事物,作为一个人,在生活和人生上始终要屈从于人类最原始的感情。


回顾


从毕业到现在,感觉就是一眨眼的事,但好像经历了很多。一开始每天想的是coding,怎么处理扩展性最好,一般在工作时间奴鲁推进,最喜欢下班在路上在思想中徘徊,这个节点和那个环节的对接。这样过了一段时间(说不好,感觉我的感受时间被冻结了),仿佛触碰到了瓶颈,感觉成了业务和上游数据生产者的工具,对于被拆解后的一个个任务也感觉到无趣。


还记得我在上学时,那时候会遇到各样的人,很容易遇到志同道合的人。和同学探讨小说《时间移民》,他抛出问题‘如果你不断穿越,到未来500年,一万年,这时候人类实现了意识上传,可以完成任何幻想,你会怎么办。’只是幻想在思想命题‘上帝能否造出一块它举不起的石头’这样的寻找假设漏洞的简单辩论的我,只能空洞地制造一些空泛的回答。那时候我还不明白‘人生的定义’,‘幸福的定义’,好像历史,自然,那些在长河中熠熠生辉的事物,在我的脑中只是一个个概念的字符。


那时候只是简单翻看《乔布斯传》,就以为伟大的产品,创意这些就是一个个文字意思,现在想来,真是无知的幸福。这些堵上多少人的创意才可能推进历史,流传成故事,里面浓缩了怎样的心血、放弃、执着。埋头在选择题,问答题的我,思考意识不到,这样的故事就是你以后的主线,每一次抉择、痛苦和兴奋,甚至连变成故事藏于大山的资格都没有。


当我带着只是‘识别纸质文字大脑’的我,进入工作,人生变成了一副绘声绘色,崇山峻岭的彩色图,不断打破自信而又建立信心,越发感受到我应该认识到‘人生应该是个什么样’。


触碰电影的感受


这部电影故事线就不赘述了,主暗线都很明显。虽然电影名以读书为主旨,但电影里读书的情节只在几个片段,没有主人公一脸淡然地拿着书在晨光或者夕阳下沉思,结合上下文,能看到主角在一个孤独且消沉的环境中抑制着情感捧着书,真如‘一个瘦弱的身子里藏着一个深邃的灵魂’。电影里,送牛奶,收营员这些普通的元素,现在看来有些狗血的故事线,我仍然忍不住和主角共情。不断有人问主角‘你孤独吗’,质疑和打击一直追随主角,甚至结尾你以为获得了幸福,又一瞬间落入谷底。面对‘未来怎么过’的疑问,主人公还是说着‘继续读书’。我压抑着心中的冲动,仿佛感受不同时光相同归途的念头。


我觉得最温馨的就是主人公握着书入睡那一段,此刻‘我‘很平凡(只是一个收银员和一个兼职送牛奶),又不平凡(面对满屋的书,谁能否认我的灵魂?)


我认为最精彩的就是结尾幸福的坠落,有人觉得艺术应该是给以人希望满足,但圆满结局的艺术映照在现实总是个例。尽全力抓住也不到才是常态,怎么走下去?这就是真实的艺术给我这类历经了社会法则洗礼的人的共鸣。


前后又看了两遍,仍然感觉意犹未尽,沉溺在这个我赋予自己感受的梦呓中,始终无法回转。


结语


克制,传统,礼节,在这个文化内敛的国度上,组成了我‘做一个学生’的前半段旅程,接着坐在这个不断重组的人生列车上,经历起伏旋转,在书中我迸发了情绪。


面对纷至沓来地时代变幻,无论是框架迭代还是AI变革,努力是普通人的必需品。但另一方面,心中压抑着的情感,可能需要感受另一段情感发泄。


愿你我都能像电影里的主人公,坚韧的人生里开出一朵花。


小记



看起来普通的文字,可能很多人就像看一个故事。只有讲述者才晓得说出来有多么不易。因为信息的快速传播,人们失去了对文字的敬畏,以为那不过是一个个文字,正是这样才组成了鲜活的人生。想起欧阳修每读朋友的信,总要焚香净手。是时代塑造了人,还是人推进了时代?




在感觉无光的那一段旅程,我想拾起信心,但又重新被自己打破。我碰见了《被讨厌的勇气》,真的是欲罢不能。它并不能一瞬间改变人,在面对列车跌宕,仍然会俯下身去,但我认为我心中仍然如花。推荐时刻处于自我怀疑的人读一读。不能说技术人的圈子很小,但是一般的技术人执拗于自己的逻辑,期盼着向外界伸出触角,又因为担心被拒绝,最终被局限在自我的心灵空间里。建议这类处境的人可以通过这本书了解一下阿德勒心理学,我们不是负担着‘原罪’的人。


作者:用户6970670035699
来源:juejin.cn/post/7238443713873559607

收起阅读 »

如何应对核心员工提离职?

最近一年互联网行情不好,很多大厂都在裁员,但裁员并不是不要人做事了。原来你这个岗位10个人做,企业有钱赚养得起,现在企业不怎么赚钱了,只能养4个人了。那么会有六个被裁掉。这时候对企业价值最大的4个人会被留下。也许因为人更少了,反而工资还会有所提升。 越是大公司...
继续阅读 »

最近一年互联网行情不好,很多大厂都在裁员,但裁员并不是不要人做事了。原来你这个岗位10个人做,企业有钱赚养得起,现在企业不怎么赚钱了,只能养4个人了。那么会有六个被裁掉。这时候对企业价值最大的4个人会被留下。也许因为人更少了,反而工资还会有所提升。


越是大公司,人员越冗余。开掉一批人对项目进度影响其实不大。但如果掌握核心技术的员工离职,可能项目真的就黄了。


我朋友老张最近就跟我抱怨他公司技术能力最强的哥们要离职。根据他的描述,这离职的哥们属于1个打10个那种。公司里有些问题只有他能解决,公司一直想要培养个接班人,但大多数都只学到了点皮毛。现在就问我该怎么办?所以,今天就和大家聊聊这个话题。


企业最怕的就是最优秀的那批员工离职。而且这部分人只要提了离职基本上就很难挽回了。


为什么会离职?


为什么环境这么差,还有人会主动离职?因为环境再差,总有一些企业还在招人,越是对能力要求高的岗位,越难招。所以,那些真正优秀的人才是不用担心工作问题的。


马云曾说员工提离职,就两个原因,钱给少了,或者心受委屈了。其实还有一类,是工作不能给自己带来成长了。 很多人对工作追求的是成长,是获得尊重、获得一些更高级的意义。你想要挽回对方,首先得弄清楚对方离职的原因。不过这种时候,大概率已经找我下家了。


PS:绝不建议大家裸辞,除非你是准备离职后休息两月。但就算要休息两月,也记得找人把社保交了,别断社保哈。


能不能留下来?


不管对方是否找好下家,作为公司管理者还是要去做努力争取对方留下,万一对方还没有跟下家确定好,只是有意向呢?所以在对方提出离职后,不要去做正式离职沟通。先找理由拒绝,然后约个时间私下里做一次沟通。可以找个地方,边吃饭边聊天。


在这个私下沟通的场景下要表示不希望对方离开,要是遇到了什么难处可以如实说。如果是薪资这块问题,差别太大你可能拿不定主意。但如果是因为什么工作太忙,家里事情很多这类问题。完全可以拍板让对方调整工作时间。


这里我讲一个案例,以前有个朋友跟我说,公司太卷了,最近感觉身体不行了。所以准备离职换个轻松点的工作环境?我说:“啥叫轻松点的工作环境”


他说:"每天能正常下班,不用经常加班熬夜。这样我就能有更多时间睡觉,还能抽出一部分时间出来健身啥的。"


我问:“那为什么不在现在公司里就调整下工作时间呢?”


他说:"公司这么忙,我要这么做,老板估计也会开了我的"。


我反问说:“你都要离职了,还怕他辞退啊”


就这样过了一年,对方也没离职,工作也没耽误。工作时间越长并不表示工作效率越高。我真的建议很忙的人能抽出一部分时间来冥想,每天10多分钟就行,让自己脑袋空一下。你会获得很多不一样的收获。


需要我做什么?


如果对方已经下定决定要走了,那么还可以问对方,现在自己能够做点什么。如果对方希望早点走完流程,那就帮忙让流程走快点。当然,流程走快了,后面接手人肯定会有问题还会请教你,这点可以直接说。


如果对方对未来也有迷茫,有犹豫。那么作为管理者,你肯定也有着丰富的见识,在自己能力范围内的话,帮助对方去分析利弊,提供建议参考。


员工离职,特别是核心员工离职,管理者可能会有点生气。毕竟会影响到自己的项目。但把格局放大,未来就没有再合作的机会?现在很少一个人会在公司呆一辈子。人来人走是平常。现在离开,未必不会再回来。虽然现在留不住人,但我可以留心。你以真诚待人,别人也会真诚待你。


我记得在《联盟》这本书里说过,很多大公司都有前员工联盟,公司里有专门人进行管理。好处很多。


首先前员工可以为企业带来声誉和良好的社会效应;


其次前员工可以给企业引进人才;


再次前员工还能给企业带来更多新的行业信息。


甚至公司一些新的产品都可以给到前员工试用,你找其他人还需要培训,前员工就不需要。


对于我们自己来说,我们是一起战斗过的战友。不管企业有没有正式组织,都应该常联系。


有什么办法能避免核心员工提离职?


1. 上工治未病,最好的方法就是不给对方提离职的机会。


离职过的人都知道,从想离职到提出离职,中间是有很长的时间的。而且在这个过程中,总会露出一些异常的行为。比如,开始抱怨公司的某件事情;在一些以前经常发表建议的场景下,变得不爱沟通,该怎样就怎样吧;工作没精神,不再主动推进某些工作等等。反正总会有点异常。作为管理者,如果你不能提前发生这些异常,那是失职了。你可以说自己很忙,但再怎么忙,都要抽出时间来关注这些核心员工。不仅仅是工作状态,还有家庭状态。你要是真关心员工,什么问题都好解决。


2. 把核心员工跟项目收益做强绑定,增加离职成本。


管理者不仅要会画饼,还要会分饼。如何分饼决定了饼的大小。既然都说对方是核心员工了,那么就应该让对方享受到同样的待遇。公司现在没这么多钱没关系,拿出部分期权、股权总可以吧。做成了,大家一起赚钱,失败了,是我们没做好,咱也认。


3. 核心员工要离职创业?行。我投资


核心员工如果愿意舍弃这么好的收益去创业,那么作为公司为什么就不能参与进去呢?既然挡不住,那我就不挡了。我大大方方的把投资方案公布出来。你想离职创业?可以,有好项目,我们公司愿意做你的天使投资人。如果项目真的好,那么公司赚了。如果项目不好,帮对方分析弊端,也许对方就

作者:石云升
来源:juejin.cn/post/7141021800624095246
不离职了。都是好事。

收起阅读 »

项目开发过程中,成员提离职,怎么办?

之前写过一篇《如何应对核心员工提离职》反响特别好,今天做个延展篇,在项目过程中,员工突然提离职,我们有什么办法让项目按时按质的上线。 项目做多了,总会碰到这种情况。这里给大家介绍一个解决项目问题的分析方法:从问题本身、环境、问题的主体三个方面去思考解决方案。 ...
继续阅读 »

之前写过一篇《如何应对核心员工提离职》反响特别好,今天做个延展篇,在项目过程中,员工突然提离职,我们有什么办法让项目按时按质的上线。


项目做多了,总会碰到这种情况。这里给大家介绍一个解决项目问题的分析方法:从问题本身、环境、问题的主体三个方面去思考解决方案。


通常情况下,一个员工向上级提出离职,那意味着他已经下决心走了,你留得住人,留不住心。而且这段时间,最好别派太多活,他只想早点交接完早点离开。


我们试着从环境、问题本身、问题主体三个方面来思考解决方案。


  • 环境从问题发生的环境看,如果我们有一个好的氛围,好的企业文化。员工会不会突然突出离职?或者哪怕提出离职,会不会给我们更多一点时间,在离职期间仍然把事情做好?如果答案是肯定的,那么管理者可以尝试从问题发生的上游解决问题。
  • 提前安排更多的资源来做项目,预防资源不足的情况发生。比如整体预留了20%的开发时间做缓冲,或者整体安排的工作量比规划的多20%。

问题本身


从问题本身思考,员工离职导致的问题是资源不够用。

  • 新增资源,能不能快速找到替代离职员工的人?或者我们能不能使用外包方式完成需求?跟团队商量增加一些工作时间或提高工作效率?
  • 减少需求,少做一些不是很重要的需求,把离职员工的需求分给其他人。


这2个解决方案其实都有一个前提,那就是离职人员的代码是遵循编码规范的,这样接手的人才看得懂。否则,需要增加的资源会比原来规划的多很多。这种问题不能靠员工自觉,而应该要有一套制度来规范编码。


问题的主体


我们不一定能解决问题,但可以解决让问题发生的人。这样问题就不存在了。比如,既然问题出现在张三面前,那就想办法搞定张三,让他愿意按计划把项目完成。如果公司里没人能搞定这个事,这里还有另一个思路,就是想想谁能解决这个问题,找那个能解决问题的人。


从环境、问题本身、问题的主体三个维度来分析,我们得到了好几个解决方案。我们接着分析哪种方案更靠谱。


解决方案分析


方案一,从环境角度分析,让问题不发生。这种成本是最小的。但如果问题已经发生,那这个方案就没用了。


方案二,在项目规划的时候,提前安排更多资源。这招好是好,但前提是你公司有那么多资源。大部分公司都是资源不足。


方案三,新增资源,这个招人不会那么快,就算招进来了,一时半会还发挥不出多大的价值。请外包的话,其实跟招人一样,一时半会还发挥不出多大的价值,成本还更高,也不适合。至于跟团队成员商量提高工作效率或者大家加个班赶上进度,这也是一个解决方案。不过前提是团队还有精力承担这些工作。


方案四,减少需求。这个成本最小,对大部分公司其实也适用。关键是需求管理要做好,对需求的优先级有共识。


方案五,解决让问题发生的人。这个如果不是有大的积怨,也是一个比较好的方案。对整个项目来说,成本也不会很大,项目时间和质量都有保证。


项目管理里有一个生命周期概念,越是在早期发生问题,成本越小。越到后期成本越大。所以,如果让我选,我会选择方案一。但如果已经发生,那只能在四和五里选一个。


实战经验


离职是一场危机管理


让问题不发生,那么解决之道就是不让员工离职。尤其是不让核心骨干员工提离职。离职就是一场危机管理。


这里的本质的是人才是资产,我们在市场上看到很多案例,很多企业的倒闭并不是因为经营问题,而是管理层的大批量流失,资本市场也不看好管理层流失的企业。了解这点,你就能理解为什么人才是资产了。所以对企业来说,核心员工离职不亚于一场危机。


下面分享一个危机管理矩阵,这样有助于我们对危机进行分类。


横轴是一件事情发生之后,危害性有多大,我们分为大、中、小。纵轴就是这件事发生的概率,也可以分为大、中、小。然后就形成了九种不同的类型。



我自己的理解是,有精力的话,上图红色区域是需要重点关注的。如果精力有限,就关注最右边那三种离职后,危害性特别大的员工(不管概率发生的大小)。要知道给企业造成大影响的往往是那些发生概率小的,因为概率大的,你肯定有预防动作,而那些你认为不会离职的员工,突然一天找到你提离职,你连什么准备都没,这种伤害是最大的。


理论上所有岗位都应该准备好”接班人“计划,但实际上很多公司没办法做到。在一些小公司是一个萝卜一个坑,这个岗位人员离职,还得现招。这不合理,但这就是现状。


公司如何管理危机?


好,回到公司身上,公司如何管理危机?


第一,稳住关键性员工,让员工利益和公司利益进行深入绑定。


那些创造利润最大的前10~20%的员工,就应该获得50%甚至更高的收益。当然除了金钱上的激励外,还要有精神上的激励,给他目标,让他有成就感等等。


第二,有意识地培养关键岗位的接班人或者助理。


比如通过激励鼓励他们带新人、轮岗等等


第三,人员的危机管理是动态变化的,要时不时地明确团队各成员的位置。


比如大公司每年都会做人才盘点。


第四,当危机真的出现后,要有应对方案。


也就是把危机控制在可承受的范围内。比如,项目管理中的planB方案,真遇到资源不够,时间不够的情况下,我们能不能放弃一些不重要的需求?亦或者能不能先用相对简单但可用的方案?


离职管理的核心是:降低离职发生的概率和降低离职造成危害的大小。


离职沟通


如果事情已经发生了,管理者应该先通过离职沟通,释放自己的善意。我会按照如下情况跟离职员工沟通


第一,先做离职沟通,了解对方为什么离职?还有没有留下来的可能,作为管理者有什么能帮他做的?


第二,确定走的话,确认下对方期望的离职时间,然后根据公司情况,协商一个双方都能接受的离职时间点。不要因为没有交接人,就不给明确时间。


第三,征求对方意见,是否需要公布离职。然后一起商量这段时间的工作安排。比如,你会坦诚告知会减少工作量,但哪些工作是需要他继续支持的。希望他能一如既往地高效完成工作。


第四,如果还没有交接人到岗,最好在一周内安排人员到岗,可以考虑内部换岗,内招、猎聘等手段尽快让人员到岗。


第五,如果已经到离职时间,但还没有交接人,作为公司管理者,你就是最好的交接人。在正式交接工作之前,要理清楚需要哪些相关的资料,做好文档分类。如果实在对离职员工的工作不了解,可以让离职人员写一封日常工作的总结。


如果做完这些,离职员工还是消极怠工。作为管理者能做得就比较有限,可以尝试以下几个方法


1、再进行一次沟通。表明现在公司的情况,希望他给予支持。


2、看看自己能给予对方哪些帮助,先把这些落实好。比如写推荐信。另外有些公司入职的时候会做背景调查,这也是你能够帮助到他的。


3、如果你有权利,可以跟离职员工商量是否可以以兼职的方式来完成后续工作。这种方式对大家都好,他可以早点离职,你也不用担心因为时间仓促招错人。


如果做完以上这些还不行,那么就考虑减少一些需求,用更简单的方案先用着,后期做迭代。至于说让团队加班加点赶进度,这个要根据项目实际情况来定。


总结:今天给大家分享了一个简单分析问题的方法。然后重点聊了一下项目成员突然要离职,项目负责人有哪些应对方案。如果你看完有收获,欢迎留言讨论。


作者:石云升
来源:juejin.cn/post/7147319129542770702
收起阅读 »

我裸辞了

前言 时间过得真快,不知不觉已经23岁了。今年是我工作的第4年,入职现在的公司也2年了。完成了2年前定下的目标,成功弥补了自己项目上的短板以及技术深度的不足。 经过一番深思熟虑后,我决定裸辞,向下一个目标出发。 为什么离职 有位企业家曾说过,员工离职就两个原因...
继续阅读 »

前言


时间过得真快,不知不觉已经23岁了。今年是我工作的第4年,入职现在的公司也2年了。完成了2年前定下的目标,成功弥补了自己项目上的短板以及技术深度的不足。


经过一番深思熟虑后,我决定裸辞,向下一个目标出发。


为什么离职


有位企业家曾说过,员工离职就两个原因:



  • 工资没给够

  • 心受委屈了


其实,去年7月份的时候,我就萌生离职想法了,那个时候公司做了制度改革,将入职时谈的薪资进行了拆分,拆了20%出来做绩效。



  • 升职加薪按照每月的绩效考核,取出平均分,超过85分才有机会

  • 请假回来后,需要通过加班把你请假所耗费的工时补回来,否则扣绩效分

  • 上班忘记打卡直接扣全勤奖300块(全勤奖是算在入职时所谈的薪资里)

  • 下班忘记关显示器扣绩效分

  • 工位上吃东西扣绩效分


绩效制度推出后,一改再改,条件越来越苛刻。


想拿到B绩效你必须卷起来,超时超额完成任务(加班加点完成手头工作),请假(事假、病假)回来后,需要自己通过加班来把工时补回来。



制度刚推出来的时候,我就打开了boss直聘开始看机会,刷了2周,联系了很多家。最终就1家收了我简历,最后约了面试,其他的要么是送达,要么是已读未回。



到了面试当天,是前端主管面的我,问的更多的是项目相关的问题,问了一些js相关的问题以及基础的数据结构和算法,我都回答的不错。前前后后聊了1个多小时,面完后hr就过来跟我聊了下,他问了我三个问题:



  • 刚才的面试感觉怎么样?

  • 你觉得我们的产品怎么样?

  • 你还有什么想了解的吗?


这些问题回答后,他就说:那行,今天的面试就到这,后面合适的话微信通知你进行复试。他把我送出公司后,正好看到了那个面我的前端主管在等电梯,我跟他打了招呼,在电梯上简单聊了下,他问我现在还在不在职、现在的公司在哪里、住在哪里。电梯下到1楼后,他去买咖啡了,我跟他道了别。


回去后,过了两天也没有复试的消息,我就主动发微信问了hr,他给我的结果是:能力尚未达到高级🤡



还是怂了


那场面试得到结果后,我就在自己的群里跟群友聊了下这件事,他们说,这或许只是一个委婉拒绝你的理由,市场上人太多了,可能有人要价比你低。很多群友都说很难,互联网寒冬,他们也在boss直聘上联系了很多,也都是已读未回和送达,面试机会寥寥无几。


看到这么多群友说难,我心里也打起了退堂鼓,要不就再等等吧,我本本分分做事,做好自己的工作,只要能拿到自己正常的薪资就行,先不跳了,等市场好些了再跳吧。



冰冻三尺,非一日之寒


时间来到今年3月份,领导给我发放当月考核表的时候,本来能拿到B绩效(组里来了新人,是我在带,给我加了绩效分),但是,他又从其他地方扣掉了这些分。


这波操作触及到我的底线了,不能再忍让下去了。我还是走吧,想到公司制度规定了每年4月份会有一次薪资涨幅,如果我现在走的话,有点不划算,那就等5月15日拿到涨幅后的薪资再提离职吧。临走前把薪资base提升一点也挺好的。



很多群友也在劝我三思,今年的市场行情比去年还差,还是建议骑驴找马,找到了再辞职。




不过,我觉得行情差就差吧,我的条件本来就很差了(对我过往不了解的读者可以阅读我的另一篇文章:一枚19岁程序员的自学之路),再差又能差到哪里去呢,我始终坚信自己的努力总有一天会得到回报的,天无绝人之路。



提出离职


时间来到2023年5月15号,薪资没有得到增长。我的期望没有如期而至,不过无所谓了,裸辞吧。



跟领导在大会议室聊了5分钟左右吧,开场白说完后,他说:我猜到了,其实去年制度改革后,我就知道公司留不住你了。说说理由吧。


我:主要有两点吧,制度和薪资,绩效薪资这个制度本身没有问题,但是我觉得它应该是在我入职时所谈的薪资之外。


领导:行,了解了,你更希望薪资是固定的对吧。那你期望薪资能涨到多少?


我:说了我的期望


领导:我们公司的制度你也知道,薪资的涨幅很小的。那你打算什么时候走?


我:按照制度来吧,一个月后走。


领导:行,好聚好散嘛。


再然后就是说了一些我手头上还有哪些工作,虽然提了离职,但是工作上可不能懈怠摆烂之类的话,讲完后,就结束了这场谈话。


寻求内推


感谢各位读者阅读本文,如果你们公司有前端开发岗位在招聘的话,可以内推我下我🤗。


我的联系方式:



写在最后


至此,文章就分享完毕了。


我是神奇的程序员,一位前端开发工程师。


如果你对我感兴趣,请移步我的个人网站,进一步了解。



  • 文中如有错误,欢迎在评论区指正,如果这篇文章帮到了你,欢迎点赞和关注😊

  • 本文首发于神奇的程序员公众号,未经许可禁止转载💌


作者:神奇的程序员
来源:juejin.cn/post/7233407035772616763
收起阅读 »

咱不吃亏,也不能过度自卫

这次我谈谈不吃亏的一种人,他们不吃亏近乎强硬。这类人一点亏都不吃,以至于过度自我保护。 我们公司人事小刘负责考勤统计。发完考勤表之后,有个员工找到他,说出勤少统计了一天。 小刘一听,感觉自己有被指控的风险。 他立刻严厉起来:“每天都来公司,不一定就算全勤。没打...
继续阅读 »

这次我谈谈不吃亏的一种人,他们不吃亏近乎强硬。这类人一点亏都不吃,以至于过度自我保护。


我们公司人事小刘负责考勤统计。发完考勤表之后,有个员工找到他,说出勤少统计了一天。


小刘一听,感觉自己有被指控的风险。


他立刻严厉起来:“每天都来公司,不一定就算全勤。没打卡我是不统计的”。


最后小刘一查,发现是自己统计错了。


小刘反而更加强势了:“这种事情,你应该早点跟我反馈,而且多催着我确认。你自己的事情都不上心,扣个钱啥的只能自己兜着”


这就是明显的不愿意吃亏,即使自己错了,也不愿意让自己置于弱势。


你的反应,决定别人怎么对你。这种连言语的亏都不吃的人,并不会让别人敬畏,反而会让人厌恶,进而影响沟通


我还有一个同事老王。他是一个职场老人,性格嘻嘻哈哈,业务能力也很强。


以前同事小赵和老王合作的时候,小赵宁愿经两层人传话给老王,也不愿意和他直接沟通。


我当时感觉小赵不善于沟通。


后来,当我和老王合作的时候,才体会到小赵的痛苦。


因为,老王是一个什么亏都不吃的人,谁来找他理论,他就怼谁。


你告诉他有疏漏,他会极力掩盖问题,并且怒怼你愚昧无知。


就算你告诉他,说他家着火了。他首先说没有。你一指那不是烧着的吗?他回复,你懂个屁,你知道我几套房吗?我说的是我另一个家没着火。


有不少人,从不吃亏,无论什么情况,都不会让自己处于弱势。


这类人喜欢大呼小叫,你不小心踩他脚了,他会大喊:践踏我的尊严,和你拼了!


心理学讲,愤怒源于恐惧,因为他想逃避当前不利的局面


人总会遇到各种不公的待遇,或误会,或委屈。


遇到争议时,最好需要确认一下,排除自己的问题。


如果自己没错,那么比较好的做法就是:“我认为你说得不合理,首先……其次……最后……”。


不盲目服软,也不得理不饶人,全程平心静气,有理有据。这种人绝对人格魅力爆棚,让人敬佩。


最后,有时候过度强硬也是一种策略,可以很好地过滤和震慑一些不重要的事物。


作者:TF男孩
链接:https://juejin.cn/post/7196678344573173816
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

一位程序员,做了一个浏览器插件,赚了 4 万美元

序 今天分享的是一个能为开发者带来 4 万刀收入的浏览器插件 ReaderMode;这又是一篇旧文, 4 万刀已经是前年(2021 年)的事了。 这个插件花了 8 个月时间累计营收 1 万刀,但仅仅一年多后,累计收入就翻了 4 倍。听起来好像不太真实,但看完你...
继续阅读 »


今天分享的是一个能为开发者带来 4 万刀收入的浏览器插件 ReaderMode;这又是一篇旧文, 4 万刀已经是前年(2021 年)的事了。


这个插件花了 8 个月时间累计营收 1 万刀,但仅仅一年多后,累计收入就翻了 4 倍。听起来好像不太真实,但看完你可能会对浏览器插件市场有不一样的看法。


想法 → 第一版上线


最早,一位马来西亚的程序员 Ryzal 在筹划着做个小产品来赚点生活费;基于他日常的观察认为浏览器插件是一个可以比较低成本的快速验证想法的方式,所以就决定在插件领域下工夫;在看完一圈插件,然后结合自己平时浏览网页时对各种广告以及乱七八糟排版的不爽,于是就想一个可以让用户无干扰、沉浸式阅读文章的插件应该会很受欢迎。


本来就是想着可以快速验证想法,他马上就开始了;只花了一个周末,就出了 MVP 版 - 最小可行产品。


把 MVP 发给了几个朋友和群组里,打算着是收集一些用户的吐槽和建议。结果竟然有几个人直接付费购买了 pro 版。



浏览器插件也有人愿意付费?!



国内可能比较少见,但在国外需要付费使用的插件还是挺常见的。很大程度也是海外用户付费意愿比较强的缘故,更多的内容在上一篇《为什么开发者应该多关注海外市场》有展开详谈。


商业模式


ReaderMode 采用的商业模式是 freemium,大白话说就是基础功能免费使用,高级功能付费使用。Freemium 是国外 to C 的产品比较主流的商业模式了,比如 Notion, Slack, Dropbox 等。


这种模式的好处是,用户没有心理门槛,有点好奇心的小伙伴都可能会试试(反正不花钱)。这样基础用户量就有了,但凡你的产品是有亮点的(即使是免费的功能),就会有一批忠实用户;这些忠实的用户会帮你转发,推荐给更多的用户,这就是口碑传播 word of mouth (WoM)。WoM 传播未必是最快的,但是一定是转化效率最高的传播之一。


用户基数大了,自然就会“漏斗”出付费用户了。


可以说 freemium 模式下的免费用户是营销推广的利器;其实从财务角度来看,你可以把免费版的投入(时间、精力、钱等)看作是市场推广费用。


从这个角度来思考免费档的功能以及其设计能创造出更高的 ROI。


Soft launch


回到时间线上,Ryzal 根据 beta 用户的反馈做了一些调整,花了一个月时间才把产品打磨到可以对外发布的程度。


在正式发布之前,他还做了一次叫 soft launch,就是在自己个人的渠道小范围地做一次宣发。这也是国外独立开发者比较常用的发布策略。其目的有多层:



  • 二次验证需求

  • 获得更多的关注者

  • 压力测试

  • “大家来找 bug“

  • 为正式发布暖场


这是 Ryzal 当时 soft launch 发的推;留意他还提供了个 8 折优惠码吸引早期试用用户。


image.png


这次 soft launch 算不错,给 ReaderMode 带了 100 多位用户。顺势他在这条推下面做了个小调研:


image.png


很明显这是为了在 ProductHunt 上面做正式发布做准备了;前面提到的为正式发布暖场的意图也在这里显现出来了。


为什么在 PH 的正式发布那么重要?还需要暖场?


ProductHunt launch


首先,PH 是什么?



PH 是一个新产品发现平台。提交新产品的方式可以是创造者自己提交,或者是用户自己发现了好用好玩的产品提交到平台。



由于平台每天都会收到的数十条新品提交,为了鼓励优质的产品,他有一个排名机制;这个排名的依据是当天新产品的 upvote(可以简单理解为点赞)数量。


PH 的流量非常大,如果能在当天的发布排名中占到前 5,带来的曝光是非常可观的;更不用说如果进入前 3,还会有专门的徽章。


image.png


之前分享的独立设计师独立开发者案例,都是在 PH 获取早期用户。对于初创产品,把发布节奏和细节把控好,产品冷启动的问题可能一下子就解决了,随之还带来一大拨免费 PR 流量。


其实,不仅是独立产品、创业公司,就连大公司也会把新产品提交到平台,可见 PH 在行业内的影响力之大。


从 0 到 2000 美元


Ryzal 把发布的内容都准备好后,在 PH 上正式发布并顺利地拿下来了当天的最高赞。


image.png


ReaderMode 的 PH 链接


更加幸运的是,不仅 PH 的创始人 Ryan(推特大 V)为其推广,连 LifeHacker 这种大媒体都留意到了这个产品并对其作出了报导。


短短发布后的 24 小时内,这个产品就收了 2000 美元;而这离写下第一行代码应该只有不到 2 个月的时间。


再次证明了,产品力本身就是最好的营销技巧。


增长到 40,000 美元


整体下来从发布到 5000 用户,两周时间,没花一分钱。有了一个成功的 PH 发布,带来近 10 家媒体(可能实际更多)的曝光,这个产品已经有不少 credibility 了;3 个月后,1 万用户达成。


image.png


截止至 2021 年 5 月左右的收入,总计 4 万多刀,分两部分组成。



  1. 一部分产品的直接收入:


image.png



  1. 另一部分是通过一些 deal sites(比如 AppSumo)的收入:


image.png


接下来就躺赚了?


不存在的,这是许多开发者对做独立产品的一个误解。


事实上,Ryzal 在 PH 发布后的第二天就开始了新一轮的迭代。今天,ReaderMode 已不再是一个简单的插件了,而是一个



All-in-one reading, bookmarking, highlighting and research app.



所以,开发者们码起来、迭代起来!


作者:强生
链接:https://juejin.cn/post/7229126088227962936
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

内向性格的开发同学,没有合适的工作方法是不行的

一、背景 做软件开发同学的从性格上来说有两类人:外向的、内向的。 外向的人在工作中擅长交流,内向的人在工作中善于总结,两种的人都是开发团队需要的。 外向的人在工作中善于活跃团队内的气氛,逐渐走向技术管理路线,带领团队走的更远,控制开发目标与路线;内向的人更擅长...
继续阅读 »

一、背景


做软件开发同学的从性格上来说有两类人:外向的、内向的。


外向的人在工作中擅长交流,内向的人在工作中善于总结,两种的人都是开发团队需要的。


外向的人在工作中善于活跃团队内的气氛,逐渐走向技术管理路线,带领团队走的更远,控制开发目标与路线;内向的人更擅长观察,容易成为团队的定心骨,逐渐走向技术专家路线,肯研究肯花时间提高自己。



那么,在这个过程中,内向人前期的成长尤为重要,合适的工作方法和习惯也会提高在团队中的地位,而不是单纯的低头干活,本文分享下自己的经验,不一定对希望对大家有参考。


不同的性格的人,具有不同的工作方式和方法,和生活习惯,对于软件开发这个职场环境来说,内向性格不是劣势,很多人外表看着外向,其实潜意识也有很多内向性格的特征。


内向也是人的宝贵的一面,有时也是能力优势的一部分(如善于深度思考等),如果让自己掌握外向同学的行动方式,逐渐的做出改变,会更好。



二、现状


 刚毕业不久进入到职场中工作的毕业生,如果性格是外向的,那么他其实问题并不大,很多的时候,可以快速调整自己,并被其他人看到自己的工作成果,而内向性格的毕业生,如果在职场中没有主动去做某些工作和承担哪些职责,或对自己目前的工作状况没有及时调整和改变,就会造成成长缓慢,有的人会出现明明自己每天努力学习,却还是工作中那个让同时感觉能力最差的,导致经常没有分配到核心的开发工作,长此以往,消极的各种状态就出现了。


比如内向性格的毕业生在初入职场中经常会出现如下症状:


1、明知项目组的工作环境和方式存在一些不健康的因素,自己不太愿意去参与或评论


2、对开发整体流程和环节不清楚,及需求的判断有问题,需求频繁改动,代码写了被删除,自己却不敢说,或说了一次被骂以后沉默了


3、项目组缺失技术经理等全流程人员,需求自己理解和功能设计,自己却没有及时吧自己的想法与他人沟通 ,外包团队更明显


4、身边缺乏可以聊天的mentor、同事,自己感觉开发能力无法提升,却一直憋在心里,产生怀疑


5、不知道工作中如何问同事问题,才愿意帮忙解答,持续很长时间未获得同事的信任


6、有时过于逞强,不想让别人觉得自己不行,不会拒绝,实际工作量与评估有差别,导致自己延误工期。



以上的这些问题,可能不止内向性格的人会有,很多外向的人可能也会有,只是在内向性格的人身上更明显而已,如果内向性格的毕业生,明知道自己有这种情况,却不思考解决办法和改变,长时间后自我开始产生怀疑。 职场中,沟通、反馈、改变是很重要的,但是沟通不一定就是说话,反馈不一定是面对面,而改变是一直要持续去做的。 


之前看过一点得到的沟通训练营的视频教程,感觉里面有些技巧是值得大家去学习的,不仅仅是开发类型的同学。


三、经验分享


 下面我分享下,我的一些经验,可能不太对,但是希望可以帮助到看到这篇文章,深有同感的你。 


问题1:内向性格的毕业生,说的话,或者请求别人的东西,别人听不懂怎么办?


 这里先记住一件事情,在职场中,开发者要学会给不懂技术的人员,讲明白事情,要逐渐学会用生活中的事情去类比。


这个真的很重要,当你给不懂技术人讲的多以后,很多人可能都会来请教你关于某件事的理解,这个通常我们和系统的售前、需求人员、产品人员用的比较多,得学会用生活中的例子或故事去告诉他,XX能做,XX不能做的原因是什么。要坚持去练习。 


 对于请教一些人技术问题时,不管是同事也好还是网友也好,要明确自己给他的这个消息,别人是否会听懂,马上给出解决办法,还是别人看到这个问题以后,还要和我交流1小时才能知道是啥意思,这个也是很多有经验的人,不愿因帮助低级程序员的原因,这里分享下请教问题的描述模板: 


我遇到了一个问题或场景:【问题描述】,我想要实现【X功能】,但是出现了【Y现象】,我经过以下尝试:【思路细节】,但是不能解决,报错如下:【报错信息或截图】,或者我使用【关键词】百度,但是找不到答案,请问我该怎么解决或分析。


 而很多时候有经验的人,也会发现你百度的搜索词不对,这个时候,他根据你的阐述可能会告诉你怎么输入比较靠谱的搜索词来解决办法。 


问题2:评估工作计划有时过于逞强,不想让别人觉得自己不行,不会拒绝


这个真的想说,工作前期真的别逞强,没做过就是没做过,不行就是不行,别找啥接口,但是别直接和负责人说这个东西我不会(这个是很不好的,不能说不会,这是明显不相干的意思),比较合适的说法是:这个东西或概念我暂时不太清楚,没接触过过,需要一会儿或下来后我需要去研究下,然后咱们在沟通或者确定一下。 


 而很多内向性格的毕业生,缺少了这种意识,同时安排某项工作任务时,缺少对任务的分解能力和排期能力和工作后排期后的To do List梳理能力,以至于自己5天完成的任务,口头说2天就搞定了。 


 其实这种,前期mentor该给你做个示范分解的操作,或者自己主动问下,如何分解项目的需求和任务。


 而真正开发的时候,每天可能都感觉这里需要加上XXX功能,那里需要加上YYY功能,但是不知道是否需要做,这里我的建议是,把他加入到自己To do List中,然后找个时间和同事去沟通下这个想法,长此以往,同事的心里,你就是一个有想法的人,虽然不善言辞。


 主要就是这里,我们要体现自己的一个工作的对待方式,而不是一直被动接受,不拒绝,不反馈。 


问题3:明显知道产品经理、项目经理等等人员对需求的认识不足,自己闷着不反馈和说话


 很多时候,任务的返工和需求的变更,有一部分是这个原因的,在经验尚少的情况下,自己未能说出自己对这个需求的认识和怀疑,就去搞了,最后大家都不是特别的好,尤其是在产品需求设计初期,包括需求提出者也是理解不够的,这里可能有很多内容其实是你可以提供的服务,也有一些是产品在犹豫使用哪种方式实现的功能,在与你讨论后,觉得你说的又道理,而决定复用你已经有的系统。 


 很多出入职场的同学,觉得没成长也有这方面的一点原因,自己开发的功能,缺少自己设计思想和认知的影子,如果能在当前系统中体现出了自己的想法,时间久了多少成就感会有点提升的。 


要学会做自己负责的模块/功能的主人,把他们当做自己的孩子一样,主键养成主人翁的意识


问题4:项目组,当前啥都没有,文档、测试,自己也和别人一样不做改变


 这个也是目前很多公司的现状,但是不代表别人不干,你就不干,这个时候,谁主动,谁就能表现一把,同时,这也是被动让同事主动问你或咨询你的机会。


 比如没有协同的东西,那你能不能自己先装个Confluence Wiki或飞书云文档工具,自己先用起来,然后某个时机在同事眼前展示下,自己基于这个软件形成的技术思考、技术经验、技术记录等等等。


比如没有自动发布或代码质量的东西,那你能不能自己先搞个jenkins、sonarqube、checkstyle、findbug,让自己每次写完的代码,自己先搞下,然后某个时机告诉同事这个东西必须这么写怎怎么样。


 是不是有人又说了,工作没时间搞这些东西,你是不是又在扯皮呢,我只能说起码比你空闲时间自己偷偷学习公司短期内用不上的技术或长时间用不上的东西好吧,至少我能非常快速的获得1个同事的信任、2个同事的信任,从而获得团队的信任与核心工作的委派。


大部分人的想用的技术都是和公司的技术栈不搭边的,至少先把脚下的路走出来。


四、总结


 其实最近几年,发现好像很多人被卷字冲昏了头脑,每天都在想着高大尚的技术点和八股文,导致短期的这个工作没干好,还说没成长,以至于某些情况下还被认为是工作和团队中那个能力最差的,即使做了很多的努力。我想说的是,某段时间点或时期内,至少要把当前工作做好在谈论吧,这个在一些内向性格的人身上会表现的明显一些。


IT行业,很多优秀的人也是内向性格的,掌握了合适方法,会让他们成为内向性格顶端的那批优秀的人群。 


说道性格吧,即使是内向型的,可能针对十二星座还是衍生出不同的人生和结果,每个星座的也是有区别的。而在这里面最突出的我觉得是天蝎座的人群。


身为天蝎座的我,经常会想到那些和我一个星座的大佬们:


搜狐创始人张朝阳、腾讯创始人马化腾、百度创始人李彦宏、雅虎创始人杨致远、微软创始人比尔.盖茨、联想集团CEO杨元庆、推特CEO杰克.多尔西、新浪董事长曹国伟。


他们的成长也一直在激励着我。


作者:爱海贼的无处不在
来源:juejin.cn/post/7232625387296096312
收起阅读 »

30 岁了!通过 AI 问答完成了这篇思考文章

大家好,我是 shixin。 岁数越大,越不愿承认自己的真实年龄。前段时间别人问我年纪的时候,我嘴硬的说“二十九周岁”,现在,就只能无奈的说“三十”了。 说来也奇怪,为什么会觉得无奈呢?我想,我是想保留「二十多岁」的青春朝气、心无旁骛,抗拒「三十多岁」的中年危...
继续阅读 »

大家好,我是 shixin。


岁数越大,越不愿承认自己的真实年龄。前段时间别人问我年纪的时候,我嘴硬的说“二十九周岁”,现在,就只能无奈的说“三十”了。


说来也奇怪,为什么会觉得无奈呢?我想,我是想保留「二十多岁」的青春朝气、心无旁骛,抗拒「三十多岁」的中年危机、生活压力。


无论怎样我终究还是和三十岁相遇了,既然逃不掉,那今天就和它聊一聊。


三十岁意味着什么


我拿着这个问题问了 ChatGPT,它根据我的上下文给的回答如下:




可以看到,它给的回答还是蛮好的,基本上道出了现在困扰我的一些点。


三十岁,工作和生活对我的要求更高了。


工作方面,现在需要考虑的比以前更多了一些。除了个人贡献还需要做团队贡献,为自己的小组和整个团队带来更大价值,把自己知道的技术和经验传播给更多小伙伴。


家庭方面,快到要小孩的时候了。理论上三十岁已经年纪不小应该响应国家号召,但无奈生娃养娃的成本太大,还得多奋斗几年才有底气。今年准备先把婚礼办了(疫情影响婚礼日期改了好几次,上帝保佑这次顺利),过两年再考虑要孩子吧。


至于工作生活的平衡,老实讲目前还没有足够的资本,还得在工作上投入大部分时间。如何解决这种情况呢?是个值得思考的问题。


三十岁前我的人生


三十岁前,我的人生里有很多意想不到


十岁的我,没有想到未来我会去包头,更没有想到会在高中遇到现在的老婆。那时的我在呼和浩特,有四五个很要好的朋友,搬家的时候心里有一万个不舍。


十五岁的我,没有想到我会去西安读书,学的是计算机。那时的我还在想方设法溜到网吧通宵打游戏。


二十岁的我,没有想到我会从事安卓开发,也没有想到会去上海工作。那时的我在盲目瞎学,手机上写 OJ,看小甲鱼和黑马程序员,图书馆借了几本很老的 MFC 和 HTML CSS 书,跟着例子敲出来一个 H5 打飞机游戏。


二十五岁的我,没有想到我会在上海定居。那时我想的是干几年去西安定居,在那里离老家近一点,买房压力也小一点。后来机缘巧合,在买房时和几个前辈朋友聊了聊,听了他们的劝导,改成在上海定居。




ChatGPT 的这段回答让我泪目。有时候打的字越多,越渴望得到认可的回复,这种感觉,它给到了。



三十岁的我,虽然没有 100% 达到五年前预想的目标,但好在完成了一些当时觉得很难的事,比如买房、写书、直播分享,这些事是我成长的见证,也让我沉淀下一些经验和教训。


希望自己可以继续保持的


我希望自己继续保持的第一个点:在损失可以接受的情况下,多尝试多探索。


之前打德扑的时候,我属于比较激进和浪的那种,这种性格的缺点是会浪费很多筹码,但优点是过程很有趣,也常常会博到一些额外的收益。


生活里也是类似,在大学做小生意的时候,我愿意多跑几家店看看有没有价格更合适的货,也愿意多推开一扇门去问一下是否有需求,虽然收到不少白眼、也没赚大钱,但这段经历让我意识到:反正被拒绝也没什么损失,多试一次就多一个机会。


第二个需要继续保持的点:多种善因。


过往人生的关键节点,让我深刻的感受到:当下的果,往往来自过去不经意间种下的因。


就拿今年的几件事来说:



  1. 二月有机会在社区里做分享,缘自去年国庆主动报名 GDE 项目,虽然没通过筛选,但好在建立了联系,有这种机会时人家才会想到我



  1. 上周组里做的 ReactNative 技术培训,缘自字节时做的 Diggo 项目,在其中提升了前端开发技术,以至于后面做 RN 很顺畅,从而走在团队前头


今年很多事都是之前种下的善因结出的果实,除了满足,还需要多想想:



  1. 怎样为以后种下更多善因



  1. 现在要做的事,从长期来看,重复多次后的收益是怎样的



第三个需要继续保持的点:每日、每周、每年必做计划。


每日预则立,不立则废。我是一个善忘的人,如果哪天没有定好计划,基本上就稀里糊涂的过去了。首次发现这个问题,是我写2016 年度总结的时候,回顾发现好多细节都不记得了,有的月份里可能只记得一两件事,剩下的日子都进了黑洞无影无踪。


从那以后我就经常做记录、做计划,既然内存不够用,那就用磁盘缓存。做好每天的计划后,即使被突发事情分了心,我也可以及时调整状态回归高优。在日积月累下,才渐渐地完成了一件件看似很难的事,比如一篇有价值的文章、一个高质量的开源库(github.com/shixinzhang…)。



希望自己可以避免的


除了需要继续保持的,我也有很多后悔的事,比如做错事、说错话、浪费时间。


总结原因后,大概有这几点需要避免:



  1. 避免思想上的懒惰,少说这样的话:没办法、算了、就这样吧;多说:我试试、或许这样做就可以



  1. 避免和他人比较,比别人优秀或者差都不重要,重要的是有没有持续前进



  1. 避免没有进展的时候硬逼自己,多思考方向、方法是不是有问题



  1. 避免花钱的时候只看价钱,不对比购买后的体验和长期区别



  1. 避免做计划的时候过于悲观,目标定高点才可能做的更好



  1. 避免追求完美而不愿意开始,做完比做好优先级更高



  1. 避免在累的时候不休息,贪图享乐而继续浑浑噩噩




  1. 避免骄傲自满、自我膨胀,骄傲一来羞耻就来了




大胆想象一下,三十五岁的我


借用亚马逊的逆向工作法,先想象一下我 35 岁的情况:



  1. 第一种可能:独立开发了某个产品,为细分领域的人提供了独特的价值,从而获得不错的收益,业务比较忙的时候雇佣了几个助手



  1. 第二种可能:继续打工,但因为技术较好、沟通表达能力不错、有商业思维,担任某个业务的技术负责人



  1. 第三种可能:因为工作经验和年纪薪资不匹配被裁,投简历基本没有回复,最后忍痛降薪 50% 接了个 offer


要达到第一种情况,需要具备技术广度,可以独立完成产品的需求调研、设计、全栈开发和运营,更重要的是,尽早捕捉到信息,挖掘出其中的信息不平衡点或者需求点。这种情况对人的要求更高、风险也更高。


要达到第二种情况,需要付出的努力比上面略微少一点,需要具备一定的技术深度和广度、提升对公司业务和行业趋势的了解,主导完成一些有价值的事,同时在公司内部有一定的影响力。这种情况比第一种更稳一点。


要避免第三种情况,需要经常了解市场相关岗位的要求,不断提升自己的技术和业务价值以匹配要求,最好有代表性的作品和影响力。


总结


这篇文章是我三十岁当天开始动笔写的,因为种种原因拖到今天才完成,实在不应该(捂脸哭。


总是听人讲“三十而立”,为了看自己到底立没立,我看了好些名人的视频,想从中寻找答案。



到现在我悟了,所谓的“立“就是建立、确定、稳固。人活着最重要的就是吃饱和开心,三十岁,能够有一技之长和自我融洽的三观,就算是立住了吧!



作者:张拭心
来源:juejin.cn/post/7210386831451357221
收起阅读 »

工作三年后, 我作为Java后端开发的一些心得

一: 关于开发 我把关于编程的写在最前面, 我觉得对于开发人员来讲, 编程能力才是混饭的手艺, 它也一定程度上也决定了你的钱包和获得工作的筹码. 1. 敢于和善于使用package 对于Java后端开发来讲, 在长时间的web开发中. 大家已经熟悉了...
继续阅读 »

一: 关于开发


我把关于编程的写在最前面, 我觉得对于开发人员来讲, 编程能力才是混饭的手艺, 它也一定程度上也决定了你的钱包和获得工作的筹码.


1. 敢于和善于使用package


对于Java后端开发来讲, 在长时间的web开发中. 大家已经熟悉了MVC架构, 也被这套结构所束缚. 导致创建出来的包也一直都是controller, manager, service, dao. 也将各种各样的类文件都放入其中. 这并不是一种好的做法.


其实我们可以大胆的创建相关的package, 只要让结构更合理, 可读性更高.


比如可以把对接前端的类写到request, response包; 把一些处理器提取出来放到handler中, 把一些定时任务放到schedule包; 把参数构造相关的放到generator; 把校验相关的放到validator下等等. 


2. 合理的提取业务逻辑, 让方法只做和它相关的事情.


不知道大家是否看到过下面这种代码.  例如在一个单据的创建方法中, 做一系列的事情, 比如一坨校验参数逻辑, 一堆取价逻辑, 一堆扣减库存逻辑, 再加上创建单据本身的逻辑. 写下来一个方法上百行不止.

public class OrderManager {

@Autowired
private OrderService orderService;

public String createOrder(Request request){
// 1. 检查单据创建参数是否合法
if(Objects.isNull(request)) {
throw ....;
}
if(CollectionUtils.isEmpty(request.getGoodsList())){
throw ...;
}
...

// 获取商品的价格
List<Goods> goodsList = request.getGoods();
goodsList.forEach(goods -> {
// 查询商品价格

// 校验价格

// 对价格进行填充

});

// 构造单据逻辑

// 创建单据

return orderCode;
}
}

这个方法里做的事, 没有多余的事情, 但是没有合理的进行业务逻辑的提取. 导致代码看起来非常的杂乱.我们可以对一些业务逻辑做提取封装. 来的到更好的可读性和解耦. 这只是一个简单的例子, 在复杂的业务逻辑里更需要合理提取, 否则屎山就出现了.

public class OrderManager {

@Autowired
private OrderService orderService;

@Autowired
private OrderValidator orderValidator;

@Autowired
private OrderGenerator orderGenerator;

@Autowired
private PriceService priceService;

@Autowired
private InventoryService inventoryService;

public String createOrder(Request request){
// 1. 检查单据创建参数是否合法
this.orderValidator(request);

// 获取商品的价格
this.priceService(request.getGoods());

// 构造单据逻辑
Order order = this.orderGenerator.generator(request);

// 创建单据
this.orderService.create(order);
return order.getOrderCode();
}
}

3. 合理的方法命名和方法定义


方法名的定义很令人苦恼, 常常思前想后想不到好名字. 我曾经因为方法命名不好, 被疯狂的comments


方法命名的好坏受个人主观影响, 所以只说几个共同点:



  1. 言简意赅 准确表达方法内容

  2. 方法名与方法内容匹配

  3. 尽量别生僻单词...


对于方法的参数, 参数过多的时候, 对方法进行拆解或者抽象出对象去传参:

// 错误的案例
public int setParam(int xxx, String xxx, String xxx, String xxx, String xxx, int xxx, String xxx, String xxx){
...
}

// 合理的写法
public int setParam(XxxRequest request) {

}

4. 控制方法的圈复杂度, 让代码更有层次感


我一直觉得, 好的代码读起来应该像故事一样, 有前因, 有后果, 中间娓娓道来.  简单举个例子, 我们可能会遇到在方法中去for循环处理数据的情况. 比如在一个方法中, 套了三层循环.

List<String> orderCodeList = request.getOrderCodes();

// 第一层循环
for(String orderCode : orderCodeList){

// 查询单号对应的单据明细
List<OrderItem> items = this.orderItemService.getByCode(orderCode);
// 第二层循环
for(OrderItem item : items) {
// 执行操作1
// 执行操作2
// 执行操作3

// 第三层循环
for()
}
}

可以把每一层for循环都提取出来, 成为单独的一个方法, 来降低圈复杂度, 提高可读性

List<String> orderCodeList = request.getOrderCodes();

// 第一层循环
for(String orderCode : orderCodeList){
this.processSingleOrder(orderCode);
}

public void processSingleOrder(String orderCode){
// 查询单号对应的单据明细
List<OrderItem> items = this.orderItemService.getByCode(orderCode);
this.processItemsData(items);
}

public void processItemsData(){
for(OrderItem item : items) {
// 执行操作1
// 执行操作2
// 执行操作3
}
}

5. 不知道的知识可以去问问Google, 不要自己编


不知道标题是否贴切, 但是大家看了例子就会明白我的意思.


其中最为典型的例子我认为 是对Obejct和集合的判空 和 创建集合

// 对于判断, 很多人喜欢这样写
if( list == null || list.size == 0)
或者
if(order == null)

// 对于创建集合, 去创建空集合, 再添加
List<String> list = new ArrList();
list.add("xxx");
list.add("bbb");

其实只要我们Google以下, Java下如何对集合判空, 就能看到apache.commons 或者google.common等很多类库已经包含这些内容, 并且实现的更严谨, 更优美. 要请善于使用搜索引擎去填补自己不了解的知识.

CollectionUtils.isEmpty(list);

List<String> list = Lists.newArrayList("xxx", "bbb");

6. 不要for循环请求数据库和外部系统接口


慢请求的分析, 可能不需要要先去看有没有复杂的关联查询, 或者是不是数据库查询有没有命中索引, 而是先去看是不是有大哥在for循环去请求数据库和dubbo接口. 循环了1w次. 我曾经遇到过多次请求超时都是因为有人在代码里for循环去select , update. 


对于这种问题的解决, 将循环调用改成单次的批量接口就可以解决问题. 对于mysql的化in操作就可以解决, 对于外部系统对接的, 双方提供批量接口就可以了.


7. 没有意义的注释不要写


我很反感在类上要先写上 @Author @Date @Description 一大串内容表明这是你的杰作, 这不是JDK 也不是什么开源项目!!! 除了你和你的同事没人去看.


再或者像下面这样在方法上直白翻译了一堆废话, 注释不是这么用的...

/**
* 查询用户名称
*
* @Param name:用户名
* @Return 用户
*/
public User getByName(String name);

8. 不要忽视UnitTest


写过单元测试的会发现, 编写完善的单元测试会占用大量的时间, 一般都会超过需求的开发时间, 但是我还是认为单元测试是必须且重要的. 因为作为研发人员, 才是最了解代码中哪里容易出问题的. 更容易写出发现问题的测试用例. 并且代码迭代或者修改后, 也能更快速的发现问题, 将问题停留在研发阶段去解决, 提高整体的进度.


9.善于使用AI编程工具


在我使用了Github copilot和ChatGPT半年后, 我发现我的摸鱼时间变多了... 因为AI编程工具帮我完成了一定量的工作. 例如最常用的代码补全, 代码自动生成, 自动生成单元测试等等


在当今, 熟练掌握AI编程工具, 是提高自己工作效率的极佳的方法. 在未来, AI也一定会代替掉一部分程序员的工作.
1b48670f07e84e188917094af9f05120~tplv-k3u1fbpfcp-watermark.png


10. 利用IDE的工具来完成代码和优化代码



  1. IDEA自带功能扫描代码无用引用, 重复代码等坏味道 : Code → Inspect Code

  2. SonarLint

  3. MyBatis Plus

  4. Lombok

  5. Alibaba Java Coding Guidelines

  6. CheckStyle-IDEA

  7. ...


11. 拥抱新技术


  可能随着工作的时间变长, 大家对新鲜技术的兴趣并不像之前感兴趣. 或者认为目前的技术足够, 远不会过时, 即使过时了, 也会有公司使用.


  技术是不断迭代更新的, 使用技术的人也要随之更新. 当大家都去开始了解和使用云服务, 容器化, 使用JDK 17的新特性, 开始用云原生框架去替换现有技术时, 咱总不能一直玩转jdk 1.8吧.


  了解一些新技术并不是什么值得炫耀的, 不知道也不一定影响你工作和赚钱, 但是当互联网红利已经逐渐褪去, 内卷在越来越重的今天, 机会也变得弥足珍贵. 更好的知识储备, 也能让你能获得下一份工作, 在人才市场获得更多青睐.


  我也一直认为, 开发对很多人来说不光是工作, 也有着一份热爱.


二. 关于处理工作和人际关系


1. 开发并不只是开发


  这个标题就是字面意思, 指的并不是光顾忌自己的开发任务. 同时也要关注公司的运营和公司业务或者说自己负责的项目的业务.


  我见过一些程序员只是单纯的根据产品的文档写需求, 你需求怎么写, 我功能就怎么写. 但是研发在看待需求时, 应该持有自己的见解, 观点和建议. 这也就是需求评审的目的.


  不要觉得需求是产品提的, 和研发没有任何关系. 但是你需要考虑到, 当需求存在问题,  后续的需求优化, bug修复, 甚至数据处理, 可都是要由研发来做的. 简单来说, 错在产品, 但引发问题由你处理.


  而公司的运营, 关系到了你在公司的生存和发展, 所以关注着公司的运营情况, 也大概你知道你明年的涨薪是否有希望, 年终奖是否能按时发放, 以及你是否应该考虑换一个公司去继续搬砖.


2. 合理的分配和安排自己的工作


  拿到需求不要急于开发, 不要急于开发, 不要急于开发.


  我见过一些开发, 在拿到需求后会马不停蹄的开始Coding,  然后就出现边写边改, 再写又发现哪里存在问题, 最后发现写不通,  推翻了之前的结构再写. 


  这个可能并不适合所有人, 但是我认为在开始Coding之前, 是需要构思一下再着手的. 花一些时间分析一下这个需求, 考虑下设计到的各个部分, 构思下自己的开发思路, 设想下其中可能遇到的问题, 当思路清晰后, 再去着手开发, 这样会让你能够流畅的完成开发工作, 并且让你的代码质量更高.


3. 对自己的工作要有Owner意识, 答应的事情要尽力去做到


  什么是工作的Owner意识,  简单来说, 就是这个工作分配给你, 你就是第一负责人.


  对于分配到自己手里的工作, 首先要有一个正确的评估. 可以简单的分为: 这个工作你能不能做, 能不能按时做完, 要怎么做, 最后能做到什么效果.    


  如果因为种种原因做不到, 需要提前预报风险, 不要等到最后一刻告诉大家, 你没做到. 任务分配给你, 是因为这是你的工作, 也有一部分信任在, 是相信你可以做好, 别去辜负别人的信任,  信任可能因为一件事就确立起来, 也可能因为一件事情就毁掉.


4. 我不管别人摸鱼, 但不要影响到我的工作


  工作难免偷懒, 大家都有想休息放松的时候. 我对这个事情的看法就是, 摸鱼可以, 但是不要影响别人的工作. 


  在整个项目或者需求的流程里, 产品, 后端开发, 前端开发, 测试人员都只是其中的一环. 对于各个环节的人员来说, 都是这样, 可以适当摸鱼, 但是不要压缩了别人安排好的时间.


5. 自己的问题勇于承认, 但不是我的锅我不背


  承认自己的问题并不是一个可耻的事情, 但是不承认被别人扒出来可是非常尴尬的. 


  如果你不能按时完成开发任务, 可以说明你的原因, 尽快的提出来, 别等到最后到了Deadline你说你做不完. 


  或者因为你的bug导致了线上事故, 也没必要遮遮掩掩. 快速的定位问题, 解决问题, 在会议上复盘问题, 最好下次发生同样的状况就好, 也没必要因此给自己很大的心理压力和负担. 常在河边走, 哪有不湿鞋. 


但是, 对于甩锅这种问题, 没有人不反感. 我不去讨论什么叫甩锅, 我只去讨论怎么避免甩锅这种事情的发生. 




  • 在对于需求, 会议, 形成良好的书面文档, 各方进行确认




  • 有问题避免天知地知你知我知, 有问题大家一起沟通, 沟通后形成相关的书面文档




  • 当出现这种问题的时候, 拿出自己的证据来证明自己, 不是老子的锅老子不背




6. 摆正自己和领导的位置


  对于领导, 你是他的下属, 不管你们是酒友还是烟友或者是pao友, 你对他最重要的是工作的能力和处理问题的能力. 认真对待分配的任务, 做好自己的分内工作, 让他看到你对他在工作上的价值, 才是建立你们工作关系的基础.


7. 合理的看待别人的反对和批评


  可能每一个参加工作的人都被批评过或者吐槽, 被领导也好, 被同事也好. 在面对批评时, 不要急于反驳. 大家作为成年人, 很少会有人毫无原因和根据的前提下去吐槽你的问题.     


  他提出的问题, 可能就是你切实存在的问题, 他不说, 下一个人也会说, 尽早了解自己的问题并及时改掉不是坏事. 不能不在意, 也不要太在意.


8. 如果你领导或者同事是sb


   能忍忍, 不能忍就滚. 你不能强迫别人走, 你忍不了, 你自己走.


三: 总结


以上只是我个人的一些经验和体会了, 工作三年相比很多大佬来比, 也只是个小毛孩. 但是希望能帮助到大家, 有问题也欢迎大家积极讨论.
  


作者:没有大学问
链接:https://juejin.cn/post/7236694100216660027
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

何不食肉糜?

21年的时候,微博上有过一番口诛笔伐,就是就是管清友建议刚开始工作的年轻人就近租房不要把时间浪费在上班的路上,要把时间利用起来投资自己,远比省下的房租划算。 视频见这里:http://www.bilibili.com/video/BV1Bb… 当时我印象非常...
继续阅读 »

21年的时候,微博上有过一番口诛笔伐,就是就是管清友建议刚开始工作的年轻人就近租房不要把时间浪费在上班的路上,要把时间利用起来投资自己,远比省下的房租划算。


视频见这里:http://www.bilibili.com/video/BV1Bb…



当时我印象非常深刻,微博评论是清一色的 “何不食肉糜”,或者说“房租你付?”


可能是因为这件事情的刺激,管清友后来才就有了“我特别知道年轻人建议专家不要建议”的言论。


对还是错?


在我看来,管清友的这个建议可以说是掏心掏肺,非常真诚,他在视频里也说了,他是基于很多实际案例才说的这些话,不是说教。


为什么我这么肯定呢?


很简单,我就是代表案例。


我第一家公司在浦东陆家嘴,四号线浦东大道地铁站旁边,我当时来上海的时候身无分文,借的家里的钱过来的,我是贫困家庭。


但,为了节约时间,我就在公司附近居住,步行五分钟,洗头洗澡都是中午回住的地方完成,晚上几乎都是11:00之后回去,倒头就睡,因为时间可以充分利用。


节约的时间,我就来研究前端技术,写代码,写文章,做项目,做业务,之前的小册(免费章节,可直接访问)我也提过,有兴趣的可以去看看。


现在回过头来看那段岁月,那是充满了感激和庆幸,自己绝对做了一个非常正确的决定,让自己的职业发展后劲十足。


所以,当看到管清友建议就近租房的建议,我是非常有共鸣的,可惜世界是参差的,管清友忽略了一个事实,那就是优秀的人毕竟是少数,知道如何主动投资自己的人也是凤毛麟角,他们根本就无法理解。


又或者,有些人知道应该要投资自己,但是就是做不到,毕竟辛苦劳累,何苦呢,做人,不就是应该开心快乐吗?


说句不好听的,有些人的时间注定就是不值钱的。


工作积极,时间长是种优势?


一周前,我写了篇文章,谈对“前端已死”的看法,其中提到了“团队下班最晚,工作最积极”可以作为亮点写在简历里。


结果有人笑出了声。



好巧的是,管清友的租房建议也有人笑了,出没出声并不知道。



也有人回复“何不食肉糜”。


这有些出乎我的意料,我只是陈述一个简单的事实,却触动了很多人的敏感神经。


我突然意识到,有些人可能有一个巨大的认知误区,就是认为工作时长和工作效率是负相关的,也就是那些按时下班的是效率高,下班晚的反而是能力不足,因为代码不熟,bug太多。



雷军说你说的很有道理,我称为“劳模”是因为我工作能力不行。


你的leader也认为你说的对,之前就是因为我每天准时下班,证明了自己的能力,所以自己才晋升的。


另外一个认知误区在于,把事实陈述当作目标指引。


如果你工作积极,是那种为自己而工作的人,你就在简历中体现,多么正常的建议,就好比,如果你是北大毕业的,那你就在简历中体现,没任何问题吧。


我可没有说让你去拼工作时长,装作工作积极,就好比我没有让你考北大一样。


你就不是这种类型的人,对吧,你连感同身受都做不到,激动个什么呢,还一大波人跟着喊666。


当然,我也理解大家的情绪,我还没毕业的时候,也在黑心企业待过,钱少事多尽煞笔,区别在于,我相对自驱力和自学能力强一些,通过自己的努力跳出了这个循环。


但大多数人还是被工作和生活推着走,所以对加班和内卷深恶痛绝,让本就辛苦的人生愈发艰难,而这种加班和内卷并没有带来收入的提升。


那问题来了,有人通过努力奋斗蒸蒸日上,有人的辛苦努力原地踏步,同样的,有的人看到建议觉得非常有用,有的人看到建议觉得何不食肉糜,区别在哪里呢?


究竟是资本作恶呢?还是自己能力不足呢?


那还要建议吗?


管清友不再打算给年轻人建议了,我觉得没必要。


虽然,大多数时候,那些听得进去建议的人大多不需要建议,而真正需要建议的又听不进,但是,那么多年轻人,总有一部分潜力股,有一些真正需要帮助的人。


他们可能因为环境等原因,有短暂的迷茫与不安,但是,来自前人发自真心的建议或许可以让他们坚定自己前进方向,从而走出不一样的人生。


就像当年我被乔布斯的那些话语激励过那般。


所以,嘲笑之人任其笑之,只要能帮助到部分人,那就有了价值。


因此,我不会停止给出那些我认为对于成长非常有帮助的建议。


(完)


作者:张鑫旭
链接:https://juejin.cn/post/7221487809789182008
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

谈公平:你十年寒窗,比人家三代家业?

有一个想法,憋了好久了,迟迟没敢说,怕三观正不正,被喷。 网上经常看到这样的一幕:一个老太太在路灯下啃着馒头卖菜,旁边广场上是穿着华丽跳舞的老太太。 网友说,这个世界太不公平了,都是同样的年龄,为什么差别这么大。取消那些跳舞老太太的退休金,让她们也去卖菜。 ...
继续阅读 »

有一个想法,憋了好久了,迟迟没敢说,怕三观正不正,被喷。


网上经常看到这样的一幕:一个老太太在路灯下啃着馒头卖菜,旁边广场上是穿着华丽跳舞的老太太。


WechatIMG5.jpeg


网友说,这个世界太不公平了,都是同样的年龄,为什么差别这么大。取消那些跳舞老太太的退休金,让她们也去卖菜。


我看完评论就在想:都去卖菜,就是公平吗?或者,都去跳广场舞才是公平?


到底什么是公平?


其实大众很难说清楚什么是公平,但是经常会提“这不公平!”。


一个出身贫困的农村孩子,经过千辛万苦,终于考上了大学。他毕业后,起早贪黑努力工作。终于,他在城里买下了两套房子,自住一套,出租一套。


看到上面的例子,大家都会说,哎呀,这叫天道酬勤!老天不会辜负努力的孩子。正是他通过自己十几年的努力,才有了今天的成绩。相比于他早就辍学的同村伙伴,相比于那些逃课打游戏的大学同学,这一切对于他来说,是公平的!


哎,再来一个例子。有一个富二代,他从小就逃课、打架,高考也没考好,花钱读了个海外大学,大学也没学啥,就学会了一周换一个女朋友。他刚毕业,他父亲就给他一栋大楼,让他练习如何赚钱。


这个例子,公平吗?


想好了再回答,考验感性和理性的时候到了。


不着急回答。对于上面的例子,我想把时间线再拉长一些。


这位富二代的爷爷,也是出身农村。他老人家从小就父母双亡。一开始他跟着伯父生活,但是伯母经常虐待他。因此,他离家出走,到城里乞讨。后来,他被好心的包子铺老板收留。他在包子铺打工,因为能吃苦,干活勤快,又懂得感恩,所以深受老板和顾客的喜爱。凭借着一膀子力气,他在城里做到了成家立业娶媳妇,后来还有了下一代。这下一代出生便在城里,教育条件也好,从小又跟着父母做生意,见得多,识得也广。后来,下一代凭借着父母积攒的老客户,在事业上越做越大,最终形成了自己的商业帝国。再后来,就有了上面的那个富二代。


大家说,将时间线拉长之后,这三代人也是一个“天道酬勤”的故事吧?开头富二代爷爷的经历,可以对标大学生的一生。


我发现人类的社会和动物的族群,有一个很明显的区别,那就是物质和精神的继承。


Snip20230517_1.png


在一个狮群里,狮王是靠本领拼出来的。下一任狮王,是不是由它的儿子当,能否继续拥有这一方领土和交配权,得看小狮子能不能打败其他狮子,成为最强者。不止是狮子,猴子也是一样。猴群里猴王是最强壮、最聪明的猴子。要是老猴王不行了,新猴王会通过战斗取代它。之所以需要最强的猴子当猴王,那是因为它能够保护整个猴群。虽然,这个猴王不是无所不能。但在这群猴子里面,找不出来比它更合适的了。


动物界的这些名利、地位、经验,是没法传给下一代的。它们的群落会不定期重新洗牌


但是我们人类社会却不一样。一个富豪,就算他儿子不聪明,甚至身体有残疾,一样有很多人像对待猴王一样仰视他,他一样能获得最优质的繁殖资源。


你说,人类的这种方式高级不高级。


从短期看,不高级。上面说的那种人,要是在动物界,早就被淘汰了。一头斑马,即便是脚部受了点伤,也基本就宣告死亡了。大自然就是要优胜劣汰。谁让这头斑马不注意,凭什么狮子单单就咬伤了你,而不是别人。就算运气不好,这也是一种劣势。动物界,就是以此来保证强大的遗传特征,流通在群体的基因库中。


但是从长期看,人类的这种方式却很高级。因为正是有了资源继承这种特权,才让人类一想到能为子孙后代留点东西、做点事情,就不怕苦不怕累,成为永动机。就算是这一代是个病秧子,没有关系,只要能挺过去,后面还有机会强盛起来。


我们人类为什么这么想?我们是韭菜成精了吗?


你可能不知道,你是被遗传基因控制的。


Snip20230517_2.png


你的身高、体重,哪里长手,哪里长耳朵,都是写在基因里的。你只是照着图纸在搭建而已。


你不要觉得你有自我。哥们,咱们不配!你知道吗?基因才有自我。


基因的想法不是让你活下去,而是让它自己活下去。而且,还要一代更比一代强。它活下去的方式,就是依靠你来进行繁殖和生育。你之所以怕死,其实是基因怕自己遗传不下去。有些动物,比如鲑鱼、蝴蝶等,它们繁殖完就死掉了。


人类的基因很高级,有了后代后不但不死,而且还让你把孩子养大,甚至还给孩子看孩子。幸好DNA里没法存货物,不然有人可能抱着金条出生。这不是因为有爱,这是因为基因的控制!


为什么动物就做不到这些?因为在自然界,资源是有限的,有时候自己和后代只能保留一个。基因选择了留它自己。


人类通过物质和财富的“遗传”,解决了这个问题。那你说,这种方式是不是非常高级。


也正是这种物质和精神可以继承,才让人类从动物界中脱颖而出,成为了地球的主人。


说这么多,还扯到了生物和伦理,好像有点跑题了。但这也从某一个方面佐证了一些道理。有些事,从局部来看很不公平。但是,当把时间线拉长再看,这又是合理的。


大自然怎么会过一天算一天呢?她是想永生的。


这时,当我们再面对一些局部不公平时,你不必太过于消沉。把时间拉长,你可以把自己作为一个起点。想想那些让你感到气愤的“持有特权者”,他们从几十年前,就已经开始像你现在一样努力了


难道你想要用你的几年奋斗,去超越人家几十年甚至上百年的沉淀吗?从长远来看,恐怕这也不公平吧?


WechatIMG4.jpeg


一个指导大家考研的老师,他说她女儿可以不用考研。短期看,这好像这是个笑话。但是,他说,考研是为了更好地谋生。她的女儿可以不用为生计发愁,把精力投入到她喜欢做的事情。


“人人平等”最早源于宗教。他们说,不管你如何威风,最后到上帝那里都一样。而法律上的平等,是为了避免社会失去秩序。


世上没有绝对的公平。因为单就“公平”这个词的定义,就很难说清楚。


好了,就说这么多吧。


我是一个理工男,思考问题的方式可能有些偏激。文中提到了“奋斗”和“努力”(不知何时这两个词变味了),我不是想给大家灌鸡汤。理工科最讨厌鸡汤,一点逻辑都没有。我只是从理性的角度,给大家分享一种思路。


总之,到与不到的,还请大家多多包涵。


作者:TF男孩
链接:https://juejin.cn/post/7234078632653013048
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

透过Redis看待我们是否应该继续使用c语言

杰克-逊の黑豹,恰饭了啦 []( ̄▽ ̄) keywords: Redis c cpp 厌弃c语言的现象 长久以来,程序员们对待c语言的态度非常矛盾,主要应该有这么几种: 喜爱、工作中使用c语言; 不反感、工作中使用c语言; 不反感、工作中不使用c语言; 反感...
继续阅读 »

杰克-逊の黑豹,恰饭了啦 []( ̄▽ ̄)


keywords: Redis c cpp


厌弃c语言的现象


长久以来,程序员们对待c语言的态度非常矛盾,主要应该有这么几种:



  • 喜爱、工作中使用c语言;

  • 不反感、工作中使用c语言;

  • 不反感、工作中不使用c语言;

  • 反感、工作中使用c语言;

  • 反感、碰都不碰c语言;


赞许c语言的程序员,可能会有这些观点:



  • 使用c语言的程序员是最nb的;

  • 真正的编程大佬都使用c语言;


讨厌c语言的程序员,大抵是因为这些:



  • 没有舒服的包管理机制;

  • 没有丰富的标准库;

  • 没有面向对象的语料支持;

  • 内存不够安全(内存泄漏、悬垂指针、非法指针、无效指针等等);

  • 编译器输出信息不够好;

  • 错误处理不够舒服;

  • 项目管理复杂;


再加上,像Rust/Go/Swift等这种现代编程语言的出现,更让很多程序员厌弃c语言。



现代编程语言和c语言比起来,有什么最大的特点?以我个人而言,最大的特点就是编程语言的表达能力
非常出色,不是C语言可以比拟的。表达能力更具体地讲就是更灵活、更模块化、更适合人阅读。



难道说c语言真的是魔鬼吗?


反驳者一定会举出嵌入式开发、操作系统开发、驱动开发领域的成功案例。


但我觉得,这样就又大又空洞了。


近日,我在看Redis1.3.6源码,觉得倒是个很好的例子说说这事儿,不过读者大可放心,本文不是xx源码阅读, xx源码细品的文章,更不是什么八股文,单纯作为一个例子,解释下c语言是不是魔鬼这回事儿。


先说下我个人的结论吧。


c语言是不是魔鬼,取决于你能hold住多少c语言代码量。hold住,c语言的缺点不是事儿;hold不住,c语言就会带来悲剧。一定程度上,这就像我们尝试三个小时保持精神高度集中一样,诚然你说自己的c语言功夫非常扎实,但是随着项目规模增大,我可不相信你照样可以注意到每个角落的c语言隐患。


如果你是95后,c语言不适合作为你的主力开发语言,但是你可以学习由c语言开发且非常稳定的项目,也可以基于c语言ABI将这些c语言项目植入到别的编程语言开发的项目中,比如Rust/Go/Javascript/Swift项目。


为什么选择Redis1.3.6


事物总是由简入繁,功能总是由少渐多,项目总是由骨到肉。


越早的版本,越容易看出作者的宏观思路。


越新的版本,越会充斥各种新功能、小功能,越发遮掩作者最初的构思。


我从github下载好Redis后,发现最早的一个版本号就是1.3.6, 所以就用这个做参考了。



实际上,我硬着头皮看了两天最新的版本,发现确实啃不动。



看看Redis怎么解决包管理问题的


在1.3.6版本中,redis没有依赖的包,但是在最新版本中,redis将这些依赖放置于deps文件夹下。这里边没有什么特别的地方,就是将依赖的仓库源码放置在一个单独的文件夹下,定期去看看仓库源码有没有更新,如果更新的话,按需要将本地做更新,就和你的本地仓库、远程仓库一样。
截屏2023-05-23 23.29.23.png


同时,你也看到了,依赖并不多确实可以这样做,如果依赖多的话,这么搞就难搞了,就需要包管理程序(第三方的或者自己开发的)。不过嘛,一般用c语言开发的项目,都是追求极度性能,功能非常专一的项目,不会掺入太多的依赖。但是应用层项目就不同了,依赖贼多。


看看Redis怎么解决标准库不太丰富的


c语言开发时用到的API基本上是操作系统原生提供的API,这些API都分布在操作系统提供的固定的.h文件中,比如:



  • unistd.h

  • sys/sysctl.h

  • pthread.h

  • sys/stat.h

  • fcntl.h

  • execinfo.h

  • ucontext.h


当然也需要c语言提供的标准库.h文件,比如:



  • stdlib.h

  • stdio.h

  • stdarg.h

  • erron.h

  • ctype.h


例如redis.c文件中就用到了很多耳熟能详的.h文件:


截屏2023-05-24 00.19.15.png


两类之外的功能,要么从第三方拷贝,要么就要自己写。当然,在redis1.3.6中依赖并不多,只需要一些数据结构的实现,比如哈希表(hash table)、动态字符串(dynamic string)、双向链表(double linked list)、压缩型字符串映射表(zip map, 应该是redis作者独创的)。这些都是redis作者实现的。


可不要被实现吓坏了。


自己创造式地想到一个数据结构,然后用代码写出来,叫做实现;


自己参考数据结构书籍、论文中的理论,给出自己的实现,这也叫做实现。


都成年人了,要知道:考试不是只叫做闭卷考试


像pqsort(部分快速排序),redis作者就是参考NetBSD平台下的libc源码实现的,作者在代码注释中给出了声明:


截屏2023-05-24 00.16.58.png


你可能会问了,我实现的版本性能无法保证怎么办?redis作者其实也告诉我们答案了,那就是先搞出一版实现,至于性能优劣是另一个问题,可以先不用管它。于是,在ae.c的文件中,我们看到redis作者写到这样的注释:


截屏2023-05-24 00.24.19.png


c项目一般保持功能专一、性能卓越,常常要定制化一些数据结构的代码,所以即便标准库加入这些数据结构,也未必能满足c项目的需要,可能也派不上多大用场。


如此看来,c项目不太需要那种普适、统一的标准库,更需团队开发、企业开发、组织开发范围内的标准库。


但是对于技术经验尚浅(没查阅论文、手册、其余资料,独立实现一些功能库)的开发者来说,他们需要的是涵盖功能的标准库,而不是刚提到的那种高度定制化的标准库。


所以标准库不太丰富的这种问题,对于项目不大、开发者具备经验的情况而言,不成问题;对于经验不足的开发而言,是个头大的问题;对于项目贼大的情况而言,无论经验多少,都是头大的问题。


看看Redis是怎么解决面向对象编程的


面向对象编程,说的就是一种编程思想,但一部分开发者常常会被编程语言的形式所蒙蔽,认为编程语言给出了面向对象代码形式(提供class extends public等关键字),才算面向对象了,对于没有给出这种形式的编程语言,就无法面向对象编程。


看看Redis是怎么做的吧。


截屏2023-05-24 00.41.58.png


struct等效于classaeBeforeSleepProc就是类中定义的成员方法啊,其定义如下:


截屏2023-05-24 00.43.17.png


至于继承,可以使用组合的方式替代;


至于多态,可以继续使用函数指针或者改用函数映射表替代;


宽泛地讲,只要有了封装, 即便没有给出严格的继承多态, 也可以认为是面向对象。毕竟,面向对象是一种编程思想,不是僵死的格式。


不过呢,语言本身如果提供了面向对象概念的关键字,代码直接理解起来的难度就大大降低,加之有IDE功能的帮助,读代码更加顺畅,这是c代码所不及的。这也就是说,当项目的概念变得非常多,c代码即便可以面向对象编程,但也是个问题,会让读代码的人一通找啊找。


Redis怎么解决内存安全问题的


这个问题确实是要害,在这个版本中,redis并没有给出什么非常好的内存安全手段,有的话,也只是在定义数据结构的时候,给出该数据结构的内存释放方法:


截屏2023-05-24 00.54.20.png


和cpp的析构函数一个道理,只不过cpp是编译器插入内存释放代码,c语言是开发者手动加入。


在代码量hold的住的情况下,开发者确实有足够的精力和耐心确保内存问题,但是代码量一旦上涨,开发者恐怕就顾不过来了。你可以看到像linux这样大型的项目有不少issue,但你很少听说hello-world级别的c代码有什么issue。


所以,到底是人去处理内存问题还是编译器处理内存问题,归根结底就是在大量工作的条件下,你更相信人的表现还是机器的表现。相比之下,我觉得机器更靠谱一些。


c项目很复杂,无法阅读?


一般而言,在同样成熟的情况下,c项目的代码读起来会麻烦一些。但这是成熟之后,也就是在加入杂七杂八功能、BUG布丁等等之后的c项目。以Redis 1.3.6为例,其结构相当简洁:


截屏2023-05-24 01.02.53.png


主体框架就这么直白,后续版本的复杂化,都是功能扩展、结构调整,这条主线是不可能断掉的。所以,别把C项目想象的那么复杂,那么难。C项目的复杂还有一种可能是C语言表达能力导致的。因为C语言语法足够简洁,直接用的操作系统API,封装比较少,别的语言三言两语交代的事情,C语言可能要多说很多话才可以表述出来,但是编译到了二进制形式的产物,C语言就比别的语言“简洁”了。


后话


C语言并没有那么可怕,它不是开发者的定时炸弹,也不是开发者的无双宝剑。C语言到底怎么样,很大程度上要看代码量和开发者的承受能力。并不是说很多项目由C语言编写,就证明C语言是一门你可以信赖并使用的语言,很大程度上讲,很多项目用C语言开发是历史问题,在那个年代和阶段,编程语言的选择余地太少,哼不能从1980年等到2010年以后,再使用现代化编程语言编写代码吧?


从另一个角度上看,这个时代你完全可以不使用C语言,没必要跟着上古大佬的品味走。须知,工具是用来解放你的生产力的,不是给你的生产力添堵的。你用不用C语言,和你是不是一个合格的软件工程师,没什么必要的联系。


不过,不用归不用,学习还是要学习的,毕竟ABI层面还是以C语言为标准的,想理解函数调用、指令跳转等内容,C语言是避不开的。


对于要不要继续使用C语言,你有什么看法呢,欢迎留言。


作者:杰克逊的黑豹
来源:juejin.cn/post/7236354905493176377
收起阅读 »

入坑两个月自研创业公司

一、拿offer 其实入职前,我就感觉到有点不对劲,居然要自带电脑。而且人事是周六打电话发的offer!自己多年的工作经验,讲道理不应该入这种坑,还是因为手里没粮心中慌,工作时间长的社会人,还是不要脱产考研、考公,疫情期间更是如此,本来预定2月公务员面试,结果...
继续阅读 »

一、拿offer


其实入职前,我就感觉到有点不对劲,居然要自带电脑。而且人事是周六打电话发的offer!自己多年的工作经验,讲道理不应该入这种坑,还是因为手里没粮心中慌,工作时间长的社会人,还是不要脱产考研、考公,疫情期间更是如此,本来预定2月公务员面试,结果一直拖到7月。


二、入职工作


刚入职工作时,一是有些抗拒,二呢是有些欣喜。抗拒是因为长时间呆家的惯性,以及人的惰性,我这只是呆家五个月,那些呆家一年两年的,再进入社会,真的很难,首先心理上他们就要克服自己的惰性和惯性,平时生活习惯也要发生改变


三、人言可畏


刚入职工作时,有工作几个月的老员工和我说,前公司的种种恶心人的操作,后面呢我也确实见识到了:无故扣绩效,让员工重新签署劳动协议,但是,也有很多不符实的,比如公司在搞幺蛾子的时候,居然传出来我被劝退了……


四、为什么离开


最主要的原因肯定还是因为发不出工资,打工是为了赚钱,你想白嫖我?现在公司规模也不算小了,想要缓过来,很难。即便缓过来,以后就不会出现这样的状况了?公司之前也出现过类似的状况,挺过来的老员工们我也没看到有什么优待,所以这家公司不值得我去熬。技术方面我也基本掌握了微信和支付宝小程序开发,后面不过是需求迭代。个人成长方面,虽然我现在是前端部门经理,但前端组跑的最快,可以预料后面我将面临无人可用的局面,我离职的第二天,又一名前端离职了,约等于光杆司令,没意义。


五、收获


1.不要脱产,不要脱产
2.使用uniapp进行微信和支付宝小程序开发
3.工作离家近真的很爽
4.作为技术人员,只要你的上司技术还行,你的工期他是能正常估算,有什么难点说出来,只要不是借口,他也能理解,同时,是借口他也能一下识别出来,比如,一个前端和我说:“后端需求不停调整,所以没做好。”问他具体哪些调整要两个星期?他又说不出来。这个借口就不要用了,但是我也要走了,我也没必要去得罪他。
5.进公司前,搞清楚公司目前是盈利还是靠融资活,靠融资活的创业公司有风险…


六、未来规划


关于下一份工作:
南京真是外包之城,找了两周只有外包能满足我目前18k的薪资,还有一家还降价了500…
目前offer有
vivo外包,20k
美的外包,17.5k
自研中小企业,18.5k


虽然美的外包薪资最低,但我可能还是偏向于美的外包。原因有以下几点:
1.全球手机出货量下降,南京的华为外包被裁了不少,很难说以后vivo会不会也裁。
2.美的目前是中国家电行业的龙头老大,遥遥领先第二名,目前在大力发展b2c业务,我进去做的也是和商场相关。
3.美的的办公地点离我家更近些
4.自研中小企业有上网限制,有过类似经验的开发人,懂得都懂,很难受。


关于考公:
每年10月到12月准备下,能进就进,不能再在考

作者:哇哦谢谢你
来源:juejin.cn/post/7160138475688165389
公上花费太多时间了。

收起阅读 »

阅阿里大裁员消息有感

这几天网上流传阿里计划裁员 5000+人,也有说 2.5w 的,数量多少已经不重要了,只看到国内外各大公司纷纷裁员,明显已经跟前几年的风气大不相同,深感软件行业越发进入下行趋势。 这样大规模的“输送”人才,势必会在后期影响到行业里的每个人,至少有以下几个影响:...
继续阅读 »

这几天网上流传阿里计划裁员 5000+人,也有说 2.5w 的,数量多少已经不重要了,只看到国内外各大公司纷纷裁员,明显已经跟前几年的风气大不相同,深感软件行业越发进入下行趋势。


这样大规模的“输送”人才,势必会在后期影响到行业里的每个人,至少有以下几个影响:




  1. 长期在中小企业的打工人更难找到工作


    这点是显而易见的,也是最容易想到的点,相比大厂出身、学历光环的人,普通人在工作竞争中本就难以取得优势,以前还可以靠着业务快速扩张、人才缺口等因素,逆袭大厂或者找到高薪工作,这就是在高速增长中带来的红利。但在行业下行期,阶层固化将会更加严重,跨越阶层的行为会越来越难。这本质上和社会发展是一致的。


    进而可以推论,由于出身好的人更容易找到工作,他本身也更倾向于和自己类似的人,于是即使他在招聘时发现一个能力强的人,如果这个人正好出身平凡,他也更愿意去选择与他经历类似的人。这样的恶性循环会进一步的加剧找到工作的难度。


    而且在这个恶性循环中,能力已经不是主要因素了。能力确实重要,但是想像以前一样“不拘一格降人才”,可能就不太可能了。




  2. 圈子文化未来会在软件行业更加流行


    其实很多传统行业都是有进入壁垒的,你要是不认识其中的人,没有几个小圈子,根本混不下去。只有软件开发,或者说互联网行业,由于相较而言创建时间短,而且国外的风气也比较自由,影响之下我们总体还是比较崇尚单打独斗的,不太讲究向上管理、建立关系网那一套。


    但是现在,你说一个阿里员工找到了新工作,他能不推几个认识的同事?阿里高管跳了一个中小公司,他能不招几个原来的左膀右臂么?


    其实原先也一直有这种情况,但可能是小范围的。但随着大厂员工逐渐向中小企业流动,这种现象预计也会成为普遍现象。


    所以不要抱着我只要不跳槽苟着就影响不到我这种想法,山雨欲来风满楼,仔细观察下身边的现象,就能找到自己的判断。




  3. 不要再乐观的估计工资涨幅


    这个不用说了,已经有很多降薪入职中小公司的新闻了。




这里我看到还有一种观点,说裁员这事也是有好处的,可以让大厂员工带着他的能力和经验到广大中小公司,对整个行业是有提升作用的,长期看是利好。


这种观点比较容易唬人,乍一看逻辑没毛病,实际是放P


首先,软件行业最大的特点,就是开源。这也是吸引很多人(包括我)的一点。你能力强不强只取决于你想不想学,不存在想学但是学不到的情况。


所以普通打工人与大厂员工的能力差距只取决于是否愿意勤快地学习,没有环境不同导致的差距。


再说经验,确实大厂在资源投入上更舍得花钱,让经验的积攒更快了。但本质上,大厂员工所谓带来的经验最多把他原来的那一套东西再开发一套。这里并没有什么创新,何来行业利好?


顶多是让老板们赚钱的速度加快了。更方便赚钱了,利好老板。


甚至可能老板觉得开发的真不错,不需要这么多人了,于是带动一批中小公司裁员潮。


在这个只有普通打工人受伤的世界里,我们要如何应对呢? 我也想了以下几点。



  1. 不要焦虑


最重要的还是放平心态,个人没法影响时代潮流,只能顺应时代潮流。


如果因为焦虑去报班了,那就正中了培训机构下怀,被噶了韭菜。


还是要学习,提高自己总是没错的,可以自己找资料,自己学习。



  1. 多关注生活技能


业余之外可以多关注别的技能,也许还能发现自己的新天赋呢?


比如学学厚黑学,心理学,以免在圈子斗争中被人拿捏。


学学炒股,但不要投太多钱; 学学做饭,至少让自己的胃得到满足。



  1. 尝试做一名独立开发者


其实各大厂裁员,业务收缩未必不是好事,只要我们能找准一些生活中的痛点,找到一些目标人群,做一些开发工作,也是一条好路子,搞得好,也许也能创业。


就这些么多吧,一些小想法,手机码字不易,见谅。


寒冬之下,如果有人愿意组织一些圈子,报团取

作者:FengY_HYY
来源:juejin.cn/post/7237037029569822779
暖,请别忘了拉上我。

收起阅读 »

为什么有些蛮厉害的人,后来都不咋样了

前言 写这篇文章目的是之前在一篇文章中谈到,我实习那会有个老哥很牛皮,业务能力嘎嘎厉害,但是后面发展一般般,这引起我的思考,最近有个同事发了篇腾讯pcg的同学关于review 相关的文章,里面也谈到架构师的层次,也再次引起我关于架构师的相关思考,接下来我们展...
继续阅读 »

前言




写这篇文章目的是之前在一篇文章中谈到,我实习那会有个老哥很牛皮,业务能力嘎嘎厉害,但是后面发展一般般,这引起我的思考,最近有个同事发了篇腾讯pcg的同学关于review 相关的文章,里面也谈到架构师的层次,也再次引起我关于架构师的相关思考,接下来我们展开聊聊吧~


摆正初心




我写这篇文章,初心是为了找到导致这样结果的原因,而不是站在一个高高在上的位置,对别人指手画脚,彰显自己多牛皮。(PS:我也鄙视通过打压别人来展示自己,你几斤几两,大家都是聪明人看得出来,如果你确实优秀,别人还打压,说明他急了,哈哈哈)


查理芒格说过一句话:如果我知道在哪里会踩坑,避开这些,我已经比很多人走得更远了。


思考结果




我觉得是没有一个层级的概念导致的,这个原因筛掉了大部分人,突破层级的难度筛掉了另外一批人,运气和机会又筛掉另一波人。


没有层级概念


为什么这么讲呢?


我们打游戏的时候,比如说王者,会有废铁、青铜、钻石、铂金、荣耀、荣耀王者,对吧。它的层级大家都清楚,但是在现实生活中,你会闷逼了,我当前处在那个阶段,上一层是什么水平,需要什么技能,什么样的要求。


其次也会对自己能力过高的评价,如果你一直在组里面,你可能一直是一把手,到了集团,可能变成10名内,到了公司排名,可能几百名后。我们需要站在一个更高、更全面的角度去了解自己的位置。


出现这种情况也很正常


举个栗子,以前我实习那会,有个老哥业务能力特别强,啥活都干得快,嘎嘎牛皮,这是个背景


如果团队里头你最厉害了,那你的突破点,你的成长点在哪里?


对吧,大家都比你菜了,自然你能从别人身上学习到的就少了,还有一种情况是你觉得你是最厉害的,这种想法也是最要命的,会让你踏步不前。这时的解法,我认为是自驱力,如果你学哲学,就知道向内求,自我检讨,自己迭代更新,别人就是你,你就是别人,别人只是一面镜子。


层级的概念


那时看到他搞业务特别厉害,但现在看是做需求厉害,但是缺乏深度。我对比以前的开发经历,跟现在在架构组的工作经历,感受很明显。一个是为了完成任务,一个需要深度,什么深度呢?这个埋下伏笔,为后面架构师层级再展开聊聊。


从初级到中级,到高级,再到主程、再到TL,技术经理,再到架构师,再到负责人。当完成任务的时候,是最基本的事情,深入的时候,从coding入手,在代码上有所追求,比如说可读性,用用设计模式,再深入想到代码可扩展性。。。



当你了解下一个层级的要求的时候,有了目标才能有效的突破它。



突破层级的难度


这是在上一个原因基础上一个加强版,你了解了各个层级的要求,但是突破这些要求,可能由于阅历,或者能力,或者天赋不足,导致突破困难。


image.png


这里我想聊聊架构师的思考,之前在转正答辩上,一个领导问我你怎么理解架构的,我当时没有概念,但是接触相关工作以及观看相关文章,有了更深理解。



这里讲的是coding部分,属于架构师负责的一部分,规范


我不禁想想平时什么工作内容涉及到这个?


比如说契约,规定了依赖jar版本;定义了协议,什么类型输出的格式,转换的类型;开发的规范,设计文档的样式;像文中review的过程,确实比较少,目的是为了减少代码的坏味道。就像文中讲到,如果你定义的一个规范,可以在300+人里面hold,让系统一直在正常迭代,那么算合格的架构师。


一次广义上review


我一般下班会遇到基础服务的小伙伴聊聊天,我说话很少,就喜欢听听别人聊点什么,他跟我聊了几天,我发现问题是现有商品代码已经不足以支持业务的快速迭代,因为冗余其他东西太多了。比如说一个毛胚商品,然后它也快速的加上其他属性,变成一个加工品。但是现在场景变成了它就是一个加工品,你想拆成其他加工品,很困难,就是字段冗余到商品表里头了。


这个时候到架构已经不适合业务快速迭代了,需要重构,大破大立,还需要大佬牵头。review狭义上是代码层发现问题,如果你从一线同学那里听到的东西,能发现问题,也是一种review。



架构师不止规范,需要深度



需要什么深度呢?


从一个做需求的点看,从需求理解,这个是业务深度,从设计文档上,严谨程度,扩展性、风险点、可行性,设计深度。从开发阶段,coding,技术规范,技术功底,这个是技术深度


跳出需求的点,从大的面来看,需求为了解决什么问题,不做行不行,业务价值在哪里?做了这一期还有后续吗,这是业务的前景。然后规划是怎样的,先从哪里入手,然后有木有计划去推进?这是思考的深度


抽象的能力



里面反复提到抽象的能力,比如说逻辑、物理架构图,这个有助于你理解整个系统的调用关系,形成闭环,可以从全局的角度去理解,我当前做的需求在什么位置,为了解决什么问题。


再到通过问题看到本质,从技术方案看到实质。有一次一位同学跟我探讨DDD,跟我说防腐层不应该是这样写的,你只是用了策略模式去写,应该有个一个门面,然后后面是实现逻辑。我听到这里就明白他被绕进去了,DDD是一个思想,他幻化出来一些对应的框架,它的精髓是高内聚、低耦合。你说策略模式,能否将外部rpc调用分隔开呢?当然可以,它算不算防腐层呢?也算~


最近一次做代码优化的时候,我用了责任链的设计模式,将190行的代码,拆分成4个模块,每个类大概30行,当然190行包括换行。但是实际效果除了行数变少外,每个模块分工特别清晰,这个模块在处理特定的逻辑,当某部分有问题的时候,直接找到那个模块修改即可。(这就是高内聚的魅力)


抽象另一种体现:模块化


最近在牵头做账单,其实我也没做过,我就找了几篇大厂的文章看看,拿来吧你,哈哈


image.png


分为几个步骤,下载账单,解析账单,对账,差异处理(平账)。是不是瞬间有了几个模块,文件模块,包括上传、下载,解析文件对吧。然后是账单模块,可能会分成订单,还有一些退款的,然后是对账处理结果,属于对账模块,文件解析出来的东西跟账单对比,哪些是对的上的,哪些又是异常的,这个模块还有后续的处理结果,自动平账,或者人工处理。



模块化也是高内聚的体现,这就是DDD的思想,只不过人家现在有名头而已~



运气


这个就不展开了,有点玄学,也看投胎,也看老天赏不赏饭吃。我觉得嘛,不管有没有有运气,都要不卑不亢,努力提升自己,很多结果我们决定不了的,但是过程我们可以说了算,人生不也是这样嘛,那就好好享受过程吧~


image.png


最后




《矛盾论》,还是里面的观点,我们需要全面的认识自己的定位,找到自己的优势,不断突破自我。有些厉害,只是暂时性的,而长远来看,只是冰山一角。


作者:大鸡腿同学
来源:juejin.cn/post/7133246541623459847
收起阅读 »

你在公司混的差,可能和组织架构有关!

如果你接触过公司的面试工作,一定见过很多来自大公司的渣渣。这些人的薪资和职位,比你高出很多,但能力却非常一般。 如果能力属实,我们大可直接把这些大公司的员工打包接收,也免了乱七八糟的面试工作。但可惜的是,水货的概率通常都比较大,新的公司也并不相信他们的能力。尤...
继续阅读 »

如果你接触过公司的面试工作,一定见过很多来自大公司的渣渣。这些人的薪资和职位,比你高出很多,但能力却非常一般。


如果能力属实,我们大可直接把这些大公司的员工打包接收,也免了乱七八糟的面试工作。但可惜的是,水货的概率通常都比较大,新的公司也并不相信他们的能力。尤其是这两年互联网炸了锅,猪飞的日子不再,这种情况就更加多了起来。


反过来说也一样成立,就像是xjjdog在青岛混了这么多年,一旦再杀回北上广,也一样是落的下乘的评价。


除了自身的努力之外,你在上家公司混的差,还与你在组织架构中所处于的位置和组织架构本身有关。


一般公司会有两种组织架构方式:垂直化划分层级化划分


1. 垂直划分


垂直划分,多以业务线为模型进行划分。各条业务线共用公司行政资源,相互之间关联不大。


各业务线之间,内部拥有自治权。


image.png


如上图所示,公司共有四个业务线。




  • 业务线A,有前端和后端开发。因为成员能力比较强,所以没有测试运维等职位;




  • 业务线B倡导全栈技能,开发后台前端一体化;




  • 业务线C的管理能力比较强,仅靠少量自有研发,加上大量的外包,能够完成一次性工作。




  • 业务线D是传统的互联网方式,专人专岗,缺什么招什么,不提倡内部转岗




运行模式




  1. 业务线A缺人,缺项目,与业务线BCD无任何关系,不允许借调




  2. 业务线发展良好,会扩大规模;其他业务线同学想要加入需要经过复杂的流程,相当于重新找工作




  3. 业务线发展萎靡,会缩减人员,甚至会整体砍掉。优秀者会被打散吸收进其他业务线




好处




  1. 业务线之间存在竞争关系,团队成员有明确的奋斗目标和危机意识




  2. 一条业务线管理和产品上的失败,不会影响公司整体运营




  3. 可以比较容易的形成单向汇报的结构,避免成本巨大且有偏差的多重管理




  4. 便于复制成功的业务线,或者找准公司的发展重点




坏处




  1. 对业务线主要分管领导的要求非常高




  2. 多项技术和产品重复建设,容易造成人员膨胀,成本浪费




  3. 部门之间隔阂加大,共建、合作困难,与产品化相逆




  4. 业务线容易过度自治,脱离掌控




  5. 太激进,大量过渡事宜需要处理




修订


为了解决上面存在的问题,通常会有一个协调和监管部门,每个业务线,还需要有响应的协调人进行对接。以以往的观察来看,效果并不会太好。因为这样的协调,多陷于人情沟通,不好设计流程规范约束这些参与人的行为。


image.png


在公司未摸清发展方向之前,并不推荐此方式的改革。它的本意是通过竞争增加部门的进取心,通过充分授权和自治发挥骨干领导者的作用。但在未有成功案例之前,它的结果变成了:寄希望于拆分成多个小业务线,来解决原大业务线存在的问题。所以依然是处于不太确定的尝试行为。


2. 水平划分


水平划分方式,适合公司有确定的产品,并能够形成持续迭代的团队。


它的主要思想,是要打破“不会做饭的项目经理不是好程序员”的思维,形成专人专业专岗的制度。


这种方式经历了非常多的互联网公司实践,可以说是最节约研发成本,能动性最高的组织方式。主要是因为:




  • 研发各司其职,做好自己的本职工作可以避免任务切换、沟通成本,达到整体最优




  • 个人单向汇报,组织层级化,小组扁平化。“替领导负责,就是替公司负责”




  • 任何职位有明确的JD,可替换性高,包括小组领导




这种方式最大的问题就是,对团队成员的要求都很高。主动性与专业技能都有要求,需要经过严格的面试筛选。


坏处




  • 是否适合项目类公司,存疑




  • 存在较多技术保障部门,公共需求 下沉容易造成任务积压




  • 需要对其他部门进行整合,才能发挥更大的价值




分析


image.png


如上图,大体会分为三层。




  • 技术保障,保障公司的底层技术支撑,问题处理和疑难问题解决。小组多但人少,职责分明




  • 基础业务,公司的旗舰业务团队,需求变更小但任何改动都非常困难。团队人数适中




  • 项目演化,纯项目,可以是一锤子买卖,也可以是服务升级,属于朝令夕改类需求的聚居地。人数最多




可以看到项目演化层,多是脏活,有些甚至是尝试性的项目-----这是合理的。




  1. 技术保障和基础业务的技术能力要求高,业务稳定,适合长期在公司发展,发展属性偏技术的人群,流动性小,招聘困难




  2. 项目演化层,业务多变,项目奖金或者其他回报波动大,人员流动性高,招聘容易




成功的孵化项目,会蜕变成产品,或者基础业务,并入基础业务分组。


从这种划分可以看出,一个人在公司的命运和发展,在招聘入职的时候就已经确定了。应聘人员可以根据公司的需求进行判断,提前预知自己的倾向。


互联网公司大多数将项目演化层的人员当作炮灰,因为他们招聘容易,团队组件迅速,但也有很多可能获得高额回报,这也是很多人看中的。


3.组合


组合一下垂直划分和层级划分,可以是下面这种效果。


image.png


采用层级+垂直方式进行架构。即:首选层级模式,然后在项目演化层采用垂直模式,也叫做业务线,拥有有限的自治权。


为每一个业务线配备一个与下层产品化或者技术保障对接的人员。


绩效方面,上层的需求为下层的实现打分。基础业务和技术保障,为绿色的协调人员打分。他们的利益是一致的。


End


大公司出来的并不一定是精英,小公司出来的也并不一定是渣渣。这取决于他在公司的位置和所从事的内容。核心部门会得到更多的利益,而边缘的尝试性部门只能吃一些残羹剩饭。退去公司的光环,加上平庸的项目经历,竞争力自然就打上一个折扣。


以上,仅限IT行业哦。赵家人不在此列。


作者:小姐姐味道
链接:https://juejin.cn/post/7203651773622452261
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

程序员能有什么好玩意?

业10年了,看看一枚老成员都有什么好玩意(有个人的、同事的、公司的……)。【多图预警!!!摸鱼预警!!!】 桌面预警 桌面上放了个二层小架子,之前还有个盆栽的,可惜死掉了,悼念&缅怀+1。 喷雾预警 好几年前的习惯,之前是理肤泉的喷雾。当年的我还是很...
继续阅读 »

业10年了,看看一枚老成员都有什么好玩意(有个人的、同事的、公司的……)。【多图预警!!!摸鱼预警!!!


桌面预警


桌面上放了个二层小架子,之前还有个盆栽的,可惜死掉了,悼念&缅怀+1。


image.png


喷雾预警


好几年前的习惯,之前是理肤泉的喷雾。当年的我还是很暴躁的,需要一点水分帮我降降温,不过,当编程没有啥思路的时候,喷一喷感觉还不错。


image.png


养生预警


西洋参


有个同事是吉林的,某一天送给我一个山货大礼包,其中就有这瓶西洋参参片。偶尔会取几片泡水,当然喝茶的时候更多一些。【咖啡基本是戒了】


image.png


手串


年前,我领导说想弄个串儿盘着,防止老年痴呆。


我就买了些散珠自己串了些串,团队内,每人分了一串儿。


自己也留了些手串,每天选一串佩戴,主要是绕指柔的玩法。


image.png


image.png


image.png


茶事


喝茶也又些年头了,喝过好喝的,也扔过不好喝的。最近主要喝云南大白,家里的夫人也比较喜欢,


香道


疫情的风刮过来,听说艾草的盘香可以消毒杀菌,就买了盘香,还有个小香炉。周末在家会点一点,其实没那么好闻,但是仪式感满满的。


手霜


大概是东北恶劣的天气原因,办公室的手霜还是不少的,擦一擦,编码也有了仪式感。


盆栽


公司之前定了好多盆栽,我也选了一盆(其实是产品同学的,我的那盆已经养死了)。


image.png


打印机


家里买了台打印机,主要是打印一些孩子的东西,比如涂鸦的模版、还有孩子的照片。


image.png


工作预警


笔记本


大多用的是Mac,大概也不会换回Windows了。


image.png


耳机


还是用的有线耳机,没赶上潮流。哈哈


image.png


键盘


依然没赶上机械键盘的潮流,用的妙控……


面对疾风吧!


之前客户送的,小摆件。


image.png


证书


证书不少,主要是毕业时候发的,哈哈哈。



  1. 前年,公司组织学习了PMP,完美拿到了毕业后的第一个证书。

  2. 公司组织的活动的证书OR奖杯(干瞪眼大赛、乒乓球大赛、羽毛球大赛等),最贵的奖品应该是之前IDEA PK大赛获得的iwatch。

  3. 年会时发的证书。作为优秀的摸鱼份子,每年收到的表彰并不少,大多是个人的表彰,还有就是团队的证书,当然我更关心证书下面的奖金。

  4. 社区的证书。大致是技术社区的证书,嗯嗯,掘金的就一个,某年的2月优秀创作者,应该是这个。


家里的办公桌


夫人是个文艺女青年,喜欢装点我们的家,家里的办公桌的氛围还是很OK的。当然工作之余,也喜欢和夫人喝点小酒,我喜欢冰白,同好可以探讨哈。


image.png


悲伤的事情


疫情


疫情对我们的生活影响还是比较大的,特别是对我一个大龄程序员而言。


未来


今年打算给家庭计划一些副业,有余力的情况下,能够增加一些收入。人生已经过去了半数,感悟到生命的可贵,感情的来之不易,愿我们身边的人都越来越幸福。


作者:襄垣
链接:https://juejin.cn/post/7195814363692089403
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

这一次,我还是想选择自由

辞职回老家有一周多了。 这几天我啥也没写,一直在考虑是继续找工作还是真正开始自由职业。 找下份工作肯定是有高和稳定的收入,但很有可能还是做不喜欢做的事情,可能是和之前一样一成不变的状态,每天准时上下班通勤,下班在一线大城市的出租屋里打游戏看小说,偶尔写点技术...
继续阅读 »

辞职回老家有一周多了。


这几天我啥也没写,一直在考虑是继续找工作还是真正开始自由职业。



找下份工作肯定是有高和稳定的收入,但很有可能还是做不喜欢做的事情,可能是和之前一样一成不变的状态,每天准时上下班通勤,下班在一线大城市的出租屋里打游戏看小说,偶尔写点技术文章。


自由职业的话收入不稳定,赚多赚少都要靠自己。但可以住在小县城的家里,有妈妈做的好吃的菜,有可爱粘人的猫猫,有我新买的投影仪可以和妈妈一起看电视,可以和美好的一切在一起。我不喜欢旅游之类的,宅在家里就已经是我最幸福的状态了。




而且具体做啥可以自己来决定,我有挺多想研究的东西的。


这两天也在面试了,还是那些八股文,卷来卷去的,没啥意思。可能如果真的去了字节,我会更不适应。要不还是不继续面了。


我去年也自由职业过,现在和那时候的区别是我粉丝更多了,技术积累也更多了,而且给我妈新买了个房子,可以在这里继续我的神光实验室。



上图是神光实验室 1.0,之前在老家附近租的一个出租屋。


神光实验室 2.0 是这样的,在新家里:




上次结束自由职业是因为我爸的要求,他说还是希望我有个正当工作。


现在我爸没了,没有人会阻止我了。


我没有负债,还有一定的积蓄,而且我现在啥也不干也有能养活自己的收入。




要不就再任性一次,在家里继续自己的技术梦想,继续搞神光实验室?🤔


就这么愉快的决定了!


这一次,我还是想遵循自己的内心,选择自由,选择和喜欢的一切在一起。


以后公众号会保持日更,其余时间写小册和准备出版的书。


努力一点的话,各方面应该还是可以的。



作者:zxg_神说要有光
链接:https://juejin.cn/post/7217810344697577528
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

在国企做程序员怎么样?

有读者咨询我,在国企做开发怎么样? 当然是有利有弊,国企相对稳定,加班总体没有互联网多,不过相对而言,工资收入没有互联网高,而且国企追求稳定,往往技术栈比较保守,很难接触新的技术,导致技术水平进步缓慢。 下面分享一位国企程序员的经历,希望能给大家一些参考价值。...
继续阅读 »

有读者咨询我,在国企做开发怎么样?


当然是有利有弊,国企相对稳定,加班总体没有互联网多,不过相对而言,工资收入没有互联网高,而且国企追求稳定,往往技术栈比较保守,很难接触新的技术,导致技术水平进步缓慢。


下面分享一位国企程序员的经历,希望能给大家一些参考价值。



下文中的“我”代表故事主人公



我校招加入了某垄断央企,在里面从事研发工程师的工作。下面我将分享一些入职后的一些心得体会。


在国企中,开发是最底层最苦B的存在,在互联网可能程序员还能够和产品经理argue,但是在国企中,基本都是领导拍脑袋的决定,即便这个需求不合理,或者会造成很多问题等等,你所需要的就是去执行,然后完成领导的任务。下面我会分享一些国企开发日常。


1、大量内部项目


在入职前几个月,我们都要基于一种国产编辑器培训,说白了集团的领导看市场上有eclipse,idea这样编译器,然后就说咱们内部也要搞一个国产的编译器,所有的项目都要强制基于这样一个编译器。


在国企里搞开发,通常会在项目中塞入一大堆其他项目插件,本来一个可能基于eclipse轻松搞定的事情,在国企需要经过2、3个项目跳转。但国企的项目本来就是领导导向,只需给领导演示即可,并不具备实用性。所以在一个项目集成多个项目后,可以被称为X山。你集成的其他项目会突然出一些非常奇怪的错误,从而导致自己项目报错。但是这也没有办法,在国企中搞开发,有些项目或者插件是被要求必须使用的。


2、外包


说到开发,在国企必然是离不开外包的。在我这个公司,可以分为直聘+劳务派遣两种用工形式,劳务派遣就是我们通常所说的外包,直聘就是通过校招进来的校招生。


直聘的优势在于会有公司的统一编制,可以在系统内部调动。当然这个调动是只存在于规定中,99.9%的普通员工是不会调动。劳务派遣通常是社招进来的或者外包。在我们公司中,项目干活的主力都是外包。我可能因为自身本来就比较喜欢技术,并且觉得总要干几年技术才能对项目会有比较深入的理解,所以主动要求干活,也就是和外包一起干活。一开始我认为外包可能学历都比较低或者都不行,但是在实际干活中,某些外包的技术执行力是很强的,大多数项目的实际控制权在外包上,我们负责管理给钱,也许对项目的了解的深度和颗粒度上不如外包。


上次我空闲时间与一个快40岁的外包聊天,才发现他之前在腾讯、京东等互联网公司都有工作过,架构设计方面都特别有经验。然后我问他为什么离开互联网公司,他就说身体受不了。所以身体如果不是特别好的话,国企也是一个不错的选择。


3、技术栈


在日常开发中,国企的技术一般不会特别新。我目前接触的技术,前端是JSP,后端是Springboot那一套。开发的过程一般不会涉及到多线程,高并发等技术。基本上都是些表的设计和增删改查。如果个人对技术没啥追求,可能一天的活2,3小时就干完了。如果你对技术有追求,可以在剩余时间去折腾新技术,自由度比较高。


所以在国企,作为普通基层员工,一般会有许多属于自己的时间,你可以用这些时间去刷手机,当然也可以去用这些时间去复盘,去学习新技术。在社会中,总有一种声音说在国企呆久了就待废了,很多时候并不是在国企待废了,而是自己让自己待废了。


4、升职空间


每个研发类央企都有自己的职级序列,一般分为技术和管理两种序列。


首先,管理序列你就不用想了,那是留给有关系+有能力的人的。其实,个人觉得在国企有关系也是一种有能力的表现,你的关系能够给公司解决问题那也行。


其次,技术序列大多数情况也是根据你的工龄长短和PPT能力。毕竟,国企研发大多数干的活不是研发与这个系统的接口,就是给某个成熟互联网产品套个壳。技术深度基本上就是一个大专生去培训机构培训3个月的结果。你想要往上走,那就要学会去PPT,学会锻炼自己的表达能力,学会如何讲到领导想听到的那个点。既然来了国企,就不要再想钻研技术了,除非你想跳槽互联网。


最后,在国企底层随着工龄增长工资增长(不当领导)还是比较容易的。但是,如果你想当领导,那还是天时地利人和缺一不可。


5、钱


在前面说到,我们公司属于成本单位,到工资这一块就体现为钱是总部发的。工资构成分由工资+年终奖+福利组成。


1.工资构成中没有绩效,没有绩效,没有绩效,重要的事情说三遍。工资是按照你的级别+职称来决定的,公司会有严格的等级晋升制度。但是基本可以概括为混年限。年限到了,你的级别就上去了,年限没到,你天天加班,与工资没有一毛钱关系。


2.年终奖,是总部给公司一个大的总包,然后大领导根据实际情况对不同部门分配,部门领导再根据每个人的工作情况将奖金分配到个人。所以,你干不干活,活干得好不好只和你的年终奖相关。据我了解一个部门内部员工的年终奖并不会相差太多。


3.最后就是福利了,以我们公司为例,大致可以分为通信补助+房补+饭补+一些七七八八的东西,大多数国企都是这样模式。


总结


1、老生常谈了。在国企,工资待遇可以保证你在一线城市吃吃喝喝和基本的生活需要没问题,当然房子是不用想的了。


2、国企搞开发,技术不会特别新,很多时候是项目管理的角色。工作内容基本体现为领导的决定。


3、国企研究技术没有意义,想当领导,就多学习做PPT和领导搞好关系。或者当一个平庸的人,混吃等死,把时间留给家人,也不乏是一种好选择。


作者:程序员大彬
链接:https://juejin.cn/post/7182355327076007996
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

话说工作的“边界感”

一句话的合作例子 今天有一个业务的运营同学匆匆忙忙找到我,说要跟我这边有一个问题,业务要合作,然后已经提前和我老板打过招呼了。事情是这样的,我这边负责的是工作台门户,然后作为一个平台业务,有大量的客户需要找到对应的服务商来给自己定制门户。然后这位同学负责的是定...
继续阅读 »


一句话的合作例子


今天有一个业务的运营同学匆匆忙忙找到我,说要跟我这边有一个问题,业务要合作,然后已经提前和我老板打过招呼了。事情是这样的,我这边负责的是工作台门户,然后作为一个平台业务,有大量的客户需要找到对应的服务商来给自己定制门户。然后这位同学负责的是定制业务,所以要统一把所有的定制业务全部收口,但是这位定制同学的业务没有对应的技术研发同学,所以他就找到我的老板同步了这个情况。


分工协作的本质


其实问题的合作方式是比较简单的,但是当她跟我说最终客户定制界面也由我来开发的时候,比如定制的费用是多少、定制的时间要求等等,我就觉得问题有些奇怪了。因为按照常理来说,我负责的是工作台,但是由于有定制业务相关的逻辑,所以我要处理一定的业务逻辑,但是让我去承担这个定制页面的开发,我觉得是有问题的。


举一个简单的例子,假如我现在是一个博物馆,原来用户是直接可以免费没有任何阻挡地进入博物馆的,但是突然有一天市政府说所有公共设施要收费了,那么对于博物馆的工作人员来说肯定是支持的,但是突然你又告诉我,我这个博物馆还要去维护全市统一的收费系统,这个就是不合理的。哪怕他找我的主管沟通结果也是一样,因为我和我的主管是属于博物馆体系的工作人员,他也没有义务和责任去维护整个所有的公共设施的收费系统。但是作为公共设施系统的一部分,如果有统一的收费规则,那么对于博物馆来说也是要遵守的。


所以这面就引出了我对于业务边界上面的一个思考。我经常看到同学给我转发一段话,说跟你老板打沟通了业务的合作情况,你的老板觉得非常不错,于是这位同学就匆匆忙忙的找到我来开始谈业务,谈实施细节并且需要我快速落地。而实际上这种所谓的业务协同的情况大部分也只会停留在沟通的层面,在最终落地的时候,往往和业务同学的预期不相符。在业务同学眼里看来,就是你们阴奉阳违,恨不得马上就开始投诉。


这里面非常核心的一个误区就是业务同学往往没有划清业务界限和系统界限的边界。对于业务同学来说,边界可能不会那么明显,但对于一个系统开发的同学来说,业务和边界是非常明显的,因为系统是物理存在的,有着天然的“隔离”。所以对于业务同学,如果想要顺畅的推动业务,必须要事先清晰的划分参与方的角色和业务边界,并且可以进一步了解到系统边界在哪里。


这个由谁来做就涉及到了一个很大权责问题。简单来说就是我做了有什么好处,换句话来说做这件事和我的职务目标有什么关系?如果没有关系,我为什么要做?就算同一个公司,也有很多需要完成的事,比如公司保洁不到位,我作为公司的员工,是否也立即从事保洁?


如果是我的职务目标,我的责任有多少?我承担了既定的责任,那我是否能够承担起对应的权利?在我上次借用的博物馆的例子可以看到,如果我承担了全市的公共系统的收费设施的维护,那么我的权利在哪里?如果我的权利只是在博物馆这一个地方的收费上面,那么这就变成了权责不对等。


但是如果我做成了全市公共收费系统,并且能掌管全市所有公共设施的收费业务,那么对于这个收费系统的开发权则是相等的,但是对于我本身职务的权责又是不等的,因为公司请我来管理博物馆的,而非管理整个全市的收费系统。


所以在思考业务推进的时候,首先就要思考系统的边界和权责对等关系,如果这一层面没有理清楚的话,合作大概率是不能完成的。而很多的业务同学就以“我和你老板谈好的东西,为什么你不去做”这么简单的方式来拷问协同关系,我觉得是非常的幼稚的。


所以我希望其实我们在去和别人沟通业务的时候,往往要带着权责,带着边界的思考,去和对方去讨论,去协商,去沟通。简单来说,我在跟你聊之前,我要知道你的系统,你的业务边界在哪里?我跟你聊的时候,我要清晰地告诉你,这个事情做了对你有什么好处,对我有什么好处,哪部分应该你做,哪部分应该我来做。只有在这样的一种沟通方式下面才是真正合理的,真正是可以落地的沟通和协作方式。


而在这些问题没有达成一致之前,由谁来做都没有定下来的时候,应该先去往上升,在顶层设计里面去规划去重新思考如何从组织设计的方式去让业务协作自然的发生。


总结


这里再总结一下,这里是一个小的心得。这个案例也告诉我们,我们去沟通协同的时候要有边界感,包括业务的边界和系统的边界。只有把边界理顺了,合作才有可能。


作者:ali老蒋
来源:juejin.cn/post/7233808084085309477
收起阅读 »

韩国程序员面试考什么?

大家好,我是老三,在G站闲逛的时候,从每日热门上,看到一个韩国的技术面试项目,感觉有点好奇,忍不住点进去看看。 韩国的面试都考什么?有没有国内的卷呢? 可以看到,有8.k star,2.2k forks,在韩国应该算是顶流的开源项目了。 再看看贡献者,嗯,...
继续阅读 »

大家好,我是老三,在G站闲逛的时候,从每日热门上,看到一个韩国的技术面试项目,感觉有点好奇,忍不住点进去看看。


韩国的面试都考什么?有没有国内的卷呢?
瘦巴巴的老爷们


可以看到,有8.k star,2.2k forks,在韩国应该算是顶流的开源项目了。


star


再看看贡献者,嗯,明显看出来是韩国人。
贡献者


整体看一下内容。


第一大部分是计算机科学,有这些小类:



  • 计算机组成


计算机组成原理



  • 数据结构


数据结构




  • 数据库
    数据库




  • 网络




网络



  • 操作系统


操作系统


软件工程


先不说内容,韩文看起来也够呛,但是基础这一块,内容结构还是比较完整的。


第二大部分是算法:
算法


十大排序、二分查找、DFS\BFS…… 大概也是那些东西。


第三大部分是设计模式,内容不多。
设计模式


第四大部分是面试题:
面试题


终于到了比较感兴趣的部分了,点进语言部分,进去看看韩国人面试都问什么,随便抽几道看看:
面试题



  • Vector和ArrayList的区别?

  • 值传递 vs 引用传递?

  • 进程和线程的区别?

  • 死锁的四个条件是什么?

  • 页面置换算法?

  • 数据库是无状态的吗?

  • oracle和mysql的区别?

  • 说说数据库的索引?

  • OSI7层体系结构?

  • http和https的区别是?

  • DI(Dependency Injection)?

  • AOP(Aspect Oriented Programming)?

  • ……


定睛一看,有种熟悉的感觉,天下八股都一样么?


第五大部分是编程语言:
编程语言


包含了C、C++、Java、JavaScript、Python。


稍微看看Java部分,也很熟悉的感觉:



  • Java编译过程

  • 值传递 vs 引用传递

  • String & StringBuffer & StringBuilder

  • Thread使用


还有其它的Web、Linux、新技术部分就懒得再一一列出了,大家可以自己去看。


这个仓库,让我来评价评价,好,但不是特别好,为什么呢?大家可以看看国内类似的知识仓库,比如JavaGuide,那家伙,内容丰富的!和国内的相比,这个仓库还是单薄了一些——当然也可能是韩国的IT环境没那么卷,这些就够用了。


再扯点有点没的,我对韩国的IT稍微有一点点了解,通过Kakao。之前对接过Kakao的支付——Kakao是什么呢?大家可以理解为韩国的微信就行了,怎么说呢,有点离谱,他们的支付每天大概九点多到十点多要停服维护,你能想象微信支付每天有一个小时不可用吗?


也有同事对接过Kakao的登录,很简单的一个Oauth2,预估两三天搞定,结果也是各种状况,搞了差不多两周。


可能韩国的IT环境真的没有那么卷吧!


有没有对韩国IT行业、IT面试有更多了解的读者朋友呢?欢迎和老三交流。



对了,仓库地址是:github.com/gyoogle/tec…



作者:三分恶
来源:juejin.cn/post/7162709958574735397
收起阅读 »

为什么有些蛮厉害的人,后来都不咋样了

前言 写这篇文章目的是之前在一篇文章中谈到,我实习那会有个老哥很牛皮,业务能力嘎嘎厉害,但是后面发展一般般,这引起我的思考,最近有个同事发了篇腾讯pcg的同学关于review 相关的文章,里面也谈到架构师的层次,也再次引起我关于架构师的相关思考,接下来我们展...
继续阅读 »

前言




写这篇文章目的是之前在一篇文章中谈到,我实习那会有个老哥很牛皮,业务能力嘎嘎厉害,但是后面发展一般般,这引起我的思考,最近有个同事发了篇腾讯pcg的同学关于review 相关的文章,里面也谈到架构师的层次,也再次引起我关于架构师的相关思考,接下来我们展开聊聊吧~


摆正初心




我写这篇文章,初心是为了找到导致这样结果的原因,而不是站在一个高高在上的位置,对别人指手画脚,彰显自己多牛皮。(PS:我也鄙视通过打压别人来展示自己,你几斤几两,大家都是聪明人看得出来,如果你确实优秀,别人还打压,说明他急了,哈哈哈)


查理芒格说过一句话:如果我知道在哪里会踩坑,避开这些,我已经比很多人走得更远了。


思考结果




我觉得是没有一个层级的概念导致的,这个原因筛掉了大部分人,突破层级的难度筛掉了另外一批人,运气和机会又筛掉另一波人。


没有层级概念


为什么这么讲呢?


我们打游戏的时候,比如说王者,会有废铁、青铜、钻石、铂金、荣耀、荣耀王者,对吧。它的层级大家都清楚,但是在现实生活中,你会闷逼了,我当前处在那个阶段,上一层是什么水平,需要什么技能,什么样的要求。


其次也会对自己能力过高的评价,如果你一直在组里面,你可能一直是一把手,到了集团,可能变成10名内,到了公司排名,可能几百名后。我们需要站在一个更高、更全面的角度去了解自己的位置。


出现这种情况也很正常


举个栗子,以前我实习那会,有个老哥业务能力特别强,啥活都干得快,嘎嘎牛皮,这是个背景


如果团队里头你最厉害了,那你的突破点,你的成长点在哪里?


对吧,大家都比你菜了,自然你能从别人身上学习到的就少了,还有一种情况是你觉得你是最厉害的,这种想法也是最要命的,会让你踏步不前。这时的解法,我认为是自驱力,如果你学哲学,就知道向内求,自我检讨,自己迭代更新,别人就是你,你就是别人,别人只是一面镜子。


层级的概念


那时看到他搞业务特别厉害,但现在看是做需求厉害,但是缺乏深度。我对比以前的开发经历,跟现在在架构组的工作经历,感受很明显。一个是为了完成任务,一个需要深度,什么深度呢?这个埋下伏笔,为后面架构师层级再展开聊聊。


从初级到中级,到高级,再到主程、再到TL,技术经理,再到架构师,再到负责人。当完成任务的时候,是最基本的事情,深入的时候,从coding入手,在代码上有所追求,比如说可读性,用用设计模式,再深入想到代码可扩展性。。。



当你了解下一个层级的要求的时候,有了目标才能有效的突破它。



突破层级的难度


这是在上一个原因基础上一个加强版,你了解了各个层级的要求,但是突破这些要求,可能由于阅历,或者能力,或者天赋不足,导致突破困难。


image.png


这里我想聊聊架构师的思考,之前在转正答辩上,一个领导问我你怎么理解架构的,我当时没有概念,但是接触相关工作以及观看相关文章,有了更深理解。



这里讲的是coding部分,属于架构师负责的一部分,规范


我不禁想想平时什么工作内容涉及到这个?


比如说契约,规定了依赖jar版本;定义了协议,什么类型输出的格式,转换的类型;开发的规范,设计文档的样式;像文中review的过程,确实比较少,目的是为了减少代码的坏味道。就像文中讲到,如果你定义的一个规范,可以在300+人里面hold,让系统一直在正常迭代,那么算合格的架构师。


一次广义上review


我一般下班会遇到基础服务的小伙伴聊聊天,我说话很少,就喜欢听听别人聊点什么,他跟我聊了几天,我发现问题是现有商品代码已经不足以支持业务的快速迭代,因为冗余其他东西太多了。比如说一个毛胚商品,然后它也快速的加上其他属性,变成一个加工品。但是现在场景变成了它就是一个加工品,你想拆成其他加工品,很困难,就是字段冗余到商品表里头了。


这个时候到架构已经不适合业务快速迭代了,需要重构,大破大立,还需要大佬牵头。review狭义上是代码层发现问题,如果你从一线同学那里听到的东西,能发现问题,也是一种review。



架构师不止规范,需要深度



需要什么深度呢?


从一个做需求的点看,从需求理解,这个是业务深度,从设计文档上,严谨程度,扩展性、风险点、可行性,设计深度。从开发阶段,coding,技术规范,技术功底,这个是技术深度


跳出需求的点,从大的面来看,需求为了解决什么问题,不做行不行,业务价值在哪里?做了这一期还有后续吗,这是业务的前景。然后规划是怎样的,先从哪里入手,然后有木有计划去推进?这是思考的深度


抽象的能力



里面反复提到抽象的能力,比如说逻辑、物理架构图,这个有助于你理解整个系统的调用关系,形成闭环,可以从全局的角度去理解,我当前做的需求在什么位置,为了解决什么问题。


再到通过问题看到本质,从技术方案看到实质。有一次一位同学跟我探讨DDD,跟我说防腐层不应该是这样写的,你只是用了策略模式去写,应该有个一个门面,然后后面是实现逻辑。我听到这里就明白他被绕进去了,DDD是一个思想,他幻化出来一些对应的框架,它的精髓是高内聚、低耦合。你说策略模式,能否将外部rpc调用分隔开呢?当然可以,它算不算防腐层呢?也算~


最近一次做代码优化的时候,我用了责任链的设计模式,将190行的代码,拆分成4个模块,每个类大概30行,当然190行包括换行。但是实际效果除了行数变少外,每个模块分工特别清晰,这个模块在处理特定的逻辑,当某部分有问题的时候,直接找到那个模块修改即可。(这就是高内聚的魅力)


抽象另一种体现:模块化


最近在牵头做账单,其实我也没做过,我就找了几篇大厂的文章看看,拿来吧你,哈哈


image.png


分为几个步骤,下载账单,解析账单,对账,差异处理(平账)。是不是瞬间有了几个模块,文件模块,包括上传、下载,解析文件对吧。然后是账单模块,可能会分成订单,还有一些退款的,然后是对账处理结果,属于对账模块,文件解析出来的东西跟账单对比,哪些是对的上的,哪些又是异常的,这个模块还有后续的处理结果,自动平账,或者人工处理。



模块化也是高内聚的体现,这就是DDD的思想,只不过人家现在有名头而已~



运气


这个就不展开了,有点玄学,也看投胎,也看老天赏不赏饭吃。我觉得嘛,不管有没有有运气,都要不卑不亢,努力提升自己,很多结果我们决定不了的,但是过程我们可以说了算,人生不也是这样嘛,那就好好享受过程吧~


image.png


最后




《矛盾论》,还是里面的观点,我们需要全面的认识自己的定位,找到自己的优势,不断突破自我。有些厉害,只是暂时性的,而长远来看,只是冰山一角。


作者:大鸡腿同学
来源:juejin.cn/post/7133246541623459847
收起阅读 »

一个28岁程序员入行自述和感受

我是一个容易焦虑的人,工作时候想着跳槽,辞职休息时候想着工作,休息久了又觉得自己每天在虚度光阴毫无意义,似乎陷入了一个自我怀疑自我焦虑的死循环了。我想我该做的点什么去跳出这个循环。。。 自我叙述 我相信,每个人都有一个自命不凡的梦,总觉得自己应该和别人不一样,...
继续阅读 »

我是一个容易焦虑的人,工作时候想着跳槽,辞职休息时候想着工作,休息久了又觉得自己每天在虚度光阴毫无意义,似乎陷入了一个自我怀疑自我焦虑的死循环了。我想我该做的点什么去跳出这个循环。。。


自我叙述


我相信,每个人都有一个自命不凡的梦,总觉得自己应该和别人不一样,我不可能如此普通,自己的一生不应该泯然众生,平凡平庸的度过。尤其是干我们it这一行业的,都有一个自己的程序员梦,梦想着,真的能够用 “代码改变世界”


入行回顾



你们还记得自己是什么时候,入行it行业的吗



我今年已经28岁了,想起来入行,还挺久远的,应该是2016入行的,我也算是半路出家的,中间有过武术梦 歌唱梦 但是电脑什么上学那会就喜欢玩,当然是指游戏,




武术梦




来讲讲我得第一个·梦,武术梦,可能是从小受到武打演员动作电视剧的影响,尤其那个时候,成龙大哥的电影,一直再放,我觉得学武术是很酷的一件事情,尤其那会上小学,还是初中我的体育还是非常好的,


然后我们家那个时候电视还是黑白的,电视机。哈哈哈😀电视台就那么几个,放来放去,有一个台一直重复放成龙电影,还有广告, 都是 学武术就到 xxxx学校, 我被洗脑了吧


于是真的让我爸,打电话质询了一下,可是好像他们这种武术学校都是托管式的,封闭式学习,听说很苦,,,,当然这不是重点,重点每年学费非常的贵,en~,于是乎我的这个梦想终止了,。。




歌唱梦




为啥会有唱歌想法,你猜对了,是被那个时候的好声音给影响了,那个时候好声音是真的很火,看的时候我一度以为我也可以上好声音,去当歌手然后出道,当明星,什么的。


不过不经历打击,怎么会知道自己的下线在哪里呢


我小学换了两到三个学校,到初中,再到高中,你们还记得自己读高中那会吗,高中是有专业选择的,入学军训完以后。


我们代班主任,和我们说有三个专业方向可以选择,艺术类,分美术,和唱歌,然后是文化类,然后艺术类就业考大学分数会低很多,然后一系列原因,哈哈哈,我就选择了歌唱班。


我最好伙伴他选择了,美术类就是素描。这里我挺后悔没有选择 美术类。


到了歌唱班,第一课就是到专业课有钢琴的教室,老是要测试每个同学的,音色和音高,音域
然后各自上台表演自己的拿手的一首歌,。我当时测试时候就是跟着老师的弹的钢琴键瞎唱,


表演的歌曲是张雨生《大海》 也就唱了高潮那么几句。。 😀现在想起来还很羞耻,那是我第一次在那么多人面前唱歌,


后面开始上课老师说我当时分班时候音色什么还不错,但学到后面,我是音准不太行,我发现。再加上我自己的从小感觉好像有点自卑敏感人格,到现在把,我唱歌,就越来越差,


当然我们也有乐理。和钢琴课,我就想主助攻乐理和钢琴,


但是我很天真


乐理很难学习,都是文科知识需要背诵,但是他也要有视唱,也就是唱谱子,duo,re,mi,fa,suo,la,xi,duo。。等,我发现我也学不进去


后面我又开始去学钢琴,但是钢琴好像需要一定童子功,不然可能很难学出来,于是我每天早上6点钟起来,晚上吃完饭就去钢琴教师抢占位置, 还得把门堵着怕人笑话,打扰我,


结果你们也猜到了,音乐方面天赋很重要,然后就是性格上面表演上面,要放得开,可是我第一年勉强撑过去了,后面第二年,专业课越来越多了,我感觉我越来越自卑~,然后成绩就越来越差,老师也就没太重视,嗯~好不容撑到了第二年下半年,放暑假,


但是老师布置任务暑假要自己去外面练钢琴,来了之后要考试,我还花钱去外面上了声乐课钢琴课,哎,我感觉就是浪费钱,,,,,因为没什么效果,性格缺陷加上天赋不行,基本没效果,那段时间我也很痛苦的,因为越来越感觉根本容入不进去班级体,尤其是后面高二,了专业课很多大部分是前面老师带着发生开嗓,后面自由练习,我也不好意思,不想练习,所以
到后面,高二下学习我就转学了,,,,


当然我们班转学的,不止我一个,还有一个转学的 和我一个寝室的,他是因为音高上不去,转到了文科班, 还有一个是挺有天赋,我挺羡慕的,但是人家挺喜欢学习,不喜欢唱歌什么,就申请转到了,文科班。 不过她转到文科班,没多久也不太好,后面好像退学了,,我一直想打听他的消息,都在也没打听到了




玩电脑




我对电脑的组装非常感兴趣,喜欢研究电脑系统怎么装,笔记本拆装,台式机拆装,我会拿我自己的的笔记本来做实验,自己给自己配台式机,自己给自己笔记本增加配置,哈哈哈哈。对这些都爱不释手。



这还是我很早时候,自己一点一点比价,然后去那种太平洋电脑城,电脑一条街,那种地去找人配置的。想想那时候配置这个电脑还挺激动,这是人生的第一台自己全部从零开始组装配的电脑,


本来打算,后面去电脑城上班,开一个笔记本维修,电脑装配的门面的,(因为自己研究了很多笔记本系统,电脑组装),可是好像听电脑城的人说,电脑组装什么的已经不赚钱了,没什么价格利润,都是透明的而且更新迭代非常的快,电脑城这种店铺也越来越少了,都不干了,没有新人再去干这个了,于是乎我的第一份工作失业 半道崩殂了,哈哈哈哈还没有开始就结束了。




学it




后面我又报名自学了,it编程,《xxx鸟》 但是学it我学起来,好像挺快的,挺有感觉的,入学前一个星期,要等班人数到齐才能开班,我们先来的就自己学习打字了,我每天都和寝室人,一起去打字,我感觉那段时间我过得挺开心和充实的,


后面我们觉得自带寝室不好,环境差,于是就几个人一起,搬出去住了,一起学习时候有一个年级26了,我和他关系还蛮好的,不过现在也没什么联系了,,,


学习时候,每次做项目时候我都是组长,那个时候原来是有成就感的,嗯,学习it好像改变了,我学唱歌那个时候,一些自卑性格,可能是遇到了一个好的老师吧


当然后面就顺利毕业,然后找到了工作了,,,


直到现在我还在it行业里


作者:程序员三时
来源:juejin.cn/post/7230351646798643255
收起阅读 »

如何告诉后端出身的领导:这个前端需求很难实现

本文源于一条评论。 有个读者评论说:“发现很多前端的大领导多是后端。他们虽然懂一点前端,但总觉得前端简单。有时候,很难向其证明前端不好实现。” 这位朋友让我写一写,那我就写一写。 反正,不管啥事儿,我高低都能整两句,不说白不说,说了也白说。本文暂且算是一条评...
继续阅读 »

本文源于一条评论。


test.png


有个读者评论说:“发现很多前端的大领导多是后端。他们虽然懂一点前端,但总觉得前端简单。有时候,很难向其证明前端不好实现。


这位朋友让我写一写,那我就写一写。


反正,不管啥事儿,我高低都能整两句,不说白不说,说了也白说。本文暂且算是一条评论回复吧。愿意看扯淡的同学可以留一下。


现象分析


首先,前半句让我很有同感。因为,我就是前端出身,并且在研发管理岗上又待过。这个身份,让我既了解前端的工作流程,又经常和后端平级一起交流经验。这有点卧底的意思。


有一次,我们几个朋友聚餐闲聊。他们也都是各个公司的研发负责人。大家就各自吐槽自己的项目。


有一个人就说:“我们公司,有一个干前端的带项目了,让他搞得一团糟”


另一个人听到后,就叹了一口气:“唉!这不是外行领导内行吗?!


我当时听了感觉有点别扭。我扫视了一圈儿,好像就我一个前端。因此,我也点了点头(默念:我是卧底)。


是啊,一般的项目、研发管理岗,多是后端开发。因为后端是业务的设计者,他掌握着基本的数据结构以及业务流转。而前端在他们看来,就是调调API,然后把结果展示到页面上。


另外,一般项目遇到大事小情,也都是找后端处理。比如手动修改数据、批量生成数据等等。从这里可以看出,项目的“根基”在后端手里。


互联网编程界流传着一条鄙视链。它是这样说的,搞汇编的鄙视写C语言的,写C的鄙视做Java的,写Java的鄙视敲Python的,搞Python的鄙视写js的,搞js的鄙视作图的。然后,作图的设计师周末带着妹子看电影,前面的那些大哥继续加班写代码。


当然,我们提倡一个友好的环境,不提倡三六九等。这里只是调侃一下,采用夸张的手法来阐述一种现象。


这里所谓的“鄙视”,其本质是源于谁更接近原理。


比如写汇编的人,他认为自己的代码能直接调用“CPU”、“内存”,可以直接操纵硬件。有些前端会认为美工设计的东西,得依靠自己来实现,并且他们不懂技术就乱设计,还有脸要求100%还原。


所以啊,有些只做过后端的人,可能会认为前端开发没啥东西。


好了,上面是现象分析。关于谁更有优越感,这不能细究啊,因为这是没有结论的。如果搞一个辩论赛,就比方说”Python一句话,汇编写三年“之类论据,各有千秋。各种语言既然能出现,必定有它的妙用。


我就是胡扯啊。不管您是哪个工种,请不要对号入座。如果您觉得被冒犯了,可以评论“啥都不懂”,然后离开。千万不要砸自己的电脑。


下面再聊聊第二部分,面对这种情况,有什么好的应对措施?


应对方法


我感觉,后端出身的负责人,就算是出于人际关系,也是会尊重前端开发的


“小张啊,对于前端我不是很懂。所以请帮我评估下前端的工期。最好列得细致一些,这样有利于我了解人员的工作量。弄完了,发给我,我们再讨论一下!”


一般都是这么做。


这种情况,我们就老老实实给他上报就行了,顶多加上10%~30%处理未知风险的时间。


但是,他如果这样说:“什么?这个功能你要做5天?给你1天都多!


这时,他是你的领导,对你又有考核,你怎么办?


你心里一酸:“我离职吧!小爷我受不了这委屈!”


这……当然也可以。


如果你有更好的去处,可以这样。就算是没有这回事,有好去处也赶紧去。


但是,如果这个公司整体还行呢?只是这个直接领导有问题。那么你可以考虑,这个领导是流水的,你俩处不了多长时间。哪个公司每年不搞个组织架构调整啊?你找个看上的领导,吃一顿饭,求个投靠呗。


或者,这个领导只是因为不懂才这样。谁又能样样精通呢?给他说明白,他可能就想通了。人是需要说服的。


如果你奔着和平友好的心态去,那么可以试试以下几点:


第一,列出复杂原因


既然你认为难以实现,那肯定是难以实现。具体哪里不好实现,你得说说


记得刚工作时,我去找后端PK,我问他:“你这个接口怎么就难改了?你不改这个字段,我们得多调好几个接口,而且还对应不起来!”


后端回复我:“首先,ES……;其次,mango……;最后,redis……”


我就像是被反复地往水缸中按,听得”呜噜呜噜“的,一片茫然。


虽然,我当时不懂后端,但我觉得他从气势上,就显得有道理


到后来,还是同样的场景。我变成了项目经理,有一个年轻的后端也是这么回复我的。


我说:“首先,你不用……;其次,数据就没在……;最后,只需要操作……”。他听完,挠了挠头说,好像确实可以这么做。


所以,你要列出难以实现的地方。比如,没有成熟的UI组件,需要自己重新写一个。又或者,某种特效,业内都没有,很难做到。再或者,某个接口定得太复杂,循环调组数据,会产生什么样的问题。


如果他说“我看到某某软件就是这样”。


你可以说,自己只是一个初级前端,完成那些,得好多高级前端一起研究才行。


如果你懂后端,可以做一下类比,比如哪些功能等同于多库多表查询、多线程并发问题等等,这可以辅助他理解。不过,如果能到这一步,他的位子好像得换你来坐。


第二,给出替代方案


这个方案,适用于”我虽然做不了,但我能解决你的问题“。


就比如那个经典的打洞问题。需求是用电钻在墙上钻一个孔,我搞不定电钻,但是我用锤子和钉子,一样能搞出一个孔来。


如果,你遇到难以实现的需求。比如,让你画一个很有特色的扇形玫瑰图。你觉得不好实现,不用去抱怨UI,这只会激化问题。咱可以给他提供几个业界成熟的组件。然后,告诉他,哪里能改,都能改什么(颜色、间距、字体……)。


我们有些年轻的程序员很直,遇到不顺心的事情就怼。像我们大龄程序员就不这样。因为有房贷,上有老下有小。年龄大的程序员就想,到底是哪里不合适,我得怎样通过我的经验来促成这件事——这并不光彩,年轻人就得有年轻人的样子。


第二招是给出替代方案。那样难以实现,你看这样行不行


第三,车轮战,搞铺垫


你可能遇到了一个硬茬。他就是不变通,他不想听,也不想懂,坚持“怎么实现我不管,明天之前要做完”。


那他可能有自己的压力,比如老板就是这么要求他的。他转手就来要求你。


你俩的前提可能是不一样。记住我一句话,没有共同前提,是不能做对比的。你是员工,他是领导,他不能要求你和他有一样的压力,这就像你不能要求,你和他有一样的待遇。多数PUA,就是拿不同的前提,去要求同样的结果。


那你就得开始为以后扯皮找铺垫了。


如果你们组有多个前端,可以发动大家去进谏。


”张工啊,这个需求,确实不简单,不光是小刘,我看了,也觉得不好实现“


你一个人说了他不信,人多了可能就信了。


如果还是不信。那没关系,已经将风险提前抛出了


“这个需求,确实不好实现。非要这么实现,可能有风险。工期、测试、上线后的稳定性、用户体验等,都可能会出现一些问题”


你要表现出为了项目担忧,而不是不想做的样子。如果,以后真发生了问题,你可以拿出“之前早就说过,多次反馈,无人理睬”这类的说辞。


”你居然不想着如何解决问题,反倒先想如何逃避责任?!“


因此说,这是下下策。不建议程序员玩带有心机的东西。


以上都是浅层次的解读。因为具体还需要结合每个公司,每个领导,每种局面。


总之,想要解决问题,就得想办法


作者:TF男孩
来源:juejin.cn/post/7235966417564532794
收起阅读 »

程序员你为什么迷茫

今天在知乎收到一个问题:「程序员你为什么迷茫?」,看到这问题时突然间「福灵心至」想写点什么,大概是好久没写这种「焦虑文」,想想确实挺久没更新《程序员杂谈》这个专栏了,那就写点「找骂」的东西吧。 其实也不算「贩卖焦虑」,主要是我一直不卖课也不做广告,就是纯粹...
继续阅读 »

今天在知乎收到一个问题:「程序员你为什么迷茫?」,看到这问题时突然间「福灵心至」想写点什么,大概是好久没写这种「焦虑文」,想想确实挺久没更新《程序员杂谈》这个专栏了,那就写点「找骂」的东西吧。




其实也不算「贩卖焦虑」,主要是我一直不卖课也不做广告,就是纯粹想着写点东西,不过如果你看了之后觉得「焦虑」了,那也没有「售后服务」。



当我看到「程序员你为什么迷茫?」这个问题的时候,我第一想法居然是:大概是因为预期和结果不一致


现在想想确实好像是这样,在步入职场之前,你一直以为程序员是一个技术岗,是用一双手和一台电脑,就可以改变世界的科技岗位,是靠脑吃饭,至少在社会地位上应该是个白领。


但是入职后你又发现,明明是个技术岗位,干的却是体力活,别人在工地三班倒,而你是在电脑前 996,唯一庆幸的是你可以吹着空调,目前的收入还挺可观。



但是现在看来,程序员的职业生涯好像很短,农民工少说可以干到 40 多,为什么程序员 35 就需要毕业再就业?明明一心一意搬砖,说好奋斗改变人生,最后老板却说公司只养有价值的人,而有价值的人就是廉价而又精力充沛的年轻人


那时候你也开始明白,好像努力工作 ≠ 改变人生,因为你努力改变的是老板的人生,工作带来的自我提升是短暂的,就像工地搬砖,在你掌握搬砖技巧之后,剩下的都只是机械性的重复劳动,机械劳动的勤奋只会带来精神上的奋斗感,并不致富,而对比工地,通过电脑搬砖需要的起点更高,但是这个门槛随着技术成熟越来越低,因为搜索引擎上的资源越来越多,框架和社区越来约成熟,所以🧱越来越好拿,工价也就上不去了,甚至已经开始叫嚣用 AI 自动化来代替人工。



其实对于「老人」来说,这个行业一开始不是这样,刚入行的时候到处在抢人,他们说这是红利期,那时候简历一放出来隔天就可以上岗,那时候的老板每天都强调狼性,而狼需要服从头领,只有听话的狼才有肉吃,所以年轻时总是充满希望,期待未来可以成为头狼,也能吃上肉住炕头。


虽然期间你也和老板说过升职加薪,但是老板总是语重心长告诉大家:



年轻人不好太浮躁,你还需要沉淀,公司这是在培养你,所以你也要劳其筋骨,饿其体肤,才能所有成就,路要一步一走,饭要一步一吃,总会有的。



当然你可以看到了一些人吃到了肉,所以你也相信自己可以吃到肉,因为大家都是狼,而吃到肉的狼也在不停向你传递吃肉经验:



你只需要不停在电梯里做俯卧撑,就可以让电梯快一点到顶楼,从而占据更好的吃肉位置,现在电梯人太多了,你没空间做俯卧撑,那就多坐下蹲起立,这样也是一种努力。




直到有一天,公司和你突然和你说:



你已经跟不上公司的节奏了,一个月就请了三次病假,而且工作也经常出错,所以现在需要你签了这份自愿离职协议书,看在你这么多年的劳苦功高,公司就不对你做出开除证明,到时候给其他人也是说明你是有更好机会才离职的,这样也可以保全你的脸面。



而直到脱离狼群之后你才明白,原来沉淀出来的是杂质,最终是会被过滤掉,电梯空间就那么点,超重了就动不了,所以总有人需要下来


所以你回顾生涯产生了疑惑和迷茫:程序员不是技术岗位吗?作为技术开发不应该是越老越值钱吗?为什么经验在 3-5 年之后好像就开始可有可无,而 35 岁的你更是被称为依附在企业的蛀虫,需要给年轻人让路。


回想刚入行那会,你天天在想着学习技术,无时无刻都在想着如何精通和深入,你有着自己的骄傲,想着在自己的领域内不断探索,在一亩三分地里也算如鱼得水,但是如今好像深入了,为什么就开始不被需要了


回过头来,你发现以前深入研究的框架已经被替代,而当年一直让他不要朝三暮四嚼多不烂的前辈,在已经转岗到云深不知处,抱着一技之长总不致于饿死是你一直以来的想法,但是如今一技之长好像补不上年龄的短板。



如今你有了家庭,背负贷款,而立之年的时候,你原以为生涯还只是开始,没想到早已过了巅峰,曾经的你以为自己吃的技术饭,做的是脑力活,壮志踌躇对其他事务不屑一顾,回过头来,如今却是无从下手,除了在电脑对着你熟悉的代码,你还能做什么?放下曾经的骄傲,放下以往的收入去吃另一份体力活?



但是不做又能怎样?提前透支的未来时刻推着你在前行,哪怕前面是万丈深渊。



所以以前你认为技术很重要,做好技术就行了,但是现在看,也许「技术」也只是奇技淫巧之一,以前你觉得生育必须怀胎十月,但是现在互联网可以让十个孕妇怀胎一月就早产,这时候你才发现,你也没自己想象中的重要。


所以你为什么迷茫?因为到了年龄之后,好像做什么都是错的,你发现其实你并没有那么热爱你的职业,你只想养家糊口,而破局什么的早就无所谓了,只要还能挣扎就行。



所以我写这些有什么用?没什么用,只是有感而发,大部分时候我们觉得自己是一个技术人才,但是现在看来技术的门槛好像又不是那么的高,当技术的门槛没那么高之后,你我就不过是搬砖的人而已,既然是搬砖,那肯定是年轻的更有滋味


所以,也许,大概,是不是我们应该关心下技术之外的东西?是不是可以考虑不做程序员还能做什么?35 岁的人只会越来越多,而入行的年轻人也会越来越多,但是近两年互联网的发展方向看起来是在走「降本增效」,所以这时候你难道不该迷茫一下?


程序员是迷茫或者正是如此,我们都以为自己是技术人,吃的是脑力活,走的是人才路,但是经过努力才知道,也许你的技术,并没有那么技术。


作者:恋猫de小郭
来源:juejin.cn/post/7236668944340779063
收起阅读 »

28岁小公司程序员,无车无房不敢结婚,要不要转行?

大家好,这里是程序员晚枫,又来分享程序员的职场故事了~ 今天分享的这位朋友叫小青,我认识他2年多了。以前从事的是土木行业,2年前找我咨询转行程序员的学习路线和职业规划后,通过自学加入了一家创业公司,成为了一名Java开发。 **最近他遇到了新的职业上的困惑,又...
继续阅读 »

大家好,这里是程序员晚枫,又来分享程序员的职场故事了~


今天分享的这位朋友叫小青,我认识他2年多了。以前从事的是土木行业,2年前找我咨询转行程序员的学习路线和职业规划后,通过自学加入了一家创业公司,成为了一名Java开发。


**最近他遇到了新的职业上的困惑,又找我聊了一下,我也没想到好的解决方法,**大家可以一起看一下~下面是沟通的核心内容。


1、他的问题


小青是中原省份省会城市的大专毕业,毕业季就去了帝都实习和工作。后来发现同学中有转行程序员的,薪资很诱惑,所以就找到我咨询如何学习和转行,现在一家帝都创业公司负责后端开发。工资1w出头。


今年已经28岁了,有一个女朋友,最近女方家里催他结婚,他自己也有结婚的意愿。但是考虑到自己人在大城市,无车无房,创业公司的工作也不稳定,以后吃住花销,结婚后养孩子的花销,再看看自己1w多的工资,女朋友做财务,一个月到手不到1w。


双方家里也都是普通家庭,给不了什么实质的资助,靠自己目前的收入根本不敢想象成家后压力有多大。


所以目前非常迷茫, 不知道自己在28岁这个年龄应该怎么办,应不应该成家?应该怎样提高收入?


虽然自己很喜欢程序员这份工作,但是感觉自己学历不好,天花板有限,程序员还能继续干下去吗?


2、几个建议


平时收到后台读者的技术问题或者转行的困惑,我都会尽力给一些详尽的回复。


但是这次听到小青的问题,说实话,我也不知道该说什么。


在28岁这种黄金年龄,想去大城市奋斗一番也是人之常情,但因为现实的生活压力,却不得不面临着选择离开大城市或者转行到自己不喜欢但是更务实的职业里去。


如果想继续留在帝都,我能想到的有以下几个办法:



  • 首先,如果想继续从事程序员工作,努力提高收入。最快的办法就是跳槽,已经工作2年多了,背一背八股文,总结一下项目经验,应该是可以跳槽到一家更好的公司了。

  • 其次,探索另一个副业收入,例如自媒体。因为我自己就是通过在各个平台开通了自媒体账号:程序员晚枫,分享自己的程序员学习经验获得粉丝,进而得到自媒体收入的。小青也可以实事求是的分享一下自己大专毕业从建筑工作转行到程序员的经验,应该也能帮助到别人。

  • 最后,努力提高学历,想继续在程序员这行卷出高收入,趁着年轻,获得一个本科或者本科以上的学历还是很有帮助的。


受限于自己的经验,我只能给出以上几个建议了。


大家还有什么更有效的建议,欢迎在评论区交流~


3、写在最后


说句题外话,很多人都觉得程序员工资高想来转行,但其实程序员和其它行业一样,高收入的只是一小部分,而且那部分人既聪明又努力。


最重要的是,高收入的那部分人里,大部分都不是转行的,而是在一个专业深耕了多年,最终获得了应有的报酬。


无意冒犯,但听完小青的经历,我依然要给大专以下,想转行程序员拿高薪的朋友提个醒:如果不是十分热爱,请务必三思~


作者:程序员晚枫
链接:https://juejin.cn/post/7209447968218841144
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

入坑两个月自研创业公司

一、拿offer 其实入职前,我就感觉到有点不对劲,居然要自带电脑。而且人事是周六打电话发的offer!自己多年的工作经验,讲道理不应该入这种坑,还是因为手里没粮心中慌,工作时间长的社会人,还是不要脱产考研、考公,疫情期间更是如此,本来预定2月公务员面试,结果...
继续阅读 »

一、拿offer


其实入职前,我就感觉到有点不对劲,居然要自带电脑。而且人事是周六打电话发的offer!自己多年的工作经验,讲道理不应该入这种坑,还是因为手里没粮心中慌,工作时间长的社会人,还是不要脱产考研、考公,疫情期间更是如此,本来预定2月公务员面试,结果一直拖到7月。


二、入职工作


刚入职工作时,一是有些抗拒,二呢是有些欣喜。抗拒是因为长时间呆家的惯性,以及人的惰性,我这只是呆家五个月,那些呆家一年两年的,再进入社会,真的很难,首先心理上他们就要克服自己的惰性和惯性,平时生活习惯也要发生改变


三、人言可畏


刚入职工作时,有工作几个月的老员工和我说,前公司的种种恶心人的操作,后面呢我也确实见识到了:无故扣绩效,让员工重新签署劳动协议,但是,也有很多不符实的,比如公司在搞幺蛾子的时候,居然传出来我被劝退了……


四、为什么离开


最主要的原因肯定还是因为发不出工资,打工是为了赚钱,你想白嫖我?现在公司规模也不算小了,想要缓过来,很难。即便缓过来,以后就不会出现这样的状况了?公司之前也出现过类似的状况,挺过来的老员工们我也没看到有什么优待,所以这家公司不值得我去熬。技术方面我也基本掌握了微信和支付宝小程序开发,后面不过是需求迭代。个人成长方面,虽然我现在是前端部门经理,但前端组跑的最快,可以预料后面我将面临无人可用的局面,我离职的第二天,又一名前端离职了,约等于光杆司令,没意义。


五、收获


1.不要脱产,不要脱产
2.使用uniapp进行微信和支付宝小程序开发
3.工作离家近真的很爽
4.作为技术人员,只要你的上司技术还行,你的工期他是能正常估算,有什么难点说出来,只要不是借口,他也能理解,同时,是借口他也能一下识别出来,比如,一个前端和我说:“后端需求不停调整,所以没做好。”问他具体哪些调整要两个星期?他又说不出来。这个借口就不要用了,但是我也要走了,我也没必要去得罪他。
5.进公司前,搞清楚公司目前是盈利还是靠融资活,靠融资活的创业公司有风险…


六、未来规划


关于下一份工作:
南京真是外包之城,找了两周只有外包能满足我目前18k的薪资,还有一家还降价了500…
目前offer有
vivo外包,20k
美的外包,17.5k
自研中小企业,18.5k


虽然美的外包薪资最低,但我可能还是偏向于美的外包。原因有以下几点:
1.全球手机出货量下降,南京的华为外包被裁了不少,很难说以后vivo会不会也裁。
2.美的目前是中国家电行业的龙头老大,遥遥领先第二名,目前在大力发展b2c业务,我进去做的也是和商场相关。
3.美的的办公地点离我家更近些
4.自研中小企业有上网限制,有过类似经验的开发人,懂得都懂,很难受。


关于考公:
每年10月到12月准备下,能进就进,不能再在考公上花费太多时间了。


作者:哇哦谢谢你
链接:https://juejin.cn/post/7160138475688165389
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

金三银四好像消失了,IT行业何时复苏!

疫情时候不敢离职,以为熬过来疫情了,行情会好一些,可是疫情结束了,反而行情更差了, 这是要哪样 我心中不由一万个 草泥🐴 路过 我心中不惊有了很多疑惑和感叹 接着上一篇 一个28岁程序员入行自述和感受 自我10连问 我的心情 自去年下半年以来,互联网行业一片...
继续阅读 »

疫情时候不敢离职,以为熬过来疫情了,行情会好一些,可是疫情结束了,反而行情更差了,
这是要哪样 我心中不由一万个 草泥🐴 路过



我心中不惊有了很多疑惑和感叹 接着上一篇


一个28岁程序员入行自述和感受


自我10连问


我的心情


自去年下半年以来,互联网行业一片寒冬传言,众多企业倒闭,裁员。本以为随着疫情、春季和金融楼市的回暖,一切都会变好。然而,站在这个应该是光明的时刻,举世瞩目的景象却显得毫无生气。令人失望的是,我们盼望已久的春天似乎仍未到来。


我的工作生涯


我已经从业近十年,然而最近两年一直在小公司中工作,



我的技术和经历并不出色。随着年龄的增长,是否我的技能也在快速提高呢?我们该如何前进呢 ,转产品,产品到达极限,转管理,可是不会人情事故,



我们该如何继续前进呢?目前还没有人给出答案。


第一家公司


我记得那是很早的时候了,那个时候简历投递出去,就马上会收到很多回复,不像现在 ,
失联招聘前程堪忧boss直坑


你辛苦的写完简历,满怀期待投递了各大招聘平台,可等来的 却是已读未回,等的心也凉透了。


好怀念之前的高光时刻 神仙打架日子


前面我面试 几乎一周都安排满了,都面试不过来,我记得那会最多时候一天可以跑三家面试哈哈哈,也是很拼命的,有面试机会谁不想多试试呢


我第一家进入的是一个外包公司,叫xxx东软集团, 那个时候也不不懂,什么是外包给公司,只看工资给的所有offer中最高的,然后就去了哈哈哈哈。


入职第一天,我背着我自己的电脑满怀着激动就去了,然后被眼前一幕吸引了,办公的人真多啊,办公室都是拿透明玻璃隔开那种,人挺多,我一想公司还挺大的,
随后我就被带到也是一个玻璃格子办公室,里面就三个人,加我一个4个。


我害怕极了,这个时候一个稍微有一些秃顶的 大叔过来了 哈哈哈(内心台词,早就知道这一行干就了,会秃头这不会就是下一个我把


他把我安排在了靠近玻璃门的也就是大门位置,这是知道我准备随时跑路节奏吗。然后就去忙他自己的了。整个上午我就像是一个被遗忘在角落里的人一样。根本没人管我,就这样第一天结束了,我尴尬了做了一整天。


这工作和我想象的有点不太一样啊!


后面第三天还是如此,办公室里依旧是那么几个人,直到第四天,大叔来了,问我直到多线程吗,让我用多线程写一个抽奖的活动项目。(内心我想终于有事情干了,可是也高兴不起来谁知道怎么写)


不过好在,他也没有说什么时候交,只是说写完了给他看一下,经过我几天的,复制粘贴工程师 一顿谷歌,百度,终于是勉强写出来了。。。。。


后面,就又陆陆续续来了几个小伙伴,才开始新项目和开会,第一份工作大致就是这样开始了我的职业生涯。怎么说呢和我想象的有所不一样,但又有一些失望。


后面干了1年多,我就离职了原因是太累了没时间休息,一个项目接着一个项目的


第二家公司


在离开第一家公司时候,我休息了好长一段时间,调整了我自己的状态


也了解了什么是外包公司,什么是工作外派,也是我这一次就在投递简历,和面试时候刻意去避免进那种外包,和外派公司。


面试什么也还算顺利,不到半个月就拿到了offer。 但是工资总体来说比上一家是要少一点,但是我也接受了,是一家做本地生鲜电商公司,,本来生活科技有公司, 我觉得公司氛围,和公司都挺不错的,就入职了。


入职了我们那个项目经理还算很热情的,让同事帮我开git账号,开了邮箱,我自己拉取了公司项目,然后同事帮我运行调试环境第一天,项目什么都跑了起来,


你知道的,每次去一家新公司,开始新项目难的是项目复杂配置文件,和各种mave包依赖,接口,环境冲突,所以跑起来项目自己一个人摸索还是需要一些时间的。


在这家公司前期也还不错,公司维护自己项目,工作时间也比较自由和灵活,


大体流程是,每次有新的pm时候 产品经理就会组织各个部门开会


h5端-移动端-接口端开会讨论需求细节和实现,如果有问题头就会pass掉


然后产品经理就会把需求指派到每一个头,头把需求指派给组员,然后组员按照
redmine 上截止时间开发需求,


开发过程中自己去找对应接口负责方,其他业务负责方 去对接数据,没有问题了就可以提交给指定测试组测试了。


然后测试组头会把,测试分配给他们组员,进行测试。


有问题了就会在指派回来给对应负责各个开发同学去解决bug,直到测试完成。测试会让你提交堡垒环境 然后等待通知发布上线,


我们一般是晚上8点时候发布,发布时候,一般开发人员都要留守,直到发布上线没有问题了,才可以回家。如果弄得很晚的话,第二天可以晚点上班。


这一点是我觉得比较好的地方,工作时间弹性比较自由。


记得有一次生产事故。


我影响很深刻,东西上线了,然后产品经理说这个和他设计的预期的不符合要求,需要重新写,那一晚我们整组弄得很晚,就是为了等我弄好去吃饭。


你知道人在心急如焚情况下,是写不好代码的最后还是同事帮我一起完成了产品经理变态需求修改。。。。。。(也就在那时候我才知道产品经理和开发为什么不和了


因为五行相克


因为经常这样发版,然后一起吃饭公司报销。我们组员和领导关系还算不错氛围还挺好。在这一家公司我待了挺久的。


离职原因
后期因为说公司项目战略升级。空降了一位携程cto,还带来了他的手下人,我们组头,职权被削弱了,我不在由原来头管理了。再加上后面一些其他原因。老同事一个一个走了。


最后这个组只剩下我,和一个进来不久新同事。 不久我也离职了。


第三家公司


这次离职后,我调整休息了差不多有一年,中间离开上海去了江苏,因为家里,女朋友等各种事情。后面我才又从新去了上海,开始找工作。


找工作期间投奔的同事,合同事住一起。


这次面试我明显感觉,有一些慌张了,可能是太久没上班原因,有一些底气不足。好在也是找到了工作虽然不太理想。


这个过程太曲折了,后面公司终究没有扛过疫情,可以说在疫情边缘倒闭了,钱赔偿也没拿到,。。。这里就不赘述了。


IT行业如何破局 大家有什么想法和故事吗。可以关注 程序员三时公众号 进行技术交流讨论


嗯~还想往下面写一点什么,,,下一篇分享一下我现在工作和未来思考


作者:程序员三时
链接:https://juejin.cn/post/7231608749588693048
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

2023年 android 裸辞跳槽经历

前言 上家公司我呆了整整三年,趁着合同到期,不想续签了,于是想出来试试新的机会,从毕业到现在每次换工作都是裸辞的,哪怕今年行情不怎么好也是裸辞的,自我认为,一来经济上也没有太大压力,二来裸辞之后能全心全意准备面试,成功率大大提升,但也不排除运气太差,一直找不到...
继续阅读 »

前言


上家公司我呆了整整三年,趁着合同到期,不想续签了,于是想出来试试新的机会,从毕业到现在每次换工作都是裸辞的,哪怕今年行情不怎么好也是裸辞的,自我认为,一来经济上也没有太大压力,二来裸辞之后能全心全意准备面试,成功率大大提升,但也不排除运气太差,一直找不到工作的情况,所以每个人需要根据自己的实际情况做选择。


我是 2 月 1 号先找我的上级聊离职的事情,然后又找公司人事聊合同不续签的事情,然后约定在 3 月 15 号离职。提完离职之后跟想象的不一样,以为提完离职就可以放松下来了,没想到一直到 3 月 14 号还在写需求🤣


复习准备


提完离职之后就开始准备简历和投简历了,因为离职这件事从去年就开始考虑了,所以在去年 11 月份就开始有意识的准备了,刷算法,刷八股文。大概用了两个月时间,leetcode 刷了 100 道题,当然一开始刷算法肯定很受挫,第一题就不会,这很正常,我一般是先看题目,不会就看题解,然后背,每隔一周就把上周刷的算法再复习一遍。


640.jpeg


关于八股文的准备就是复习 Java,kotlin,Android 基础,计算机网络,数据结构,还有设计模式等等部分,这些东西比较耗时同时知识点比较多又杂,所以只能慢慢复习,就跟大学考研一样,第一遍就是全面复习,然后把不会的知识点记录下来,然后每天上下班地铁上快速的过一遍,就是无意识的记录,看到一个知识点就在脑子里回想跟它有关联的其他知识点,这样一直持续到 2 月份,然后还有简历,简历很重要,因为面试官基本都是根据你简历上面写的提问,当然也不排除不按套路来的面试官,我就碰到过一次,一上来就一直问我计算机网络底层相关的东西,如 socket,websocket,xmpp 以及如何处理高并发的东西,然后其他东西一点都没问,这就让我很郁闷了,总之简历一定要写好,同时简历里面的提到的知识点一定要滚瓜烂熟。


找工作途径


关于在哪里投递简历的话,我是用了拉钩,BOSS,51job,猎聘网,然后拉钩充值了一个月会员 169 元(屁用都没有,感觉拉钩已经死掉了,职位不更新,投简历没反应),BOSS 先买了一个月会员,然后又续费了一个月,每个月 69 元,最后也是通过 BOSS 面试找到工作的。大伙有需要可以了解一下,这里不是给 BOSS 打广告哈。然后 51job 这个 App,用了一圈感觉都是外企或者国企事业单位发布的职位比较多,不过整体感觉用处不大,没起什么作用。猎聘网 App,广告打得到处都是,然而没卵用。这就是我找工作的途径。


offer情况


从 2 月份开始投递简历,大概投了几十份简历,总共收到的面试机会大概有 15 家,参加的面试有 10 家左右,还有其他的就是不合适啥的就拒绝掉了,最后统计了一下,只有成功了 3 家,收到了 3 家录用通知,成功率只有 30%,因为我的目标很明确,就是想去外企,国企事业单位,初创企业,互联网的公司不大想去,所以一些大厂我都没有投简历。可以想象今年的行情很差,我三年前也就是在 20 年的时候换工作,那时候都是工作追着你跑的,今年行情的确不行,你去找工作,别人都不愿意搭理你。


关于具体的面试经验总结可以看我公众号里面具体的文章,以上便是我今年换工作的整体情况。


作者:crazyandcoder
链接:https://juejin.cn/post/7220061751399268407
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

2023年35大龄程序员最后的挣扎

一、自身情况其实30岁的时候已经开始焦虑了,并且努力想找出路。提升技术,努力争增加自己的能力。努力争取进入管理层,可是卷无处不在,没有人离开这个坑位,你努力的成效很低。大环境我们普通人根本改变不了。自己大龄性价比不高,中年危机就是客观情况。无非就是在本赛道继续...
继续阅读 »


一、自身情况

我非科班出身,年龄到了35岁。然后剧本都差不多,2022年12月各种裁员,失业像龙卷风一样席卷社会各个角落。

  1. 其实30岁的时候已经开始焦虑了,并且努力想找出路。

  2. 提升技术,努力争增加自己的能力。

  3. 努力争取进入管理层,可是卷无处不在,没有人离开这个坑位,你努力的成效很低。

  4. 大环境我们普通人根本改变不了。

  5. 自己大龄性价比不高,中年危机就是客观情况。

  6. 无非就是在本赛道继续卷,还是换赛道卷的选择了。

啊Q精神:我还不是最惨的那一批,最惨的是19年借钱买了恒大的烂尾楼,并且在2021年就失业的那拨人。简直不敢想象,那真是绝望啊。心里不够坚强的,想不开轻生的念头都会有。我至少拿了点赔偿,手里还有些余粮,暂时饿不死。


二、大环境情况

  1. 大环境不好已经不是秘密了,整个经济走弱。大家不敢消费,对未来信心不足已经是板上钉钉的事了。

  2. 这剧本就是30年前日本的剧本,不敢说一摸一样。可以说大差不差了,互联网行业的薪资会慢慢的回归平均水平,或者技术要求在提升一个等级。

  3. 大部分普通人,还是做应用层拧螺丝,少部分框架师能造轮子也就是2:8理论。

  4. 能卷进这20%里,就能在上一层楼。也不是说这行就不行了,只不过变成了存量市场,而且坑位变少,人并没有变少还增加了。

  5. 不要怀疑自己的能力,这也不是你的问题了,是外部环境导致的市场萎缩。我们能做的就是,脱下孔乙己的长衫,先保证生活。努力干活,不违法乱纪做什么都是光荣了,不要带有色眼镜看待任何人。

三、未来出路

未来的出路在哪里?

这个我也很迷惑,因为大佬走的路,并不是我们这些普通的不能在普通的人能够走的通的。当然也有例外的情况,这些就是幸存者偏差了。

我先把chartGPT给的答应贴出来:


可以看到chartGPT还是给出,相对可行有效的方案。当然这些并不是每个人都适用。

我提几个普通人能做的建议(普通人还是围绕生存在做决策):

  1. 有存款的,并且了解一些行业的可以开店,比如餐饮店,花店,水果店等。

  2. 摆摊,国家也都改变政策了。

  3. 超市,配送员,外卖员。

  4. 开滴滴网约车。

以上都是个人不成熟的观点,jym多多包涵。

作者:可乐泡枸杞

来源:juejin.cn/post/7230656455808335930

收起阅读 »

程序员能有什么好出路?

我自己耶 从业10年了,经常在娱文中看到这种的文章,我怀疑是精准推送!!30岁以上的程序员该何去何从? - 知乎30岁: 程序员心中永远的痛?过了30岁,程序员该怎么办? - 阿里云开发者社区30岁转行程序员晚了吗?分享30岁转行的经历 - SegmentFa...
继续阅读 »

我自己耶


从业10年了,经常在娱文中看到这种的文章,我怀疑是精准推送!!

  1. 30岁以上的程序员该何去何从? - 知乎
  2. 30岁: 程序员心中永远的痛?
  3. 过了30岁,程序员该怎么办? - 阿里云开发者社区
  4. 30岁转行程序员晚了吗?分享30岁转行的经历 - SegmentFault
  5. 30岁后“大龄程序员"应该何去何从? - 脉脉
  6. 程序员:伤不起的三十岁 - 菜鸟教程
  7. 程序员迷茫:30岁以上的“大龄程码农”出路在哪?java码 ... - 掘金
  8. 30岁老程序员迷茫| Laravel - LearnKu


关于职场的焦虑无处不在,而这些文章也加重了我们的焦虑。就我个人而言,我也仔细想过这个问题,其实从本质上来说,只是个“竞争力”的问题。


如果你觉得自己没有竞争力了,那么你就会焦虑,而你又将焦虑的原因归结于一个你没办法改变的问题,那就是“年龄”。于是一个逻辑自洽的描述出来了:


30岁了,没啥竞争力,未来何去何从?

出路耶


我从事这个行业,其实是个人挺喜欢编程的,觉得编程是一件挺舒心的事情,所以没有考虑过换行。周围其实有一些同事,离开了这个行当,有一些赚了更多的钱,也有一些日子过的更不舒心,这里不予置评。


我简单的叙述一些可能的出路,这些出路没什么对错的区别,只是在我们人生抉择中,希望你能看到更多的选项。


技术深造


如果你在技术上有优势,这是一条可以走通的路子,未来的方向大致是“架构师”、“技术顾问”等等。这需要你有一些大型项目的经验,所以一些在大型公司就业的程序员,天然的拥有更多的机会。


通常技术深造主要是两部分:



  1. 技术视野,你需要一定的知识广度,对常用技术有深刻的理解,对部分不常用技术也要熟悉。

  2. 技术能力,有的时候,亲自动手能力、解决问题能力会很重要。


项目管理


很多程序员转行做了项目管理,其实在我们的日常工作中,项目管理一直伴随着我们,时长日久,我们对项目管理会变的更熟悉一些。这也造成了一些错觉,让我们觉得项目管理没那么难,“我去我也行”。


但是,项目管理从来不是一项普通的工作,相对于程序员,项目管理人员面临的环境会更加复杂。

  1. 面对客户。有时候,会遇见一些喜欢刁难我们的客户的。
  2. 面对团队。团队也可能不和谐。
  3. 计划乱了、工期排期、风险控制、质量管理、干系人管理等等专业知识。


自由职业


依赖于自己过硬的技术,可以承接一些外包的项目,成为一名自由的外包人员。



  1. 你的人际关系会很重要。周围有一些能打单的朋友,会让你工作的很舒服。

  2. 把事情做好,赢得信赖。

  3. 来自第三方平台的外包项目还是比较坑的,尽量做熟人生意。


跑单


当然,你在行业内可能会认识不少的朋友,他们的手里可能有些业务需要外包人员进行开发,那么拿下这些合同,找到自己朋友里面有时间做私活的人,然后我完成它。



  1. 你的人际关系更为重要。通常,这会给你带来财富。

  2. 做好自己的品牌,赢得认可,那么就有赢得钞票的机会。


插件独立开发者


一个人开发一个应用,然后上架,成功率是很低的。所以依托于平台,做一些平台内的插件,然后依托于平台推广,那么成功的几率会大一些。



  1. 你的技术能力很重要,毕竟没有专门的测试人员进行测试。

  2. 你选择的平台很重要,比如跨境电商、钉钉、微信、谷歌浏览器等等。

  3. 更加重要的是,你要对这个方向感兴趣。


独立开发者


如果你财富自由了,又喜欢编程,可以成为一名伟大的独立开发者,你脑海中的任何想法,都可以通过双手变为现实。



  1. 因为热爱,所以你会有更多的可能。

  2. 能力足够,可以参与开源的基金会,参与一些开源项目。

  3. 如果财富没自由,那也不影响我们在闲暇时间里追逐我们的梦想。


团购


IT行业是一个挺特殊的团体,他们的某些消费习惯趋于雷同,针对这些消费习惯和爱好,做一些团购,相信会赚到不少钱。



  1. 还是人际关系。

  2. 你喜欢做这些事情,从免费到收费循序渐进。

  3. 记住,双赢才能长久,IT行的聪明人是比较多的。


大公司养老团


找个大的,稳定的公司养老,但是也要留好退路,居安思危。


其他


比如炒股、搞理财的、做导游的、创业的……


每个人都会有自己的选择,有的人做好了准备,有的人还懵懵懂懂,2023年的行情如何还未可知,希望能长风破浪吧

作者:襄垣
来源:juejin.cn/post/7194295837265461305

收起阅读 »

【思考】时间不等人,学会聚焦重要事情,享受现在的快乐!

时间对每个人都是有限的 时间是一种奢侈品,在许多情况下,我们不能在拥有更多的财富和资源,但我们可以通过聪明的时间管理来确保我们能够在有限的时间内做更多的事情。所以我们必须学会如何利用时间,找出哪些对我们最重要的事情,并把它们放在更加优先的位置。 找出那些对你最...
继续阅读 »

时间对每个人都是有限的


时间是一种奢侈品,在许多情况下,我们不能在拥有更多的财富和资源,但我们可以通过聪明的时间管理来确保我们能够在有限的时间内做更多的事情。所以我们必须学会如何利用时间,找出哪些对我们最重要的事情,并把它们放在更加优先的位置。


找出那些对你最重要的事情


我们不是时间的奴隶,而是它的朋友。活到老学到老,要知道区分好事情的先后优先级。你需要挖掘出对你而言真正重要的事情,并且把它们放在更优先的位置。只有专注于最重要的事情,你才能够彻底放下手中的琐事,让时间为你而舞。


时间管理不应该是目标,它应该是一种手段来实现目标。你需要找出那些对你最重要的事情,并将它们放在更优先的位置。只有这样,你才能在有限的时间里取得最好的成果。


不要把快乐推迟到未来


当你把所有的重要事情放到更优先的位置上后,你需要学会享受现在。不要把快乐推迟到未来,学会珍惜每个瞬间。因为时间是快乐的载体,珍惜当下不仅可以让你快乐,还能让你更加享受未来的生活。


面对优先事情时,学会说“不”


你会遇到很多无关紧要的请求,但是你需要学会拒绝那些与你最重要的事情无关的请求。说“不”并不是一种自私的行为,它可以让你从无关紧要的事情中解放出来,让你有更多的时间去关注那些真正重要的事情。


对“无关紧要”的事情说不!有时候,那些琐事会在你不经意间夺去你的时间,让你无暇顾及真正重要的事情。对于那些无关紧要的请求,大声说不!真正重要的事情,才是我们的核心,更值得我们花费精力。


图片遵循CC0 1.0协议


时间的价值取决于你如何利用它


时间的价值在于你如何使用它。尽管每个人的时间价值不同,但对于每个人来说,时间都是宝贵的。在一天结束时,如果你有实现一些重要的事情并感到充实和满足,那么这一天就是美好的。因此,你需要学会关注你的目标,并且学会更好地安排时间。


时间管理要始于自我管理


自我管理是实现聪明时间管理的核心。自我管理意味着在思想上建立目标和优先事项,并且始终监控、计划和执行任务。如果你能够始于自我管理,你将能够更加有效地管理时间,并且做出更加明智的决策。


学习重点管理和时间分配


重点管理和时间分配是实现聪明时间管理的关键。你需要始终关注那些重要的事情,并且制定适当的计划,并在时间上严格控制。因为时间是快速流逝的,你需要掌握时间并且利用它,不让时间流失于无关紧要的事情中。


把握时间,抓住机会。时间的价值在于你如何使用它。每天结束时,回首自己所做的一切是什么感觉?充实满足?还是焦虑疲惫?抓住机会,把握时间,完成更多的事情,才是让我们拥有更充实快乐的生活。


图片遵循CC0 1.0协议


享受时间的本质


最后,记住时间是有限的资源,珍惜现在的每一分每一秒,学会享受时间的本质。当我们的思维放松,我们的身心健康时,我们的工作表现会更加出色。在享受生活的同时,我们也应该学习新的技能和经验。所以让我们将时间花在有意义的事情上,并且享受成功的成果。


作者:左羊
链接:https://juejin.cn/post/7220410343649427513
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

如何告诉后端出身的领导:这个前端需求很难实现

本文源于一条评论。 有个读者评论说:“发现很多前端的大领导多是后端。他们虽然懂一点前端,但总觉得前端简单。有时候,很难向其证明前端不好实现。” 这位朋友让我写一写,那我就写一写。 反正,不管啥事儿,我高低都能整两句,不说白不说,说了也白说。本文暂且算是一条评...
继续阅读 »

本文源于一条评论。


test.png


有个读者评论说:“发现很多前端的大领导多是后端。他们虽然懂一点前端,但总觉得前端简单。有时候,很难向其证明前端不好实现。


这位朋友让我写一写,那我就写一写。


反正,不管啥事儿,我高低都能整两句,不说白不说,说了也白说。本文暂且算是一条评论回复吧。愿意看扯淡的同学可以留一下。


现象分析


首先,前半句让我很有同感。因为,我就是前端出身,并且在研发管理岗上又待过。这个身份,让我既了解前端的工作流程,又经常和后端平级一起交流经验。这有点卧底的意思。


有一次,我们几个朋友聚餐闲聊。他们也都是各个公司的研发负责人。大家就各自吐槽自己的项目。


有一个人就说:“我们公司,有一个干前端的带项目了,让他搞得一团糟”


另一个人听到后,就叹了一口气:“唉!这不是外行领导内行吗?!


我当时听了感觉有点别扭。我扫视了一圈儿,好像就我一个前端。因此,我也点了点头(默念:我是卧底)。


是啊,一般的项目、研发管理岗,多是后端开发。因为后端是业务的设计者,他掌握着基本的数据结构以及业务流转。而前端在他们看来,就是调调API,然后把结果展示到页面上。


另外,一般项目遇到大事小情,也都是找后端处理。比如手动修改数据、批量生成数据等等。从这里可以看出,项目的“根基”在后端手里。


互联网编程界流传着一条鄙视链。它是这样说的,搞汇编的鄙视写C语言的,写C的鄙视做Java的,写Java的鄙视敲Python的,搞Python的鄙视写js的,搞js的鄙视作图的。然后,作图的设计师周末带着妹子看电影,前面的那些大哥继续加班写代码。


当然,我们提倡一个友好的环境,不提倡三六九等。这里只是调侃一下,采用夸张的手法来阐述一种现象。


这里所谓的“鄙视”,其本质是源于谁更接近原理。


比如写汇编的人,他认为自己的代码能直接调用“CPU”、“内存”,可以直接操纵硬件。有些前端会认为美工设计的东西,得依靠自己来实现,并且他们不懂技术就乱设计,还有脸要求100%还原。


所以啊,有些只做过后端的人,可能会认为前端开发没啥东西。


好了,上面是现象分析。关于谁更有优越感,这不能细究啊,因为这是没有结论的。如果搞一个辩论赛,就比方说”Python一句话,汇编写三年“之类论据,各有千秋。各种语言既然能出现,必定有它的妙用。


我就是胡扯啊。不管您是哪个工种,请不要对号入座。如果您觉得被冒犯了,可以评论“啥都不懂”,然后离开。千万不要砸自己的电脑。


下面再聊聊第二部分,面对这种情况,有什么好的应对措施?


应对方法


我感觉,后端出身的负责人,就算是出于人际关系,也是会尊重前端开发的


“小张啊,对于前端我不是很懂。所以请帮我评估下前端的工期。最好列得细致一些,这样有利于我了解人员的工作量。弄完了,发给我,我们再讨论一下!”


一般都是这么做。


这种情况,我们就老老实实给他上报就行了,顶多加上10%~30%处理未知风险的时间。


但是,他如果这样说:“什么?这个功能你要做5天?给你1天都多!


这时,他是你的领导,对你又有考核,你怎么办?


你心里一酸:“我离职吧!小爷我受不了这委屈!”


这……当然也可以。


如果你有更好的去处,可以这样。就算是没有这回事,有好去处也赶紧去。


但是,如果这个公司整体还行呢?只是这个直接领导有问题。那么你可以考虑,这个领导是流水的,你俩处不了多长时间。哪个公司每年不搞个组织架构调整啊?你找个看上的领导,吃一顿饭,求个投靠呗。


或者,这个领导只是因为不懂才这样。谁又能样样精通呢?给他说明白,他可能就想通了。人是需要说服的。


如果你奔着和平友好的心态去,那么可以试试以下几点:


第一,列出复杂原因


既然你认为难以实现,那肯定是难以实现。具体哪里不好实现,你得说说


记得刚工作时,我去找后端PK,我问他:“你这个接口怎么就难改了?你不改这个字段,我们得多调好几个接口,而且还对应不起来!”


后端回复我:“首先,ES……;其次,mango……;最后,redis……”


我就像是被反复地往水缸中按,听得”呜噜呜噜“的,一片茫然。


虽然,我当时不懂后端,但我觉得他从气势上,就显得有道理


到后来,还是同样的场景。我变成了项目经理,有一个年轻的后端也是这么回复我的。


我说:“首先,你不用……;其次,数据就没在……;最后,只需要操作……”。他听完,挠了挠头说,好像确实可以这么做。


所以,你要列出难以实现的地方。比如,没有成熟的UI组件,需要自己重新写一个。又或者,某种特效,业内都没有,很难做到。再或者,某个接口定得太复杂,循环调组数据,会产生什么样的问题。


如果他说“我看到某某软件就是这样”。


你可以说,自己只是一个初级前端,完成那些,得好多高级前端一起研究才行。


如果你懂后端,可以做一下类比,比如哪些功能等同于多库多表查询、多线程并发问题等等,这可以辅助他理解。不过,如果能到这一步,他的位子好像得换你来坐。


第二,给出替代方案


这个方案,适用于”我虽然做不了,但我能解决你的问题“。


就比如那个经典的打洞问题。需求是用电钻在墙上钻一个孔,我搞不定电钻,但是我用锤子和钉子,一样能搞出一个孔来。


如果,你遇到难以实现的需求。比如,让你画一个很有特色的扇形玫瑰图。你觉得不好实现,不用去抱怨UI,这只会激化问题。咱可以给他提供几个业界成熟的组件。然后,告诉他,哪里能改,都能改什么(颜色、间距、字体……)。


我们有些年轻的程序员很直,遇到不顺心的事情就怼。像我们大龄程序员就不这样。因为有房贷,上有老下有小。年龄大的程序员就想,到底是哪里不合适,我得怎样通过我的经验来促成这件事——这并不光彩,年轻人就得有年轻人的样子。


第二招是给出替代方案。那样难以实现,你看这样行不行


第三,车轮战,搞铺垫


你可能遇到了一个硬茬。他就是不变通,他不想听,也不想懂,坚持“怎么实现我不管,明天之前要做完”。


那他可能有自己的压力,比如老板就是这么要求他的。他转手就来要求你。


你俩的前提可能是不一样。记住我一句话,没有共同前提,是不能做对比的。你是员工,他是领导,他不能要求你和他有一样的压力,这就像你不能要求,你和他有一样的待遇。多数PUA,就是拿不同的前提,去要求同样的结果。


那你就得开始为以后扯皮找铺垫了。


如果你们组有多个前端,可以发动大家去进谏。


”张工啊,这个需求,确实不简单,不光是小刘,我看了,也觉得不好实现“


你一个人说了他不信,人多了可能就信了。


如果还是不信。那没关系,已经将风险提前抛出了


“这个需求,确实不好实现。非要这么实现,可能有风险。工期、测试、上线后的稳定性、用户体验等,都可能会出现一些问题”


你要表现出为了项目担忧,而不是不想做的样子。如果,以后真发生了问题,你可以拿出“之前早就说过,多次反馈,无人理睬”这类的说辞。


”你居然不想着如何解决问题,反倒先想如何逃避责任?!“


因此说,这是下下策。不建议程序员玩带有心机的东西。


以上都是浅层次的解读。因为具体还需要结合每个公司,每个领导,每种局面。


总之,想要解决问题,就得想办法


作者:TF男孩
链接:https://juejin.cn/post/7235966417564532794
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

思考 | 差别之心

奶奶去世后,我们一家人打算去庙里超度,于是带了两袋米、两桶油还有些许蔬果。我把米油拎到了大殿佛像的右侧,转头瞥见左侧也放了些物资,应该是别人超度时带来的。走过去一数,整整六袋米六桶油。于是我的内心便起了妄念,“别人带了六袋,为什么我们只带了两袋?是不是我们带少...
继续阅读 »

奶奶去世后,我们一家人打算去庙里超度,于是带了两袋米、两桶油还有些许蔬果。我把米油拎到了大殿佛像的右侧,转头瞥见左侧也放了些物资,应该是别人超度时带来的。走过去一数,整整六袋米六桶油。于是我的内心便起了妄念,“别人带了六袋,为什么我们只带了两袋?是不是我们带少了?我要不要再去买几袋跟别人一样?”放在以前,我不会对这个想法有过多的审视,因为它仿佛呼吸吃饭一样自然。但是那一天,我忽然对这个念头产生了怀疑。


我想了很久,发现这背后的根源在于“差别之心”。万事万物皆有不同,这是事物的外在形式。然而如何看待这些不同,是我们内心的事情。因有差别之心,所以攀比、嫉妒渐生;因有差别之心,所以掩饰、虚伪渐生;因有差别之心,所以空虚、焦虑渐生。前段时间我打算买车,走在路上会仔细打量路过的各种车辆,但我关注最多的居然是牌子(价格)。譬如保时捷的车,即便从审美角度来说我并不欣赏那两个凸出的“眼泡”,但内心仍然会高看它一眼。又或者我读了一所还不错的大学,但看到清华时心里仍然会羡慕,看到普通的学校又会难掩鄙夷。这是一种非常真实,且又十分糟糕的心态,捧高踩低,欺软怕硬。世人都崇尚慕强,然而慕强好么?曾经我也会不假思索的赞同,然而现在我会认为:慕强就一定会凌弱。这种凌弱并非行为上,而是心理上的鄙夷和轻视。因为慕强和凌弱同源,皆来自于“差别之心”。


这种“差别之心”在东亚的文化圈中十分泛滥,使得每个人都活在别人的目光里,活在一场虚拟的排位赛中。考试讲究名次,出了社会谈论工资,买个房也要分高低贵贱、内中外环。人生永远在比,别人怎么样了,我怎么样了。就像许嵩歌词里唱的,“飞上枝头的都风趣,占了巢的都在窃喜”。然而人生到处是枝头,占了这处,那下处呢?


“差别之心”的泛滥,其中一个原因就在于居住环境的拥塞。因为拥塞,所以需要抢夺有限的资源;因为拥塞,所以需要承受别人更多的目光。我想这也是为什么东亚这块人口密度极高的土地上,竞争更加激烈的原因。最近这几年,每次回老家走在空旷的河堤时,内心总会升腾起一种熟悉又陌生的平静。之所以熟悉,是因为它总让我回想起儿时的各种场景:夕阳西下,各家的烟囱里飘出袅袅炊烟,人们收拾完农具走在通往家的路上;秋日的午后,睁开睡眼的刹那看见一片飘零的枫叶在空中打转,声音很轻,空气很凉;大雪纷飞的除夕夜,独自一人爬上楼顶,在硝烟弥漫的空气中感受着灯火忽明忽暗的闪烁。这些平静而美好的瞬间,构成我对人生最深层的留恋。然而之所以陌生,是因为我在钢筋水泥的城市里生活得越来越久,久到变得有些麻木。我想,这种趋势未来一定会引发反思,事实上日本在这方面已经先行一步。观察中日韩三国的文艺作品后,我有一个不成熟的观点:日本的影视作品中出现了不少平凡视角却安静美好的内容,像是一杯初上的新茶,清新,淡雅;韩国的影视作品中有不少社会阴暗面的讽刺和揭露,像是一杯呛人的烈酒,辛辣,刺激;而国内的影视作品则像一杯甜甜的奶茶,好喝,但不健康。


与“差别之心”相对的便是“平常心”。平常,意味着对每个来到你面前的个体都保有同等的尊重和自然,不因为他是领导或权贵而卑躬屈膝,也不因他是无家可归、流落街头的浪人而轻视怠慢。佛家讲普渡众生,“无缘大慈,同体大悲”。这背后的根源是你我皆有佛性,佛是开悟的人,人是未开悟的佛。当我们认识到人人皆有佛性,或人这个主体有着无穷的价值时,那么他的穿着和谈吐将显得暗淡无光,由这些附着品产生的差别也将毫无意义。


如今,“平凡”仿佛成了“失败”的近义词,我们羞于将这个词冠名在自己身上。因此我们要折腾,要拼搏,要努力地甩掉与生俱来的“平凡”。多么可笑又执拗的观念,然而它却广泛地存在着。要我说,“平凡”从来都不是失败,它是人生大船的压舱石,是进可攻退可守的城池,是根基,是源头。商品社会邪恶的地方在于,它努力地要拔除我们内心所依凭的这个港湾,让我们成为无家可归的游子,然后在商品产生的种种符号中去短暂停留。


这些絮絮叨叨的话只是我个人的反思,抑或是我追寻初心的一种方式,实际上我离真正做到它们还差得很远。在我刚上小学的时候,一位同学的父亲因病早逝,于是学校举行全校募捐。回家后母亲给了我二十块钱,我却缠着她要一百块钱,那个我认知里最大数额的金钱。我哭着对母亲说,“二十块太少了,救不了他们一家”。如今这纷繁复杂的社会里,我时常分不清对错。但我总在心里提醒自己,“二十块太少了

作者:芦半山
来源:juejin.cn/post/7235806561724891192
,救不下他们一家”。

收起阅读 »

早起、冥想、阅读、写作、运动

周岭在《认知觉醒》一书中提出了快速改变人生的五件事,即:「早起」、「冥想」、「阅读」、「写作」、「运动」。低调务实优秀中国好青年交流群也正是从这 5 件事入手,帮你养成好习惯。我也试着实践了有将近一年的时间,今谈谈收获与心得。 早起 一日之计在于晨,一年之计在...
继续阅读 »

周岭在《认知觉醒》一书中提出了快速改变人生的五件事,即:「早起」、「冥想」、「阅读」、「写作」、「运动」。低调务实优秀中国好青年交流群也正是从这 5 件事入手,帮你养成好习惯。我也试着实践了有将近一年的时间,今谈谈收获与心得。


早起


一日之计在于晨,一年之计在于春;早起是个老生常谈的话题了,鲁迅先生小时候为了上课不迟到,还把「早」刻在桌上告诫自己。我小时候每天晚上吃完饭,没什么事早早地就睡了,甚至觉得十点睡觉都是一件很可怕的事。如今呢,自从步入互联网时代,十点?不好意思,十点夜生活才刚刚开始。


秉承着先僵化、后优化、再固化的原则,我决定尝试一段时间。起初几天是真的很难受,白天浑浑噩噩的完全提不起精神。不过慢慢的,晚上倒是越来越早的睡了。差不多半个月时间几乎都习惯了 10 点左右睡觉,6 点前起床。正常早上六点起床后,稍微锻炼一会回来坐那下下汗,冲个凉水澡,然后吃个早饭就去工作了。


持续了有半年时间,直观感受就是身体越来越好,精神头越来越棒;但我并不认为这是早起带来的,潜移默化改变了我的是生活规律。毕竟美国人时差和咱们完全反着来,也没见几个英年嗝屁的。现在为止,我想早起也许就真的只是早点起来罢了。


但有一天,我翻看着旧日的朋友圈:星光不问赶路人,豁然开朗。也深刻地认识到了自己的肤浅,早起其实并不只意味着早点起来罢了。想象一下,如果明天要和女神约会?或者新工作的第一天?不用考虑肯定早早的就起来收拾了,因为你开心,快乐,幸福;甚至要迎来人生新阶段了。所以早起真谛可能不仅仅是早点起来,更重要的是进一步寻找人生的意义,创造生命的价值,为我所热爱奋斗终生!


冥想


关于冥想,老实说太高端了,高端到有点不接地气,反正 100 个人有 100 个见解。刚开始还看了各种视频、翻了有关的书、试了各种动作体验冥想、有没有效果我不清楚,不过睡得倒很快。


感受呼吸、扫描身体、提升专注力,但越努力就越凌乱……由于不能形成持续的正反馈,所以我有点消极。去你的冥想,浪费生命。后续冥想也是断断续续的持续了好久,那天想起来就尝试一下,想不起来就算了。


直到有阵子,忘记具体在做什么,总之就是在写代码。从上班来坐那,要不是同事喊我,还真没感觉一个上午都过去了……也是瞬间明白了《十分钟冥想》中:心流。


我把冥想定义为心无杂念、极致专注。但是早期的努力只是停留在表面上而没有透彻地理解。我认为冥想最重要的一点:感知力、尝试学会深入感受身体各个部位,体会情绪在大脑波动,品尝茶水在身体流淌,体会世间万物。

一个小和尚问得道的师父:“您得道之前做什么?”

老和尚说:“砍柴、挑水、做饭。”

“那得道之后呢?”小和尚继续问道。

老和尚回答:“还是砍柴、挑水、做饭。”

小和尚一脸疑惑:“师父,这不是一样吗?”

老和尚说:“当然不一样。得道前,我砍柴时惦记着挑水,挑水时惦记着做饭;得道后,砍柴即砍柴,挑水即挑水,做饭即做饭。”

阅读


生命是有限的,但书籍却是无限的,怎么用有限的生命阅读无限的书籍呢?根据不科学统计,人的一生最多只能阅读 15000 本书籍,那估计是没有一个人可以活着读完。所以我们应该要追求精读细阅和高质量的阅读。


首先要会读书,读好书。《如何阅读一本书》就非常详细的讨论了怎么样阅读一本书,尽管有关读书的方法论确实很好,但我觉得阐述得太过重复啰嗦。其实读书喜欢什么就读什么,不要拘泥于阅读世界名著,人文哲理。但我建议少读都市言情,穿越爽文,其可吸收的营养价值较少。具体想怎么读就怎么读,咬文嚼字、一目十行都无所谓,但是这一种读法仅限于是一本好书的情况下。可是究竟什么是好书呢?追随那些走的快的人,阅读其推荐的书单。


假如面临的是一本新书,那么你可以尝试:



  1. 深入了解书的作者、写作的背景。

  2. 详细阅读书的自序、引言、大纲、目录等重要信息。

  3. 快速翻阅书中的部分章节。如果感觉这本书很有价值,那就接着继续。

  4. 带着疑问追随作者的步伐,选择最适合的方式阅读。

    1. 这本书讲了什么?

    2. 作者细说了什么?

    3. 作者的观点是否正确?

    4. 作者讲的和我有什么关系?



  5. 收获体会,记录笔记。


再分享一种进一步的阅读方法:主题阅读。在某个类目中挑选同方向的若干本书,然后确认自己研究的主题和方向。



  1. 依次阅读每本书。

  2. 理清问题、界定主题。

  3. 与不同作者达成共识。

  4. 分析讨论。


写作



我学生时期其实最厌恶写作了……为什么会是你给我段话,让我来研究一下它怎么想的,然后再为你阐述一下自己的观点。我 TM 怎么知道他想什么,爱想什么想什么。



写作实际上可以和阅读相结合,从而构成完美的闭环。


不知道是不是只有自己写作效率低,感觉自己就像间歇泉,总是时不时的迸发灵感。但有时候喷多了,我还写不下来。所以我一般阅读书籍的时候总是会主动掺杂一些技术类目书籍,这样既有助于提高专业技能,又能留足思考时间。


写作我倒没啥可分享心得的,随心所欲,不必整的很累。但必须重视以下三点:



  1. 务必不要出现错字。

  2. 一定要正确地运用标点符号和合理地分段。

  3. 确保文章整体阅读流畅性。


运动


生命在于运动,如只老乌龟一样冲击活 100 年!


运动锻炼不局限于任何形式,爬楼梯也可以,最重要的是生活态度。千万不要眼高手低,今天运动明天就想超越博尔特,持续保持正反馈,日拱一卒,冲吧骚年!


如果不知道如何下手,可以参考我的 wiki 手册:健身手册




其实吧,哪怕你尝试了「早起」、「冥想」、「阅读」、「写作」、「运动」,也不可能立刻获得收获。过去既然无法改变,未来更不知道何去。


那么请尝试着慢一点,慢一点,再慢一点,也许当你回头那刻,轻舟已过万重山。


作者:7Wate
链接:https://juejin.cn/post/7210298403070722105
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

提高你工作效率的10条建议

最近看到一个关于工作效率的问题,这里系统整理下自己总结的一些经验。 有一个跟工作效率有点像的词汇:生产效率。 生产效率指的是单位时间内的有效产出,想要生产效率高,要么做事的“质”和“量”更高,要么缩短所花费的时间。 工作效率和生产效率比较类似,很多都可以借鉴。...
继续阅读 »

最近看到一个关于工作效率的问题,这里系统整理下自己总结的一些经验。


有一个跟工作效率有点像的词汇:生产效率。


生产效率指的是单位时间内的有效产出,想要生产效率高,要么做事的“质”和“量”更高,要么缩短所花费的时间。


工作效率和生产效率比较类似,很多都可以借鉴。


有些工作效率高的,三年经验可以顶别人五年工作经验。


找到自己精力最旺盛的时间段


有人喜欢早自习时候睡觉,有人喜欢晨读。每个人的作息规律不同,可以在自己正常运行一段时间后,找到最佳节奏。在这个精力最旺盛的时间段,更容易进入心流,可以集中精力处理优先级比较高的事情。另外,大段时间尽量不要被打断。


掌握通用技能


掌握基础的电脑办公软件技能、沟通能力、时间管理能力、快速学习一项技能的能力等等。能够使用软件等解决日常工作中遇到的问题,提高工作效率。


如何提高解决问题的能力?


掌握工作必备的基础技能


基础知识扎实的话,就可以避免在一些低级错误上花费很多时间。如果基础不好,而工作任务又比较重,就类似于每天都在考试,但是却没有时间学习新知识,这样学习成绩也无法提升。


单位时间内不断给自己施压


一小时干别人两三个小时干的活,同样的任务,第二次、第三次做的时候就有意识地提高效率。



像训练肌肉一样的训练自己的大脑。同等时间内,从明天起,让自己思考学习双倍的工作量。注意我加粗加重的关键词,不许增加时间,一个小时还是那一个小时,时间不变,内容翻番。


一开始一定有些疲劳感,但只要不生病,那说明你的大脑就能够适应。坚持半个月,习惯它。再加倍。再坚持半个月,习惯它。


一直加倍加倍坚持到你感觉要生病了为止,把速度降下来,降低20%。把这个效率维持终身。当训练成为习惯的时候,你会越来越轻松,越来越惬意。全力以赴的思考也是一样的。


任何一个人,只要你肯,你都能这么去训练自己的工作效率。而当你的效率提升到别人的4倍,8倍。你会发现生活很惬意,不是因为压力变小了,而是因为你习惯了。


——记忆承载《韦小宝绝境》



定期复盘


每周大致回顾下自己本周做了什么,有什么需求改进的。可以自己给自己写周报。


充分利用碎片化时间


可以在上班大致想下今天要做的内容,在下班路上回顾下今天都做了些什么,哪些做得好,哪些还有待改进。


多出妙招不如减少失误


尽量少出岔子,可以避免因为失误而带来的对已有时间的占用。


做最重要的事情


领会领导意图,抓住重点。细枝末节可以在大的事情基本上确认无误的时候再做。


不会就搜


总有些问题是自己措手不及的,不会就搜,不行就换一个搜索引擎,或者换一个关键词。


搜商系列文章汇总


适当摸鱼


该休息休息会,劳逸结合。休息时间可以整理下文档,换换思路也行,有时候现在百思不得其解的问题,出去溜达一圈回来就豁然开朗了。


作者:江湖人称向前兄
链接:https://juejin.cn/post/7216671329188937787
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

写好代码,我的三个 Code

国内很多大学的计算机专业,比较偏重基础和理论的“灌输”(就我当年上学的体验,现在可能会好一些),对于代码能力,虽然也有一些课程实验,但往往不太够用。于是,在进入正式工作前,很多同学就会对自己代码水平不太自信。下面我就根据我自身的写代码经历提供一些建议。 一些经...
继续阅读 »

国内很多大学的计算机专业,比较偏重基础和理论的“灌输”(就我当年上学的体验,现在可能会好一些),对于代码能力,虽然也有一些课程实验,但往往不太够用。于是,在进入正式工作前,很多同学就会对自己代码水平不太自信。下面我就根据我自身的写代码经历提供一些建议。


一些经历


我是 2010 年上的北邮,当时也是很迷糊的就进了计算机专业。自然的,在大学一开始也谈不上什么学习规划。只能是沿用着高中的学习方法,懵懂地跟着老师走——上课就听课,课余就自习做作业。结果便是,学习效率很低,上课听不太懂、题目做不通透。但总归,上完计算机导论后,编程作业都是自己啃出来的,跌跌撞撞的完成之后,慢慢地竟感受到了编程的乐趣。


我们当时大作业最多的几门课,C++ 程序设计、算法和数据结构、操作系统、计算机网络、微机原理等,现在想来,大部分都都跟玩具一样。后来做了国外一些知名大学公开课的实验才知道,要打造好一个实验项目,是非常难的事情:




  1. 首先,得适配学生的水平,准备详尽的实验材料。




  2. 其次,得搭好代码框架,在合适的地方“留白”,给学生“填空”。




  3. 最后,还得构建足够好的自动化测试平台,进行打分。




如果从头开发,这里面涉及到的复杂度、需要花的心思,并不比发一篇顶会论文简单。那作为教授来说,有这些时间,我为什么不去发一篇论文呢?毕竟国内高校都是科研第一、教学老末。


因此,我在本科课内,代码水平也并没有打下太好的基础。在后面在读研和工作中,不断摸索,代码水平才一点点提高。回头来看,对我代码能力提升有比较大影响的可以总结为 “Code”:LeetCodeWriting/Review Code LoopClean Code


LeetCode


在说 LeetCode 前,想先说说工作后,见到的一类神奇的人——打过算法比赛(通称 ACM,其实是 ICPC 和 CCPC)的同学的印象。这类同学的一大突出特点,用最简单直接的语言来形容,就是:出活快。几年的竞赛经历,让他们只要在脑袋中对需求(题目)理解之后,就能在最短的时间内转化为代码。


由于太过懵懂,我自然是没有打过竞赛,等反应过来竞赛的诸般好处时,已经大三下了。当时,校队也不会招这么“大龄”的队员了,就算招,门槛也非常高,也是大学诸多憾事中的一件了。


后来读了研,在找工作前一年时,LeetCode 已经相当流行了,便也和同学组队,互相激励着刷了起来。当时题目还不是特别多,到研二暑假找实习时,大概把前两百多道刷了两遍。一开始,会不断思考题目是什么意思,该用什么算法解,有时半天想不出来,便去看高票答案。很多高票解真的是精妙而简练,这大概也是当时 LeetCode 最吸引人的地方之一。慢慢的对各种类型题目有些感觉之后,就开始练速度和通过率。也就是上文说的,在理解题目后,能够迅速转变为 bug free 的代码。


因此,虽然没有打过比赛,但是通过 LeetCode 的训练,确实也有了类似竞赛的收获。但自然,在深度、广度和速度上都远不及那些“身经百赛”的同学。不过于我已经是受益匪浅:




  1. 对常见数据结构和算法掌握纯熟。比如现在说起六种排序,特点、使用场景、背后原理,可以做到如数家珍;比如说起树的各种递归非递归遍历,脑动模拟递归执行过程,也是信手拈来;再比如链表、队列、图等特点,也能在脑中边模拟,边换成代码。




  2. 学到了很多精巧的代码片段“构件”。比如如何二分、如何迭代、如何处理链表头尾节点、如何设计基本数据结构的接口等等。这些偏“原子”的构件,是我后来工作中写代码的血肉来源。




但只有这些,是远远不够的,一到大项目里,写出的代码就很容易——“有佳句无佳章”。


Writing/Review Code Loop


遇到上述窘境,往往是因为缺少中大型项目的磨练。表现在空间上,不知道如何组织上万行的代码,如何划分功能模块、构建层次体系;体现在时间上,没有经过项目“起高楼、宴宾客、楼塌了”的构建-腐烂-重构循环。


工程中在理解代码和组织代码时有个矛盾:




  1. 可理解性。作为维护人员,我们学习代码时,多喜欢顺着数据流控制流来理解,所谓根据某个头,一路追查到底,是为纵向




  2. 可维护性。但作为架构人员,我们组织代码时,为了容易维护,多是按照围绕模块来组织代码——把关联紧密的代码聚合到一块,是为横向




所以我们在拿到一个大工程时,如果立即地毯式的看代码,肯定会昏昏欲睡、事倍功半。不幸的是,由于多年读书养成的强大习惯,这个毛病,跟了我很多年。正确的打开方式是,要像对待团在一起的多条线一样,找到“线头”,然后慢慢往外揪。在项目中,这些线头是:service 的 main 函数、各种单测入口。


但我们在构建一个大工程时,又得反着来:先搭建一个揉在一起的主流程,然后逐渐迭代。就像盘古开天辟地一样,随着时间而演化,让天慢慢地升高、地慢慢下降,让整体化为地上四极、山川河流、太阳月亮。如是迭代,将一个混沌的流程,慢慢地模块化。比如常用的工具模块(utils)、业务相关基础模块(common)、控制模块(controller、manager)、RPC HTTP 等回调处理模块(processor)等等。


但当然,如果你已经有了构建某种类型系统的经验,则并不需要在构建初期经历这个漫长过程,可以直接按经验分出一些模块。更进一步,你已经形成了自己的一个代码库,比如时钟、网络、多线程、流控等等,可以直接拿来就用。


那剩下的问题就是细节的微调,我们在进行分层时,边界处的功能,是往上升,还是往下沉;某个较完整的结构,是拍平到使用类里,还是单独拎出来;这些形形色色的决策,都没有一个定则,更多的还是根据场景的需求、工期的长短等诸多实际情况,便宜行事。而这种背后的决策,则是在长时间对中大型项目的学习、对别人修改的 Review、自己上手搭架子和修修补补中,一点点形成的直觉。


就像股票市场有周期一样,工程代码也是有其周期。不经历一个股市牛熊周期,我们不敢轻言空多;不经历过一个工程构建-成熟-腐烂的周期,我们也不敢轻言取舍。即,没办法在工程构建初期,预见到其最常用的打开方式,进而面向主要场景设计,牺牲次要场景的便利性。


单元测试的重要性,怎么强调都不为过。一方面,能不能写出的单元测试,意味着你代码的模块边界是否清楚;另一方面,通过设计好的输入和输出,测试能够保证某种“不变性”,之后无论你怎么微调、重构,只要能跑过之前的测试,那就可以放心一半。另一半,就要靠自己和别人不断 Review 、测试集群线上集群不断地迭代了。


所以,这个过程是一个无休止的 loop,不断的磨,尔后不断地提升。


Clean Code


最后说说对代码的品味。小节标题是:Clean Code,是因为我对代码的品味,最初是从 Clean Code: A Handbook of Agile Software Craftsmanship[1] 这本书建立起来的。其第二章对命名——这个工程中“最难”的事情——的阐述,给我印象很深。


举几个例子:




  1. 单一职责。如果你不能清晰的对你的类或者函数命名,说明你的类或者函数干的事情太多了。




  2. 命名代替注释。比如不要直接使用字面值常量,最好给其一个名字;比如最好不要使用匿名函数,也要给其一个能看出含义的名字。




工作中,我们常说,某某对代码有“洁癖”。我也多少有一些,但我并不以为这是洁癖,而是一种对美的欣赏和追求。代码的美体现在哪里呢?我这里稍微抛个砖(当然,我之前也写文章就代码命名问题啰嗦过,感兴趣的可以点这里[2]可以去看看):




  1. 一致性。比如具有相同含义的实体,使用相同的命名;而需要区分的实体,则要通过命名阈、前缀来进行甄别。从而给读者造成最小的心智负担。




  2. 体系性。是指我们在做一组相关接口时,要考虑其体体系性。比如增删改查,比如生产消费,比如预处理、处理、处理后,比如读取写入等等。体系性又包括对称性和逻辑性,让人在拿到一组接口时,就能最小成本地理解其是如何相互联系、又是如何具有区别的。




  3. 没有赘肉。写代码,不要啰嗦,不要啰嗦,不要啰嗦。如果不小心啰嗦了,说明你可能没有想清楚所解决问题的本质。复杂的表象,在不断地剥离杂质后,往往有很简单的关窍。抓住这些关窍,再往其上附着骨肉,同时理清楚一对一、一对多、多堆多等依赖关系,往往能化简为繁。




不同概念(对应代码中的类)间的关系,在理解代码组织的时候至关重要,最好在名字上有所体现,比如一对一,一对多还是多对多。每个概念的内涵,以及多个概念之间的包含、连接关系,是在做模块设计的时候最需要考虑的事情之一。


在审美之外,还要说说建模(在某种程度上和隐喻是相通的)。毕竟,我们在说构建时,本身就是借助的建筑学中的隐喻。软件工程中,类似的隐喻随处可见。


我们大脑在认知新事物时,多建立在基于旧的模型推演上。因此,如果在处理模块时,如果能从经典的模型库中,找到一个相对合适的抽象,往往能够极大降低用户理解门槛。比如经典的生产者消费者模型、树形组织模型、路由器模型、线程调度模型、内存模型等等。此外,也可以使用某种常见意象、隐喻来命名项目,往往也能在易理解性上收获奇效。比如监控系统,可以叫“鹰眼”;比如各种流水线管控,可以叫“富士康”(手动斜眼);再比如更常见一些的数据采集,我们都知道他叫——“爬虫”。


The last Thing


世间的事情往往是多方印证、互相补足的——如果你想写好代码,就不能只是低头写代码,你得去读读历史、学学美术、写写文字、见见河山,建立一套你自己的审美偏好,然后将其理念平移到写代码里来,才能写出符合直觉、具有美感的好代码。


作者:木鸟杂记
链接:https://juejin.cn/post/7214288126222467132
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

如何不依着惯性做事

文章从一个小和尚的故事开始。 在一个古老的寺庙里,住着一位小和尚,每天的任务就是从山下的小溪里挑水到山上的寺庙。小和尚每天日出而作,日落而息,用他的小木桶,一次又一次地从山下挑水到山上,生活在这种重复中过去了好多年。 有一天,小和尚遇到了一个问题,随着寺庙里的...
继续阅读 »

文章从一个小和尚的故事开始。


在一个古老的寺庙里,住着一位小和尚,每天的任务就是从山下的小溪里挑水到山上的寺庙。小和尚每天日出而作,日落而息,用他的小木桶,一次又一次地从山下挑水到山上,生活在这种重复中过去了好多年。


有一天,小和尚遇到了一个问题,随着寺庙里的弟子越来越多,他一个人挑水已经无法满足大家的需求了。他感到非常焦虑,但加快了挑水的速度,每天几乎都精疲力尽。然而,无论他多么努力,总是无法满足大家的需求。


这一天老和尚问小和尚:「你为什么不想想看,有没有更好的方法来解决这个问题呢?」


小和尚一愣,他才意识到,他一直都是在埋头做事,从未想过有其他的方法。


于是,小和尚开始思考,他观察发现,从山上到山下有一条小溪,而这条小溪的水源就是他每天去挑水的地方。他萌生了一个念头,为何不直接将山下的水引到山上来呢?


于是,小和尚开始行动,他用竹子和石头制作了一套简单的引水系统,经过数天的努力,他成功地将水从山下引到了山上的寺庙。从此,他不再需要每天辛苦地挑水,寺庙里的水源也变得更加充足。


这个 AI 写的小故事虽然有点浅,但也告诉我们,在生活和工作中,往往会习惯性地使用过去的方法和思维模式,而忽视了其他可能的解决方案。只有当我们打破惯性,从新的角度去思考问题,才能找到更好的解决方法,实现真正的创新和突破。


这也是我们今天要聊的「如何不依着惯性做事」。


1 定义


咱们先从定义开始。




  • 惯性:惯性原本是物理学中的一个概念,指的是物体在没有受到外力作用时,静止的物体保持静止,运动的物体保持匀速直线运动的状态。在这里,我们将惯性的概念引申到思维和行为上,表示一种习惯性的思考和行动方式,倾向于维持现状,抵制改变。




  • 思维惯性:思维惯性是指个体在思考问题和决策过程中,容易受到过去经验和认知的影响,导致思维和判断受限,难以接受新观念和变革。这种现象使得人们在面对新旧问题和挑战时,容易陷入固定思维模式,缺乏创新和灵活性。




  • 依着惯性做事:依着惯性做事是指在工作和生活中,人们习惯于沿用过去的方式和方法,对新的观念和变革持保守态度,不愿意主动寻求改进和创新。这种行为方式往往会导致效率低下、缺乏竞争力,甚至无法适应不断变化的环境。




2 惯性的好与坏


辩证的看,依着惯性做事有好有坏。在某些情况下,惯性思维和行为可能有利于保持稳定和效率。然而,在其他情况下,过于依赖惯性可能会限制创新和发展。我们需要客观地评价惯性思维对于特定情境的影响,以便在恰当的时机采取适当的行动。


优点如下:




  • 保持稳定:惯性思维和行为有助于维持现状,确保日常工作的稳定进行。在某些情况下,这可能有助于降低风险和不确定性。




  • 提高效率:对于一些已经经过优化的任务和流程,遵循惯例可能会提高工作效率。在这些情况下,尝试新的方法可能会浪费时间和资源。




  • 简化决策:依赖惯性可以简化决策过程,减少思考和计划的时间。这在面临紧迫的截止日期或资源有限的情况下可能有一定优势。




缺点如下:




  • 限制创新:过度依赖惯性会阻碍创新和改进,导致陈旧的观念和方法得以延续。这可能会让我们错过新的机遇和发展潜力。




  • 降低适应能力:在不断变化的市场和技术环境中,过于依赖惯性可能导致我们在应对新挑战时缺乏灵活性和适应能力。




  • 忽视潜在问题:依赖惯性做事可能让我们忽视潜在的问题和风险。在这些情况下,持续改进和调整可能更加重要。




我们需要在不同的情境下权衡惯性思维和行为的利弊。在某些情况下,遵循惯例可能是合理的选择;而在其他情况下,我们需要挑战惯性,寻求创新和改进。关键在于识别何时应该保持现状,何时应该追求变革。


保持惯性大多数人可以做到,今天我们要聊的是如何打破惯性,不依着惯性做事,因为能够用打破惯性,突破常规的人毕竟是少数。


3 如何不依着惯性做事


在个人的认知中,有一个原理和一个架构能在一定程度上打破惯性。他们是「第一性原理」和「四项行动架构」。


3.1 第一性原理


3.1.1 第一性原理简介


第一性原理是指将问题拆解到最基本的事实或原则,然后从这些基本事实出发来重新构建问题的解决方案。在解决问题和制定决策时,从第一性原理出发,有助于深入挖掘问题的本质,避免受到惯性思维的限制。


3.1.2 如何运用第一性原理


运用第一性原理规避惯性思维可以采用以下的 4 个步骤:




  1. 拆解问题:将问题拆解到最基本的事实或原则,剥离掉惯性思维带来的先入为主的观念和偏见。




  2. 重新构建解决方案:基于拆解后的基本事实,从零开始思考问题的解决方案,避免受到过往经验和传统观念的束缚。




  3. 鼓励创新:以第一性原理为指导,积极探索新的解决方案,提高创新能力和应对变革的能力。




  4. 实事求是:第一性原理要求我们在思考问题时,始终以事实为依据,避免陷入惯性思维的主观判断。




3.1.3 应用实例


以输出质量报告为例,如何应用第一性原理呢?


当我们谈论编写质量报告时,通常会按照固定的模板或流程进行,这是惯性思维的体现。然而,当我们想要打破惯性,提升报告的质量和有效性时,我们可以尝试以下策略:




  1. 反思报告的目标:通常,我们按照惯性写报告,可能因为这是例行公事,或者是因为上级要求。但是,如果我们从第一性原理思考,报告的真正目标是什么?是传达信息,是指导行动,还是促进决策?明确目标后,我们可能需要对报告的结构、内容甚至呈现方式进行改变,以更好地达成目标。




  2. 重新审视数据和信息:在收集和呈现数据时,我们往往依赖于固定的方式和工具,如表格、图表等。但是,这样真的能有效地传达信息吗?如果我们打破惯性,尝试新的数据分析和可视化工具,可能会发现更深入、更直观的洞察,从而更好地支持报告的目标。




  3. 采用迭代的方式编写报告:依照惯性,我们可能会一次性完成报告的编写,然后提交。但是,如果我们采取迭代的方式,先编写一个初稿,然后进行反馈、修订,再反馈、修订,这样可能会花费更多的时间,但最终的报告可能会更准确、更有洞见。




  4. 引入跨领域的视角:我们通常会从自己的专业角度编写报告,但是如果我们引入其他领域的视角,比如用户体验、商业模式等,可能会发现一些意想不到的洞见,这也是打破惯性的一种方式。




3.2 四项行动架构


金教授和莫博涅教授提出的「四项行动架构」是一个用于挑战现有商业模式和行业战略逻辑的工具。其最开始出处是蓝海战略,来自《蓝海战略》一书,它通过改变现有的商业模式来区分与竞争对手的模式,从而创造出新的行业。


3.2.1 四项行动架构简介


四项行动架构主要包含以下四个关键问题,通过这四个问题挑战一个行业的战略逻辑和现行的商业模式:




  1. 删除:在我们的产品、服务或流程中,哪些被视为理所当然的元素其实可以删除?




  2. 减少:哪些元素我们可以大幅度削减,使其低于行业标准?




  3. 提升:哪些元素我们可以大幅度提升,使其高于行业标准?




  4. 创新:哪些从未在我们的产品、服务或流程中出现过的元素值得创新引入?




3.2.2 四项行动架构应用实例


在带技术团队过程中,我们也可以应用「四项行动架构」来打破惯性,以挑战技术团队的做事逻辑和现行的工作模式:



  1. 删除:技术团队中哪些看起来理所当然的要素应该被删除?




  • 可以考虑减少过多的会议和报告,将精力集中在实际的技术开发和创新上。




  • 去除过时的技术和方法,避免拖慢团队的发展速度。




  • 削减在某些环节的过度管理,让团队成员有更多自主权和创新空间。




如取消每周的固定例会,改为根据项目进度和团队需求灵活安排讨论和分享会。



  1. 消减:哪些要素应该被大幅削减到行业标准之下?




  • 减少冗余的代码审查和质量控制流程,以提高团队的工作效率。




  • 精简项目管理流程,减少不必要的文档和审批环节。




如将代码审查流程简化为一次轮流审查,而不是多次审查。



  1. 提升:哪些要素应该大幅提升到行业标准之上?




  • 加大对新技术和方法的投入,以求在行业中领先地位。




  • 提高团队成员的技能培训和成长机会,以便团队更好地适应市场变化。




如为团队成员提供更多的技术培训和参加行业大会的机会,以便他们能跟上技术的最新发展。



  1. 创造:哪些行业中从未提供的要素是应该被创造出来的?




  • 开发独特的技术解决方案,为客户创造更大的价值。




  • 创造新的合作模式,跨部门和跨行业合作,以实现技术的广泛应用。




如开发一款能够实时分析用户行为的工具,以便为客户提供更精准的个性化推荐服务。


通过运用这个四项行动架构,技术团队可以挑战现有的做事逻辑和工作模式,实现价值创新。这将有助于提高团队的竞争力,为公司创造更大的价值。


4 应用在技术团队管理


4.1 应用方法:「解脱」


打破惯性的常用方法我称之为「解脱」,从一个惯性中解脱出来。


解脱看到背后的真实,透过真实,把全部的惯性打破,也就自然而然地走出来了。


一般我们会基于意识到问题、解决问题和透过真实来不依着惯性做事,我们可以遵循以下步骤:




  1. 意识到问题:在日常工作中,关注自己的行为和思维模式。观察是否存在惯性思维,例如对新观念的排斥、抵制变革或过于依赖过去的经验。当我们意识到这些问题时,就迈出了第一步。




  2. 深入了解问题:分析惯性思维的来源,可能来自个人经验、团队文化或行业惯例。了解问题背后的原因有助于我们制定更有效的解决方案。




  3. 寻求解决方案:针对发现的问题,积极寻求创新性和实用性的解决方案。这可能包括改变思维模式、学习新技能、尝试新方法或调整工作流程。




  4. 解脱:在实践新方案的过程中,逐步摆脱惯性思维的束缚。这可能需要时间和努力,但随着不断的尝试和改进,我们会越来越不依赖惯性。




  5. 看到背后的真实:透过表面现象,关注背后的实质和深层次需求。这有助于我们更好地理解问题,找到更有效的解决方案。




  6. 持续改进:在摆脱惯性思维的过程中,保持对问题的关注和反思。不断学习和成长,培养开放、创新和挑战的心态。




通过以上六个步骤,我们可以逐渐摆脱惯性思维,实现真正的自我解脱。在这个过程中,我们需要保持耐心和毅力,不断努力提升自己的认知水平和能力,以达到更好的工作成果。


4.2 应用实践


我们以常见的问题解决方式和团队沟通为例看一下如何应用「解脱」


4.2.1 问题解决方式




  1. 意识到问题:观察团队成员在解决问题时是否习惯于采用已知的方法和经验,而忽视了其他可能的解决方案。




  2. 深入了解问题:可能是因为团队文化倾向于避免冒险,或者团队成员没有足够的技能或知识去尝试新的方法。




  3. 寻求解决方案:可以通过培训和学习,提升团队成员的技能和知识,鼓励他们在解决问题时尝试多种可能的解决方案。




  4. 解脱:在实践中,尝试新的方法和技术,逐步摆脱对过去经验的依赖。




  5. 看到背后的真实:意识到问题解决的本质是创新和改进,而不仅仅是应用已知的方法。




  6. 持续改进:在实践中,不断反思和改进,培养开放和创新的心态。




4.2.2 团队沟通




  1. 意识到问题:注意到团队成员是否在沟通中经常遇到障碍,比如信息传递不畅、沟通效率低下等。




  2. 深入了解问题:可能是因为沟通方式过于传统,比如过度依赖会议,而忽视了其他可能的沟通方式。




  3. 寻求解决方案:可以尝试新的沟通方式,比如异步沟通、立即反馈、跨部门沟通等。




  4. 解脱:在实践中,尝试新的沟通方式,逐步摆脱传统的沟通模式。




  5. 看到背后的真实:理解到沟通的本质是传递和理解信息,而不是遵循某种固定的方式。




  6. 持续改进:在实践中,不断反思和改进沟通方式,提高沟通的效率和效果。




这样的思考和实践,可以应用到技术团队管理的所有方面,包括任务分配、技术选型、项目管理等。关键是要有意识地发现和打破惯性,以创新和改进的心态去面对问题和挑战。


5 小结


小结一下,在上面的文章中我们探讨了惯性思维的利弊,尤其强调了依赖惯性思维可能对创新和发展产生限制。提出两种打破惯性思维的方法:「第一性原理」和「四项行动架构」。第一性原理鼓励我们将问题拆解到最基本的事实或原则,然后从这些基本事实出发重新构建解决方案;而四项行动架构则挑战现有商业模式和行业战略逻辑,包括"删除"、"减少"、"提升"和"创新"四个关键问题。最后详细阐述了如何在技术团队管理中应用这些方法,通过一个被称为「解脱」的过程来

作者:潘锦
来源:juejin.cn/post/7234887157000650810
摆脱惯性思维的束缚。

收起阅读 »

电视剧里的代码真能运行吗?

​大家好,欢迎来到 Crossin的编程教室 ! 前几天,后台老有小伙伴留言“爱心代码”。这不是Crossin很早之前发过的内容嘛,怎么最近突然又被人翻出来了?后来才知道 ,原来是一部有关程序员的青春偶像剧《点燃我,温暖你》在热播,而剧中有一段关于期中考试要用...
继续阅读 »

​大家好,欢迎来到 Crossin的编程教室 !


前几天,后台老有小伙伴留言“爱心代码”。这不是Crossin很早之前发过的内容嘛,怎么最近突然又被人翻出来了?后来才知道


,原来是一部有关程序员的青春偶像剧《点燃我,温暖你》在热播,而剧中有一段关于期中考试要用程序画一个爱心的桥段。


于是出于好奇,Crossin就去看了这一集(第5集,不用谢)。这一看不要紧,差点把刚吃的鸡腿给喷出来--槽点实在太多了!


忍不住做了个欢乐吐槽向的代码解读视频,在某平台上被顶到了20个w的浏览,也算蹭了一波人家电视剧的热度吧……


下面是图文版,给大家分析下剧中出现的“爱心”代码,并且来复刻一下最后男主完成的酷炫跳动爱心。


剧中代码赏析


1. 首先是路人同学的代码:



虽然剧中说是“C语言期中考试”,但这位同学的代码名叫 draw2.py,一个典型的 Python 文件,再结合截图中的 pen.forward、pen.setpos 等方法来看,应该是用 turtle 海龟作图库来画爱心。那效果通常是这样的:


import turtle as t
t.color('red')
t.setheading(50)
t.begin_fill()
t.circle(-100, 170)
t.circle(-300, 40)
t.right(38)
t.circle(-300, 40)
t.circle(-100, 170)
t.end_fill()
t.done()



而不是剧中那个命令行下用1组成的不规则的图形。


2. 然后是课代表向路人同学展示的优秀代码:



及所谓的效果:



这确实是C语言代码了,但文件依然是以 .py 为后缀,并且 include 前面没有加上 #,这显然是没法运行的。


里面的内容是可以画出爱心的,用是这个爱心曲线公式:



然后遍历一个15*17的方阵,计算每个坐标是在曲线内还是曲线外,在内部就输出#或*,外部就是-


用python改写一下是这样的:


for y in range(9, -6, -1):
for x in range(-8, 9):
print('*##*'[(x+10)%4] if (x*x+y*y-25)**3 < 25*x*x*y*y*y else '-', end=' ')
print()

​​​​​​效果:



稍微改一下输出,还能做出前面那个全是1的效果:


for y in range(9, -6, -1):
for x in range(-8, 9):
print('1' if (x*x+y*y-25)**3 < 25*x*x*y*y*y else ' ', end=' ')
print()


但跟剧中所谓的效果相去甚远。


3. 最后是主角狂拽酷炫D炸天的跳动爱心:



代码有两个片段:




但这两个片段也不C语言,而是C++,且两段并不是同一个程序,用的方法也完全不一样。


第一段代码跟前面一种思路差不多,只不过没有直接用一条曲线,而是上半部用两个圆形,下半部用两条直线,围出一个爱心。



改写成 Python 代码:


size = 10
for x in range(size):
for y in range(4*size+1):
dist1 = ((x-size)**2 + (y-size)**2) ** 0.5
dist2 = ((x-size)**2 + (y-3*size)**2) ** 0.5
if dist1 < size + 0.5 or dist2 < size + 0.5:
print('V', end=' ')
else:
print(' ', end=' ')
print()

for x in range(1, 2*size):
for y in range(x):
print(' ', end=' ')
for y in range(4*size+1-2*x):
print('V', end=' ')
print()

运行效果:



第二段代码用的是基于极坐标的爱心曲线,是遍历角度来计算点的位置。公式是:



计算出不同角度对应的点坐标,然后把它们连起来,就是一个爱心。


from math import pi, sin, cos
import matplotlib.pyplot as plt
no_pieces = 100
dt = 2*pi/no_pieces
t = 0
vx = []
vy = []
while t <= 2*pi:
vx.append(16*sin(t)**3)
vy.append(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))
t += dt
plt.plot(vx, vy)
plt.show()

效果:



代码中循环时用到的2π是为了保证曲线长度足够绕一个圈,但其实长一点也无所谓,即使 π=100 也不影响显示效果,只是相当于同一条曲线画了很多遍。所以剧中代码里写下35位小数的π,还被女主用纸笔一字不落地抄写下来,实在是让程序员无法理解的迷惑行为。



但不管写再多位的π,上述两段代码都和最终那个跳动的效果差了五百只羊了个羊。


跳动爱心实现


作为一个总是在写一些没什么乱用的代码的编程博主,Crossin当然也不会放过这个机会,下面就来挑战一下用 Python 实现最终的那个效果。


1. 想要绘制动态的效果,必定要借助一些库的帮助,不然代码量肯定会让你感动得想哭。这里我们将使用之前 羊了个羊游戏 里用过的 pgzero 库。然后结合最后那个极坐标爱心曲线代码,先绘制出曲线上离散的点。


import pgzrun
from math import pi, sin, cos

no_p = 100
dt = 2*3/no_p
t = 0
x = []
y = []
while t <= 2*3:
x.append(16*sin(t)**3)
y.append(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t))
t += dt

def draw():
screen.clear()
for i in range(len(x)):
screen.draw.filled_rect(Rect((x[i]*10+400, -y[i]*10+300), (4, 4)), 'pink')

pgzrun.go()


2. 把点的数量增加,同时沿着原点到每个点的径向加一个随机数,并且这个随机数是按照正态分布来的(半个正态分布),大概率分布在曲线上,向曲线内部递减。这样,就得到这样一个随机分布的爱心效果。


...
no_p = 20000
...
while t <= 2*pi:
l = 10 - abs(random.gauss(10, 2) - 10)
x.append(l*16*sin(t)**3)
y.append(l*(13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)))
t += dt
...


3. 下面就是让点动起来,这步是关键,也有一点点复杂。为了方便对于每个点进行控制,这里将每个点自定义成了一个Particle类的实例。


从原理上来说,就是给每个点加一个缩放系数,这个系数是根据时间变化的正弦函数,看起来就会像呼吸的节律一样。


class Particle():
def __init__(self, pos, size, f):
self.pos = pos
self.pos0 = pos
self.size = size
self.f = f

def draw(self):
screen.draw.filled_rect(Rect((10*self.f*self.pos[0] + 400, -10*self.f*self.pos[1] + 300), self.size), 'hot pink')

def update(self, t):
df = 1 + (2 - 1.5) * sin(t * 3) / 8
self.pos = self.pos0[0] * df, self.pos0[1] * df

...

t = 0
def draw():
screen.clear()
for p in particles:
p.draw()

def update(dt):
global t
t += dt
for p in particles:
p.update(t)


4. 剧中爱心跳动时,靠中间的点波动的幅度更大,有一种扩张的效果。所以再根据每个点距离原点的远近,再加上一个系数,离得越近,系数越大。


class Particle():
...
def update(self, t):
df = 1 + (2 - 1.5 * self.f) * sin(t * 3) / 8
self.pos = self.pos0[0] * df, self.pos0[1] * df


5. 最后再用同样的方法画一个更大一点的爱心,这个爱心不需要跳动,只要每一帧随机绘制就可以了。


def draw():
...
t =
0
while t < 2*pi:
f = random.gauss(1.1, 0.1)
x = 16*sin(t)**3
y = 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
size = (random.uniform(0.5,2.5), random.uniform(0.5,2.5))
screen.draw.filled_rect(Rect((10*f*x + 400, -10*f*y + 300), size), 'hot pink')
t += dt * 3


合在一起,搞定!



总结一下,就是在原本的基础爱心曲线上加上一个正态分布的随机量、一个随时间变化的正弦函数和一个跟距离成反比的系数,外面再套一层更大的随机爱心,就得到类似剧中的跳动爱心效果。


但话说回来,真有人会在考场上这么干吗?


除非真的是超级大学霸,不然就是食堂伙食太好--


吃太饱撑的……



代码已开源:python666.cn/c/9


如二创发布请注明代码来源:Crossin的编程教室



作者:Crossin先生
来源:juejin.cn/post/7168388057631031332
收起阅读 »

另类年终总结:在煤老板开的软件公司实习是怎样一种体验?

某个编剧曾经说过:“怀念煤老板,他们从不干预我们创作,除了要求找女演员外,没有别的要求。”,现在的我毕业后正式工作快半年了,手上的活越来越多,负责的事项越来越多越来越杂,偶尔夜深人静走在回家的路上,也怀念当时在煤老板旗下的软件公司实习时无忧无虑的快乐生活,谨以...
继续阅读 »

某个编剧曾经说过:“怀念煤老板,他们从不干预我们创作,除了要求找女演员外,没有别的要求。”,现在的我毕业后正式工作快半年了,手上的活越来越多,负责的事项越来越多越来越杂,偶尔夜深人静走在回家的路上,也怀念当时在煤老板旗下的软件公司实习时无忧无虑的快乐生活,谨以此文纪念一下当时的时光。


煤老板还会开软件公司?


是的,煤老板家大业大,除了名下有几座矿之外,还有好多处农场、餐厅、物流等产业,可以说涉足了多个产业。当然最赚钱的主业还是矿业,听坊间传闻说,只要矿一开,钱就是哗哗的流进来。那么这个软件公司主要是做什么的呢,一小部分是给矿业服务的,负责矿山的相关人员使用记录展示每天矿上的相关数据,比如每天运输车辆的流转、每日矿上人力的核算。大部分的主力主要用于实现老板的雄伟理想,通过一个超级APP,搞定衣食住行,具体的业务如下,可以说是相当红火的。



煤老板的软件公司是怎么招聘的


这么有特色的一家公司,我是如何了解到并加入的呢。这还要从老板如何创立这家公司说起,老板在大学进修MBA的时候,认识了大学里计算机学院的几名优秀学子,然后对他们侃侃而谈自己的理念和对未来的设想,随后老板大笔一挥,我开家公司,咱们一起创业吧,钱我出,你们负责出技术。然后这几个计算机学院的同学,就携带着技术入股成为了这家软件公司的一员。随着老板的设想越来越丰富,最初进去的技术骨干也在不停的招兵买马,当时还是流行在QQ空间转发招聘信息。正是在茫茫动态中,多看了招聘信息一眼,使得该公司深深留在我的印象当中。后来我投递的时候,也是大学同学正在里面实习,于是简历直达主管。


面试都问了些啥


由于公司还处于初创阶段,所以没有那么复杂的一面二面三面HR面,一上来就是技术主管们来一个3对1面,开头聊聊大家都是校友,甚至可能还是同一个导师下的师兄弟,所以面试相对来说就没有那么难,问一问大学里写过的大作业项目,聊一聊之前实习做的东西,问一问熟悉的八股文,比如数据库事务,Spring等等,最后再关切的问一下实习时间,然后就送客等HR通知了。


工作都需要干啥


正如第一张图所示,公司的产品分成了几个模块,麻雀虽小,五脏俱全,公司里后端、前端、移动端、测试一应具全。我参与的正是公司智慧餐饮行业线的后端开发,俗称Java CRUD boy。由于公司里一众高薪招揽过来的开发,整体采用的开发理念还是很先进的。会使用sprint开发流程,每周一个迭代,就是发版上线还是不够devops,需要每周五技术leader自己启动各个脚本进行发版,将最新的代码启动到阿里云服务机器上。 虽然用户的体量不是很大,但是仍然包含Spring Cloud分布式框架、分库分表、Redis分布式锁、Elastic Search搜索框架、DTS消息传输复制框架等“高新科技”。每周伊始,会先进行需求评审,评估一下开发需要的工作量,随后就根据事先制定的节奏进行有条不紊的开发、测试、验收、上线。虽然工作难度不高,但是我在这家公司第一次亲身参与了产品迭代的全流程,为以后的实习、找工作都添加了一些工作经验。


因为是实习嘛,所以基本上都是踩点上班、准时下班。不过偶尔也存在老板一拍脑袋,说我们要两周造一个电子商城的情况,那个时候可真是加班加点,披星戴月带月的把项目的简易版本给完成、上线了。但是比较遗憾的是,后面也没有能大范围投入使用。


比如下面的自助借伞机,就是前司的一项业务,多少也是帮助了一些同学免于淋雨。



画重点,福利究竟有多好


首先公司的办公地点位于南京市中心,与新街口德基隔基相望。



每天发价值88元的内部币,用于在楼下老板开的餐厅里点餐,工作套餐有荤有素有汤有水果,可以说是非常的上流了。



如果不想吃工作套餐,还可以一起聚众点餐,一流的淮扬菜式,可以说非常爽了。 听说在点餐系统刚上线还没有内部币时,点餐是通过白名单的方式,不用付钱随便点。可惜我来晚了,没有体验到这么个好时候。



工作也标配imac一整套,虽然不好带走移动办公,但是用起来依然逼格满满。



熟悉的健身房福利当然少不了,而且还有波光粼粼的大泳池,后悔没有利用当时的机会多去几次学会游泳了。



除了这些基础福利之外,老板给的薪资比肩BAT大厂,甚至可能比他们还高一丢丢,在南京可以生活的相当滋润了。


既然说的这么好,那么为啥没有留下来呢。


唯一的问题当然是因为公司本身尚未盈利,所有这一切都依赖老板一个人的激情投入,假如老板这边出了啥问题,那整个公司也就将皮之不存,毛将焉附了。用软件领域的话来说,就是整个系统存在单点故障。所以尽管当时的各种福利很好,也选择离开找个更大的厂子先进去锻炼锻炼。


最后希望前老板矿上的生意越来越好,哪天我在外面卷不动了,还能收留我一下。


作者:日暮与星辰之间
链接:https://juejin.cn/post/7174065718386753543
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

雨下不下,花都结果;风吹不吹,我都是我。

最近不怎么忙了,想来写写文章,但突然也不知道从哪里开始聊,感情?工作?还是这稀里糊涂的生活。 2023年大年初六,我结束了和女朋友长达四年零七个月的爱情长跑,但很遗憾不是进入婚姻殿堂而是分手。 从18岁到23岁几乎已经占了我青春为数不多最美好的几年。但好在我熬...
继续阅读 »

最近不怎么忙了,想来写写文章,但突然也不知道从哪里开始聊,感情?工作?还是这稀里糊涂的生活。


2023年大年初六,我结束了和女朋友长达四年零七个月的爱情长跑,但很遗憾不是进入婚姻殿堂而是分手。
从18岁到23岁几乎已经占了我青春为数不多最美好的几年。但好在我熬过来了,最痛苦的那段已经过去了,我独自一人趴在地板上哭的泪水和口水混在一滩也没人看见的那段日子已经过去了,接下来是漫长而偶尔刺痛的恢复不知道要几年。


微信图片_20230330154857.jpg

“男人不经历分手永远不会成长”这句话忘了是谁说的了。以前觉得纯扯蛋的成不成长跟分手有毛关系,现在我认了,心里性格的变化自己都肉眼可见。越来越多的人生道理从几年前的不屑一顾到现在发生在自己身上才认同。可能成长就是这个样子?毕竟谁都是第一次做人,也不知道成长了该因为变成熟了而高兴还是因为离懵懂幼稚的青春越来越远而难过。


年后回来项目就开始忙,压力骤增。入职到现在八个月,平均一个月加班一次(周末)但过完年回来开始忙基本天天晚上九点十点走,其实作为程序员来说这种程度也还好,但跟年前相比确实忙了很多。年前基本是到点下班就走,但也好,忙一点,让自己不那么闲就不会胡思乱想那些乱七八糟的事情。不会那么伤感也不会那么焦虑。而且拿这个工资心里也没那么愧疚,要不天天摸鱼发工资我都想给老板退回去一点。
不过分手后也真的能攒下钱来了,就很神奇真的很神奇,两个月攒了一万二了。还借了朋友2000。以前每个月都剩不下钱来。今年回家终于不用听爸妈再说那句“攒攒钱吧”了


微信图片_20230330152333.jpg
微信图片_20230330150759.jpg

好在还有街舞、吉他、健身、养猫。这些事让我觉得不那么无聊,劳累的工作之余,周末还是要找点事情做。
不能让自己闲下来,闲下来就忍不住开始emo。


其实来南京快一年了,很去那些景点多看看,鸡鸣寺、玄武湖、夫子庙、还有逼哥的1701live house(偷偷告诉你我是因为听了很多年逼哥才选择来南京生活) 拍拍照什么的。但碍于一个人,没有小伙伴一起。觉得怪无聊的,就也放弃了,但我会改变自己的,接下来的日子我也会一个人吃火锅,一个人看电影,一个人去旅游,一个人逛小吃街,一个人拍照打卡。


其实也不是没有朋友,南京也有几个小伙伴小兄弟,认识好些年,关系也都很好,但我们的热衷不在一个频道,他们除了敲代码就是吃鸡、CSGO、联盟、元神。而我除了联盟偶尔还和他们打一打以外,基本也不怎么玩游戏了,可能是岁数大了,游戏瘾没有前几年那么狠了。


虽然现在也有很多爱好但好像也都只是单纯的打发时间,并没有哪件事不做就难受的不行的感觉,换句话说现在好像多少有点无欲无求?


微信图片_20230330152914.jpg

上周去报了江宁一个摩托车驾校,准备考个D证买个摩托车玩一玩(目前计划先买个二手GSX或者春风骑个一两年,没把自己撞死的话再换个najia或者450),但工作的地方在玄武区好像不让骑。那就只能出去玩骑啦,但也祈祷我能顺利考过,可能是我太笨了去年在北京练摩托车,油离配合老弄不好,动不动就熄火,让人笑话,去练了两次就不练了,希望这次能认真一点。


微信图片_20230330154408.jpg

其实也不是只顾着玩了,工作这方面的也在时不时的计划以及改变计划,因为毕竟现在一个岗位放出去一万个简历等着的行情确实不友好。所以现在的行情基本就是已经不再缺少初级、初中级前端。中级少了很多。那么想要在这行继续混下去就只有一条路那就是使劲的打怪刷经验,进化为高级前端。


由于前三年都是vuer,最近半年才转的reacter。所以react写起来还是没有vue那么得心应手,但是我总感觉react才是前端的未来(狗头保命)如果接下来的计划中准备好好恶补一下技术的话,应该就是以react为主vue为辅了。


去年立的flag依旧没变:在南京待1-2年狠补技术去上海冲刺,目标还是带10+人数的前端leader,天天熬夜加班的那种。


作者:我看你像个promise
来源:juejin.cn/post/7216223889487478840
收起阅读 »

疫情过后的这个春招,真的会回暖吗?

哈喽大家好啊,我是Hydra。 今天是正月初七,不知道大家有没有复工,反正我今天已经坐在办公室里开始码字了。 这个春节假期相信大家过的都不错,可以看到今年无论是回家探亲、还是外出旅游的人数,都比疫情放开前两年有了爆发式的增长。假期我躺在被窝里刷抖音,每当刷到哪...
继续阅读 »

哈喽大家好啊,我是Hydra。


今天是正月初七,不知道大家有没有复工,反正我今天已经坐在办公室里开始码字了。


这个春节假期相信大家过的都不错,可以看到今年无论是回家探亲、还是外出旅游的人数,都比疫情放开前两年有了爆发式的增长。假期我躺在被窝里刷抖音,每当刷到哪个景点人满为患到走不动路的时候,都觉得自己宅在家里哪也不去真的是太对了。


好了回归正题,很多小伙伴们非常关注的一个问题,在经历了疫情放开、大规模感染的相对平稳后,这一届春招真的会回暖吗?


在聊春招之前,我觉得还是有必要再来科普一下春招的时间线。



  • 12月,一般只有少量的企业开始进行春招提前批预热,或是进行秋招的补录

  • 1月,部分公司开启春招正式批

  • 3-4月,才是春招的高峰期,大部分公司在这个时间段陆续开启春招

  • 5月,大部分的企业会结束招聘


为了了解今年的形势,我也逛了不少论坛,了解到有一些大厂在去年12月底的时候,就已经开始了秋招的补录,不少人收到了补录的通知。



通过整体氛围来看,今年春招大概率会比去年进行一波升温,在岗位的可选择性上,大伙可能也有更多的大厂岗位可以进行一波冲击。尽管如此我还是劝大家要尽早准备,因为虽然说是春招,但并不是真正到了春天才真正开始,并且春招的难度比秋招可能还要高上不少。


首先,相对于秋招来说,春招的岗位会少很多,因为春招更多是对于秋招的补充,是一个查漏补缺的过程,对秋招中没有招满、或者有新岗位出现的情况下,才会在春招中放出该岗位。少量的岗位,需要你能更好的把握信息资源,迅速出击。


其次,你可能拥有更多的竞争对手,考研、考公失利的同学如果不选择二战,将会大量涌入春招,而对于秋招找到的工作不满意想要跳槽的同学,有笔试面试经验、工作经历,将会成为你春招路上麻烦的对手。


所以说到底,大家还是不要过于盲目乐观,扎扎实实的准备肯定是不能少的,毕竟春招的难度摆在这里。在看到大规模补录的同时,我们也不能否认背后的裁员依旧存在。有可能你现在看到的hc,就是在不久前刚刚通过裁员所释放的。


另外,我还是得说点泼冷水的话,虽然看上去形势一片大好,岗位放开了很多,但不代表薪资待遇还是和以前一样的,从一个帖子中可以看到,即便是在杭州和成都的中厂里,降薪也是存在的。



因为说到底,疫情并不是经济下行的根本原因,想要寄希望于疫情放开后经济能够快速复苏基本是不可能的。


国内的互联网公司,已经过了那个爆发式发展的黄金时期,甚至说一句互联网公司规模已经能隐隐约约窥到顶峰也不过分。美联储加息、中概股暴跌、企业融资困难…面对这些困难的环境,即使疫情放开也于事无补。


尽管环境如此困难,我仍然认为互联网行业是小镇做题家们快速实现社会价值、积累财富的黄金职业。看看大厂里十几万、几十万的年终奖,并不是每个行业都能做到的。


最后还是建议大家,积极准备,不管这个春招是否回暖,还是要做到尽量不留遗憾,不要给自己找借口,再寄希望于下一个秋招。


2023年,我们一起加油!


作者:码农参上
链接:https://juejin.cn/post/7193885908129546277
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

浅谈理论:为什么图论是当今各行各业必备的知识?

引子 “若无必要,勿增实体”--奥卡姆剃刀原理 图论(Graph Theory)是被大众严重低估的数学基础理论。它不是研究图像、图片、图表之类的理论,而是一个抽象而简单的数学理论。图论中的图(Graph)是一个抽象概念,非常类似于关系网络(Relation...
继续阅读 »

引子



“若无必要,勿增实体”--奥卡姆剃刀原理



图论(Graph Theory)是被大众严重低估的数学基础理论。它不是研究图像、图片、图表之类的理论,而是一个抽象而简单的数学理论。图论中的(Graph)是一个抽象概念,非常类似于关系网络(Relationship Network),有对应的节点(Node)或顶点(Vertext),节点之间又有关联关系或(Edge)。图论的概念非常简单,就是图、节点、边。本篇文章将简单的介绍一下图论的基础概念,以及图论在真实世界中的应用。(注意!本文不是科学论文,所以不会有枯燥的数学公式,请放心食用)


graph


图论简述


在图论中,有三个重要的概念:



  1. 节点(Node):可以理解为某个实体,例如关系网络中的张三、李四、王五;

  2. (Edge):可以理解为实体间的关系,例如,张三和李四是夫妻,王五是他们儿子;

  3. (Graph):可以理解为所有节点、边的集合,例如张三、李四、王五组成的幸福一家。


从上面的三个基本概念,我们可以推断出节点之间的关系,例如李四的大哥李一,就是王五的舅舅,王五也是他的侄子。


graph-basic-concepts


当然,图论的应用远不止于此,在我们真实世界中,图论的应用非常之广,以至于普通大众都难以察觉它的存在。


下面,我们将介绍一下图论在技术领域的常见应用。


搜索引擎


谷歌、百度、必应,这些都是我们日常使用的搜索引擎(Search Engine)。如果我们需要了解什么知识,一般会打开搜索引擎,输入关键词(Keyword),然后搜索引擎就会返回相关的结果,而且还通常极为精确。其实,搜索引擎技术背后的核心理论就是图论。


咱们可以将某个网站的每个网页(Web Page)想象成一个节点,页面上超链接(Hyperlink)就是对应的,而网站(Site)就是,其包含所有的网页(节点)以及网页关系(边),例如下图。


webpage-graph


而搜索引擎为什么能魔法般的将搜索结果返回给用户,就是巧妙应用了 PageRank 的算法,将节点关系用线性代数表示出来,然后计算与关键词最相似的节点或网页,最后实现搜索引擎的基础搜索功能。对 PageRank 算法感兴趣的朋友,可以查看相应的资料,网上很多,就不赘述了。


自然语言


自然语言(Natural Language)其实就是中文、英文、日文等自然人对话所使用的语言。例如,张三给李四说 “我爱你”,或者你问朋友 “上周我在市区发现了个超棒的咖啡馆,这周末有空一起去么?”,甚至本篇文章的所有文字,都是自然语言。


那么,图论跟自然语言有什么关系?其实,如果我们仔细思考下,会发现中文有主语、谓语、宾语三种词性,例如 “我爱你” 这样简单的主谓宾句子。而实际上,这个句子可以由图来表示,其中主语(“我”)和宾语(“你”)是节点谓语(“爱”)就是,即表示主语对宾语的关系。当然,对于复杂的句子,关系会更复杂一些,对应的图也就更复杂,但总归可以用图、节点、边来表示各个词语之间的关系。


下图表示的是 "Susan might not believe you" 这个句子的图,它是一个树状结构(Tree Structure)。而(Tree)也是一种图,它是一种特殊结构。


natural-language-graph


现在很火的翻译软件、语音识别、聊天机器等,背后的自然语言处理(Natural Language Processing)技术都来自于图论。


思考题:程序代码(例如 Python)可以用图论处理么?


人工智能


最近一段时间,人工智能(Artificial Intelligence)技术大红大紫,其中核心技术来自于深度神经网络(Deep Neural Network),即神经网络(Neural Network)的一种特殊形式。而神经网络的概念,简单可以理解为由神经元组成的大脑神经网络类似的结构。大脑中些神经元的电信号会通过神经网络传递到其他神经元,从而产生意识、想法、认知等抽象概念,而这背后的逻辑非常简单,就是电信号触发,只不过数量极为庞大。而如今深度神经网络的成功,也受益于计算机上搭建的大规模神经网络运算系统。全球著名人工智能公司 OpenAI 的 GPT-3 语言模型,由 1750 亿个参数组成,这已经接近成人大脑神经元数量级了。


万物皆图论


图论的概念非常简单,就像物理世界中的原子、分子、化学键这样的抽象概念,很容易在数学上进行处理。因此,大到全球互联网,小到蛋白质分子结构,图论在真实世界中的绝大部分领域都可以广泛得到应用。因此,学习好图论,对我们在工作生活学习中解决真实问题有非常大的帮助。例如,最优时间安排问题,就可以用图论来建模;而白领们常用的透视表,同样可以用图论中的二部图来处理。最近,笔者也在试着将图论应用到智能网页信息提取技术。学习图论有助于帮助我们更好的理解这个世界,从而可以更加合理的处理好我们自己的生活和工作。


社区


如果您对笔者的文章感兴趣,可以加笔者微信 tikazyq1 并注明 "码之道",笔者会将你拉入 "码之道" 交流群。


作者:MarvinZhang
链接:https://juejin.cn/post/7189897092238671928
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

裸辞回家遇见了她

22年,连续跳了二三家公司,辗转七八个城市。 可能还是太年轻,工作上特别急躁,加班太多会觉得太累,没事情做又觉得无聊烦躁。去年年末回老家过年因为一些巧合遇见了她。年初就润,回到了老家。当时因为苏州疫情就没回去,便开始在老家这边的坎坷之旅。 年初千里见网友 说起...
继续阅读 »

22年,连续跳了二三家公司,辗转七八个城市。

可能还是太年轻,工作上特别急躁,加班太多会觉得太累,没事情做又觉得无聊烦躁。去年年末回老家过年因为一些巧合遇见了她。年初就润,回到了老家。当时因为苏州疫情就没回去,便开始在老家这边的坎坷之旅。


年初千里见网友


说起来也是缘分,去年年末的时候,有个人加了我微信,当时也是一头雾水,还以为是传销或者什么。一看名字微信名:“xxx”,也不像是啊,当时没放在心上就随便聊了聊,也没咋放心上。后来我朋友告诉我她推的(因为觉得我挺清秀人品也还行),就把她推给了我。但是我这人自卑又社恐,加上她在我老家那边,就想反正自己好多年也不想回老家那个地方,现在即使网恋也是耽误人家,后面就没咋搭理她。

到过年的时候,我和我妈匆匆忙忙回到了老家,当时家里宅基地刚好重建装修完,背了一屁股的债务,当时很多人劝我不要建房子在老家,有钱直接在省会那边付个首付也比老家强,可我一直觉得这个房子是我奶奶心心念念了一辈子的事情。转念一想一辈人有一辈人的使命,最多就是自己再多奋斗几年就没多去计较。


后面过年期间,我和她某明奇妙的聊起来了,可能是我觉得离她近了,然后就有一丝丝念想吧,当时因为一些特殊原因,过年的时她也在上班。那几天基本每天从早聊到晚,稍微有点暧昧,之后还一起玩游戏,玩了几局,我也很菜没能赢,就这样算是更深一步了解她吧,当时也不好断定她是怎样的人。就觉得她很温柔、活泼、可爱、直爽,后面想了想好像很久好久没用遇到这样的女孩子了吧,前几年也遇到不少女孩子都没有这种感觉。是不是自己单身太久产生的幻觉。经过一段时间的发酵,我向我朋友打听了下她。


我朋友说人品没问题,就是有点矮,我想着女孩子没啥影响,反正我也矮。就决定去见见她,她也没拒绝我。缘分到了如果不抓住的话也不知道下一次是什么时候。其实那时候我们还只是看过照片,彼此感觉都是那种一般人,到了这个年纪(毕业二三年)其实都不是太在乎颜值,只要不是丑得不能见人(颜值好的话肯定是加分项)。虽然我们都在老家,但她兼职那边还是有点远,去那边需要转很多车。但也没什么,我义无反顾去见了他,也许这就是大多数人奔现的样子吧(但我心里是比较排斥这个词的)。


那天早上一大早我就急冲冲起来了,洗个了头,吹了个自认为很帅的发型,戴上小围巾就出发了(那晚上其实下了很大的雪)。因为老家比较远我都比较害怕那边没有班车,因为当时才大年初三,我们那边的习俗是过年几天不跑车,跑车一年的财运都会受影响。到路上果然没让我失望,路上一辆车都没有,也是运气好,我前几天刚好听到我表姐说要去城里,我就问了问,果真就今天去(就觉得很巧合,跟剧本一样),他们把我送到高铁站,道了个谢,就跑去赶了最早一班的高铁。


怀着忐忑的心情出发了,那时差不多路上就是这个样子吧(手机里视频传不上去)。


image.png
在路上的时候她一直强调说自己这样不行,那样不可以怕我嫌弃,我当时倒是不自卑,直接对人家就是一顿安慰。到了省会那边,又辗转几个地方去买花,那时过年基本没什么花店开门。转了几个大的花店市场才发现一家花店,订了一束不大不小的花, 又去超市买了个玩偶和巧克力,放了几颗德芙在衣服包里面(小心机)。前前后后忙完这些已经下午一点了,对比下行程,可能有点赶不上车了。匆忙坐了班车到了她上班那个市区 ,本以为一切都会很顺利,结果到了那边转车的班车停运了,当时其实是迷茫的。不知道要不要住宿等到第二天。


那时我想起本来就是一腔热情才跑过来的,也许过了那个劲就不会有那个动力去面对了,心里默想:“所爱隔山海,山海皆可平”。心疼的打了个车花了差不多五百块(大冤种过年被宰)。就这样踏上最后一段路程。路上见到不一样的山峰,矮而尖而且很密集,那个司机说天眼好像就是建筑在这边吧,路上我就一直想:即使人家见了我嫌弃我这段旅行也算很划算的吧。最终晚上七点到达了目的地,下车了还是有点紧张,我害怕她不喜欢我这样的,毕竟了解不多,也许就是你一厢情愿的认为这就是缘分和命运的安排。


终将相遇


最后一刻,我都还在想,她会不会看到我就跑了,然后不来见我。但应该不至于此,毕竟我相信我的老朋友(七年死党),也相信她的人品。我看见一个人从前面走来我还以为是她,都准备迎上去了,走近一看咋是个阿姨(吓我一跳还以为被骗了),等我反应过来那个阿姨已经走远了。然后一个声音从我对面传来:“我在这,我在这边”,我转头过去惊艳到我了,这这这是本人吗?深邃的眼眸,樱桃小嘴,不是很尖的脸蛋,短发到肩,微风吹起刘海飘啊飘,像飘进了我的心里,头后发带将一些头发束起,然后发带结成蝴蝶结,一身长白棉袄配白皮鞋,显得俏皮又惊艳。我还来不及细想,我就迎了过去,提前想好的台词都没有说出来,倒是显得有一些尴尬。


当时自卑感油然而生,自己觉得配不上她。寒暄了几句我将花递给她,没有惊喜的表情,只有一句:我都没给你准备什么礼物,你这样我会很不好意思的,她这样说我该是开心还是难过呢?我心里觉得大概要凉了。就怕一句:你是个好人,我们就这样吧。其实当时我们也没说啥喜欢啥的就是有点暧昧。所幸没有发生她嫌弃我的事情,我们延着路边一路闲聊下去,一开始我还有点拘谨,毕竟常年当程序员社交能力不是很行。


慢慢的,我们说了很多很多,她请我吃了个饭(之前说过请她没倔过她),一路走着走着,说着大学的事,小时候的事,工作的事,一时间显得我们不是陌生人,而是多年未见的好友,一下子就觉得很轻松很幸福,反正我已经深深的迷上她的人美心善。她也说了离家老远跑来这边上班的原因(不方便透露)。走着走着我发现她的手有点红,就说道:我还给你准备了个惊喜,把手伸进我衣服包里吧,我在里面放了几颗糖,上班那么辛苦有点糖就不苦了。后面我有点唐突抓住她的手,我说给她暖一下太冰了。她说放我包里就暖和了,我看她脸都红了,也觉得有点唐突了。后面发现还是太冰了,没多想就用牵住了她,嘿嘿!她直接害羞的低下了头。一下子幸福感就涌上来了。


后面很晚的时候要分别了,送他回了宿舍,并把包里的玩偶以及剩下的零食一并给了她。她说第二天来送我,我便回了酒店。


第二天我们俩随便吃了点东西(依旧很害羞没敢坐我对面),她就送我上车了,临走时她塞了一个东西在我手里,打开一看昨天的发带,抬头她已走远她小声说了一句:我们有缘再见。也许是想着我在苏州她在遵义太远了吧,可能就是最后一面了,有点伤心也没多问。


微信图片_20220831164746.jpg


感情生活波折


回去的第二天我便回到苏州那边,但是很久之前就谋划着辞职,一方面是觉得在这边技术得不到提升,一方面是觉得想换个环境吧,毕竟这边太闲了让我找不到价值。可能年轻急躁当时没多想就直接裸辞了,期间我对她说:我辞职后来看她,她有点不愿意(说感觉我们的感情有点空中楼阁),可能觉得见一面不足以确定什么吧,我可能觉得给不了他幸福也舍不得割舍吧。


后面裸辞后,蹭着苏州没有因为疫情封禁,直接带了二件衣服就回了老家。(具体细节不说了)


第二次见她,可能觉得有点陌生吧,不过慢慢的就过了那个尴尬期,我们一起去逛公园、去逛街、彼此送小礼物、一起吃饭,即使现在回来依旧觉得很美好。但是我依旧没有表白,可能我觉得这些事顺理成章的不需要。一次巧合我去了她家帮她做家务、洗头、做饭。哈哈哈,像一个家庭主男一样。可能就是那次她才真的喜欢上我的吧。


有一次见面之后因为一些很严重的事我们吵架了,本来以为就要在此结束了。后来我又去见她了,我觉得女孩子有什么顾虑很正常的,也许是不够喜欢啥的,准备最后见一面吧,但见面之后准备好的说辞一句没说,还是像原来那样相处,一下子心里就有点矛盾,后面敞开心扉说开了,心里纠结的问题也就解决了。慢慢的我们也彼此接受了,从一见钟情到建立关系,真的经历很多东西。不管是少了那一段经历我和她都不会有以后。我的果决她的温柔都是缺一不可的。


后续


她考研上岸,我离开苏州在贵阳上班。我们依旧还有很长一段路要走。后续把工作篇发出来(干web前端的)


作者:阿苟
链接:https://juejin.cn/post/7137973046563831838
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »