Danny Kalev談“我收到的最佳程式設計建議”

高翌翔發表於2012-08-17

Danny Kalev是《ANSI/ISO Professional Programmer's Handbook》及《The Informit C++ Reference Guide: Techniques, Insight, and Practical Advice on C++》兩本書的作者,他分享了一些建議,對那些尋求提高自身專業技能的程式設計師大有裨益。

姓名:

Danny Kalev

Danny Kalev Avatar

工作經驗:

我從1988年以來一直在程式設計。我最初程式設計用的是DEC VAX 11/750(1980年10月推出)的機器,即便在當時那臺機器也算是老古董了。然而,它卻是學習程式設計的絕好方法,因為它支援多種不同的程式語言,例如PL/1(我仍然喜歡)、DCL(DEC的專有指令碼語言)、Fortran、以及後來的C語言。20世紀90年代中期,我參與了一個規模巨大的移植專案,該專案是將以色列內政部辦公室的國民登記處資料庫轉換為現代的、客戶端/伺服器架構。它是使用C++的最早期專案之一(在1994年)。之後我先後跳槽到幾個專注於多媒體流的新興創業公司——多媒體流在20世紀90年代末期是個熱門話題。在那以後,我成了個體戶。我已經寫過三本C++的書,而且於2003年在Informit上開辦了C++每週專欄,延續至今已有九年多。如今,我是幾家IT公司的顧問。我主要的專業技能領域仍是C++及物件導向設計。我還會舉辦與這些主題相關的講座。

VAX 11/750

VAX 11/750

最顯著的成就:

  • 在2000年榮獲以色列商會系統分析師優秀獎,隨後出版了《ANSI/ISO Professional Programmer's Handbook》一書。
  • 在2004年以最優成績獲得語言學碩士學位。
  • 以書本形式出版《The Informit C++ Reference Guide》。

最常用的程式語言:

C++

建議:

如今每當我編寫新的C++程式碼時,我會意識到同一程式與兩三年前的樣子相比差別是如此之大。那是因為C++的變化很快,即便是存在了30年後的今天依然如此。然而不僅僅是C++標準的變化影響著我的C++程式碼。作為程式設計師,我們始終在學習如何改進我們的做法。有兩個因素導致了需要持續閱讀——語言變化及技能改進。

要是你想成為優秀的程式設計師,你就必須投入大量時間去閱讀C++雜誌、一流作者的新書、訂閱專業討論組及論壇的內容、並與你的同事互相切磋。學習是永不結束的持續過程。除了接觸新的程式設計技術和設計風格、閱讀專業資料以外,還要自習精準的技術術語(technical terminology)。例如,規範4則(canonical four)(特指建構函式、解構函式、拷貝賦值運算子、賦值運算子)被作為那些特定成員函式的正式名稱。同樣地,C++中沒有方法(method)——它只有成員函式(member function),因此我發現我總是把那些仍在談及方法和屬性的人搞得一頭霧水,然而在C++中方法和屬性都不存在。這並非吹毛求疵或偏執——沒有精準、專業、統一的術語,你將無法閱讀你的編譯器的線上文件,更不用說專業性更強的資料了,例如C++標準本身的文字內容。

總而言之,閱讀的資料一定要比你編寫的內容多得多,而且要堅持閱讀高質量的資料(read much more than you write, and stick to high quality material)。對那些侮辱你智商的爛書說白白。而是應該抬高準星,著眼於專業的、最新資料。那麼做就對了。


檢視英文原文:"The Best Programming Advice I Ever Got" with Danny Kalev

來自更多程式設計師的建議參見“我收到的最佳程式設計建議”(The Best Programming Advice I Ever Got)系列文章

“我收到的最佳程式設計建議”系列譯文

  1. 千萬別碰其他人的程式碼!——Russ Olsen
  2. 在你讓程式碼可重用之前,應該先讓程式碼可用。——Bill Wagner
  3. 在著手對程式碼進行額外修改之前,應該花點兒時間去理解位於異常/堆疊跟蹤頂部的錯誤訊息。——Obie Fernandez
  4. 除錯前的思考十分重要——Rob Pike
  5. 編寫更少的程式碼。——Russ Olsen
  6. 閱讀的資料一定要比你編寫的內容多得多,而且要堅持閱讀高質量的資料。——Danny Kalev
  7. 翻譯中……

相關文章