程式設計師每天都在使用的6個驚訝的軟技能

2016-06-06    分類:程式設計師人生、首頁精華4人評論發表於2016-06-06

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

如果你想要開啟作為web開發人員的職業生涯,那麼你需要涉及的不僅僅是知道如何寫程式碼。

有一些通用的軟技能幾乎可用於每個領域——包括技術行業。

成為軟體開發人員涉及的不僅僅是編寫程式碼。自從我開始我的第一份作為軟體開發人員的工作之後,我很快就知道了這一點。如果你想要在這個領域茁壯成長的話,那麼你需要學習“特定的技能系列”。

你看,每一家公司都有一個大局。除了寫程式碼,你需要利用其他技能,使自己更有影響力,從而賺取更多的money。

在我作為一名開發人員的任職期間,我學會了除了程式設計之外還需要掌握的技能。下面我將分享6個令人驚訝的技能,作為一個有抱負的開發人員你一定不能錯過哦。

技能#1:書面溝通

在開始每天的工作之前,你可能需要先回復郵件。電子郵件迅速成為了生產力的死亡陷阱。與此同時,電子郵件也是展示你對別人有多大價值的門戶。書面技能依然是事實業務溝通的領頭羊。

既然書面溝通技巧是如此之重要,於是我花了很多時間來掌握髮送電子郵件並快速得到回覆的技術。

我所有的電子郵件不但設計友好,而且會盡快切入正題。這是我在郵件中要求技術需求的4個步驟:

  1. 感謝對方傳送電子郵件。這適用於每封電子郵件。例如:感謝你與我聯絡。
  2. 強調他們的要點並說明你已瞭解。例如,“如果我理解正確的話,你是想……”。
  3. 提出問題,以確保你理解他們想要什麼。
  4. 在他們回答你的問題之後,按照步驟2的方式回覆以確認你理解的內容。

這些步驟將提前節省你大量的時間,讓你突出於那些沒有做到位的人。書面交流是開發者武器庫中一項最被低估的技能。當然要想正確表達自己的想法需要多年的實踐,但用好這個武器往往會有“殺人於無形”的奇效。

技能#2:教學相長

如果你是一個初學者,那麼你可能認為你沒什麼可以教人的。但現實情況是,你也許可以。

當我開始我的第一份web開發工作時,我認為我需要花更多的時間向別人學習。但不是所有的情況都是如此。事實上,我做到了學習與教學的結合。我們公司已決定從SVN轉移到Git。而我得到這份工作也是因為我的主要賣點就是大量的Github程式碼倉庫。

當我加入的時候,我發現這是一支正在蓬勃成長的團隊,並且轉移到Git對於我們而言是有壓力的,因為它是一個更好的協作工具。

這真是一個超現實的體驗,因為,這是我人生中第一次不得不用標記來武裝自己以及在白板上畫圖。雖然只是一些簡單的圖表,用來演示git是如何工作的以及它如何與Github互動。還有解釋如何最佳利用分支。

請記住:這只是在公司待滿一個月之後。從那以後,我一直是頭腦風暴會議的一部分,解釋Rails中一切的工作原理,從會話到巢狀表單。

在你第一份開發工作中,通過教學,你可能最終會給人一種你比他們更知識淵博的印象。即使你不認為自己是“專家”或“高階開發者”。

在每一家公司裡,總有共享的知識池。當我教人的時候,我會對此作出貢獻,同時帶走別人的經驗和見解。

基本上說來,每個人都會貢獻自己的經驗和觀點到這個知識池中。而這便是大規模的教學相長。

技能#3:專注

任何職業,無論是畫家還是作家,專注於小細節才有可能一步步累積至偉大。如果你想產出令人驚豔的工作,那麼你得小心注意並調整方法。

如果你對細節的關注還不到位,那麼關鍵是要具備處理專注的能力。

完全專注於一項任務的能力在我們當前這個世界裡是呈現遞減狀態的。Twitter,Facebook和Reddit正在不斷誘惑我們的注意力。Cal Newport在他的《Deep Work》一書中指出,為了有一個有影響力的就業,人們必須放棄淺層的工作並擁抱深層的工作。

淺層工作被定義為只有短期利益的工作。例如,你可以花一天用來撰寫和回覆郵件,但會因此而錯過深層工作。深層工作是需要全神貫注並最終導致實際成果的工作。

作為一個開發者,這個技能不能被低估。我們的工作是建立有用的東西。而創造有價值的東西是需要大量時間的。少一點消費者的心態,多一點生產者的心態。

可能會有用的一種技術手段是番茄工作法。

