关于高效学习编程,我又有了最新的几点思考!快来快来

前言

最近我关于如何高效的学习编程,又有了几点最新的思考,这就迫不及待的想跟大家分享分享了,如果看完觉的不错,记得分享一下,支持支持我,如果觉得不咋滴,也欢迎大家留言交流。

我的目的很简单,大家伙一起进步!

这次的思考主要就是关于“不同的知识应该有不同的学习策略”,看到这个,不知道大家伙感兴趣不,不过我觉得起码对你们有个启发作用,所以大家伙还是继续看下去吧

大家都知道,咱们做程序员的不容易呐,不是有句话嘛:

人傻钱多*得早

你听听,也不知道哪个歹毒的玩意儿说的,关键是,有的程序员觉得自己挣的也不多啊……

其实吧,我觉得,做程序员挺累的,经常性脑阔疼,我们都知道,这个行业,技术更新迭代忒快了,我们得保持不断的学习,不然,很快你就会被淘汰的,而且还一个让人脑阔疼的就是:

无论啥时候,我们都会觉得要学习的知识太多了,而且时不时的还感觉自己啥都不会!

你说说扎心不……

说真的,无论你从事哪个方向,其实,要学习的东西真的很多,而且很多知识点深究的话有点伤身体,不过,知识虽然多,但是看起来可以分为几大类,比如我们学习Java吧,大致可以分为:

  1. Java基础知识
  2. JavaWeb知识
  3. 框架知识

如果这样分,你可能会更加熟悉:

  1. JavaSE
  2. JavaWeb
  3. JavaEE

你看看是不是这样?不过其中每个大类拆分下来就有很多的知识点,而且每个可能都要花费你很长时间也不一定学的好,就拿Java基础知识来说,像线程方面的知识,是不是学起来需要费时费力伤脑阔。

Java学习这块,我习惯性称以下三类知识为Java高级基础知识:

  1. 多线程
  2. 并发编程
  3. 虚拟机

你觉得是不是嘞,然后往下可能就是:

  1. 集合
  2. IO
  3. 网络编程
  4. 等等……

这些都是Java的基础知识,我们学完这个,一般的话会去学习JavaWeb,这个一般就是稍微涉及到前端那块,因为现在一般都是B/S架构应用,这个对Java来说也是必须的。

但是在Java基础知识过后,应该是那些框架知识,也就是SSM那些,当然还有其他的一些开源框架,比如数据库的mybatis,spring data jpa等等,还有现在流行的微服务那些,也就是springboot那些,当然,还有很多很多,这些都可以称作为那些所谓的“框架”,这是一类知识。

告诉大家一句话:

铁打的思想,流水的语言

好好品品,说到底,语言就是一种工具,就拿Java来说,我们学习它,也是要用它来干点啥,做出点啥出来,刚开始,这些框架还没有那么多的时候,可能我们用Java基本知识可以做的出来,不过麻烦,费时费力,可能效果还不咋滴。

技术总是在不断的发展,优秀的开发者们会不断的优化技术,在原有的基础知识之上,一些大牛就会进行各种各样的封装组合,然后成为第三方库,成为开源框架,这些其实都是在原有基础之上发展而来,比如SpringMVC不就是建立在servlet之上嘛。

所以啊,我记得之前在朋友圈经常看别人转一篇文章,大致意思就是:

不要再学各种框架,底层知识你都会了嘛?

高级都是再低级之上发展而来,搞定了核心基础,这些高级的玩意其实也没那么高级了,大致是这个意思吧。

然后在实际的工作学习中,我渐渐的发现,其实对于这些繁杂的知识,我们真的该静下心来好好看看他们,不要闷着头一直学,也要看看,不同的知识,我们是否应该以不同的学习策略去对待呢?

我这里大致把编程知识分为三大类,不管你学习的是Java,还是python抑或是其他,都是适用的。

  1. 计算机基础知识
  2. 语言核心知识
  3. 框架知识

针对这三块的知识,我们应该采取不同的学习策略,下面我们就来逐个分析。

1、计算机基础知识

这块知识,其实是作为每一个编程人员都应该重点关注的,有人问,计算机基础知识指的是哪些知识啊,一般啊,就是这些:

  1. 数据结构与算法
  2. 操作系统
  3. 计算机组成原理
  4. 计算机网络
  5. 软件工程

然后再往下可能有汇编,编译原理等等,但是以上几个应该是你最先关注的,尤其是数据结构与算法,这个可是编程的“根”,重要程度不言而喻,这也是我公众号目前正在连载的。

这块的知识,一般科班的话,都是在大学的时候学的,可是奇怪的是,很多人都学的不好,尤其数据结构与算法这块。

我记得有个比较好玩的就是,有人问:“我数据结构与算法不好咋弄啊”,然后某大佬说:“没事,大部分程序员数据结构与算法都不好”,然后还有人问:“我数学和英语不好咋弄啊”,然后某大佬说:“没事,大部分程序员数学和英语都不好”

然后我默默的笑了……

