舍本求末

舍本逐末
今天被领导叫过去分配任务,讲了一些学习上的事,触动挺大的。

领导问了一些很基础的知识,比如:
1、什么是数?
2、什么是浮点数?
3、单精度浮点数和双精度浮点数分别是多少位?
我答不上来。以前大学时候的课程忘得一干二净。

然后领导说做程序员要学的东西很多,但根本和基础的东西要学好,不能舍本逐末。基础学好了,再去学一些花哨的东西就会很容易。花哨的东西比较浮,经常流于表面,只会教你怎么去做,但背后的道理很少有人去搞明白它。最后指了一条道给我,界定出计算机的一些基础课程。
一、数据结构。(先学会线性结构,再去理解非线性结构)
二、编译原理。(领导说他有近十本编译原理的教材)
三、操作系统。要在操作系统的层面理解好同步、线程等概念。
四、汇编。
五、网络。(搞懂TCP/IP才会搞懂http,搞懂http才会深入理解web开发)
六、数据库原理。
七、离散数学。(领导说计算机涉及的数学知识很多都在离散数学里头)
    线性代数。(矩阵分析、行列式、向量运算等,领导说用到的领域比较少)
八、计算机安全。(加密解密基本都是数学的东西,比如同余素数、数论等)

领导说闭包是计算机从数学知识里面引入进来的,是静态语言和动态语言的分水岭。领导还是说动态语言现在应用的领域还是比较窄,现在的主流还是强调程序的可维护性和可读性。领导说根据他的研究和判断,IBM和Microsoft这些大公司也是注重程序和xml结合的编程方式,程序来表述稳定的东西,xml来表述变化的东西。