回想起來就像是在昨天。那是2023年,在資料結構課程的課堂上,pargas博士站在前面給我們講一些關於資料結構的話題,乙個ssh的畫面投影在我們前面的牆上。有人問了乙個問題,他說了一些東西,差不多是這樣的話「是這樣,如果你想成為乙個真正的計算機科學家,你需要從現在開始就使用vi編輯器」。我想他是在笑談,課後感覺他說的話並不是完全的正確,但作為年輕且容易被感染的我,回到寢室立刻就開始學習如何使用vi。學習過程不容易,花費了不少時間,但一旦掌握了其中的竅門,我發現,使用vi的確可以更快的做事情。
說老實話,這兩種編輯器沒有一種使我成為乙個更好的程式設計師。
優秀的工具並不會把你變得更優秀。你使用的工具確實很重要。事實上,它們非常棒。但老虎伍茲即使用幾根樹枝也能把我們全部打敗,梅西即使不穿鞋也能把我們踢的很慘,拉斐爾-納達爾即使使用乙個60年代產的老式木質網球拍也能把我們任何乙個人打敗。該死,他即使用桌球拍也能打敗我們。技術,知識,以及鍛鍊出來的經驗是你在與人對比中最重要的部分。
所以,工具造就不出程式設計師。那什麼可以呢?我想,造就乙個偉大的程式設計師的諸多因素都依賴於你所從事的事和與你共事的人,但從很多在軟體開發領域取得了巨大成功的人身上,我看到了很多共同的特徵,我覺得值得與你們分享一下。我並不確定這些特徵你是否能學得到,或者你天生就有,但我強烈的感覺到,如果我能花更多了時間去追求這些特徵,而不是鍾情於更換編輯器,我一定能取得更大的進步。
以人為本
我知道的最好的程式設計師總是把人放在第一位。他們明白他們是在為人寫軟體,即使那只是一些複雜系統的後台程式或協議,除了程式設計師沒有人會用到它們。他們寫文件,因為這很重要。他們幫助其他人如何使用自己的程式**。他們願意付出更多的努力去解決更複雜的問題來讓人們以正確的方式使用他們的軟體。
對學習有很大的胃口
掌握問題規律的本領
當你做開發有了一段時間後,你會發現有時出現的問題和你曾經處理過的問題看起來驚人的相似。能夠識別這些問題,把過往的解決方案應用到你當前的問題上,這是乙個很有用處的本領。如果每次都能改進這個方案,那是更好了。
注意,這並不意味這你可以盲目的認為過去這個方案可行,現在它就一定可行。這種過往問題和現在出現的問題的型別匹配是很有技巧性的。你需要認真判斷何時使用乙個歷史方案是可行的,什麼時候是不行的。
有一點神經質
我弟弟在高中時上了一次python課,當我問他是否喜歡這課時,他說我腦袋一定出問題了才去願意當一名程式設計師,他說程式設計是他這輩子子做過的最無聊的一件事。從某種程度上講,他是對的。大多數的日子裡,我是對著計算機說話,而不是人。想到這些要把一行一行的基本的長長短短的語句拼成乙個軟體,我不由的打了大大乙個冷戰。並不是所有的人都喜歡做這種事情,但是我知道的最優秀的程式設計師絕對是熱愛製作軟體的。
執著軟體開發是乙個實際上比任何人的想像都要緩慢的開發過程。它很費時間。有時候你必須要有足夠的耐心去精雕細琢出你需要的**。有時,作為程式設計師,我們會寫出非常有趣的**,但也有時候,我們不得不哭喪著臉去寫一大堆過去曾經寫過的**。想想偉大的程式設計師之所以能堅持下來,是因為他們能看到他們所從事的事業的大藍景,他們喜歡這一點一點走向目標的開發過程。
這就是我想到的構成乙個優秀程式設計師的一些特徵,但這並不是全部,所以我想聽聽你的觀點。你認為是什麼使乙個程式設計師變的優秀?
原文出處:[url]
是什麼造就了偉大的程式設計師?
what makes a great programmer?是什麼造就了偉大的程式設計師?軟體開發實際上是比任何人的想像都要緩慢的開發過程。它很費時間。有時候你必須要有足夠的耐心去精雕細琢出你需要的 而造就乙個偉大的程式設計師的諸多因素都依賴於你所從事的事和與你共事的人。回想起來就像是在昨天。那是2...
是什麼造就了偉大的程式設計師
回想起來就像是在昨天。那是2000年,在資料結構課程的課堂上,pargas博士站在前面給我們講一些關於資料結構的話題,乙個ssh的畫面投影在我們前面的牆上。有人問了乙個問題,他說了一些東西,差不多是這樣的話 是這樣,如果你想成為乙個真正的計算機科學家,你需要從現在開始就使用vi編輯器 我想他是在笑談...
是什麼造就了偉大的程式設計師
回想起來就像是在昨天。那是2000年,在資料結構課程的課堂上,pargas博士站在前面給我們講一些關於資料結構的話題,乙個ssh的畫面投影在我們前面的牆上。有人問了乙個問題,他說了一些東西,差不多是這樣的話 是這樣,如果你想成為乙個真正的計算機科學家,你需要從現在開始就使用vi編輯器 我想他是在笑談...