进入 编程 开发 7 年,我学到了什么?

前言:程序员

相信每位开发者在本身开发的过程当中,都会反思一些问题,好比怎样提升编程能力、如何保持心态不砍产品经理、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 也由于这个问题而困扰。项目想要得到成功,总体的专业技能比纯技术技能更为重要,ip

举个例子,若是你聘用了世界上最好的五位数据库专家,可是他们之间拒绝交流,没有协同工做,那最后交付给你的多是 MySQL、Aurora 与 MongoDB 的五个不一样实例,那又有什么意义?

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

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

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

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

代码审查

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

可是若是真的发现别人实现的功能彻底无效,那么怎么办呢?合适的作法是私下去联系代码的编写者,与他们交流,找出他们为何会以这样的方式实现该功能。

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

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

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

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

不要惧怕说“我不知道”

刚开始当程序员的时候,可能你会惧怕别人发现你不懂某一个问题,因此别人问你而你真的不懂的时候,你不会直接回答说你不知道,而且会给出一些不能肯定的答案,可是自己没有底气,因此会惧怕别人知道真相后以为你是个骗子。

可是做为开发者几年以后,你可能会以为若是一个东西你还不知道,那可能它是可有可无的,或者这是你须要如今去学习的另外一项新技术。

终身学习不是软件开发的流行语,它是现实。

保持这样的心态,这个时候,当别人问了一个你不懂的问题时,你就能够大胆地说:我不知道,我尚未试过,我先看看,而后回复你。

分享学习成果

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

二次教学是考验你是否真正理解你所学的东西的极其有效的手段,并且通常来讲,即便是最资深的专家也能够从初学者那里学习到新东西,这样对于你和其余人来讲是共赢。

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

做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个个人iOS交流群:638302184,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!

相关文章
相关标签/搜索