想想最近几年,因为各种主动的或者被动的原因,学习了一些软件、以及PHP、python、R这几种语言,C#其实也接触了一下,但是不敢说学过,因为至今没有写过一个小项目。
所以算的上在学习这些上面有个自己的经验吧,不一定适用于所有人,但是对于我来说挺适用的
1、必须要有一个强大的动力
也就是需要有一个亟待解决的实际问题摆在那里,这点至关重要,这个动力,直接决定了我能坚持多久,能学到什么地步
比如刚开始学php,最开始我建网站,都是网上找人写代码,然后我自己上传到服务上搭建,这样有很大的弊端,首先是那时候比较穷,随便写个什么很简单的页面都是三五百起步,做整套系统都是三五千起步,没那么多钱花费在这上面;另外一点是,不一定能找到一个靠谱且不厌其烦的人,我对自己的认识很清醒:就是大家经常所说的那种要求超级多、要求时刻在变、让人厌烦到极点的甲方,在新增及实现网站功能上,很可能我昨天觉得很好的一个功能,昨天刚刚交给别人去做,今天我就想到了一个更好的,这时候给别人重新提要求吧,要么怀着愧疚耐着性子忍受着对方的不耐烦去交流,要么加钱。最后就是,很多时候我在给程序员说明我的方案时,他也理解了,但就是不按照我的做,觉得自己是专业的程序员,自己的想法才是最合适的,但那却不是我想要的。
比如学习python,是因为当初为了完善自己的网站,需要爬取一万多个sci期刊历年的影响因子、投稿网址、期刊官网、投稿建议、审稿周期等信息,这个工作根本不可能手工完成,然后就学习了python
比如学习犀牛软件(一个很牛逼的三维作图软件),当时投稿为了作个三维的nanofiber图
比如学习基于PHP的laravel框架,因为随着网站用户量的积累,以前的那套系统的bug与不足越来越多的显露出来了,我需要迫不及待的更换整个网站框架
比如学习R语言,是因为之前爬取的影响因子表已经过期了,急需更新
根据我自身的需求不同,以上几种语言的熟练程度也不同
PHP+mysql:熟练
Laravel框架:入门与熟练之间
Python:入门
R语言:入门
比如我之前想写个文献实时对照翻译软件,所以想学习C#,结果前前后后核算了一下,这个软件写出来之后,可能我调用谷歌翻译api的成本会远远高于用户付费得来的收入,因此不想做这个软件了,C#就没学成
所以,一个强大的动力,直接决定了我能在这条路上走多远
2、找一套基础入门的比较好的教程
经常看到有人在知乎上提问,怎样学习某某软件比较好,有什么好的办法?这能有什么好办法,还得从基础开始一点一点的看,什么教程比较好?
https://study.163.com
https://www.youtube.com
我一般就在这两个网站上找教程,基本上都能找到很好的
找到之后,先跟着教程走一遍,不仅仅只是看教程,更重要的是边看边跟着他的例子做,否则看完就全部忘记了
跟着教程走完一遍之后,肯定还是很模糊,这时候,回到上述第一点,用你现在所学到的知识,来解决第一点中的实际问题,这时候你会发现,寸步难行,跟着教程做的好好地,怎么一到解决实际问题就完全不会了。不要着急,把你的问题细分成每个小点,然后回想一下,所需要的知识点,在教程的哪个地方有讲到,然后回看教程,边看教程边解决自己的问题,直到将你的整个项目需求完成,这样的话,你会有非常深刻的印象。其实这时候你回过头来想想,似乎脑袋里面很混乱,感觉啥都懂,但是感觉啥都讲不出,怎么办呢?这是因为你的知识还没有成体系,所以接下来第三步同样很重要
3、在把教程快速看一遍,这时候就可以倍速播放,或者跳着看了,快速浏览,边看边回顾你自己做的那个项目,是不是有那个地方可以改一下,可以换个思路用更好的办法,这样看一遍的话,会比较成体系,而且你的项目也得到了很好的完善
啊,不知是不是北二外毕业的学长?
哈哈哈,不是啊,难道你在北二外认识和我说过类似的话的学长吗?