自学编程的妙方法,直接省了几万块钱报班,不收藏就可惜了!
写了18年的代码,之前做过阿里的高级架构师,在技术这条路上跌跌撞撞了很多,我今天分享一些我个人的自学方法给各位。现在在网上报个正经点的班得花几千块钱,线下就更夸张,都是万元起步,我的这些学习方法如果你能用好,跟花几万块钱报班效果一样强大。
我跌倒的坑,希望大家一脚就能跨过去。
一、工具的选择
在我们初学的时候,往往会听到一些人说这个语言不行、那个语言天下第一,这其实是不对的,你仔细观察就会发现很少有架构师会出来说“X语言是最好的语言”这种话,你基本上看到的都是程序员在讨论哎说哪种语言更好、哪种语言更坏。
语言是我们的工具,我们进入IT领域必然要选择一门编程语言去学习,语言对于我们程序员来说只是工具,我们要做的是解决问题,而不是去研究谁的工具最牛逼。
哪个语言最牛逼,好比王者荣耀练哪个英雄最厉害?没有什么最厉害的英雄,你用好了都厉害,你都能在工作这个“排位赛”模式中发挥地“上分上星”。
二、拥有1份较为全面的学习路线
不知道你们在开始自学一门新技术的时候,有没有过这样的担忧:
害怕自己学了一些用处不大的东西......
收藏的资源比较多,害怕自己花了很长时间学习,结果还是在那几个技术上面打转......
害怕自己学得很杂,最后成了二流子,什么都会一点,但又不精通和全面.....
这个时候你就很需要一份较为全面的路线图,它将是你的寻宝图,能帮你避免掉上面的这些问题,在尽可能短的时间内让你走在正确的学习道路上。
我以往在决定要去学习一门新技术的时候,最先做的事情不是去网上找各种视频资源,而是去找一份可靠的、全面的路线图,然后再根据路线图上面的知识点去找资源,避免自己走很多弯路。
学习路线图怎么找?
这个很简单,B站、腾讯课堂、网易云课堂上面有很多的培训机构,你去“盗”1个就可以了,你就说你想学某某课程,现在在选择机构,能不能先看一下你们的课程体系?装一下嘛。
虽然业内对培训机构的出来的学生褒贬不一,但其实大家仇视的更多是简历造假、项目造假严重的学生,而不是看不起培训机构出来的学生,相反的,培训机构出来的学生在专业领域的就业率上还要高于高校毕业生,所以他们给的学习路线图问题不会很大,不然学员们学不到真技术找不着工作早把他们闹到法院了。
当然了,如果你们信得过我,我这边有Python所有方向的学习路线图,给你们白嫖都无所谓,如果信不过就算了,毕竟很多读者还是第一次读我的文章。
回归正题,咱们讲下一个自学的妙方法。
三、3套学习资源,1主2辅
应该有不少的人是那种“收藏从未停止,学习从未开始”的人吧?好巧,我也是,哈哈哈。
我很热衷于收藏各种学习资源,我们现在学习一个新东西能拿到很多的学习资源,比如B站里面有很多Python的课程,几百节的都有,而且还年年更新,仿佛就是有人在做雷锋一样做好人好事;还有各种博主时不时也会分享一些学习资源,因为他们要涨粉丝接点广告,不然就得抽几块钱的烟了;以及一些机构互相争流大打出手,抛出去的资源一个比一个大方,恨不得把接待小姐姐都送出去......
所以说我们资源还是很多的,可收藏的东西也不少。
那么这个时候,我们就需要挑选出3套左右的资源,1套作为主攻,2套作为辅助,为什么呢?
因为每个老师的教学都有他的逻辑和知识体系,你要想学精通和全面,你听1个人的就可以了,不要这个听一点那个听一点,最后成为二流子。为什么要其他两套呢?因为光听某一个人的课程,他有时候难免会讲得过于深奥或者过于简洁,导致你并不是很理解,这个时候你就需要去听一下其他两套课程对这个知识点是怎么讲解的。
就比说我现在主听的这套课程中,关于爬虫的异步加载这个知识点我没听懂这个老师说什么,听了几遍也理解很困难,那么我就去另外两套教程中去听听别的老师对于异步加载怎么讲。
如果资源你真的找不到,而且很想学编程的话,我建议你买个几百块钱的网课买1套资源作为主攻还是很有必要的,另外找2套免费资源辅助就可以了。
这样学下来,你对整个知识体系不会留下很多疑问,不至于说因为某一个视频没看懂而对这个知识点模棱两可、得过且过。
四、做导图笔记
做导图笔记的好处是让我们亲自整理知识点,一是加深印象,二是形成我们自己的知识体系,三则是方便复习。如果你不按照自己的理解去整理知识点,那么你很有可能过段时间就忘了,看是看了,但具体看了些啥玩意儿想不起来了。
记住一个点,不要去刻意地模仿老师给你的看东西,一字一句照猫画虎的意义不大,你需要按照你的理解去做笔记。
光看教程不动脑整理,那知识还是作者或者老师的,不是你的。
五、找项目练手
编程是一门学中做的学科,不动手运用所学知识,你永远都只是门外汉。站在岸上是学不会游泳的,光看健身视频是减不了肥的,一直看别人打游戏是无法carry全场的。
项目怎么找?这里分两类,一种是新手程序员,另一种是老手程序员。
新手程序员我建议去Github找项目,你只要会玩这1个平台,再给你10只手都练不完上面的项目。
比如田纳西大学助理教授奥斯汀·亨利的“程序员都应该尝试的挑战性项目”清单,上面的项目就很不错,文本编辑器、2D游戏-太空侵略者、迷你操作系统、电子游戏机模拟器等等,每一个项目都存在不同的挑战,如果你能解决掉这些项目中的这些问题,然后把项目独立完整的做出来并且运行成功,巩固技术的同时,你的能力还能再上一个台阶。
老手程序员我建议去兼职接单来练手,找开源项目练手就像是中学时代做模拟考卷一样,答案就在旁边,这样子练习总感觉缺了点什么,这个时候去兼职就来得很实在,说句实话,之前工作的时候让我收获最多的并不是工作内容,而是每个月的接单,我指的是技术和报酬均有。
至于哪里去接单,百度一下就能知道,这也不是什么不为人知的秘密,我这里不详谈了。
六、计划性学习
有了路线,有了学习方法,还有了实际运用的方法,你还缺一个点,那就是计划性学习。
每次我讲到这里都会有人不耐烦,坚持的重要性我不多讲了,我直接来讲一讲我是如何计划性学习的。有三个很重要的点:规划图+学习进度表+绝不落下目标超过3天。
规划图大概是这个样子的,比较简洁和抽象,但它能够让我们时刻明白自己现在在什么位置,我们离目标还差多远。
学习进度表大概是这个样子的,自己去做1个,上面具体到每一节课、进度、完成时间和备注,好处就是:
1.每天的填写进度,强迫自己打卡学习。
2.如果哪天有事情中途要停止学习,备注一下到几分几秒,下次回来继续看。
3.一直没得到解决的问题备注记下来,等学了更多知识或者遇到更会的人的时候,想办法解决它。
那么最后就是跟自己的约定,我绝不会拉下目标课程超过3天,因为时间久了我会更懒。
不知道你们读书的时候有没有这种经历,打算假期要学一个东西,刚开始放假的时候满心欢喜地先玩上1个星期,结果玩着玩着,假期只剩不到1个星期了,算了吧,开学再学吧,还是好好享受这最后的假期时光吧......这就是典型地落下目标时间过长。
学习是一件时而郁郁寡欢、时而踌躇满志的事情,我们需要做的就是强迫自己按照计划地浸泡在这个过程里。
七、学习环境
学习环境也很重要,你身边是否有这么一种人?他们自己不爱学习也就算了,反而看到你学习就喜欢对你逼逼赖赖,像这种人,请远离他们。
就好比现在的大学生,有的宿舍集体都考上了研究生,有的宿舍一到期末就是一堆挂科的,可王者荣耀和吃鸡的段位都很高,说白了,你要想在打游戏的宿舍里搞学术是很难的,同样的,你想在搞学术的宿舍里打游戏是会挨叼的,这是学习氛围的问题。
你要给自己营造出一个好的学习环境,可以去找几个志同道合的朋友,大家互相监督、分享和交流,更重要的是,有时候还可以拼团买一些好的网课或者学习资料,很划算的,1000块钱的课程让1个人买可能数字比较大,但给5个人拼团买就轻松很多,10个人也不是不可能,哈哈哈,你们懂的。
最后的一些话
虽然说我这篇文章教大家如何通过自学达到花钱报班的效果,但各位培训机构的朋友也不要急着跳出来打我,从客观上来讲,自学肯定是没有充钱强大的,不管是时间上还是资源上,我们都稍逊一筹,所以培训机构的朋友手下留情。
那些已经报了班的小伙伴也不用觉得自己好像亏大了,虽然我们自学者掌握了方法,但我们依然是“穷人”,真要学起来,你们就像开着机器耕地,而我们还是得挥着锄头,困难程度不同。
我只是希望一些没有报班条件的小伙伴们能够在自学的道路上少走一些弯路,如愿以偿地掌握技能,而不是一直都做一些谁都能做的事情在社会立足。
不管是开着机器还是挥着锄头耕地,你不把活儿干仔细了,谁能种出庄稼还不一定呢。