程序員必須掌握的6種軟技能

程序員必須掌握的6種軟技能

若是你想要開啓做爲 web 開發人員的職業生涯,那麼你須要涉及的不只僅是知道如何寫代碼。git

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

成爲軟件開發人員涉及的不只僅是編寫代碼。自從我開始個人第一份做爲軟件開發人員的工做以後,我很快就知道了這一點。若是你想要在這個領域茁壯成長的話,那麼你須要學習「特定的技能系列」。web

你看,每一家公司都有一個大局。除了寫代碼,你須要利用其餘技能,使本身更有影響力,從而賺取更多的 money。編程

在我做爲一名開發人員的任職期間,我學會了除了編程以外還須要掌握的技能。下面我將分享 6 種技能,做爲一個有抱負的開發人員你必定不能不會。框架

技能#1:書面溝通工具

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

既然書面溝通技巧是如此之重要,因而我花了不少時間來掌握髮送電子郵件並快速獲得回覆的技術。設計

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

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

這些步驟將提早節省你大量的時間,讓你突出於那些沒有作到位的人。書面交流是開發者武器庫中一項最被低估的技能。固然要想正確表達本身的想法須要多年的實踐,但用好這個武器每每會有「殺人於無形」的奇效。get

技能#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 個軟技能

相關文章
相關標籤/搜索