如何成爲專業的軟件開發人員

上一篇:https://blog.csdn.net/weixin_42523774/article/details/104085835
· 本文是分享《軟技能:代碼之外的生存指南》一書中,對我印象深刻內容和讀書心得的第二篇。我可以毫無疑問的說,這本書改變了我對自己職業生涯的看法,給我撥開前方的層層迷霧,指引着我職業生涯的正確方向。
· 今天分享的就是,這本書中的職業生涯的第二篇——如何成爲專業的軟件開發人員。

1.你是哪類軟件開發人員

1.1 專業化很重要

· 有大量的軟件開發人員並沒有具體的專業方向。事實上,大部分軟件開發人員完全以自己使用的編程語言來定義自己的專業性。
· 這種專業分工太寬泛了,並不足以說明你能勝任哪種類型的軟件開發工作。
· 你也可能會害怕專攻軟件開發的某一領域,擔心自己陷入很窄的專業領域,從而與其他的工作和機會絕緣。雖然專業化確實會把你關在一些機會的大門之外,但與此同時它將打開的機會大門要比你用其他方式打開的多得多。
· 從表面上看,身爲專才後,潛在僱主和客戶羣都變小了,但是實際上你對他們更具吸引力了。只要你專業能力雄厚,市場沒有過渡飽和,與那些自稱爲 “ 軟件開發人員 ” 的人相比,你能更輕鬆地找到工作或者贏得客戶。

· 假設你正在你所在地尋求一份工作,並且你是一個 Java 開發人員。很多大都市對 Java 開發人員都有相當大的需求,所以開始的時候你會擁有一個很棒的大水池 —— 你可以得到很多工作機會。但其實你並不需要所有的這些工作機會,只要一個就夠了。
· 假設你所在的地區當前有500個Java相關工作機會,而Java web方向還有250個工作機會,而更專業一點,你選擇專攻了Java web 開發棧爲方向,這可能讓你的工作機會降爲了50個。雖然相比於500個工作機會,你的潛在工作機會的數量變少了,但是你獲得這50個工作機會的概率增加了。

1.2 你的專業類別

