优势:
有c的基础再学java,java的基本的语法部分基本可以跳过,直接进入面向对象的学习。
c语言学的好的话,对os,computer arch,compiler都会有些研究。对整个计算机基础知识的理解都会有很大帮助。对日后能系统性的解决问题也有很大帮助。其实,这也跟c和java本身适合的场景不同有关系。我用c主要是直接操作硬件或者是os,所以也必须要去理解arch,os, networki的东西。但是java就很少能碰到这些需求。
劣势:
c对于初学者来说,学习曲线还是很陡峭的。刚入坑的小伙伴理解指针就要花好久时间。我自己也是写了个内存管理器之后才对指针比较有把握。
Java 面向对象的语言,你可以一开始写代码的时候就培养software engineering的思想。相比之下,写c的话,这方面可能更需要自己觉悟或者有人带领了。
Java 相对来说完成一个小问题会更轻松些,只是不会大把时间花在内存泄漏的调试上。
所以吧,先学c的优势要你学的时间比较长而且学的很深入才能体现出来。你可看看现在自己的状态,能不能支付的起这个时间成本。要不然还是先解决手中的问题是王道。没学c拉下东西以后再补呗(虽然也不一定有机会)。
学java可以分步骤学习。
首先学习java基础,包含一些基本语法,基础还是要学扎实。第二java面向对象,java是面向对象的语言,虽然很多人在初学时不是特别理解,但是还是要掌握面向对象的知识。第三学习JAVASE,包含一些线程通信以及j文件操作等知识,第四部分接触数据库和JDBC等,是以后开发项目的关键。第五是前端知识,因为java是一个全栈语言,所以不止学习后端,前端也应该掌握,而最后一部分就是框架,框架是把代码进行封装,使用起来会更加方便,开发时都会用到框架。
学习时可以通过书籍以及网站学习,但是还是建议进行系统的学习。