大陆见闻;谈电脑课程与书籍 | ||||
●课程缘起 今年八月,我应台湾 A 公司和 W 公司之邀,赴上海分别为A 公司的转投资公司和 W 公司的上海分部授课。两个课程的内容差不多,都是连续四天的 C++/OOP/STL。 这个课程顾名思义,其旨甚明。C++ 部份,仅从 classes 开展,与 C 相容者皆不述及。OOP 部份,以继承和多型的运用为主,并大量引入专家建议的准则,强调 OO 程式开发过程中一定要完成的以及一定要避免的事情。STL 方面则是介绍六大组件的角色和运用 ─其中以容器和演算法着墨尤多,这是 STL 应用的最大宗。如果 STL的课程再深入,就可以提升至泛型(genericity)的学理探讨,并进而拿 STL 的源码出来个案研究一番。可惜囿於时间,泛型的学理仅少量带到。但愿两岸的程序员都能够尽快正视「泛型」这个重要课题。 课程内容虽是标准的软体技术,邀课单位却是标准的硬体公司:A 公司是全球知名的个人电脑制造商,W 公司是全球知名的 DRAM 厂商。诸君可能很奇怪为什麽这麽「硬底」的公司需要纯软的技术课程。原因无它:任何硬体都需软体来驱动与服务。公司做大了,少不得要多揽一些工作在身上,逐渐就软硬全包了。当然,同样一个课程,不同背景不同需求的人来上,会关注不同的主题,提出不同的问题。以 C++ 语言来说,这次课程由於 W 公司需要编译器方面的知识,学员就特别对 C++ 物件模型感兴趣,希望多知道语法表象之下的运作机制。这基本上已经跳脱一般人对 C++ 课程的认知,幸好我一向就认为某些底层机制是彻底接受 C++ 的关键,所以原本就很重视这个主题。 我在台湾开过不少课。近十年来从 DOS 的记忆体管理,到 Windows 的SDK 编程、Win32 作业系统、MFC 编程,再到 C++/OOP/STL,场数在半百以上。早期公开授课,接受报名(台湾有专办训练课程的公司),近年来花大量时间在写作上,只偶尔接受公司单位的邀请,进行公司内训。一个很有趣的现象是,几乎都是硬体公司邀请我,而我却是一个纯粹的软体技术人员。我想主要的原因是台湾的硬体公司赚大钱,在员工进修方面比较有更大的财力。如果你以为硬体公司的人不懂软体,所以得上些软体课程,那倒不是,任何做软体的人本身都必须有软体技术底子:以目前技术之发展,业外人士很难玩票或骤然跨行。近年来个人电脑上的软体技术日精月进,和 DOS 时代谁都能轧上一脚的情况已有天壤之别。 ●两岸之水平? ●泛谈电脑技术书籍 ●专业技术作家
|