我的乙個程式設計師朋友常跟我說記住超過200個c++函式是多麼的有幫助。 「我從來不必去查詢函式的定義,因此我可以比其他程式設計師程式設計快上50%。」 他自豪的說。可結果是什麼?
難道他不知道編譯器的**自動完成功能可以節約大量查詢函式及輸入函式的時間嗎,另外當c#發布出來後,他在記憶函式上面的努力就白費了。
我們都會有因為這樣或者那樣原因而不得不建立的**集。 我從來不記得連線資料庫的準確**語句,所以我每次都不得不在**集中花10分鐘去查詢它。 為了解決這個問題,我建立了乙個用於記錄**片段的word文件,以幫助我記憶和查詢。
我的乙個同事建了個記錄鏈結的書籤,另外乙個同事在他的郵件中儲存了這些內容。無論你的方法是什麼,都是一種可以使你方便查詢到檔案或內容的好習慣。 當你建立你的知識庫後,你會發現它將極大的幫助你去把**寫得更好和更快。
很多初級程式設計師問我「我怎樣做這個,或者我怎樣做那個?」我總是會跟他們說「你想做什麼呢?」 聽聞此言後,他們會死盯著我,就好像我跟他們的媽媽約會了一樣。
這就是我的下乙個觀點,絕不要在知道你想做什麼之前去學習怎樣做,比如乙個程式設計師想要搜尋乙個文字檔案中是否存在的某個特定的詞彙。
下面是用c#來實現該目的:
string filecontent;現在我給他這些**去做這件事,但是更重要的是理解自己正在試著做的是什麼。 在這個例子中我們想做的是:system.io.filestream mystream = new filestream("c:\\aa.txt", filemode.open);
system.io.streamreader mystreamreader = new streamreader(mystream);
filecontent = mystreamreader.readtoend();
mystreamreader.close();
int idx = filecontent.
indexof("string");
if (idx)
開啟乙個檔案
讀其中的內容
關閉檔案
搜尋字串
如果找到了則輸出結果
用這個方法來解決事情產生了以下結果:
它使語言無關
使你的精力集中在需要做什麼上
使你的**更易讀和有效知道要做什麼將使你的**更有目的性。
現在在c++、php、vb.net、ruby on rails中編寫上述**是很容易的事情了,因為你理解了要做什麼而不是怎樣去做。
每乙個程式設計師都討厭注釋,但是為了寫出更有質量和易讀的**,我們需要注釋。
問題是大多數程式設計師常被告知如何注釋,一些公司希望每一行**都有注釋,另外一些則想要在每個函式前面有一段注釋,還有的規定在不同的**塊前注釋。
我並不同意這種強制性的規定,只要**是可用的、易讀的和有效的,那麼程式設計師應當可以用其個人喜好的格式來注釋。 對我來說在每一行都注釋將破壞**的節奏,我更喜歡在函式的前面注釋,羅列我接下來一步步將要做什麼,然後在函式中參考注釋中所寫的步驟進行程式設計。
這是適合我的模式,這樣可以在我程式設計前幫助我組織設計,也保持了我的節奏,使我不會因為需要注釋而在程式設計時中斷,也有助於其他人閱讀我的**。
下面是我怎樣注釋的例子:
/* 1. open file*這種注釋風格使我和大多數程式設計師可以容易的閱讀它。 那麼,找乙個適合你的注釋風格吧。2. read file into string*
3. close file*
4. search for key word*
5. if fond return true;
*/
string filecontent;
//1.
system.io.filestream mystream = new filestream("c:\\aa.txt", filemode.open);
system.io.streamreader mystreamreader = new streamreader(mystream);
//2.
filecontent = mystreamreader.readtoend();
//3.
mystreamreader.close();
//4.
int idx = filecontent.indexof("string");
if (idx)
有時有程式設計師發email問我他應該學習什麼語言,什麼是最好的程式語言等等。你至少應該精通一門程式語言,可以相當好的去編寫**,然後再去學習掌握另外一門,逐漸的成長。
以我自己為例,我精通c#,擅長php,並且已經開始使用ruby onrails大概有一兩個月了。 為什麼呢?精通一門語言可以使你進步,在進步中寫更好的**,找到完成任務更好的方法等。 進步也是我作為乙個程式設計師年復一年的工作,卻仍沒有覺得枯燥的原因。
想成為最牛B的程式設計師嗎?
想成為最牛程式設計師嗎?tip 2 建立屬於你自己的資源庫 我們都會有因為這樣或者那樣原因而不得不建立的 集。我從來不記得連線資料庫的準確 語句,所以我每次都不得不在 集中花10分鐘去查詢它。為了解決這個問題,我建立了乙個用於記錄 片段的word文件,以幫助我記憶和查詢。我的乙個同事建了個記錄鏈結的...
想成為最牛程式設計師嗎?以下幾點有助你實現這個目標。
想成為最牛程式設計師嗎?以下幾點有助你實現這個目標。tip 1 要方法而不是記憶 tip 2 建立屬於你自己的資源庫 我們都會有因為這樣或者那樣原因而不得不建立的 集。我從來不記得連線資料庫的準確 語句,所以我每次都不得不在 集中花10分鐘去查詢它。為了解決這個問題,我建立了乙個用於記錄 片段的wo...
如何成為最牛程式設計師
我之前曾經發過一篇博文 大學計算機專業那些課 來談論大學中各門課程的意義和重要性。那是針對更寬泛的範圍來說的,這篇文章則更加精要和簡約。因為這裡研究的僅僅是核心計算機課程,更重要的是,這裡要說的是這些課程之間的關係,以及它到底講得是些什麼東西。我想這些課程最終是要組成乙個體系的。請注意我這裡所說的是...