作为Adobe公司的一名员工,看到越来越多的朋友加入到Flash/Flex开发者阵营,我感到由衷的欣喜(当然更欣喜的是Flasher们的薪资水平水涨船高,节节攀升
)。通常希望加入这个圈子的朋友一开始会有两个疑问:“Flash难不难学?”以及“成为一名专业的Flash开发者需要具备那些技能?”
对于第一个问题,我的回答是:“和大多数技术一样,Flash开发非常容易入门,甚至比其他技术更容易些。但是如果真正想‘学成’,仍然有很长的路要走”。而对于第二个问题,我很难一言以蔽之。Flash技术和其他技术如Java, .NET, JavaScript有很多相似之处,但它也有非常多独一无二的特点,而且Flash技术遍及浏览器,桌面,移动终端等多个平台,根据你所从事的领域不同,所需要掌握的相关技能也不尽相同。为此,根据个人经验我创建了一个叫做“Flash平台开发者技能树”的思维导图,希望能帮助回答这个问题。
(点击图片查看完整版本)
注:之所以叫做“Flash平台开发者”,是为了强调其所涉及的范畴并不仅仅是纯粹的Flash/AS开发,也包括Flex、AIR等技术平台。
技能树的基本结构
我将Flash开发相关技能分成了以下五个大类:

- 程序基础:如果你是计算机专业毕业,那么这些内容基本上都是必修课。也许你在学校里曾经忽视了这些基础知识,那么我强烈建议你买些这方面的书来“回回锅儿”,对基础知识的掌握决定了你能在技术的道路上走多远。
- Flash/Flex基础开发:主要就是三大方面,ActionScript 3.0,Flex和AIR。不论你开发什么领域的Flash应用,这三种开发技能都该有所掌握。
- 领域相关技术:当你的开发涉及到某个特定领域时(如游戏,视频应用等),你需要掌握更多领域相关的技能和知识。
- 工程方法学:作为一个纯粹的开发者,你现在可能不太重视这些。但如果你有志于在几年内转型做项目管理,软件工程学的技能对你来说就格外重要了。
- 集成开发环境:虽然我不否认有很多可以只用命令行+记事本的达人存在,但对于普通开发者来说,熟练的掌握一到两种IDE仍然是必须的要求。
我应该如何使用它?
- 作为开发者个人发展的Checklist,检查自身的知识结构是否完备,安排学习计划(当然这张图表上的内容也只是抛砖引玉)。
- 通过它来找到项目的解决方案(例如当你需要实现高质量的PDF打印功能时,可以在图上找到AlivePDF的框架。而如果你希望对项目成员的任务进行更好的管理,也可以找在上面到我推荐的工具:MyLyn)。
- 如果你是一家招聘Flash开发人才的公司,可以参考这张表来定义职位需求。
- 其它你能想到的任何用法,也请你告诉我。:p
其他
这张图表使用开源的思维导图工具FreeMind制作。(1.10更新:感谢Ping.Zou的建议,花了3个小时在XMind.net上重新制作了该图,另外我本人也强烈推荐此款工具)。 从我有这个想法到现在的第一版仅用了几个小时的时间,其中不乏内容缺失和不当之处,也请大家一起来帮助我改进它,并进一步发掘其利用价值。
另外也希望大家能推荐给我一款在线的思维导图工具,要求支持站外引用和多人协作,另外最好支持元素链接功能。之前用过2款,感觉不是很方便。