日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 小林coding
[導讀]今天逛帖子的時候,看到這么個問題: 這個問題我曾經(jīng)也很好奇過,那些成為技術大佬的人當初是怎么學習,以及怎么成長過來的,因為我相信他們也是從 0 開始的,也會經(jīng)歷困難期之類的。

大家好,我是小林。

今天逛帖子的時候,看到這么個問題:

這個問題我曾經(jīng)也很好奇過,那些成為技術大佬的人當初是怎么學習,以及怎么成長過來的,因為我相信他們也是從 0 開始的,也會經(jīng)歷困難期之類的?;蛟S,站在大佬們的“肩膀上”,可以走的更遠。

然后這個問題下面,有位“無名大佬”回答了這個問題,我看完后覺得相當不錯,重新排版和整理了下,分享給大家一起共勉。

無論你是在校學生,還是職場老鳥,我相信這些想法和建議都會對你有所啟發(fā)。


熟悉更多業(yè)務

不管是不是你負責的;熟悉更多代碼,不管是不是你寫的。

這樣做有很多好處,舉幾個簡單的例子:

  • 需求分析的時候更加準確,能夠在需求階段就識別風險、影響、難點。

  • 問題處理的時候更加快速,因為相關的業(yè)務和代碼都熟悉,能夠快速的判斷問題可能的原因并進行排查處理。

  • 方案設計的時候考慮更加周全,由于有對全局業(yè)務的理解,能夠設計出更好的方案。


熟悉端到端

比如說你負責 Web 后臺開發(fā),但實際上用戶發(fā)起一個 HTTP 請求,要經(jīng)過很多中間步驟才到你的服務器(例如瀏覽器緩存、DNS、Nginx 等)。

服務器一般又會經(jīng)過很多處理才到你寫的那部分代碼(路由、權限等)這整個流程中的很多系統(tǒng)或者步驟,絕大部分人是不可能去參與寫代碼的。

但掌握了這些知識對你的綜合水平有很大作用,例如方案設計、線上故障處理這些更加有含金量的技術工作都需要綜合技術水平。

“系統(tǒng)性”、“全局性”、“綜合性”這些字眼看起來比較虛,但其實都是技術大牛的必備的素質(zhì),要達到這樣的境界,必須去熟悉更多系統(tǒng)、業(yè)務、代碼。


自學

一般在比較成熟的團隊,由于框架或者組件已經(jīng)進行了大量的封裝,寫業(yè)務代碼所用到的技術確實也比較少。

但我們要明白“唯一不變的只有變化”,框架有可能要改進,組件可能要替換,或者你換了一家公司,新公司既沒有組件也沒有框架,要你從頭開始來做。

這些都是機會,也是挑戰(zhàn),而機會和挑戰(zhàn)只會分配給有準備的人,所以這種情況下我們更加需要自學更多東西,因為真正等到要用的時候再來學已經(jīng)沒有時間了。

以 Java 為例,大部分業(yè)務代碼就是 if-else 加個數(shù)據(jù)庫操作,但我們完全可以自己學些更多 Java 的知識,例如垃圾回收,調(diào)優(yōu),網(wǎng)絡編程等。

這些可能暫時沒用,但真要用的時候,不是 Google 一下就可以了,這個時候誰已經(jīng)掌握了相關知識和技能,機會就是誰的

以垃圾回收為例,我自己平時就抽時間學習了這些知識,學了 1 年都沒用上,但后來用上了幾次,每次都解決了卡死的大問題。

而有的同學,寫了幾年的 Java 代碼,對于 stop-the-world 是什么概念都不知道,更不用說去優(yōu)化了。

你負責的系統(tǒng)和業(yè)務,總有不合理和可以改進的地方,這些“不合理”和“可改進”的地方,都是更高級別的怪物,打完后能夠增加更多的經(jīng)驗值。

識別出這些地方,并且給出解決方案,然后向主管提出,一次不行兩次,多提幾次,只要有一次落地了,這就是你的機會。

例如:

  • 重復代碼太多,是否可以引入設計模式?

  • 系統(tǒng)性能一般,可否進行優(yōu)化?

  • 目前是單機,如果做成雙機是否更好?

  • 版本開發(fā)質(zhì)量不高,是否引入高效的單元測試和集成測試方案?

  • 目前的系統(tǒng)太龐大,是否可以通過重構和解耦改為 3 個系統(tǒng)?

  • 阿里中間件有一些系統(tǒng)感覺我們也可以用,是否可以引入?

只要你去想,其實總能發(fā)現(xiàn)可以改進的地方的;如果你覺得系統(tǒng)哪里都沒有改進的地方,那就說明你的水平還不夠,可以多學習相關技術,多看看業(yè)界其它優(yōu)秀公司怎么做。

我 2013 年調(diào)配到九游,剛開始接手了一個簡單的后臺系統(tǒng),每天就是配合前臺做數(shù)據(jù)增刪改查,看起來完全沒意思,是吧?

如果只做這些確實沒意思,但我們接手后做了很多事情:

  • 解耦,將一個后臺拆分為 2 個后臺,提升可擴展性和穩(wěn)定性。

  • 雙機,將單機改為雙機系統(tǒng),提高可靠性。

  • 優(yōu)化,將原來一個耗時 5 小時的接口優(yōu)化為耗時 5 分鐘。

