HTML和C语言哪个更好用的吗?

我推荐你花 10 个小时看看《计算机科学速成课》,这套课程是 Crash Course 旗下的计算机科学相关的视频,早期发布在 Youtube 上,整个系列课程高达 12 亿的播放量,令人开心的是,你可以在 B 站上免费观看,有汉化哟。

Crash Course 的这套计算机科学视频一共 40 集,基本上每集控制在 10 分钟左右,所以,只要不到 10 小时就可以粗略了解计算机科学这门学科,如果你是一个门外汉,相信我,通过这个短短的 10 个小时足以帮你打开计算机的大门。

你可能会不禁疑惑,十几分钟能学到啥?而事实上,Crash Course 的视频信息量很大,每一秒的时间都是精华,视频里面不仅有图像、视频资料、图表等,更有老师面授,老师的语速也是很快的,如果跟不上,建议 0.75 的速度进行观看。

如果你是小白,想了解一门学科,不妨通过该系列视频作为切入点;如果你是某学科学生,可以用该视频梳理总结课程的框架结构;如果你想拓宽知识,这个系列视频作为下饭菜也是十分合适的。

如果你对 Python 感兴趣的话,可以了解一下夜曲编程的课程,免费的内容挺多的,他们的产品分了两大块,Python入门和Python进阶,入门是基础语法,进阶包括了数据分析、可视化、爬虫、自动化办公,都是比较热门的领域。

同时,夜曲的网站和app内嵌了代码编辑器,可以直接在网页或手机上敲代码并运行,适合新手练习。

它们最大的优点就是讲解清晰,将知识点细化为一张张小卡片,非常便于渐进式学习,图文颜值也非常高,交互多样:如菜单选择,交互式答题,多端同步等极具现代化的教育方式。

大家想学的话,现在可以体验免费课程,领取方式如下:

再推荐一些计算机基础的网课。

