女人把自己打扮得很漂亮,是给谁看的(女人打扮得漂亮是给谁看的啊)
12342023-08-24
大家好,今天小编来为大家解答以下的问题,关于为什么有的人不建议初学编程的人把C语言作为入门语言,为什么不建议新手学c语言这个很多人还不知道,现在让我们一起来看看吧!
本文目录
c语言是纯面向过程的语言,直到后来的c++才加入了面向对象的功能,但仍然保留面向过程的编程。c语言最大的特点是可以操作内存、硬件,灵活使用,缺点是需要注意和学习的细节比较多,陷阱也多。拿指针来说,c语言的精华,但也最难学,陷阱多,一不小心就搞错,指针一旦指到未知内存,可能导致系统灾难。新手自学,难度有点大,学校有课程,跟着老师学比较实际点。
基础知识会了,接下来应该可以进入实战了。
带界面的应用程序学会了C/C++语言本身,可能还没有什么成就感,毕竟都是控制台的程序,老是输出一串字符串,整天面对各黑框框,成就感估计不是那么爽。要是能搞个带UI界面的程序就爽了。
下来就看个人的志向了,如果走微软路线,那你下来学MFC好了,如果要走开源路线,那开源跨平台的界面库多得是。
你下载后看具体的例子,把里面的例子程序敲到你的visualstudio里面,去调试,看运行的结果,你也可以试着去修改例子,添加按钮,响应按钮事件等。
走到这一步,恭喜你,可以照葫芦画瓢的搞个小应用程序了,还带界面。
网络应用程序语言搞懂了,UI程序也会了,下来该学学网络咯,现在那个程序不需要联网啊,懂网络对你理解很多程序非常有帮助。但是网络应用程序从哪里入手呢?
我来告诉你,从《UNIX网络编程》这本书入手吧,这本书可以教会你网络套接字的底层原理,把上面的例子好好学习,自己动手写一个回应服务器。写一个服务器端,在写一个客户端。服务器端请务必学会select这个简单的多路复用模型,这样你才能慢慢的深入里面poll,epoll,IOCP之类的模型。
文件操作所有的程序,基本都会用到文件的读写操作,windows系统有自己的文件操作API,比如CreateFile,DeleteFile等,请新手不要学windows的文件操作API,新手请学标准C语言的文件操作函数,简单易学还跨平台。就那么几个函数,三下五除二你也就学会了,fopen,fclose,fread,fwrite,fseek,ftell就这么几个而已。
深刻理解内存与指针的关系作为一个C/C++程序员,从学习程序的头一天开始,就要和内存的分配释放作斗争。你必须理解内存与指针的关系。怎么样才能理解呢,请大家去看《高质量C/C++编程》里面自带的几个经典例子吧。把那几个例子搞得清清楚楚,基本能够理解其中的原理了。
仔细研究apache源码学程序非特别是C/C++程序,非3年之功可以出山,三年对一个C/C++程序来说是一个从量变到质变的过程,三年的项目实战经验,可以让你接触到一个完整的应用程序所需要具备的骨架。但是这个阶段你写的代码,可能充满BUG,会宕机,运行效率很差,自己回头看看一年前写的代码,可能自己都感觉恶心,看不下去。没有关系,这种感觉是每一个进步青年都会有的。要提高自己的代码水平,还是要像高手学习。你可能要问,公司同事的水平一般,水平好的人家也不愿意给我讲。没有关系,开源的代码就是你像高手学习的最佳途径,开源代码是高手留下的练功秘诀,你看了后你会突然感觉茅塞顿开,感觉自己的水平差人家太远了。我为何要推荐apache的源码呢?
apache的源码是高手中的高手写的,执行效率和程序架构堪称一绝。里面的很多思想是所有程序都通用的,搞懂了,很多模块你也可以直接拿来使用。apache对内存池的使用,对线程池的使用,对模块结构的封装,非常具有实际意义。要是你能把apache的源码吃个透彻,每一个细节都搞明白了为何人家要这么实现,我可以给你说,“恭喜你,你离传说中的高手已经不远了。”
修炼C++我上面说的基本都是修炼C的,要修炼C++,还得再花3年功夫,才有可能练成C++高手。C++太博大精深了,其中最复杂的莫过于泛型编程思想,不要以为能写个模板类就认为泛型编程不过如此而已。仔细看看STL源码,Boost源码,你就知道泛型编程有多么的博大精深了。修炼C++,可以从用C++封装的MFC入手,看高手如何通过C++语言,封装这样庞大的UI库,里面应用了很多的C++机制,最典型的就是多态机制,还有很多的设计模式应用可以研究。
深研设计模式设计模式是程序设计的灵魂,是通用方法,当你面对一个大型项目的时候,如何设计一个有弹性的系统,是所有系统分析员应该掌握的技能。在设计模式的研究上,要结合实际的项目进行。
一起共勉编程源于兴趣,兴趣忠于能会,能会忠于勤学。如果你又兴趣,不妨一起共进,学习不缺兴趣,重要的是你去发现。
从四大CS名校的经验来看,不推荐C语言
美国四大CS名校CMU、MIT、伯克利以及斯坦福的入门编程语言是Python。
这是MIT的,不管你是什么专业的,如果你只有一点编程基础或者没有基础,你都应该学习Python来解决一些实际的问题。
这是CMU的课表,同样也是学习Python,用Python来讲解数据结构、数据分析以及机器学习:
下面是伯克利的,会讲解Python、数据结构、面向对象以及SQL:
斯坦福大学CS106A的课表,同样也是讲Python,CS106有多个不同分支的课程,据说cs106a以前是java,不过我现在看到的是python,cs106也有讲javascript和python、以及c++的,不过python已成主力。
从我个人的观点来看,也不推荐C语言
一是C语言是非常脱离实际开发的,如果你没有机会接触硬件,接触底层(大多数人还真接触不到),不玩一下Linux、单片机、开发板,你所学的C语言就会停留在题目和考证上,而不会有机会真正解决实际的问题;
二是C语言的知识点相对比较少,是面向过程,而不是面向对象,学习它时不会像其他编程语言一样,会需要你翻阅技术文档,也就培养不出一个良好的习惯;C语言在大学里的学习方法沦落成数学一样,就是算法、刷题,和程序员学技术翻阅文档、不断实战是不同的;
三是C语言过于底层,难于理解,而如果要真正掌握C语言,链路非常长,大多人在学习的过程中不会有正向反馈,而其他编程语言如Python,两天就可以愉快的玩耍了;
四是C语言对非计算机、理工科专业的学生来说,以后基本用不着,对生活、工作的帮助意义不大,而所谓的培养编程思想,远不及Python、Java、JavaScript这种面向对象的编程语言。
肯定不一样啊,微软发布DotNet战略后的VisualStudio版本与原先的VC++版本差别是比较大的,而且对C语言标准的支持比原先要强一些了。学习C语言,开发环境只是工具,题主还是要专注于语言本身,不要过于依赖开发工具。
好了,关于为什么有的人不建议初学编程的人把C语言作为入门语言和为什么不建议新手学c语言的问题到这里结束啦,希望可以解决您的问题哈!