- 经验
- 454
- 分贝
- 0
- 家园分
- 1309
- 在线时间:
- 78 小时
- 最后登录:
- 2012-4-27
- 帖子:
- 115
- 精华:
- 0
- 注册时间:
- 2009-5-17
- UID:
- 379443
注册:2009-5-17
|
发表于 2009-5-27 17:50:10
|显示全部楼层
Level 1:入门阶段。C/C++:level 1的"黑客",必须能够熟练使用C/C++,希翼入门者不要被它吓跑。数学:数学是电脑中必不可少的,无论是编程还是底层的开发研究。从一开始就掌握数学的思维,对于以后会有很大帮助。
Level 2:打基础阶段。Computer System:要掌握汇编,了解计算机内存、CPU和指令之间的关系,还要了解计算机硬件的一些基本结构和原理。Data Structures:主要是用C/C++实现各种算法,例如Linked list, tree, queue, stack, heap...,如果你能实现以上所有结构,那么你的C/C++算是精通了。Object Oriented Programming:明白面向对象的原理,要知道除了C++,还有Java之类的面向对象语言可以选择,面向对象对于你以后开发大型程序还是很有帮助的。
Level 3:深入学习阶段。Systems Programming:了解如何设计和实现系统App,重点是线程的同步和分布式系统。Computer System Architecture:非常偏向硬件,要深入了解计算机性能、指令工作原理、Datapath、Pipeline、内存Cache,虚拟内存等的细节。并能用硬件描述语言(例如:VHDL)来设计简单的硬件。Network Communications:了解网络通讯的原理和几种常用协议,并能用Socket编程来实现这些理论或协议。Programming Languages:分析各种类型编程语言的优缺点,为以后写编译器打下基础,这些编程语言可以分为函数语言,逻辑语言,面向对象语言等。还要了解编译器前期工作的实现方法,例如Lexical, Syntax, Semantic分析。
Level 4:实战阶段。Compilers:实现真正的编程语言,能够把源程序编译成汇编语言,并生成可实行文件。Advanced Communications and Network Systems:掌握TCP/IP的细节,并研究各种不同网络的特点、实现方法(特别是MAC层的实现方法)和发展前景,例如Wireless, SONET, Ethernet, ATM等。Advanced Computer System Architecture:设计并实现一个简单的CPU,包括指令集,架构图,优化算法等。Advanced Operating System:设计并实现一个能在普通PC上运行的操作系统,包括进程管理,I/O,内存管理,文件管理等。
Level 5:研究创新阶段。Level 5是Level 4的一个升华,当你掌握必需的常识和实践之后,你就要自己从事研究新技术了。如果研究成功,就可以在国际上发表你的论文了,这时你就不仅仅是一个"黑客",而是一个令人尊重的专家了。
总结:当然,计算机不止以上内容,例如还有App工程,AI,人机交互,多媒体,数据库等。如果你想成为一个真正的黑客高手,那你起码需要达到Level 4阶段。但我真心希翼你能向Level 5迈进,不要满足于应用别人已有的技术,那样始终只能跟在别人后面。
|
|