· 軟件開發人員有很多不同的專業分類。比較明顯的分類方法是按照開發語言分類和按照平臺分類,但是也可以按照方法論分類、按照技術或業務種類分類。
· 首先你得弄清楚一件事,自己想從事哪類軟件開發工作。你是想做應用程序的前端開發,設計和實現用戶界面,想做應用程序的中間件開發,實現業務規則和邏輯,還是想做應用程序的後端數據庫或底層操作開發?你甚至可以做到三者通吃,成爲傳說中的 “ 全棧開發人員 ” ;但是在這種情況下,你還是應該專注於某一特定的技術棧。(例如,一位 Web 網站全棧開發者可能使用 C# 和 SQL Server 專門創建 ASP.NET MVC 網站。)
· 這幾歸納了幾種專業領域:

  • Web 開發棧
  • 嵌入式系統
  • 特定的操作系統
  • 移動開發
  • 框架
  • 軟件系統

1.3 選擇你的專業

這裏有一些技巧來幫你選擇自己的專業。就是依據是否當前是否有此種需求存在。

  • 在你現在或以前工作的公司裏,有哪些主要的痛點?你能成爲一名專門解決這些痛點的專家嗎?
  • 有沒有一種特定的工作是無人能做,或者缺乏經驗豐富的人?成爲這個領域的專家,你就會獲得大量業務。
  • 在各種會議上和用戶組中哪些話題最常出現?
  • 哪類問題你回覆的最多,無論是針對同事還是在csdn這樣的網站上?

· 無論你做什麼,首先確保你選定了某些專業方向。市場規模決定了你的方向有多麼具體,所以一定要讓它儘可能地具體。你會在這個細分市場上更搶手。別擔心,如果你需要,隨時可以改變你的專業方向。

1.4 精通多種語言的程序員該怎麼辦

· 即使我推薦走 “ 專業化 ” 道路,也不代表我認爲你不應該同時具備廣泛的技能。
· 這二者看起來似乎是矛盾的,其實並非如此。做一個技術全面、多才多藝的軟件開發人員非常棒。能夠使用多項技術和多種編程語言,有助於你的職業發展,能讓你比那些僅瞭解一項技術或一種編程語言的軟件開發人員更有價值。然而,這種 “ 萬金油 ” 式的人才在市場上並不吃香。
· 學富五車,或者靈活變通並同時仍有所專長讓自己卓爾不羣。如果你非要二選一,那先從專業化開始,再拓展分支。(先成爲某一領域的專業人士,然後在拓展其他的領域。

2. 如何成爲專業人士

· 前面說的專業化是如何做事,這一節講的專業化是如何做人。
· 成爲專業人士的全部在於:引人注目,恪盡職守,以及不屈服於挫折。成爲專業人士,需要你克服自身的缺點,靜下心來作出儘可能最好的作品。

2.1 什麼是專業人士

· 簡而言之,專業人士會嚴肅對待自己的責任和事業,願意作出艱難的選擇去做自己認爲是正確的事情 —— 往往還要自己承擔代價。
· 專業人士是我們都應該去努力的目標。專業人士是可以依靠的人,他們恪盡職守,精益求精,也不曲意逢迎。專業人士會讓你知道什麼事情是不可能的,什麼路徑是錯誤的。
· 專業人士不可能事事皆通,但他一定會潛心鑽研匠藝,旨在錘鍊自己的技能。專業人士會坦承自己不知道答案,但是你可以信賴他會找到答案。
· 專業人士最重要的一點,也許就是持續穩定。專業人士爲自己的工作設置了很高的質量標準,你可以期待他每一天都持之以恆地堅守標準。
· 下表中列出了專業人士和外行的差異:

專業人士 外行
遵守自己的原則 讓幹什麼就幹什麼
專注於正確完成工作 專注於完成工作
不懼怕承認自己錯了,不會文過飾非 不懂裝懂
持續穩定 無法預測,不可靠
用於承擔責任 迴避責任

2.2 成爲專業人士

· 如果想成爲一名專業人士,你需要培養自己的專業習慣。
· 例如在“每日站立會議” 提前寫好要說的內容。而不是像我們大多數人那樣開會時隨口說。這是專業開發人員要養成的習慣。
· 另一個強大的習慣是時間管理技能。每天提前做好計劃,就能養成有效管理時間的習慣。專業人士知道每天必須要做什麼工作,並且能估算出每項工作大約要花多長時間。
· 這只是對於成爲專業的軟件開發人員至關重要的習慣的兩個例子。爲了達到自己在工作中所需的專業化水平,你得明確自己要養成哪種習慣。

2.3 堅守正道

· 一位專業人士需要知道在什麼時候說 “ 不 ” ,即使是面對自己的老闆。因爲,正如 Bob Martin 所說,專業人士有着不可逾越的底線。有時,堅守底線甚至意味着被炒魷魚,但這就是你被稱爲 “ 專業人士 ” 要付出的代價。短期內,這可能是痛苦的,但如果你能持之以恆地選擇堅守正道,那麼與選擇其他路線相比,你的職業生涯會得到更大的回報,並且你也能睡個好覺。
· 有時候,專業人士必須對工作的優先級做出艱難的抉擇。不專業的開發人員經常浪費時間去畫蛇添足,因爲他們要麼不能確定下一步要做什麼,要麼他們得一直讓別人來幫自己設定工作的優先級。專業人士會評估需要完成的工作,判定優先級後再開始工作。

2.4 追求品質,完善自我

· 作爲一位專業人士,你必須不斷改善和提高自己的工作品質。你或許不能一直達到自己期望的工作品質,但隨着時間的推移,持之以恆地堅持下,你終究會達到自己設定的標準。許多軟件開發人員犯的一個巨大錯誤就是,當無法達到標準時,他們不是完善自己、迎接挑戰,而是降低標準。

3.總結

· 本文介紹瞭如何在專業化的道路上穩步前行。還介紹瞭如何成爲專業人士。成爲專業的軟件開發人員是多麼重要,而成爲專業人士,則需要堅守底線,養成習慣,提升品質。需積跬步,以致千里。從專業化,到專業人士,最後成爲專家。

下一篇:https://blog.csdn.net/weixin_42523774/article/details/104085852

發佈了15 篇原創文章 · 獲贊 19 · 訪問量 4675
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章