很多人学习编程, 走的弯路可以总结为以下几点:
一言不合找视频,几十集视频刷半年。
很多人学习编程的时候,喜欢看视频学,我这里总结一下看视频学习编程的弊端。
1. 完善的视频资源往往稍稍过时,比如你会发现很多java的教学视频用的IDE都是eclipse,而不是IDEA,或者是我现在用的VScode,那么这时候你到底是用eclipse学还是用IDEA学呢?用eclipse的话,虽然能直接按照视频指示操作,但以后肯定还要换成IDEA,两IDE的操作习惯也不太一样,增加了学习负担,用IDEA的话,操作不能和视频直接对应,学起来会不舒服。
2. 视频的教学进度往往过慢,本来你看技术文章半个小时能搞定的东西,放到视频里可能有一个半小时。
3. 照着视频操作,会让很多学习者依赖上视频,脱离了视频啥也不会,为什么呢?因为照着视频做实在太简单了,会让人感觉学习编程很简单,陷入一种以为自己在学习区,实际上却在舒适区的状态。
当然我也不是一棍子打死,我个人的建议是一个东西入门的时候看视频,或者某个软件入门操作的时候看视频,比如你刚开始用IDEA,那你就可以看几集IDEA的使用视频,学习IDEA的基础操作,但后续的提升,知识的扩充,一定要通过自我项目实践和文档阅读为主完成,切记不可什么都依赖视频。
然后如果你非要看视频,以下是我的一点建议:
不要总想着一个视频系列从头看到尾,入门了之后,就应该自己找不足,然后去搜索特定内容,而不是一锅端,全都看一遍。
2. 不要什么都等学完了再干, 学编程就是要没准备好了就开始干。
很多人学编程被学生气害苦了。
什么学生气呢?就是什么东西都要买本教材,看完,看懂了,才上手实操。
但编程真的不要这样,你在学习中就是时刻带着疑惑的,如果你是个小白,刚开始在W3school中学习前端,接触了html,但是接触了html后,你必然会有很多疑惑,你也无可避免的会碰上http的相关内容,这时你要做的是不要先想着把这些疑惑全弄懂,而是要带着疑惑,没准备好,就要上,就要开始自己写代码,逼着自己进入学习区,然后发现不足,再去做针对性的学习。
比如你刚开始学习前端框架,里面有一个API叫做HttpClient,可是编程小白的你哪里懂得http协议呀,但是你要做的是尽可能用你现有的知识,去推断,甚至是“猜”这个httpclient的作用,然后迅速开始写代码,先上手,然后你发现你还是不懂,那么这时候你就知道你需要补足http相关知识,然后你去google,看了几篇技术文章,大概了解了get,post,deleted等请求方式,知道了http报文是由body和header组成的等等,这时你感觉你对之前的 httpclient API有了更深入的理解,这就是有效学习。反过来,顺着视频看几十集,根本起不到这个效果。
3. 深度广度兼具,不要闭门造车,也不要浮光掠影。
既不要什么都学一点,什么都不精,也不要只关注于自己的小领域,什么技术咨询都不看。
我最开始学java的时候,用的eclipse,当时真的是用的比较习惯了,但是我并没有把自己的视野整个扎在eclipse上,大家都知道,人们都喜欢沉浸在让自己感觉舒适的地方,eclipse用熟了,就自然不想换到其他的IDE上,但是我从很多技术文章中看到了IDEA比eclipse更为优秀这个事实,我在没有用过IDEA的时候,这些技术文章告诉我,我有必要尝试一下新IDE,结果经过了短暂的几天非舒适区之后,真香定律再次被验证。
我要说的是,即便你某个工具已经用熟了,当很多人都推荐你去用更好的工具的时候,你就应该去尝试它,大多数时候都会真香。
我经常逛各种技术博客,python,node js等语言生态我也都有了解,并且学习使用过,但是我的主方向仍然没有变,我的大部分时间仍然是花在自己的主方向上,我学了简单的python爬虫,只是为了明白如何利用爬虫进行数据分析,拓展自己的编程视野,比如我很久前学编程的时候,那会儿连简单的个人网站也不太会做,一直在摸索,学习python爬虫让我想,我是否可以把我知乎专栏的内容自动地爬虫趴下来,然后显示在我的个人网站上,这样我就不用把自己的文章再迁移一遍了,但是后来证实没有那么容易,你需要爬虫的时候完全把自己伪装成一个浏览器才能把这些有安全级别的内容爬下来,比如我发现有的网站可以直接爬,有的网站就爬不了,这让我意识到了网站安全的重要性,但是我也没有在这件事上花太多时间,也就三四天吧,但是给我提升了不少视野,让我更明白我现在到底在干嘛。
4. 多看统计数据,不要胡乱听信别人的话。
如果有人现在和你说,sublime是最受欢迎的编辑器,你相信吗?你可能会相信,但我肯定是不信的,因为:
这是stackoverflow 2019年度的开发者生态调查的数据,VScode占据了55.6%,而去年,VScodec也是第一,但是只有39%,这样一个增长速率,如果你还不去关注它,那你真的是落伍了,在我没有机会去尝试所有编辑器,以求选出最适合我的编辑器之前,我会更相信权威的统计数据,而实际用了之后,真香。
但是大多数学编程的是不会去主动了解这些看起来和编程关系不大的东西的,比如刚才发的这个生态调查数据,但事实上,至少对我而言,我很重视这些东西,这些权威的统计数据,往往指引了未来的方向,所以我建议你们经常看一看这些东西,比听老师讲课有价值,真的。
5. 在不具备独立完成一个项目的时候,可以尝试修改别人的项目。
也许你是第一听到这种说法,因为大家都是倡导独立完成,但是我却提倡你们去修改别人的项目。
我的意思是,在你试图完成一个超越你能力的项目时,可以以一个基础项目为基础,在它基础上进行添砖加瓦,删除不必要的东西,这个过程中可以让你迅速从入门走向中级水平。
很多人学编程有个这样的经验:
html,css,js都学了,可写出来的界面为啥还是这么丑。
在这时,你缺的不是知识点,你缺的是最佳实践。
从只掌握基础知识点,到掌握最佳实践,中间这个比较陡的阶段,我建议clone别人的最佳实践项目,阅读,发现不懂的地方,有针对性的去了解,然后尝试修改,把别人的项目修改成你自己的项目。
为什么要修改呢?因为只有当你理解了它的代码之后,你才具备修改的能力,但是若让你此时从头开始做一个这样的项目又可能进入了恐慌区,显得太难,尝试修改别人的代码这个过程,会让你更深入的理解他的代码的运作方式,文件结构,从中学习最佳实践。
比如前端,初学者写的前端可能是这样的:
高手写的前端是这样的:
如何从初学者快速过渡到高手,学习最佳实践?
6. 少买书,你要的东西网上都有,你买的书你敢保证不过时?
按照每两个月迭代一个版本的速度,你的书一年前出版,到现在落后了六个版本了,那你是按着书上的版本来,还是按新版本来?
当然,也不绝对,有的东西变化比较小,有的理论性的东西也不会过时,但是这种技术性的,比如什么《一个月搞懂Python》这种书就别买了,网上真的都有,书那么占地方,还花钱,没有收藏癖的人就别买了。
7. 要学会放下,一个bug如果完全超出了你能力范围,花了很长时间都没解决,可以先不要管它,不要和bug死磕。
凡事都要讲究一个投入产出比,你在一个你完全搞不懂的bug上花了几天时间,你以为你学到很多东西了?事实上反而没有,当然,如果这个bug在你的解决能力范围内,你通过细致的思考,查阅资料,最终定位了bug,这是一个非常好的学习经验,但是如果实在搞不出来,可以先考虑放过它,书是看不完的,也没必要看完,bug是de不完的,在学习阶段,也没必要和他们死磕,要学会放下。
8. 越来越凉的语言,可以考虑别学了。
web领域,php越来越凉,java越来越强,你说你19年进入web领域非要选个php,还不让别人黑,一黑还不高兴,折磨自己干嘛呀,男怕选错行,女怕嫁错郎,在自己都不知道自己会对哪个领域感兴趣之前,优先选择本来就有一定地位的,并且在未来还保持增长的技术生态,如果你选错了也没关系,it‘s never too late。
小编是个多年开发经验的程序员。Java、前端、Python都懂,如果你想要学好Java,在学习过程中,身边没有一个能够指导你学习的人,可以到这个Java学习裙,里面最新学习路线和教程,不管是计算机专业想要往Java开发方向发展,还是零基础想转行,都可以跟着教程学,有什么不懂的可以在里面问,这就是Java学习裙。前面三个输入494,中间三个输入801,后面三个输入931。
网友评论