99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

到底怎樣才能成長為一名軟件教練呢

華為開發(fā)者社區(qū) ? 來源:華為開發(fā)者社區(qū) ? 作者:華為云小月老師 ? 2020-11-18 10:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

軟件正在改變世界,也在改變著華為。近幾年華為招聘了眾多業(yè)界軟件精英,以軟件教練身份加入,著力提升自身軟件能力。那么,到底怎樣才能成長為一名軟件教練呢?本文作者以自身經(jīng)驗之談,為各位開發(fā)者們提供一條新思路……

師傅領(lǐng)進(jìn)門,修行在個人。我在本文中只指出道路,相當(dāng)于一次將全套功法給你。但修行的路還請自己努力。不明白的地方,Google是個金手指。我會看大家對具體哪里更感興趣,后續(xù)將其展開講一下,作為一個系列。大家可以留言給我。

第一階段對應(yīng)煉氣期。你要掌握:

1, Java:俗稱JAVASE。不僅僅指Java語法,還包括JDK的使用。這塊知識非常沉重也非常重要。沉下心花幾年時間學(xué)好它。推薦學(xué)習(xí)方式:a) 《Effective Java》。讓你感受下Java里面的彎彎繞繞,并不是語法表現(xiàn)的那樣傻白甜。 b) SCJP考試?,F(xiàn)在可能改名為OCJP了也說不定。全方位讓你了解Java及里面的細(xì)節(jié)。非常重要。 c) 《并發(fā)編程實踐》。必讀刊物。多核CPU自帶L2 cache卻共享內(nèi)存和線程,復(fù)雜的鎖,一行Java代碼被編譯為多行機器指令而CPU在任意機器指令間都可切換線程。面對這么復(fù)雜的硬件環(huán)境,Java是如何設(shè)計保證程序正確的。

2, 敏捷開發(fā):敏捷開發(fā)不是靠書學(xué)的(雖然也有書),而是靠實踐來感悟的。就像賣油翁,不去倒油光靠看老翁寫的心得,永遠(yuǎn)不會倒油。

3, 算法與數(shù)據(jù)結(jié)構(gòu):a) Leetcode刷題。雖然只有極少的開發(fā)會用到算法,但這是能力的體現(xiàn)。不要以為就是個鏈表反轉(zhuǎn),至少要把動態(tài)規(guī)劃級別的算法搞懂。 b) 《算法導(dǎo)論》。讀讀就行了。希望你能讀懂。

4, 測試:要了解測試同學(xué)如何寫測試用例,如何保障code coverage,如何做自動化。

第二階段進(jìn)階至筑基期:

當(dāng)上面了解的七七八八后,你自然而然就會產(chǎn)生心靈上的感悟從而進(jìn)階至筑基期。你要掌握:

1, 設(shè)計模式:《設(shè)計模式》,Gang Of Four。四桿老槍的設(shè)計模式(我可沒開車),教會你面對各種經(jīng)典場景如何構(gòu)造類群。

2, JVM原理:《深入理解Java虛擬機》。我剛工作時,大概06年,如果那時候有人說對JVM原理很懂,那就屬于國內(nèi)頂尖的技術(shù)人才了?,F(xiàn)在知識的獲取方式越來越方便了,比如閱讀本文。你需要了解JVM如何使用內(nèi)存,如何GC,如何調(diào)整啟動參數(shù),如何查看各種dump文件等等。

3, 網(wǎng)絡(luò)編程:書籍暫時沒有推薦。反正就是要搞懂HTTP/WebSocket與TCPIP與Socket的關(guān)系等知識。

4, 分布式系統(tǒng)中各種中間件:a) Dubbo。國內(nèi)最知名開源項目。無中心化分布式架構(gòu)的核心。取代了IBM的SOA產(chǎn)品(中心化架構(gòu)造成性能瓶頸)。 b) ZooKeeper。Zookeeper小紅書。分布式系統(tǒng)數(shù)據(jù)一致性協(xié)調(diào)工具。單機進(jìn)程,代碼執(zhí)行被認(rèn)為是完全可靠的,要么執(zhí)行成功要么執(zhí)行失敗。而到分布式系統(tǒng),網(wǎng)絡(luò)調(diào)用偏多出來一個超時。分布式系統(tǒng)之所以比單進(jìn)程復(fù)雜那么那么多,都是這獨獨一個超時鬧的。理解CAP,理解分布式系統(tǒng)數(shù)據(jù)一致性,是分布式系統(tǒng)不出錯的保障。你從來沒看見銀行轉(zhuǎn)賬時給你少轉(zhuǎn)過一分錢吧? c) Kafka?!禟afka權(quán)威指南》。要理解其為什么那么快又那么可靠又那么存儲空間大。同時也是理解冪等性最方便的系統(tǒng)。 d) Redis?!禦edis設(shè)計與實現(xiàn)》。了解了前述的知識,Redis就是個菜。無非多了個流言協(xié)議,一致性哈希環(huán),跳躍表,哨兵,持久化方式而已。 e) MySQL(假裝其也是中間件好了)。

