程序员高效开发的几个技巧
使用高效的工具
==============
1. 尽可能使用快捷键
习惯使用鼠标的人要注意了,如果要对代码高效操作,应该尽量少使用鼠标,因为鼠标操作不能形成惯性,往往你使用鼠标的时候需要你集中精神才能点到你想要的按钮。人的大脑进行思维的时候需要高度聚焦,才能有专注力进行高效工作,而当聚焦时被打断后可能还需要十几分钟时间来聚集,所以如果大脑常被打断就很难有高效率。
而快捷键虽然最初使用会比较慢,但这种操作容易成为习惯。习惯后使用它几乎不会打断专注力,并且操作效率也高很多。
2. 使用快捷键丰富的软件
使用WINDOWS的话,要熟记几个常用的快捷键:
F2 重命名
Shift + F10 鼠标右键菜单
win + r 运行栏
win + m 显示桌面
Ctrl + w 关闭当前TAB
Ctrl + tab TAB切换
VIM、Sublime、PHPStorm等代码工具都是很好的选择,一般都会支持以下快捷键:
ctrl + f 文件搜索
ctrl + g 跳到指定行数
ctrl + Page Up/Down TAB左右切换
另外也提一提Total Commander(TC),它是个目录工具,但支持分栏与TAB的功能,对于目录的组织更好,也有利于快速寻找。
时间状态分析
============
在一天当中,要分析好的自己时间状态,应该对几个时段进行归类:
-工作效率最高的时段,暂称 时段1
-想法最多、灵感最好的时段,暂称 时段2
-最低效的时段(可能用于沟通或经常被打扰),暂称 时段3
如果发现时段3的时间占很大的比重,那就应该考虑一下怎么改善这个时段,让它成为时段1或时段2
例如工作环境很吵,吵你无法集中精神,你可以选择戴上耳机,听一些激快的歌曲。
对于复杂项目
============
逻辑复杂的程序不要急于开发,如果不慎重,到开发的中后期可能因为结构设计不理想而不得不重构程序。
建议以下几步:
1. 用记事本把需求列出
2. 把需求实现按功能性细分成各个互不相干“小任务”与“复杂任务”
3. 再开多一个记事本,对“复杂任务”再细分。例如数据结构、业务流程的总结
4. 总结出复杂任务中需要攻克的“难点”。一般来说“难点”都被攻克的话,“复杂任务”就可以化成“小任务”
5. 到此已经对整个项目有一个概要的总结,可以从中挑三个小任务安排在日程上。待完成后再挑三个,如此类推。
可以先把“小任务”分配到时段1进行,把复杂任务的构思安排到时段2进行,时段3可以用于不需要集中精神的工作,例如对以上列出的“难点”进行百度GOOGLE,寻求解决方案,或对某技术的深入研究,最好是能对项目效率提高的研究。
PS:如果项目规模很小并没有技术难点,却可以直接进行
要习惯做总结
============
把代码片段记下来,或者把程序方法写下来,也是种做总结的方法。必竟代码如海,人的大脑记不住那么大量的代码。可以把常用代码做成通用的类库或者记到记事本上。
关于记事本我推荐使用有同步功能的软件,例如evernote,为知等。除了数据同步以外,搜索功能也是必不可少的,例如为知可以搜索到文章题目与内容。建议题目命名要有足够多的关键字,这样进行搜索会容易很多。
善于沟通
========
程序员真的需要沟通能力的?其实可能很多程序员都是埋头苦干型,别人给你什么需求你就做什么功能,但这样的程序员往往工作量一直都很繁重。
其实项目需求这东西,是可以因沟通而改变的,就如客户天天改需求一样。作为项目的开发人员,其实没有人比你对项目更了解,客户为什么天天改需求都不满意?是因为他们不知道自己想做什么,而作为开发人员,是可以正确引导客户去减掉可能多余的功能,并且比销售人员更有说服力才对。如果团队有PM这个角色的话,一般不必开发人员跟客户直接沟通的,但不要以为这样就代表不必去沟通了,开发人员与PM之间也需要沟通,你要把你合理的需求想法表达给PM,PM才可以更有说服力去说服客户。
沟通也是团队的重要的技能,没有人是万能的,你会有很多机会需要其他人的协助,并可能需要与别人一起进行项目。所以不要忽视沟通能力的重要性,现在起多主动点与人交流吧!
要注意休息
==========
最理想的睡眠时间是10点,在晚上11点到1点之内必须入睡,否则过了1点之后,大多数人的身质都会在这个时间之后无法入睡或者难以入睡。
睡前不要做让你大脑处于兴奋状态的事,这样会影响入睡。不过我是个反面教材,因为我的时段2在晚上9点到1点之间,所以我在这个时段有灵感做总结写文章,但却会让我难以入眠。这一点也让我很头痛,但我想大多数程序员也跟我差不多。