怎樣才能成為一名優秀的軟體開發者

2021-08-01 19:51:20 字數 3071 閱讀 9470

1樓:中公教育it優就業

學習某件事的第一步是承認你不知道。這聽起來很正常,但經驗豐富的程式設計師還記得要真正讓自己承認這一點需要花多長時間。

不要試圖證明自己是正確的

新手(以及很多經驗豐富的開發人員)會看著他們自己寫的**,欣賞它的奇妙。他們編寫測試來證明他們寫的**是可以執行的,而不是試圖讓它執行失敗。真正優秀的程式設計師會積極地尋找他們的錯誤在**,因為他們知道終端使用者會發現這些遺漏的bug。

“**可以執行了”這個目標不是終點,而是起點

是的,你的第一步總是想寫出質量很高的**,而且**上面都寫滿了註釋。但是一般的程式設計師在這一點上就退出,然後繼續下一件事。

但是一旦“完成”就停止了這種思想就像是拍一張快照,然後期待它是一件藝術品一樣。偉大的程式設計師都知道第一次迭代只是一次迭代。它執行起來了,恭喜你!

但你的工作還有很多。現在,使它變的更好。

其實這個過程就是在定義“更好”的含義。讓它變得更快能有什麼價值嗎?可重用更高有什麼好處嗎?更可靠嗎?答案隨著每個應用程式的不同而不同,但是過程都是一樣的。

寫三次**

好的程式設計師目標是寫出可以執行的軟體就可以了。偉大的程式設計師寫出來的軟體目標是執行得非常好。通過一次編寫這種情況幾乎不可能發生。最好的軟體通常被寫三次:

首先,編寫軟體以向你自己(或客戶)證明解決方案是可行的。其他人可能沒有意識到這只是一個概念驗證,但你確實這麼做了。

第二次可以讓它正常地執行。

第三次你能夠讓它平穩的執行。

當你看到最優秀的開發人員的工作時,這種級別的工作可能並不明顯。他們所做的一切看起來都很出色,但你沒有看到的是,即使是開發界的大腕兒,也可能在向其他人展示他們的軟體之前就已經拋棄了第一個和第二個版本。拋棄之前的**並開始編寫另一個版本是一種強大的方式,可以將“更好地”融入到您的個人工作流程中。

如果沒有其他情況,通過“寫三次**”可以告訴你解決問題的方法有多少種。而且它可以防止你陷入停滯不前的狀態。

閱讀大量的**

閱讀他人**的原因也很重要,只是不是很明顯而已。

那塊**我該怎麼寫呢?既然你已經看到了別人的解決方案,那你會有什麼思路呢?

我學到了什麼?我如何將這種技術應用到我過去編寫的**中?(“我從來沒有想過可以使用遞迴下降處理那塊的邏輯”)。

我如何改進這段**?如果這是一個開源專案,你對自己的解決方案更有信心,那就去做吧!

以作者的風格編寫**。練習這個可以幫助你進入作者的思維,這可以提高你的同情心。

不要只是漫不經心地思考這些步驟。寫下你自己的答案,無論是在個人日誌、部落格、審查**的過程中,還是與其他開發人員交流的論壇中。就像向朋友解釋問題可以幫助你解決問題一樣,記錄和分享你的分析可以幫助你理解為什麼你會以一種特定的方式對別人的**做出反應。

這是我之前提到的自省的一部分,幫助你冷靜地判斷你自己的優點和缺點。

不要把編寫**僅僅看作是任務

從事個人程式設計專案有很多優勢。首先,它為你提供了一種學習工具以及學習技術的方法,而這些工具和技術在你當前的工作中是用不到的,但是這將使你在下一份工作中更有市場。無論你是為開源專案做貢獻,還是為當地社群組織做公益工作,你都能獲得技術技能和自信。

(此外,你的個人專案向潛在僱主證明,你是一個從不停止學習的人。)

編寫**的另一個好處是它強迫你自己去解決問題。你不能把這些難啃的問題留給別人,所以它會讓你過早地尋求幫助。

盡一切可能做到與其他開發人員面對面的工作

傾聽別人的意見是很有幫助的。這可能意味著結對程式設計,或者參加黑客馬拉松,或者加入一個程式設計使用者組(比如vermont

coders

connection)。當你為一個開源專案做貢獻時,要關注一下你從使用者和其他開發者得到的反饋意見。你在他們的批評中看到了什麼共同點?

