0. “面向?qū)ο蟆北饶阆胂蟮囊y得多
也許只有我有這種想法,不過我曾經(jīng)以為計算機(jī)科學(xué)課上學(xué)過的“面向?qū)ο蟆笔呛芎唵蔚臇|西。我的意思是,創(chuàng)建一些類來模擬現(xiàn)實世界能有多難啊?其實,那還真是挺難的。
十年之后,我仍然在學(xué)習(xí)如何合理地建模。我后悔以前我沒有花更多的時間來學(xué)習(xí)面向?qū)ο蠛驮O(shè)計模式。優(yōu)秀的建模技術(shù)對于每一個開發(fā)團(tuán)隊都是非常有價值的。
1. 軟件開發(fā)的難點在于溝通
這里的溝通是指與人的溝通,而不是socket編程。有時你的確會遇上棘手的技術(shù)問題,但是這種情況根本不常見。常見的問題在于那些你和項目經(jīng)理之間的、你和客戶之間的、還有你和其他開發(fā)者之間的誤解。培養(yǎng)你的軟技能吧。
2. 學(xué)會拒絕
當(dāng)我剛開始工作的時候,我非常急切的想要去討好別人。這也就是說,我?guī)缀醪荒苋セ亟^別人對我的要求。我加了很多班,但是還是不能完成他們交代給我的所有事情。結(jié)果他們表示不滿意,而我也表示要崩潰了。
如果你從不回絕別人,你的答應(yīng)就顯得毫無意義。承擔(dān)能力所及的事情,如果別人不停地指派給你更多的事情,你需要明確的表示那意味著將會耽誤其他的工作。
為了應(yīng)付這種事情,我會隨身攜帶一張列有待辦事項的紙(To-do list)。當(dāng)人們叫我去做什么事情的時候,我就給他們看這張紙,并且問他們我應(yīng)該為他們擠掉哪個事情。這是我用來拒絕別人的一種好辦法。
3. 如果每件事都重要,那就什么事都不重要
我們這一行,總是強(qiáng)調(diào)每種特性都是同等重要的,其實并不是這樣。敦促你的同事,讓他們承擔(dān)起工作。
如果你不強(qiáng)迫他們選擇該做和不該做的事情,你會輕松很多。相反,讓他們來為你選擇你這周的任務(wù)。這會讓你生產(chǎn)出來的東西變得最有價值。如果其他的部分都還是亂糟糟的,至少你已經(jīng)完成了最重要的。
4. 不要過度考慮問題
我可以站在白板前面一整天策劃事情,但是這并不意味著事情會向更好的方向發(fā)展,這僅意味著事情將變得更復(fù)雜。
我的意思并不是“你不應(yīng)該去做任何策劃”,只是如果我會在實現(xiàn)程序的時候會很快遇到我沒考慮過的問題的話,那為什么我不去嘗試把它做好呢?像戴夫·法洛所說的,“魔鬼居住于細(xì)節(jié)中,而驅(qū)走魔鬼的方法是實踐,而不是理論”。
5. 去鉆研一些東西,但不要鉆牛角尖
克里斯和我花費了大量的時間鉆研SQL服務(wù)器的深層部分。那真的很有趣,我也學(xué)到了很多知識,但是過了一段時間我意識到,知道了那么多的知識并不能幫助我解決業(yè)務(wù)上的問題。
舉個例子:我知道在數(shù)據(jù)表層次,SQL服務(wù)器不會接受IU鎖——它只會接受IX鎖。這是一個性能調(diào)整,因為在大多數(shù)情況下,IU鎖都會升級成IX鎖。為了了解這些,我花掉了無數(shù)天做實驗,我讀了很多的書,還在會議上向微軟的員工了解情況。然而我用過這個知識嗎?沒有。
6. 了解軟件開發(fā)系統(tǒng)的其他方面
這對成為一個優(yōu)秀的開發(fā)者是很重要的,但是若要在一個開發(fā)軟件的系統(tǒng)中成為優(yōu)秀的一員,你還需要去了解開發(fā)系統(tǒng)中剩下的部分在干什么。QA是如何工作的?項目經(jīng)理在干什么?業(yè)務(wù)分析員在忙些什么?這些知識會讓你與其他員工產(chǎn)生聯(lián)系,并使你和他們之間的互動順暢。
向你周圍的人尋求幫助,以便學(xué)到更多的知識。有什么好書呢?大多數(shù)人都會為你的關(guān)注而高興,并且很樂意幫助你。在這上花一點小時間會對你有很大的幫助。
7. 同事是你最好的老師
在我找到第一份工作的一年后,我們和另一所公司合并了。突然之間身邊就多出很多聰明又經(jīng)驗豐富的人。我深刻的記得這是我感到多么自卑和愚蠢。我努力地學(xué)習(xí),讀了一本又一本的書,還是還是趕不上他們。我發(fā)現(xiàn)他們和我比起來有非常突出的優(yōu)勢。
現(xiàn)在,我不會因為和優(yōu)秀的人一起工作而感到難受。我認(rèn)為我有一生的時間去學(xué)習(xí)。我提出問題,并且非常努力地去了解我的同事們是怎么做出結(jié)論的。這也是為什么我加入了 ThoughtWorks。把你的同事們看成財富,而不是競爭對手。
關(guān)于學(xué)習(xí),不論是哪個行業(yè),都是永恒的話題,正如 Jonathan Danylko 在總結(jié)自己 20 年的編程經(jīng)驗時所說到,“誠然,總有很多你不知道的技術(shù),你可以從中學(xué)習(xí)以保持不落后。如果你有一種靈巧的方式來獲取你需要的新技術(shù),那你每天都應(yīng)該堅持學(xué)習(xí)。”(編注:ThoughtWorks是一家全球知名的IT咨詢公司。)
8. 做出可用的軟件是最終目標(biāo)
不管你的算法有多酷,不管你的數(shù)據(jù)庫模式有多棒,不管你的什么什么有多么多么好,如果它不能搔到客戶的癢處,它就不值一文。專注于做出有用的軟件,同時準(zhǔn)備繼續(xù)做出后續(xù)軟件,這才是正軌。
9. 有些人真的不可理喻
在你身邊的大多數(shù)人總是很優(yōu)秀的,你向他們學(xué)習(xí),他們也向你學(xué)習(xí)。共同完成一件事情的感覺總是很好。然而不幸的是,你也有可能遇到例外。因為某些原因,人可能會變得冷漠刻薄。萎靡不振的老板啊,滿口謊言的同事啊,無知愚昧的顧客什么的。不要把他們看的太重。盡量避開他們,盡量把他們所帶來的痛苦和影響降到最小,但不要自責(zé)。只要你保持誠實并且盡力去工作,你就完成了你該做的事情。
-
工程師
+關(guān)注
關(guān)注
59文章
1589瀏覽量
69230
發(fā)布評論請先 登錄
【華秋DFM】V4.6正式上線:工程師的PCB設(shè)計“好搭子”來了!
如何成為一名合格的KaihongOS北向應(yīng)用開發(fā)工程師
如何成為一名嵌入式軟件工程師?
一位老電子工程師的十年職場感悟

嵌入式軟件工程師就業(yè)好不好?
電子工程師的電源設(shè)計經(jīng)驗分享
電子工程師的電路設(shè)計經(jīng)驗分享
電子工程師的經(jīng)驗分享
如何成為一名合格的北向應(yīng)用開發(fā)工程師
為什么嵌入式驅(qū)動開發(fā)工程師可以拿高薪?

評論