快好知 kuaihz订阅观点

 

我是怎么自学编程的,兼谈我觉得该如何学习...

题图就是才子王勃写的“落霞与孤鹜齐飞,秋水共长天一色”的景色所在地,也就是滕王阁上望过去的江景。一来是因为当前是枯水期,所以看起来并不多美,二来对面已经是高楼林立,没有过去的模样。话说,才子王勃写的时候,滕王阁才两层楼,也没多高,但是那在古代的中国,在当地已经是鹤立鸡群一样的高大建筑了。现在呢,到处都是高楼,重修的滕王阁有9层,但是相对今天的标准,也算不得多高大了。

今天聊聊,我小时候是怎么开始自学编程的。

首先大概是在88-89年的时候,大概在我10岁的时候,我看了一个动画片叫做《星球大战-麦克瑞一号》,这个神奇的动画片,其实是两部日本动画片被美国公司引进改编成一个动画片,然后又被大陆引进的。后来好像没有怎么被重播过,甚至在网上都无法找到当时的原版普通话配音版本。

在遥远遥远的未来,黑星和他罪恶的军队为了控制整个地球而发动战争,他们唯一的对手是科学家詹姆斯·查格尔博士和他的精锐勇士。他们在一起,是不可战胜的,他们在一起就是麦克瑞I号。MA……MA……MA……MACRON 1

这段很燃的开场旁白的感觉我至今难以遗忘。

其实那时候电视机上的新闻和一些电视节目已经在讲计算机是什么对未来很重要的东西,但是我当时对计算机没有一个具象的认识。这个动画片第一次给了我一个计算机是什么具象认识,当然,现在看起来也许有点偏颇。

上图是战舰里面的主控电脑,看起来,更像一个巨大无比的吊灯。它叫雨果,平时它用语音和舰上成员交流,你可以问它任何问题,它无所不知,几乎无所不能。甚至主人公还经常用上图的一个台子跟雨果亲密接触,雨果就会用一个现在看起来是一个三维的宇宙投影作为场景跟主人公交流。

现在看起来,我一开始对电脑的预期就过高,我觉得电脑应该是可以语音交流的,应该无所不知,无所不能。虽然我一生中从来没有遇到过这样的电脑,但是这就是电脑给我的第一印象,这伴随了我一生。

其实那时候,国内还没多少计算机。有一些比较好的学校有Apple II,那时候的报纸上也有一些广告,但是显然不是我父母可以买得起的。

后来感谢我们牛逼的早期山寨产业。国内有一家叫做小霸王的公司,一直在山寨任天堂的红白机。

在日本玩正版游戏的玩家一盘几百块钱的游戏卡只能玩一个游戏,而在那时候,中国的玩家就可以买到各种68合一,168合一,256合一的游戏卡了,虽然里面大多数都是重复的游戏,有时候只是更换了一个颜色方案或者一些设置,但是仍旧可以廉价便宜的玩到当时几乎所有热门的红白机游戏。

那个时候,小霸王和类似的山寨游戏机厂商,开始做一种叫做学习记的机器。我不知道这类东西也是从日本或者美国山寨来的软件呢?还是完全自主研发的。反正你可以理解为用任天堂红白机兼容机的硬件,模拟一个PC的一些功能,显示器由电视机充当,带有键盘的这么一台机器。如下图:

说是学习机,其实游戏手柄齐全也完全兼容任天堂红白机的游戏,所以,当时很多孩子鼓动家里买的时候,无非是因为直接说买个游戏机,家里可能不同意。买个学习机听起来好多了,但是至于你在玩游戏还是学习,父母又不可能天天看着你。

但是,我真是冲着学习机这点买的。92年的时候,我刚刚上初中的时候,我父母拗不过我,给我买了一个学习机,那时候,我13岁。

我当时也天真的以为这和真的PC是一样的,无非是便宜一些而已。这种学习机的标配是打字练习软件,五笔练习软件,一两个小游戏,有的还有英语学习软件,后期的还有一些跟课本同步的课程。这些东西,我很快就玩腻了。我发现这里面有一个界面叫做BASIC。当时我其实都不知道计算机语言是什么。那时候,学习机上的BASIC大概就是这个样子:

这是BASIC还有行号的年代,不管你输入的代码顺序如何,实际上是根据行号大小来决定执行顺序。电视机的低分辨率上,每个字符都很大。这个界面本来不该吸引我的,但是我看学习机的说明书上说这BASIC可以用来做计算,在屏幕上打印一大堆字符,甚至可以调用一些图像符号,也就是说,我可以用它来编写类似马里奥一样的游戏。于是,我马上就入迷了。

首先,我先是对着手册用BASIC来试图解决数学课本上各种数学题。除了计算机字符里面是用*代替乘号,用/代替除号,当时没有办法输入分号以外,数学公式基本上可以算作任何一种语言的第一公民,所以非常容易就实现了。我当时就已经感受到了计算机的强大,不管对我多复杂的公式,只要输入到了BASIC,一执行马上就会出结果。

