成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

凌晨1點(diǎn)突發(fā)致命生產(chǎn)事故!看的我驚心動(dòng)魄…

運(yùn)維 系統(tǒng)運(yùn)維
有一個(gè)讀者問(wèn)我:你認(rèn)為一個(gè)程序員具備什么樣的能力,才算得上是厲害的程序員?我答:擁有解決問(wèn)題的能力的程序員。

有一個(gè)讀者問(wèn)我:你認(rèn)為一個(gè)程序員具備什么樣的能力,才算得上是厲害的程序員?我答:擁有解決問(wèn)題的能力的程序員。這個(gè)回答貌似有點(diǎn)抽象,不要緊看下面的文章你會(huì)慢慢有所了解。

 [[272723]]

圖片來(lái)自 Pexels

 

解決問(wèn)題的能力

 

很多年前,當(dāng)我還是一個(gè)小菜鳥(niǎo)的時(shí)候,我的領(lǐng)導(dǎo)經(jīng)常告訴我,解決問(wèn)題的時(shí)候,不要局限于技術(shù)本身,并且形象的給我舉了一個(gè)例子。

有一次兩個(gè)程序員一直討論,如何判斷兩臺(tái)服務(wù)器之間是否網(wǎng)絡(luò)正常,爭(zhēng)爭(zhēng)吵吵了很久。

旁邊的一個(gè)測(cè)試說(shuō),Ping 一下不就知道了嗎?就這樣他們用 Java 代碼實(shí)現(xiàn)了 Ping 操作解決了這個(gè)問(wèn)題。

多年以后,雖然我知道有更優(yōu)雅的方式來(lái)解決這個(gè)問(wèn)題,但是我仍然覺(jué)得之前的那個(gè)測(cè)試人員很聰明。

后面我們持續(xù)打過(guò)一年交道,她能力真的很強(qiáng),在小公司相當(dāng)于產(chǎn)品經(jīng)理+測(cè)試的職能。

需要給大家說(shuō)明的是:解決問(wèn)題的能力和技術(shù)能力是兩個(gè)能力區(qū)間,我見(jiàn)過(guò)很多程序員源碼玩得一溜,生產(chǎn)出現(xiàn)問(wèn)題的時(shí)候仍然不知道如何去解決問(wèn)題。

生產(chǎn)出現(xiàn)問(wèn)題的時(shí)候,是考驗(yàn)一個(gè)程序員的最高水準(zhǔn),在面對(duì)高強(qiáng)度高壓力下,動(dòng)作不變形,能夠冷靜思考、分析、解決問(wèn)題,能達(dá)到這個(gè)水平的程序員,這在古代可以拜為上將軍。

我一直非常喜歡能夠快速解決問(wèn)題的程序員,我也樂(lè)于在各種生產(chǎn)出現(xiàn)問(wèn)題的時(shí)候,第一時(shí)間去研究去分析。

說(shuō)一句不厚道的話,好程序員都是在解決問(wèn)題中鍛煉出來(lái)的,特別是生產(chǎn)環(huán)境出現(xiàn)問(wèn)題時(shí),能夠站出來(lái)的程序員。

 

凌晨遷移數(shù)據(jù)出大事故

 

下面跟大家分享一個(gè)發(fā)生在深夜的技術(shù)故事。

老平臺(tái)和新平臺(tái)

公司有一個(gè)老系統(tǒng),一個(gè)新系統(tǒng)。老系統(tǒng)使用了很多年,早已經(jīng)超出了它能支持的極限,最早在 2013 年上線這套系統(tǒng)的時(shí)候,預(yù)估每天的交易量在一兩個(gè)億,實(shí)際上現(xiàn)在每天已經(jīng)跑出了 40 億的交易量。

從 2013-2017 年,技術(shù)團(tuán)隊(duì)做了很多努力,老系統(tǒng)使用的是 Oracle 數(shù)據(jù)庫(kù),為支持最大的交易量,讀寫(xiě)分離分庫(kù)分表+各種最強(qiáng)硬件搞上;系統(tǒng)拆分、重構(gòu)、優(yōu)化了很多次,仍然滿足不了公司日益增長(zhǎng)的交易量。