下面是它的工作原理:

  • 設定25分鐘的定時器
  • 專注於一個任務25分鐘
  • 25分鐘結束後,休息5分鐘
  • 任何浮現出來和任務無關的想法,你可以先寫下來以便於以後來關注。
  • 你重複迴圈四次(或更多)

這種技術之所以偉大是因為它使你一次專注於一件事情。它可以幫助你產出更有意義的工作,而不是每隔幾分鐘檢視Twitter或Facebook。

技能#4:瞭解大局

那些主要產品圍繞程式碼的開發人員需要執行一種小心以及平衡的行為。一方面,從釋出到產品來幫助企業成長。另一方面,你要保證不會給你將來的同事留下難以維護的程式碼。而且以及當然,使用者也得享受於軟體。

但是,首先,此刻你能做的就是編寫程式碼。當你開始作為一個開發人員提高自己的時候,你將——回過頭去重構原先的程式碼。讓你的軟體更適應將來在上面工作的開發人員。

有一個偉大的概念是DRY(don’t repeat yourself)原則。其基本思想是寫一個只需要改變一次的程式碼片段,如果你決定將來更改它的話。這種方法既是程式設計師的福音,也有利於企業。

然而,所謂的大局並不僅僅涉及到程式碼。大多數的大公司遵循Peter Drucker的原則。如果你學過MBA,那麼你一定聽說過Peter和他的管理原則。如果沒有,那麼建議閱讀他寫的書。

Peter對西方公司產生了深遠的影響。他提出的最重要的概念之一是成本中心和利潤中心。在銷售和市場營銷工作的人被認為是企業的利潤中心。他們增加收入。必須控制企業成本以最大限度地提高收入。作為開發人員,你既可以是利潤中心也可以是成本中心。

管理你的職業生涯的最佳方式是瞭解你適合企業內部的哪個位置。這會附加你的價值,並讓你的職業生涯走得更遠。

技能#5:社交技巧

許多人認為,像Google這樣的公司創造了一種從自上而下的文化。不過,你和你的同伴也在建立文化。而培育這種團隊範圍的文化的最佳方式是通過你自己的社交技巧。

回想一下你的現實生活,而不是工作生活。你的朋友圈中有沒有這樣一個人是每個人都期待看到的?他們的存在可以帶來歡笑和深刻的討論。他們不傳播流言和謠言。在有人需要幫助時他們會及時伸手。總而言之,他們被描述為是一個夠意思的哥們或菇涼。

這樣的人也存在於工作場所。而你的目標應該是嘗試成為那樣的人。

成為一個每個人都期待看到的人。建立用一種建設性的心態說出意見的勇氣。這與你認為自己是一個內向或外向的人無關。

慢慢的,你的事業、你的技術技能將和這個領域中的其他人相同。但是如果你想在職場中獲得成功,那麼你需要成為團隊成員。你必須能夠和他人交流,能激勵他人,並值得信賴。因為在一天結束時,如果你不能與別人進行聯絡,那麼你將永遠無法讓別人接受你的想法,無論多大或多小。最終你只能接受其他人的想法,而不是給出你的想法。

技能#6:發現並處理問題

程式設計師的作用是解決問題。但要解決問題,首先必須去發現問題究竟是什麼。

世界上最容易的事情是記住一堆命令或複製和貼上在Stackoverflow上的程式碼。真正的能力是知道發生了什麼事的大局觀。如果你正在解決工作中的一個大問題,那麼最好是把它分解成微小的可編輯的片段。

先檢視問題本身。想想程式碼試圖解決的問題。

  1. 它使人更容易購買嗎?
  2. 它做報告嗎?
  3. 建立這個軟體的目的是什麼?

然後,看一下當前的解決方案(如果存在的話)。最後,考慮當前的解決方案是如何解決這個問題。(如果它能解決的話)。

一旦你高度概括了這個應用程式,那麼你就可以進入應用程式的功能部分。利用問題、解決方案和細節技術來進一步分解問題。這些框架步驟幫助我理解了不同的開源專案,例如Disourse。

結論

某些工作技能是普遍的,無論你是不是在高科技職業。例如,溝通和團隊合作。我真心希望我能在幹第一份web開發的工作之前就意識到這些軟技能的重要性。

對於程式設計師需要學習的軟技能,你也可以看看這篇文章:對程式設計師非常重要的24個軟技能

不知道我有沒有遺漏任何非技術技能?歡迎留下評論!

譯文連結:http://www.codeceo.com/article/6-soft-skills-programmer-have.html
英文原文:6 SURPRISING SOFT SKILLS DEVELOPERS USE EVERY DAY
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章