聊天讨论 程序员工作七年,我踩过的那七个坑

coderwamgh(wang) · 2024年11月05日 · 最后由 hllinc 回复于 2024年11月05日 · 221 次阅读

作者:东东拿铁

引言

今天想聊聊,自己在 7 年工作中踩过坑的 7 件事情。

一、不会问问题

一杯茶一包烟,一个 bug 改一天。

程序员面对技术难题是非常正常的事情,谁还没有碰见问题束手无策的时候呢。

记得刚工作的时候,我对于碰见的业务异常,宁愿自己一行一行地看代码,一行一行地 debug,也不愿意去问那些有很多业务经验的前辈,更不用说问自己的领导了。

因为那时候我觉着问别人,就会显得自己技术很菜,毕竟什么功能你把代码看一遍,理论上也能知道什么问题了。

于是自己花大量的时间钻研一些代码,哪怕这些代码在系统中并不是这么重要。 我一直觉着我自己有能力解决问题,所以不去问别人,显得自己技术强。

事实上,我是不知道如何提问,因为如果你的问题问的比较低级,再好脾气的人也会失去耐心。提问的能力,是我们在职场中必备技能。

就拿工作中一个很常见的系统报错场景举例,无论什么系统,都会有些业务性质的校验,比如参数异常、状态异常、库存异常、购物失败等,再就是系统 bug。工作这几年,我遇见了集中不同程序员的提问方式。

第一种程序员:东哥, 功能报错了,你看页面上提示的 xxxxx,怎么办? 第二种程序员:查询一下报错相关的日志,看看有没有更详细的信息,拿着信息开始去找哪一行或者哪一个服务报的错,然后喊:东哥,代码这个服务/代码怎么抛异常了,怎么办? 第三种程序员:先查看日志,然后核对数据,核对基本的商品配置、用户资格,尝试了解涉及到的业务细节,再过来问:秒杀失败了,涉及到的基本配置核对完了,帮我看看还有什么地方是我遗漏的吗?

其实这就是我工作过程中提问的成长路径:从遇见报错就去问别人,到学会用技术方式排查问题,再到后面的业务驱动去梳理问题。

反求诸己,如果你是被问的那个人,你会更倾向于帮谁解决问题?不同的提问方式,谁的成长速度会更快呢?

其实,技术问题绝大部分人都能解决,但在开发过程中面临的业务难题才是我们需要解决的,或者说更常见的。有些业务如果没有人告诉你,你永远也不知道这个功能为什么要这么写,或者说这么写的逻辑是什么。

千万不要羞于提问,相反,问别人是解决问题最快的方式。你要做的是,学会做好前期调研,尽量提出有价值的问题。

二、不善于展示自己

代码写好了,就足够了吗?

工作之后,另一个非常重要的误区就是,我只需要把活儿干好,那么像升职加薪自然就会轮到我。我想大家一定听过 Linux 开发之父说过的一句话:“Talk is cheap, show me your code.”

曾经我也是被这句话影响很深,作为程序员就应该写好自己的代码,做好手头的事情,就一定可以把自己的能力展现出来。

但工作后发现,如果你不说,你的代码只会存在于 git 里,只有下一个接手你工作的人,才会看到你的代码。

程序员需要避免的一个误区是:工作中不要认为技术才是最重要的,不要认为技术做好了,领导就一定能够看见你的功劳。

事实上,如果你不去把你所做的工作提炼出来,更好地汇报或者展示自己,其实没有人会知道你的工作具体有多困难,或者你写的代码具体有多好。

也许你认为你的代码逻辑清晰,扩展性强,用了各种设计模式,性能较好,你觉得自己很厉害。这没错,但是做出成绩,让别人知道,比完成更重要。

你这么做并不是说要邀功,而是在让上司、让同事更了解你的作用,也是在帮你的团队争取应有的认可、应有的资源。

三、缺乏冒险精神

按部就班,不再适用于当下的年轻人了。

我们父母年轻的时代,工作时可以从 20 岁一直干到 55 岁的。但在现在这个社会,几乎没有程序员会认为自己可以一辈子在一线写代码。或许有这样的人,但我肯定不是。

在现在这个社会,唯一不变的就是变化本身。从 2017 年毕业到现在 2024 年,整整七年的时间里,热门技术从 Java 的 Spring MVC 到 Spring Boot,再到微服务架构。热门的技术赛道也从大数据、区块链到 AI。热门技术是学不完的。对于普通的程序员来说,按部就班已经不再适用了。曾经的 “三年 P7,五年 P8” 在现在已经完全不可能了。

自从 ChatGPT 问世到现在,其实已经有一年的时间了。我已经见过很多人用 AI 改善自己的工作流程,比如 AI 写作、AI 绘画,甚至用 AI 生成代码。但如果你还只会遇到问题去百度搜索,那么我想你已经跟不上这个时代了。