說(shuō)實(shí)話,團(tuán)隊(duì)能把一個(gè)老系統(tǒng)整成這個(gè)樣子,也確實(shí)不易。最初的架構(gòu)設(shè)計(jì)不合理,縫縫補(bǔ)補(bǔ)終究解決不了大問(wèn)題。

研發(fā)新平臺(tái)成為公司發(fā)展必須要做的一件事情,新平臺(tái)一期設(shè)計(jì)可以支撐日百億的交易量,最重要的是支持后期日千億的擴(kuò)展。

經(jīng)過(guò)兄弟們的艱苦奮戰(zhàn),新平臺(tái)終于上線了。新平臺(tái)上線是成功的一小半,后面的數(shù)據(jù)遷移才是最最重點(diǎn)的事情。

運(yùn)行了好幾年的老系統(tǒng),使用的是傳統(tǒng)的垂直架構(gòu),(架構(gòu)演進(jìn)可以參考這篇文章:從架構(gòu)演進(jìn)的角度聊聊 Spring Cloud 都做了些什么?),各種業(yè)務(wù)、政策、活動(dòng)、風(fēng)控都揉在了一起。

新平臺(tái)使用的微服務(wù)架構(gòu),光微服務(wù)就搞了上百個(gè),數(shù)據(jù)庫(kù) MySQL HA。兩個(gè)系統(tǒng)在架構(gòu)設(shè)計(jì)上隔了一代,在設(shè)計(jì)時(shí)為了兼容老系統(tǒng)的部分功能,還做了部分冗余設(shè)計(jì),反正這兩個(gè)系統(tǒng)就不是一個(gè)時(shí)代的產(chǎn)物。

遷移的要求是,從老平臺(tái)遷移到新平臺(tái)的時(shí)候,不能影響到商戶(hù)的正常交易。

打個(gè)比喻就相當(dāng)于,你開(kāi)著車(chē)在高速公路上跑,在行駛的過(guò)程中換掉車(chē)輪,而這個(gè)過(guò)程還得讓坐車(chē)的你不能有任何感覺(jué)。

于是我們研發(fā)了一套遷移系統(tǒng),本來(lái)計(jì)劃著一批一批的遷移,給新平臺(tái)一次切一兩個(gè)億的交易量,慢慢看看效果再根據(jù)節(jié)奏來(lái)走,但是突然來(lái)的一次政策(活動(dòng))打亂了這個(gè)節(jié)奏。

新政策帶來(lái)的變化

對(duì)于第三方支付公司來(lái)講,經(jīng)常會(huì)隨著市場(chǎng)環(huán)境推出一些新政策(活動(dòng)),有些政策比較簡(jiǎn)單,但大多數(shù)政策很復(fù)雜,往往需要很大的開(kāi)發(fā)量。

當(dāng)時(shí)新平臺(tái)已經(jīng)切換了一段時(shí)間,大家慢慢對(duì)新平臺(tái)有了一定的信心,就決定把這個(gè)新政策在新平臺(tái)實(shí)施。

計(jì)劃在執(zhí)行政策的當(dāng)天晚上,把其中一個(gè)老平臺(tái)上剩余的商戶(hù)全部遷移到新平臺(tái)。

方案定下來(lái)之后,各部門(mén)開(kāi)始各司其職,運(yùn)營(yíng)中心對(duì)外發(fā)通知,我們要在元旦的時(shí)候搞個(gè)大動(dòng)作,可能會(huì)有什么樣的變化;營(yíng)銷(xiāo)中心負(fù)責(zé)聯(lián)系各代理進(jìn)行分批培訓(xùn);商務(wù)部門(mén)開(kāi)始出公司的紅頭文件,下發(fā)各分公司。

我們提前和客服、運(yùn)營(yíng)部門(mén)做好溝通,可能會(huì)面臨哪些問(wèn)題提前做預(yù)案;公眾號(hào)、公司官網(wǎng)、App、郵件對(duì)外通知政策變化,公布開(kāi)始執(zhí)行日期;產(chǎn)品中心負(fù)責(zé)政策落地需求梳理,研發(fā)中心開(kāi)發(fā)新政策確定的方案。

最最最重要的是,要確保元旦晚上可以把剩余幾百萬(wàn)的商戶(hù),一次性平穩(wěn)的遷移到新平臺(tái)。

半夜開(kāi)始遷移

