下班时,我正坐在座位上,同事H突然找到我:“你现在忙吗?我想学git,你能教教我怎么学吗?”
我当时一愣,有点奇怪她怎么会提出这样一个问题。要知道,H是财务组的一个小女生,主要负责财务方面的工作,应该是不需要用到git这么专业的版本控制工具的。
我问她:“你是要转开发吗?怎么会想到学git?”
她说:“不是的,其实我想学VB,这样我可以在Excel中写脚本来做一些自动化的工作。同事Z教了我一些,可是他说,他不知道我每次代码改了哪些,找起来很麻烦,所以让我学git。用git是不是可以很方便的看到我这次的代码跟上次有哪些地方不同?”
我明白了,这又是一个“一言不合就舍近求远”的例子。
我问她:“你用git仅仅是用来比较文件的差异吗?你的VB代码需要跟其他人协作吗?”
她说不需要协作,“我之前的代码都是保存在文件里的,每次修改了就先复制成一个新文件,同时在文件名上加上版本号,比如版本1,版本2”
我又问她:“那你的VB代码是保存一个文件中,还是多个文件中?”
她说每次只需要一个文件就够了。
我又问“你是不是觉得git是很好学的,只需要我给你讲一下你就会了?”
她点了点头,“所以我才过来问你一下,你有空时教教我好不好?”
我心里叹了一口气,告诉她:“对于你来说,git还是一个很难掌握的一个东西,可能比你学会VB还要难。要不要看看有没有别的简单点的办法解决你的问题,能让你一分钟就学会的?”
然后我打开google,搜索了关键字“online text comparison”,得到了一堆结果:
随手打开了其中的https://text-compare.com,并输入了一些内容:
然后点击了Compare按钮:
可以看到,在上面的对比框中,左右两边代码的不同之处,已经通过高亮的形式展示出来了,一目了然。
如果想修改的话,直接在下面的两个大框里改就行了。
我问她:“这个能不能满足你的需求?如果不行,刚才搜索页面上还有一大堆可以试试的”
她开心的说:“太棒了,我就是想要这个!我还可以按我之前的方式来做,当我找同事Z帮我看代码的时候,把修改前后的代码分别贴在这里就行了!”
我问她还想学git吗,然后我俩都笑了。
然后她又问我,“那你能不能教我怎么学VB呢?同事Z给我推荐了一本VB的书,太厚了,我看不进去”。
我说我也没有学过,但是我有一种方法,可以试试。
于是我打开mindnode,写下了这几个问题:
在写的过程中,我每写一个,她都能快速的做出回答,说明她对VB已经有一些了解了。其中的“VB怎么调试”这个问题,她还不清楚,但是因为这已经是一个比较明确的问题,她说可以找同事Z教她一下。
然后我又接着写下这个问题:
她说这些她都很熟悉,而且她对Excel中的函数也很了解,知道怎么在VB中调用它们。这很好。
我又问她是怎么学习的。她告诉了我一个很重要的信息,在Excel中,有一个叫“宏”的功能,可以录制一些操作,就会自动生成相应的VB代码。有这么棒的功能啊,我们必须利用它:
由于它录制的是我们自己的操作,所以对于它产生的代码,我们就很清楚其功能是什么。如果我们能够仔细的阅读这些代码,不懂就问,是很容易搞清楚它的每一行在做什么。这是一种很好的学习方法。
她还告诉我,她现在特别想用VB做出来一个功能,所以她是边学边做,但是由于这个功能还是比较复杂的,所以中途老是出错,她又找不到问题出在哪里,感觉很郁闷,不知从哪里下手。
我说,这样的话,我们能不能先在网上找一些简单的例子,先把它们搞懂。她说,她也找过一些,但是跟她想做的功能有点远,感觉帮助不大,不想学它们。
那就只有“分解”啦!
我说,那我们能不能把你要做的功能分解成特别简单的步骤,比如说,你要做一个“读取两个单元格里的内容,经过计算后,写到另一个单元格”的功能,看起来有点大,那如果我们把它拆分成3个任务,先搞清楚“怎么读取单元格的内容”,然后再研究“怎么计算”,最后再解决“怎么把文字写入到一个单元格”中,那么这里的每一个任务,你还觉得难吗?
她非常肯定的说,“这不难,我自己就能搞定!”
于是,我又当着她的面,画了下面的这个图,边画边问她每个任务她觉得难不难:
前两个她都觉得不难,但是第三个,她觉得有点难。
没关系,我们继续拆分:
到了这里,她非常开心的说“我明白了你的意思啦!我会啦!”
我问她:“这半个小时的时间,是不是节省了你以后很多的时间?”
她说:“是的!能不能把这个图发给我,我知道该怎么学习它了!”
注:这里贴出来的图跟当时略有不同,主要是修正了一些文字上的错误