事情猶如發生在昨天,那是在2023年,pargas博士正在給我們資料結構班講解有關資料結構方面的話題,當他講解部署ssh應用時,乙個同學問了他乙個問題,當時他圍繞「如果你想成為乙個真正計算機科學家,你就要從學習vi編輯器開始。」說了一些事情。因為他說這些話的時候,面帶微笑,事後我並不覺得他的話正確。但當時由於年輕、易受影響,回到宿舍中,我就立即開始學習如何使用vi。這樣學習了了一段時間,我意識到一旦我掌握了其中的一些竅門,我就可以快速在vi中實現。
我可以很老實地說,這兩種文字編輯器中的任何乙個都沒有使我成為乙個更好的程式設計師。
優秀的工具,並不能使你成為優秀的程式設計師。所選用的工具確實很重要。實際上,他們也很棒。正如tiger woods即便使用低劣的球棒也會擊敗我們,messi不穿鞋照樣可以擊敗我們,rafael nadal在網球場用60年代的木製球拍也可能擊敗我們一樣。你所積累的技術、知識和經驗才是其中最重要的部分。
所以,工具不能成就優秀的程式設計師,那什麼可以呢?我認為成就乙個優秀程式設計師需要諸多因素都依賴於你所工作的內容和與你一同工作的人。但我發現,在軟體開發領域已取得巨大成功的人身上都存在一些共同的特徵,值得分享。我不敢肯定這些特徵你能否學得到或者與生俱來,但我十分強烈的感到,如果我更加注重這些特徵的培養,而不總停留在文字編輯器的替換上,我一定能取得很大的進步。
使用者第一
我認識的最好的程式設計師都會把使用者放在第一位。他們意識到軟開發出來是讓使用者用的,即便它是乙個複雜系統的後台或乙個協議,除了其他程式設計師不會再有別人用到它們。他們把文件說明書看得很重要並把它認真寫下來。他們還會幫助使用者去使用他們的**。他們也願意付出更大的努力以降低軟體複雜度,從而讓使用者更好的使用他們的軟體。
有強烈的學習慾望
問題匹配的能力
從事軟體開發工作一段時間後,你就會發覺,在開發過程中遇到的問題有時和你以前曾解決的問題極其相似。能迅速意識到這些,並把以前解決問題的方案迅速遷移到當前問題上是乙個很重要的能力。更好的就是在每次解決問題的過程中能夠不斷優化解決方案。
但仍要注意,這並不意味著你可以盲目地說以前的解決方案對本次問題一定奏效。此時巧妙地進行問題型別匹配顯得很重要。什麼時候用以前的解決方案可行,什麼時候不行,對此你要有一定的判斷力。
熱愛軟體開發工作
我哥在高三時學習python語言,當我問他是否喜歡這門課,他對我說,我極想成為一名程式設計師,但這對他來說是件最無聊的事。從某種程度來說,我認為他是對的。絕大部分時間裡,我面對的是計算機,而不是人。我常常因為把一行行長短不一的語句轉化成可工作的軟體而興奮。從事軟體開發的每個人並不是都喜歡做這個工作,但我曾見過的最優秀的程式設計師絕對是喜歡軟體開發的。
持之以恆
軟體開發的推進過程往往比人想象得慢很多。它需要花費很多時間來完成。有時你必須耐心地去完成你要寫的**。作為程式設計師,有時我們會寫一些確實很有趣的**,但有時我們也會因為大量寫重複的**而失落。我認為最好的程式設計師是可以一直堅持到最後的程式設計師,他們可以預見他們所從事工作的遠大前景,他們樂於享受一步步構建工程直到最終完成的過程。
如何成為優秀的開發人員?
對於每個從事開發工作的程式設計師來說,成為一名優秀的開發人員或許是他們一直所最追求的目標。就如何成為一名優秀的開發人員,alan johnson發表了一篇博文 what makes a great programmer?csdn對此文進行了翻譯,全文如下 事情猶如發生在昨天,那是在2000年,par...
如何成為優秀的技術開發人員?
1.保持學習 乙個非常重要的觀點是 如果你停留在乙個地方不前,並不代表你能一直呆在那裡,而是代表你正在落後 不進則退 往前進並不意味著你是就能進步 這至少你不會淪落到最後 付出就會有收穫 程式設計師為了保持向前發展,就需要不斷學習 我們需要的不是慢慢的往前走,而是我們要奔跑起來!下面列出這方面的幾個...
如何成為優秀的技術開發人員?
1.保持學習 乙個非常重要的觀點是 如果你停留在乙個地方不前,並不代表你能一直呆在那裡,而是代表你正在落後 不進則退 往前進並不意味著你是就能進步 這至少你不會淪落到最後 付出就會有收穫 程式設計師為了保持向前發展,就需要不斷學習 我們需要的不是慢慢的往前走,而是我們要奔跑起來!下面列出這方面的幾個...