所以啊,如果你这块学的比较好,那真的是不小的优势,尤其是在校招的时候,进大厂必备啊,所以啊,庆哥在这里给那些还在读大学的朋友们说句,千万重视这块的学习啊,这可是你以后的核心竞争力啊。

那对于这一块的知识该怎么去学习嘞?

大家应该多多少少知道,这块的知识,似乎不能很好的去实战,偏理论概念的比较多,就是你学习的时候,并不会立马就想到,我可以怎样怎样去试试,比如别人告诉你怎么开车,你是可以立马想到可以找辆车去试试。

那么对于这块的知识,我觉得应该多看书,多总结,时常复习,尽量记住的越多越好,然后关于数据结构与算法这块,我们学习这个是可以写代码去解题的,那么关于它,我们更要多练习。

总得来说,这块的知识需要你私下花时间多去自学,多去研究,然后多总结,时常复习,能练习的多练习,然后就是可以写代码的地方,一定要写代码,这点也很重要。

关于这块,无论你学的是什么语言,基本上都是可以这么去学习的。

2、语言核心知识

这块说的就是语言自身的基础语法知识了,比如python基础语法,或者Java基础语言,也就是语言本身最基础的知识。

这块的学习其实很明确,如果你想快,这些基础知识,你可以很快的就给学习完,比如我之前用一天的时间把python基础知识给学完了,但是后来长时间不看不用,现在基本上忘完了。

因此这块的是知识,你可以快速的过一遍,比如有些人学习Java,很快的时间把Java语法过一遍,然后就去搞框架了,说真的,如果你有时间,也就是不那么紧张,我非常不建议这么做。

俗话说的好:

勿在浮沙筑高台啊

基础一定要牢,因为这些语言基础知识,可是后续的一切基础啊,后面很多高级的知识都是建立在这个之上,而且有些基础知识看似简单,深究下来其实有很多知识点,而这个,你学的越深,理解的越透彻,对你越好,你的核心竞争力也就越大。

就拿Java来说,线程这块是个基本知识,但是又有多少人把它掌握透彻的,再比如虚拟机,这个搞不定的就更多了,还有JDK源码,有多少人去系统性的学习过呢?这也是基础啊,而很多人以为的基础就是那简单的基础语法而已。

这其实就是你跟别人的差距,为啥你也学Java,人家也学Java,人家那么牛,而你那么菜。

所以啊,对于基础知识,我觉得要学习的尽量深入,研究期底层,追溯到其源码,要真正的去理解它,深深的印刻在脑子里,也就是要死磕。

当然,我可不是说你刚开始学习,就要死磕这些,不然,估计你还没有开始就要结束了,我这里说的是你学习的差不多了,然后在你学习后续框架知识的时候,或者做项目的时候,可以有计划的选取基础中的一个点,然后去死磕。

3、关于框架知识

这里指的就是那些形形色色的各种框架了,无论你学的是啥语言,一定会有各种各样的框架,我这里以Java来举例,比如我们学习Java,把基础知识基本过了,开始接触框架了,那该怎么学习嘞?

比如开始学习Spring,上来就花很多时间,把Spring相关知识系统性的学习一遍?

我刚开始就是这么做的,但是现在我不建议这样,因为我觉得这样效率实在是不高,那该如何高效率的去学习这块呢?现在,我觉得一个比较好的方式是,看看基本使用,差不多会简单使用了,然后去找个它是主角或者大配角的项目去练习,一般就是看视频教程,然后在学习项目的过程中,去接触关于它更多的知识和用法,我觉得这个学习策略是比较高效的。

也就是你不用一上来就学习百分之百的Spring知识,而是学习个百分之一二十就可以了,剩下的可以在项目学习中去搞定它。

另外,就是框架这块其实也蛮多的,我们学习也需要时间,对于那些没有列入到我们项目学习中的框架知识,我们对他们也要有个基础认知,比如rocketMQ,你可以不知道在项目中怎么用,但是你得知道它是个啥?

总结

好了,以上就是我最近对于高效学习编程的几点新思考,我觉得吧,大家看的时候也得多思考,不然会觉得不知道在说啥,毕竟是偏理论性的东西,我这里也简单的给大家伙总结一下:

1:计算机基础知识是基础中的基础,也是核心竞争力,能在大学里搞定它,不要留到以后,在以后的空闲时间,也要多读读相关的书籍,尽可能的学习的系统,透彻,做到理解。

2:核心基础知识是我们学习某一门语言的基础,这块应该尽可能的死磕,深入到底层,原理,代码,做到真正的透彻的理解,当然,不是刚开始学习就建议死磕。

3:框架知识这块可能就是以后上班中经常打交道的了,我们对这块的学习,百分之而是交给自我私下自学,剩下的就放在项目中去学习吧,就是更多的知识在项目中去边用边学,对于一些常见的你要知道,有个稍微系统的了解,拓展这块的知识广度。

好啦,这就是今天的全部内容啦,另外再多说一点,上面知识一个学习编程的基本策略和优先顺序,说到底,每个知识都适合死磕,关键是你有那么多时间嘛?

所以啊,你得不断学习啊,不然别人就超过你了,程序员啊,难呐


分享到:


相關文章: