七年程序员生涯,我学到的重要六课

时间如梭,不是吗?程序员

个人编程之旅始于 2012 年,当时我还只是个 C++ 编程实习生。说实话,我根本不知道本身在作什么。即便是到了如今,这种情况依然没有改变。不过,在这个过程当中,我确实学到了不少东西。数据库

问题来了:在编程过程当中,什么语言才是最重要的?编程

是英语?西班牙语?中文?波兰语?仍是其余在工做中用来与其余人进行沟通的语言?app

 与人沟通比与机器沟更重要ide

编程是一项团队活动。不多有出色的软件产品是彻底由一我的从头至尾作出来的(CodeSandbox 算是一个,但后来 Ives 仍是请了一些人),大多数产品须要一个团队来打造。学习

沟通技巧能够成就一个项目,也可能会毁了它。相比存粹的技术,软技能对一个项目的成功起到更重要的做用。试想一下,你把世界上最好的 5 个数据库专家都请来了,但若是他们各自为政,互不沟通,最后他们会给你搞出 5 个不一样的 MySQL、Aurora 或 MongoDB 实例。url

 了解你在作什么以及为何spa

人一旦有了目标感,就会感受好一些,这在工做中也是同样的。设计

做为软件开发人员,你的目标不该该只是把 JIRA 中的问题变成 JavaScript,或者把 Trello 中的项目变成 C#。orm

你的目标应该是用代码来解决问题。

若是你对正在构建或维护的系统很了解,就能够抛开技术作决策。这个功能是必需的吗?它解决了什么问题?能够用其余方式来解决这个问题吗?真的有必要解决这个问题吗?

这些都是业务问题,若是你想把工做作好,不只要理解这些业务,还要主动参与其中。即便你在公司里不是 C 级别的人,也不影响你这么作,至少,你要明白本身在作什么。

 若是代码评审让你感到有压力,那确定是打开方式出错了

虽然咱们没有必要那么想,但把本身写的代码放出来让其余人“围观评论”,这种体验跟写代码还真是有点不同,也难怪人们会感到焦虑。

有人由于不堪忍受某些人的吹毛求疵,选择在这我的不在公司的时候提交代码评审。试想,若是你在一个新手的 PR 底下轰炸式地给出 50 个不那么友好的评论,你其实不仅是在证实本身做为一名高级程序员的优越感,也是在证实你不是一个“好人”。

那么,正确的打开方式应该是怎样的?

你能够私底下找那我的,跟他好好聊聊,问他为何把代码写成那样。

其实大多数人也不想把代码写臭,若是你看到臭代码,可能其中会有一些鲜为人知的缘由。固然,也有多是由于他们的编程技能还不够好,这个时候你要承担起“导师”的角色,给他们提供一些指导。

 未雨绸缪

墨菲定律:会出错的事情就必定会出错。

这就像是一个真理,在设计系统时总会有一些东西会出错。

在开发一个登录表单时,你要假设会有一些居心叵测的人把整本书的内容拷贝到密码输入框里。

在开发一个可见即所得的窗口时,你要假设会有人试图搞破坏,并且他们一般都能如愿以偿。

若是系统中使用了数据库,它必定会在某个时刻挂掉。若是你没有尝试使用备份来恢复数据库,那它们就算不上是备份。

若是你在给别人作演示,请确保这个演示在任何状况下都能正常进行,哪怕把它翻个底朝天,甚至是把它丢到水底下。

 不要惧怕让别人看到本身的无知

做为高级程序员的一个好处是,当别人问一些我不懂的问题时,我能够很淡然地告诉他们:

这个东西我也不懂,由于之前没有遇到过,不过我能够看一下,而后再告诉你。

当我仍是一个初级程序员的时候,我老是很惧怕别人会看到个人无知。通过几年的磨练,我才明白,若是碰到了本身不懂的东西,说明学习的机会来了。终身学习绝对不仅是一个“口头禅”,它应该被付诸实践。

相关文章
相关标签/搜索