遷移程序之前已經(jīng)執(zhí)行了很多次,所以大家對(duì)這塊相對(duì)比較放心,但仍然和主要負(fù)責(zé)遷移的同事確認(rèn)了好多次,開(kāi)發(fā)環(huán)境提前兩周必須測(cè)試完畢,UAT 環(huán)境需要在遷移一周前測(cè)試完畢,研發(fā)和測(cè)試雙驗(yàn)證。

直到距離遷移還有三天的時(shí)候,我還專(zhuān)門(mén)找到負(fù)責(zé)遷移的那名程序員了解進(jìn)展,問(wèn)有沒(méi)有在生產(chǎn)上進(jìn)行過(guò)模擬測(cè)試。

確認(rèn)沒(méi)有問(wèn)題后,根據(jù)主負(fù)責(zé)人反饋的時(shí)間預(yù)估三四個(gè)小時(shí)可以遷移完畢,這樣凌晨 1:00 開(kāi)始,凌晨 4:00-5:00 之間可以遷移完畢。

在真正執(zhí)行遷移的前一天,又拉著各部門(mén)做了一次溝通會(huì),大家一起討論可能出現(xiàn)的各種情況,以及各部門(mén)需要留守的人員。開(kāi)完會(huì)之后,大家感覺(jué)都還不錯(cuò),靜等晚上這一場(chǎng)大戰(zhàn)!

當(dāng)天晚上留下來(lái)十幾名開(kāi)發(fā)和兩名測(cè)試,以及一些其它部門(mén)的同事,大概二十幾人左右,12 點(diǎn)之前大家說(shuō)說(shuō)笑笑,打打游戲靜等凌晨 1 刻遷移,因?yàn)閯偤檬窃k公室一片過(guò)節(jié)的感覺(jué)。

時(shí)間過(guò)得很快,凌晨 1 點(diǎn)的北京,窗外星光點(diǎn)點(diǎn),辦公室內(nèi)一片緊張。

十幾名同事都圍在了主要負(fù)責(zé)遷移的這名程序員旁邊,能明顯感覺(jué)到這名程序員很有壓力(哈哈,我估計(jì)這種事情放誰(shuí)身上都會(huì)有壓力)。

不過(guò)他還是熟練的按照之前多次測(cè)試的那樣,核查了多遍數(shù)據(jù)之后,點(diǎn)擊遷移按鈕。

首先在生產(chǎn)環(huán)境遷移一個(gè)代理商,看看數(shù)據(jù)是否正確,執(zhí)行完畢后相關(guān)人員開(kāi)始核驗(yàn)數(shù)據(jù)。

運(yùn)維人員核查日志,開(kāi)發(fā)人員確認(rèn)相關(guān)節(jié)點(diǎn)正常、數(shù)據(jù)庫(kù)工程師核對(duì)遷移數(shù)據(jù);測(cè)試人員在運(yùn)營(yíng)平臺(tái)查詢(xún)數(shù)據(jù)核驗(yàn)、測(cè)試 Pos 刷卡情況,一切正常!

試了兩個(gè)代理商都沒(méi)有問(wèn)題,下面就準(zhǔn)備 All In 了,剩下幾百萬(wàn)商戶(hù),上千個(gè)代理商就計(jì)劃一把梭了。

負(fù)責(zé)遷移的程序員,將所有代理商編號(hào),配置到執(zhí)行程序中,點(diǎn)擊了執(zhí)行按鈕,生產(chǎn)跟蹤了一下日志,一切正常。

留下幾個(gè)人監(jiān)控?cái)?shù)據(jù),其他人就散了,等遷移完成后再進(jìn)行后續(xù)工作。我也回到了工位,點(diǎn)起了一根煙,想著今晚還比較順利。

突發(fā)事故

凌晨的夜晚比較困,當(dāng)我點(diǎn)起第三根煙的時(shí)候,負(fù)責(zé)遷移的這位程序員,急匆匆的跑過(guò)來(lái)找我了。

“強(qiáng)哥,出現(xiàn)問(wèn)題了!”

心中一驚,猛吸一口煙,把煙掐滅,忙問(wèn)到:“出現(xiàn)啥問(wèn)題?”

