付费客户提了个问题,关于程序设计的基础以及学习方法的。我总结了一些自己的看法和建议。
问:很多人都强调学语言要注重基础,但是何为基础啊?就像Java,Java有他的基础知识,当用到框架时,现在我都快忘记框架怎么用的了,那框架的原理是他的基础么?你重点说说基础吧,感觉太多东西了?如何在众多知识中选取对自己未来有帮助的知识?你之前说根据自己的兴趣选择学习的方向,这个...接触的少,感觉看到啥都想学习。。。基础还是谈谈基础吧
答:
基础是相对的概念
问:很多人都强调学语言要注重基础,但是何为基础啊?就像Java,Java有他的基础知识,当用到框架时,现在我都快忘记框架怎么用的了,那框架的原理是他的基础么?你重点说说基础吧,感觉太多东西了?如何在众多知识中选取对自己未来有帮助的知识?你之前说根据自己的兴趣选择学习的方向,这个...接触的少,感觉看到啥都想学习。。。基础还是谈谈基础吧
答:
基础是相对的概念
我们在学校的时候,一直听到老师或者教科书强调,“夯实基础”。
基础与能力,都是相对的,讨论“基础”,都是已经有了参照物,或者有了对比。
前天学习的是昨天学习的基础,昨天的是今天的基础,今天的是未来的基础。
IT相关的知识技术是有基础的
最基础的知识:冯诺伊曼-计算机体系结构,存储器、运算器、控制器。
其次:计算机组成原理,CPU、内存、显卡、硬盘等
然后:编程语言,语言目的和适用场景、语法、内置API、第三方类库
然后的然后:框架,第三方类库可能是工具类,比如Apache Commons系列,或者某个框架,比如SpringMVC。工具往往是比较通用的,框架侧重抽象流程
具体到Java
最基础的:基本的程序设计思想,数据类型、表达式等
其次:Java的标准类库
然后:Web开发,JSP-Servlet等通用的标准,标准通常是非常稳定的。
然后的然后:SpringMVC、Mybatis等Web框架
学习知识的方法
方法一:广度优先,看到听到自己感兴趣的,就去研究它。
方法二:深度优先,把工作中需要的,或者自己最有趣的,深入研究。
方法三:目标驱动,哪些知识可以给我带来金钱,可以加深我对技术的理解,我就学习啥。
定目标、制定学习计划、学习、检验总结
原文首发:http://fansunion.cn/article/detail/543.html