2016年的时候,在慕课网发表过一篇手记叫做:夜空中最亮的星:慕课网新手学习指南 这篇文章主要讲解了各大语言的区别,以及他们的学习路线。现在来看这篇文章里面有很多内容不足,所以有了这篇手记去弥补之前不足的地方。
我大概是从初一的时候开始接触编程的,从最早的汇编,vbs脚本,bat脚本,到后来的vb、.net、c/c++、java、python、golang。基本上流行的语言都学习过,也都使用他们做过开发。这些年也有很多亲戚让他们孩子跟着我学习,也有很多高中大学的同学投奔我,或者是跟着我学习编程。在这个过程中,我就发现了很多新手在一开始学习的时候容易遇到的状况,这些状况轻则丧失编程兴趣,重则失去学习能力。所以我很想把这些容易遇到的问题,以及我十年来总结的学习技巧和方法,希望能够帮助想要学习或者是正在学习的你们。
遇到问题就问这个事情每个新手都会有这种情况,包括我有时候也会有这样的毛病,就是遇到问题以后不想着自己去寻找解决方案而是到处找人问。
首先不耻下问的精神,非常的值得肯定。但是编程不同于其他,我们在编程路上会遇到无数的问题,我们总不能所有的问题都去问别人吧?大神一般都很忙的。一般也就像我这种菜鸟才有时间去回答问题去写手记以及在各大慕课网粉丝群跟人吹牛。
而且一般我们学习阶段遇到的问题都是很简单的,不存在说什么很深奥的问题,这个时候我们就一定要利用这些简单的问题来训练自己解决问题的思维和能力。什么意思呢?就是说我们在学习阶段一定要锻炼自己独立解决问题的能力,而不是遇到问题就去问别人。我看到很多同学看视频的时候遇到问题立马就去课程区提问,或者是私信讲师。当然了,我们慕课网的讲师都非常的平易近人,一般私信他们都会很耐心的给大家讲解。但是别人讲给你的东西,总是轻易得来的东西,轻易得来的东西总是记得不牢靠。让我印象最深刻的就是有一个跟着我学编程的朋友,他老是遇到问题,每次遇到问题他都觉得无法解决让我去给他讲解。久而久之呢,他就养成了依赖我的习惯。有一天晚上我睡觉去了,第二天早上的对话是这样的:
我:昨天晚上学得怎么样了?
他:我遇到了个问题解决不了,就没学了。
于是我帮他看他说的问题,就是很简单的一些问题,并且这种类似的问题之前给他讲解过无数次,包括怎么定位这些问题的步骤,每次都跟他说的非常详细。但是一旦遇到这些问题,他就不知道怎么解决了。
相反,另外一个跟着我学的朋友,跟他就形成了鲜明的对比。他每次学习的时候,遇到不懂的问题都去课程问答区搜索报错内容,然后根据别人的回答自己一步一步操作去定位,去解决问题。
之所以能发现这个是因为有一天我发现他们两个都在学习,但是其中一个从来不问我,只是遇到一些非常奇怪的问题才会问我。而那些问题往往真的是很奇怪,连我也会奇怪半天,花费一些时间去定位问题。于是有一天我就问他:
我:你怎么从来都没有问过我问题?
他:因为我发现我遇到的问题都有人遇到过了,一搜就搜出来了。
当时我真的是在心里拍案叫绝,这就是我一直强调的一句话:我们遇到的问题,已经有一万个人遇到并且解决了,而且他们还把解决的方法放在了网上。 为什么很多人就不能尝试自己去网上搜索一下呢?
大家不要觉得我是不想回答别人问题才故意找的借口,真的不是这样的,更何况我要是真不想回答一个人的问题,不理他就是了,何必编一些理由呢?更何况跟我学习的不是亲戚就是同学,真的是发自内心的为他们好才会那样说。
所以大家一定要养成一种学习的好习惯那就是,遇到问题,特别是遇到报错,一定一定不要慌。特别是往往非常长的一大串错误信息,这种很长的错误信息,根据我的经验,一般都是非常简单的问题导致的。那些往往很难解决的问题,它一般不报错。所以说,报错是好事,报错说明你又遇到了一个简单的问题,如果有一天你的程序不报错,但是莫名其妙的就是有问题,那才是你该烦恼的时候。
这里还有一个小窍门,我们的报错一般都是一长串,那一长串基本上都是没用的信息,往往最有用的信息只有最后一句。所以程序的报错要从下往上看,一般你把Exception:xxxxxx,那一句内容复制下来,去百度上搜索一下,就能找到解决的方法。而这句话上面一般都指向一个文件,那个文件就是你错误代码的位置。
Traceback (most recent call last):
File "/test.py", line 203, in <module>
test_fun()
File "/test.py", line 122, in test_fun
x = 1 / 0
ZeroDivisionError: integer division or modulo by zero
比如我们上面这段报错内容,根据我们上面说的,先看最后一句 ZeroDivisionError: integer division or modulo by zero
英语不好的同学可以用 谷歌中国翻译 直接把这一句都放进去翻译都行。
翻译的结果是:ZeroDivisionError:整数除法或零模
那么我们就能初步的判断,是因为我们把0用在了除法里出现了问题。知道了错误的原因,再网上看两行,File "/test.py", line 122, in test_fun
告诉我们,错误代码的位置在 test.py
这个文件的第 122 行。x = 1 / 0
是错误的代码。结合错误代码和报错翻译出来的信息,我们是不是就可以明白了为什么报错?因为0不能做除数。
是不是感觉报错也没有那么可怕了?当然这只是一个很简单的例子。往往我们用框架开发的时候,报错信息上面几个文件我们都不认识,那是因为报错是框架的文件最先报出来的。不过是因为我们自己代码写错了,才导致人家的框架报错,这时候就继续往上看,第一个看到的你认识的文件(就是你写的文件),一般就是导致出错的位置了。
真的希望大家学习的时候,可以自己去尝试解决问题,解决问题的能力真的是需要在学习阶段练就。等工作以后遇到的问题往往都比较难解决,如果你没有学习阶段练就的本领,工作的时候会让你很难受。
迷茫当我们学习一段时间以后,得不到任何的成效,或者是去面试,面试了好多家,但是没有一家愿意要你。面试官问一些问题你不会,然后你就觉得自己的学习毫无用处,自己好像永远也学不会编程。
面试官是什么?面试官就是一些假装自己很厉害的人,他们总是从网上找一些很奇怪的问题来难倒你,每个人的专精不同,如果奔着难倒一个人的目的去,我可以设计一套难倒任何人的面试题。遇到面试不懂的问题,一定不要气馁,因为面试官自己如果不在网上看答案他自己都不懂。
面试中不会的题,要细心的记下来,面试结束以后自己去网上搜索一下。如果是一些涉及到代码逻辑的问题,一定要自己动手打一打,去仔细体会别人说的这个问题的核心逻辑在哪里。这样你下次遇到这个问题的时候,不仅可以轻易的回答出来,还可以给面试官上一课。因为面试官可能只是知道答案,他可能并不知道背后导致这个结果的原因。
当我们学习很长一段时间以后啊,总是会感觉到一种无力感,那种无力感可能来自于方方面面。比如说你失业很久了,已经没有了收入来源,你每天都急于找到一个工作。或者是学了新的东西忘记旧的东西,总感觉自己记不住,学了也没用。
你会遇到这些问题,很正常。
我再次告诉大家,不光你们会忘,我也会忘,各种语言之父也会忘。大家都是人啊,大家不是神。连计算机想搜索磁盘中存储的内容还需要寻址,更何况我们是人。我们的大脑有一种保护机制,避免内容太多影响我们的思维,大脑会默认把一些很久不用的东西封存起来,这部分内容并不是彻底遗忘了,而是深度封存了,当我们再次看到与它相关的东西时,我们的大脑可以瞬间解锁封存的记忆。
简单点来说就是,当我们学完一个技术,很久不用了。然后需要用的时候快速回顾一下它的相关内容,我们的大脑就会有一种恍然大悟的感觉,基本上用不了半个小时就能完全回忆起来了。
忘记是正常的,如果大家谁学了东西不会忘,一定要在下面私信我。
关于迷茫这个问题,生活总是很辛苦的,你们所经历的,我们都经历过。迷茫嘛,谁的青春不迷茫呢?
当我们面对生活和未来时,每个人都会迷茫。我们之所以会迷茫,是因为我们的能力还不足以承载我们的梦想。这个时候我们只需要发奋努力学习,让我们的能力能够承载我们的梦想,就不会再迷茫了。
关于迷茫,大家可以参考我写的另外一篇手记,希望能够给大家一些微小的帮助。每次看到评论里有人说:车神,我关注你很久了,你的故事每次都能激励我,我要努力坚持,向你学习。
另一篇手记地址:我本微末凡尘,却也心向天空
我真的会感到很欣慰,在慕课网写一篇手记并不会带来什么收入,甚至还会耗费很多的时间。但是我还是愿意写这些,因为我觉得编程应该是一个开放的圈子,更何况大家都是在慕课网学习,要互帮互助。虽然我是慕课网的讲师,但是我曾经也是慕课网的学生,并且现在依然是慕课网的学生。我经常在慕课网看一些实战课,也经常和大家交流工作生活和学习中遇到的各种问题。
真的希望,我的文章能够帮助到每个看到的人,希望你们看完以后觉得自己得到了些什么,而不是觉得:这个人写个文章真啰嗦,浪费我这么多时间。
最后,想告诉大家一句我很喜欢的话:
有些事,不是看到希望才去努力。而是努力了,才能看到希望。
热门评论
开始慢慢迷上车神了~我是你的真爱粉~加油加油,干巴的
没有细看,不过感觉能帮到很多小伙伴
我编程一直都在自学。。有些困难网上找不到,周围也没人帮我,自己一个人在电脑前排错真的很难受,有时一个问题我要琢磨2天。。