還有其他很多優(yōu)化,后來我們這個組承擔了更多的系統(tǒng),后來這個小組 5 個人,負責了 6 個系統(tǒng)。


Do exercise

在做職業(yè)等級溝通的時候,發(fā)現(xiàn)有很多同學確實也在嘗試 Do more、Do better,但在執(zhí)行的過程中,幾乎每個人都遇到同一個問題:光看不用效果很差,怎么辦?

例如:

  • 學習了 JVM 的垃圾回收,但是線上比較少出現(xiàn) FGC 導致的卡頓問題,就算出現(xiàn)了,恢復業(yè)務也是第一位的,不太可能線上出現(xiàn)問題然后讓每個同學都去練一下手,那怎么去實踐這些 jvm 的知識和技能呢?

  • Netty 我也看了,也了解了 Reactor 的原理,但是我不可能參與 Netty 開發(fā),怎么去讓自己真正掌握 Reactor 異步模式呢?

  • 看了《高性能 MySQL》,但是線上的數(shù)據(jù)庫都是 DBA 管理的,測試環(huán)境的數(shù)據(jù)庫感覺又是隨便配置的,我怎么去驗證這些技術呢?

  • 框架封裝了 DAL 層,數(shù)據(jù)庫的訪問我們都不需要操心,我們怎么去了解分庫分表實現(xiàn)?

諸如此類問題還有很多,我這里分享一下個人的經(jīng)驗,其實就是 3 個詞:learning、trying、teaching!


Learning

這個是第一階段,看書、Google、看視頻、看別人的博客都可以,但要注意一點是“系統(tǒng)化”,特別是一些基礎性的東西,例如 JVM 原理、Java 編程、網(wǎng)絡編程,HTTP 協(xié)議等等。

這些基礎技術不能只通過 Google 或者博客學習,我的做法一般是先完整的看完一本書全面的了解,然后再通過 Google、視頻、博客去有針對性的查找一些有疑問的地方,或者一些技巧。


trying

這個步驟就是解答前面提到的很多同學的疑惑的關鍵點,形象來說就是“自己動手豐衣足食”,也就是自己去嘗試搭建一些模擬環(huán)境,自己寫一些測試程序。

例如:

  • JVM 垃圾回收:可以自己寫一個簡單的測試程序,分配內(nèi)存不釋放,然后調(diào)整各種 JVM 啟動參數(shù),再運行的過程中使用 jstack、jstat 等命令查看 JVM 的堆內(nèi)存分布和垃圾回收情況。這樣的程序?qū)懫饋砗芎唵?,簡單一點的就幾行,復雜一點的也就幾十行。

  • Reactor 原理:自己真正去嘗試寫一個 Reactor 模式的 Demo,不要以為這個很難,最簡單的 Reactor 模式代碼量(包括注釋)不超過 200 行(可以參考 Doug Lee 的 PPT)。自己寫完后,再去看看 Netty 怎么做,一對比理解就更加深刻了。

  • MySQL:既然有線上的配置可以參考,那可以直接讓 DBA 將線上配置發(fā)給我們(注意去掉敏感信息),直接學習;然后自己搭建一個 MySQL 環(huán)境,用線上的配置啟動;要知道很多同學用了很多年 MySQL,但是連個簡單的 MySQL 環(huán)境都搭不起來。

  • 框架封裝了 DAL:可以自己用 JDBC 嘗試去寫一個分庫分表的簡單實現(xiàn),然后與框架的實現(xiàn)進行對比,看看差異在哪里。

  • 用瀏覽器的工具查看 HTTP 緩存實現(xiàn),看看不同種類的網(wǎng)站,不同類型的資源,具體是如何控制緩存的;也可以自己用 Python 寫一個簡單的 HTTP 服務器,模擬返回各種 HTTP Headers 來觀察瀏覽器的反應。

還有很多方法,這里就不一一列舉,簡單來說,就是要將學到的東西真正試試,才能理解更加深刻。

印第安人有一句諺語:I hear and I forget. I see and I remember. I do and I understand ,而且“試試”其實可以比較簡單,很多時候我們都可以自己動手做。

當然,如果能夠在實際工作中使用,效果會更好,畢竟實際的線上環(huán)境和業(yè)務復雜度不是我們寫個模擬程序就能夠模擬的,但這樣的機會可遇不可求,大部分情況我們還真的只能靠自己模擬,然后等到真正業(yè)務要用的時候,能夠信手拈來。


Teaching

一般來說,經(jīng)過 Learning 和 Trying,能掌握 70% 左右,但要真正掌握,我覺得一定要做到能夠跟別人講清楚。

因為在講的時候,我們既需要將一個知識點系統(tǒng)化,也需要考慮各種細節(jié),這會促使我們進一步思考和學習。

同時,講出來后看或者聽的人可以有不同的理解,或者有新的補充,這相當于繼續(xù)完善了整個知識技能體系。

這樣的例子很多,包括我自己寫博客的時候經(jīng)常遇到,本來我覺得自己已經(jīng)掌握很全面了,但一寫就發(fā)現(xiàn)很多點沒考慮到。

組內(nèi)培訓的時候也經(jīng)常看到,有的同學寫了 PPT,但是講的時候,大家一問,或者一討論,就會發(fā)現(xiàn)很多點還沒有講清楚,或者有的點其實是理解錯了。

寫 PPT、講 PPT、討論 PPT,這個流程全部走一遍,基本上對一個知識點掌握就比較全面了。

免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