当前位置: 首页 > news >正文

程序员如何提高工作效率

程序员被誉为一群智商很高的人,是一群帮助其他人提高效率的人,局外人会估计程序员一定是很聪明地、很高效地工作,可事实上却不是如此。周围很多人,也包括我自己,总是做一些重复性的工作,很机械,很低效地工作,前段时间读了经典书籍《卓有成效的程序员》,发现工作确实存在很多提高效率的改进点,只要自己花一点时间,花一点心思,用一点技术,很能出出其不意的效果。结合这本书,加上自己和他人的低效工作,总结了以下几个可以提高效率的方法:

1)键盘化你最常用的工具,编程时始终做到只用键盘

以eclipse为例有以下常用快捷键:

Ctrl+1 快速修复
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符(譬如{})
Ctrl+Shift+↑ 转至上一个成员
Ctrl+Shift+↓ 转至下一个成员
F3 打开声明
Ctrl+O 显示大纲
Ctrl+Shift+T 打开类型
Ctrl+Shift+R 打开资源
Ctrl+Shift+O 组织导入

2)制定邮件策略,不要让垃圾邮件和自己无关的邮件让自己分心

3)关掉所有软件的浮动提示,特别是IM工具弹出的新闻小窗口

4)使用RSS工具阅读信息,推荐使用google reader

5)每日规定几个小时隔离时间,在这个时间关掉所有IM工具和邮箱,专注当日最重要的事情

6)学会使用相关技术和工具来代替那些重复和乏味的工作

比如:

  • 开发linux shell脚本简化项目构建
  • 用windows bat脚本完成hosts环境绑定
  • 开发firefox插件简化上网流程
  • 开发eclipse plugins简化js的压缩和该版本号工作

提高效率是件需要长期坚持的事情,方法很多,关键在于自己是否有这个意识,是否愿意花一点时间来更聪明地工作,当你做到了你会发现收获颇多,一个是帮助了自己也帮助了他人,二是会很有成就感,另外会让自己的工作更有趣味。《卓有成效的程序员》里有很多思想上的小提示,觉得很受用,摘抄如下:

* 首选键盘而非鼠标
* 留意手边隐藏的快捷键
* 在上下文中学习快捷键,而不是去背列表
* 忘记历史就意味着你得多输入一遍
* 不要重复相同的事情
* 每天都花一点时间来使每一天都更高效
* 精力越集中,思维越缜密
* 不要动手做可以被自动化的事情
* 是否需要自动化关键在于投资回报率和缓解风险

相关文章:

  • Codeforces Round #624 (Div. 3) F - Moving Points(树状数组+去重离散化)
  • Codeforces Round #624 (Div. 3) 解(补)题报告
  • chipmunk物理引擎的基本概念和基本用法
  • STL之list
  • Medusa 3D 我的场景编辑器
  • 跟我学交换机配置(三)
  • 跟我学交换机配置(四)
  • 哈密顿回路 竞赛图 构造哈密顿回路(待更新)
  • 展现体验式营销的魅力(3,完)
  • UCF Local Programming Contest 2015 计蒜客重现 解(补)题报告
  • 那些年我们一起踩过的坑——读取字符(串)篇
  • Android开发指南-用户界面-菜单特性
  • ICPC North Central NA Contest 2017 - Is-A? Has-A? Who Knowz-A? (Floyd求传递闭包)
  • Android开发指南-用户界面-创建菜单
  • ICPC North Central NA Contest 2017 计蒜客重现 解(补)题报告
  • [PHP内核探索]PHP中的哈希表
  • Babel配置的不完全指南
  • Invalidate和postInvalidate的区别
  • iOS 系统授权开发
  • Next.js之基础概念(二)
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • swift基础之_对象 实例方法 对象方法。
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue ES6 Jade Scss Webpack Gulp
  • 阿里云Kubernetes容器服务上体验Knative
  • 聚类分析——Kmeans
  • 力扣(LeetCode)965
  • 排序算法学习笔记
  • 微信小程序设置上一页数据
  • 我从编程教室毕业
  • 一、python与pycharm的安装
  • 以太坊客户端Geth命令参数详解
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • #、%和$符号在OGNL表达式中经常出现
  • #Linux(make工具和makefile文件以及makefile语法)
  • (6)添加vue-cookie
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (离散数学)逻辑连接词
  • (力扣)1314.矩阵区域和
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (转)h264中avc和flv数据的解析
  • (转)为C# Windows服务添加安装程序
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • @Pointcut 使用
  • [BUUCTF 2018]Online Tool(特详解)
  • [C/C++]数据结构----顺序表的实现(增删查改)
  • [C++进阶篇]STL中vector的使用
  • [COI2007] Sabor
  • [CTO札记]如何测试用户接受度?
  • [Docker]十.Docker Swarm讲解
  • [emuch.net]MatrixComputations(7-12)
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页