【李家同】高階工程師 更要會做低階工作

張貼日期:2020/10/23 上午 02:58:19

2020-09-01 23:44 聯合報 / 李家同/清華大學榮譽教授(新竹市)

我們常常聽到,工程師要有創意,這當然是對的,可是我認為應該檢討的是工程師的能力。以軟體來說,我們會寫相當多的應用軟體,也會利用作業系統中所提供的函式庫,所謂函式庫,裡面就是很多程式。我們可以利用這些程式寫很多有趣的軟體,比方說,函式庫裡的程式可以使我們善用滑鼠,也可以讓我們的軟體和別的電腦互通。

這些函式庫內部的程式當然有指令,這些指令絕對不是普通加減乘除的指令,多半牽涉到硬體。習慣上,函式庫內部的程式是低階程式。要發展出這種程式,勢必要了解硬體,在我國,能夠使用這種程式已經不容易,會發展這種程式的人是相當少的。所以,如果我國想發展一個新的作業系統或者一個新的電腦語言,會很困難。

在硬體方面,其實也有同樣的問題。很多電機工程師會利用晶片,但是很少人知道晶片裡面是怎麼一回事。晶片裡全都是電晶體以及其他的元件,但是會設計這種線路的工程師實在不多。有很多工程師會設計相當高階的電路,這種線路裡沒有電晶體,是所謂的數位線路,然後利用外國軟體將這些高階電路轉換成含有電晶體的線路。這個轉換是必須的,因為半導體公司只認識低階的電路。

我們應該很坦白地承認自己和先進國家仍然有很大的距離。我們常常羨慕先進國家可以發展出非常高級的工業產品,絕大多數的人誤以為這是因為先進國家的工程師極有創意。他們往往忽略了一個事實,那就是先進國家有眾多工程師是在低階工作上非常有經驗的,比方說,要發展一個作業系統,必須要有工程師非常了解電腦硬體。要能設計效率非常高的電路,就必須對電晶體有非常好的了解。

現在有非常高階的電腦語言,這種電腦語言的好處是使用上非常方便。但是任何高階語言都是利用低階語言發展出來的。所謂低階語言,是和硬體關係非常深的語言。懂得低階語言的軟體工程師,因此其實是非常高階的軟體工程師。希望大家能夠了解這一點。

同理,含有電晶體的線路常常被稱為低階線路,如果某一位工程師能夠設計這種線路,他的線路可能比較不耗電,可以快速地得到答案,而且有可能避免雜音,這種工程師就是所謂的高階電子工程師。

高階工程師是不容易培養的,我們的教育界仍然要設法培養這一類的工程師。值得注意的是,高階工程師必須肯深入地了解很多事情,因此不可能在短時間內學會所需要的學問。值得擔心的是,青年學子肯不肯接受這種挑戰,埋頭苦幹,從最基本的學識學起。要知道,沒有深入了解基本的學識,搞不出所以然來。