编译原理和算法导论是不是屠龙技?

如题所述

第1个回答  2017-12-06

编译原理:当你想写个静态网站生成器,再发现基本技能不过关的时候,就后悔没早早投入时间精力弄明白了。看看当今巨头,Google 的 go 和 dart,facebook 的 hack,Apple 的 swift,每一个成功的巨头都认识到想把一件事做好,就一定要自己从头做,从语言着手。再例如 Chrome 用的 V8 更是引领一个时代。这方面的牛牛们,都是一言不合就扔给你一个新语言。  算法导论:这个用过的都说好,没事多翻两遍,总会有新的收获。计算机专业,本科期间没刷过一阵 OJ 的,终身遗憾啊。  其实还有一个没提到的,操作系统原理。不知道是题主已经受益了,还是简单没想到,也是常被列入屠龙技的。一个例子是在各种嵌入式平台上,各种自己动手写简单 OS 的,常常有。或者就算不是自己写,使用别人写的,不完整的或者部分实现的裸露的嵌入式 OS,对于操作系统原理的理解更是必不可少。另一个例子是,Apple 的 iOS/OSX 和 Google 的 Android,都是大杀器。  再一个,网络原理和 tcp/ip 协议栈。用 dsp 的时候,移植过一个精简的基于 C 的协议栈,累坏了,ti dsp 的 c/c++ 编译器各种坑。这个移植协议栈传输速度慢,不稳定,出了局域网本网段,传输成功率就靠概率。还好项目不大,一个固定 ip 局域网解决问题,凑活完成了。中间解决数据错误和丢包的技巧是一个数据包发两遍,各种汗。就怨自己学艺不精没能力没时间好好调试。后来换了嵌入式 linux 和 android,系统内置可靠稳定的网络协议栈.

第2个回答  2017-12-06

算法导论,数据结构,微型计算机基础,编译基础这四本基础知识,按其重要性,以微机基础为先,从芯片原理,至逻辑电门,至各介质存储原理,至堆栈结构等,至少做到部分理解后,再循序至编译,掌握机器或低级语言的底层实现机制、内存寻址寄存读取等重点,结合前述电门堆栈等知识,结合起来理解透彻,再逐步深入算法和数据。底层都明白了,算法数据就不用细说。至于各种高级语言及各自编程思想,只是最浅层的应用知识。已掌握基础原理的同事,因为在量子计算大行其道前,高级语言是万变不离其宗的,所以得恭喜你,生存有保障了。

本回答被网友采纳
第3个回答  2017-12-06

计算机体系结构十分重要,从加电到bios启动到bios加载操作系统第一行代码,再到设置LDT,GDT,准备页表,这一系列的操作可能会让人觉得学了假计算机体系结构。缓冲区的基本设计思想,进程初始化、调度、退出,文件系统的底层实现,分分钟发现自己还需要回炉修炼。如果把操作系统看成一个图,那么这个图中的点的个数可能并不是最多的,但是图中的边一定是最多的。操作系统的复杂性其实就是体现在各个模块的复杂交错的关联上。别以为学过操作系统,就觉得只要给足够长时间可以自己写一个,现在大学教的都是操作系统文科版。

相似回答