本文地址:http://cdai.sinaapp.com/archives/49,欢迎访问~
1. 并发编程
随着单机上CPU核数的不断增多,以及互联网中大型网站每天产生的海量数据,并发编程将会成为程序员必不可少的技能。
学习《Erlang程序设计》和Scala,理解函数式编程,搞清Actor模式以及并发编程的消息传递方式。
2. 汇编语言
懂一些计算机底层的知识才会明白咱们每天使用的计算机硬件是怎样运行的,操作系统是怎样启动的,写好的源代码是怎样编译成机器码被操作系统加载的。
学习《汇编语言》(第二版)、《80x86汇编语言程序设计教程》,了解计算机的构造CPU、内存、硬盘等,搞明白CPU是怎样寻址,什么是保护模式,保护模式和实模式有什么不同。
另外推荐《程序员的自我修养》、《天书夜读-从汇编语言到Windows内核编程》、《琢石成器:Windows32位汇编语言程序设计》。
3. 操作系统内核
Linux内核源码很多,里面包含很多算法和设计,学习起来真的很难。但挑重点的学习了解一下,对提高编程水平还是有很大帮助的。比如操作系统怎样通过Loader加载,进程的切换和调度等。
学习Linux四库全书:《Linux内核设计与分析》、《深入理解Linux内核》、《Linux内核源代码情景分析》、《Linux设备驱动开发》。再推荐一本《Orange's 一个操作系统的实现》。
最重要的一点:read the fucking source code!
4. 游戏开发
游戏尤其是3D游戏开发是学习数学和算法的一个好途径,由于3D游戏通常很耗费资源,因此也是学习代码优化的好方法。
比如怎样渲染图形的表面,怎样把空间坐标上的3D图形是怎样通过矩阵运算投射到摄影机屏幕上的,比如学习分析计算关键代码段的大O值并试着优化。
推荐《3D数学基础:图形与游戏开发》,以及DirectX的学习。
5. 数学和算法
这是编程的基础,编程一路学到底层东西时,自然而然就想补一补自己的数学和算法知识。
数学:《什么是数学》、《具体数学》。
算法:《计算机程序设计艺术》、《算法导论》。
通过做题检验自己,书后习题以及各大公司的笔试题。带着问题去看这些书,也许会增加一些动力。
6. 散文杂文
学累了,该放松一下了。
《代码之美》、《Java夜未眠》、《Unix编程艺术》、《疯狂的程序员》
看着看着就睡着了,梦到有一天自己成为武林中的编程高手。。。
分享到:
相关推荐
### 程序员的基本素质 #### 团队精神与协作能力 团队精神与协作能力是程序员必备的核心素质之一。在软件开发过程中,很少有独立完成的大型项目,因此能够与...这些素质相互补充,共同构成了一个程序员的核心竞争力。
这篇文档是关于一个应聘开发人员或程序员的求职简历,尤其关注UI设计师的职位。以下是根据提供的内容提炼出的相关知识点: 1. **教育背景**:求职者拥有广告设计专业的大专学历,毕业于XXXX职业技术学院,主修课程...
描述中的"对上一篇文档的补充"意味着我们要深入理解文本编辑器的改进之处,可能涉及到上一版本存在的问题、用户反馈或技术趋势。这表明升级版是对原有文档的扩展和完善,旨在提供更全面的信息和技术细节。 虽然标签...
3.0版发行于1990年5月22日,这个系统既包含了对用户界面的重要改善也包含了对80286和80386对内存管理技术的改进。为命令行式操作系统编写的MS-DOS下的程序可以在窗口中运行,使得程序可以在多任务基础上可以使用...
市面上目前流传的java基础视频教程都是讲一些最基础的java语法和...专门讲解Java基础中的高级知识和一些最新的技术,可以作为那些java基础视频教程的升级和后续补充学习资料,特别适合有一定java基础想提高的人士学习。
补充升级:Web编辑器(1、只能上传2M大小的文件,补充升级为能上传1G;2、不能上传文件名含汉字的文件,补充升级为上传后自动命名保存) Easy do it,轻松互联网开发平台(原WebEasy,简称轻开平台)是一个运行于...
当2000年来临,这个问题变得明显,全球范围内花费大量资金修复和升级软件,以避免可能的混乱。 第三个案例涉及美国航天局的火星极地登陆者号探测器。由于软件设计的缺陷,触点开关错误地被触发,导致着陆推进器过早...
与以往的技术书籍一样,本书提供了一系列的补充材料和示例代码,这些资源可以在其官方网站上找到。虽然大部分媒体内容都可以免费下载,但是由于版权限制,部分内容可能无法提供。如果读者在使用这些资源时遇到了问题...
在工业自动化领域,PLC(Programmable Logic Controller)是一...了解这些基本信息后,无论是工程师进行系统集成、故障排查,还是技术人员进行维护升级,都能更有效地理解并利用这个AB PLC程序源码来优化浸渍线的运行。
书中的特点之一是提供了一年的内容升级保障,这意味着如果由于供应商的产品更新导致书中内容过时,读者可以在线获取更新章节,确保知识的时效性。此外,网站上还有“向作者提问”的功能,允许读者直接向作者和编辑...
在软件开发过程中,一套完整的文档是确保项目顺利进行的关键。以下是对给定的软件开发文档模板的详细解读...在实际开发中,还需要根据项目特点和团队习惯对这些模板进行适当的调整和补充,以适应不同的开发场景和需求。
综上所述,成为一名优秀程序员不仅需要扎实的技术功底,还需要具备良好的团队合作精神、高效沟通能力和持续学习的习惯。通过不断地实践和反思,我们可以不断提高自己,在这个快速发展的行业中保持竞争力。
此外,为了适应C99扩展的语言特性,书中对相关规则进行了更新和补充。 MISRA C:2012是MISRA C规范的一个重要版本,它不仅包含了对C99标准的兼容性,还引入了一系列针对安全关键系统的新规则和建议。这些包括对指针...
通过对MFC的深入分析,本书不仅帮助程序员解决了实际开发中的问题,同时也促进了软件开发领域的知识共享。此外,侯捷通过免费分享电子书的方式,展现了他对于知识产权尊重的态度,鼓励大家共同营造一个更加健康的...
文档的主要读者对象是技术支持工程师和软件开发工程师。 文档中提及的海思商标及其所有权问题,明确指出所有提及的商标或注册商标均归其所有者所有。文档的版权声明归深圳市海思半导体有限公司所有,并且不允许未经...
这两卷书分别侧重于不同的主题,而PDF格式的《ACE-tutorial》则作为补充,提供了更多关于ACE库的实际操作教程。 卷一《运用ACE和模式消除复杂性》主要知识点包括: 1. **网络编程基础**:介绍网络通信的基本概念,...
文件“嵌入式程序员需要知道的16个问题.doc”可能详细阐述了以上这些知识点,而“Readme-说明.htm”和“资料说明.txt”可能是对这些知识点的补充说明或学习资源指引。在深入学习和实践中,不断探索和掌握这些知识点...