分享10年软件开发工程师告诉你怎样提高工

我本人很喜欢各种各样的方式来提高自己的工作效率,可以分享给大家一些经验。

审时度势,及时调整分工合理,责任明确

团队是由个人组成的,团队中的个人往往经历不同、背景不同、性格有差异、水平有高低。在团队形成后、正式开工前,首先应该进行合理分工,要结合每个人的特点和爱好,充分发挥出每个人的特长。因为如果工作不愉快、不顺手的话,效率自然低下。分工完成后,每个人对应的职责也就确定了。这时应该同每一位团队成员进行明确申明,最好以文字形式落实到个人并与日常绩效考核挂钩,以避免互相推诿、相互等待的情况出现。

分工完成后团队即开始工作,此时必须保证信息在整个团队内的畅通,特别是互相之间有工作关联的同事,在发现问题时需要及时提出,以免造成不必要的工时浪费。但软件开发本身是一种需要精力集中并且安静的工作,多次临时性的打断会造成开发思路的停滞,因此团队负责人最好能够每天在固定的时间段内组织大家进行沟通,并了解工作的进度。而固定的时间也会让大家形成习惯,使效率得到提升。

大家往往会陷入一种误区,认为团队中每个员工效率发挥到极致的时候就是这个团队效率最高的时候。但经过企业管理实践不断的论证,这种想法其实是非常可怕的谬论。正确的做法应该是将整个团队看成一个整体,再去谈效率问题。团队的分工协作就好比是生产的流水线,流水线的整体生产效率不取决于流水线上效率最高的环节,而取决于效率最低、速度最慢的环节。当流水线上某一环节出现故障而停滞时,整个流水线也就停滞了。这也是常说的木桶原理。所以我们必须时刻去发现团队中的短板,尽一切力量帮助它,提高它的效率。这样,也许会牺牲局部某些个人的效率,但经过一段时间的实施后,你可能会惊奇地发现整个团队的效率变高了。

流水线的机器是死的,而程序员们是活的。因此团队的瓶颈也许会因为调整而发生变化,这时需要团队负责人审时度势,及时进行调整。也许需要修正前期的分工,也许需要改变正在使用的技术,甚至是更换无法胜任的团队成员。让整个团队的工作效率保持在一个较高的并且能够相互匹配的水平,这样做非常重要。

团队是一个整体,不能靠每个员工进行单打独斗,要始终牢记团队的最终效用取决于团队中效率最低的环节。进行合理分工是预防瓶颈发生的前提,而建立高效的沟通机制则是发现瓶颈的有效方法。当瓶颈环节出现后要尽团队最大力量去发挥其效用,而当瓶颈发生变化时需及时做出调整,才能提高团队协作的效率。

具体如下,与君共勉:

1、键盘功底要扎实。敲键盘时要使用标准指法。可能你认为这是程序员的基本功,可是我发现其实很多程序员都做不到这点。看着他们敲代码时那笨拙的指法我就心急。其实炼成标准指法不难,相当年我还是一指禅,打字极慢,痛定思定,在一周内我打字必用标准指法,再别扭也要坚持,一周后就适应了标准指法了。现在不说运指如飞也算是略有小成。

2、要熟悉IDE的各种快捷键及特性。IDE基本上是码农们上班中使用时间最长的软件。首先要选择一个趁手的IDE,俗话说,工玉成其事,必先利其器嘛。如果是C#阵营的那肯定是最新版的VistualStudio了,如果是Java阵营的话当然是Intellij了(eclipse作为开源IDE,真心比不过Intellij)。我现在使用Intellij可以在95%的情况下不用鼠标,全键盘完成开发过程中的大部分操作。我觉得没有什么常用快捷键、不常用快捷键之分,只要你知道的快捷键就要拿来用。尤其是各种重构快捷键必须要熟练掌握,当我看到码农修改变量名时不用重构快捷键,而是自己手动在引用的地方一个个改,然后编译查错时,真为他们捉急。还有各种inline,introduce的快捷键真是好用到爆,掌握了这些快捷键可以说对代码进行任何重构都不费除灰之力,我们的注意力也从手动修改代码转移到如何发现坏味道了。VistualStudio中推荐安装ReSharper,其开发公司与Intellij开发公司是同一家。除了重构快捷键,还要掌握一些IDE的特性,比如调试时可以插入指定条件来命中断点等,这些就要平时的积累和学习,另外还有好奇心。我敢说你现在挨个看IDE菜单,至少有30%功能你从没用过或不知道是干什么用的,其实里面有些功能是非常实用的,只是你没尝试而已。

