1. 程式人生 > >Java程式設計師在工作的同時應該具備什麼樣的能力?

Java程式設計師在工作的同時應該具備什麼樣的能力?

前言:

從我個人的角度來看,這些做了3-5年的所謂高階程式設計師,充其量,就是修修改改寫了幾行程式碼,他們的工作性質,做3年,5年,甚至10年,我相信也進步不了什麼。

尤其是現在市場上大量的外包需求,要求快速的切入,開發的程式設計師,甚至還不瞭解所以然,就已經做出東西了,簡直就跟走過場似的,要想在這種環境下成長,必須要靠自己多學、多想、多動手,我是真心的希望中國的程式設計師可以一代勝過一代,代代出英才。

說回之前的話題,上面的現象存在就有一定的合理性,我不做過多的評價,但從我自己創立的網際網路公司金融堂來講,對高階程式設計師有這麼一些要求:

1、必須有一定的業務分析與流程意識,能夠做簡單的業務設計方案與功能分解。

2、有一定的效能優化經驗與能力,針對大資料(至少100W以上)做過設計處理與功能開發。

3、有小團隊(5人)的管理經驗,在人有協助的情況下,能夠基本駕馭10個人月工作量的專案。

4、必須會一種語言的設計與技能開發,雖不說精通,但是也要擅長,能夠處理日常多數情況,少數情況,通過摸索與嘗試後可以解決。

第一階段-——三年

我認為三年對於程式設計師來說是第一個門檻,這個階段將會淘汰掉一批不適合寫程式碼的人。這一階段,我們走出校園,邁入社會,成為一名程式設計師,正式從書本上的內容邁向真正的企業級開發。我們知道如何團隊協作、如何使用專案管理工具、專案版本如何控制、我們寫的程式碼如何測試如何在線上執行等等,積累了一定的開發經驗,也對程式碼有了一定深入的認識,是一個比較純粹的Coder的階段。

第二階段——五年

五年又是區分程式設計師的第二個門檻。有些人在三年裡,除了完成工作,在空餘時間基本不會研究別的東西,這些人永遠就是個Coder,年紀大一些勢必被更年輕的人給頂替;有些人在三年裡,除了寫程式碼之外,還熱衷於研究各種技術實現細節、看了N多好書、寫一些部落格、在Github上分享技術,這些人在五年後必然具備在技術上獨當一面的能力並且清楚自己未來的發展方向,從一個Coder逐步走向系統分析師或是架構師,成為專案組中不可或缺的人物。

第三階段——十年

十年又是另一個門檻了,轉行或是繼續做一名程式設計師就在這個節點上。如果在前幾年就抱定不轉行的思路並且為之努力的話,那麼在十年的這個節點上,有些人必然成長為一名對行業有著深入認識、對技術有著深入認識、能從零開始對一個產品進行分析的程式設計師,這樣的人在公司基本擔任的都是CTO、技術專家、首席架構師等最關鍵的職位,這對於自己絕對是一件榮耀的事,當然老闆在經濟上也絕不會虧待你。

就是保持良好的心態。古語說得好,只要功夫深,鐵杵磨成針,面試的成功與否,在於平時的積累,臨時抱抱佛腳,看兩道面試題是沒有用的,只要平時足夠努力,成功是水到渠成的事情,平時不怎麼研究技術的,那也就是個聽天由命的事情,只要充分地展示平時自己的所學就可以了。

因此在我看來,不要把面試當作面試,當做一次技術交流,把面試的心態從我要找到一份工作轉變為我要通過面試去發現不足、提升自己,這樣就會平和多了,即使失敗也不會有太多失望的感覺。

另外,如果平時自己熱衷於研究技術的朋友,真的要有自信,不要覺得別人面試你別人就比你厲害。面試官未必比你優秀,他問的問題往往都是他平時研究得比較多的問題,你一樣有很多自己的研究面試官未必知道。

另外要想立足於網際網路公司,且能在網際網路浪潮中不被淹沒,對於專案的開發實戰演練是不必可少的技能,也是對自身能力的一個衡量,有多少的量對等於獲得多少的回報。看似簡單的一個專案需求圖譜,其中的底層原理,實現原理又能知道多少?你搭建一個完整的B2C專案平臺到底需要多少知識?這一切都是需要我們考量的。

首先 ,你需要有深度的Java基礎知識:你會開始看《Java程式設計思想》、《Effective Java》。這兩本書絕非普通的基礎,而是至少擁有1~2年卓越的Java開發者才有可能學完,而且這兩本書一般要讀完需要1年左右的時間。

其次 ,你需要看一些開源框架的原始碼,如果單單使用框架是實現業務而不去深入框架核心,架構思想,過幾年有可能會發現你脫離了框架什麼活也幹不成。

成長為架構師

其實架構師並沒有想象中的那麼難,但是你要看是什麼公司的架構師,我見過一個小企業的架構師,工作八年了,但是感覺真的水平就只有阿里P6這樣的級別,其實能否成為架構師跟機遇有很大關係,比如一個程式設計師,以上都做到了,但是公司並沒有給他這個機會去做,一個真正架構的機會。因為之前的架構師不離職他就沒有機會,這就是現實!

其實更多的是技術方面的東西,我自己收集整理了一套Java架構方面的路線圖,分享給目前工作2~6年左右的Java程式設計師們,可以梳理一下自己的技術,這些東西可能你們平時在工作中接觸過,但是缺少的全面系統的學習,所以掌握的都不深,希望看了路線圖以後大家知道從哪裡開始入手學習。

除了這份路線圖,自己還收集了一些關於Java高併發、分散式、JVM、spring原始碼分析等相關的技術資料一併分享在我的Java高階交流qq群:698581634 進群免費領取!

本文完,希望能幫助各位在成為架構師的道路上披荊斬棘!