常常看到 iOS 開發人員(各類能力水平都有)在網上諮詢有關專業和財務發展方面的建議。 這些問題有一個共同點:前面都會說「我如今遇到了職業困境」,而後會問一些諸如「我是否應該學習Android或者後端開發?」這樣的問題。 這些都說明 iOS 開發人員在積極尋求職業發展路徑,這固然很好。 不過不少人都選擇了次優解,好比說成爲更「通常化(generalized)」的開發人員,去不斷使用新技術和框架。 而實際上,據咱們瞭解,更「專業化」的開發人員(掌握特定技術和基礎知識)每每能得到更好的結果。程序員
在本文中,咱們整理了以前與許多 iOS 開發人員研究和討論的信息,總結出一些關鍵點,但願能幫助 iOS 開發人員更好地作職業規劃,以達到本身的職業和財務目標。編程
這些關鍵看法包括:
• 不切實際的指望如何阻止 iOS 開發人員的專業發展;
• iOS開發人員最多見的挑戰和指望;
• iOS開發人員能夠採起哪些措施來預防和/或克服這些挑戰,並讓職業發展更豐富和充實後端
咱們看到許多開發人員面臨的最大問題之一,是對實現目標所需的時間設定了不切實際的指望。 必須瞭解獲取特定技能所需的大致時間。 另外,要意識到每一個人的學習速度都是不同的。 在許多狀況下,開發人員都會高估本身的學習速度。架構
最後因爲沒有達到本身的指望,他們最終選擇放棄學習。框架
正如視頻「Reason Why You Don’t Improve As a Software Developer」中所討論的那樣,開發人員沒法持續地發展職業的主要緣由,是他們過早地中止了學習。他們在頓悟那一刻以前放棄了。ide
爲何會這樣呢?關鍵緣由之一是設定了不切實際的指望。模塊化
例如,咱們和許多但願提升技能的人交流過,可是經過閱讀書籍,觀看視頻甚至是在某種狀況下被提高爲高級職位並承擔更多責任來達到提高技能的目的的狀況卻不多。學習
卓越的技能來源於不斷的學習、實踐和執行。測試
須要明白的是,提高能力須要時間,並且方式是多樣的。例如,若是你的目標是學習 TDD,則須要認識到學習過程自己是促進你進步的關鍵因素。職業規劃
改善學習效果,如更長的學習時間、更快的學習、尋找更好的資源、刻意的練習並運用所學的知識,這些都是實現目標的催化劑。 儘管這些可能並不直接涉及 TDD,但倒是掌握 TDD 或其它任何技能技術所須要的基本方法。將學習看做一個過程。
換句話說,能夠學習如何讓學習更高效。
iOS 開發人員中止學習過程的另外一個緣由是沒有足夠的業餘時間。
若是認爲學習時間並不是必須的(實際上倒是提高專業價值和財務回報的重要組成部分),那麼天然會指望早點結束學習過程。 然而,開發人員一般要面對實際能力與指望能力之間的落差。 學習需求是必不可少的,由於這是你的專業技能提高的保證,能夠改進以產生更好的效果(和回報)。
在上圖中,咱們突出顯示了綠線(標記爲Uncomfortable zone)的傾斜度。 這是學習過程當中遇到陌生的材料、思想、原理的階段。 在這個階段,表面上成長值和生產力都是急劇降低的,所以不少人在突破這一階段以前就退出了。
在學習新知識的時候,陷入困境是常有且天然的事。 因爲對將來投資回報的不肯定,因此中止學習可能更有吸引力。 咱們可能會常常問本身:「若是我只是浪費時間怎麼辦?」,「這值得麼?」
好消息是,你並不孤單,也不是處於「未知領域」。 行業中的許多開發人員都已經掌握了領域的高級知識,例如 TDD 和模塊化體系結構。 所以,在學習新技能時,若是對投資回報有疑問,那麼能夠去研究他們的職業、文章、書籍、講座,看看是否值得。 另外,也能夠經過某些渠道隨時去向他們請教!
咱們常常會遇到那些想要提高技能並指望獲取更好回報的 iOS 開發人員,可是,他們並不知道如何去實現目標。 他們都想要一個出色的職業生涯,因此自滿不是問題。 缺少學習投入的緣由不少時候是沒有足夠的動力,去證實學習是一項合理的投資。 將這些時間資源分配給更溫馨或更熟悉的方面,以得到更直接的短時間幸福感和效用彷佛是一項更好的投資(實際上長期來看潛在巨大的損失)。
「學習XYZ很難。也許我應該把時間花在更有趣的事情上。」
若是你有這樣的想法,不要難過,這是再天然不過的事情。 即便是那些最有成就的人,也會面對這樣的狀況。 他們只是擅長忽略這些。 當他們愈來愈接近實現其雄心勃勃的目標時,忽略這些想法,他們會得到更大的知足感。
咱們收到不少來自開發人員的郵件和評論,他們以爲本身的職業生涯遇到了瓶頸。 這些開發人員包含各類資歷級別、不一樣的教育背景,包括自學成才的程序員、CS 學位畢業生、和訓練營畢業生。
這些人員面臨的最廣泛的挑戰包括:
• 與其餘開發人員、業務/產品人員的跨團隊無效溝通;
• 對不切實際的指望負責,因爲失敗的結果而被責備;
• 缺少空閒時間和資源來投資於能力培訓;
• 來自業務方的對處理繼承的「舊」代碼不切實際的指望;
• 缺少適當的流程;
• 薪酬倒掛現象;
• 將 iOS 的特定知識轉換到其它平臺;
許多開發人員不會預知到這些問題,也不會嘗試訓練去面對這些問題。 另外一方面,當咱們問及他們的目標和願望時,咱們收到的最受歡迎的答案是:
• 與知識淵博的專業人員在一個團隊,這樣有人能夠教他們如何有效地建立和維護高質量的代碼庫;
• 有力的領導;
• 與傑出的人一塊兒作有價值的項目;
• 在能爲他們專業和我的成長方面提供發展空間和資源的公司中工做;
• 可以得到指導,來促進職業和我的成長;
• 提高技能,成爲同行眼中的傑出開發者;
• 得到領導 iOS 開發團隊的經驗;
• 提升薪資/資金/津貼;
• 更靈活的時間表,或者遠程工做;
• 掌握軟件架構並可以有效建立大型應用程序;
• 提升自動化測試的技術能力和效率;
• 瞭解如何有效地使用和改進老代碼庫;
• 更少的壓力
在咱們的整個職業生涯中,當咱們經歷了許多後,就能夠深入理解並將這些問題與指望聯繫在一塊兒。 其中許多問題與編程領域並無直接關係,相反,它們與溝通和經濟學有關。 編程只是專業 iOS 開發人員一輩子中的一項平常活動。
iOS 開發人員在其職業生涯中面臨的潛在挑戰,能夠從三個層面來概述:
• 願望:「咱們的目標是創建一個可持續盈利的職業,並打造出色的應用程序」
• 實現:「個人許多專業挑戰與構建應用程序無關」
• 行動:「我不知道如何應用這些挑戰(遇到困境),可是要想更快地發展本身的職業,我確實知道我必須找到答案」
你越快經歷這些,越能夠更快實現本身的職業目標。
許多 iOS 開發人員職業發展的共同模式是,最初在 iOS 市場中爭取機會,而後是快速的職業(和薪資)發展,而後成爲中高級開發人員後停滯不前。
許多 iOS 開發人員在平常的職業生涯中都會經歷挫折,遇到困境。 他們不知道該如何作,或者在哪裏尋求解決方案。最重要的是,不些不只僅是技術挑戰。
軟件開發是一種社會活動,它伴隨着各類挑戰。 在一個參與者愈來愈多,且有許多重大挑戰的工做市場中,可以很好地協做並以同理心、正直、經濟學爲指導的開發人員,將會愈來愈吃香。
咱們整理許多 iOS 開發人員的職業生涯時認識到了這種現象,併成立了 Essential Developer Academy,以提供解決方案並加快全球開發人員的職業發展速度。 經過不斷研究那些最成功的學生,咱們獲得結論,iOS 開發人員須要具有兩個基本要素:
• 精心思考的學習,整合了卓越的技術和領導能力,以應對現實中的業務挑戰
• 協調長期效果和短時間收穫
iOS 市場對卓越技術和領導技能的需求正在飛漲。 可是,只有少數人能掌握有效應對這些挑戰的技能。 忽略這樣的市場需求將停滯不前,同時在經濟上也會損失。
當你提高技能來應對業務挑戰,並有效地進行自我營銷時,你將成爲公司的重要資產。
做爲 iOS 開發人員,咱們一直在幫助 iOS 開發人員擺脫薪水/市場的限制,並實現專業和帳務的獨立。 可是,要實現這些並不容易。 咱們瞭解到,並不是每一個 iOS 開發人員都會爲實現本身的夢想付出一切。
爲了最大化並加速你的職業發展,建議你能找到幫助你成長的方式方法,發揮出你最大的潛力。而後,不斷學習、實踐和執行!