最近在上新生大学的「JavaScript编程入门」,之所以起这个名字,是因为「新大」的徐高阳老师活用类比的方法,重新刷新了我对编程的认知。
过去我学习编程的经历是这样的,翻开一本编程教程,一上来就是数据类型、变量、数组、指针、循环、函数、迭代等等,然后基本就差不多了——差不多到放弃的时候了。所以在编程的世界里我在不停的「入门」,这真是一道「邪门」,每次我一进去就又出来了。
而这节课也让我终于明白到底是哪里出了问题。既然进了「门」就应该往前看,去发现眼前全新的世界,而不是继续盯着「门」看,那只会让自己又重新走出来。所以来一起看看这编程世界到底是什么样子吧。
1.代码执行流程
我把「代码的执行流程」看做是「工业产品化的过程」。通常一个工业产品化的过程包括设计、工艺、采购、生产加工、质保、销售、售后等诸多环节。而代码的执行似乎很简单,只是输入代码然后输出结果。
但实际上程序猿在打代码之前要先构思程序的功能,以及实现功能的方法,然后把这些思考用代码的方式表达出来,以便计算机可以执行。这跟工业产品设计师做到事情是一样的,设计师同样会根据产品的功能要求,思考实现方法,然后形成图纸和设计文件,以便后面可以顺利的生产。
区别只不过是计算机把后面生产的过程都完成了而已。这分明是逼着人转行当码农的节奏。
2.运行环境
把注意力集中放在了「环境」这两个字上,可以更容易的理解这个概念。所谓环境,就好比我们去商城购物、吃饭、看电影;去医院看病;去球场踢球一样。商场、医院和球场就是环境,在不同的环境里我们做的事情也是不一样的。
所以当我们听到,浏览器环境是做前端的,Node环境是做后端的,也就没什么可奇怪的了。它们不过是在不同的环境,做不同的事情而已。
3.V8引擎
喜欢汽车的同学都知道,引擎性能越高,车子的动力越强劲。至于是V8还是V12,那都不是重点。既然「V8引擎」是「运行环境」的核心,那么为了更好的理解,我再用医院做个类比好了。
虽然在医院这个「环境」下我们行为都是看病,但是在不同的医院看病的效果是完全不一样的。「引擎」强大的医院好比是大城市的三甲医院,而「引擎」弱的医院好比是乡村医院,这体验能一样吗?
嗯,肯定不一样啊,听说北京的大医院,挂个号都要找黄牛帮忙。
4.编译器VS解释器
一天BOSS走进办公室,手里拿着厚厚的一摞文件,走到「小编」面前说:小编啊,这些是国外传过来的文件,下班前全部翻译好放我桌上。翻译不完,加班!懂了吗?「小编」:哦……
第二天BOSS又来了,这次他走到「小解」的座位前说:小解啊,中午我要请几个国外的客户吃饭,你来给我当翻译,我说一句,你翻译一句。「小解」:好呀!好呀!
嗯,就这样……
5.内置库和第三方库
我们都用过12306买火车票吧,觉得这个网站好用的同学举手。没有……很好,说明大家是正常人。
虽然12306不好用,但是它确实实现了网上购票的功能,我们可以把它当做是实现这个功能的内置库。恰恰就是因为它不好用,所以第三方库一定会出现,比如360、智行等等。
从此,妈妈再也不用担心我买不到回家的票了。
6.学习JS的方向
方向感很重要,有目的的学习编程可以让我们知道自己在做什么,并因此保持动力。虽然我还没有这种体验,但是似乎这个逻辑比之前反复「入门」靠谱多了。于是我开始思考学习JS的方向。
这个方向一定是自己最想要的做。嗯……如果可以把股票的历史价格输入,然后输出未来股票价格走势,那要发大财了,直接屌丝逆袭,赢取白富美了,哈……哈……咳……咳!
友情提示,做白日梦的时候千万不要喝水。