原來(lái)這位程序員在遷移程序執(zhí)行后,就一直在跟蹤遷移的進(jìn)展,發(fā)現(xiàn)過(guò)了半小時(shí)才遷移了 10 萬(wàn)商戶(hù),老平臺(tái)總共幾百萬(wàn)商戶(hù),按照這個(gè)速度,全部執(zhí)行完需要幾天后。

這個(gè)事可大了!如果在上午 8:00 之前不搞定這個(gè)事情,那就完全是重大事故了。

先不說(shuō)怎么處理新老平臺(tái)數(shù)據(jù)割裂,如果公司政策推遲執(zhí)行,怎么在這么短的時(shí)間內(nèi)把信息通知到幾百萬(wàn)商戶(hù)、幾千個(gè)代理商,就是一個(gè)不可能完成的工作量。

可以想象第二天都會(huì)出現(xiàn)什么樣的狀況,客服 400 電話被打爆、運(yùn)營(yíng)人員溝通到吐血,因政策推遲執(zhí)行可能導(dǎo)致的公司損失,針對(duì)代理商的補(bǔ)償行為......

如果這個(gè)問(wèn)題我們沒(méi)有在一個(gè)小時(shí)內(nèi)解決掉,就需要立刻上報(bào)公司副總經(jīng)理,然后估計(jì)連夜公司所有的管理層,都需要來(lái)公司開(kāi)會(huì)商量后續(xù)處理方案。

大腦中雖然閃過(guò)遷移失敗后的嚴(yán)重后果,但眼前還需要壓下所有的想法,先分析到底是哪里出現(xiàn)了問(wèn)題,有沒(méi)有什么樣的降級(jí)方案或者補(bǔ)救方法。

①分析原因

經(jīng)過(guò)查詢(xún)?nèi)罩尽⒑藢?duì)數(shù)據(jù)基本查明了原因,開(kāi)發(fā)人員在生產(chǎn)測(cè)試的時(shí)候,都使用的是中小型代理商進(jìn)行的測(cè)試。

但忽略了公司不同代理商規(guī)模之間差異極大,最大的核心代理商一家的數(shù)據(jù),可能占平臺(tái)整體交易量的 5%-6%。

所以根據(jù)中小型代理商評(píng)估的時(shí)間肯定是不準(zhǔn)確的,事已至此先不說(shuō)誰(shuí)的問(wèn)題。

如何快速解決問(wèn)題才是接下來(lái)的關(guān)鍵,大家一起想解決方案,有什么辦法可以讓遷移速度更快一點(diǎn)。

②補(bǔ)救方案

比如先同步核心數(shù)據(jù),其它內(nèi)容后續(xù)再進(jìn)行處理,先保障第二天的交易。

比如可不可以全部使用人工導(dǎo)表來(lái)處理,數(shù)據(jù)庫(kù)工程師聽(tīng)到這個(gè)方案的時(shí)候,差點(diǎn)哭暈過(guò)去,上千多張表,關(guān)系極為復(fù)雜;各種各樣的方案......

在大家七嘴八舌討論優(yōu)化方案的時(shí)候,才發(fā)現(xiàn)遷移程序的主流程沒(méi)有使用多線程來(lái)遷移。

遷移程序提供了一個(gè)界面,每次遷移的時(shí)候開(kāi)發(fā)人員會(huì)在頁(yè)面填寫(xiě)需要遷移的代理商編號(hào),后臺(tái)接收到頁(yè)面?zhèn)鬟f的參數(shù)后,開(kāi)始 for 循環(huán)執(zhí)行遷移。

雖然代理商下的商戶(hù)使用了多線程遷移,但是遷移代理商的主程序入口,卻沒(méi)有使用多線程,因此大家想是否把代理商這塊也用多線程來(lái)加快遷移速度。

人工多線程救場(chǎng)

大家討論之后,覺(jué)得多線程來(lái)遷移代理商應(yīng)該是目前比較好的一個(gè)方案,但是如果讓現(xiàn)場(chǎng)寫(xiě),沒(méi)有經(jīng)過(guò)測(cè)試直接就生產(chǎn)執(zhí)行,風(fēng)險(xiǎn)還是比較大。

那還有什么不用改程序就可以實(shí)現(xiàn)這種代理商并發(fā)遷移的效果嗎?確實(shí)有!

