想法:現在各行各業都在做數字化轉型,但是不是每一個人都具備IT技能。你有你的專業,我有我的專長。說出你關於數字化的問題和挑戰,我來試著幫你找辦法。 |
Q
有朋友問:大龍老師,我大學的專業是計算機,工作半年了,做過一些IT專案,想請教您下如何提高個人技術能力。還有就是上海這邊主流的技術是什麼?
A
這是一個00後的朋友問的關於個人發展的問題,作為一個“過來人”,斗膽聊一聊我的看法。
1. 興趣
有沒有發現自己的興趣是啥?
如果不確定,問一下自己:下班了還在專研技術?早上一覺醒來就在想著這件事情?不一定認識Angelababy,但對Anders Hejlsberg,Ryan Dahl,Jeff Dean, Doug Cutting, Aaron Swartz等人和他們的成就是非常瞭解的。
如果答案肯定的,那麼八成是喜歡技術的。
我見過很多搞計算機搞得好的不一定是學計算機出身的,他們都對計算機技術很感興趣,很投入,動手能力很強。
如果你對程式設計不感興趣,那麼可能可以做到60分,但是很難做到90分以上。人還是要找一個自己喜歡的事情做。
2. 企業的要求
如果以畢業10年為期間,以下是企業對一個人的期望和要求:
1-3年,初級期望:能夠在別人的帶領下把事情做好。技能:熟練掌握和運用一門程式語言,能夠按照要求完成一般的程式設計工作。3-5年,中級期望:能夠獨立承擔開發工作,把事情做好。技能:深入掌握一門程式語言,並且對其他技術有了解。對設計的系統有整體的把握,能夠有質量地獨立完成設計和程式設計工作,解決技術難題。5-10年,高階期望:對業務和技術都有比較深和廣的掌握,能夠帶領團隊把事情做好。技能:瞭解業務領域知識,對領域涉及到技術有深度掌握,能夠設計和實現一個長期發展的系統,能夠培訓新人,能解決別人不能解決的問題。3. 最新的技術趨勢
現在技術領域非常多,技術發展很快。瞭解技術趨勢,一個渠道是企業的招聘廣告。我們來看一看今天(2021-3-4)開發企業應用的公司對後端Java工程師的技能要求:
名企阿里巴巴對後端Java工程師的要求:
1、軟體工程理論基礎紮實,熟悉分散式服務理論基礎。有軟體分層概念,熟悉設計模式及原則;
2、Java基礎紮實,熟悉Java集合類、多執行緒,掌握核心類及原理,熟悉JVM記憶體管理、引數調優、GC演算法;熟練使用Guava和Apache 工具包,熟悉併發程式設計,有良好的程式設計習慣;
3、熟悉Java Web開發。掌握Spring(SpringBoot、Spring MVC)、Mybatis應用及其原理;
4、瞭解SOA架構和微服務架構,熟悉SpringCloud、Dubbo等流行框架;
5、熟悉Linux和Shell程式設計。
有以下經驗者優先:
1、有大型分散式、高併發、高負載、高可用性系統設計和穩定性經驗;
2、有大型微服務架構、函式計算、雲原生相關專案經驗,對雲原生/ServiceMesh/Serverless相關有較深瞭解;
3、有Docker、Kubernetes等開源或自研的容器經驗熟悉阿里雲FC、AWS Lambda、Google Function、Azure Function等產品的。
某不知名公司Java開發工程師要求:
1. 3年以上Java後端研發經驗,有大型網際網路產品/支付產品開發經驗者優先;
2. 有紮實的Java基礎,熟悉JVM、多執行緒、高併發,對程式質量(包括:執行效率、資源開銷、可擴充套件性、可維護性、可讀性)有充分的理解;
3. 熟悉分散式系統的設計和應用,熟悉分散式、快取、訊息、負載均衡等機制和實現;
4. 熟悉Springboot,Mybatis框架;
5. 熟悉Oracle,MySQL、MongoDB、Redis、Zookeeper;
6. 具有較強的學習、分析問題解決問題的能力,具有良好的團隊合作精神和與人溝通的能力,能夠承擔較大的工作壓力;
4. 幾個誤區
玩技術計算機本身是工具,開發應用是為了解決某個問題。我們帶著某個問題去學技術、找問題的解決辦法。不以學了幾個技術為目標。以完成編碼為結束點工作中常碰到有些程式設計師會認為程式碼寫完了,能夠在自己的計算機上執行,工作就完成了。這樣理解太狹隘,程式碼編寫完成其實只是開始,這時使用者還沒有開始用,系統還沒有發揮它的價值呢。調整成:系統上線並且為客戶帶來他投資這個系統的期望回報作為這個階段工作的結束點,也就是把事做好。從這個角度看,程式設計只是一部分工作,但其他工作也是很重要和不可或缺的,這樣會對自己有更大提升。其實,我也怕自己落伍了,我也有問題問00後:你們都想什麼,喜歡什麼,又在擔心什麼?