讓程式碼像閱讀故事一樣容易
這是我昨天在Review一位公司新來的Programmer所下的註解, Well, 套一句以前一位美國同事Erik的話, 他寫出來的code像是spaghetti一樣, 我將他的程式重新寫一遍, 然後讓他比對我的程式和他的程式不一樣的地方, 讓他了解寫出來的code不僅要自己看得懂,別人也要可以看的懂-->這是一件很重要的事, 他告訴我學校的教授沒有教這些知識, 原來教授自己也不怎麼寫程式, 剛好最近看完了蘭迪.鮑許教授的最後的演講, 其中有談到蘭迪所主導的一個計畫Alice, 透過3D的動畫設計程式來學習程式設計
Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games. In Alice, 3-D objects (e.g., people, animals, and vehicles) populate a virtual world and students create a program to animate the objects.
In Alice's interactive interface, students drag and drop graphic tiles to create a program, where the instructions correspond to standard statements in a production oriented programming language, such as Java, C++, and C#. Alice allows students to immediately see how their animation programs run, enabling them to easily understand the relationship between the programming statements and the behavior of objects in their animation. By manipulating the objects in their virtual world, students gain experience with all the programming constructs typically taught in an introductory programming course.
這真的是一個非常好的Idea, 其實從我的Review code經驗中, 發現許多Programmer的物件導向觀念其實並不是很好, 雖然使用Java or C++ , 寫出來的Code並沒有好好善用物件的觀念, 除了寫出來的code可讀性不高, 相對發生錯誤的機率也很高, 我非常羨慕美國出了一位蘭迪.鮑許, 目前美國已經有10%的大專院校資訊相關科系使用Alice來教授學生如何Programming , 我覺得美國的資訊教育至少讓美國的資訊科技獨領風騷再10年沒問題, Coding的工作在目前國內並不太被重視, 這幾年政府所推動的CMMI也成效不彰, 問題出在那裏? 看看我那位同事的code, 我心中有了答案, 問題出在教育, 基本功沒有練好, 再好的流程都沒有用. 蘭迪在最後的演講中也殷殷告誡-->不要忘了,基本功很重要. 而他所要傳遞的精神也將隨著Alice一直廣為流傳, 希望國內的資訊系教授們好好向蘭迪看齊, 多培養一些可用的資訊人才. 不要把教育人才的責任全部都推給企業, 這是我的感嘆, 我並不是科班出身的Software engineer, 許多skill是靠自修來達成, 我看到科班出身的code後, 我很想講一句話, 笨蛋! 問題不是出在CMMI, 而是資訊教育有問題!
留言
為了回覆你的問題,我一連花了快一個月的時間寫了一系列的四篇文章。請見:
http://prudentman.idv.tw/2008/09/code-14programmer.html
真的很感動, 小弟的隻字片語, 可以引起通達兄的壯闊波瀾, 您的分析很透徹, 也等於點出經營軟體開發團隊的困難, 與現在許多軟體團隊所面臨的困境. 我們在9/25有一場建構管理的研習, 希望您能到場, 給我們一些指導與鼓勵! 共勉之
MaoYang