因生活所需,近期會開始整理過往的學習心得與技法,

此篇文章針對基礎中的基礎,就算是外行人也可以開始的修煉,

希望各位讀者可提供意見或交流,謝謝。

 

學習程式語言(Programming Language)並不是一件困難的事情,

無論是何種語言其構成不外乎都是「單字」及「文法」,

而程式語言也是由單字與文法所構成,

但是他的對象是機器或電腦,所以在描述的邏輯上必須非常清楚,

初學者會碰到的機器或電腦都不具有智慧,

也就是說每一個聽命的對象都是非常「聽話」的夥伴,

他們(機器或電腦)都是一個命令、一個動作,而且不會自動的去處理錯誤、衝突等等。

因此機器執行的程式必須有一個完整的「流程」,

這個流程必須考慮完整、有系統的去面對每一個可能會碰到的狀況,

當然,我們大多無法在第一時間就如此縝密的去規劃每一個細節,

每個人的思維也多有盲點,只能在測試的過程中不斷的去修正及改進。

 

我還是必須強調,「流程」和「文法」是兩個完全不同層次的事情,

就像你會寫中文字,但你不一定有辦法寫文章、寫小說,

因為小說在下筆之前,就必須擁有完整的架構與想法,知道每一個角色的特色與出場時機,

甚至在正式動筆之前,還會先模擬許多小劇情,來確立整體的特色。

寫程式也不多讓,在開啟專案之前,就必須規劃好每一個流程、每一個可能遇到的問題與解決方法,

完整的流程規劃會減少開發時的迷思,也會降低發生錯誤的機會。

但現實是,許多人往往在初學的時候一股作氣的學習各種「文法」,而忽略了「流程」規劃,

就像你寫得一手好字,卻構不成文章一樣徒然無功。

 

為了有效的規劃並且操作,我們必須將心中所想的「命令」變成流程圖,

其中包含「分解邏輯」或者「分解步驟」,

而這些「分解」可大可小,比方說「洗衣服」可以分解成「丟衣服進洗衣機」與「啟動洗衣機」,

也可以分解成「去拿髒衣服、將衣服方進洗衣機、倒入洗衣精、設定洗衣機、按下開始」,

實際來說,我們的動作與目的都是一樣的,只是在敘述上有的簡潔,有的詳細,

可以試想,如果今天是一個從來沒有用過電器的人看到這個流程,看到哪一個會比較清楚呢?

詳細的規劃會比較耗時間,卻比較好懂,簡略的規劃比較快速,但可能會造成誤解。

當然,寫程式是相當自由的,要怎樣去規畫這些邏輯是個人自由,

但詳細的邏輯規劃比較容易分享與他人或自身的重新閱讀,個人比較推薦。

(迷之音 : 身為一個程式強迫症患者,一點省略都是不被允許的)

 

上述的基礎流程都是單一方向,但我們的流程必須加入有兩個方向以上的「邏輯」,

比方說「是否洗好了?」、「這些衣服是否可以脫水?」,

這時候就會有「」與「」多個方向的流程出現了。

我們把脫水的這個步驟也放進流程圖中。

當然,可以再寫得更詳細些,要不要烘衣、水量、時間、預約等等,

但概念至此,剩下的就交給需要的人去發揮了。

 

有了一張流程圖後,我們就可以準備著手進行開發了。

但你可能會問說,難道我以後要寫大型專案的時候,也要寫這樣的流程圖嗎?

以個人來說,只要不是能一眼望穿的程式都必須寫流程。

如果是個人開發的時候,流程圖是用來記錄想法跟整理思緒,

如果是多人開發的時候,流程圖通常是責任界定、分類或者定義銜接參數(Connector)用的。

隨著經驗越來越多,入行越來越深,

流程圖甚至會被各個工程師內化在心中,

而紙筆上的紀錄就不會那麼嚴謹而詳細,多半只是記錄個大概而已。

但在程度尚淺的時候,應該要把流程圖規劃清楚,

才不會著墨於個語言的文法時,就忘了整體流程架構而盲目開發了。

(流程圖的各個形狀之定義及用法就不在此詳述,迷之音: 能用就好)

 

在還沒有碰到任何程式語言之前,我們必須修練好每一個問題、功能的「程序」能力,

邏輯與程序為程式之根本,個人認為這比熟練語法更為重要,

良好的邏輯帶你上天堂,不好的邏輯帶你逛地獄三圈還要繼續撐著玩躲貓貓

(沒辦法,誰叫這當初天殺的邏輯就是自己規劃的呢?)

所以,好好規劃,好好堅持。

加油!

創作者介紹
創作者 -悄悄的流浪- -是我的幸福- 的頭像
Vincent

-悄悄的流浪- -是我的幸福-

Vincent 發表在 痞客邦 留言(0) 人氣( 152 )