给初学编程的朋友一些建议

今天是中秋节假期的最后一天,一个人在家闲来无事,因为最近在录制一些关于学习和技术的视频教程,所以想和大家简单聊一下关于编程习惯和学习方法的观点和看法送给初学者朋友。这个时代的知识量是巨大的,不说别的,就单单是我从事的 Android 开发工作来说知识量比我刚开始学习 Android 的时候就有了一个暴增,知识暴增换来的是一种细分和选择,划分的领域更加细致更加深入,选择最合适最有效率的工具我们就可以达到事半功倍。知识的更迭需要我们以正确的方式去面对,而习惯和学习方法无疑是应对过程中的重点。

编码习惯

习惯这个东西从小家长和老师就一直在给我们强调,而我们作为一个程序员最重要的东西我觉得就是编码习惯,它是你是否可以达到优秀的基础。生活中很多时候我们一开始忽视的东西到最后却成为我们苦苦追寻的真理,因为这些东西在一开始不能得到很直观的收获,反而是一些比较表面的东西能引起人们的注意。计算机编程说通俗点就是把人的思维用代码表达出来(高级语言均如此),所以说它和写作和绘画一样也是一种表达方式,而这种表达比写作和绘画更复杂一些,因为其中涉及到了协作和沟通问题,越是大型的项目沟通成本会成倍的增加。因此,我们便想到了用一些工具来减少不必要的沟通成本,例如 Git、产品文档、原型图、流程图等。但是这些方法也只是一个规范上的简单约束和思维是的引导而已,我们其实更应该重视创作本身的沟通问题,对于我们的代码而言就是结构和代码规范,这些东西才是真正的沟通根源。

学习一门语言应该是先分后和的过程,在一开始不要被一些细节绊住脚,而应该不拘小节的去学习和实践,只有放得开才会碰的头破血流,这个时候你再对你自身反省接着收一下记住这个教训。直到有一天你会遇到一个大坑,这个时候你就会理解表面之外的一些东西,然后再去细追原因,让自己重新认识,螺旋式上升

但是很多时候我们是不幸运的,我们面临的教育(培训或者视频课程)都是只教会我们如何使用而已,原理的东西很少(这也很正常,时间上不够充裕)更别说这些超越语言本身之上的通用知识(例如编码习惯)。我们都知道搞美术的或者说搞艺术的需要提审自己的审美能力,这样才能做出更加优秀的作品,如果自己的品味都很低何谈做出优秀作品,对于我们程序员也是同样的道理,我们应该多去看别人的源码,这个比啃书获得的知识有用的多,到了一定阶段后我们应该变换学习的习惯和方法,多从别人的代码中获得共鸣和疑惑,这些疑惑才是你进步的宝贵财富,解开它你就能再上一个台阶。最重要的是我们可以从一些优秀代码中获得别人的编码风格和习惯,这个是代码艺术的灵魂,你得慢慢摸索,它是脱离于具体语言之外的东西,很重要。

本文由 水寒 发表在 水寒的个人博客 转载请说明出处:https://dp2px.com

学习方法

在说学习方法之前我们先来聊聊学习这种东西到底有没有一个有效的方法,我们从小到大经常听别人分享他自己的学习方法和心得,在听的时候给我们很大鼓舞(打鸡血),但是听完之后就没有任何效果了,所以慢慢的就觉得什么学习方法啊,都是一些心灵鸡汤。

实际上我个人认为学习方法是存在的而且是行之有效的,可以让你的学习效率提升很高。为什么我们总是觉得别人的学习方法不适合自己,那是因为方法这个东西需要实践才能总结,就像不能复制别人的成功一样,我们的个性差异和实践环境和别人不同,这样 我们只能领略别人的学习精神而不是方法。每一个有过自学经历的人我相信都会总结出一套适合自己的学习方法,你们每个人都一样,很多时候我们只需要入门即可,不要过多的依赖于他人,自己去摸索才能总结出自己的方法,才能有效的学习达到主线知识和主线之外的额外收获。

我不赞成学习是一个枯燥的事情,如果你认为你学习某样东西的时候很沮丧很痛苦,我建议你先静下来分析一下自身的特点和自己的喜好,从自己喜欢的方面入手,比如你认为学习英语很枯燥很痛苦,如果你认证思考后发现你不喜欢死记硬背东西,而是喜欢分析和思考。那么我建议你花更多的时间到其他事情上去吧,再通过其他有趣的事情带动你先接触英语,例如看美剧,和国际友人在网上交流,促使你产生一些外语兴趣。就拿我做的这个网站来说吧,一开始其实我对前端的知识也不是很懂,如果让我从开始就学习一些语法之类的东西我可能早已放弃了,做这个网站正是我学习前端技术的契机和桥梁,通过不同的改造并将自己的想法实现出来,这样一步步的搜索,然后促使我想系统的学习前端技术,这样学习的目的就有了,带着这样的目的才能学好。

度过枯燥期

行之有效的学习方法是能帮助我们达到事半功倍,但是很多时候我们按照兴趣的方向发展太慢了,对于像我这种心浮气躁的人来说就按耐不住内心的急躁,还记得刚毕业那会那简直是拼,白天上班晚上学到12点,周末很多时候都不休息,典型的技术宅。但是即使是那样你还是和别人有很大差距怎么办,我觉得有两条路可以走,一条是硬碰硬,另一条是另辟蹊径。硬碰硬就需要你有足够的精力来规划自己的学习目标,这样就给自己带来了外部压力,这种压力促使你的学习过程中遇到很多困难而且枯燥无味,有时候感觉浑身乏力还是达不到目标,这个过程中我们要不断地回头看,遇到一些特别难坑不容易理解的知识点可以先放弃,但是需要记录在案,后面遇到的时候着重增加此知识点的外围知识,逐渐攻克。另辟蹊径就简单了,你去研究一个于此相关的最新领域或者稀有领域,这样你就会觉得获得了不少成就感,因为你的每次学习都在大多数人之前,你就不会感到太大压力。

总结

上面的这些话都是我坐在这里瞎想的,我觉得任何观点都有一定的依据但是都不能全盘照搬,我不希望我说的话和我的观点被别人全盘接收,这样是不负责任的,你应该从我上面的这些观点中摄取一些共鸣的地方,然会去实践,总结出自己的方法。最后告诫给初学者朋友一句话,永远都不要崇拜和相信某些人是大神,只有这样你才能成为别人的大神,毕竟人各有所长,你的优点是别人不能取代的。