继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

向顶级开发者学习的三大宝贵教训

互换的青春
关注TA
已关注
手记 213
粉丝 16
获赞 49

我有件事要坦白。

我一直都在整个编程生涯里复制粘贴的。

说实话,这就是我这些年作为开发者混日子的方法。

在我工作过的每个团队中,我都会观察那些资深开发者在做什么。

我从一些很棒的公司学到很多,并且与我认为可能是天才的开发人员一起工作

  • 有一个人开始了一家价值数百万美元的公司。
  • 另一个人编写了一个你可能听说过的一个流行的单元测试框架。
  • 最后一个人直接指出我在胡说。

我从这些开发者身上偷取了一些东西来加快了自己的职业发展。

我一直都很走运。

我住在硅谷所在的旧金山湾区,这可以说是科技世界的中心。每个怀揣梦想的程序员最终都会以某种方式来到这里。

你也不一定需要运气好。

我想分享从这些角色中学到的经验,这些经验帮助我远离平庸,也可能对你有用。

没尝过好的,就认不清什么是坏的。

在我遇到这些超级开发者之前,我的职业目标定得太低了。30岁开始学编程时,我只感到很幸运有人愿意雇用我。我的主要目标就是保住工作。

我希望自己能做个普通人。

我还是没做到。

这里有一些你常会从不太厉害的开发者那里听到的话。

“在我的机器上能用”

“我不知道它是怎么工作的,但它就是能。别碰它。”

“我只是写代码,对业务那边的事不太了解”

“我觉得挺好的!”

原来,我说的都是这些。

那最后一句话差点让我丢了工作,不过很快我们就会谈到这件事。

也不必像我这样在十年内频繁跳槽六次,最终才能成为略高于平均水平的程序员。

这里是我遇到过的最聪明的技术宅那里学到的三点体会。

沙拉爱好者

我们就叫他唐好了。

首先,这小子真是个天才。

我能看出来,因为在我们第一天和CEO、CTO一起吃饭时——这人用手抓沙拉。

他问是否可以早点回去,因为他累了。

他在大白天躺在辦公室的沙發上睡覺。

只有天才敢这么干才不会立刻被炒鱿鱼

他四十岁那年从医生转行做软件开发,我认识他时他已经五十几岁了。

我是作为开发者度过了第三年,觉得自己已经是中级水平了。

不对。

我和Don在上班后的前两周一起编程,很快就意识到自己是多么的菜鸟。

Don 使用他为我们使用的框架编写的库,为我们创建的功能编写了这些功能的测试。

我这辈子从来没写过试卷。

唐用快捷键飞快地在终端和代码编辑器之间切换。

我没有时间去做那件事。

我只是希望事情能顺其自然。

Don 不接受我这种拼命让它工作的风格。他坚决不与我合作,直到我掌握了 VS Code 的键盘快捷键,以使合作更加愉快。

如果我没给一个功能特性写测试,他肯定不通过。

当我求助时,他却不直接告诉我答案,而是告诉我可能找到问题所在的地方。

我们只一起工作了9个月,但这段时间是我职业生涯中最具影响力的时期之一。我掌握了测试的技巧,理解了工具学习的重要性,以及如何在快速完成任务和确保正确完成任务之间找到平衡。

据我所知,他和别人一起创办了一家价值几百万美元的软件公司。我敢打赌他还是用手抓沙拉。

地狱使者您好,您还没有提供要翻译的具体英文文本,所以我还不能给出中文翻译。请提供具体的文本内容,这样我就可以帮您翻译了。(注:请直接提供您需要翻译的英文文本,以便我能给您准确的翻译。)请提供您需要翻译的具体英文文本,谢谢!… 或许是天堂来的评论者

我以前在他审代码的时候很紧张。

总是有一二十或多条评论。

有时他会提出一个全新的点子,每次都巧妙地另辟蹊径。

“我为什么没想到?”

我听说他对每个人的代码都很挑剔。

当我审阅时,只收到了几条小小的批评,我感到很自豪。

