初入软件工程行业,容易犯下的最大错误,你中枪了吗?,


和通数据库号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

image

笔者大学毕业之初缺乏目标还负债累累,但踌躇满志,想在“专业的”软件工程行业打拼一番。

笔者早前便了解过Agile并在实习时多多少少使用过它。在课堂上、个人项目中以及不同工作岗位上写过很多代码。还在一些设计方案和大局思维方面小试过身手。

当时与大多数初出茅庐的工程师一样:渴望学习、进步,并发挥自己最大的潜力,成为最好的工程师。

也正因如此,犯下了不少错误。工作伊始两周,便写错了代码,害了一名同事不得不加班加点才能按时提交报告。

但笔者所犯下的大多数错误并不是由于写错了代码或是未能按期完成项目导致的(虽然这两种情况也时有发生)。导致犯下错误的原因是笔者不想显得无知。大多数人将这种情况称为冒充者综合症。笔者惧怕承认不理解一个想法,概念,或是记不住如何遍历树。

这一恐惧使得笔者在事业之初犯下了一些错误。希望通过分享这些错误,你们能够避免犯同样的错误。

问的太少

image

笔者对这一点心知肚明,但发现自己有知识欠缺时,仍然没有向他人请教,而是感到自己格格不入,并尝试通过谷歌和Stackoverflow搜索听到的想法。(优秀的开发者都会这么做,不是吗?)

开会时,只会静静地倾听小组中其他成员的见解,默不作声地点点头,希望他们不会要我说说自己的想法。

写代码时,笔者深陷于自己所看到的糟糕的代码中(笔者的第一份工作是上线一个十分难以理解的计费系统),并指望着只要多看就迟早能看懂。笔者花费了大量的时间在根本看不明白的代码上,只因不敢与向他人请教自己不理解的缩略词和术语。

一定要大胆提问!千万别觉得一个问题第一次没听明白就说明你的能力不足以理解这个问题。你的所有同事都是这么过来的,刚刚离开校园时他们也有所欠缺。他们在学习的过程中也需要帮助,所以千万别气馁。

他们中有些人甚至可能和你一样,也努力想要和大家保持一致。有不计其数的工程师在会议中默默点头表示同意,但实际上完全不知道会议中提出的想法是什么意思。

与其羞于开口,倒不如问出一些有益于团队理解的问题,比如说:

  • “你刚刚提到的关于表格分区的内容我不是很明白,能再解释解释吗?”
  • “我不太明白这个项目是如何架构的,可以给我一些记录文档让我深入了解一下吗?”
  • “我最近在学习使用Ansible,但遇到了一些瓶颈。你能回答我的几个问题吗?”

说的太多

image

笔者提出的问题太少,但说的又太多。而且所说的话往往都与自己实际的知识储备不相称。

笔者在工作刚满一年时发现了这一问题。那时,笔者已经学到了不少知识,觉得自己不再是个职场新丁,并且想炫耀自己在工作时学到的一切。笔者认为,工作的年限不同,可能会犯的错误的种类也不同,记住这一点非常重要。

笔者当时急于发表意见,并且十分自傲,不愿倾听别人的意见。

直到笔者所进行的一个项目快要分崩离析之时,笔者才意识到自己的这一行为。几位资深工程师被指派到笔者的团队,在短暂的查看我们的成果之后,他们便开始指出所犯的错误。诚然,早在项目之初团队就应该有几位资历深厚的工程师为项目保质保量,但这并非可控之事。

在这一过程中,笔者意识到自己仍未对所从事的工作了如指掌。笔者意识到自己需要学习的还有很多。笔者学会了倾听,再次开始提出自己的问题,并坦然接受自己并非全知全能这一事实。

你可能也会在工作中遇到相似的情况。比如在你觉得自己已经学富五车的时候,突然发现自己需要学习的仍然还有很多。在职场中应该尽早意识到这一点。越早意识到自己并非全知全能,便能越早的开始学习、进步。

只写与工作相关的代码

image

在这一点上,笔者吃了很大的亏。笔者不再磨练自己写代码的技术,而只是专注于眼前的工作。

需要澄清的是,专注于被指派的代码以及项目是成为一个成功的工程师不可或缺的。但是,笔者更希望自己当时能每周拿出两个小时的时间来做开源开发或是在LeetCode或TopCoder上写一些富有挑战性的代码。

之所以这么说,是因为在工作一段时间之后,大部分的项目代码的中心内容都只与一部分代码概念相关。笔者目前的工作内容是建立通过RESTful APIs进行高通量、低延迟的分布服务。这一工作虽然的确富有挑战性,但对工作内容了如指掌之后,大多数工作内容都颇为相似。正因如此,笔者发现自己解决问题的方式都几乎一样。

但笔者已经很久没有做过需要用到图像引擎或是简单的文本编辑器(以及其他工具)的工作了。笔者甚至都不确定运用这些工具的工作是否也同样富有挑战性,但笔者赌它们有。

钻研工作项目之外的代码是保持写代码水准的绝佳方法,同时还可以通过做出一些开源贡献,为简历增光添彩。一周只需抽出几个小时,编码技艺便会突飞猛进。如果你觉得工作中没有时间这么做,就去找管理人员谈谈,看看是否能运用上班时间这么做。毕竟,你的编码技术提升了,无论于己于公司都是一件好事。

笔者犯下的错误还有许多,但笔者认为以上几点是影响最大的。

前两种错误归根结底是因为不想显得无知或是想要在人前显得技高一筹。千万不要陷入这样的怪圈之中。每当你太在乎别人对你的看法时,切记,别人可能根本就不在乎你。

第三种错误可谓是老生常谈了。笔者进入职场后便忽略了引导自己进入软件工程行业的技能,即对于雕琢代码的执着。自从晋升为高级工程师后,笔者写的与工作项目无关的代码越来越多。这么做使得笔者在工作中获益良多(写代码的速度也大有提升!)。

image

希望这篇文章能够帮助读者在软件工程行业有个良好的开端!

祝编码愉快!

【和通数据库号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【和通数据库号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-03-21
本文作者:读芯术
本文来自:“读芯术

相关内容