道理上来说是先学C的。关键看你想干什么。
C,java,C++,C# 它们其实都属于C类语言,基础语法相似。举个例子,你写int i;它们都不报错。
从语言本身来说,C的语法内容是最少的,所谓短小精悍就是它了。C属于元老级语言,后面几个都是它的后辈。C本身是面向过程的,没有OO支持,所以语法上更简洁和纯粹。你不用去考虑继承,多态什么的特性。但是不要以为C简单,C是易上手难精通的典型,说简单仅仅是从语法角度来说的。从C开始学起,能让你更贴近C类语言语法的基本元素。
从应用上来讲,纯C很难找工作,就算你学了C++,还是很难。这两种语言,很难用好,想灵活运用在大型的生产环境中,难度很大,需要投入足够的精力。
从这个角度讲,java其实也是个不错的选择。初学学习java其实也不会差太多。因为本身没有指针且语言设计是基于易用和跨平台考虑的,所以使用起来很方便,也容易上手,不会像C,C++一样过分地陷入语言实现细节中,java强调的是业务。学java周期相对较短,投入肯定比C和C++要少很多,就能写出不错的代码。java的工作相对好找,不行还可以转android嘛。
C#处于和java差不多的地位,它本身语言定位就和java类似,它们相互之间是在做竞争的。
如果单纯从学习的角度来说,我建议学C,因为它够“原始”。在使用的时候,C给你的感觉就是够简单,语法上可谓最简。一本《The C Programming Language》就200页出头。你对比《C++ Primer》的800+,就知道差距了。java这种虚拟机上的语言,对开发者隐藏了太多的实现细节,其实不利于你在学习的时候去理解。学习么,就应该注重细节。所以,学编程,最好能掌握一门编译型语言,这里C无疑是首选。它能让你理解内存管理,堆栈等等一系列基础概念,这是虚拟机语言所不能给你的。
我并不是C的卫道者,确实C出现的年代太早了,从学习的角度上讲,它永远不会过时。编程语言从面相过程转变到面相对象,我们学习,也可以从面相过程的典型语言C,像面相对象语言,C++,java等过度。
面相对象有什么好处,只有用过面相过程的语言,你才能说得清楚,虽然思想上的转换可能要花点时间,但是我认为这个代价是值得的。
以上。
温馨提示:答案为网友推荐,仅供参考