悦兴
也许,将会是最好用的博客管理系统
大家好,我是杨成功。
前几天有幸看了尤雨溪尤大的直播,他们谈到一个话题,是说目前前端人,或者是整个程序员群体如何做副业?近年来互联网行情下降,好多人都在思考要不要搞个副业来抵御风险。
这不又来事了,这两天又爆了互联网大裁员。继阿里“向社会输送人才”之后,京东又搞了个“毕业礼”,整的小伙伴们人心惶惶。副业的关注度又一波升级。
那今天我们就来聊聊,程序员做副业这件事。
我理解今天的程序员为什么都有做副业的想法,原因不外乎两个方面。
一是互联网的爆发期已过,以前程序员体量小,会点基本技能就可以不愁工作,薪资也非常可观,但现在随着大量人员涌入,各种名校高学历的加入内卷,我们突然发现没什么竞争优势了。
二是互联网开发圈这种畸形的工作氛围,熬夜加班过于严重,消耗生命力来赶进度。特别是大厂,钱是给的多,但是透支强度懂得都懂,说句不好听的是拿命换钱。
以前大家听这些可能只是自嘲一下,随着脉脉上不断爆出大厂程序员加班猝死的消息,大家开始慌了,原来比起收入,健康才是我们终身的财富。
当然还有一个原因,不只是程序员的职业阴霾,但程序员首当其冲,那就是 “35 岁危机”。
程序员是拼学习能力和创造能力的职业,不进则退的规则远大于其他行业。35 以后,如果你不是真的热爱这个行业,那么你会发现,20 多岁的那种学习钻研的毅力已经没有了。再加上身体状况大不如前,加班扛不动,各方面你怎么和新来的小伙子们拼?
以上的种种情况,再加上网络上疯狂的制造焦虑,我们自己也突然有了种随时会降薪,随时会被裁,随时要加入内卷,甚至随时会没命的担忧,开始想后路了。不行搞点副业?不行创个业?
所以如果你今天在技术社区发一篇“程序员如何搞副业”的文章,点击率一定翻倍。根本原因,就是大家对未来的担忧。
卷不动怎么办?遇到 35 岁危机怎么办?大家都想着规避风险,这才不得不去关注副业。
这两个现象是程序员焦虑的主要来源,看似避无可避,可有没有想过根本原因是什么?
我们再往深剖一下这两个问题,其实大家担心的是:“如果这种加班状态持续到 35 岁,我能不能撑得住?到时候竞争力下降,我会不会被新人替代?”
但是我想说一个误区,就是初中级别的程序员,需要大量的写代码来提升自己的技术能力,不断的投入时间学习,研究,拓宽视野。但是到了高级别的程序员,比如带团队的 leader,架构师,写代码一定是越来越少的。
对于这些人来说,他们不需要通过加班来发挥价值,他们有自己的核心竞争力和不可替代性,写代码也是写一些核心的关键的代码,更多的时间关注技术选型和解决问题的方案。所以说程序员的职业生涯不会一直伴随着加班,当你拥有核心竞争力,你的工作方式反而会很自由。
那什么是核心竞争力?我说一句话大家一定会有体会:你的技术 leader,一个决策可以让团队的开发效率提升 10 倍,也可能让团队的开发效率降低 10 倍,有可能最后还出不了成果,甚至告诉你这个不行得重来!
这就是核心竞争力呀!一个程序员对技术选型,解决方案的评估和判断,这才是他的核心竞争力。这种竞争力不是你刷一堆算法,背一堆八股文,学很多面试技巧,他就能有的。这些东西是需要你经过几年大量的 写代码+学习+尝试+思考 才能培养出的能力。
所以说,我们所谓的 “加班内卷” 和 “35 岁危机”,得分两个阶段来看。
如果你是工作的前五年,这个阶段你精力旺盛,学习能力强劲,那就是要卷的啊。趁着职业上升的黄金时期,花大量的时间和精力做积累,不断做加法,尽力尝试着去拓宽技术视野,让自己成为一个独当一面的人。这样你才能积累到别人无法超越的高度。
如果这个阶段你躺平了,你想着反正大家都在卷,我不想参与其中,每天上班空闲摸个鱼也挺好的。那这样持续几年,除了业务代码熟练一些,你在技术深度广度上都没多大的长进。当你发现公司的新人越来越厉害,他们带来的技术让你应接不暇的时候,你突然发现卧槽,危机真的来了,这个时候再卷是不是晚了?
我不是鼓励大家内卷,相反我很反对做那些没什么意义光是自我消耗的事情。但是努力和积累永远不是卷,更不是不想奋斗的借口。如果卷真的避免不了,那一定要“卷的有价值”。
比起内卷,其实我更鼓励大家“外卷”。外卷到意思就是当你在某个领域积累了一定经验后,要试着跳出当前的圈子,去探索一下外面的世界。
比如你是一个前端程序员,尽管你的 Title 是“前端”,但你不能一直只在前端的圈子里打转。作为一个程序员,只要涉及到程序开发的,前端后端产品服务器,你都要接触,这样你的视野才会变的更广,看问题的角度更多,随之你的判断能力和才会得到提升。
大家总觉得,一个前端就该专攻 js,只有准备向全栈发展才会接触后端。其实不是的,接触并不代表一定要做,了解整体可以培养你的全局观。比如你遇到了一个难题,你只会在前端的范畴研究,可能这个问题在后端处理只是一行代码的事情,可你不知道呀,所以会浪费很多时间。
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var array = [];
for (var i = 0; i < arr.length; i++) {
if (array .indexOf(arr[i]) === -1) {
array .push(arr[i])
}
}
return array;
}