各种VS Code的学习秘诀,全是这六条法则撑起的!

陈晓猛

2020-07-21

VSCode黑宝书《Visual Studio Code 权威指南》上市后反响强烈,不到一个月的时间,便带领5000+读者目睹了VSCode那庞大且奇幻的真实世界!

除了挖掘那些不为人所知的核心功能、学习Visual Studio Code本身的内容外,还要学习如何学习Visual Studio Code的能力,做到举一反三,这将会使自己在未来受用无穷。本文我们会重点来聊聊“如何学习”这件事。学习能力往往也是互通的,我们在本文所学的学习能力并不只是对于学习Visual Studio Code有用,在学习其他技术时,也可以有所借鉴。

  • 想了解VS Code那些“超纲级”知识点的同学,欢迎到书中一探究竟,文末可获取本书详情~

1 学会搜索

做一个优秀的Google程序员,做一个优秀的Stack Overflow程序员。学会使用Stack Overflow和Google是成为一个优秀程序员的必要条件。一个优秀的程序员一定会合理地使用Stack Overflow和Google来搜索和解决问题。会使用Stack Overflow和Google,不一定是优秀的程序员。但不会使用Stack Overflow和Google,就一定不会是优秀的程序员。

在学习和使用Visual Studio Code的过程中,无论是谁都会遇到各式各样的问题。学会搜索,是你的必经之路。相信读者朋友都是优秀的程序员,Google、Bing、Stack Overflow将会是你在搜索解决方案过程中的最好的朋友。

除此之外,Visual Studio Code官网和Visual Studio Code的GitHub仓库也是搜索Visual Studio Code相关内容的最佳途径。

Visual Studio Code官网有着很详尽的使用和插件开发文档。Visual Studio Code的GitHub仓库有Issues和Wiki页面。通过GitHub Issues,你可以查找自己遇到的bug是不是一个已知的问题。通过GitHub Wiki,你可以了解到Visual Studio Code未来半年甚至一年的规划,也可以搜索到如何为Visual Studio Code做贡献。

2 学会提问

平时,笔者经常会从不同渠道(邮件、GitHub Issues、微信、QQ、知乎)看到或收到不同人对于Visual Studio Code提出的相关问题,甚至从支付宝来的提问都有。笔者有一个很大的感受,就是有一部分人并不善于提问。

笔者还建立了不少Visual Studio Code的微信群和QQ群,方便大家交流学习。然而,笔者经常会在群里看见类似这样的问题:

有人用VS Code写Java吗,

我怎么运行不了?

这个按钮怎么变灰了?

有大佬在吗?想问个问题!

……

有些问题只有一个比较随意的截图,甚至没有截图!对于这样的问题,群里的反应往往是以下两种。

  • 群里静悄悄,一片安静。

  • 群里又开始讨论其他话题,“无视了”这个问题。

那么为什么会这样呢?是群友们都不想帮助提问者吗?当然不是!问题还是出在提问者上,提问者没有学会如何正确地提问。

首先,在提问之前,你有没有尝试自己去解决这个问题?有没有思考过问题的原因?有没有通过Google、Bing、Stack Overflow等网站搜索过类似的问题?有没有在Visual Studio Code的GitHub Issues上搜索过它是不是已知的bug?

如果已经尝试解决过问题,但没有成功。那么你可以开始寻求别人的帮助。对于提出的问题,一定要描述详尽。如果是一个bug,要提供可以完整复现bug的步骤。特别是对于与Visual Studio Code相关的问题,要提供Visual Studio Code的版本、操作系统的版本、期望的结果与实际的结果、原始的代码片段等信息。必要的时候,还要提供相应的截图。对于源代码,尽量提供文本或源文件,而不只是截图,以便他人用于复现。如果代码量很大,则可以重新创建一个文件以存放可用于复现的代码,去除不必要的代码,缩小整体的代码量。

有一个描述清晰的问题,才更有可能获得别人的帮助。

3 学会学习