《MySQL高性能》,《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》。要了解紅黑樹和索引的實現(xiàn)方式,了解innodb存儲引擎的工作原理,你才能更好的理解explain sql后出來的各種回顯結(jié)果,幫助你更好調(diào)優(yōu)sql。MyISAM被廢棄了,你可以少看一本書了,偷著樂吧,少年。 f) Nginx。之所以能有多個冪等節(jié)點存在,就全靠它了。學(xué)一下它的單線程技術(shù)。明明是單線程卻能做到高性能?!拔揖褪强床簧夏愣嗑€程,咋啦?”唯有真正理解計算機原理才能返璞歸真。 g) Netty。《Netty權(quán)威指南》。你有沒有感覺到在2002年后的某一年,就在短短一兩年內(nèi),計算機網(wǎng)絡(luò)突然提速了?02年JDK1.4,04年Netty。本來計算機網(wǎng)絡(luò)性能被阻塞在IO上。但NIO大幅度提升了IO效率。

Go語言為什么曾那么火?它的MPG模型還是找的IO阻塞的茬,使得多線程并發(fā)會更快。學(xué)一下Linux IO模型,零拷貝技術(shù)。理解計算機原理才能做到真正性能優(yōu)化。 我猜測,在JDK支持了NIO之后,Tomcat等web容器很快就進(jìn)行了IO模塊的更新,之后各大網(wǎng)站的Tomcat跟著升級,于是在全世界硬件資源沒變的情況下,網(wǎng)絡(luò)站點服務(wù)器的并發(fā)響應(yīng)能力大幅提升。 順便說一句為什么Java語言會長盛不衰。因為任何新語言的特性,比如Go的MPG模型,Reactive模式等,很快就會被Java抄過來。Java已有AKKA并成功用于Flink等知名項目了。而Go想抄Java的好處,短時間很難達(dá)成。 h) Flume。一個日志收集傳輸系統(tǒng)。 i) ProtoBuf。序列化也是性能中需要重要關(guān)注的地方。 j) Tomcat。太有名了。學(xué)學(xué)其classloader的設(shè)計。

5, JAVAEE依然有用的知識:比如servlet,JMX等。哎,一個時代的落幕。

6, 編譯原理與操作系統(tǒng):我假設(shè)你上大學(xué)時候就學(xué)過了。沒有的話,至少操作系統(tǒng)要讀一下。就讀清華大學(xué)的本科教材吧。

7, 分布式數(shù)據(jù)庫體系架構(gòu):第4條講的是內(nèi)存網(wǎng)絡(luò)的分布式架構(gòu)。這條要講持久化存儲的分布式架構(gòu)。分庫分表,異構(gòu)索引,數(shù)據(jù)庫主備等。《數(shù)據(jù)密集型系統(tǒng)設(shè)計》,這本書很贊,堪稱存儲設(shè)計的通史。

8, Spirng and Mybatis:怎么說呢,你能讀懂源代碼當(dāng)然更好。

9, 前端與CDN:至少要了解一下。

10,UML建模:教會你如何認(rèn)識世界并轉(zhuǎn)到計算機系統(tǒng)里來?!禪ML用戶指南》。

上個境界,是最難晉升的了。多少開發(fā)們被阻在這步一輩子不得前進(jìn)了。因為既要承擔(dān)繁重的開發(fā)任務(wù),又要學(xué)習(xí)那么多的知識,還要處理個人的生活,太難了。這些知識對你的提升又只是相加,不是相乘的關(guān)系。熬過去后海闊天空。

第三階段金丹期:

好了你現(xiàn)在是金丹期了,你的很多要繼續(xù)學(xué)的知識,都是靠前面給你打基礎(chǔ)的,你會發(fā)現(xiàn)你的提升曲線斜率越來越抖了。你要掌握:

1, 架構(gòu)設(shè)計方法論:做事要有章法?!盾浖軜?gòu)設(shè)計》。

2, 領(lǐng)域驅(qū)動設(shè)計:軟件是真實世界在計算機中的虛擬映射。如何讓軟件更貼近真實世界,讀一下Eric Evans的《領(lǐng)域驅(qū)動設(shè)計》。很晦澀,不太容易懂。

3, 中臺:中臺這個詞現(xiàn)在這么火,怎能不提一下。平臺是啥也許你還不清楚,那就先了解一下中臺。

4, 高性能調(diào)優(yōu):還是那句話,真正了解計算機及runtime的本質(zhì),才能做到性能調(diào)優(yōu)或Hacker。《性能之巔》。

