30K程序員的簡述:如何成為高級開發人員
這篇文章適用於所有在這個行業已經有了幾年時間後想要在職業生涯中取得突破的開發人員,編程人員和程序員(或者你可能剛剛開始,但希望你能看到你的路徑)。本文適合那些有著簡單願望的人:你想成為一名高級開發人員,並希望在你的領域中脫穎而出。在閱讀完這篇文章後,您將獲得一組具有最佳資源列表的路徑,供您升級並成為高級開發人員。
免責聲明:與生活中的所有事物一樣,您可以隨時設定自己的路徑。盡管這不是唯一的方法,但是這是我在自己的職業生涯中發現的一種方法,並且通過我在過去一年中與我認為是社區中資深和受人尊敬的程序員的人進行了許多對話和訪談。我已經積累了這篇文章的所有共同點。所有這些不僅僅是一篇關於如何成為更好的開發人員的文章。這是一個如何指導您如何使用高效實用的工具來優化您的時間,從而讓您從生活中獲得最大收益。將來你可以在任何地方進行這種學習
作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:638302184,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿裏面試題、面試經驗,討論技術, 大家一起交流學習成長!希望幫助開發者少走彎路。
我們想要什麽?
1,我們都努力做好工作。該聲明的具體內容可能取決於個人。但是,大多數人可以同意一些常見的事情:
2,我們不希望經歷被視為“無能”的生活,
3,我們希望得到我們同事的尊重
4,我們希望感覺自己聰明,並且做到了
5,我們想感受贊賞
為了實現上述目標,我們不能僅僅停留在我們的能力上,並期望事情會發生。特別是在編程領域,技術在不斷變化,我們掌握的信息量非常之大,我們希望將註意力集中在成長和學習上,而不是消耗殆盡。隨著越來越多的開發者走出大學和訓練營,我們需要保持技能的銳利,而讓自己與眾不同的方法是在學習時保持智能和高效。談得很多,讓我們一起潛入。我們將一如既往地嘗試並采取最好的方法。
什麽是高級開發人員?
作為一個可以使用十種不同編程語言編寫代碼並構建了自己版本的多語言編程人員,並不會讓您成為高級開發人員(盡管您非常有才華)。這是因為高級開發人員是為公司帶來增量利益的人員。它是一個能夠讓周圍的人變得更好,並且能夠長期願景,實現並持續創造商業價值的人。您可以了解全球所有功能強大的編程技術,但如果您無法與團隊溝通,或者無法專註於為客戶提供實際價值,則您不是高級開發人員。這是重要的一點:你為貴公司/創業/企業帶來了什麽價值,如果你是為數不多的能為您的公司或企業帶來數量級(有些人喜歡10倍的想法)價值的人之一,那麽你是一位高級開發人員。高級開發人員不僅僅是另一個職位,而是能夠利用您的經驗為利益相關方提供真正的利益。
我如何成為一個高級程序員?得到它。
這是你們所有人一直在等待的部分(或者我想象的是......也許沒人讀這個......在這種情況下,我會一直跟自己說話)。讓我們深入了解一下,看看我們是否能夠完成所有事情。按照以下資源,花一些時間了解每個主題。如果你能夠積極研究下面的技能,你將遠遠領先於其他任何人。我把這稱為開發者邊緣:在一個領域總會有比你更有經驗的人,但是你可以更聰明地工作,並以更有效的方式積累不同的技能組合,讓你分開。這不僅使你成為一個更好的開發者,它還增加了你的整體幸福感,因為你正在為人們提供真正的價值。
學習中經常被忽視的一個方面是,你需要專註於一件事而專註於一件事。然而,這不是生活的方式。生活中非常罕見,你只需要一種技能。特別是在像技術領域發生變化的領域(誰知道機器學習工程師將在5年內完成什麽?),您需要擁有多種可轉換技能,這將轉化為適應性。
這些是您需要被視為高級開發人員的6項核心技能:
1.技術技能
這通常是大多數人想到的第一個技巧。希望通過這一點你相信它是一個更大的餡餅的一小部分。不要誤解我的意思,你確實需要這個技能,而且你不能偽造它。然而,你可以聰明地關註你關註的內容。高級開發人員花時間了解Why的技術。為什麽這個問題存在?為什麽這個框架存在?這個圖書館解決什麽問題?作為一名開發人員,您需要對所有有利於開發生命周期的工具和想法有所了解,並選擇在項目中獲得最大利益的工具。他們沒有專註於這個超級奇特的測試框架的每一個新版本功能,而是試圖為公司解決實際問題時專註於每個測試框架的優缺點。他們會問“我們的持續過程中可以改進哪些方面以提供更好的產品?”
他們也明白事情是如何連接的。為了開始這樣思考,思維導圖是一個很好的熟悉工具。它本質上是一種工具,可以用來將學習推向更高層次。思維導圖幫助你的大腦在不同的想法和技術之間建立聯系。
舉個例子:如果我是一個iOS開發,一旦掌握了行業中的工具和技術,就需要制定產品在擴展時面臨哪些問題的思路圖,以及何時過早優化是一件壞事。通過在上述所有方面掌握這種關系,您可以通過廣泛的視角而不是狹隘的焦點,將公司的資源集中在最重要的事情上。
如果你是從訓練營走出來的,或者你沒有計算機科學學位,那麽你需要開始學習數據結構,算法和其他計算機科學主題。為什麽?因為盡管框架和技術發生了變化,但計算機科學的主要原則(大部分)保持不變。通過理解這些更高層次的主題,您可以再次看到,大多數軟件問題和良好實踐在不同的語言和時間中通常是不變的。這本書(Rob Conery)和這本書(Gayle Laakmann McDowell)可能是我發現提升你的技能的最好工具。雖然它們只是表面上的,但它將為今後的學習奠定基礎。
開始收聽軟件工程日報等播客,這樣您就可以了解整個行業的當前問題和未來前景。
最後,閱讀這篇文章從純粹技術角度來看部分技巧。
2.團隊技能
這是一個經常被忽視的技巧。你如何與團隊成員合作?你是否對PR評論感到憤怒和意見,並對有其做出貢獻?或者你是否體貼,合作和鼓勵你的團隊成員?高級開發人員沒有大的自負。他們知道他們很好,不需要向他人證明自己。他們編寫幹凈簡單的代碼,而不是編寫代碼來炫耀其他團隊成員無法讀懂的技能。他們願意幫助別人,當他們不知道某事時,他們願意提問。
這就是情商出現的地方。社會心理學是提高這種技能的重要工具,沒有什麽比“ 如何贏得朋友和影響力的人”更好。記住:你如何能讓你身邊的人變得更好?如果你的團隊中有5人,那麽1 + 1 + 1 + 1 + 1應該大於5,因為你可以讓你身邊的人變得更好(現在我從數學純粹主義者那裏得到邪惡的眼睛......)。
如果你是任何一個項目的參與者,或者你參與的任何一個團隊,那麽你就能夠與你的隊友相處並讓其他人一起工作,你已經遠遠領先於大多數人。您還可以讓經理,主管,Scrum大師和CTO的生活更輕松。那些是得到晉升的人,更重要的是那些是為公司提供最大價值的人。
3.客戶/用戶技能
您是否能夠與客戶或用戶交談,並清楚地了解他們的需求?當他們向你提出一些建議時,你是否了解他們面臨的問題?高級開發人員是一個可以獨立與客戶並可以成為優秀聽眾的人,然後就最佳步驟向前邁進提供建議。他們在組建關系方面非常出色,他們不會將意見推給客戶。他們明白,目標是一個非零和遊戲,客戶和開發者都可以從互動中獲益。
最後,您需要能夠向非技術人員解釋復雜的編程概念。通過觀看大神分解復雜的話題開始開發這項技能。雖然他們正在教練困難的話題,但你可以觀察他們之間的一些共同點。
4.成長技巧
高級開發人員每天都在學習新的東西。這並不意味著他們每天花14小時坐在電腦前閱讀文章。他們比這更有效率。他們一直在尋找與其他開發人員交談,提出問題或探索新主題。他們不專註於一個技能組合。在做一件事情時,你可以成為世界上最好的人,但是如果你不知道整個範圍或者對你解決什麽問題有一個大概的了解,那麽你就不再是最好的了。
他們有一個成長的思維模式(相信智力是可塑的),他們相信有意識的練習。他們明白,學習一切都是不可能的,他們選擇把時間花在他們喜歡的事情和最重要的事情上。
他們不只是說“哦,我討厭這個!”大多數時候,說這些東西的人會因為不完全理解而憎恨某些東西。例如,不要只說“我討厭Switf。只有部分的開發人員使用Switf“並且聲名顯赫。高級開發人員說,“Switf在iOS開發方面發揮了重要作用”。他們的觀點可以改變,因為他們喜歡從別人那裏學習,並且在他們決定“憎恨”某些事物之前嘗試新的概念。
5.銷售/面試技巧
高級開發人員能夠讓自己擔任高級職位,因為他們能夠與做出這些決策的人進行交流和銷售。你能夠看到你的雇主或企業的需求,並且你可以向他們灌輸你是解決問題的人的信心。你有信心,但謙虛。高級開發人員也有足夠的信心承擔這些角色,並能夠承受壓力。他們也知道,如果你永遠不會問答案總是否定的,那麽他們會要求晉升或挑戰他們的角色,因為他們認為他們是適合工作的人選。雖然銷售和談判對某些人來說可能會很不起眼,但這是您需要掌握的寶貴技能。有一篇很棒的文章。雖然它談到薪酬談判,但其中一些原則可以應用於其他情況。
6.社區技能
高級開發人員為開發者社區做出貢獻 ,無論是做技術講座,在聚會上發言,為開源貢獻,甚至寫文章。他們是與行業共享信息的人。他們並不是只關在工作空間的封閉盒子裏,而是和其他社區的人交流,讓他們拓寬視野。這有點像旅行:你遇到並且交談的文化越多,你越了解人與人之間的相似和不同之處,並且越是開始欣賞它。
最後一件事
如果你能夠積極工作上述技巧,你會立即充滿激情。
我已經從這個列表中留下了最重要的主題:你喜歡你在做什麽。
如果你不喜歡每天學習有關計算機科學和軟件開發的知識,那麽你永遠不會成為高級開發人員,因為從長遠來看,你不會有更好的動力。如果你是這麽好,他們不能忽略你,你明白激情已被過度炒作。真正的激情來自你掌握了一項技能。你已經努力成為精通領域的領導者。你已經掌握了這些技能,現在你提供給他人的尊重和好處促使你變得越來越好,從而獲得更多這樣的好感受。你就是這樣開發的 你對工作的熱情。
結論
如果你已經學會了編碼,並且正在尋找職業生涯的下一步,那麽你需要以不同的方式思考。你怎麽能夠脫穎而出?你怎樣才能成長?你如何能夠幫助人們解決實際問題並提供價值?你不做簡單的事情就會成為高級開發人員。你做的事情,推動和挑戰你的頭腦和舒適水平。你要學習,並且要一天一天地做出適應,就像你第一次寫了第一段代碼一樣。每一步都很小,但是在一生中,一小步就會變成幾公裏。
永遠不要停止閱讀,永遠不要停止學習,但也要知道什麽是你寶貴的時間,什麽不寶貴。
作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流群:638302184,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿裏面試題、面試經驗,討論技術, 大家一起交流學習成長!
30K程序員的簡述:如何成為高級開發人員