11年C/C+开发经验的大神给小白学习C语言的一些建议,自学不再迷茫!

我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子。比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是对于程序员来说可能并不太好,原因有两个:

虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。

大量的封装好的类库也屏蔽了很多实现细节。

分享之前我还是要推荐下我自己的C/C++学习交流群:三四零六五一六八七,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的C/C++资料和零基础入门教程,送给大家,欢迎初学和进阶中的小伙伴

一段时间后,你会发现你知其然,不知所以然。Java的程序员不懂底层实现,所以很难把技术学得更扎实。此时,一部分程序员会不自然地想学学底层的技术,很自然的,C语言就被提了上来。

下面是我给这位朋友的一些建议:

鼓励并为你叫好。我鼓励你想要去学C语言的想法和精神,很多人都觉得C语言好学,其实并不然。(你可以看看《C语言的迷题》)现在的这个社会更多地去关注那些时髦的技术,而忽略了这个流行了40+年的C语言。一门技术如果能够流行40多年,这才是你需要去关注和学习的技术,而不是那些刚出来的技术(过度炒作的技术,Windows编程史)。这才是踏踏实实的精神。

学好C语言和系统编程。我认为,学好编程有四个方面:语言、算法和数据结构、系统调用和设计。

语言。我可以告诉你C语言有两大主题你要好好学,一个是内存管理,一个是指针!这个世界上90%以上的C/C++出的严重性错误全是和这两个有关。不要看谭浩强的那本书,那本是本烂书。推荐这本书给你《C程序设计语言(第2版·新版)》

算法和数据结构。我认为,用C语言实现算法和数据结构莫过于最爽的事情。推荐你看这本书——算法:C语言实现(第1~4部分)基础知识、数据结构、排序及搜索(原书第3版),还有那本经典的《算法导论》

系统编程。Windows下推荐两本书——《Windows 程序设计 》和《Windows核心编程》,Unix/Linux下推荐两本书——《Unix高级环境编程》和《Unix网络编程卷1,套接字》《Unix网络编程卷2,进程间通信》尤其是《Unix网络编程》这本书,一通百通,无论Windows还是Unix/Linux,都是一样的。

系统设计。关于设计方面,我全力推荐《Unix编程艺术》,看完以后,你就明白什么是真正的编程文化了。然后,当你看到Windows的Fans的某些言论时,你就知道什么叫一笑了之了。

如果你能在2-3年内精读完这些书,并全部融会贯通,那么你就明白什么是一览众山小的感觉了!我足足花了5年时间才算是真正全部读完这些书的。最后,祝你好运!努力!

文章主要想告诉大家这么几件事:

编程编到一定时候,你就需要了解底层系统的机制,否则,知其然不知所以然。

我没有否定非C的程序员的逻辑,真正的逻辑是——如果你想要了解底层机制,请学习C语言和操作系统。

40多年的Unix/C影响深远。包括影响了Windows。如果你想一通百通,一定要了解Unix。那是计算机文化真正的根。

不要肤浅地去思考问题。比如,不要以为一个DBA就不会考虑数据库引擎的内存页面的问题。也不要以为Web程序员就不需要了解后台的服务器和脚本的运行性能以及TCP/IP的问题。

本文来自企鹅号 - 我爱C语言媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏花叔的专栏

MPSO?粗略解读小程序的关键字搜索

本文未经允许,可随意转载^_^! 早在小程序发布前,也就是2016年11月份左右,我们当时就猜想小程序有搜索的入口。然后老大就跟我说:这里有一坑,我说什么坑,他...

32170
来自专栏程序员互动联盟

适合初学者入门的5种编程语言

如果你想学习编程,虽然选择第一门编程语言与你想用它来做什么最终达到什么目的有很大的关系。但是事实上某些编程语言的确比其他语言要好学。选择一门合适的编程语言作为入...

91160
来自专栏程序员互动联盟

历史上争议最大的编程语言是谁?

php估计目前是存在争议最大的语言,争议声一直不绝于耳。这是一门优势巨大,缺陷也一样巨大的编程语言。一直在争议中进度,企业招聘的岗位也是越来越多,这么多人参与进...

39080
来自专栏Java架构

想进阿里、京东、美团面试的Java程序员看过来第一个问题:阿里面试问些什么

27960
来自专栏Java社区

我开发了一个怪物——”消沉的程序员”搞笑漫画

11910
来自专栏Keegan小钢

小钢的架构思考:架构设计

最近一个多月因为忙于工作上的项目重构,所以文章一直没能更新。现在,重构终于暂时告一段落,于是,赶紧抽时间把文章写完更新发布。下面进入正文。

11320
来自专栏VRPinea

两周构建一个VR游戏?3D建模师使用Block和Unreal接受挑战

34050
来自专栏性能与架构

Apache新的顶级项目 TinkerPop

Apache软件基金会最近宣布:TinkerPop 升级为顶级项目 TinkerPop 是一个图计算框架,用来进行实时的事务型处理,和批量的图分析,包含了一系列...

37050
来自专栏编舟记

敏捷团队工作流

站会中的内容是每天工作的开始,也是对昨天工作的回顾。一般会由团队的某位成员主持,这位主持人有责任让电子系统上的story卡片和看板上的保持一致。站会上,大家依看...

29550
来自专栏人工智能LeadAI

为什么说Python是伟大的入门语言

本文作者列举了一些Python特性,并认为Python是最适合入门的编程语言,一起来看一下。

16020

扫码关注云+社区

领取腾讯云代金券