“师者,所以传道授业解惑也。”我们可以看到,自古以来,我们就把“传道”放在了“授业”和“解惑”之前,其重要性可见一斑。虽然本书的大部分章节是关于“授业”的,但贯穿其中的,不乏“传道”的内容。希望读者朋友通过本书的“授业”能掌握Visual Studio Code的各项内容,更能通过本书的“传道”,提升自己的学习能力,拥有自己的思考,了解Visual Studio Code背后的原理,通过本书的内容举一反三,学到更多知识。

4 自己的思考

在寻求帮助之前,自己要对问题进行过认真思考。比如,你经常使用的某个插件出现了一个bug。这个bug在Visual Studio Code 1.36上是不存在的,但在1.37上就出现了。那么在开始给插件提Issue之前,是不是可以自己思考一下,也许是Visual Studio Code 1.37版本的更改或regression(倒退的错误)导致了插件的bug。在提issue时,能给出自己遇到的情况和思考,可以更好地帮助插件开发者找到问题的根本原因。同时,对自己也能有很大的帮助。

再比如被广泛使用的Code Runner插件,读者有没有想过背后的实现原理是什么?其实,原理很简单。这里留给读者自己思考。相信读者通过思考后,一定会有自己的答案。读者也可以查看Code Runner的源代码(见参考资料[3]),通过查看源代码便可以了解其原理。如果以后遇到Code Runner的bug,也许就不用再向笔者寻求帮助了,直接发一个Pull request,岂不是更棒?

5 知其然知其所以然

相信很多人都是Visual Studio Code的使用者,而Visual Studio Code 的开发者或插件开发者只占其中很小的比例。作为一个使用者,知道Visual Studio Code背后更多的原理和技术栈,知其然知其所以然,对自己也是很大的帮助。

2019年,微软正式发布了Visual Studio Online。网页版的Visual Studio Online其实是基于Visual Studio Code而打造的。如果你能知道Visual Studio Code是基于Electron开发框架开发的,而Electron是基于HTML、CSS、JavaScript等Web技术栈而开发的,你就一定能理解为什么Visual Studio Online是基于Visual Studio Code开发的了。此外,Visual Studio Code的核心组件、“前端”与“后端”分离的架构设计、进程隔离的插件模型,都为Visual Studio Online打下了坚实的基础。这也是值得我们学习的地方。

了解背后的原理和技术栈不仅有助于我们使用Visual Studio Code这个开发工具本身,而且可以帮助我们在日常的项目开发中了解更多的技术选型和架构设计,开阔我们的眼界。

6 举一反三

也许,你是一个多语言开发者,需要在Visual Studio Code中同时使用Python和Pascal语言。通过学习,你可以玩转Visual Studio Code的Python使用技巧,同时也应该学会举一反三。在一些方面,不同语言的开发体验是相近的。如果你已经学会了在Visual Studio Code中对Python代码进行代码编辑、静态代码检查、调试、单元测试等功能,那么在Visual Studio Code中编写Pascal时,你就可以有相应的参考。Visual Studio Code为调试、智能提示、代码导航等功能都提供了风格一致的开发体验。有了举一反三的能力,你就能在Visual Studio Code中更快地上手不同编程语言的开发。

本文节选自《Visual Studio Code 权威指南》

▼加入本书交流群▼

与本书作者、读者共同交流

关于本书

《Visual Studio Code 权威指南》

韩骏 著

  • VS Code首著问世,微软官方出品

  • 从入门到精通,社区倾情巨献

本书由浅入深地介绍了Visual Studio Code的各个方面,主要包括Visual Studio Code的核心组件、使用技巧、进阶应用、插件推荐、插件开发、Visual Studio family的各个核心产品等。此外,本书还详细介绍了如何使用Visual Studio Code进行各种编程语言的开发、前端开发、云计算开发、物联网开发和远程开发。

(扫码了解本书详情)

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    3957 646 3 6
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    2467 35 0 1
  • czk 2017-07-29
    3556 25 0 1