Keep Walking(轉貼去年寫的BLOG)

這篇文章,其實是去年12月寫的, 換了BLOG,但是捨不得丟掉,所以移過來...
從去年,到今年又改變很多了,VS2008又級將推出,時間過得真快...

  
  昨天和一位同樣在資訊出版界的朋友小聊了一下,不知不覺的居然天色突然變暗,果然冬天來了,儘管今年是暖冬,不過天黑得還真快。三、四個小時中談到不少近十年資訊領域的變化,趁著記憶猶新,跟大家分享一下。

  在我們那個年代,程式設計是從MS-DOS開始學起的,施威銘的『Assembly程式設計』大概是對我幫助最大的書。回想這10年,變化還真是大,十年的時間物件導向主宰了程式設計的走向,Design Pattern引領了程式設計師的大腦,Web應用程式經過了一段網路泡沫化的淬練之後,開始走上主流的康莊大道,兒時(真的是兒時)和我一起寫程式的聶哥現在不知道到什麼地方去了(我始終佩服可以在一片360k的磁片和有限的記憶體內寫程式的高手,聶哥如果看到這篇文章,跟我聯絡一下吧!)。

  在我寫『Visual Basic2005程式設計與案例剖析』一書時,曾經很掙扎資料庫那一章的寫法,我究竟要不要把那一坨ADO.NET的類別詳細的介紹呢?還是用拖拉法把資料和控制項binding一下就搞定?最後我選擇前者而放棄後者,終究還是在書籍中稍微討論了一下ADO.NET的架構,儘管我猜想很多讀者可能會選擇直接跳過那一節,而直接使用我們幫讀者準備好的DbAccess類別,甚至可能某些讀者因為沒看到很炫的『拖拉完成式』程式設計法,以致於不選擇我的書…不過,好歹對得起自己的良心和讀者的支持。(當然,『Visual Basic2005程式設計與案例剖析』一書的資料庫章節僅是入門的入門,後續筆者會有更完整的資料庫程式設計書籍之計畫,相信不會讓讀者失望)

  現在在.NET的架構底下,透過VS2005要完成一套系統已經相當簡單了,但是我們開始發現另一個問題,初學者慢慢的迷失在眾多炫麗的控制項和包裝好的機制底下,無法明白究竟電腦中的程式究竟是怎麼跑的,我們也發現不管是中英文書籍,介紹技巧(Skill)總是遠多過於技術的方法(know-how),可能讀者也會說,我管它這些東西是怎麼完成的,我能寫出一套系統(或完成作業)就好了啦,是沒錯,和過去15-20年前,我們還設法將程式盡量縮小,塞在1M的主記憶體當中,現在動輒以G計算的主記憶體和File Swap技術,我管它也出來的程式效能和大小如何咧,反正強大的Widows和Intel CPU會幫我搞定,我常說事情沒有對錯,只有是否適合而已,當七年級生這麼說的時候,除了把五年級的主管氣死之外,有沒人能夠說你怎樣,某種角度來看這也真的是一項事實。

  但是就像當年學習『Assembly程式設計』一樣,我至今始終沒有用過『Assembly』寫過什麼偉大的系統(除了測試一下那時很熱門的Friday病毒程式寫法),但是我依舊要說,那段時間的學習是奠定日後程式設計基礎功力的重要關鍵。

  很有趣,完全無關的一種程式設計語言,卻給我最大的幫助;同樣的,學習C語言的時候,則是讓我對結構化程式設計、記憶體運作、乃至於日後為何要轉換成OOP奠定下了深厚的基礎,D-Base是我第一套學習的資料庫系統,Clipper則是我第一個撰寫資料庫產品所使用的程式設計語言,COBOL、Pascal、Fortran乃至於日後的Delphi(我還強烈的支持了一陣子)、C++、Java、VB、C#…每一種語言多少都陪我走過了一段或長或短的時間…

  我不知道當年為何要學那些語言(我真的忘了),我只記得,我想要了解,更深入的知道電腦究竟怎麼運作的,各種程式設計語言之間究竟有何差異,最後有大半的語言我沒有真的拿來在工作上使用,但是,無庸置疑的,幫助確是很大。

  現在的初學者,可能很清楚知道怎麼透過控制項來設計程式,但是往往不知道為什麼要使用控制項,控制項的原理為何?很可能知道(也熟悉)如何透過DataBinding的機制把資料庫欄位連結到畫面上的控制項,卻不知道為何要這麼作?如果沒有這些DataBinding的機制時,要怎麼連結資料庫?絕大部分開發人員一定知道『物件導向程式設計』這個字,也每天在程式當中使用了物件的屬性、方法,但是卻不曾嘗試設計過一個物件,或是繼承一個類別…

  更重要的是,初學者似乎對這些也不是很有興趣!!!

  我在想,這應該不全然是初學者本身的問題,我們這些在進行教育訓練和技術分享的講師、作者,可能或多或少也得負上一點責任。這是一個講究速食的時代,我昨天晚上開車到得來速,從買一個三號餐到吃完,大概只花了7分鐘,快速,但是卻沒什麼營養的一餐。

  我們發現,『學習』慢慢也染上這樣的趨勢,畢竟這是一個高度競爭的時代,時間就是金錢?不,時間已經不只是金錢,時間根本是一切的關鍵。很多讀者提到,在.NET 2.0還沒模熟的時候,微軟.NET 3.0(特別是WPF)已經鋪天蓋地排山倒海而來(筆者會針對WPF、Ajax、Web Solutions這個主題再寫一篇文章,也是當天和朋友談了一下午的結果和感想,希望對讀者們安排自己學習WPF的時程有些幫助),這些每天更新的技術,你現在打算是學?還是不學?

  Vista和Office2007已經推出,出版社第一時間推出了書籍,Office2007終於把自己調整像樣了一點,人性化了很多(沒用過?這篇文章就是用Word2007寫的,挺順手~),但是相信我,不少Office還在使用Office2000呢。(對了,如果你要安裝Office2007,也得先換成WindowsXP或Windows2003。如果我是用Windows 2000呢?喔,你被放棄了…)

  時間不夠,同時需要完成很多事情,又得學習最新的知識,這都是IT人員的無奈(相信我,我們也很清楚,並且深受其害),同時關鍵技術始終掌握在別人的手上,引領趨勢的也是別人,orz。

  但是,總是得生活嘛,我又不會炸雞排或是蚵仔煎,只好在這條路上持續努力。不過哪天,如果我真的去開一家Java咖啡廳(放心,我練過espresso),屆時再請讀者朋友們蒞臨指導,我一定在網路上放個讀者專享值價券,當然,咖啡廳裡面絕對也有寬頻上網,每周再來個技術分享,邀請各大作者、各領域技術導師、或是讀者和大家一起聊聊。

  不過在此之前,還有一段不短的辛苦路要走,我很喜歡的一個廣告字是『Keep Walking』。
  
  其實,每個人都有自己的速度,不見得要跟著別人的腳步,依照自己的速度,走自己的路,才能夠走的久、走的遠;我常常提醒自己,人生裡最終的成就往往都是留給持續走下去的人,而非短時間走的最快的人。

  很多話短短的這篇文章寫不完,下回再找時間和各位分享了。

Keep Walking ~

留言

匿名表示…
我是VB 2005程式設計與案例剖析的讀者,也是一個初學者,有一個將控制項關閉的功能
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
For Each control As Windows.Forms.Control In Me.Controls
If control.GetType Is GetType(Button) Then
control.Enabled = False
End If
Next
End Sub
這段當中 將button改成checkbox 卻不能正常將checkbox.enabled設為false
表單中是有checkbox的,我是想用來將checkbox一次都設為false or true
請問是哪裡有問題?
感謝回應

這個網誌中的熱門文章

使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM)

VS Code的字體大小

使用 Dify 建立企業請假機器人

使用 Dify API 快速建立一個包含前後文記憶的對談機器人

使用C#開發LineBot(3) - 使用LineBotSDK發送Line訊息