我指的不是通过查看列表进行学习。相反,你使用哪些技巧来建立自动肌肉记忆?
你是否每天选择一个键盘快捷键并在一整天中练习它?你是专注于同时学习所有快捷键吗?你是先学习一个应用程序的快捷键,然后再转到另一个应用程序吗?你有奇怪的“游戏”可以帮助您提醒吗?还是什么都不做,或者采用某种激进的方法?
这对我来说是一个有趣的问题,因为我的新(第一台)Mac即将到货,我想知道我将使用哪些方法最快地学会尽可能少地使用鼠标,在一个我完全陌生的环境中。
找到一份列出最有用快捷键的参考卡/备忘单,然后打印一份副本并贴在显示器侧面。
使用应用程序一段时间后,熟悉了大多数快捷键,重新阅读完整的文档,并发现第一次看时没有被认为非常有用的新功能。
我通常通过注意到我最需要的功能,并在使用鼠标选择功能时记下快捷键来学习快捷方式。当然,这只适用于显示键盘快捷键以及主菜单项或工具栏按钮工具提示的应用程序。(幸运的是,Eclipse确实做到了这一点。)
我曾经尝试过“断网戒鼠”法,有一定的成功率:就是直接拔掉鼠标。把它放在你够不到的地方,然后试着适应。
快捷键是方便之事,当我经常使用它们时,我会变得很舒适。
换句话说,我不练习偶尔使用的快捷键,而是那些我一直在使用的快捷键(复制、粘贴、注释代码块等)最终成为了我的“闭着眼睛也能做到”的技能。
没有什么激进的东西,没有游戏,没有练习——只有使用。
像速拧魔方一样记忆代码算法
有些软件(如Photoshop)有太多的快捷键,实际上无法全部吸收,但是练习是最好的选择。
个人而言,我并不是很喜欢使用键盘快捷键,因为它们会妨碍我在 GUI 之间移动,而且我也没有觉得它们能够提高我的工作效率——但这可能只是因为我思考的速度比打字慢,你的情况可能不同。
我大部分的“编码”时间都花在了尝试消除冗余和简化设计上——我从来不会只写一个方法然后就离开它,我通常会重写几次,直到代码易读且基本无 bug;因此打字速度并不是那么重要。如果我在编码前不花时间去思考,那么我以后就会在重构和修复 bug 上花费更多的时间。
总之,当我做某件事情足够多次时,我就会想出一种按键方式来完成它。经过多年使用 Eclipse,我现在知道了大约 5 种加速器。
ctrl-shift-t(转到类型)可能是其中最实用的一个(好吧,在 ctrl-space 之后,我甚至不认为它是一个加速器,只是打字的一部分)。
优化导入(我想它是 shift-alt-o)也很方便,但有 9 次中有 10 次 ctrl-space 已经可以为你完成这个操作了。当你需要粘贴大量代码时,它就派上用场了。
有时候我会按下ctrl-1打开“常见修复”选项。当我需要一次性“修复”很多东西时,我会这样做。配对编程。理想情况下,是“放荡不羁”的配对编程。
你的IDE有成千上万个命令,如果你打算学习所有这些命令,那将需要很长时间,最终也不值得麻烦。重要的命令是你经常使用(或应该使用)的命令,可以为你节省大量时间的命令。如果你与其他程序员配对,每当他们做出惊人的事情 - 每当你期望看到很多步骤,而变化“只是发生了” - 你会大喊,“嘿!你是怎么做到的?”然后你的搭档告诉你。那种经历的震撼和愉悦会让你记住那个技巧。这是最好的学习方式。
进行“放荡不羁”的配对的原因是,我们每个人都学会了不同的快捷方式、不同的技巧;你与更多的人配对,就有更多的机会接触到伟大的技巧。
这种学习不是故意的;它是自然而然地与实际完成工作并行进行的。