分享

阿里大佬强烈推荐的C语言学习路线

 思想年代 2022-10-25 发布于西藏

我认为 C 语言最为核心的有三块:

  • 指针
  • 内存
  • 系统编程

首先指针和内存是需要在学习 C 语言过程中就理解、搞定的,推荐两本书:

《C程序设计语言》、《C和指针》

如果你觉得初学看书过于困难,那么可以去中国大学 MOOC 上浙大翁凯老师的 C 语言课,可以直接去 B 站搜。

视频结合书一起看,相信会理解得更加深刻。

这里分为两门:

第一门是面向高考结束想提前自学一点编程的,叫大学先修课:

C语言程序设计CAP_浙江大学_中国大学MOOC(慕课)

虽然叫先修课,但是覆盖了C语言的主要知识点,也适合大一新生~

第二门是C语言程序设计进阶, 会带你用C语言完成一些有趣的项目,比如一些图形界面小游戏,先修课学习C语言语法基础,进阶课带你项目实操,搭配使用,你就是同学中的大神!

C语言程序设计进阶_浙江大学_中国大学MOOC(慕课)

然后,学习完了 C 语言基本语法后,你会发现似乎只能开发在黑窗口里运行的程序,写不出那些漂亮的 GUI。

确实,C 语言本来就不擅长做这些,C 语言擅长的是开发系统组件来支撑上层应用。

但是如果你迫切的想做出一些可视化、有趣的东西,那么可以这样做:

  1. 找一些 C 语言的图形库,比如 easyx,借助这些图形库,你完全可以实现一些图形界面的游戏。
  2. 继续去学 Python、Java 这种语言,然后学习 Web 开发,写写网页。

当然了,如果你对那些可视化的东西没那么大兴趣,甚至还挺喜欢黑窗口的,那么恭喜你,你有成为大佬的潜质。

当你熟悉完 C 语言基本的语法以后,建议去学习数据结构与算法,用 C 语言去实现链表、树、二叉树、堆、排序、搜索等等。

推荐看看《算法:C语言实现》这本书。

如果能通过 void 指针实现一些泛型数据结构就更棒了,比如标准库里的 qsort 就能支持任意可比较结构体排序。

然后,时间应该很快来到了大二、大三,这时候你应该学习系统编程,什么是系统编程呢,其实就是 CSAPP 这本书上所讲授的内容。

系统编程其实就是学习如何用 C 语言编写出真正可用的软件,比如像 http server、redis 这种,会涉及到:

  • 如何在 Linux 环境下编程
  • 系统级接口(system-level interface)究竟是什么
  • Linux 内核和 C 标准库提供了哪些能力
  • Linux 的系统调用是怎样实现的
  • 都有哪些系统调用,如何使用
  • 其它诸如mutex、signal、select、epoll、ipc、socket、thread、process(fork)等等

系统编程推荐《深入理解计算机系统》、《Unix网络编程》、《Unix高级环境编程》,Windows 下的我基本没学过,所以就不推荐了。

C 语言的世界:

C

也许以后实际工作中你完全没有机会去写 C,但是这并没关系,打好了基础,学其它也会学得很快、很透彻。

对于计算机专业的同学,还是建议学好 C 语言,与其它课程相结合,多懂一点程序背后的实现原理。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多