最近因为疫情,大家都不能出去愉快的玩耍,发现有些朋友乘这个机会在学习编程,所以就写了这么一些心得,希望对他们有些帮助,也算是对自己的一个阶段总结,废话不多说,直接进入正题。
学习工具
这里的学习工具并不是指编译工具,因为编译器其实都是大同小异的,只要选择自己觉得好用的就行,对于我这么一条颜狗来说,我的挑选标准都是看界面的美观程度。在这里我要推荐的是我在学习时一直会用的一款App——潮汐,以及降噪耳机。在准备学习的时候打开潮汐,戴上降噪耳机,之后你就会发现整个世界就只剩下自己了,这种沉浸式学习的效率是十分高的,这在学习其他的一些东西也是可以用上的,虽然这和编程没有什么关系但我还是把它放在了最前面。至于降噪耳机的推荐,我只能说索尼大法好,对于一切带索尼标的东西我给你的建议就只有两个字——买它。(希望sony看到这篇文章之后给我打钱)
编程思想
编程思想在我看来是编程中最重要的东西,这是我的一位前辈教给我东西,当时我将自己写的一些代码发给他看,他看完之后对我说了这么一段话——我看你的编程好像没有什么逻辑性,变量也是写得乱七八糟的,好像是写到那了,突然发现需要一个变量就临时加了一个,在写代码前没有理清整个流程,没有整理好整个程序的框架。虽然这位前辈没有教过我太多编程方面的知识,但他的这一番话影响了我后来整个的编程道路,我也一直把他当成师父来看待。在这之后我每次写程序前都会花上几小时到几天的时间来规划整个程序的逻辑与架构,我觉得这一点是十分重要的,毕竟磨刀不误砍柴工,没有人想在辛辛苦苦敲完代码时才发现整个逻辑有问题,之后全部推翻重来。这也是我在教导徒弟时一直强调的东西,每次我都是要她把整个逻辑理清楚和我说过之后再开始干活,虽然我教导她的方式比较野,只是扔给她一本书,然后让她有解决不了的问题再来找我,但是我感觉只有这样自己实践出来的东西才能真正的掌握,毕竟编程界有一句很有名的话:Talk is cheap, show me the code!
语言选择
在我看来,各种编程语言都相差无几,其实选择任何一种进行学习都是可以的,但如果一定要推荐的话,对于只是想做点东西玩一玩的话我还是比较推荐python,因为python的组件非常多,下载好别人的组件,自己只需要写很少的代码就可以做很多比较有意思的事情,有了成果的激励才能更好的提升兴趣,毕竟兴趣才是最好的老师。因为我是从C语言开始学起的,所以我对于C语言指针是十分推崇的,指针是C语言最大的特色,其它语言是不能这么方便的操作地址的,因此我比较推荐大家对编程有一定的了解之后都去稍微看一看C语言的指针,这对于编程中参数的传递以及变量的操作的理解是十分有帮助的。
找准目标
学习编程之前,知道自己想掌握什么是十分重要的,不然南辕北辙还是很难受的。如果你想写界面就先去学html+js+css,如果你想写后台就去学Linux+tomcat+java,如果你是想快速操作excel表那VB就是个不错的选择。当然,如果你和我一样想成为全栈工程师+算法工程师,那你就想学啥学啥,反正你最后全都得学。
其他
还有一些比较琐碎的东西不好分类,就全都写在这里吧。写程序时有一些比较好的习惯:一是写好注释以及开发文档,这样可以方便自己以及后人去查看你的代码,虽然我自己从来不写,但是我推荐你写,不然将来回头看自己的代码不知道写了个啥还是挺难受的;二是写程序时要将一些关键步骤输出到日志保存起来,方便将来程序出错后查找错误;三是善用Google,在开始学习编程时,可能使用百度可以解决你的问题,但到了后期,还是Google比较好用,很多疑难杂症在百度上没有的,但是Google一般都能搜到,虽然答案一般都是英文,但是以我孱弱的英语水平都能看懂,毕竟有Google翻译,Google就是世界的主宰啊(删除括号内容,此条五毛);四是功能分块,或者叫做伪·面向对象的编程,将一些可以复用的模块拿出来单独做成组件,这样在下次需要用到类似的功能就不需要从头写起,这应该算是编程思想里的东西。
最后再说说怎么检测自己的学习是否有进步吧,首先在编程时你需要认清一个事实,那就是你写的所有代码都是在制造垃圾,只不过是没有bug的可回收垃圾和有bug的有害垃圾之间的差别,如果你两个月后回头看自己的代码,觉得自己当时写的东西太完美的,那你就应当要警惕了,这说明你这两个月时间没有任何进步;但是如果你回头看自己写的东西,经常会陷入沉思——我为什么会写出这些垃圾,那么这证明你这段时间的努力没有白费。
这大概就是我对于编程学习的一些陋见,多有舛误,还望斧正。
网友评论