据报道,一位来自加拿大的大四学霸,开发了一个“Deep TabNine"代码补全工具,支持23种编程语言,5种编辑器,而且使用非常简单,效果惊艳。不少使用过的网友纷纷点赞:TabNine是他们使用过的最好的代码补全工具,属于程序员杀手级的应用。
在VS Code扩展商店里,TabNine已经被下载1.3万+次,获得全5星好评。像我们常用的Java,C++, Python都在它支持的范围之内。
代码补全工具就是根据程序员所敲击的指令推测后续的代码,补自动填补。类似的功能我们在eclipse中就已经体验过,不过TabNine不是补充单条指令,而是推测程序员的意图,补全整块代码。设想一下,这样编写程序该多省事。
的确,代码提示或代码补全工具会显著提高程序设计的效率,对于程序员来说,是个极大的福音。但是我们在这里提醒的是,对于初学者来说,最好离这些工具远一些,因为这样的“助手”会让人变傻。
程序设计不是简单的堆砌代码,一个优秀的程序员需要打好成长的基础,至少要熟悉一门编程语言。什么是熟悉啊?至少常用指令和常用算法会信手掂来,而不是去百度搜,也不是去查资料。搜索引擎的出现,已经开始low化了我们的大脑,我们已经开始惰于记忆、勤于查询而浑然不觉,很多同学甚至连访问学校的官网都要去百度检索一下。有些学校在一些程序设计课程中给初学程序设计的学生使用带有代码提示功能的集成开发环境,一开始就养成了不好的习惯。
我曾经亲身经历了一次令人尴尬的面试:某知名985学校的学生应聘java工程师,项目经理让他使用vim编辑一段程序,结果这个学生当场挂掉,因为他只会在eclipse中写代码,更尴尬得是他竟然记不住java最常用的几个指令,也就是说脱离了提示帮助,他写不了几行代码!
这个经历对我触动很大,所以从那时起我给学生讲授程序设计课程时,比如c和java,特别是刚接触程序开发课程的学生,坚决要求其在vim中写程序,各种便捷的IDE工具一概禁用。可想而知,学生们哭声一片,这种行编辑器是多么折磨人!一个学期下来,大多数学生对语言的掌握水平比之前的班级提高了许多,尽管怨言一片,但还都坚持了下来。在后续的课程中,我逐步开放了IDE的使用,最终的结果是,这种分层的体验更有利于初学者的成长。
没有上万行的艰苦磨练,最好不要过早使用还有提醒或补全功能IDE。“磨练不误砍柴功”,程序设计需要打好基础。特别在Python被热捧的今天,很多朋友加入到Python学习的大军。我们不否认Python语法简单,使用方便,在PyCharm这样的IDE帮助下,程序写起来更加容易 。但正因为如此,才更容易跑偏,最后也只能陷入刷代码的大坑,而不会使用Python写出高质量的程序。