•
如何成为一个优秀的程序员
382
点击
|
4
在看这份
FAQ 之前,你必须先读完 ESR 的《如何成为一名黑客》(本文末尾
附有中译版),该文所讲过的道理我不再重复。该文用很大的篇幅讲什么是黑
客文化,虽然态度和信仰的确是成功的最关键因素,但是你肯定会想,做不做
黑客跟我没关系,我只是想学个一技之长,找个好工作而已,对吧?那么肯定
更希望获得一些具体的可操作的指导。
1、各种软件技术之间是怎样的关系?
我把软件技术分为三个层次:
问题域:计算机图形学、音视频编码、信息安全、模式识别、信息检索、自然
语言分析、人工智能、科学计算等;
系统集成:
C++和 Java 等面向对象语言、Python 等解释型语言、LISP 等函
数式编程语言、
GUI、中间件、编译器与解释器、虚拟机、数据库、网络服务、
并行计算、集群、
Peer2Peer、系统管理等;
系统功能:硬件描述语言、计算机体系结构与编程模型、指令集与汇编语言、
C 语言、内核、文件系统、设备驱动、网络协议、POSIX 等。
计算机最终是做什么用的呢?最终是通过问题域的各种技术为用户解决问题的,
这些技术都包含很高深的算法,然而它们必须在一个平台上运行,它们需要利
用平台提供的各种基础设施,比如计算能力、
I/O 能力和网络互联能力。系统
功能和系统集成层就是用来实现这个平台的。系统功能层实现计算、
I/O 和网
络的基本功能,系统集成层对这些基本功能做一些抽象和包装,提供更方便灵
活的接口。
2、为什么要学习嵌入式技术?
在亚嵌的学习期间,你将详细了解系统功能层的各部分是如何工作的,也会在
面向对象编程、
GUI、数据库、网络服务等系统集成层的技术方向进行探索。
嵌入式系统可说是麻雀虽小五脏俱全,虽然没有
PC 和服务器那么复杂,但计
算机系统的各种组成一样也不缺。因此,以嵌入式系统作为切入点开始学习软
件技术是非常好的选择,避开不必要的复杂性,把握计算机系统最根本的概念
和技术要点。打下扎实的基础之后,你的职业发展则完全不必局限于嵌入式领
域,即使你日后做
PC 或服务器开发,在亚嵌所学的知识和技能同样使你终生
受益。正如庖丁解牛,心中有全牛,自然就能游刃有余。
另一方面,你一定见到各大网站都有大量的宣传,说现在嵌入式行业前景空前
的好,嵌入式人才紧缺,有几百万职位空缺等等。这些说法也是对的,但我们