第1个回答 2015-10-08
个人的建议是先学C。
C语言是C++,C#和java的原型语言。也是和机器语言、汇编关系最紧密的。
纯C语言上手很快,没有语法糖,没有template,没有OO。
首先最重要就是弄明白指针和内存模型,这是后续一切的基础。
接下来的阶段与其说是学C语言,不如说是学C库。字符串操作、内存分配、文件操作、输入输出等等。
等学到差不多了就会发现C其实可以干几乎所有的事情,但是它的缺点也很明显。
如果你觉得内存管理的复杂性让你绝望,你就去学java和C#,特别如果你是对于可移植性和API接口有强迫症的,java绝对适合你。另外,如果你方向是将来为企业客户开发系统,可能就得看是EJB还是.net平台了。
如果你觉得&、*和-〉这些符号很酷,去学 C++ 吧,你会发现更多。。。而且好像多音字一样,你会发现>>,&&和... 这些符号有了全新的含义,更不要说这些的组合 [&]。学C++,你会真的有学“语言”的感受,不同的范式就好像中文可以同时说黑话、普通话和古文一样。
如果你信奉古典主义,也可以继续执着于C。等你把编译器玩得的得心应手,说起汇编和宏如数家珍的时候,语言什么的也就无所谓了。什么代码最后不都是跑在机器语言层面的?程序设计语言就是一层皮,归根结底是为了方便程序员。
不同语言的哲学也不一样。java的理念更像是一个白领,循规守矩按步就班。C++更像是学者,形而上之天马行空。C就像是装修工,看上去谁都能干,实际上大有门道。能把C真正学好了,其它都会水到渠成。