background image

如何成为一个优秀的程序员

382

 

点击

4

回复 

MOP

 

     

美女联盟

 

 

在看这份

FAQ 之前,你必须先读完 ESR 的《如何成为一名黑客》(本文末尾

附有中译版),该文所讲过的道理我不再重复。该文用很大的篇幅讲什么是黑
客文化,虽然态度和信仰的确是成功的最关键因素,但是你肯定会想,做不做
黑客跟我没关系,我只是想学个一技之长,找个好工作而已,对吧?那么肯定
更希望获得一些具体的可操作的指导。

 

1、各种软件技术之间是怎样的关系? 

我把软件技术分为三个层次:

 

问题域:计算机图形学、音视频编码、信息安全、模式识别、信息检索、自然
语言分析、人工智能、科学计算等;

 

系统集成:

C++和 Java 等面向对象语言、Python 等解释型语言、LISP 等函

数式编程语言、

GUI、中间件、编译器与解释器、虚拟机、数据库、网络服务、

并行计算、集群、

Peer2Peer、系统管理等; 

系统功能:硬件描述语言、计算机体系结构与编程模型、指令集与汇编语言、
C 语言、内核、文件系统、设备驱动、网络协议、POSIX 等。 

计算机最终是做什么用的呢?最终是通过问题域的各种技术为用户解决问题的,
这些技术都包含很高深的算法,然而它们必须在一个平台上运行,它们需要利
用平台提供的各种基础设施,比如计算能力、

I/O 能力和网络互联能力。系统

功能和系统集成层就是用来实现这个平台的。系统功能层实现计算、

I/O 和网

络的基本功能,系统集成层对这些基本功能做一些抽象和包装,提供更方便灵
活的接口。

 

2、为什么要学习嵌入式技术? 

在亚嵌的学习期间,你将详细了解系统功能层的各部分是如何工作的,也会在
面向对象编程、

GUI、数据库、网络服务等系统集成层的技术方向进行探索。

嵌入式系统可说是麻雀虽小五脏俱全,虽然没有

PC 和服务器那么复杂,但计

算机系统的各种组成一样也不缺。因此,以嵌入式系统作为切入点开始学习软
件技术是非常好的选择,避开不必要的复杂性,把握计算机系统最根本的概念
和技术要点。打下扎实的基础之后,你的职业发展则完全不必局限于嵌入式领
域,即使你日后做

PC 或服务器开发,在亚嵌所学的知识和技能同样使你终生

受益。正如庖丁解牛,心中有全牛,自然就能游刃有余。

 

另一方面,你一定见到各大网站都有大量的宣传,说现在嵌入式行业前景空前
的好,嵌入式人才紧缺,有几百万职位空缺等等。这些说法也是对的,但我们