编程语法书肯定没有告诉你这些知识

现在越来越多人开始学习编程,但是开始学习之后痛苦不堪,深处痛苦的泥沼之中无法自拔,我身边也不停地有人在抱怨编程怎么这么难,那些大佬是怎么学的?今天我们就聊一下学习编程的正确姿势,当然我也不是什么大佬,只是给一点自己学习编程的经验分享给大家,希望让大家不再处于痛苦的泥沼中挣扎着前行。
找到学习编程的目标
首先在内心问一下自己:为什么要学习编程?这个问题大部分人都是没有想清楚的。编程语法是真的枯燥无味,回忆一下当初我们刚开始学习英语的时候,英语老师整天给你讲英语语法的时候你兴趣盎然了吗?除了那些天生携带对英语充满喜爱基因的小伙伴,我相信剩下的我们都是在昏昏欲睡中度过的,退一步讲,就算是我们努力强迫自己去听,隔两天你还记得老师给你讲了什么吗?我们需要不停地复习,不停地回顾来强迫自己去接受和记住这些乏味和内心排斥的东西。这种学习状态非常被动,效率当然非常低。编程的语法在某种程度上可以说比英语语法还要枯燥,因为计算机语言本身更难被人类理解,英语起码还是人类交流沟通的语言,虽然不是我们的母语,但是起码说明更能被人类所理解和接受。
所以在开始学习编程之前,找到自己编程的动力非常重要,记着,是非常重要!我看过那么多编程书籍,书写得非常好,语法讲解得非常清楚,但是没有一个作者考虑到了读者是否有动力去阅读这些内容。看看身边那些编程大佬,他们是整天抱着编程的语法书啃吗?你会发现大部分人之所以编程很厉害,不是因为他们看了多少书,而是他们做了多少东西,而且他们在做这些东西的时候乐在其中,他们在做的过程中学习新的知识,在这个享受的过程中提升自己,而很多编程新手,一开始就找本语法书从第一页开始看,就像是看故事书一样,但是语法书可不是故事书,语法那么生硬难懂的,头发不掉正常吗?正如我在文章什么是计算机编程,编程语言有哪些,我该选择哪门语言进行学习中说的一样,编程只是一个工具,我们是要学习如何使用工具,那么学习使用就是要用,而不是天天拿着斧子研究它的结构和成分组成!
回到最初的问题:你为什么要学习编程?是要找份工作?不错,很多人学习编程都是想要找份工作,这是学会编程给我们带来的直接利益结果,但是除此而外我们还应该具有对编程本身的兴趣。在开始学编程之前你应该要去找个目标,一个真正能让你感兴趣的目标,那个目标是让你觉得你要是实现了你就会感觉非常具有成就感和自豪的东西。比如我当初刚开始学习编程的时候,老师天天给我讲C语言,然后我就很好奇Windows里面我们用的程序都是有按钮的,为什么那个老师讲的就是一个黑框框。带着好奇心去图书馆翻了一些书籍发现原来要实现有按钮一类的程序得学习Windows编程知识,那时候自己并没有学习C++,但是依然学会了MFC编程(这个如果不懂可以不要管,就理解成可以写出有界面的程序的东西就可以了),因为我当时打算要写个属于自己的音乐播放器,我觉得这样自己很牛逼,我还为自己的音乐播放器设计了鼠标手势快进和后退,设计了快捷键呼出和隐藏,当自己这样快进和后退的时候,那种满足感油然而生,虽然它并不能在线下载歌曲,但是看着那些大众的音乐播放器,自己会莫名地产生一股鄙视地情绪,因为他们没有我实现的快进快退功能。这个实现的过程自己可以不睡觉,就算睡觉也会去构思,去思考与这个目标相关的一切,所以压根就睡不着。当自己实现了这个目标的时候,自己就发现对Windows编程有了一个初步的认识 (比如进度条控件的使用,对话框的创建,按钮的使用,鼠标的消息处理等等知识) ,也学会了很多相关的编程技巧(比如知道了有问题怎样百度/谷歌,到哪里去提问题等等),最重要的是对自己解决问题的能力的锻炼,让自己在后面的学习中编程碰到问题知道怎么去解决,这是最难能可贵的!在编程的道路上会碰到无数当时觉得奇奇怪怪的问题,解决问题的能力尤其可贵!
所以如果说你打算学习编程,我建议从兴趣开始,可以给自己设定个小目标,然后通过分析和查找资料看看自己需要学什么,一步一步去实现,当你沉浸在完成目标的喜悦之中的时候,你会发现你的编程能力也会有了突飞猛进的提升。如果你想要发现自己的兴趣所在,推荐一个网站:HelloGithub,里面有非常多的入手级开源项目供大家参考和学习。
作为程序员,不能不知道Github
这个社会不是一个人单打独斗的社会,得学会和别人交流信息,所以我们要多看看别人的编程习惯和项目。其中阅读别人写的代码是非常重要的一个环节,别人的代码和实现方法会给我们很多启发,并且有很多优秀的开源项目的代码书写是非常规范和可读的,我们通过去看别人的代码来和自己的代码对比,提升自己代码的规范程度。当你写的程序很大的时候,你会发现很多时候今天写的代码明天就不知道什么意思了,但是那些开源项目的代码可读性真的令人倾佩,代码结构如此清晰,变量命名让人一看就能猜到是干什么的。说了那么多,那开源代码哪里找呢?这里给大家推荐程序员不可不知道的网站:github。如果作为程序员连Github都不知道是干啥的真的就不能被称为程序员。Github是全球开源项目的聚集地,上面有数不清的开源项目,很多时候我们需要用到的代码别人可能都写好上传了,上去一搜就能搜到,而且别人可能写得比我们写得好多了。所以说对于程序员来说github是个不得不知道的网站。但是github有个不好的地方,全球化的交流社区难免需要全球化的语言,所以懂点英语就更好了(中文的项目也是有很多的,但是普遍老外的代码更可读,而且懂英语能接触到的优秀项目也更多)。
该如何阅读编程语法书
编程语法书无论讲得多么好你都是不可能完全看懂的,不是你不够聪明,是那个语言很反人类,如果我们人类某天开始使用if else交流的时候我们就能像看故事书一样看语法书读代码了。所以语法书上的语法看不懂很正常,没什么大不了的,但是我们要有个印象,比如知道条件语句要用if else。看语法书要有目的的看,就像我在第一节说的那样找到一个目标,然后先看看目录,看看大概有什么内容,当我们编程需要用到那些语法知识的时候才去深究,这种方法会让你对那些需要用到的语法知识进行深入思考,而且因为已经使用过了,你会发现你的记忆非常牢固,就算忘了再用的时候一看就知道怎么回事了。要是天天抱着书啃,也不是说学不会,只不过可能要仔仔细细地多啃几遍,多掉两根头发罢了。关于编程语法书,我还要给大家一个建议,多看外国人写的书(很多书都是有翻译版的),他们不仅仅会告诉你编程语法知识,还会给你一些编程习惯的建议,这些对我们后面的学习和编程是非常有帮助的,国内的书大部分只有干巴巴的语法知识。
一定要多做笔记
程序员不是说什么都需要记,况且好记性不如烂笔头,学会点东西一定要写个笔记记录下来,自己写的东西后面再来看才不会那么排斥,而且在写的过程中你会反复去思考,理清自己的思路,让自己理解得更加透彻。编程的知识点真的是多,很多也很零碎,所以一定要学习及笔记。这里我给大家推荐一下自己正在使用的笔记程序:Joplin,对于程序员来说真的好用!而且免费!永久免费无广告,因为这是一个开源软件。
最后
对于编程,只要你找到自己感兴趣的东西就没有想象得那么难,只要自己想学没有什么做不到的,那些所谓的编程不适合自己而放弃的人,只不过是给自己找个借口罢了,所以如果你真的想要学习编程,一定要找到兴趣和目标然后相信自己一定能完成自己的目标!