我个人一直持有一种观点:能够快速看到结果取得成绩的付出,更容易坚持,也才能走的更远。我反对那种教科书式的学习:你需要先打好基础,然后按部就班的去学习。
按照课堂上教科书的顺序,我们应该先学习好数学,特别是离散数学,才能学好C语言,学习好C语言还需要学习数据结构,甚至中间还有很多基础,比如计算机的基本原理,模拟电路,数字电路。然后我们才能去学习java,甚至java要学习好,还需要学习面向对象和软件工程。但是实际上按照这种方式去学习,能学死人。在你努力学习初中数学或者高中数学的时候,你并不能直接地看到学习数学对学习计算机的帮助,这个时候,你就很难坚持下去,尤其是自学。就好像原本你很喜欢篮球,有个家伙告诉你要打好篮球得先联系跑步,每天跑15公里,坚持三年再去打篮球,这样你会内功很足。这个理论没有错,但是很多人都放弃在了坚持长跑的路上,对篮球的兴趣被一点点的磨灭了。做计算机开发更是如此。
所以我的观点非常简单:你如果想做java,或者喜欢java,那么去学习java就好了。真到用的时候,需要你去研究下数据结构和算法了,不妨找本书看看。如果用到数学了,那么在目的明确,而且兴趣盎然的情况下,学习什么都不难。一定要挑一个最简单的,经过1-2周的熬夜辛苦,能看到自己做出来了一个小东西,那么是一个helloworld 或者一个个人主页,足以让你兴奋到再坚持两周。
挑自己最喜欢的,直接开始!!!!
在路上你会慢慢找到所有你需要的,千万别在上路前准备太多,太多的准备消磨你的意志,打击你的信心,毁掉你的兴趣,最后让你心生哀怨一事无成!
我写过一篇给初学者的文章,希望对你有用:张世玉:非专业人士应该如何上手学习编程zhuanlan.zhihu.com