5, 穩(wěn)定性建設(shè):湊合看《逆流而上》。但是穩(wěn)定性和上述的性能調(diào)優(yōu),是真正體現(xiàn)水平的地方。還有Google的《Google SRE》。

6, 兩地三中心容災(zāi)系統(tǒng)建設(shè):這個目前我還不清楚有什么書。如果確實沒有的話,可以趁機出一本搶占市場。

7, 全鏈路壓測:又是測試。但又不僅僅是測試。對系統(tǒng)的性能瓶頸節(jié)點的探查,對系統(tǒng)QPS的掌控。單單一個起壓機就不容易設(shè)計。

8, 大數(shù)據(jù):首先,你需要跨多個領(lǐng)域開始了解更多的知識。其次,你會發(fā)現(xiàn)我對技術(shù)的介紹粒度開始越來越粗了。因為你之前打的基礎(chǔ) - 粗粒度之下用來支撐的細(xì)粒度知識,已經(jīng)生效了。再然后就是我會減少推薦書籍。到了這里你應(yīng)該形成自己的知識體系了,也就會找書了。離線海量數(shù)據(jù)存儲與計算的Hadoop。將Hadoop變的更易用些的HIVE。在線海量數(shù)據(jù)存儲的HBase。批計算的Spark。流計算的Flink。自成一套ELK,尤其大名鼎鼎彈性搜索。時序數(shù)據(jù)庫Druid。

9, 數(shù)據(jù)倉庫:大數(shù)據(jù)都學(xué)了,順便也就把數(shù)倉學(xué)了唄。順手的事而已。

10,IC:HCIE,這個我就不班門弄斧了。

11,網(wǎng)絡(luò)安全:我也不懂。汗。

12,Linux OS。可不僅僅是使用命令操作系統(tǒng)而已。當(dāng)然,即使是這樣也不容易了。

第四階段化神期:

當(dāng)你還要再繼續(xù)晉升,就涉及到我也不完全理解的境界了。

1, 中間件的實現(xiàn)細(xì)節(jié):作為業(yè)務(wù)側(cè)的技術(shù)架構(gòu)師,通常會把存儲和網(wǎng)絡(luò)的需求下壓給中間件團隊。但是他們是怎么實現(xiàn)的呢?細(xì)節(jié)重要的點是什么?

2, 使用Master Slave模式,Spark等是如何實現(xiàn)分布式任務(wù)分解并確保計算正確的?

3, Docker虛擬化技術(shù)。

4, Yarn的資源分配技術(shù)。

5, 計算機網(wǎng)絡(luò)等。

6, 再擴展一下技術(shù)領(lǐng)域,觸角伸到AI領(lǐng)域。那么數(shù)學(xué)基礎(chǔ),各種論文與算法實現(xiàn)。又或者使用算法來賦能某個具體的業(yè)務(wù)領(lǐng)域比如AI賦能新零售。

7, 也可以往IOT方向發(fā)展。隨著5G的發(fā)展,這個應(yīng)該也很火。持續(xù)看好。

責(zé)任編輯:xj

原文標(biāo)題:從碼農(nóng)到教練,軟件神功咋個煉?

文章出處:【微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2988

    瀏覽量

    109448
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    5150

    瀏覽量

    89184
  • 開發(fā)者
    +關(guān)注

    關(guān)注

    1

    文章

    641

    瀏覽量

    17520
  • 5G
    5G
    +關(guān)注

    關(guān)注

    1360

    文章

    48808

    瀏覽量

    573457

原文標(biāo)題:從碼農(nóng)到教練,軟件神功咋個煉?

