开发者社区> nothingfinal> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何学好C语言

简介: 有人在酷壳的留言版上询问下面的问题 keep_walker :今天晚上我看到这篇文章。http://programmers.stackexchange.com/questions/62502/small-c-projects 我也遇到了和提问的老外一样的问题。
+关注继续查看

有人在酷壳的留言版上询问下面的问题

keep_walker :
今天晚上我看到这篇文章。
http://programmers.stackexchange.com/questions/62502/small-c-projects

我也遇到了和提问的老外一样的问题。。能给像遇到这样烦恼的程序员一点建议嘛?谢谢!

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

  1. 虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。
  2. 大量的封装好的类库也屏蔽了很多实现细节。

一段时间后,你会发现你知其然,不知所以然。。我以前在CSDN上写过一篇《Java NIO类库Selector机制解析(》,在那篇文章中我说提到过(有讥讽的语气)Java的程序员不懂底层实现,所以很难把技术学得更扎实。此时,一部分程序员会不自然地想学学底层的技术,很自然的,C语言就被提了上来。

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

  • 鼓励并为你叫好。我鼓励你想要去学C语言的想法和精神,很多人都觉得C语言好学,其实并不然。(你可以看看《C语言的迷题》)现在的这个社会更多地去关注那些时髦的技术,而忽略了这个流行了40+年的C语言。一门技术如果能够流行40多年,这才是你需要去关注和学习的技术,而不是那些刚出来的技术(过度炒作的技术Windows编程史)。这才是踏踏实实的精神。
  • 不要找借口。这一条路走下来并不容易,不要给自己找借口。我最不喜欢听到的就是“很忙,没有时间”这样的借口。我以前在银行做项目,早9点到晚10点,周一到周六,我一样可以每天抽1个小时来看书和专研,一年下来也能精读5、6本书。我现在的工作项目和招聘任务很紧张,刚生的小孩只有自己和老婆两人带,还需要准备讲课,但是我还是能够找到时间看文章写文章维护酷壳。所以,我可以告诉你,“时间就像乳沟,只要你肯挤,就一定会有”。

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

——-更新:2011/03/29 20:00——-

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

  • 编程编到一定时候,你就需要了解底层系统的机制,否则,知其然不知所以然。
  • 我没有否定非C的程序员的逻辑,真正的逻辑是——如果你想要了解底层机制,请学习C语言和操作系统。
  • 40多年的Unix/C影响深远。包括影响了Windows。如果你想一通百通,一定要了解Unix。那是计算机文化真正的根。
  • 不要肤浅地去思考问题。比如,不要以为一个DBA就不会考虑数据库引擎的内存页面的问题。也不要以为Web程序员就不需要了解后台的服务器和脚本的运行性能以及TCP/IP的问题。

高手往往都是有很强的系统的基础知识的,表面的东西永远是肤浅的。

http://coolshell.cn/articles/4102.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C语言 - 数组
C语言 - 数组
22 0
初识C语言
初识C语言 本章重点 1. 什么是C语言? 2. 第一个C语言程序 3. 数据类型 3. 变量、常量 3.1 定义变量的方法 3.3 变量的使用 3.4 变量的作用域和生命周期 3.5 常量 4. 字符串+转义字符+注释 4.1 字符串 4.2 转义字符 5. 注释 ————————————————
26 0
[C语言] 常量与变量
加法运算符("+")又称之为 双目运算符,即应该有两个变量参加运算,具有右结合性。描述:把两个操作数相加。 减法运算符("-") 又称之为双目运算符,但"-"也可作负值运算符,此时为单目运算符。描述:从第一个操作数中减去第二个操作数。 乘法运算符("*")又称之为双目运算符,具有左结合性。描述:把两个操作数相乘。 注意:数学上的是乘法(x),而在我们编程当中是星号(*)。 除法运算符("/") 又称之为 双目运算符,具有左结合性。参与运算量均为整型时,结果也为整型,舍 去小数。
45 0
[C语言] 常量与变量
常量其实就是在程序运行过程中不可以被改变的量叫做常量。 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫
39 0
[C语言]概述
C语言由美国贝尔研究所的D.M.Ritchie于1972年推出,在1978年之后C语言就已经先后被移植到了一种 大 中 小 型的微型机上了(注:微型机其实就是一个计算机系统)
46 0
C语言-数组
C语言-数组
30 0
C语言-数组
C语言的数组是一个同类型数据的集合,主要用来存储一堆同类型的数据。 程序里怎么区分是数组?` [ ]` 这个括号是数组专用的符号. 定义数组、 访问数组数据都会用到。
37 0
+关注
nothingfinal
软件开发,安全加密
1068
文章
341
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载