然后这很快就变得无聊了,毕竟我只是一个初中生,我并没有太多真实的计算需求。

于是我来是学习怎么在屏幕上显示字符,然后我干脆用BASIC复制了学习机里面内置的打字练习软件。那个软件其实很简单,就是有不同的字母从屏幕上方一点点掉下来,如果在字母消失之前,找到这个字母在键盘的位置并且用手按下这个键的话,这个字母就会爆炸消失,然后你就会得到相应的分数。如果你让一个字母落到最下面,就会炸掉你的地面上的一个球,好像是炸光了就输了,还是炸了多少个球就输了,我记不清楚了。

然后,后面一定就是写游戏了,用这个BASIC可以操作学习机里面存储的一些游戏角色,比如马里奥之类的。我就天天研究该怎么做一个可以玩的马里奥。那时候毕竟还是个初中生,很多东西都不懂,所以也有很多惊喜。

比如,我发现我可以控制某个键,写代码让角色左右移动。当然这样就像鬼了,那么我可以在移动的过程中,没移动一步切换一张脚部位置不同的图片。那么就有一步一步移动的感觉了。比如,我按跳的按钮,我可以设置一个移动速度,让角色上移,这就有跳起来的感觉了。但是如果一会儿也匀速掉下来,就看起来很奇怪。我记得好像我那时候在物理课已经学习了什么叫做自由落体,就是有固定的加速度往下运动。于是,我就尝试,让角色加速下落,直到落到地面,我就发现,看起来跳起落下的动作就看起来很自然了。

我至今还记得,我研究出来这些东西以后,在上学的路上眉飞色舞的跟同学讲这些的那一幕。

后来,到了高中,我们有了计算机课,学的是另外一种BASIC,更先进一点点,用PC机。不过高中我们只有高一有计算机课,我但是毫无争议的成为了计算机课代表,一时风光无限(每天都有妹子来问计算机作业该怎么做)。然后,我们连去学校机房的机会也没有了(没有课的时候不能去)。那时候,我也就是课上看看谭浩强的C语言和朋友买的Borland C++手册,但是不管是C语言,还是C++的运行环境我都没见过。那时候,我已经知道了学习机相对PC的不足,基本上那个BASIC已经是它能力的极限。而到了高三毕业的时候,我父母给我买了一台计算机,我才真正的拥有了自己的电脑。

以上,就是我自学编程的故事。

当然,从那以后,从92年一直到2018年,我一直都在学习编程一直到今天。但是你也可以说,我初中还没毕业,我已经确定自己是一个程序员了。即使那时候我不知道能不能找到程序员的工作,程序员的工作能不能养活我自己。

所以,当有人问我,大学没毕业,能不能学编程;三本毕业能不能学编程;学文科的能不能学编程;等等问题的时候,我都会斩钉截铁的说,可以。13岁的我可以,那么大多数人为啥不可以呢?

后来我这一辈子还遇到很多人,有12-13岁的不错的程序员,有更小年纪就会编程的小朋友,有12-13岁辍学,长大了去培训班学会编程的女孩儿,有各种各样来源的程序员。他们很多人都很优秀。并没有什么障碍阻止他们学习编程。

我觉得该怎么学习编程呢?

1、大多数时候,一本入门书,一个手册就可以了。但是,你有个培训班,也没坏处。但是,你需要用心的去钻研。

2、从学习的第一天就要开始写代码。如果你总是看个半个月书,然后一行代码也不写。那你可能确实不适合写程序。

3、不要把代码例子几百行一次性输入到电脑里。最好输入一行,或者输入几行就执行一次。不要只看最后的执行结果,关注每一个中间变量是不是跟你预想的一样。这样方便你深入理解代码。同时也不会让你因为输入了几百行,然后里面有很多错误,你费尽心力都无法找全他们而弄得心力憔悴,失去动力。

4、永远从使用出发去学习。比如,你学习Python没有意义。比较有意义的是学习Python去写一个爬虫,或者学习机器学习,再或者用Python做个网站。这样你会遇到更多实际的问题,而不是大而空的一个语言到底该干啥的问题。

5、每天都写代码,不要停,没有工作也可以写一些玩的代码。一个程序员需要足够多代码行数的积累。

6、参考别人的代码,但是永远不要粘贴别人的代码。看别人代码的目的是弄明白,在某个情境下,别人怎么解决问题,而不是既然有人解决了这个问题,我就不知其所以然的贴到我的代码里面撞大运吧。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:自学  自学词条  觉得  觉得词条  编程  编程词条  怎么  怎么词条  如何  如何词条  
综合数码问答

 如何压缩大文件

使用压缩软件压缩大文件和文件夹压缩大的视频文件压缩大图片压缩大的音频文件5 参考在常见的操作系统中压缩文件是很简单的,但是如果需要压缩的文件很大就有点复杂了。如...(展开)

综合

 vmware workstati...

VMware Workstation10是一款功能强大的桌面虚拟计算机软件,简单来说就是最强的中文虚拟机了,可以在桌面上运行不同的操作系统。本次新睿云教您安装以...(展开)