學習 Programming 的歷程

thegiive提到他的學習歷程,覺得蠻有趣的。

我自己接觸的順序是

(2001) C++ -> Pascal -> (2002) PHP,SQL,Javascript -> (2003) Assembly、C、Java、Scheme、Prolog、C# -> Perl -> (2004) UML、Design Pattern -> (2005) CSS、XHTML -> (2006) Ruby、unobtrusive Javascript

第一次認真學的程式語言就是C++,啃的是侯捷翻譯的 Essential C++ 中文版,記得當時還唸了兩遍,滿滿的註記,看到了 procedural,generic (STL),object-oriented 等不同面向的精隨。C++不只是物件導向的C而已,而是更好的C,要我建議,我還是認為可以直接學C++,不一定要照先學 C 再學 C++ 的順序。

Pascal 是清大資工的大一程式設計課,不過最近他們開始改上C了,Pascal 是個古董嚕。PHP,SQL,Javascript 是要打工才學的,也開始接觸 web programming,學到很多經驗,一直用到現在。Assembly,C,Java,Scheme,Prolog,C# 都是課堂上學的,並沒有學的很深入,僅只是交作業程度,不過也讓我的廣度增加不少。Perl 是去學校計中打工學的,認真看了駱馬書,看到了一個非常有意思 hacker 語言。接觸了 UML,Design Pattern,才真正了解物件導向的威力與應用。碰到網頁標準興起,才又認真學好CSS。今年則開始認真學Ruby跟RoR,也打算把 Javascript 重新學過(當代的Javascript跟幾年前又有很大的本質差異了)。

老實說,學什麼語言要照什麼順序嗎? 還在學校的話,就學學C++或C吧,因為不論新出了什麼語言,C/C++是會存在到世界末日的那一天的。要做 Web Programming 的話,認真學好網頁標準(至少CSS跟XHTML)吧,只要還用瀏覽器看網站,這都是不變的基礎。至於要學什麼語言來安身立命,我覺得也是看機緣、主流、喜好跟自己的判斷了吧。

話說回來,拿 Ruby 當你的第一個程式語言也是不錯呢,可以看看Learn to Program,超入門的。

大前研一 我的發想術

大前研一最近的書,內容不多也很通俗簡單念,所以花了幾個鐘頭功夫就念完了。雖然沒什麼大學問,倒也可以幫助你思考一些事情啦。另外書印的不錯漂亮,不過其實在書店翻一翻我想就差不多了…:p

大前研一的發想技術(how to create)共有六招 :

1.懷疑成見

不要以為現有的想法都有道理,換個角度思考,可能發現既定的觀念很不合理,而且有其他種解決方法。

例一 : “少子化使大學進入寒冬?”,要打破成見把社會人士找回研究所,利用遠距教學。例二 : “人口減少沒有速效藥?”,推動移民政策。例三 : “人口減少將使國內市場規模萎縮?”,可以把亞洲全境(尤其中國)當作第二個國內市場來思考。

2.從網路思考

在延伸新點子之前,一定要先考慮分析網路,要如何建立網路。廣義的說就是思考現在某樣商品透過什麼途徑送到消費者手中,還可能有哪些其他路徑。作者舉例電視頻道利用衛星電波才打破地面電波的限制。

中立網路比帶有色彩的網路更有優勢,因為消費者喜歡選擇,喜歡比較各家產品。所以入口網站資訊垂直整合是大忌,應該要做全方位外交。從用戶來看,中立是最好的,業者如果優先播放自己的內容,反而不能確實反應觀眾喜好。因此作者認為掘江貴文收購日本放送公司不是真心想融合廣播與IT,
而只是想海撈一票而已,做個greenmailer(為了讓對方買回公司而收購公司股票的人)。另一個失敗例子是AOL美國線上與時代華納的合併。

網路本身的架構也能創造成功事業,像是美國的TCI併購小的地方電視台來整併成長,或是西南航空先建立中型城市的直飛航班。我認為就像是地方包圍中央的策略,不直接與最大的競爭對手火拼。

總之,你要挑最有利的網路,如果現有的網路隊消費者不利,那你就有機會。假使你不能架構網路,也可以利用網路特性,傳達內容(請參考下一招)。 閱讀全文〈大前研一 我的發想術〉

SitePoint 的 2006 Web Development 報告

SitePoint 跟 Ektron,Inc. 的這份 State of Web Development 2006 調查了他們社群中的五千名網站開發者所做出的報告,統計目前開發工具跟使用的技術以及未來的趨勢。非常有意思。這五千名的開發者,有四成是freelancer(SOHO),有二成五是公司的網站管理員,一成二在設計公司,顯然是專業人士居多的樣子。

報告中顯示,已經有六成八的開發者,會用CSS來做排版。五成三會驗證markup但小錯不管,二成五會完全通過,二成一不驗證。

在談到開發方法方面,有五成會用OOP,但只有一成八會用MVC,有三成四會用 Unit Testing,一成四會生成文件。開發工具方面,有四成會用 Dreamweaver 開發,三成用文字編輯器,微軟的 Visual Studio只有一成。

關於程式語言的使用,PHP以六成八遙遙領先,微軟陣營則有三成二。Ruby只有5%,只贏過 Python… (笑)

Source: :2006 6State eof fWeb bDevelopment, ,SitePoint tPty yLtd. .and dEktron, ,Inc., ,August t2006

不過Ruby別氣餒,下個問題是一年內計畫會使用跟學習的語言統計。Ruby搬回一城,以二成四居次,微軟陣營居冠。

Source: :2006 6State eof fWeb bDevelopment, ,SitePoint tPty yLtd. .and dEktron, ,Inc., ,August t2006

另外一個非常有意思的統計是目前的專案有四成會用到Flash,三成用AJAX,但是未來一年內有四成五計畫會用AJAX,Flash降到二成七。 另外 Blog,Podcasts,Wiki,Syndication,Microformats 都有成長的趨勢。

Bulletproof Web Design

這篇書評跟摘要是我向某網頁設計師 Dick 邀稿的,Dick 目前正潛心研究CSS中。

0321346939.jpgBulletproof web Design
無懈可擊的網站設計
Improving flexibility and protecting against worst-case scenarios with XHML and CSS
用XHTML和CSS來改善網頁彈性並針對最差的情況作準備

基本上,這本應該說是CSS入門。導入的觀念相當強調網頁的親和力,裡面有很多NOTE和TIP很一針見血。整本書都著重在設計階段的全盤考量夠不夠,尤其在不同解析度或是不同字體大小的狀況下整個頁面會不會走樣,你可以暸解到一般設計容易犯的缺點,也順便教你怎樣可以設計的更好考慮到更多種的狀況。

如果是要自己開始親手打造網頁,這本書算是不錯的入門引導。對那些拿CSS來做純粹文字樣式的人很適合,中級以上的想學習的話直接看看他的最後一章範例大概就能夠窺探整本書的精神了。 閱讀全文〈Bulletproof Web Design〉