大家知道我們平時(shí)開(kāi)發(fā)的 Web 應(yīng)用,前臺(tái)的每一次請(qǐng)求到后端就會(huì)分配一個(gè) Servlet 來(lái)處理響應(yīng),這個(gè)  Servlet  其實(shí)就是一個(gè)獨(dú)立的線程。

那么每次多打開(kāi)幾個(gè)頁(yè)面,同時(shí)執(zhí)行遷移請(qǐng)求不就實(shí)現(xiàn)了多線程遷移代理商的效果嗎?

說(shuō)干就干,把之前的遷移程序停掉之后,選擇十幾個(gè)代理商進(jìn)行多線程遷移測(cè)試,同時(shí)打開(kāi)了 4 個(gè)頁(yè)面,每個(gè)頁(yè)面輸入不同的代理商,開(kāi)始遷移測(cè)試,測(cè)試后發(fā)現(xiàn)一切正常。

開(kāi)始加大測(cè)試量,使用幾十個(gè)代理商,在不同的頁(yè)面輸入后,先后點(diǎn)擊了遷移程序,在第二次并發(fā)遷移的過(guò)程突然發(fā)現(xiàn)不時(shí)的會(huì)報(bào)一些錯(cuò)誤。

停止遷移程序,開(kāi)始尋找原因,根據(jù)報(bào)錯(cuò)的原因發(fā)現(xiàn)是出現(xiàn)共享數(shù)據(jù)了。

我們知道 Servlet 是線程不安全的,當(dāng)出現(xiàn)多線程訪問(wèn)的時(shí)候,如果有全局共享變量就會(huì)出現(xiàn)線程安全問(wèn)題。

這個(gè)問(wèn)題好解決,使用 ThreadLocal 來(lái)修飾就行,ThreadLocal 為每個(gè)使用該變量的線程提供獨(dú)立的變量副本。

所以每一個(gè)線程都可以獨(dú)立地改變自己的副本,而不會(huì)影響其他線程所對(duì)應(yīng)的副本。

這個(gè)問(wèn)題解決之后就繼續(xù)打開(kāi)多個(gè)頁(yè)面執(zhí)行,但同 1 個(gè) Tomcat 并行超過(guò) 6 個(gè)線程的時(shí)候,機(jī)器負(fù)載就會(huì)比較高,因?yàn)槊總€(gè)線程內(nèi)還會(huì)再次調(diào)起另外的線程池來(lái)處理商戶(hù)、業(yè)務(wù)員的遷移邏輯。

于是就立刻安排運(yùn)維人員,在生產(chǎn)環(huán)境找 10 臺(tái)服務(wù)器,在這 10 臺(tái)服務(wù)器上都部署上遷移的主調(diào)度程序。為了防止開(kāi)發(fā)人員手抖出現(xiàn)問(wèn)題,我讓運(yùn)維給我開(kāi)了權(quán)限。

于是在我的電腦上(我使用了多個(gè)屏幕),分別打開(kāi)了 10 臺(tái)服務(wù)器上的遷移程序頁(yè)面,把所有需要遷移的代理商按照每次 15 個(gè)分組,每次在 1 個(gè)頁(yè)面輸入 1 組代理商來(lái)遷移,如此循環(huán)依次在每臺(tái)服務(wù)器開(kāi)始遷移代理商。

當(dāng)我循環(huán)執(zhí)行了 6 次的時(shí)候,數(shù)據(jù)庫(kù)工程師檢測(cè)到明顯數(shù)據(jù)的遷移速度加快,就這樣我用了 2 個(gè)小時(shí),在頁(yè)面把所有的代理商分別進(jìn)行了遷移。

大概到凌晨 4 點(diǎn)的時(shí)候,我的工作基本上搞完了,剩下的就讓程序慢慢跑了;凌晨 5 點(diǎn)的時(shí)候,大部分商戶(hù)數(shù)據(jù)都已經(jīng)遷移過(guò)來(lái),只剩下 2 臺(tái)服務(wù)器還在繼續(xù)跑;到了凌晨 6 點(diǎn)的時(shí)候,10 臺(tái)服務(wù)器的遷移程序全部跑完。

安排把所有相關(guān)數(shù)據(jù)一一進(jìn)行了核對(duì)后,大家長(zhǎng)長(zhǎng)的舒了一口氣。