现在轮到我了——我就像邮局里的员工一样在机械地处理代码审阅。

“挺不错!”

看起来不错。

这个团队全是高级别的开发人员。我信任他们已经审查了自己的工作。这种审查不就是走过场吗?

对吧?

一个下午,我收到了“Parker”发来的一条让人摸不着头脑的Slack(一款即时通讯软件)消息。

“嘿,哥们——你现在有空聊会儿天吗?”

我心跳加速了。

他通过视频聊天问我为什么接受了一次最近的代码审查,然后一一指出了那些显而易见的错误。

“你怎么没注意到这事儿?”

这是一次让我感到尴尬的艰难对话。

他是对的。

我甚至没有做到最基本的要求,我们差点发布了可能让用户不爽并导致应用挂掉的代码。

我道歉了,接着我决心成为团队里第二好的代码审查者之一。

“帕克,你是怎么做的代码审查呢?”

他展示了他是怎么做的,

  1. 在查看代码之前,先本地运行代码并测试其功能。如果运行不成功,就不用再审查了。
  2. 逐行检查新代码,弄清楚新增了什么。
  3. 提出问题来澄清不明白的地方。
  4. 针对大型审查,找个时间让开发者解释一下代码。
  5. 每天早上开始工作前先审查,避免任务间的切换。

哇哦!

那比我之前做的事情复杂得多,真是复杂多了。

我决定继续这样做,避免再闹得不可开交。

年终总结时,好几个队友夸我写的代码检查,经理也夸我这么仔细。

我觉得自己像个乖小孩。

流行语达人

在之前的一家公司,我和“杰姆斯”一起带了一个小的开发团队,最近。

作为我们团队的工程经理,我负责制定我们团队这个季度的技术规划。

我从来没有过这种能力。

最后,我们可以使用我一直渴望使用的技术,比如 NextJS 和 TypeScript。我们可以重写我多年前写的那个库。我敢说,我们甚至可以找到方法将 Kubernetes 集成进来。

这肯定会很棒。

我给他看了。

这些事情做了有什么用?他问。

我抛出了一些技术行话(我正在扮演新经理的角色,)。

“嗯,呃,静态站点生成可以加快加载时间,提升我们的SEO效果,而且我们的HTTP客户端使用的是一个过时版本的NodeJS,我们还可以用CLI工具来提升开发体验。”

尴尬得他都快受不了了。

“老实说,我真的不清楚你在讲什么。这怎么对这个季度的业务目标有帮助呢?”

说实话,其实没想过。

“布莱恩,”他说,“我们是给组织赚钱的。如果这些东西是必要的,或者它们支持某种业务,那当然没问题。否则,那只是些花里胡哨的东西。”

我回到了绘图板,和我们的产品团队聊了聊,了解公司真正需要什么,以满足下一季度的实际需求。

这并没有提到将网站加载时间减少200毫秒。

里面有一些有趣的挑战,我很乐意接受。

我本意是好的,只是走错了方向。

你将会成为谁?

每个好故事都离不开一个英雄角色。

这些人在我职业生涯的各个阶段都是我所需要的英雄。我借鉴了许多他们的习惯,并将他们的流程和思维方式融入我的日常。总的来说,这些做法对我的职业生涯帮助很大。

不过我吃沙拉还是用叉子。

你知道一个好的故事还差点啥吗?

坏蛋

可惜的是,我可能在这些开发者心中扮演了反派的角色呢。

我那时候写的代码很粗糙,而且那个功能我花了很久才搞定,感觉像是个拖累。

我觉得那也行。

据说,如果你是房间里最聪明的人,那你可能就找错地方了。

说起来简单,做起来难。

如果从这些班达科特身上能学到一点东西,除了你应该写测试、关注业务背景以及认真审代码以外,那就是:
除了你应该写测试、关注业务背景以及认真审代码以外,那就是:

不想找舒服,找不舒服的感觉

和比你懂得多的人在一起,并观察他们,是成为在任何领域略高于平均水平者的最有效途径。

希望这能帮到你。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP