一把剪刀
在有的人手裡,他只能把一張完美的紙剪得體無完膚,但是在剪紙藝術家手裡,卻能妙筆生花般的剪出無與倫比的窗花,那把剪刀
就是程式語言,剪紙藝術家就好比是得道的程式設計大師,而那個不幸的可憐人,就是還沒意識到自己處境的人(是不是你呢?)
-------
回想一下,你用多長時間學會了用剪刀?
-------
有乙個人問我,
學會一門語言需要多長時間?
,我給他乙個答案,就是我學會
c#語言所用的時間,乙個月!
好,現在你問我關於
c#的問題,
int是什麼?
指標是什麼?
我都可以精準的回答你,如果你又問,漢諾塔問題不用遞迴怎麼解決?
怎麼編寫一款試圖軟體?
我回答,我不會。
你不說你已經會
c#了麼?
我反問,你提的問題是
c#的問題麼?這些問題只可以用
c#解決麼?很顯然,不是。
舉個例子,還是上面的,所有人都清楚剪刀的構造,都會用剪刀,但不是所有人都可以剪除完美的窗花。
你問的int
是什麼??
指標是什麼?
就好比問我,剪刀是有什麼構成的?這誰不知道!
但你問我你能編寫一款檢視軟體麼?
就好比問我,你會剪窗花麼?
我當然回答,不會!
學習c#
語言,只要把基本語法搞懂了,理解關鍵字含義就行了,甚至不必去記它!
它又不會丟,它就在書上,忘了就去看就行了!怎麼學
c#語言?就這樣學!
c#(程式語言)只是一種工具!!就好比是一把剪刀。剪刀是拿來用的,不是用來研究的,不過很遺憾,有很多人至今還在研究剪刀。
我最終要學習的是方法,不是
c#本身。學習
c#本身只是其中很小的乙個階段。
------
你是怎麼用剪刀撿東西的?
-----
那個人又問我,
為什麼我看書上的例子都懂!怎麼我就寫不出程式呢!就不知道如何下手!
舉個例子,很好,你會用剪刀了,下面就跟著大師一起一步一步的去剪窗花了,大師剪完了,你也剪完了。然後大師說,你自己再剪乙個給我看看。你突然蒙了,忘了大師是從那一刀入口的。
把握不住問題關鍵的切入點!根本不會設計演算法!
書上的程式很容易就看懂了!這是作者有意這樣做的,但他真正的目的不是讓你看懂程式!而是讓你學習他的方法!什麼方法?找問題切入點的方法!(就是分析從哪下手,從這下手後如何設計演算法的方法)
書上每到例題的解答前面一定有這樣一段話
「我們可以這樣做
...」,「
這樣做」
就是作者思考的全過程,也是作者找切入點的全過程。你們讀書的時候注意到了麼?這就是多讀!
如果你能這麼想,那這個問題你就明白一半了,怎麼還有另一半?
對,就是去寫程式!
這就是多做!
能找到切入點了,下面就去瘋狂的寫程式吧!久而久之,你就會發現,當乙個問題擺在我面前時,我就有種
「它可以被解決的
」的感覺。
這種感覺,就是你解決問題的切入點!
-----
你用剪刀都剪了些什麼?
------
那個人又問(老是他
- -!),
我也寫出程式了,為什麼老是出錯!!或者乙個問題解決了,突然發現有冒出乙個新問題?
還是上面那個例子,有的人剪得窗花真是好看,但有的人剪出來而的
...
我們姑且也把它叫做窗花吧
- -!為什麼差距這麼大?
同乙個問題,別人寫的程式簡潔,高效。為什麼我寫的那麼冗長,就像「蓋
」長城?
回過頭來看看,你在第二個問
題裡面都做了些
什麼?多看題,多做題,沒錯。
但你看的都是什麼題?
你明白你眼前的程式出自誰手麼?
網路上可以搜到很多經典程式,但這些程式的「經典
」往往只是特定指向某方面的,哪方面。和他問題有關的那方面。就是演算法的經典,但是格式,往往不「經典
」。比如你在寫程式時候,還會用到
int i
;?
如果用到了,那就是你還沒有好的風格,習慣。定義要有實際的名字。這樣可以減輕你思維的負擔,如果
i 代表總和,就應該寫上
int sum;
當然,還有**的編寫規範,都要注意。(這樣不會因為你的疏忽而造成語法錯誤或書寫錯誤)
做的都是什麼程式?
舉個例子,你正在做一道題
求1+3+5+7+....
恩,解決了,然後,你又拿起了另一道題開始攻堅
求2+4+6+8..... - -
!你也在用功的做題,但你一直在做無用功!
要學會舉一反三,做大的節約自己的時間與精力,程式設計是很辛苦的。沒有這麼多時間來浪費。
當你在看題的時候,你在想什麼?
當你拿到一些經典的程式並讀完他時。會過頭來,想一想,你從中得到了什麼?就像前面讀課本裡的題目時,你有沒有注意作者在例題前面寫的思考過程?
現在,沒有作者的思考過程給你讀,你要自己去理解,去感悟,去極力的把自己想象成這個程式的作者,如果是我,我會怎麼做,這個作者有是怎麼做的,問什麼這樣做?
對有些人來說,很痛苦的過程。但對有些人來說,這是樂趣。就看你自己怎麼想了。
你是如何做題的?
看了很多程式,看了很多經典,當你開始解決乙個問題的時候,你有沒有把這些經典應用進去?或者你有沒有想到用這些經典?
你能不能發現比這個經典更經典的演算法?
這就是個人的能力,絕不是單單做題,看題,看經典能解決的。要從方方面面做起。
自己的大腦要有乙個程式設計的思維
這篇文章,是寫給進入程式設計大門但卻突然發現除了有激情剩下的都是迷茫新手,請保持你們的激情,那是最純粹的動力。也希望你們在以後的學習過程中,能不走彎路。記住,機會總是有的,但你要先堅持住。一把剪刀 在有的人手裡,他只能把一張完美的紙剪得體無完膚,但是在剪紙藝術家手裡,卻能妙筆生花般的剪出無與倫比的窗...
感覺自己應該要有乙個新的開始!
作為乙個剛剛工作步入社會的年輕人,我對自己的職業和技能感到些許懷疑和不自信。從讀大學開始,我就選擇了這個專業。當時並不知道這個專業具體是幹什麼的,那時只是對電腦這個可以上網玩遊戲的工具充滿著興趣,也對電影中黑客的牛x技術膜拜和憧憬。而如今我並沒有像他們那樣的技術,甚至到現在連五筆都不會打。大學對於我...
程式設計就是乙個思維的實現(09 03 29)
在網上看到這樣一段話 思想是程式設計的靈魂。確實是這樣。其實給我更多的感覺是,編寫程式其實就是思想的實現。就像是作家寫作一樣,把自己的思想化成文字,發布出去。作為乙個學習程式設計的人員,不應該只是想到那個函式有什麼功能,這個語句這麼用。而更多的應該想這段程式的主要思想是什麼?這樣的思想是怎樣通過一行...