IT技術人員的自我修養
1. 前言
在IT領域摸爬滾打多年,從一個普通程式設計師到技術主管,到技術經理,再到技術總監,踩過不少坑、加過不少班,也背過不少鍋,在提升自身技術能力與管理能力的同時,也一直在思考,作為IT技術從業者,如何做才能讓我們在這個領域裡發展得更好,在年齡漸長時能從容應對所謂的“中年危機”,或者說IT技術人員的自我修養,應從哪些方面去努力。本文不是所謂成功人士的經驗之談(作者離自己理解的成功還有十萬八千里),而是以一個技術人員的角度做的一些思考與總結,希望能給已在這個行業或有志於從事這個行業的同僚以參考,與之共勉。
2. 持續學習,構建自己的知識體系
學習能力應該是一個人最重要的能力之一,因為我們絕大部分技能都需要透過學習獲得,所謂天才,也不過是其學習效率或學習能力比一般人強而已。IT技術更新日新月異,不論是新版本的更新還是新框架的產生,都以極快的速度在推進,令人眼花繚亂,應接不暇。因此,對IT技術人員來說,持續學習、有選擇地學習顯得尤為重要。
那麼我們平時應該怎麼來學習,不斷提升自己專業技能及綜合能力呢,我總結了如下幾種方式:
1. 從書本學,從網路學
現在技術書籍市場也是魚龍混雜,良莠不齊,並且價格都還不便宜。所以建議還是有選擇地購買技術書籍,一般原理介紹類書籍,如介紹JVM基本原理,資料庫基本原理,設計模式、演算法之類的書籍等等,具備一定的保值度,可以購買不斷重溫學習,而框架介紹類書籍,個人不建議購買,因為框架更新迭代一般都比較快,有時候你買的時候可能就已經過時了,不具備保值度,所以建議從官方文件、部落格、公眾號等渠道學習,也就是從網路學。從網路學最好的方式是從官方文件學,因為資訊在傳播過程中是有損耗的,尤其是英文文件,各人語言、理解水平不同,對原文的解析或多或少有些偏差,官方文件最原始,損耗也最低。其次,從一些知名的優質的部落格學,從公眾號學,並且最好能從頭到尾地看,瞭解學習作者整體的技術體系(那些東拼西湊、沒有經過實踐直接複製貼上的最好就不要去看了)。
2. 向先進學
三人行,必有我師焉,向比你厲害的人學。在一個團隊中,總有那麼幾個能力比較強的,而能力強的人總有一些不一樣的特質與習慣,多與這些人交流,善於去發現總結別人好的特質與習慣,然後模仿,吸收,最終形成自己的特質與習慣。
3. 從覆盤總結學
任何一個組織或團隊,總會存在這樣那樣的一些問題,如果一個團隊沒有任何問題,那這本身就是一個問題。對問題的處理不應該終止於解決,還應及時對其覆盤總結,從中吸取經驗與教訓,避免同樣的問題再次發生。我曾就職的某公司資料部門,在第一次對跨年晚會現場直播做實時資料統計與分析時,因缺乏經驗,產品運營部門給的預估併發使用者數是50w左右,於是團隊按這個預估做了壓測,準備了對應的伺服器,結果當晚直播併發線上使用者數達到250w+,5倍還不止的壓力直接把整條實時分析鏈路沖垮,並且搞笑的是當初準備的伺服器磁碟大多是幾十G的配置,滾滾而來的日誌不到幾分鐘就把磁碟給打滿,幾個人光是遷移日誌檔案保障資料不丟失就已是手忙腳亂了,對實時分析服務只能撒手棄療,所幸資料都儲存了下來,事後補救也創造了我們連續工作36個小時的記錄。這是一次典型的失敗教訓,事後我們覆盤總結了幾點,一是預估不足;二是沒有準備應急方案;三是沒有與其他部門協同起來,比如運維。在第二年年底時,我們做了三倍於預估量的準備,並且每個服務做好映象,隨時準備擴容,並且把運維部門協同起來作戰,實時監視每項指標,順利應對了同時線上五六百萬使用者的現場直播。因此,從對問題與失敗的覆盤總結中學,是進步提高的一個主要方式,團隊如此,個人也如此。
4. 做好知識管理
聞道有先後,術業有專攻,對IT技術領域來說,真正的全棧是極少的,樣樣精通一般就意味著樣樣平庸。所以,選好自己的技術方向,並深耕下去,一般IT軟體技術領域的方向有服務端、WEB前端、移動端、大資料、人工智慧等。在學習與工作的同時,對一些重點、難點及時做好記錄。好記性不如爛筆頭,很多人在上學階段都有做筆記的好習慣,但是參加工作後,卻把這個好習慣給丟了。對於IT技術人員, 每天大部分時間都對著電腦,所以可以採用一些筆記軟體(如印象筆記、OneNote等)來對平時學習的一些知識點,遇到的一些問題及解決方案進行整理記錄,便於回顧與查閱,也可以透過部落格、公眾號的形式,定時對自己的知識體系進行梳理,既鞏固了自己的知識,又能給人以學習參考,何樂而不為。如果這兩者都還沒有的,趕緊去選一個從今天開始用起來吧。
3. 求甚解,知其然,知其所以然
所謂求甚解,就是理解事物背後的本質與根源,從而觸類旁通,舉一反三。比如你在某某博文中看到新增某個註解就能達到某某功能,你是直接拿來就用還是會分析為什麼這麼做就能達到效果;再比如某個程式崩潰了,你是直接重啟處理還是在有條件的情況下收集必要的資料分析原因,或者在先保障程式服務可用之後再持續跟進定位。許多人都有過找人協助解決問題的經歷,我也幫助過很多人定位處理過問題,但其中相當一部分人在你幫他解決問題之後,來一句“牛叉”,然後,就沒有然後了。不會問這個問題出現的原因是什麼,不會問為什麼這麼處理就沒事了,不會問怎麼來避免這個或這類問題,然後下次找你過去協助,你會發現可能又是類似的問題。我也見過很多這樣的場景,線上服務故障了,某程式設計師透過重啟服務恢復了,但不久後又故障了,於是再重啟,以至於後面每天定時重啟一下,來避免故障再出現,卻從來沒有想過去定位故障發生的原因,可能會覺得沒有類似經驗,不知道從何處入手,但經驗都是積累的,沒有人從一開始就能掌握所有技能。這些都是一種浮於表面,不求甚解的不良習慣。
怎麼求甚解,最簡單的方法就是多問幾個為什麼,直至瞭解到某個問題或某個知識點的本源。 我曾與一個現在微軟工作的研究生同學一起跟隨一家公司做專案需求調研,當時那家公司組織去黃山旅遊,我們就在黃山腳下的酒店裡整理文件,晚上大家一起吃飯喝酒,回到房間的時候,我已經只能在椅子上趴著了,卻發現我那同學不急不慢地從包裡拿出電腦,然後開機,然後,開啟了Eclipse……後來瞭解到是他一直在思考解決一個問題,吃飯的時候突發靈感,所以回來就馬上試驗一下。這個例子我並不是說我那同學酒後寫程式碼的能力有多強,而是說優秀者之所以優秀,在於他們那種遇到問題力求甚解的習慣與品質。但另一方面,求甚解並不意味著你要一頭鑽到底,花費大量功夫絞盡腦汁追溯到作業系統底層甚至硬體層次,因為畢竟工作不同於科研,是需要有高效產出的。一般而言,你瞭解到框架設計的基本原理及關鍵原始碼,或問題產生的根本原因與最優解決方案,防止同類問題再次發生即可。
4. 責任感,做一個靠譜的人
衡量一個技術人員是否合格的標準我覺得無外乎三個:有態度、有技術、有素養。這裡我將態度放在第一位,責任感是態度的一個重要表現。技術人員的責任感表現在哪些方面呢,我認為也是三點,是否具有自我驅動力、是否具有契約精神、是否具有主動擔當。自我驅動力就是把分配給你的任務真正當成自己的事情,保質保量按期去完成,主動去跟進你的依賴上游,主動跟團隊反饋問題與進度,主動去學習提升技能與工作效率;契約精神就是對自己承諾的事情說到做到,如果有變動也能及時溝通反饋協商;主動擔當就是勇於承擔自己應當承擔或者無人能承擔的責任,為團隊出謀劃策,儘自己能力協助他人。做到這三點,就是一個有責任感的人,就是一個靠譜的人,這樣的人就是不論是老闆或上級,還是同事都會信賴,尊重的人。
5. 延伸視野,不止於增刪改查
經常聽到一些同行抱怨,在這裡每天就是增刪改查,沒什麼意思,也沒什麼成長。面對這種抱怨,我想說的是技術人員的視野不應該這麼狹隘。任何一個Web專案,都會涵蓋從產品定位、需求分析到系統架構設計、資料庫設計、前後端開發、測試到部署上線、執行維護,其中涉及的每一個環節都包含一本書都無法說清的內容,都有你可以去學習的東西。有些人可能會說,我就是個開發,你讓我去管產品、架構、測試、運維的事?面對這種質問,我可能會說,那你接著去寫增刪改查吧。
我認為技術人員的價值,不在於你能寫出多麼優美的程式碼(當然不是說程式碼不需要寫得好),也不在於你能設計出一個多麼大而全高屋建瓴的架構,而在於你實實在在的解決問題的能力,在於你使用技術手段服務於業務的能力。增刪改查之外,你可以瞭解的東西太多,比如你瞭解你們專案的整體架構嗎,瞭解系統的部署方案嗎,瞭解整體業務流程嗎,瞭解所有的重點難點嗎,如果都瞭解了,那你能找出現有各環節存在的問題嗎, 能給出解決這些問題的具體方案嗎。所以,不要抱怨只有增刪改查了,延伸你的視野,從軟體工程的角度而不只是某個功能某個模組的角度來提升自己的認知與能力吧。因為只有延伸你的視野,拓寬你的知識面,才能提升你實實在在的解決問題的能力。如果你一直停留在這事不歸我管的認知,那你的水平能力與發展空間也就基本止步於此了。
6. 保持高度專注,提高工作效率
有人可能會說,你說的這麼輕巧,我每天寫程式碼都寫不完,哪有那麼多時間來學習、求甚解、延伸視野。對於這類同學,可能需要反問下自己為什麼會一直這麼忙,是技術水平與崗位不匹配還是工作效率太低?經歷過面試篩選的一般來說技術水平與崗位應該還是匹配的,那怎麼來提高工作效率,我認為一個主要方法是提高專注度。讀書的時候,你發現那些成績好的,往往下課或放學都不會一直捧著書看,而那些一天到晚都捧著書看的,往往成績都一般般,為什麼?因為成績好的在學習的時候他能高度專注,心無旁騖,所以效率很高,而那些一天到晚捧著書看的不可能無時無刻都能集中注意力,因為人的精力是有限的,有可能一會聽聽音樂,一會放空下大腦,久而久之養成這種拖泥帶水的習慣,想不低效都難。工作也一樣。
說一個我自己的例子,我屬於那種工作時候能高度專注的人,忙事情的時候可能一天下來水都忘了喝一口。臨畢業時曾在一家德企實習,一起進來的有一位同濟的同學與一位復旦的同學(這裡沒有任何學校偏見,純屬個例討論),每週主管會給我們三人分配同等工作量的任務,我一般兩到三天並能完成且不需要加班,而那兩位同學卻幾乎每天加班卻還常常完不成,最後透過我協助才按期完成。有幾天我特意注意了一下他倆的工作狀態,發現一會看看新聞刷刷微博,一會去衝杯飲料,戴著耳機聽著音樂,不急不躁,悠然自在得很。這種工作狀態,除非能力非常強經驗非常豐富,能輕車熟路三下五除二把事情處理完,不然,想不低效都難。
因此保持高度的專注,是提高工作效率的有效方式。工作效率提高了,你才能有一些時間去學習去求甚解去延伸視野,從而提升能力促進工作效率的進一步提高,這是一個良性的迴圈;反之,工作效率提不高,你就沒有足夠的時間去學習提升,當任務過來的時候,只會越來越忙,這是一個惡性的迴圈。
7. 提高軟實力,把握機會
對於很多IT技術人員來說,技術管理是其職業發展的一個方向,尤其在國內環境中,很難有在40歲以上還能安心寫程式碼的(除非你已經不需要靠工資生活了,寫程式碼純粹成了一種興趣)。從一個普通程式設計師成長為一個技術管理者,除了技術能力,還要有一定的軟實力,如溝通表達能力、組織協調能力、業務架構能力等。程式設計師普遍性格內斂,溝通表達的慾望與技巧相對欠缺,因此在平時的工作中,應儘可能有意識地在這些方面去提高自己,與人溝通表達好一點,主動擔當多一點,對業務瞭解深一點。機會永遠青睞有準備的人,只有平時的不斷積累,當機會降臨時,你才有足夠的能力與自信去迎接。
如何去尋找與把握技術管理方向發展的機會,一般而言,有如下幾種途徑:1. 去有潛力的創業公司;2. 去知名大企業鍍金,然後跳槽到中小企業;3. 現有上級離職;4. 公司新開業務線;5. 自己創業。任何一種途徑,都只是一種機會而已,能否把握一方面看機遇,另一方面看自己的積累與準備。
8 . 總結
失敗者失敗的原因各有不同,成功者的特質與習慣卻大同小異。IT技術人員的自我修養,可以從持續學習,求甚解,責任感,延伸視野,高度專注,軟實力等方面去提升。不積跬步無以至千里,只有沉下心來,一步一個腳印踏踏實實地提高、進步,才能在一個領域裡紮下根基,脫穎而出,才能從容應對所謂“中年危機”。
以上,共勉。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976940/viewspace-2713435/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IT技術管理者的自我修養
- 侃透了:運維人的自我修養運維
- 《前端的自我修養》前端
- 執行緒池的自我修養執行緒
- 程式設計師的自我修養程式設計師
- 一個前端開發者的自我修養前端
- Preact:一個備胎的自我修養React
- 論漏洞管理平臺的自我修養
- SegmentFault 技術週刊 Vol.26 - 年中覆盤 --- 程式設計師的自我修養程式設計師
- 技術人如何自我成長?
- 團隊管理、團隊人員技術培養 的 思考和交流
- iOS 程式設計師的自我修養 — 讀《程式設計師的自我修養 連結、裝載與庫》iOS程式設計師
- 切圖崽的自我修養-梳理Jquery APIjQueryAPI
- 一位賭狗前端的自我修養前端
- 程式設計師自我修養之實現自我的10大方法程式設計師
- 演員的自我修養:網路電影的顛覆與自我顛覆
- 《蝙蝠的“自我修養”》專案詳細介紹
- Kafka實戰(三) - Kafka的自我修養與定位Kafka
- 遊戲設計師的自我修養(三):理解玩家遊戲設計師
- 一個野生程式設計師的自我修養程式設計師
- 遊戲運營的自我修養:細緻、高效、敏感遊戲
- 程式設計師自我修養之IT人學習方法論—學習方向程式設計師
- 執行時應用自我保護(RASP):應用安全的自我修養
- 作為技術人的職業素養
- 程式設計師如何提高自我修養(4)程式設計師
- 測試技術老大應該有的修養
- 遊戲策劃的自我修養-核心競爭力篇遊戲
- 切圖崽的自我修養-SeaJs重要概念剖析JS
- 《程式設計師的自我修養》-讀書筆記程式設計師筆記
- 程式設計師的自我修養-編譯連結程式設計師編譯
- 讀書筆記 - 《程式設計師的自我修養》筆記程式設計師
- 《程式設計師的自我修養》讀書總結程式設計師
- 程式設計師的自我修養:溫故而知新程式設計師
- 技術人員的發展之路
- 技術人員的眼高手低
- 技術人員創業的短板創業
- 程式設計師自我修養之IT人學習方法論——學習誤區程式設計師
- 工作的事 【技術人員的困惑】