早上 7 點(diǎn)一起下來(lái)吃早餐的時(shí)候,大家還在說(shuō),感覺(jué)昨天晚上差點(diǎn)就過(guò)不去了。

開(kāi)玩笑說(shuō),如果凌晨 2、3 點(diǎn)的時(shí)候,給我們老板打電話,老板會(huì)是什么樣的感覺(jué)。

那時(shí)候想,出現(xiàn)這么大的事故,老板把我們開(kāi)除了都是小事,如何收?qǐng)霾攀俏覀冏铌P(guān)心的。工作丟了可以再找,事情不管怎樣都是需要我們這批人來(lái)解決處理的。

上午 9 點(diǎn)打開(kāi)交易后,又陸陸續(xù)續(xù)出現(xiàn)了一些小問(wèn)題,但都是小面積的、不影響交易的問(wèn)題,整體范圍可控,晚上遷移的這幫人,幾乎都堅(jiān)持到了下午沒(méi)有太大問(wèn)題了才回去睡覺(jué)。

事后回想時(shí),大家都一種劫后余生的感覺(jué)。

 

事件回顧

 

事后我們開(kāi)復(fù)盤(pán)會(huì)的時(shí)候,總結(jié)了這里面疏漏的很多點(diǎn),但這些都不是本文的重點(diǎn)。我們還是回到文章的開(kāi)頭,什么是厲害的程序員?

大家可以看到這個(gè)問(wèn)題并不是特別的復(fù)雜,處理時(shí)需要的技術(shù)手段也比較簡(jiǎn)單,但最關(guān)鍵是解決了當(dāng)時(shí)最最緊迫的問(wèn)題。

所以說(shuō)技術(shù)沒(méi)有什么高低之分,學(xué)習(xí)技術(shù)的本質(zhì)也是為了解決各種各樣的問(wèn)題,不要對(duì)技術(shù)迷之自信,能用起來(lái)才是最好。

技術(shù)人要學(xué)會(huì)享受壓力,因?yàn)閴毫褪莿?dòng)力,壓力就是讓你去成長(zhǎng)的,越早遇到成長(zhǎng)得越快。

人在高壓高強(qiáng)度的環(huán)境中,哪怕很簡(jiǎn)單的動(dòng)作可能都會(huì)變形,從而有可能引發(fā)更大的二次事故。

在高強(qiáng)度、高壓力的環(huán)境下穩(wěn)定保持一顆冷靜分析的心,只有你自己沉靜下來(lái)才能真正的發(fā)現(xiàn)問(wèn)題解決問(wèn)題。很多技術(shù)人,出現(xiàn)問(wèn)題時(shí)你看他在忙,其實(shí)是沒(méi)有思路在那瞎操作。

冷靜下來(lái),仔細(xì)分析整個(gè)鏈條,設(shè)想哪個(gè)地方可能會(huì)出現(xiàn)問(wèn)題,然后通過(guò)查詢(xún)?nèi)罩净蛘呦嚓P(guān)命令,一步一步去排查、驗(yàn)證問(wèn)題的根源在哪里,只有真正找到了問(wèn)題的根源,你解決的時(shí)候才可以胸有成竹。

當(dāng)天晚上留守遷移的程序員,都是我司最核心的一批程序員,但是誰(shuí)有能力上誰(shuí)有能力下,在這一晚上很容易就能發(fā)現(xiàn),優(yōu)秀的程序員就像金子一樣,關(guān)鍵的時(shí)刻它會(huì)發(fā)光的。

很多人遇到問(wèn)題就自然的就會(huì)后退幾步,有的人遇到問(wèn)題就喜歡沖上去。不管你平時(shí)源碼研究得多牛逼,不管你的 PPT 寫(xiě)得有多好,公司需要的是遇到問(wèn)題的時(shí)候,有人能夠頂上去把問(wèn)題解決掉。

凡是能夠在關(guān)鍵時(shí)刻頂上去的程序員,基本上后面都很容易走上管理崗位。人和人其實(shí)就是在不斷磨合中建立信任的,領(lǐng)導(dǎo)在選擇提拔員工時(shí),主要考慮就是能不能放心把事情交給你。

