首先,自学C++很现实,我就是,但是需要说明的是,这是一个漫长的过程,具体速度看你学习能力和用功多少。
举个例子,我的一个朋友,用毕业前两个月,学习所有基础概念,逻辑表达基础。现在已经做架构了,历时三年···
其次,纠正一个你思维上的错误。
编程:我对编程的理解是,用最少的语言(C,B,D,J等等),将所需表达的逻辑思维,写成符合语言规则的语句。
说白了,程序员就是个翻译,要把自然语言翻译给计算机能听明白的人。所以无论你用什么语言,都需要你翻译的准确性。
其次,C#,JAVA,C,C++,都是计算机语言,本质差别在于计算效率,
其中C最快,C++次之,JAVA谁更快我不大清楚,主要原理在于和机器码的距离。
简单解释一下:计算机能读懂的语言是二进制码,但是,如果你不是火星人的话,我不建议你使用这个来编程,会把自己编死···
勤劳的程序员们为了不把自己累死,于是就生产了---汇编语言 ,但是这汇编语言的复杂度也不是一个菜鸟可以轻易理解的,再于是乎,就出现了B ,C,P等等等等第二代语言,可以,只有C和B被广大准菜鸟(估计这帮菜鸟要是活着,应该已经是程序精了)所理解,接受。
原因:追根溯源,有两个,第一效率,第二自由!
历史是不断前进滴,就计算机而言,第三代语言的产生是很自然的事情
原因:懒!
这一代,语言最有代表性的C++和VB。
但是发展到现在就只剩下C++了
其实在十年前B语言是很NB的,很有市场的,
原因:相对易学,那时候的程序规模也相对小很多,好像缺点:内存效率不够高。(你想象一下,在内存只有1M的时代,对内存的使用效率是如何的重要···,就算现在,你可以玩命浪费内存,程序规模越大,效率这个问题就越凸显的重要,这一点不用我多解释了吧)
而C++的最大优点也在于此,宗旨:准确使用每一块内存。
历史发展到这个时候奸商们的嘴脸就暴露无疑了,要做能满足市场需求的软件,用什么开发,就不用我多说了吧。
该说了C#,JAVA
JAVA:第四代开发语言,建立在第三代之上
优点:更容易理解(专业术语叫 面向对象)
C#:这玩意我不想多说,简直就是山寨的JAVA···⊙﹏⊙b汗
简单阐述一下你最关心的问题:
二进制码 第一代语言(汇编) 第二代 第三代 第四代
效率最高 效率其次 效率再次 效率再再次 效率再再再次
计算机执行你的代码的时候,无论你使用的是那一带语言,都是需要先 翻译(编译) 成机器码的,而且是逐级翻译。
这样就比较明显了
C++最NB的就是,他的效率和第二代语言是相差无几的
所以,他就成了在易学和效率之间最有性价比的语言了
总结,C++的优点在于效率,缺点在于在乎细节导致开发周期相对长。
JAVA优点在于开发周期相对短,缺点在于效率相对低。
参考资料:《编译原理》清华大学版,编程思想 C/C++版