C
C 学到什么程度才能叫精通?
学到什么程度才能叫精通?
很有意思的问题,作为一个主要使用C 做开发超过十年的老码农,来聊聊我个人的一点看法。
这么说吧,C 是一门极度复杂的语言,而且随着新标准的提出,这种复杂性还在不断的增加中,所以说什么程度算是精通C 语言,其实是一个无法给出明确答案的问题。比如就我来说,使用了十多年的C ,可以轻松的使用C 设计一个方案并实现,比如用它实现过图像处理SDK,也用它做过IDE开发,即使如此,我也不敢说自己已经精通C 。原因很简单,你对这门语言的理解越深,也就越能发现诸多的不足,既包括自己的不足,也包括语言本身的缺陷与不足。举个简单的例子,我最开始学习的标准是C 98,可是后来又出现了C 03、C 11、C 14,甚至还有C 17,对于这些新标准出提出的内容,说实话,有些听过,有些甚至都没有听说过,更别说在实际应用中使用了,以此来说很难算是精通C 了。
不过话又说回来,有很多使用了多年C 的程序员,有着和我类似的情况,他们可以轻松的使用C 开发一个应用程序,但是C 中依然有他们未曾触碰的领域。所以我认为C 语言变得越来越复杂,想要完全掌握除了编译器和C 语言专家,其他人是可望而不可及了,要不然就连Linux之父——Linus Torvalds也会炮轰C ,说它是一门糟糕(horrible)的语言。
综上,我认为想要给出一个明确的精通C 语言的标准,是一件费力不讨好的事情,学习任何语言都是为了解决实际问题,所以只要你能够使用C 语言开发出好的应用,你就是一个合格的C 程序员。下面是几条熟练使用C 的需要掌握的技能:
1、最基本的要求自然是熟练掌握C 的基本语言,包括常用的和不常用的;
2、因为C 是一种面向对象的语言,所以要掌握面向对象程序(OOP)设计思想;
3、能够使用C 描述常用的数据结构,并实现在这些数据结构上的各种操作;
4、理解C 对象模型,比如对象指针、虚函数表等内容,以及类的构造过程,以及在此过程中编译器会在背后做那些事情等等;
5、能够使用C 做程序设计,这里除了基本的OOP思想外,最重要的是熟练应用设计模式;
最后,再对C 发一点牢骚,虽然我还在使用C 做开发(部分任务已经使用其它语言),但是我认为C 是一门尴尬的语言。谈效率吧,它不如C语言简单直接;谈面向对象设计吧,它又不如C#、Java等纯粹;谈开发效率吧,它又不如Python高效……太多的功能如模板、智能指针、多重继承等让这门语言变的越来越复杂,所以我是越来越不喜欢C ,并且建议程序员不要将C 作为首选开发语言。
团队发展经过哪些阶段?每一个阶段的特点是什么?
教育心理学的发展可以分为哪几个阶段?各个阶段的代表人物和代表著作有哪些?
教育心理学的发展大致经历了三个发展阶段,即开创阶段、发展阶段、成熟与完善阶段。
(1)开创阶段(19世纪末到20世纪初):俄国乌申斯基被称为“俄国教育心理学的奠基人”,卡普切列夫1877年出版了《教育心理学》,这是世界上第一本以教育心理学命名的书。
1903年,美国心理学家桑代克出版了《教育心理学》,成为西方第一本教育心理学专著。桑代克的《教育心理学》标志着教育心理学的诞生。
(2)发展阶段(20世纪20年代到50年代):20年代后期行为主义的研究占了主导地位,强调心理的客观性,重视实验研究,以桑代克、华生、赫尔、斯金纳为代表开展了一系列的动物和人的学习研究,取得了重要成果。
由于在教育情境中的研究较少,对教育实践的指导作用不大。杜威采取了另一条研究路线,结合学校教学实际进行研究,强调实用主义“从做中学”,进行改革教学的实践活动,对教育产生了相当深远的影响。
这时候苏联教育心理学家以维果斯基和鲁宾斯坦等人为代表,主张教育心理学是心理学的一门独立的分支,强调教育和教学在儿童发展中的作用,并提出了“文化发展论”和“内化论”,这些思想为苏联的教育心理学的发展奠定了理论基础。
在这个时期,教育心理学的内容有了很大的扩充。它不仅吸收了儿童心理学、心理测量学的研究成果,同时接受了弗洛伊德的思想,儿童个性、社会适应、心理卫生等方面的内容也进入了教育心理学的领域。50年代程序教学和教学机器的兴起,信息论的观点也使教育心理学的内容受到很大的影响。
我国教育心理学,在这时主要受西方的影响,房东岳于1908年翻译了日本小原的《教育实用心理学》,这是我国出现的第一本教育心理学著作。1924年廖世承编写了我国第一本《教育心理学》教科书。
(3)成熟与完善时期(60年代到现在):本世纪60年代初美国教育心理学家布鲁纳等人重视教育心理学理论与教育教学实际的结合,人本主义心理学家罗杰斯也提出了以学生为中心的主张。
随着信息技术,特别是计算机的发展,美国教育心理学家围绕着计算机辅助教学的条件和效果,进行了大量的研究工作。八十年代以后,多媒体计算机问世,使计算机辅助教学达到了一个新的水平,这时教育心理学家主要对这种学习的特点开展研究,例如培养学生的元认知能力以及自我监控能力的研究。