這樣做你可能會很幸運地認識了一位可以完全信任的導師,無論是編碼技術還是職業決策,你都可以完全信任他。所以不要浪費這些機會。

你是在學習技術,而不是在學如何使用工具

程式語言、工具和方法這些都只是一時的。這就是為什麼需要你在這麼多的語言和框架中儘可能多的獲得經驗。重點關注程式設計基礎,因為基礎永遠不會改變;更關注體系結構而不是如何程式設計。

如果你覺得做某件事只有一種正確的方式,那可能是時候進行現實核查了。條條框框的限制會妨礙你學習新事物的能力,也會使你很難適應變化。

2樓:安徽新華電腦專修學院

不要自我為中心

由於我熟練掌握這門技術,曾經有過在一個大型團隊工作的機會。最重要的是我早期所學到的團隊活力,就是那種團隊間攜手並進的協作。

在一個團隊,大部分時間你要做的就是互相學習,這種工作環境應該被讚揚和共享。

如果你是一個傲慢或者自我的人,而且不想分享你的工作和知識,那麼在這種工作環境下工作,你一定會覺得不適應。

要有責任心

非專業人士不需要為他們的工作負責,他們認為那是經理的事。因此一到下午5點,就會忘了剛剛分配給他們的工作。

而一個專業的程式設計師是絕對不能接受這一點的。如果因為你的bug造成公司損失數千萬美元,你感覺如何?

這個問題還要取決於管理層的解決方案,以及公司如何處理。每個公司都應該鼓勵開發者為他們自己的行為負責,更重要的是為他們所寫的**負責。

如果你的錯誤已經危及到了伺服器,那麼請盡你最大的努力盡快解決它,即使需要你熬夜處理。這將有可能使你擺脫非專業人士的稱呼,並且還可能會獲得更高的薪水。

接受批評

沒有bug的軟體是不存在的,我們或多或少都會犯一些愚蠢的錯誤。

而重要的是我們如何處理像“作為開發者你是怎麼考慮的”這樣的批評。

任何批評都應該有可取之處,都值得你去學習,因為那樣會讓你在自己所處的工作崗位上變得更優秀,尤其是被比你有著更豐富經驗的人批評。

有良好的職業道德

成為一名專業人士是不容懈怠的,學習也不只是朝九晚五的事。

不斷的學習,實踐和提高自己是對自己的一種投資,並且這是你自己的責任,而不是你僱主的。

你應該利用工作之外的時間來學習(即是說你不能佔用你僱主的時間,來學習最新的sitepoint教程。)嘿!很簡單的!學習起來吧!

你也許會說沒有充足的時間。那麼你錯了,你當然有!你一定要相信你很聰明。如果你想認真對待你的事業,那麼請把它當回事兒,專注些。

早上早點起床,下午下班晚點走,利用這些額外時間,在不影響你的健康和家庭的情況下,來擴充套件你的優勢。

下班前的短短半小時,也就意味著你每週會額外多出5個小時來學習。

我怎樣才能成為一名優秀的門將,足球無基礎怎麼快速成為一名合格門將

單刀球 主要是出擊的時機把握 在對方還沒有做好射門的準備好的時候側撲 四肢張開 最大限度的 增加身體的 長度 一定不能怕被踢要是怕被踢 悠悠鬱鬱的就完了 門將最忌諱的就是這個 高球 我覺得最主要的身高 其次就是 站位了 我估計你站位 一般習慣靠後多連連出擊吧 還有就是膽子.畢竟往人家腳底下撲是需要 ...

怎樣才能成為真正的讀書家怎樣才能成為一名心理學家?

快速閱讀 記讀書筆記 反覆閱讀 向他人講述 寫下來釋出 將書中內容負諸行動 多讀書有哪些好處 第一 好的習慣。我們很多人的確是忙於工作,無暇閱讀書籍。但是時間總是有的。我們只需要每天利用15 30分鐘就可以了。當我們養成好的讀書習慣以後,就一定會對生活和未來充滿著信心。第二 可以擴大知識面。的確,閱...

如何成為一名優秀的健身教練,如何才能成為乙個優秀的健身教練?

在健身房,你最羨慕的是什麼?我覺得大多數會跟我一樣,最羨慕的就是健身教練那個身材,一直都在渴望自己什麼時候才能跟他們一樣擁有這一身有型的肌肉。1.既然身為健身教練,那麼就應該有正規的健身教練證書。現在造假的人很多,有些所謂的健身教練壓根兒就沒有證件或者證件是用非正規手段得到的。所以通過自己去考核而得...