俗话说,江湖唯快不破。也就是说,要想成为江湖高手,就必须动作快,才能在江湖上站稳脚跟,才不会丢了脑袋。而程序员要想在IT界扬名立万,还必须要有效率。IT行业无时无刻不在产生新知识、新技术,需要几把刷子才能跟上变化。而我个人喜欢各种提高工作效率的方法,所以可以和大家分享一些经验。1、键盘功底要扎实。在键盘上打字时使用标准指法。也许你认为这是程序员的基本功,但我发现很多程序员做不到这一点。看到他们敲代码时笨拙的指法,我不耐烦了。其实,练习标准指法并不难。我还是一指禅好几年了。我打字很慢。别说现在飞手指了,也算是小有成就了。我可以推荐一些练习指法和键盘速度的网站:http://10fastfingers.com/typing-test/english,这是练习标准指法,我可以轻松达到60WPM(每分钟60个单词),我有一个外国colleague可以达到130多,那叫恐怖。http://typing.io/lessons,一个专门给程序员练习敲代码的网站,里面夹杂着各种括号和标点符号,有点难度。2、熟悉IDE的各种快捷键和功能。IDE基本上是编码人员在工作中使用时间最长的软件。首先,你必须选择一个适合你的IDE。俗话说,工欲善其事必先利其器。如果是C#阵营的,那肯定是最新版的VistualStudio。如果是Java阵营的话,那当然是Intellij了(eclipse作为一个开源IDE,确实比不上Intellij)。我现在可以在95%的情况下不用鼠标使用I??ntellij,使用全键盘完成开发过程中的大部分操作。我认为常用的快捷键和不常用的快捷键之间没有任何区别。只要知道快捷键,就应该使用它们。尤其是各种重构捷径要熟练掌握。我看到coder修改变量名的时候,不需要refactorshortcut,而是手动把引用的地方一个一个改,然后编译查错。我真的抓住了他们。紧迫的。还有各种内联和引入快捷键,真的好用。掌握了这些快捷键之后,可以说任何重构代码都是不费吹灰之力的。我们的注意力也从手动修改代码转移到了如何发现不好的Taste上。建议在VistualStudio中安装ReSharper,其开发公司与Intellij开发公司相同。除了重构快捷键,还需要掌握一些IDE特性,比如调试时插入指定条件打断点等,这些都需要日常的积累和学习,也需要好奇心。我敢说,如果你现在一个一个地看IDE菜单,至少有30%的功能你没用过或者不知道是干什么用的。其实里面的一些功能是很实用的,只是你没有尝试过而已。3、熟悉至少一种shell终端。作为一个程序员,怎么会用图形界面,非要用那个古老的命令行界面才能显示你的熟练程度!任何人都可以控制鼠标点界面,但不是每个人都可以控制命令行界面。有些功能在命令行下的效率是图形界面下的N倍。比如我在用git提交文件的时候,总是在命令行下查看哪些文件被修改了,哪些是新增的,修改了哪些部分等等。使用图形界面需要用鼠标点击,效率太低。linux系统下终端太多,不推荐。Mac系统下推荐使用iTerm2shell。它比MAC自带的终端多了很多实用功能,还可以轻松切换你喜欢的配色方案。WindowsPowerShell当然是最先在Windows下推广的。WindowsPowerShell本身集成了常用的实用程序,并与.net框架无缝集成,这一点远不如Windows上的那些类Linux仿真器(如Cygwin)。4、具有一定的shell脚本编写知识。仅仅使用现有的脚本是不够的,还要根据情况编写脚本来实现自己的一些特定目标。比如我在MAC机上使用终端时,经常需要在不同的目录之间跳转,每次都要敲一系列的cd。很麻烦。后来自己写了一个小工具,可以启动指定目录Alias,如果想跳转到这个目录,输入别名就可以了(见http://www.huangbowen.net/blog/2013/02/16/gtshell/)。还有,我在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快捷键乖乖清理一段难看的代码,耳目一新的熏陶下,我更加坚定了不做Almost先生的决心。所以平时和同事一起工作的时候,我会注意他们有什么方法和工具来提高他们的工作效率,如果他们使用了一些有用的快捷键,而我不知道,那我就记下来,下次用(快捷键熟练度我已经是我们项目组第一了),如果看到他们用了一些好的工具,我会立马回去下载自己用的。(比如前两天,看到同事用SuperPutty连接to远程主机。它支持多标签模式,这正是我想要的功能。回去立马下载下来,抛弃之前的Putty。)如果你是导演,自然会成为效率达人。为了我追求高效率?我觉得***的好处是让我的大脑从繁重的重复性工作中解脱出来,让我可以专心思考更有价值的事情,而不是被一些噪音打扰。原文链接:https://img.ydisp.cn/news/20220914/hokkbojbi5d.html