所以大家平時(shí)研究技術(shù)的時(shí)候,不要走偏,源碼、設(shè)計(jì)模式這些東西是應(yīng)該研究,但更應(yīng)該考慮的是研究后如何去應(yīng)用,多專(zhuān)注一些實(shí)戰(zhàn)型的知識(shí),這些東西關(guān)鍵時(shí)刻可以救你的命(職場(chǎng))。

 

如何做一名有能力的程序員

 

那么作為一名程序員,如何培養(yǎng)自己解決問(wèn)題的能力呢?實(shí)踐!實(shí)踐!實(shí)踐!平時(shí)的技術(shù)學(xué)習(xí)只是一種強(qiáng)力輸入,如果不進(jìn)行實(shí)踐,這些能力就會(huì)很快流失了。

那如何實(shí)踐呢,多做項(xiàng)目,如果公司的項(xiàng)目用不到此技術(shù),可以自己業(yè)余時(shí)間寫(xiě)寫(xiě)代碼自己去調(diào)試一番。

另外同事出現(xiàn)問(wèn)題的時(shí)候多去幫忙解決問(wèn)題,公司出現(xiàn)問(wèn)題的時(shí)候,主動(dòng)去幫忙解決問(wèn)題;解決各種各樣的問(wèn)題,是提升能力的最快方式。

實(shí)踐完成之后,最好還能復(fù)盤(pán)總結(jié)一番,把總結(jié)的內(nèi)容作為日志或者博客記錄下來(lái)。

記錄下來(lái)的內(nèi)容就會(huì)成為你的一個(gè)知識(shí)寶庫(kù),以后遇到類(lèi)似問(wèn)題的時(shí)候,檢索一下即可解決,如此不斷豐富自己解決問(wèn)題的經(jīng)驗(yàn)。

最后,愿你成為一名真正的技術(shù)大拿!

凌晨1點(diǎn)突發(fā)致命生產(chǎn)事故!看的我驚心動(dòng)魄…

 

責(zé)任編輯:張燕妮 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2018-01-07 01:39:32

2017-09-01 09:17:51

DNS緩存慘案

2021-01-20 13:54:34

Kafka數(shù)據(jù)Java

2018-12-14 10:46:55

2020-10-14 11:37:07

MAXHUB

2020-07-13 09:05:47

2025-04-02 04:33:00

CPU服務(wù)器時(shí)鐘頻率

2010-09-11 11:12:23

2025-03-02 11:19:52

2018-03-21 10:10:32

區(qū)塊鏈數(shù)據(jù)庫(kù)比特幣

2018-02-27 11:52:41

區(qū)塊鏈食品安全溯源

2010-06-13 14:33:29

世界杯視頻觀賽基調(diào)網(wǎng)絡(luò)

2010-11-06 18:29:16

2014-08-11 16:58:33

騰訊創(chuàng)業(yè)秦朔吳志祥

2011-06-17 15:34:04

Web設(shè)計(jì)

2021-08-09 08:24:08

時(shí)間工作生活

2019-05-17 15:35:28

PNG數(shù)據(jù)結(jié)構(gòu)

2020-11-11 09:22:21

秒殺系統(tǒng)復(fù)盤(pán)

2019-03-22 15:35:33

自動(dòng)駕駛Uber伊萊恩·赫茨伯格
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91传媒在线观看 | 欧美成人一区二免费视频软件 | 91视频国产精品 | 国产精品免费高清 | 久久久久久成人 | 天天人人精品 | 中文字幕成人在线 | 久久免费精品视频 | 国产精品海角社区在线观看 | 欧美一区二区精品 | a毛片视频网站 | 国产午夜精品一区二区三区嫩草 | 夜色www国产精品资源站 | 久久久久av | 在线看一区二区三区 | 超碰导航| 在线色网| 免费在线看黄 | 成人精品视频99在线观看免费 | 日韩av一区二区在线观看 | 91精品导航| 亚洲3级 | 99视频免费| 国产高清视频在线 | 一二区视频 | 久久机热| av免费看片| 欧美亚洲综合久久 | 欧美日韩亚洲二区 | 亚洲精品在线视频 | 欧美视频免费在线 | 午夜欧美 | 久久高清免费视频 | 日本小电影在线 | 91久久精品一区二区三区 | 欧美一区二区三区一在线观看 | 日本成人中文字幕在线观看 | 日韩精品视频在线 | 天天草天天操 | 激情国产| 国产精品久久久久aaaa樱花 |