(PS:感谢大家耐心的阅读,算法是程序员的重中之重,必须攻克,大厂面试必考,顺便送一份阿里大佬刷Leetcode总结的算法笔记,如果你能吃透,那我相信80%的技术面试都会不在话下:

这本书的目录,非常经典:

1. 计算机网络微课堂

学习计算机网络,我首先推荐的 UP 主湖科大教书匠,他讲的计算机网络十分通俗易懂,重点的地方讲的十分细致,并且还有一些实验,更好的是有考研 408 的难题的讲解,也是非常适合考研党,除了课程内容外还有很多习题讲解视频,特别赞的一点是每天动态里都会更新一道考研题,播放量也非常的多。

既然说到了考研,那我就不得不提一下王道考研了,恭喜你发现了宝藏。王道考研的计算机网络视频,播放量非常多,而且老师是一位小姐姐,声音十分动听,声音这么好听的老师给你讲课,妈妈再也不用担心我的学习了呢,总之,这个视频的质量也非常高,弹幕全是对小姐姐的高度评价。(王道考研其他的视频也不错哦,暗示一下:操作系统,数据结构等等)

3. 韩立刚老师 计算机网络

韩立刚老师所讲的计算机网络视频,内容比较多,但是讲解的通俗易懂,并且老师讲课的经验也十分的丰富。配套的教材是谢希仁老师的计算机网络教材,韩老师的最近的一个视频视频比较新,播放量还比较少,但是他讲的是真的不错,相比于王道考研所讲的计算机网络,韩老师更加细致一些。

4. 计算机网络(谢希仁第七版)-方老师

在计算机网络方面,我还想推荐的一位老师就是方老师,也是一位小姐姐老师。她的视频配套的教材也是谢老师的网络教材,在线看的小伙伴也超多,弹幕都是对方老师的评价。

相信很多小伙伴,学习数据结构、算法的时候,非常的头大,emmm.... 俺也一样。

1. 【郝斌】-数据结构入门

我个人觉得他讲得非常好,郝斌老师的思路是以初学者的思路来思考的,非常适合小白,你不理解的问题,基本上他都会详细说一下,有的地方他讲的不是非常的全,但是讲的比较深刻,课程的使用的书是严蔚敏的《数据结构》可能比较晦涩难懂,可以去看看《大话数据结构》或者《啊哈!算法》这两本书。

2. 数据结构-浙江大学

B站很多小伙伴都管陈越老师叫做陈越姥姥,陈姥姥的课简单易懂,二叉树和链表说的多,但是对于图太少,后面概念解释多程序少,对于新手不友好,并且这门课程到中后半段是另一位老师讲的,何老师。何老师讲解的也是非常的通俗易懂,并且拥有着强者的发型。

3. 数据结构与算法基础(青岛大学-王卓)

王卓老师基本上把大学数据结构期末考试的重点全部都讲了,内容和 408 高度吻合,也是非常的适合考验人,还有在这里提一下王道考研的数据结构还是很不错的,总之学习数据结构重点还是需要理解,要多做题才行。

4.尚硅谷 Java 数据结构与 Java 算法(Java数据结构与算法)

推荐了这么多 C 语言的数据结构,就来一个了 Java 语言的吧。尚硅谷--韩顺平老师的课程,韩老师视频内容全,并且每次课都会带着你写代码,把每一个例子都会实现,这也是张阿姨梦开始的地方。韩老师的口碑我就不多说了,评论弹幕都是对韩老师的“表白”。

给大家推荐一位关于 LeetCode 的大神,闫学灿老师,他的视频不仅会讲力扣的每日一题,还会讲解每一次力扣周赛的题目等等。你看就完了,yyds。

(PS:感谢大家耐心的阅读,算法是程序员的重中之重,必须攻克,大厂面试必考,顺便送一份阿里大佬刷Leetcode总结的算法笔记,如果你能吃透,那我相信80%的技术面试都会不在话下:

这本书的目录,非常经典:

伙计们,终于到了你们心心念念的操作系统 4 不 4~

看了很多网络上的推荐加上我自己曾学习的,总共为大家推荐以下这些。

1. [完结] 2020 南京大学 操作系统:设计与实现 (蒋炎岩)

南大的课质量真的硬,蒋炎岩老师讲的是真滴好啊。老师讲课时用的课本是 Remzi 的 Operating Systems: Three Easy Pieces ,老师的每一节视频都比较长,一次肝完贼爽,老师把晦涩的东西讲的也非常的通俗易懂,豁然开朗,很多同学都是慕名而来,看完这个也算上过南大的操作系统啦 哈哈哈。

2. 操作系统_清华大学(向勇、陈渝)

目前清华计算机系本科的操作系统课目前都是由这两位老师讲授(向勇、陈渝),网课内容和他们课堂授课内容是一致的,同时配有一套完整的实验,实验内容是从无到有地建立起一个小却五脏俱全的操作系统(ucore),能从头到尾做下来的收获绝对是听课所不能比的,理论课上老师照顾大多数人,娓娓道来。现在有很多同学已经整理出了这门课程的随堂笔记,这门课程强烈推荐!

3. 操作系统(哈工大李治军老师)

整体看了一遍,个人觉得是 b 站上很不错的操作系统课程了(经典课程如 mit6.828 在 b 站上的似乎都没有字幕而且拍摄角度实数刁钻)。这门课的前几讲涉及 OS 启动(老师谜之口糊),需要一点汇编知识,不过遇到不会的直接网上搜即可,大可不必因为汇编而被劝退;之后的内容如多进程、信号量、内存管理等讲得很好,不做赘述。如果对这部分有不解的地方可以网上搜资料或者去看 b 站上新竹清华大学的 OS 课程最后在学这门课前建议对计算机有个整体认识,可以去学习一下经典的 csapp 或者 mit6.004(对应国内的计组,一个偏软件,一个偏硬件)

1. 计算机组成原理(哈工大刘宏伟)

刘宏伟老师主讲,他的课不仅适合考研人,也非常适合初学者,初学者也听得懂。建议 1.5 倍速食用。之前有一个一百多万播放量的视频,不知道为啥没了...

2. 计算机组成原理 清华大学刘卫东

来来来,清华的来了嗷,这门课是 2013 年的,距离 2021 年有点遥远。

刘卫东老师主讲,质量很高。我非常喜欢他讲话的逻辑和风格,看就完了,贼好。(收藏是点赞的六倍还多,就离谱哈哈哈)

(点击收藏随即退出,编译原理已了然于胸)

1. 编译原理(哈工大)

陈鄞老师的 PPT 做的非常认真,讲得也很通俗易懂,思路清晰。这个是我目前为止,觉得讲的最直观简洁的了,全程没有一句废话,认真听会有很大的收获,每一句话都要仔细琢磨,并且老师那种温文尔雅的气质,你不认真听课?啊?小伙子。 认真学完真的会收获很多。

我一直认为读书是世界上性价比最高的成长方式,书很便宜但分量很重,是让我们摆脱平庸走向卓越的方式之一。

对于计算机专业的学生而言,读计算机经典书籍不光能让你快速提升知识和能力,更会让你在校招之际如虎添翼。

最后,再给大家送上点干货!

下面这是一个高赞回答合集,建议大家点赞&收藏,Mark住别丢了,大学期间绝对用得上

1、怎么学好数据结构,看下面这个回答,已经获得了 21000+ 的赞和 50000+的收藏。

2、如何系统地学习算法,看下面这个回答,已经获得了 11000+ 的赞和 26000+的收藏。

3、新手该如何使用 GitHub,看下面这个回答,如果在大学期间就知道使用 GitHub ,那么能力远超同龄人。

4、想成为一名优秀的程序员,那么这些程序员平时都喜欢逛的论坛怎么说你也得收藏一些吧。

5、无论别人怎么说,我都是坚定不移的选择计算机专业。

6、如何系统地学习 C++ ,这个回答能帮你找到路线。

7、想要准备 Java 面试,那么这些面试题必须掌握。

}

我觉得@余天升 说的已经相对完整了。但是我觉得大家的回复还是偏片面了一些。而且部分回复的火力主要集中在评价这两种语言上,实际没有回答LZ的问题。

首先,应该从开源社区的风格来说,“一个大集市”我认为是一个比较恰当的比喻,一个吵吵嚷嚷的地方,必然每个项目都可以决定自己项目的开发方式。由于现在彼此之间相互依赖的开源项目大多数都是以Linux平台为开发对象,所以自然和Linux平台自身提供的技术解决方案保持一致是一个比较容易想到的技术策略。

其次,因为Linux社区中的领军人物对C++抱有顾虑(先不谈这个顾虑是否是正确的),导致Linux社区对C++的顾虑比较大。

那么LZ的问题就可以转化成开源社区对C++的顾虑究竟是正确的,还是错误的?我的看法是既正确,也错误。而原因都在于精英治理。

由于Linux内核,以及核心的GNU软件,开发者都是技术上数一数二的精英。所以他们的产品目标,和第三方公司基于Linux平台开发的软件产品目标,略有不同。包括 Linus Torvalds在内的精英们都害怕因为不好的代码而“毁掉”一个优良的作品(当然还有其他的因素)。

而反观一些商业上比较成功的软件,并没有过分强调技术性上的“纯粹性”,而是更多的以商业利益为导向,我认为他们的成功很大程度上是因为他们深刻认识到人的思维很容易将大的问题做分解,但是比较难将小的解决方案组合成大的解决方案。而在这方面,C++应该比C更有优势,更能通过接口、通过封装降低产品各个部分的复杂度,不仅使开发者能够更容易的进行开发,也更能够让需求分析、设计更容易贴近用户实际的使用方式,而不用过分考虑其实现形式是否能够承载。

总之,这两种语言更大的区别我觉得在于设计的哲学,正是由于这种哲学上的不认同,导致了开源项目更多的使用C而不是C++。

《C专家编程》第二章《这不是Bug,而是语言特性》里有一句话:

它(C++)对C语言中存在的一些最基本的问题没有什么改进,而它对C语言最重要的扩展(类)却是建立在脆弱的C类型模型上。

第十一章《你懂得C,所以C++不在话下》里还有一段话:

编程语言有一个特性,称为正交性(orthogonality)。它是指不同的特性遵循同一个基本原则的程度(也就是学会一种特性有助于学习其他的特性)。例如,在Ada中,程序员一旦明白了包(package)的工作原理,也就能够把这个知识应用于泛型包中。令人不快的是,C++中的许多特性是非正交的。精通C++的某个特性并不能给你带来什么线索或向你启发适用于其他特性的思想模型。大多数程序员选择了只使用C++中较简单的一个子集的方法。

STL作为一个模范放在那里人们都不看,非要去写

  • 披着C++外衣的C语言

中枪踩坑学不会都是正常的。这根本不是C和C++哪个好的问题,是大众对C++的误解造成的。在用C++的时候,自己水平不高,就不要去用C的部分。都是因为人类的意志力太脆弱,才造成这么多问题的。

不过话说回来,我觉得是因为现在牛逼的一帮人都太老了,但是还没有脱离岗位,所以普遍有这些想法。我们组有一个超厉害的在M$干了二十几年,刚开始进来就用汇编写Fortran编译器的菊苣说,他还是不太喜欢封装得太多的东西。不过人家说得好,这只是一个喜好问题,根本不是什么好什么不好的问题。等以后CPU的核变得跟GPU一样多的时候,C语言就只能成为负担了

从Github的语言排行榜()看来,C比C++多了将近一倍。

原因:对于面向对象的编程语言, 除C++外还有许多更好的选项,比如Ruby、Python、PHP和Java(全都比C++排名先前);相反,C的代替品不多

1 历史原因, C的历史悠久,基础项目多,很多40多岁的大牛也是基本用C用的多
2 C++属于实验性质的先驱,很多东西都是在C++里面广泛应用起来才推广的,面向对象,泛型等,另外继承C的一些不良东西,导致臃肿琐碎,上手容易,产生高质量的代码不容易,标准不稳定,编译器很后时才支持的比较好。
3 Linus说的很对,关键是设计,如果借鉴设计模式的一些想法,C一样可以写的很好,如果习惯了,开发效率未必会比C++低
4 现代的软件设计讲究模块化设计,各模块分工好了,整个项目不必使用同一种语言,C++的生存空间被压缩不少
6 C++易学难精,很容易纠结到语言细节中,而忘了项目。
7 C++还是很有发展前途,一些必须用native code的,如果不是用C的高手,用C++还是写的快。
8 还忘了一条,C语言都是一个人从头定义的,标准委员会只是略打个补丁。C++是委员会妥协(商业政治和技术)的结果,所以混乱,标准制定进度缓慢。来自于不同的想法,没有很强的一致的风格。不过C++毕竟是需求推动起来的,所以还是符合了开发的需要。

(1)C++比C多了很多特性,让用C++写出来的代码容易不伦不类。
从风格上来说,钟爱C的程序员可能不喜欢。

虽然C++在绝大部分情况下是可以兼容C的,但在某些情况,还是不得不使用 extern C 这样的代码。

(3)我还是认为 C++ 比 C 优秀很多,如果你能很好地驾驭它。
C++ 大师 Bjarne Stroustrup 回答过很多人的一个疑问,大致就是说“C++特性太多了,变得很臃肿,你会不会考虑裁掉一些特性”。他给的答案是“不会,无论是异常、多重继承、还是RTTI”。
原因很简单。如果说多重继承会带来问题,难道C的指针不会吗?还是那句话,只要你能很好地驾驭它!

就我个人来说,作为一个C++程序员,我永远是被C程序员摆在瞧不起的位置,所以开源软件这种证明程序员荣誉的东西,怎么能让那些高傲的人低下头来使用C++呢……
说起来,本人一路低头,从C++学到JAVA再到OB-C……越来越被同行瞧不起……

我认为就是推广,C本来接受度就更好,各种编译器全部可以编译,任何项目都可以借鉴,而且C更简单易维护。C就是首选。不但要首选C,若有可能要做到Clean-C.
我觉得可推广性考虑完全击败linus和大胡子

作为开源项目,和封闭项目不同,要尽量支持更多的平台,对开发环境也不能做太多要求和指定。C 语言比较简单,编译器稳定可靠。而 C++ 虽然有一个标准,但是实践中,各个编译器的实现都不同程度地偏离了标准。这种差别是很恼人的,为项目带来很多麻烦。这时采用纯 C 而不是 C++ 就是一个十分合理的选择。

另外,开源项目很多是基础类库,而 C++ 在很多平台缺乏统一而稳定的二进制接口,无法做到二进制复用。(很遗憾,像 Boost 这样难得一见的著名开源 C++ 项目,在不尊重二进制接口的稳定性这一点上,又是臭名昭著。)那么,从节约用户的编译时间和环保的角度考虑,开源项目采用纯 C 而不是 C++ 也是有理有据的。

C++ 编译器做了很多额外的工作,如程序员不合格,隐藏很多bug。

c++过于复杂,绝大多开发者都不能完全掌握c++所有的特性(c++iso文档有600页你读完了?boost你都看懂了?)c++的另一个问题是不少程序员 包括我 在使用时,不少设计是利用了语言的一些特性,造成了设计上的不良。到最后就很难修改了。某牛说过c++是座山,世界上最大的屎山。我认为也是源于此吧。总之c++容易写出复杂而晦涩也不易修改的代码,这一切不是c++的错。但在c++里很容易发生。这是门给iq190
以上人用的语言,但太多iq70的人在用,所以大牛门纷纷不用了。

c++太复杂了,c++写的库也很复杂,比如stl和boost,调试不方便,不如c清晰简单直接。

C相对于C++而言简单、快速、灵活,C++ 复杂到超出绝大部分精英程序员的控制,而对他们而言用C同样可以实现优雅的继承、封装和多态。C++ 侧重于考验一个人的架构能力,而这种能力对程序员有着很高的要求,稍有不慎,就会伤到自己,还不如用C来实现更完美。

虽然说面向对象给了程序员贴近显示的思考模型,但是在代码中,一些违反常识的事情还是会发生。实际模型和代码模型会有微妙的差别。纯粹的面向对象还比较好处理,一旦用错也可以有一种回到正确模式的倾向。但是c++的面向对象一旦用的不好,或者说用错,各种补丁,不合格的代码,非面向对象的代码就会添加进来,最后导致项目代码混乱,不可维护.....

个人观点,c++的特性比c语言要多得多,如果是一群人共同维护一个项目,很有必要先坐下来定下一些规范:哪些库哪些特性能用,哪些不能用。要不然各自都看不懂对方写的代码。
而参加开源项目的程序员,坐下来沟通的机会相对少一些,而且热衷于开源活动的人们似乎都比较爱好自由,不容易达成一致的意见。
所以干脆选择特性少一点的c语言了。

不能因C++复杂而去唾弃它。。。很多人都是因为它复杂。。所以不用。。那不是语言的错。是人的智商不好。。对于一个大项目来说。。当你的代码超过50万行。。你会发现C++的优势是C永远不能代替的。。。。。

如果你说的开源软件是做底层,用C写是必须的。我不讨论C++的好处,但是他有做不到的东西。
如果底层开源软件用C++写,那么当需要别的语言来使用这个软件时,即作为基础库,这时就有麻烦了。用C写了,很多语言可以真接和C的库交互。C++写的库,只能C++自己使用。必要时还必须用C到处。这也是为什么操作系统不用C++,不是不想用,而是不能用。

这种问题的答案的首要因素不应该是代码积累/沉淀/延续吗?为什么现在人都把精力放在语言特性的比较上?就算很多认识并较好掌握了复杂语言特性的他们,是否有足以拿得出手的项目/代码可以分享或者重用。
显然开源的老祖宗GNU(Gnu's Not Unix)是脱胎于Unix文化,C语言那个时候也已经得到了普遍的接受,兼容性也是最好的,用c并延续已有的c的成熟经验和代码是最自然的事。几乎所有流行的linux环境也都是在这个基础上被搭建起来的,在没有足够大的改变开发工具的必要性来推动的话,这么惯性会延续很久。(其实已经逐步在改变,比如gcc转换到c++上开发)
任何一个仔细考察和研究开源项目,或哪怕仅仅GNU项目本身的人都会发现其中蕴含的是一个巨大的宝库。实际上对于从微软/单机时代走过来的每一个人,在介入到网络(Fidonet/Internet)那一霎时,无不对突然暴露在眼前的源代码项目充满好奇,就仿佛突然发现了宝藏一般迫不及待要去挖掘。
C++乃至后续的项目的确给出了更多的方便编写代码的特性,但因为目前使用的冯氏计算机体系结构以及底层都是类Unix的操作系统也决定的的这些特性都可以通过C这个冯氏汇编语言实现,最多是偶尔稍过繁琐,这种现状暂时还不会得到改变,至少在自动生成代码的量占据一定比例以前。
那么从项目沉淀的角度看,一个最少抽象,又已经有足够底层支撑的语言是最适合用于开发希望被大众接受并广为传播的开源项目的。尽管眼下基本上各种流行语言都有不少的类似项目,但如果以一定的质量/价值/普适性阀值做一个过滤的话,基于c的项目可能存活下来的概率是最高的。越是新潮的高级的东西,要不是只是作为练手的玩具,要不往往仅局限于一个某个较窄的应用场景。
所以某些高级的东西,它们的确能够提高某个具体项目的开发效率,但其中提高最多的是那些随心所欲的成分,而真正能够拿来重用那部分沉淀/积累的东西并不会因此改变太多。人们往往发现每当一个高级的东西被发掘出来,能够得到流行的关键往往是其自身究竟积累到何种程度,实际上每次这个积累过程很可能只是一个重新制造轮子的过程,尽管这些个新造的轮子可能表面显得更加漂亮和光滑。

没那么复杂吧,就是c存在的时间长而已 c本身是优秀的语言,所以一直活到现在。旧时代的项目没有更换语言的理由 但如果看这远些,互联网时代出生的开源项目,基本就是使用新兴语言了。如果还要高性能,c++是不多的选择之一 其实c++11不该和老c++相提并论的

知乎上关于c和c++的一场讨论

开源社区一直都不怎么待见C++,自由软件基金会创始人Richard Stallman认为C++有语法歧义,这样子没有必要、非常琐碎还会和C不兼容,并且还带来不了什么非常大的好处。

Linus Torvalds也说,C++是一种可怕的语言,而使用它的一大群水平很次的程序员,使得它变得更加可怕。

C++本身的语法是好的,但是过于的复杂,尤其像继承这些特性被乱用了以后,面向对象的那些优势会在那些质量糟糕的代码前面完全丧失,有时候还会使得代码非常费解。
容易被误用语法特性而可能会变得很糟糕的C++,加上两位大神的抵制,理所当然在开源阵营里面流行不开。

}
制作网页要不要用C语言啊,我想把他学精点,不知道还有没有用呀,呵呵,有没有很会的人呀
}

我要回帖

更多关于 前端需要学c语言吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信