3、至少熟练掌握一种shell终端。作为程序员老用图形化界面咋行,要用那种古老的命令行界面才能显示出你的高深嘛!鼠标点界面谁都会,而命令行界面不是谁都能驾驭。有些功能在命令行下要比图形界面下高效N倍。比如我使用git提交文件时都是在命令行下查看哪些文件被修改了,哪些是新添加的,修改的部分是哪些等。使用图形化界面要用鼠标点来点去,效率实在太低。Linux系统下的终端太多了,就不推荐了。Mac系统下推荐使用iTerm2这个壳,其比MAC自带的terminal多了不少实用的特性,也能方便切换自己喜欢的配色。Windows下当然首推WindowsPowerShell了。WindowsPowerShell本身集成了常用的实用工具,并且与.netframework无缝结合,这点是那些在Windows上的类Linux模拟器(比如Cygwin)是远远比不了的。

4、具有一定编写shell脚本的功底。光会用现有的脚本还不行,还要会根据情况编写脚本来实现自己特定的一些目标。比如我使用MAC机上的终端时,经常需要在不同目录间跳来跳去,每次都打一串的cd…..很麻烦,后来我就自己写了一个小工具,可以给指定的目录起别名,想要跳到这个目录只要敲别名即可。还有我在Windows系统上工作时,也经常编写一些PowerShell脚本,比如一个命令就启动指定的FTP服务器,一些小命令用来实现快速在不同项目源码间切换并执行构建命令等。这些命令编写起来都很简单,在提高工作效率方面很好帮助,因为一些常用的费时的操作每天重复N次,让人很厌烦,如果能够使用脚本将其自动化起来,岂不是就把自己给解脱了?

5、多语言编程。在这个世界有太多太多的编程语言,但凡稍微流行的编程语言都有自己独特的优势,而我们要善于利用每种编程语言的特点,而不是整天吵闹那种语言更强大。我自己熟悉C#、java语言,也用JavaScript、Ruby、Python、Groovy做过一些东西,甚至为了理解函数式编程还专门学习了Haskell语言。这些语言都给我带来了实用的效果。比如我用Ruby写了一个插件,可以自动把我主站上的博客同步到博客园中的博客来。我使用Groovy给我的Java代码写单元和集成测试,比使用Java语言编写要快很多。我用Python和WebDriver写了一个论坛灌水工具来刷积分。你掌握的语言越多,你的视野就越广,你对编程的理解就会越深入。当然我不赞成盲目的求多,至少你要有2到3门精通的语言,从语言语法、语言运行时、语言特性、语言API等方面都要有深入学习和见解,当你再学习其它语言时也不会浮于表面的了。

6、这是最重要的一点,时刻保持一颗好奇心,一颗坚定不移的提高工作效率的决心。很多人都抱着差不多态度,心想“我虽不是标准指法,敲键盘速度也差不多”,“我IDE快捷键用的不多,也没觉得那里影响到我开发”,“我只会C#一种语言,还不照样干到现在了吗?”之所以有这种想法,是是因为你没有见到真正高效的人。我曾看到某IT界牛人那出神入化的VIM操作,简直已经超越了指哪打哪的境界,已经达到了键随心动的境界。我也看到某高级程序员使用IDE快捷键三下五除二就把一段丑陋的代码给收拾的服服帖帖。耳濡目染之下让我坚定了这个决心,不做差不多先生。所以平时我和同事一起工作时,就留心他们有哪些方法和工具来提高自己的工作效率。如果他们使用了一些好用的快捷键而我不知道,那我就会记下来下次自己用(快捷键熟练程度上我早已是我们项目组的numberone)。如果看到他们使用了一些好的工具我也会立马回去下载下来自己用。(比如前两天我看到同事使用SuperPutty来连接远程主机,其支持多tab方式,这正是我想要的功能。我回去立马下载下来,抛弃了以前的Putty)这样时间长了,集众人之所长,你自然也成为效率达人了。

为了我追崇高效率那?我觉得最大的好处是能让我的大脑从繁重的重复劳动中解脱出来,从而能集中精神思考更有价值的事情,而不是被一些杂音干扰。

深圳华育网科技发展有限公司隶属华育国际集团,集团总部在北京,成立于年。秉承“立足北京,服务全国”的理念,在全部有十多家直营基地和就业实训中心。秉承“创新、务实、诚信、奋进”的企业精神,致力于以客户需求为中心,华育为IT行业提供各项资源和配套保障,同时在策划、人才、技术上的优势是华育立足市场的实力保证,华育国际已经成为中国IT订单实训的领航旗舰!

详情请登录官方网站







































北京正规治疗白癜风医院
白癜疯


转载请注明地址:http://www.yujinxiangqiangzhi.com/rjlc/1935.html


  • 上一篇文章:
  • 下一篇文章: 没有了
  • 公司简介 广告合作 发布优势 服务条款 隐私保护 网站地图 版权声明