开发 7 年,我学到了什么?

栏目: 数据库 · 发布时间: 5年前

内容简介:相信每位开发者在自己开发的过程中,都会反思一些问题,比如怎样提高编程能力、如何保持心态不砍产品经理、996 之后怎样恢复精力……最近开发者 Tomasz Łakomy 将他 7 年的开发生涯中学习到的一些经验分享了出来,这里推荐给你,希望有所启发。Tomasz 讲到了以下 6 个要点:对于中国开发者来说,这个问题的答案多半是“英语”,然而 Tomasz 却说:是英语,或者西班牙语、中文、波兰语,或者其它任何你在工作中与他人交流所用的语言。

相信每位开发者在自己开发的过程中,都会反思一些问题,比如怎样提高编程能力、如何保持心态不砍产品经理、996 之后怎样恢复精力……最近开发者 Tomasz Łakomy 将他 7 年的开发生涯中学习到的一些经验分享了出来,这里推荐给你,希望有所启发。

Tomasz 讲到了以下 6 个要点:

编程中最重要的语言

对于中国开发者来说,这个问题的答案多半是“英语”,然而 Tomasz 却说:是英语,或者西班牙语、中文、波兰语,或者其它任何你在工作中与他人交流所用的语言。

It's English.Or Spanish.Or Chinese.Or Polish.Or whatever you use to communicate with other people at work.

作者指出“ 与人交谈比与机器交谈更重要 ”。编程是一项团队运动,虽然存在极少数案例,个人可以从零开发出很出色的产品,但是在绝大多数情况下,编程工作需要一个团队。

沟通技巧可以决定项目的成败,甚至 NASA 也因为这个问题而困扰。项目想要获得成功,整体的专业技能比纯技术技能更为重要,举个例子,如果你聘用了世界上最好的五位数据库专家,但是他们之间拒绝交流,没有协同工作,那最后交付给你的可能是 MySQL 、Aurora 与 MongoDB 的五个不同实例,那又有什么意义?

深入了解你正在开发什么?为什么开发它?

大多数人在有目标感时会更开心,这也适用于工作。作为软件开发人员,你的目标不是用 JavaScript 实现 JIRA,或者用 C# 重写 Trello,你的目标应该是 解决代码问题

如果你对正在开发或者维护的系统有深入的了解,那么就可以在纯技术之外做出决策。这个功能是必要的吗?它解决了什么问题?我们能以其它方式解决这个问题吗?这个问题的优先级这么高合理吗?

这种思路有时被称为“业务上下文”,但如果你想做好自己的工作,你不仅应该了解这些上下文,还要能够塑造和影响它。这不是说你必须在组织中拥有某个高级职位才能这么去做,你至少要先去了解这些内容。

代码审查

不要背地里审查别人的代码,并且公开指出其中的问题,你在初级开发者的代码 PR 下以不好听的言论挑出了一些问题,这样并不能证明你有多厉害,相反,这 只是说明你不是一个友善的人 。 

但是如果真的发现别人实现的功能完全无效,那么怎么办呢?合适的做法是私下去联系代码的编写者,与他们交流,找出他们为什么会以这样的方式实现该功能。

大多数人都不会想着说要写出不好的代码,如果他们的代码你觉得不行,那可能是他们在处理一些你没注意到的限制问题;或者他们确实编程能力还不够强,那这个时候就是你展现实力,帮助他们解决问题的时候了。

有些事情会出错,做好准备

“任何可能出错的事最终都会出错”, 墨菲定律很可怕 ,你要始终假设在设计系统时可能会出现问题。

如果你正在构建登录表单,需要假设用户会将整本书复制并粘贴到密码字段中;如果你正在写一个 WYSIWYG(所见即所得)窗口,要假设有人会试图破坏它,并且他们很可能会成功;如果你有一个数据库,假设它会在某个时候出现故障;如果你还没有测试从 backup 中恢复数据库,那么这就不是一个 backup;如果你正在观众面前进行现场演示,需要确保 demo 在线上或者离线等情况下都能正常展示。

不要害怕说“我不知道”

刚开始当 程序员 的时候,可能你会害怕别人发现你不懂某一个问题,所以别人问你而你真的不懂的时候,你不会直接回答说你不知道,并且会给出一些不能确定的答案,但是本身没有底气,所以会害怕别人知道真相后觉得你是个骗子。

但是作为开发者几年之后,你可能会觉得如果一个东西你还不知道,那可能它是无关紧要的,或者这是你需要现在去学习的另一项新技术。终身学习不是软件开发的流行语,它是现实。

保持这样的心态,这个时候,当别人问了一个你不懂的问题时,你就可以大胆地说: 我不知道,我还没有试过,我先看看,然后回复你

分享学习成果

当你从“我不知道”的状态中学习到某项新技术的时候,这时候可以去与他人分享你的学习成果。比如写自己的博客、录制视频教程、在公司的分享活动中演讲,或者只是简单地把知识点告诉另一个人。

二次教学是考验你是否真正理解你所学的东西的极其有效的手段,而且一般来说,即使是最资深的专家也可以从初学者那里学习到新东西,这样 对于你和其他人来说是双赢

作为开发者,你工作了几年?在工作过程中学习到了什么呢?


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

High Performance Python

High Performance Python

Micha Gorelick、Ian Ozsvald / O'Reilly Media / 2014-9-10 / USD 39.99

If you're an experienced Python programmer, High Performance Python will guide you through the various routes of code optimization. You'll learn how to use smarter algorithms and leverage peripheral t......一起来看看 《High Performance Python》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码