程序员现在考虑的是什么?或许是在程序员这一行还能干几年。

技术变革这么快,自己的技术在后面会不会被淘汰,公司会不会裁员,裁员之后还能不能找到工作。

可如果我们所做的工作,学习的内容,只是为了让自己在这一行多待几年,甚至是不被裁员,我想这个目标是不是从一开始就有问题?

  • 你学会的第一个开发语言,并不意味着你要一直从事这个语言相关的岗位,技术更迭,换一个语言也未尝不可。
  • 你并不一定要一直写代码,走向管理、转向产品或许可以让你看见更大的可能。
  • 你或许不一定非得要做一个程序员,或许你的兴趣并不是写代码,只是你自己还没有发现。

既然一份工作无法持续地干下去,那我们应该怎么办呢?终身学习,找到自己在哪一行能够更擅长、更喜欢的,把这份喜欢变成自己的事业。并不是说今天你是一个程序员,10 年、20 年之后你还是要做一个程序员。

愿你也能够不断的拥抱变化,有着足够的冒险精神。

四、缺少锋芒

不知为何,我的盖洛普优势中排名第二的是和谐。这意味着在冲突情境下,我会极力避免争论,希望和别人达成共识。

譬如,当我与同事探讨技术方案时,同事可能会对自己的方案极为执着,即便我的方案在性能、难易程度上更优。倘若同事始终坚持己见,那么我极有可能会选择妥协,采用那个看似并非最优的方案。

我发现自己在工作中,会不自觉的想要获得别人的好感,甚至变成了一种执着,因此我更愿意在职场中展现自己的亲和力。 比如:

怕冒犯别人,不敢提出自己正当的需求和想法 有时会暴露自己的弱点、缺点,以便拉近社交距离 总是担心别人不喜欢自己 但是这样会产生一个副作用,那就是,别人可能会觉得你能力不足。

或许你会说,这样似乎也不错啊,职场中我就喜欢这样的同事,如果我不这么做,那别人会不会不喜欢我啊?

《权力进化论》书中给出了一项长期研究的统计结果。研究的是亲和性(也叫宜人性)对于一个人事业成功的影响。结果发现,亲和性对所有人的薪酬都会产生负面影响,男性受到的影响比女性更严重。这是因为,那些在意自己亲和性的人,可能会把这个放在自己的事业目标之上,所以更容易错失一些推进事业发展的好机会。

而亲和性的反面是独断性。也就是一个人我行我素、以自己为中心的程度。加州大学伯克利分校的研究发现,独断性对权力的提升没有帮助,但也没有害处。这是因为,独断性能够引起两种相互抵消的作用:一方面,独断的人会做出更多支配性、攻击性行为,这能帮他们提升权力和地位;另一方面,独断的人做出的慷慨和群体行为比较少,这又对获得权力有负面的影响。

按照研究中的定义,独断性恰恰代表了一个人根本不关心自己会怎么影响别人。《权力进化论》书中的作者说,如果这对权力都不会产生影响,那么就更可以说明,其实我们没有必要过于担心,其他人喜不喜欢自己,会对事业造成多大影响。社会关系虽然重要,但我们不应该让那种想被人喜欢的念头压过了真正想做的事情,牺牲了自己的利益和规划。

研究表明,刻意去博得他人好感在职场中往往会起到反作用。相反,表现得更加强势虽不一定对自己的职业生涯有益,但也并无坏处。

工作中善于表达自己的观点,做你认为对的事情。

五、你配得上你所拥有的

我和许多加过来的粉丝朋友聊天,粉丝朋友们普遍会觉着:“嗯,你的履历不错啊。” 他们认为履历对我的自媒体或许会有很大的帮助。我总是回答:“哎,这其实没有什么。我能进去,很大程度上也是运气,并不代表当时我的技术有多好。”

所以我从来没有把大厂的经历当做自己的一个优势去面对它。反而我会尽量避免和别人谈起过去的工作经历。

日常的表现就是自己更愿意去弱化自己的优势,却喜欢强调自己的不足。

其实我这种情况叫做冒充者综合症。

什么是冒充者综合症呢?就是有些人其实已经很优秀了,但他们总是觉得自己并没有像别人说的那么优秀,生怕某一天别人会发现他是冒充的。

这就是一种会严重削弱你自身权力的行为。因为你看待自己的方式,必然会影响你展现给别人的形象。如果连你自己都不觉得自己有能力,值得更好的结果,那这种消极信号就会在不经意间传递给别人,让别人也看低你,最终会影响到你的事业。

首先,想一想你会怎么向别人描述自己。然后看看这里面有多少是消极描述,哪些可以摒弃掉;看看你有没有刻意掩饰自己的成绩和优势,能不能把它们加上去。

比如我看到的一个例子:一位女性学员,跟作者说公司里竞争很激烈,竞争对手总是想方设法地压她一头,或者抢占她的功劳。作者在跟这位学员交流的时候,发现她总是提到,自己是团队里唯一的女性,而且最年轻,资历也最浅。作者就提醒她说:“我知道这些是事实,但是我还可以再用三种完全不同的视角来描述你,那就是,你们团队里,只有你是顶尖商学院的 MBA,只有你精通数理分析,也只有你曾经独立带过有很大经济影响的项目。所以呢,现在我们就有六个不同的视角了。至于今后你要一直想着哪三个,全看你自己。”

顺便吆喝一下,技术大厂,前后端测试捞人,待遇还不错~

六、没有建立自己的品牌

上面说到,不善于展示自己。那么想要展示自己的话,如何展示才是最好的? 建立个人品牌,也就是 IP,即 Intellectual Property,也就是我现在在做的一件事情。

一句话,让人们第一时间想到你。具体应该怎么做呢?

第一步,和声名显赫的事情或人联系起来。 职场初期,我们大概率会去做一些边边角角的业务或者功能,核心功能或者业务的机会就这么多,只是做这些并不是很重要的业务,即使你很有能力,也很难被人发现。

遇见这种情况,那就主动去沟通联系,试着让自己接触更加底层与核心的逻辑,并深度参与其中。

比如虽然你只是开发人员,但你主动承担起跨部门的协作沟通,而不是把沟通的事情让别人去做,主动承担起计划的制定与发展规划。

即使不能负责,也要展现出你对这件事情的兴趣,持续积累核心业务的背景,这样你也能够建立起负责人对你的兴趣,建立沟通渠道。

第二步,准备好自我介绍,并反复打磨自己的故事。

比如你擅长哪些技能,熟悉哪些业务,你曾经负责过什么东西,做出过哪些成绩。

人人都需要自己的品牌声明。你要做的,就是想一想如何用两三句话向别人介绍自己,说明自己的专长和取得的成就,再想办法把这些内容和自己的某些心路历程结合起来。

第三步,让你的品牌广为人知。

有很多人不愿意做一些感觉像 “自我推销” 的事情,尤其是程序员。并且在我们社会的成长背景下,在崇尚谦卑品格的文化环境中,这种现象会尤其突出。

这样就会产生一个问题:如果你自己不讲出自己的故事,会有别人替你讲吗?别人还会看到你的成就吗?这些你都没法确定。

七、忽视社交网络

广结人脉,和埋头苦干,你会选择哪一种?

职场初期,我选择的是埋头苦干。先讲一个我自己的故事吧。

在之前一家公司,因为负责一个新的系统,主要是把 App 上面的功能,从公众号层面再实现一遍。

在做这件事情的时候,App 上面的核心功能代码量比较大,但因为涉及到风控因此必须迁移,我花费了很多精力去进行迁移和重构工作,最终完成了小程序系统的上线。

半年之后,由于业务迭代,领导也发现 APP 的这部分功能比较核心,准备着手把核心功能统一迁移成为一个新的微服务,以便后续使用,便把这件事情交给了我的一个同事去做。

最后这件事情做完,领导认为这个工作量很大也很有价值,于是我的这个同事收获了很好的评价和非常好的绩效。但其实这部分工作,我早在之前的系统开发中,就已经完成这件事情了,然而这件事情我不说,领导也不得而知。

相同的工作,但是达成的效果完全不同。

互联网一直流行一个词叫做 “向上管理”,我一直觉着这是一件听着有道理,但是总感觉哪里怪怪的事情。因为即使我看过这么多所谓的方法、技巧,如果不做最重要的一步,那么所有的方法都无从下手。

最重要的就是,要建立你的社交关系,不要仅仅限于同级的同事,也要包含你的上级、跨部门的上级。

其次就是要重视你的 “弱连接”。弱,就是强弱的弱。“弱连接” 指的是我们生活中的那些偶然认识的泛泛之交。社会经济学家做过一项研究,考察了二百多名求职者的经历,结果发现,大多数工作都不是通过投简历这种正式渠道获得的,而是靠社会关系提供的非正式信息取得的,而且很多是来自一些他们偶然认识的人,也就是 “弱连接”。

跟亲朋好友同事这些强连接相比,那些弱连接的人脉,往往有着跟我们更不同的背景、经历、圈子,所以,利用好这些弱连接,我们就更可能接触到更广阔的视角、信息和机会,甚至可能实现圈层跃迁。

建立关系,重视弱连接,建立沟通渠道,才能让你的能力,得到杠杆效应。

说在最后

以上,是我想分享的工作七年来,在职场中踩过的几个坑,给出的建议或许有失偏颇,也和自身的工作环境有很大关系,并不适合所有人。

现在大模型应用有很多,很多问题,尤其是技术问题回答的都很好,我现在都很少 google 了,直接问大模型,效果还是不错的。 目前在做的产品:https://www.analyze-sphere.com,期待您的订阅。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号