文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    將CYW20706基于硅的藍(lán)牙模塊(CYBT-343151-02)連接到定制板上的MCU,怎樣才能將鏈接配置未確認(rèn)數(shù)據(jù)模式?

    我將 CYW20706 基于硅的藍(lán)牙模塊(CYBT-343151-02)連接到定制板上的 MCU。 它在確認(rèn)數(shù)據(jù)模式下工作,沒有問題 但是我怎樣才能將鏈接配置未確認(rèn)數(shù)據(jù)模式
    發(fā)表于 06-27 08:23

    如何成為一名嵌入式軟件工程師?

    如何成為一名嵌入式軟件工程師? 01明確崗位的角色與定位 嵌入式軟件工程師主要負(fù)責(zé)開發(fā)運行在特定硬件平臺上的軟件,這些軟件通常與硬件緊密集
    發(fā)表于 04-15 14:37

    怎樣才能通過matlab實現(xiàn)DLP4500的連接與控制?

    做結(jié)構(gòu)光的,希望通過個界面完成相機與投影儀的同步投影與拍攝模式,相機部分連接控制模塊做的差不多了,想問怎樣才能通過matlab實現(xiàn)DLP4500的連接與控制?
    發(fā)表于 03-03 06:52

    怎樣才能更好享受到8K視頻帶來的優(yōu)勢

    觀看4K現(xiàn)在已經(jīng)非常普遍了,隨著對音視頻要求的不斷提高,各大設(shè)備也在著力發(fā)展8K視頻。本期我們將從觀看8K的工具入手,來聊聊怎樣才能更好享受到8K視頻帶來的優(yōu)勢。
    的頭像 發(fā)表于 02-21 09:30 ?798次閱讀

    DAC7678怎樣才能完全輸出0電平?

    按照datasheet寫的驅(qū)動,現(xiàn)在有個問題直解決不了,對DAC7678 使用軟件復(fù)位或CLR引腳清除都不能實現(xiàn)輸出完全是0電平,而是0.5mV-1.5V不等的電壓,幾個通道電壓值不樣,但是都有; 求指點,
    發(fā)表于 01-24 06:09

    TVP7002怎樣才能將分辨率正確的讀回?

    我讀Lines Per frame staus 0x37-0x38,0x00,0x20 Clocks Per Line status 0x39-0x3a,0x92,0x00, 改變不同分辨率如720p60、1080p60,寄存器讀數(shù)不變! 請問
    發(fā)表于 01-10 06:25

    怎樣才能讀取LMK03328的工作狀態(tài),例如PLL2是否失鎖?

    怎樣才能讀取芯片的工作狀態(tài)例如PLL2是否失鎖?通過IIC借口直接讀取R13寄存器的內(nèi)容?還需要配置其他寄存器嗎? 如果我想通過STATUS0輸出管腳獲取PLL2是否失鎖,是不是僅需要將R27設(shè)置成0X50?還需要配置其他寄存器嗎?
    發(fā)表于 11-11 07:37

    請問TPA3112的輸出波形在無濾波狀態(tài)下是PWM波形式,怎樣才能出來完美的正弦波?

    請問TPA3112的輸出波形在無濾波狀態(tài)下是PWM波形式,那我加上LC濾波后,怎樣才能出來完美的正弦波(輸入是正弦波,10k),現(xiàn)在測得輸出波形中有310k左右的載波,800多mVPP
    發(fā)表于 11-04 07:12

    在應(yīng)TPA3110D2時,上電有POP聲怎樣才能消除?

    在應(yīng)TPA3110D2時,上電有POP聲.怎樣才能消除?
    發(fā)表于 11-01 07:50

    PCM1865怎樣才能將GPIO0配置成Digital MIC Input 2?

    配置成Digital MIC Input 1,而GPIO0卻沒有此配置選項,請問怎樣才能將GPIO0配置成Digital MIC Input 2,謝謝!
    發(fā)表于 10-29 08:31

    通過簡單的電阻電容組合怎樣才能把25K方波變成正弦?

    通過簡單的電阻電容組合怎樣才能把25K方波變成正弦。加了濾波電路后方波的上升沿變緩了,可是下降沿基本沒有變化。怎樣才能把下降沿也變緩
    發(fā)表于 10-22 06:02

    TPA3118D2怎樣才能不使用靜音功能,通電就能輸出音頻?

    如圖,12腳MUTE接個100K電阻到地,不使用靜音功能,這樣使用是否正確。焊接好后通電沒聲音輸出,但手碰下MUTE腳就有輸出了,再碰下又沒聲音了,就像是按了MUTE按鈕。手觸摸
    發(fā)表于 09-29 08:38

    怎樣才能避免LM3886損壞?

    損壞。 A、過流損壞:雖有電流監(jiān)測,可能是響應(yīng)不夠快; B、過壓損壞:負(fù)載上殘留的工頻電壓過高損壞。請問怎樣才能避免LM3886損壞,新的D類放大器是否更能勝任些功能需求,可推薦下方案。謝謝
    發(fā)表于 09-06 06:31

    潤和軟件連續(xù)四年蟬聯(lián)數(shù)字業(yè)務(wù)類解決方案市場第一名

    ,連續(xù)四年蟬聯(lián)數(shù)字業(yè)務(wù)類解決方案市場第一名。在細(xì)分領(lǐng)域:數(shù)字信貸系統(tǒng)解決方案子市場持續(xù)保持第一名,數(shù)字銀行解決方案子市場穩(wěn)居第二,開放銀行解決方案子市場上升至第三。 ? 數(shù)字業(yè)務(wù)類
    的頭像 發(fā)表于 07-31 10:10 ?1072次閱讀

    怎樣才能在調(diào)用deep_sleep_set_option(4)后手動打開RF?

    請教下,怎樣才能在調(diào)用deep_sleep_set_option(4)后 手動打開RF,而不是要通過其他deep_sleep_set_option()來打開RF,我想在自己想要發(fā)射廣播包的時候打開RF,主要其他模式太耗電
    發(fā)表于 07-22 07:26