您的位置:知识库 » 程序人生

自学之路——为今后的30年做准备

作者: xiaotie  来源: 博客园  发布时间: 2010-03-22 16:54  阅读: 1743 次  推荐: 0   原文链接   [收藏]  

  半路出家踏进这个领域的,基本上全部是靠自学的。下面是这些年来的自学途径(含未完成部分),目标是为未来的30年进行技术储备。换一句话说,今后三十年都打算搞技术。什么程序员三十岁怎么怎么,先把这句话践踏在脚下。

  下面的图中,黄色部分是正看的(含看了七八年还没看完,但又不想放弃的的),红色部分是待看的,白色是已看的。打叉的是不想看的。

  首先,是技艺部分。自学路线如下:

image

  当然,中间还看过其它很多相关书,但我觉得那些书不是很重要,包括《设计模式》。

  然后是领域部分。把软件开发分为三个领域:它的本身领域/行业应用领域和企业(政府)应用领域。

  1. 本身领域

image

  这张图中,我把领域分为四个维度:系统、数据、算法和网络。这四个维度在未来的30年中都会很重要。上面的书都是我个人觉得适合自学的书。

  备注:

  (1)别听Google咋呼什么操作系统会过时。操作系统在几十年内仍然是基础。嵌入式那一堆我不了解,但PC、服务器、移动设备未来可能仍然是Windows和*nix的天下,因此,一本Windows Internals和一本Linux内核的书就够了,两个操作系统对比着看,可以更深入的了解操作系统。

  (2)虽说《计算机组成与结构》是《计算机体系结构·量化研究方法》的基础,但我觉得做软件的,可以不看《计算机组成与结构》,直接看《计算机体系结构·量化研究方法》,后者很易读很有用。

  (3)不推荐自学者看《算法导论》,《算法导论》可作为手册来用。这里推荐的是《算法:X语言实现》和《算法引论》两本书,第一本书是基础,第二本书是讲思路的。

  (4)《网络处理器与网络系统设计》一书的前半部分写的非常精彩、简炼,俺只翻过前半部分,后半部分不是搞网络设备的不推荐看。

  (5)随机图、复杂网络这是未来网络应用的数学基础。

  下面是毙掉的:

image

  (1)前面两个大家都叫好,但我实在静不下心来看,太抽象,毙掉了。

  (2)离散数学太杂,但具体的主题又讲的太浅,基本上在每本书中都会讲一些该领域的数学基础,离散数学就可以不看了。想深入某一领域直接Google这一领域的paper就可以了。我没看一本离散数学书,感觉对后面的自学没有影响。作为替代品,我推荐中科大某老师写的《数学基础》(很遗憾的是,这本书我现在搜不到了),讲集合论的,看起来非常爽。

  (3)《编译原理》我个人认为也可以不看。它很重要不假,但不是必要的。

  2. 行业应用领域

  行业应用的基础是数学。因此主要是复习和自学数学知识。未来几十年,IT会大量的向各行业渗透。因此,非离散数学比离散数学会变得有用。下面是俺的储备图:

image

  嘿嘿,从上图可以看出,俺最近正在这一领域攻城掠地。

  备注:

  (1)线性代数非常有用,但太TMD抽象,学了就忘(大学中开了两门线性代数课,不好意思,毕业后马上忘记光了)。线性代数的核心是“变换”,但这玩意,对高维空间很难理解。因此,需要以复分析作为过渡,把复数运算作为一种变换来理解,然后再过渡到理解线性空间中的变换。复分析以前没接触过,扫了几眼那本《复分析:可视化方法》,突然感觉,对线性代数的理解深入一点了。

  (2)《变分法》以前没接触过,接触之后发现很好很强大。

  (3)行业应用的关键是数值分析。

  (4)数值一般都是采样来的,因此,又需要了解《信号与系统》。

  (5)随机、统计、模式分析,这些是随着计算机技术的发展大放光芒……

  (6)上面的核心理论都是几十年一二百年前的,估计几十年内,不会过时。是计算机的发展,让这类计算变得可行了。

  3. 企业(政府)应用领域

image

  想了想,软件可能涉及的核心应用领域应该是上面这些(“中国人的心理”除外)。这些在N年前已经蹂躏过了。不过现在基本不做这类方面的开发,改作管理研究了。把《运营管理》排第一是因为ERP、OA、供应链之类的应用都处于运营管理的范畴,从运营管理的角度进行了解,会更深刻些。

  下面是三个英文词:

  Operation System - 操作系统

  Operation Management - 运营管理

  Operation Research - 运筹学

  中文名字不知道是那几个家伙翻译的,搞的三个词完全到三个不同的领域了。Operation System 在 IT, Operation Management 在管理,Operation Research 在数学。实际上这三个是三位一体的,都是讲怎么管理和调度资源,怎么样组织流程的,怎么样优化资源和流程的。Operation System 的对象是计算机资源,Operation Management的对象是企业资源,Operation Research为上面两个提供数学支持,三者三位一体:

image

  再放大点看,可以看见上面三个领域也是三位一体的:

image

 

  上面是为未来三十年做的知识储备。

0
0

程序人生热门文章

    程序人生最新文章

      最新新闻

        热门新闻