解惑:一通百通,为何还同时出了C语言和.net的教程

同窗提问:
我是个大专的学生,咱们学校不开设操做系统,编译原理,数据结构这些课,而是教C/C++和.net。
如鹏理念:只精通一门语言,而把基础知识学扎实
做为一个大专的学生,我应该放弃C++或者.net其中一种的学习吗?把大量时间用来学习其中一门语言和数据结构,编译原理等基础知识
不知道这样想对不对,已经大二了,不想作代码工人,帖子我也看过好多,就感受两门语言一块儿学会不会学杂了?
并且如鹏网本身也出了C语言和.net两门语言的教程,用不用都学完呢?为何如鹏网没有基础知识的教程呢?
杨老师麻烦解答一下迷惑?html

个人回答:编程

一、一通百通,为何还出了C语言和.net的教程?
如鹏网一直倡导的就是:一通百通,不要在语言间徘徊,学好一门语言便可。
如鹏网说“学好一门语言便可”,因为在校生中不少专业都以C语言做为开蒙的语言,因此如鹏网推出了《C语言也能干大事》这套视频教程。但并非说要全部学编程的人都学C语言,这也是不少同窗的一直存在的问题,不少同窗甚至问“老师,我如今在学C#,是否是要回头去学C语言”。如鹏网说的“学好一门语言便可”指的是本身肯定一门语言,而后认真学习下去,不为别人所动,由于不少同窗目前学的惟一的语言就是C语言,因此就建议这些同窗继续深刻学习C语言,多练手,多写程序,锻炼程序化的思惟方式。可是还有不少同窗的开蒙语言是C#,因此如鹏网也推出了.Net的课程,让学习.Net的同窗也有像《C语言也能干大事》那样优秀的视频教程能够学习。因此说“一通百通,不要在语言间徘徊,学好一门语言便可”和如鹏网推出“C语言和.net的教程”并非冲突的。

二、学校不开设操做系统,编译原理,数据结构这些课,而是教C/C++和.net。我应该放弃C++或者.net其中一种的学习吗?把大量时间用来学习其中一门语言和数据结构,编译原理等基础知识?
C++、.Net是大家的课程,若是放弃的话就拿不到学分,就没法毕业,因此你能说放弃吗?因此仍是要学,要达到学校的考试要求,只要把本身心里里不重视的那么语言不用过多精力学习就能够。
如今不少计算机专业、软件工程专业、专科都在课程中去掉了数据结构、编译原理这些课程。由于这些课程不像编程语言那些看起来学上手就能混饭吃,并且最重要的缘由就是大学里的老师讲很差这些课程,没有资深、丰富的行业经验根本无法把数据结构、编译原理这些看似高深的课程讲的明白,综上考虑,不少学校就去掉这些课程了。
若是同窗们所在的学校还开设了这些课程,请认真好好学习,若是大家的老师讲的很差的话,到网上找其余大学讲的好的老师的教程,由于这些课程若是本身研究的话难度会很是大。若是同窗们所在的学校没有开设了这些课程也不要紧,也不用刻意去学,由于工做之后短时间内基本不用到这些东西,工做之后根据须要再去学习,若是想在技术之路上走下去的话,必定要在工做后抽时间学习那些基础的东西,会对你的技术的提高有很大的帮助做用。

三、有一篇文章说:最好精通两门语言,一门面向过程,一门面向对象,C#不就是面向对象语言么?
同窗们对面向对象、面向过程大部分有误解,面向对象、面向过程只是代码的一种组织形式,而不是一种语法。好比在C语言中也能够进行面向对象的编程(参考《C语言也能干大事第22节:C语言面向对象开发》 http://www.rupeng.com/forum/thread-7373-1-1.html)。既然C语言中也能进行面向对象的编程,为何你们都是用C#等语言进行面向对象的开发呢?由于C语言中进行面向对象开发很是麻烦,而C#等语言中提供了简化面向对象开发的新的语法,让编写面向对象方式的代码更简单,仅此而已。
不要认为面向对象是代替面向过程的,是淘汰面向过程的。什么是面向过程?面向过程就是“代码从上向下执行”,面向过程就是if、for、while,面向过程就是函数、变量……。难道在C#等面向对象的语言中就不是“代码从上向下执行”,就没有if、for、while、函数、变量这些东西了吗?
因此说面向对象只是对普通面向过程的一个优化,将用纯面向过程实现起来很是复杂的代码用面向对象的方式进行组织,从而使得代码更加容易编写、容易维护。可是被面向对象组织起来的代码内部仍是面向过程方式编写的。
由于具体代码仍然是面向过程方式编写的,好比《传智播客.Net视频:第1季C#编程基础 》中讲的就是C#中面向过程部分的语法,所以C#是一门编程语言,可以编写面向过程的代码,也提供了便于编写面向对象编写的语法。数据结构