親愛的小夥伴:git
你好,我是黃Sir,一名在技術領域從業15年的IT老兵,從剛走入企業的一名程序員到央企的研發經理再到互聯網上市公司CTO,直到如今本身創業作CEO,一路走來對技術人員的成長和發展有了愈來愈多的感悟。程序員
看到了不少技術研發人員長期從事着重複且沒有太多技術含量的工做,整日都在被繁重的業務需求壓的喘不過氣,每日經過體力勞動和加班來獲取本身生活的保障以及微弱的加薪晉級機會,更不要談本身的生活和我的情感規劃了,對於你們來講996和日漸稀少的髮絲纔是標配,連想要升職加薪的想法都慢慢變得微弱,甚至已經向生活妥協。github
想起十幾年前的本身剛剛從學校畢業走向工做崗位,也是壯志滿懷,但願經過努力改變本身的人生,確實我也作到了,但很是辛苦……面試
記得當時本身所在的項目是一個在甲方現場研發的項目,主要業務方向是金融行業(請你們不要對號入座,這裏只談我本身的成長感覺),項目組常年保持在50人以上的團隊,做爲一個年輕程序員很是憧憬成爲研發經理,研發總監,但在這樣一個團隊裏,如何才能脫穎而出呢?算法
尤爲是在這樣一個研發環境和研發技術要求以穩定爲主的傳統行業裏則顯的更加困難,每個程序開發人員都只是一個螺絲釘,即使你轉的再快也沒法使整個環境發生改變,這種狀態也是如今剛進入工做的程序員的一個廣泛工做狀態,雖有工做熱情,但能力和經驗不足,是難堪大任的,想要成長和提高也不會再像學校裏有老師不厭其煩的教導,學習資料也沒有如今互聯網上這麼豐富,可這些都阻擋不了一顆想要努力向上的心。數據庫
沒人教,沒地方學那就本身努力,天天在完成了本身工做的前提下,不斷了解其餘模塊的業務邏輯和代碼架構及相關技術,天天下班後在工做學習到深夜,有的時候甚至到晚上凌晨2點,週末休息也會主動到公司加班,在這樣半年的持續努力下,個人職業生涯終於進入了快車道,兩年時間從程序員升級爲高級軟件工程師,再升級爲研發主管,研發經理,研發總監,但這一路走來期間的辛苦只有本身知道,我想看到這篇文章的大家若是這個時候也在努力改變本身的人生軌跡,箇中滋味只有本身能體會到。編程
多年後離開了這個項目,偶然有一次和咱們集團副總裁吃飯時無心間聊起,爲何當時會給予我這樣快速成長的機會,咱們副總一席話讓我頗有感觸。設計模式
他說不管是晚上仍是週末,只要到甲方現場,都能看到我認真編寫或閱讀代碼的身影(我當時的工位恰巧背對門口,進入辦公室我這裏是必經之路),那份沉沁在代碼世界的認真很是感動他,他願意把機會給到這樣一個努力的年輕人,即使他如今技術能力和管理能力都比較弱,但衝着這份認真和鍥而不捨,確定能作好。緩存
從咱們副總裁的話語中我悟出了一個道理,當你有能力的時候,只要認真就必定有機會從人羣中凸顯出來,而能力不足就得靠幾倍甚至幾十倍的認真和努力才能得到上升空間的機會,但也須要少量運氣,若是我當時的工位恰巧不是背對門口而是在公司的一個不顯眼的角落,可能個人人生際遇就會改寫也未可知。安全
在傳統軟件行業努力工做幾年後,發現互聯網行業的蓬勃發展必定是之後軟件發展的方向,毅然決然的投入到一家互聯網創業公司中去,短短一年時間將技術研發能力薄弱的公司研發團隊帶領成爲在相應領域首屈一指的研發團隊。
回望公司業務剛剛開始起步,我初到公司開始進行系統重構,一開始C端系統、管理系統、數據庫都放在一臺服務器上,沒有進行運維監控和版本發佈管理,對於系統的穩定和健康運行既沒法監控也沒法獲取系統的負載情況,對於沒有什麼用戶流量來講是不會出現大問題的,但隨着用戶量增長,後臺業務報表複雜度提高,系統就頻繁出現50二、503的錯誤:
而原研發主管卻置若罔聞,總認爲本身的系統代碼沒有問題,但系統已經到了很是脆弱的地步,連咱們本身訪問均可以點出50二、503的錯誤來,BOSS常常在辦公室裏大喊系統又502了,而當時的研發人員卻都對現狀已經麻木,我就是在這樣一個狀態下臨危受命,快速分析定位問題,首先發現全部應用都在一個服務器上部署,業務間耦合度很是高,這就是個典型的單一應用,系統很是脆弱,須要儘快解耦並進行服務化改造,我作了如下八項措施:
一、將應用服務器和數據庫服務分離並單獨部署;
二、對MySQL數據庫進行主從服務設置,將應用進行讀寫業務分離;
三、將應用服務進行無狀態化改造並進行分佈式負載均衡,支持柔性擴展;
四、對應用服務進行改造,基礎業務下沉,作服務隔離;
五、進行數據緩存架構設計,並將緩存服務化;
六、所用業務以及服務系統進行集羣化設置並保證服務一致性;
七、進行關鍵時刻流量控制、服務降級設計,確保主服務穩定;
八、對各項服務進行線上監控和運行時檢測確保服務穩定。
我當時梳理的我公司跨境電商系統的應用構架,你們能夠參考
我經過上面的優化和改造後服務終於穩定下來並能支撐單日過億的用戶訪問,服務上百個國家(咱們目前的跨境電商解決方案已經服務了來自全球140多個國家的用戶,包含美國、中國、南非、加拿大、印度、菲律賓、墨西哥、澳大利亞、德國、西班牙、大不列顛聯合王國、祕魯、以色列、法國、韓國、智利等國家。)
雖然結果達到了預期,但在歷時一年多的實施過程當中確實發現了不少問題,各服務集羣參數配置的問題,服務一致性的問題,數據多級緩存後更新不一樣步的問題等,其中一方面緣由是對相關技術在生產環境應用中缺少經驗致使,但總結下來更多的是研發人員知識結構體系單一,缺少對複雜問題分析解決的能力。
在當今這個互聯網時代下,想要系統可以穩定健康的運行並提供高可用的服務就要面對高併發大流量的全部問題,而如今大部分的技術研發人員僅具有基本的業務開發能力,僅是實現業務功能的CURD,而互聯網企業不是傳統軟件公司,他要面對的不是簡單的業務需求。
而是巨大用戶量的併發訪問壓力及頻繁複雜多變的業務需求,這個時候努力工做、加班僅僅是完成業務需求多變帶來的工做壓力,根本沒有機會也沒有方法去掌握互聯網的技術架構和相應研發解決方案。最後就變成我前面所說的996和日漸稀少的髮絲標配了。
經過個人努力,公司系統已很是穩定,業務發展的也愈來愈好,業務不斷壯大,須要更多的技術負責人去架構和實現新的業務系統,從這個時候開始我就從一名架構師演變成了一名幫助技術人員成長的佈道師。
把個人經驗和技術總結出來幫助這些工做不久或在系統架構方面有着濃厚興趣和工做嚮往的同事,也正是因爲我對知識總結的系統化和講授過程的授業解惑,你們都親切的叫我黃老師,至此這個稱呼一直伴隨至今,我也收穫了人生自我價值的實現,在一線城市也把房子從80平換成了200平,車子也換成了特斯拉Model X(PS:實際上是爲了避免限號),我培養的員工也從普通研發人員晉升爲架構師,研發經理,跳槽到其餘公司的年薪平均漲幅都在10萬左右。
而對於如今創業的我,更是將過去這些年總結的方法和經驗進行了更系統的概括和提高,不只僅但願幫助公司內部的同事,也想將我這些年總結的知識分享給你們,讓你們從中受益。
對於技術研發人員,成長最快的黃金階段每每是剛參加工做的第2-5年這個階段,這個階段若是抓住成長和學習的機會單從薪資上來說平均每一年就有10萬以上的漲幅,但是你們在這個時候又在作什麼呢?我上面已經講到了,作着重複而沒有創造性的工做。
在過去的幾年裏因爲我所在的企業隨着跨境電商市場的不斷髮展,企業迅速壯大,由最初服務幾個國家到服務近百國家,項目也在不斷的涌現,須要大量的系統架構人才,就這樣開始帶領和培養技術人員成長,因爲項目時間都很是緊張,從而總結了一套行之有效的培養方式,使得不少初中級技術人員一下邁入了系統架構人才的行列,平均年薪至少漲幅了10萬。
這些技術人員通過個人培養和帶領不只薪資獲得了很大的提高,工做效率也獲得了明顯的提升,以前996的工做方式也在自身能力提高後獲得了改善,不只本身的我的生活得以改善,感情生活也獲得了充實,更難以想象的是這些同事經過合理的工做安排和規劃可以不須要加班就能完成平時的工做,晚上和家人就有不少時間留給本身和家人,陪老婆、陪男/女友、陪孩子,使本身在工做和生活之間作到更好的平衡。
若是上面我講的這些是你求之不得的目標,接下來的信息將會令你心潮澎湃!通過我這些年的研究證明:
一、幾乎任何技術研發人員均可以作到;
二、快速提高技術水平;
三、高效完成工做目標;
四、告別996的工做時間。
幾乎如今全部的互聯網公司都經常996工做,而大部分的技術研發從業者,並無充分發揮他們的能力去改變這一現狀,在這些年中,團隊中不少人經過個人方法,快速提高了技術水平,薪水也獲得了進一步提高,可是在公司以外,我並無讓更多人掌握這個能力。
爲了解決這一困境,更爲了讓技術人互相幫助,共同成長這一目標,我決定親自培養、親自輔導、親自打造一支基於Java的《支撐單日過億的用戶訪問系統研發架構特戰隊》。這樣的特戰隊員,在3個月時間內,快速掌握系統架構大部分核心技術,快速提高工做效率,進入BAT、TMD等前20名的互聯網公司,擁有別人羨慕的年薪,擁有更大的發展空間。
我將這支在中國技術領域獨一無二的特戰隊命名爲《Java高級架構師商業項目解決方案成長營 — 飛天一期》,爲了確保高的職業操守和技術水準,每一位被選中的成員都必須接受下面嚴格的訓練:
第一項訓練
精準訓練和掌握編程之道
編程核心思惟
不是全部的技術都是時間累積能夠實現提高的,也不是全部的技術都是反覆流水線同樣的重複就能夠提高。一旦陷入了代碼搬磚模式,你不只勞心費神,工做效率低下,並且沒法知足公司的產品需求。在這一項訓練中,我訓練你掌握什麼樣的編程思惟,什麼樣的分析和解決問題的方法可讓你工做效率大幅度提高。算法、數據結構、設計模式這些基礎內功不只僅能提高你的邏輯思惟和底層架構能力,還能在面試和筆試中幫你加不少分。
第二項訓練
系統化訓練和掌握系統架構
設計思想和方法
這個世界上沒有最好的系統架構設計,只有最適合的系統架構設計,可是否能設計出適合業務發展須要的系統架構,這就須要系統化的掌握架構設計的能力,在這個部分,將從一下幾個部分對架構設計能力進行強化訓練。
一、系統架構的目標:高可用性、高可擴展性、低成本、多快好省;
二、系統架構的原則:單一原則、DID原則、N+1原則、功能可開關、版本可回退等;
三、架構設計組成的關鍵點:業務架構、應用架構、數據架構、技術架構;
四、系統架構設計的演進方式;
五、在資源有限的狀況下如何進行架構設計;
六、系統架構設計如何和項目管理進行關聯並取得相應的平衡。
第三項訓練
結合企業真實場景,本身獨立設計
一套系統架構並進行架構演進
可能你以前也瞭解過一些系統架構知識,也知道系統架構的一些關鍵事項,但看的再多都不如從實踐中得到真知。這部分講根據企業的真實業務場景訓練你們從業務架構、應用架構、數據架構、技術架構這幾個方面進行入手,全面掌握系統架構的能力,主要從如下幾個方面進行強化訓練:
一、系統業務服務設計、隔離、基礎服務下沉;
二、系統數據模型、數據對象的設計、數據表設計、數據庫應用架構設計;
三、研發代碼架構及系統分層和接口服務設計;
四、服務一致性設計、以及中間件選型和應用:
五、系統緩存架構設計;
六、各服務系統緩存服務設計;
七、系統自動化運維部署架構設計;
八、系統防止惡意攻擊的預案設計等。
第四項訓練
深刻架構進行各個環節的功能
代碼及部署實現
對於系統架構師,不只能指揮若定設計系統總體的架構和系統演進路線,更可以實現具體的業務功能代碼和服務部署,不然架構中存在的問題就沒法提早預知和規避了,在這個部分講訓練對具體業務實施和中間件使用的能力,確保遇到具體技術問題也可以及時有效的解決,這裏將對如下架構中須要使用到的中間件和具體技術進行掌握:
一、數據庫讀寫分離、數據庫索引及數據庫運行調優;
二、Maven使用、Nginx負載均衡、CDN使用;
三、Quartz、消息隊列RabbitMQ、Redis集羣、Solr搜索引擎集羣、zookeeper、Docker+Jenkins;
四、域名HTTPS安全證書安裝、Jemter等中間件的掌握和使用。
第五項訓練
刻意練習,提高綜合能力
技術人員的綜合提高,不是僅僅完成現有的工做,一遍遍的重複,這樣很容易陷入低水平重複的誤區,還應該刻意作一些訓練。咱們會對如下幾個方面對學生提出要求,對如下方面進行【刻意練習】,不斷突破本身的溫馨區,提高本身綜合能力,在職場上進步。
【刻意練習1】代碼:每一個人必需要有github帳號,按時提交做業代碼,代碼review。
【刻意練習2】寫做:每週一篇技術週報、總結近一週本身的工做學習所獲,寫文章是梳理技術知識的最佳途徑。
【刻意練習3】講解:不少人職場上受限的緣由是由於不夠open ,沒法表達本身的思路,進而就沒法跟優秀的人交流,這個每每是技術人員忽略的地方,本課程要求每人每個月提交至少30分鐘的對某一技術點的講解視頻。
你必須知道,《Java高級架構師商業項目解決方案成長營 》計劃不會向全部人開放,參與者必須符合如下條件:
一、你必須熱愛編程,並具有奮鬥者精神
二、你必須擁有1年以上的Java開發工做或學習經驗
三、你必須願意每週投入10小時以上進行學習和實踐
四、你必須具備很強的執行力,願意遵從個人建議,和成長營隊友一塊兒成長
五、你每週必須寫一篇學習或工做的技術文章(方向不限)
六、你必須有強烈的加薪加薪10萬-20萬以上以上以及升職的動力和願望
學習能夠私信我哦,一塊兒來成長!