1樓:中公教育it優就業
學習某件事的第一步是承認你不知道。這聽起來很正常,但經驗豐富的程式設計師還記得要真正讓自己承認這一點需要花多長時間。
不要試圖證明自己是正確的
新手(以及很多經驗豐富的開發人員)會看著他們自己寫的**,欣賞它的奇妙。他們編寫測試來證明他們寫的**是可以執行的,而不是試圖讓它執行失敗。真正優秀的程式設計師會積極地尋找他們的錯誤在**,因為他們知道終端使用者會發現這些遺漏的bug。
“**可以執行了”這個目標不是終點,而是起點
是的,你的第一步總是想寫出質量很高的**,而且**上面都寫滿了註釋。但是一般的程式設計師在這一點上就退出,然後繼續下一件事。
但是一旦“完成”就停止了這種思想就像是拍一張快照,然後期待它是一件藝術品一樣。偉大的程式設計師都知道第一次迭代只是一次迭代。它執行起來了,恭喜你!
但你的工作還有很多。現在,使它變的更好。
其實這個過程就是在定義“更好”的含義。讓它變得更快能有什麼價值嗎?可重用更高有什麼好處嗎?更可靠嗎?答案隨著每個應用程式的不同而不同,但是過程都是一樣的。
寫三次**
好的程式設計師目標是寫出可以執行的軟體就可以了。偉大的程式設計師寫出來的軟體目標是執行得非常好。通過一次編寫這種情況幾乎不可能發生。最好的軟體通常被寫三次:
首先,編寫軟體以向你自己(或客戶)證明解決方案是可行的。其他人可能沒有意識到這只是一個概念驗證,但你確實這麼做了。
第二次可以讓它正常地執行。
第三次你能夠讓它平穩的執行。
當你看到最優秀的開發人員的工作時,這種級別的工作可能並不明顯。他們所做的一切看起來都很出色,但你沒有看到的是,即使是開發界的大腕兒,也可能在向其他人展示他們的軟體之前就已經拋棄了第一個和第二個版本。拋棄之前的**並開始編寫另一個版本是一種強大的方式,可以將“更好地”融入到您的個人工作流程中。
如果沒有其他情況,通過“寫三次**”可以告訴你解決問題的方法有多少種。而且它可以防止你陷入停滯不前的狀態。
閱讀大量的**
閱讀他人**的原因也很重要,只是不是很明顯而已。
那塊**我該怎麼寫呢?既然你已經看到了別人的解決方案,那你會有什麼思路呢?
我學到了什麼?我如何將這種技術應用到我過去編寫的**中?(“我從來沒有想過可以使用遞迴下降處理那塊的邏輯”)。
我如何改進這段**?如果這是一個開源專案,你對自己的解決方案更有信心,那就去做吧!
以作者的風格編寫**。練習這個可以幫助你進入作者的思維,這可以提高你的同情心。
不要只是漫不經心地思考這些步驟。寫下你自己的答案,無論是在個人日誌、部落格、審查**的過程中,還是與其他開發人員交流的論壇中。就像向朋友解釋問題可以幫助你解決問題一樣,記錄和分享你的分析可以幫助你理解為什麼你會以一種特定的方式對別人的**做出反應。
這是我之前提到的自省的一部分,幫助你冷靜地判斷你自己的優點和缺點。
不要把編寫**僅僅看作是任務
從事個人程式設計專案有很多優勢。首先,它為你提供了一種學習工具以及學習技術的方法,而這些工具和技術在你當前的工作中是用不到的,但是這將使你在下一份工作中更有市場。無論你是為開源專案做貢獻,還是為當地社群組織做公益工作,你都能獲得技術技能和自信。
(此外,你的個人專案向潛在僱主證明,你是一個從不停止學習的人。)
編寫**的另一個好處是它強迫你自己去解決問題。你不能把這些難啃的問題留給別人,所以它會讓你過早地尋求幫助。
盡一切可能做到與其他開發人員面對面的工作
傾聽別人的意見是很有幫助的。這可能意味著結對程式設計,或者參加黑客馬拉松,或者加入一個程式設計使用者組(比如vermont
coders
connection)。當你為一個開源專案做貢獻時,要關注一下你從使用者和其他開發者得到的反饋意見。你在他們的批評中看到了什麼共同點?
這樣做你可能會很幸運地認識了一位可以完全信任的導師,無論是編碼技術還是職業決策,你都可以完全信任他。所以不要浪費這些機會。
你是在學習技術,而不是在學如何使用工具
程式語言、工具和方法這些都只是一時的。這就是為什麼需要你在這麼多的語言和框架中儘可能多的獲得經驗。重點關注程式設計基礎,因為基礎永遠不會改變;更關注體系結構而不是如何程式設計。
如果你覺得做某件事只有一種正確的方式,那可能是時候進行現實核查了。條條框框的限制會妨礙你學習新事物的能力,也會使你很難適應變化。
2樓:安徽新華電腦專修學院
不要自我為中心
由於我熟練掌握這門技術,曾經有過在一個大型團隊工作的機會。最重要的是我早期所學到的團隊活力,就是那種團隊間攜手並進的協作。
在一個團隊,大部分時間你要做的就是互相學習,這種工作環境應該被讚揚和共享。
如果你是一個傲慢或者自我的人,而且不想分享你的工作和知識,那麼在這種工作環境下工作,你一定會覺得不適應。
要有責任心
非專業人士不需要為他們的工作負責,他們認為那是經理的事。因此一到下午5點,就會忘了剛剛分配給他們的工作。
而一個專業的程式設計師是絕對不能接受這一點的。如果因為你的bug造成公司損失數千萬美元,你感覺如何?
這個問題還要取決於管理層的解決方案,以及公司如何處理。每個公司都應該鼓勵開發者為他們自己的行為負責,更重要的是為他們所寫的**負責。
如果你的錯誤已經危及到了伺服器,那麼請盡你最大的努力盡快解決它,即使需要你熬夜處理。這將有可能使你擺脫非專業人士的稱呼,並且還可能會獲得更高的薪水。
接受批評
沒有bug的軟體是不存在的,我們或多或少都會犯一些愚蠢的錯誤。
而重要的是我們如何處理像“作為開發者你是怎麼考慮的”這樣的批評。
任何批評都應該有可取之處,都值得你去學習,因為那樣會讓你在自己所處的工作崗位上變得更優秀,尤其是被比你有著更豐富經驗的人批評。
有良好的職業道德
成為一名專業人士是不容懈怠的,學習也不只是朝九晚五的事。
不斷的學習,實踐和提高自己是對自己的一種投資,並且這是你自己的責任,而不是你僱主的。
你應該利用工作之外的時間來學習(即是說你不能佔用你僱主的時間,來學習最新的sitepoint教程。)嘿!很簡單的!學習起來吧!
你也許會說沒有充足的時間。那麼你錯了,你當然有!你一定要相信你很聰明。如果你想認真對待你的事業,那麼請把它當回事兒,專注些。
早上早點起床,下午下班晚點走,利用這些額外時間,在不影響你的健康和家庭的情況下,來擴充套件你的優勢。
下班前的短短半小時,也就意味著你每週會額外多出5個小時來學習。
怎樣才能成為一名優秀的科學家,怎樣才能成為一名合格的科學家?
這是一個不好回答的問題。讓我總結,大概有以下幾點 應該怎樣培養?從小具備哪些品質,以後才能當科學家?科學家的品質對於要成為一名優秀的科學家所具備的素質,首先必須是要有好奇心,對於自然的好奇,對於普遍事物的好奇。據我所知的優秀科學家,他們對於所有事物都非常好奇。他們想探知事物的規律,他們具有看到事物最...
怎樣才能成為一名職業律師,怎樣才能成為一名律師 詳細
這個肯定你是要想考律師證的,有了律師證才能夠真正真正的算是一個律師。然後這樣的話,你才能夠從事一些安靜的一些個省裡調研之類的。艱難謀生之掃樓式營銷 有人這樣形容律師的收入,三年不開張開張吃三年,我是不相信這個說法的。因為作律師的前三年,我每次開張能掙上一個月的生活費就不錯了。律師工作是個技術活,剛剛...
如何成為一名優秀的領導者怎樣才能成為一個優秀的領導者
一 領導 者要具有大局觀念,戰略眼光,要有廣闊的胸懷 當領導的要有所為,有所不為,要努力學習,綜觀世界企業風雲,要用戰略眼光去想問題,看問題,處理問題。新的競爭秩序使我們不能再醉心於財務報表,而必須著眼於遠景規劃 價值觀念 商界網路 企業文化等軟技能。中國有句古語 有容乃大,無欲則剛 宰相肚裡能撐船...