一個六年Java程序員的從業總結:比起掉髮,我更怕掉隊

恍然間,發現本身在這個行業裏已經摸爬滾打了5、六年了,原覺得本身就憑已有的項目經驗和工做經歷怎麼着也應該算得上是一個業內比較資歷的人士了,可是今年在換工做的過程當中卻遭到了重大的挫折。詳細過程我就再也不敘述,在此,只想給你們說一說被拒絕的緣由,看看你們有沒有類似的經歷,和相似的感悟。程序員

面試官對個人答覆大體是這樣的,咱們不須要熟練工,咱們須要在某領域擁有超過常人的積累認知,和擁有整套完整思惟模式和優秀認知事物能力的人…他很誠懇地告訴我,你還年輕,真的應該好好地靜下心來,深刻地研究一些東西,本身寫一些東西,而不是這也用過,那也知道,可是多半都是侷限於僅僅見過,會用,卻歷來沒有認真思考過其代碼背後蘊含的思想,更少有人研究過源碼,進而體會大師們在某些問題的解決上秉承的思想和思惟的風格。我的感受,這也算是國內大部分程序員最讓人悲哀的地方了,固然這也與外界浮躁氛圍的蔓延不無關係。面試

不瞭解這一行的人總以爲程序員都是代碼民工,若是本身也認爲本身是敲代碼的機器的話,我誠懇地建議您儘早轉行吧,也許我這麼說會得罪傷害一些同行,畢竟轉行對任何一我的來講都是有至關的風險和挑戰的。不過這絕對應該是善意的忠告。相反,我強烈地認爲,程序員應該是最有活力和最有思想的一個羣體,只要你不願讓本身浮於表面,更重要的是,必須勤于思考。若是你承認我這句的話,就請您繼續往下看看個人感慨,不然,那就但願您好好利用好本身的時間作您最須要作的事吧。sql

因爲面試中被問到Spring,MyBatis的時候,讓面試官問得人仰馬翻,啞口無言,因此回來以後洗心革面,下決心要把Spring,MyBatis好好研究個明白,再也沒法容忍本身只知其一不知其二了。編程

清醒的認識本身安全

我一直擔驚受怕,過去,多是由於我年輕,但如今,我已經不是那麼年輕了,我仍然發現有不少事情讓我懼怕。性能優化

當年紀愈來愈大後,我開始變得不能加班。我開始用更多的時間和家人在一塊兒,而不是坐在計算機前(儘管這樣,她們還是抱怨)。我在本地教育委員會社區裏提供一些幫助,還組織開源興趣小組參加活動。多線程

我在思考,爲何之前會把如此多的時間所有用在編程上。大量的編程。那是我渴望深刻研究一個類庫,一個框架或一門技術。架構

如今的技術的學習曲線的增長,讓個人忍耐性愈來愈低。各類新技術,由於新奇讓人興奮,但最終變成一場場爭論。我愈來愈沒法忍受這些充滿市場宣傳氣息的喧囂。我對技術看重的是穩定,清晰。併發

據不徹底統計,截至目前(2017.07)爲止,中國Java程序員的數量已經超過了100萬。並且,隨着IT培訓業的持續發展和大量的應屆畢業生進入社會,Java程序員面臨的競爭壓力愈來愈大。那麼,做爲一名Java程序員,怎樣努力才能快速成長爲一名高級的程序員或者架構師,或者說一名優秀的高級工程師或架構師應該有怎樣的技術知識體系,這不只是一個剛剛踏入職場的初級程序員,也是工做三五年以後開始迷茫的老程序員,都必需要面對和想明白的問題。針對這些問題我總結出一個Java程序員的工做2-5年成長路線圖。框架

閱讀源碼

程序員天天都和代碼打交道。通過數年的基礎教育和職業培訓,大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。可是,會讀代碼的並不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。這也形成了不少錯誤看源碼的方式。

那要如何正確的分析源碼呢?

分佈式架構

隨着咱們的業務量愈來愈大和越重要,單體的架構模式已經沒法對應大規模的應用場景,並且系統中決不能存在單點故障致使總體不可用,因此只有垂直或是水平拆分業務系統,使其造成一個分佈式的架構,利用分佈式架構來冗餘系統消除單點的故障,從而提升整個系統的可用性。同時分佈式系統的模塊重用度更高,速度更快,擴展性更高是大型的項目必不可少的環節。

微服務
關於微服務架構的取捨
一、在合適的項目,合適的團隊,採用微服務架構收益會大於成本。
二、微服務架構有不少吸引人的地方,但在擁抱微服務以前,也須要認清它所帶來的挑戰。
三、須要避免爲了「微服務」而「微服務」。
四、微服務架構引入策略 – 對傳統企業而言,開始時能夠考慮引入部分合適的微服務架構原則對已有系統進行改造或新建微服務應用,逐步探索及積累微服務架構經驗,而非全盤實施微服務架構。

性能優化

咱們不只僅對項目要指揮若定,還要能解決一切性能問題。只有深刻學習JVM底層原理,Mysql底層優化以及Tomcat調優,才能達到知其然,知其因此然的效果。除了性能優化以外,也能提供通用的常見思路以及方案選型的考慮點,幫助你們培養在方案選型時的意識、思惟以及作各類權衡的能力。

併發編程

主要培養編程者深刻了解最底層的運做原理,增強編程者邏輯思惟,這樣才能寫出高效、安全、可靠的多線程併發程序。

開發工具

經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。用於監控持續重複的工做,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。 能夠有效、高速的處理從很小到很是大的項目版本管理

項目實戰

要想立足於互聯網公司,且能在互聯網浪潮中不被淹沒,對於項目的開發實戰演練是沒必要可少的技能,也是對自身能力的一個衡量,有多少的量對等於得到多少的回報。看似簡單的一個項目需求圖譜,其中的底層原理,實現原理又能知道多少?

相關文章
相關標籤/搜索