程序员如何深入学习计算机工作的原理

admin 2014年12月10日 程序员成长 754次阅读 查看评论

  09年大学毕业前开始自学计算机,先从前端的HTML、CSS入手后来接触了javaScript,并负责过一阵子前端开发的工作。现在工作范围扩大到后台的系统服务架设,数据维护等方面。

  两年的工作让我意识到程序员的工作是解决实际的问题 - 例如如何完成某项功能,如何配置某项服务。 在完成这些工作时,往往有很多地方可以找到参考或者前人的流程 (例如http://stackoverflow.com)

  但在完成这些流程的同时,并不意味着明白背后工作的原理。例如学会配置Nginx提供http服务,不一定明白nginx为什么比apache处理并发更高效,也不一定明白如何进行下一步的scale up。

  为了解决当下的问题,去找到的书,大部分是不涉及这部分原理性的知识的。一部分如handbook,cookbook之类是提供直接的解决方法,二部分如language book是教会如何使用一种语言去完成相应的操作,另外还有介绍工具的使用的(web framework, SA services etc.)

  但我总觉得这部分的只是是关于如何做,而不是关于为什么需要这么做。如果不明白后者,前者只是重复的工作罢了。

  所以想问问各位如何深入的学习计算机原理?例如该看哪些书?该如何看这些书? 如何和实际工作结合。

  【惠宝她爹的回答(5票)】:

  看懂这本书,computer system --a programmer's perspective, CMU的教程,涵盖计算机多个方面,属于原理性的著作. 在有相当实践经验后回归这本书还是有意思的

  【孙立伟的回答(1票)】:

  要搞明白为什么nginx能高效的处理并发,你需要学习下面的基本知识:

  1.TCP/IP协议的工作原理

  2.SOCKET编程,异步I/O的API

  没看过Nginx的源码,不知道直接阅读的难度有多大。根据你描述的经历,如果不懂C/C++,看起来比较困难。

  想要看书的话,《TCP/IP 协议详解 卷一》http://product.china-pub.com/35 和《Unix环境高级编程》http://product.china-pub.com/30181 这两本书必看。

  【馮淞的回答(2票)】:

  你如果想系统的学习计算机科学,包括原理和技术。

  大概有以下几个方面:

  programming language (C 比较基础,对后面的内容大部分情况下也是必须的)

  algorithm (算法和数据结构)

  第一部分和第二部分会了 就跟你现在的情况差不多

  architecture

  operating system

  data management system

  networking

  第三部分到第七部分学通了,基本上你可以算做是 计算机科学领域的人

  还有其他的比如 compiler 并行 高性能计算 分布式计算 这些基本都可以用前面的东西来应付

  这些知识不是割裂开的,算法绝对是基础中的基础 后面的几大方面可以参照 网络课程学习

  itunes store里面的itunes U有MIT berkeley 和 stanford很多视频课程,是很好的自学材料

  能坚持学下去,必定能成为这个专业的人才

  【罗德柯的回答(0票)】:

  我学习中不是看书,我看书容易分神,所以我是一边看书,一边把书里面的内容打到电脑上面,这样我映像很深刻。

  书籍的话就推荐外国书籍了,如果会英语最好买英文版,中国的翻译不敢恭维。

  【王志磊的回答(0票)】:

  这就是算法和软件应用的区别了

  【奇大李的回答(0票)】:

  推荐本书吧。《深入理解计算机系统》我正在看的,就是讲一些计算机底层的东西,比如内存管理,文件系统,网络,编译,汇编等

« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:程序员程序员提高linux设置

相关日志:

«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合