作者yoco315 (眠月)
站內Programming
標題Re: [請益] 程式該怎麼越寫越好呢
時間Thu Aug 20 03:17:07 2009
※ 引述《miniroom549 (takecoe)》之銘言:
: 程式該怎麼越寫越好呢
: 是否有程式高手可提供一下意見??
我不是高手,我懂一點點程式設計,但是我可以分享一點點經驗。
程式設計是一門藝術,
多寫當然很重要,但是閉門造車狂寫的話,除非是絕世天才,不然就掰了,
多看大師等級的程式碼絕對比自己死命寫進步的快好幾倍。
就像音樂跟繪畫,多看多接觸多欣賞別人的經典,絕對是好的。
但是看要看得懂,光看到程式碼看不懂背後設計的精髓的話還是沒用,
要看懂那些東西你得先有基本的
資料結構、
演算法跟進階的
設計模式等功力,
當然,除了理論以外,
程式語言本身你也要熟撚。
所以以上基本教材先念熟,這是進入高階殿堂的鑰匙。
這些東西沒有的話,想要進殿堂連門都沒有。
然後去找網路上有些「
xx源碼解析」,
裡面都會找一些經典的程式碼,然後解釋背後的設計理念,
看懂就是你的,這個時候你對軟體的結構就開始有點概念了。
看不懂的話,你就去好一點的討論版問,
因為到這個程度,死大學生討作業的爛版已經不能滿足你問題的難度了。
高手不少,但是既然是高手,他們對無聊的問題就一點興趣也沒有,
要把他們釣出來你的問題就要夠好,他們遇到好的問題就會掏心掏肺,
因為他們有些人很無聊,每天都在看板,但是很少發文,因為沒的發揮,
難得有機會發揮的話,他們就不會放過,所以你要看這個。
http://catb.org/~esr/faqs/smart-questions.html
當然閱讀吸收很重要,但是還要多寫,
寫沒多久你就會發現
開發環境很重要,選一個好的 IDE,絕對不要虐待自己。
選用的時候要多看多問多評估,因為這是你寫程式的時候會一直接觸的東西,
程式設計師需要保持快樂,不快樂的程式設計師就是沒有產能的程式設計師。
程式碼累積一定程度之後你會發現程式碼的整理也很重要,
這個時候你可能會注意到有
版本管理系統這種東西,
當然,選用之前要多評估,爛的版本管理系統會讓你大腦發煙。
也許有一天你需要回頭用或是看自己的程式碼,
你會發現幹他媽的寫這個程式的人是他媽的豬嗎!?為什麼我一行都看不懂!?
所以你需要寫
文件跟註解,請選一個好的
文件系統。
文件也可以避免別人看著你的程式碼罵你是他媽的豬。
而且懶惰是程式設計師的美德,如果你不想一直解釋重複的問題,
寫好文件就是讓你脫離當幼稚園老師的不二法門:「Read The Fucking Manual」
搞不好你在當學生的時候就可以作到以上全部,
然後不管你工作了沒有,你可能會開發大型軟體,
我是說
大型軟體,一個人寫不出來的那種。
這個時候你會發現寫軟體就像是蓋房子,需要工程方法,
一堆程式設計師在一起沒有統籌跟良好方法的話,是作不出
好的大東西的,
大東西可能做的出來,但是不好的大東西不叫做大程式,叫做大便,
真的,因為你會看著那堆程式碼整天直呼「shit!」
軟體工程,不過他不是大型軟體才需要,
你最好在越過學徒階段之後就要抱有軟體工程的概念。
如果你有幸堅持到這一步,
當別人問你是不是高手的時候,
你也許就可以回答他說「我懂一點點程式設計」然後跟他分享你的經驗了。
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.114.180
推 xam:最後一句收的漂亮... 114.32.92.137 08/20 03:19
推 milkdragon:推~~寫得不賴,尤其是最後一句 XD 134.208.3.156 08/20 03:59
推 james732:好一個首尾呼應法 推 XDDDD 220.143.16.237 08/20 08:31
推 godfat:推 220.128.121.85 08/20 09:39
推 chessjim:很不錯的經驗分享...... 203.68.161.27 08/20 11:45
推 PsMonkey:好到想罵髒話的推!! 可以借轉嗎? 58.114.211.84 08/20 12:07
推 abovelight:推一個要保持快樂... 219.87.66.196 08/20 13:17
推 AmosYang:這篇文章 1.值得推薦 65.87.177.87 08/20 15:10
推 legendmtg:推yoco 123.50.46.65 08/20 15:24
推 chengeaho:推 yoco 60.251.155.7 08/21 20:04
推 tkcn:推 61.230.18.68 08/23 11:21
※ PsMonkey:轉錄至看板 java 08/24 08:57
推 pao0111:推! 114.47.112.120 08/24 09:04
推 etrexetrex:推 140.118.9.202 08/25 13:29
推 ast9869:推 123.110.225.57 08/29 17:37
推 ykjiang:收錄 61.230.64.72 09/08 12:51
推 creeds:推最後一句!!讚 140.127.47.149 09/23 14:43
推 BuzzStyle:真是好文118.169.138.137 09/29 18:51
推 comlcs:推140.112.253.117 10/07 05:56
推 PCIT:值得一推! 72.201.78.127 11/12 00:31
推 john8324:大推! 124.155.174.91 04/27 22:16