c语言学习有前途吗 (c语言主要学什么,用来做什么的)

本文目录导航:

c语言学习有前途吗

这种问题不要去问某某大学专业的学生,学生对业界的了解是非常非常空中楼阁的,仅比他们的老师(不但不懂,还行骗)好一点。

从业十几年,现在还在行业一线打拼,尝试给年轻人分享一点经验。

整个行业以复杂程度来衡量,是一个大概金字塔的分布,底层是一些简单的,基于个人和较直观可理解的应用,如大家经常接触的手机应用,网页应用,等。

中层是一些小规模团队合作可以完成的,对性能和规模等方面要求不算太高,大多可以一次成型或者接近完成的项目;在顶端则是一些高复杂度和高要求的项目,例如大型的工业项目,高性能或者高吞吐量项目,和现在很流行的大型互联网服务等;很多时候复杂性是和规模成正比的。

在这个层次中,越接近低复杂度的项目,对语言的要求越少,更多的语言都可以胜任,更容易被分工和替代,例如可被外包的网站或者ERP等等;在这些项目中,除了少数特殊领域例如嵌入式开发等,C语言几无立身之地,学习成本高而开发效率低,接近底层带来的性能等可控性方面的回报得不到体现;在中层项目中,C语言的优势也不强,例如知乎,豆瓣这样的网站,可以用更高级语言开发的更快,更敏捷,更少“机器级细节的干扰”;只有到了高复杂度项目中,因为对规模、性能等方面的追求,才是C/C++语言一展所长的空间,例如互联网搜索引擎,高性能科学计算,大型网络游戏服务器等等。

所以,如果目标是更大比例的程序工程师从业者,C语言学习可以改善对程序、计算机体系的理解,对面试、后续的学习有些帮助,而对直接的工作业绩帮助不大;如果目标是高复杂度专业领域的码农,C/C++还是要好好学一下的,可以翻翻近几年的网络腾讯股沟毕业生招聘试卷,另外不得不说,自学到脱颖而出的程度,对一个非专业大学生而言,还是很困难的一件事,如果以python等语言上手培养编程的热情兴趣和习惯,能够快速融入一个工程师社区和团队,是向更专业工程师攀登之路的一个良好起点

c语言学习有前途吗 (c语言主要学什么,用来做什么的)

C语言编程学习必备的一些网站,干货收藏!

以下是学习C语言编程时,国内外一些不可错过的网站资源,它们涵盖了问题解答、开源项目、教程、实战练习等各个方面:

国外资源:

国内资源:

如果你想深入了解C/C++,可以加入我的学习交流群“小凯C/C++语言学习之家”,获取更多学习资源和答疑支持。

如何评价 CMake? - 知乎

本文从C/C++构建工具的历史视角,客观评价了CMake。

在第一代构建语言Makefile中,规则和依赖关系被清晰定义,是构建领域的王者。

接着,我们进入了第二代以autotools为代表的构建工具时代。

这个系列几乎成为Linux构建的基础,擅长检测环境依赖,但复杂度较高,尤其是大规模项目中,频繁的链接错误需要多次运行才能解决。

Gn的link pool功能对此有很好的缓解。

SCons和CMake成为了第三代构建工具的代表,其中SCons和GYP是Chromium开发者早期的构建工具,但由于SCons局限性,GYP应运而生,它采用Python编写,语法类似Python,适用于描述复杂的跨平台工程,能生成VS Solution/Project File,支持各种IDE的调试和编码,工程文件变更后能持续支持,无须重建。

Chromium项目庞大复杂,涉及大量开源项目和分支,为了提升构建效率,Google工程师发明了Ninja,其构建速度和依赖性支持无与伦比,语法与Makefile一脉相承,提供了浏览、依赖图生成等分析工具。

随后GN诞生,它几乎延续了GYP的语法,发展出Starlark语言,能够简洁描述目标依赖,生成Ninja构建文件。

Ninja与GN的结合可能代表了构建系统的第四代,尤其在Google新操作系统Fuchsia中被应用。

回到CMake,作为广泛使用的函数申明式语法构建工具,虽然使用广泛,但其缺点明显。

CMake生成大量中间文件,语法丑陋,构建效率一般,编写过程需要大量文档查询,特殊外部依赖处理较为痛苦。

CMake在技术上可能还属于2.5代,但因其使用广泛,被归类为第三代工具也较为合理。

然而,CMake存在生成大量中间文件、语法丑陋、构建效率一般、文档查询繁琐以及特殊外部依赖处理痛苦等问题。

在构建工具领域,每个工具都有其擅长之处,但CMake在处理大型复杂项目时,其缺点可能更加凸显。

在构建工具的选择上,跨平台性和构建效率是关键因素。

Meson这类工具试图简化构建流程,但其功能和易用性仍有待提高。

Bazel作为Google内部的Blaze的外部版本,语法与GN类似,适合Java工程,但在功能和易用性上与GN相比还有差距。

Boost的自研构建工具bjam在配置文件简洁、构建速度体验、强大且简洁的交叉编译能力等方面表现出色,尤其是在管理复杂依赖和配置文件方面,甚至能与libtorrent的iOS配置文件相媲美。

总的来说,CMake作为广泛使用的构建工具,其优点在于使用广泛和功能强大,但缺点同样明显。

在处理大型复杂项目时,其生成大量中间文件、语法问题、文档查询繁琐以及特殊依赖处理的挑战可能影响其整体表现。

对于选择构建工具,开发者应根据项目需求、团队熟悉度、跨平台性、构建效率等多方面因素综合考虑,以实现最佳构建流程和项目管理。

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

87阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读