如何学好C语言

2011年3月29日 发表评论 阅读评论 50,138 人阅读    

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

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的问题。

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





好烂啊有点差凑合看看还不错很精彩 (84 人打了分,平均分: 4.90 )
Loading ... Loading ...
  1. willwang
    2011年12月22日20:48 | #1

    看你的文章我好感动!
    《UNIX编程艺术》绝对是一本设计圣经。但是我发现公司里还没有其他人这么重视它。
    我决定跳槽了,摆脱体力密集型劳动!

  2. 阿七
    2011年12月22日22:05 | #2

    牛逼啊,看你的博客学到很多东西啊,以后你出书了肯定买你的

  3. 2012年1月9日08:16 | #3

    很喜欢你的文章

  4. 国鸡
    2012年1月20日10:47 | #4

    @Lan_chi
    中鸡. 在这也能见到你啊.. 我是国鸡

  5. Tesla
    2012年1月31日13:55 | #5

    看你的文章学到很多东西!努力ing!

  6. buhui912
    2012年2月13日16:09 | #6

    当国人在无限崇拜C语言和unix时,美国那些编程牛仔们开始重回LISP时代了,开始关注ruby了。底层编程固然值得景仰,但函数式编程,那些抽象的数学编程照样能和C语言媲美

评论分页
1 2 3 4102
  1. 2011年3月29日16:55 | #1
  2. 2011年3月30日08:51 | #2
  3. 2011年3月30日12:19 | #3
  4. 2011年3月31日22:00 | #4
  5. 2011年4月2日22:49 | #5
  6. 2011年4月6日08:49 | #6
  7. 2011年4月6日18:50 | #7
  8. 2011年4月8日09:20 | #8
  9. 2011年4月13日10:17 | #9
  10. 2011年4月18日11:16 | #10
  11. 2011年7月31日00:18 | #11
  12. 2011年7月31日00:28 | #12
  13. 2011年8月11日13:05 | #13
  14. 2011年8月14日01:28 | #14
  15. 2011年8月14日16:15 | #15
  16. 2011年8月27日11:03 | #16
  17. 2011年10月29日16:03 | #17
  18. 2011年11月10日17:36 | #18
  19. 2011年12月17日22:19 | #19
  20. 2011年12月20日08:39 | #20
  21. 2011年12月20日13:16 | #21
  22. 2011年12月20日14:24 | #22
  23. 2011年12月20日15:13 | #23
  24. 2011年12月28日13:17 | #24
  25. 2011年12月28日21:57 | #25
  26. 2012年1月6日09:59 | #26
  27. 2012年1月8日21:03 | #27
  28. 2012年1月9日23:22 | #28
  29. 2012年2月13日14:37 | #29

无觅相关文章插件,快速提升流量