1. 程式人生 > >碼農,你和阿里P8架構師的區別只存在於技術上?你的覺悟呢?

碼農,你和阿里P8架構師的區別只存在於技術上?你的覺悟呢?

 

今天這篇文章,我們不從這些客觀因素上去分析,就如題,你沒有架構師的思想覺悟,那麼你只能做一輩子的碼農,我結合自己的一些經歷和經驗,以及從身邊優秀的人身上學習到的經驗,從主觀上去總結幾點,與所有人共勉,希望能夠讀完。

文末有免費的架構資料放送,有需要的可以去領取。歡迎大家轉發,評論。

不要吝嗇投資自己

和朋友一起搓一頓大概人均幾十或者百把塊錢,基本上我們都很隨意,根本不會覺得這很貴或者很浪費。但是每當我們去買書或者去買一些優質的視訊教程的時候,很多人會覺得很貴,甚至不太願意出這個錢。

的確,技術書籍都很貴,動不動就50-100的,我想說的是什麼呢?永遠不要吝嗇給自己投資,我研究生讀的是通訊專業,在學校自學的Java,我看過網上很多的免費視訊教程,免費的教程有兩個特點:一是入門的,二是質量不高的。但是要想真的提升自己,這些入門的教程是不夠的,網上有些收費的教程確實不錯,我讀書那會兒也買過好幾個專案視訊跟著認認真真學習,收穫頗豐。

而且現在也是知識付費時代了,入門資料一大堆,真正能提升自己Level的東西,哪怕花點錢,給自己投資永遠是穩賺的生意。不要在乎那點錢。你和別人的差距,往往真的就是這一兩百、兩三百塊錢給拉開的。因為知識創造的價值要比這幾百塊錢來的更猛。

站在巨人的肩膀上

我們平時在開發的時候,會遇到一些功能上的東西要實現,當然咯,如果開發經驗豐富,基本知道用什麼技術去實現,但是對於開發經驗不足的朋友來說,首先不要想著自己去造輪子,除非是非常冷門的一些技術,否則絕大多數現在網際網路上都有了較多的解決方案,我們可以用來參考改進。軟體開發,說的詼諧一點,就是 copy+改。因為工作不是學習,它是有deadline的。

還有一點,我們開發一般都會有很多類庫,同一個功能可能有多個類庫都可以實現。就像移動、聯通和電信都可以滿足你通訊的需求一樣,但是你選擇哪一個,就看你自身的需要了。我們在實現某個功能的時候也是,如果能夠選擇一個很好的開源類庫,那麼必將是事半功倍,不管是從效率和穩定性上來說,都比我們自己實現要好得多。所以我們要站在巨人的肩膀上。

瞭解資料結構和演算法

就像武俠小說裡說的那樣,招式只是形式,要練神功,必須懂心法。資料結構和演算法就是所謂的心法。我不是說要去掌握所有的資料結構和演算法的原理以及實現,這也不太現實,但是那些基本的、經典的我們需要去掌握,甚至可以自己實現。這是內功。

現在好多面試也會問這些東西,特別是針對於應屆生,不管你是本科還是碩士,基本上資料結構和演算法的東西是必問的,如果你還不知道什麼是二叉樹、什麼是快速排序,如果你還不知道什麼是時間複雜度的話,那麼確實要給自己充充電了。

我之前也連載過一些經典的資料結構和演算法,也希望能夠幫助到大家:最常用的經典資料結構和演算法彙總。

用熟練一款開發工具

我在學校的時候,一直在用 Eclipse 這個編輯器來寫程式碼,基本的操作我也都會了,但是有一點就是 Eclipse 有點卡,而且動不動就卡,一言不合就卡。不過用習慣了,就懶得換了。

工作了後,我同事在用 IDEA,我也用了,兩個一對比也是天壤之別,我就不說開發效率了,無疑是提升了好幾倍,最起碼不卡頓。我就說說使用心情,那也絕對是比 Eclipse 爽的。但是 IDEA 我沒有那麼的熟練,也在繼續使用中。

所以選擇一款好的開發工具很重要,不僅提升開發效率,最重要地,是你的心情好了,心情一好,幹什麼都來勁。

寫程式碼要規範

也許我一開始自學程式設計的時候,就跟著一些視訊教程的緣故,受到那些大牛的影響,所以一開始我寫程式碼就比較規範。我特別看不慣下面這種程式碼:

Integer index=0; if(s_user.getNum()==0){ redisUtil.setInfo(s_user,0,-1); } 

這幾行程式碼沒有任何意義,我就是舉個例子而已。如果是我寫,我會寫成下面這樣:

Integer index = 0; if(null != sUser && 0 == sUser.getNum()){ redisUtil.setInfo(sUser, 0, -1); } 

不管是空格上,還是命名規範上,甚至是空指標異常上,這些都是舉個小例子,我們寫程式碼一定要規範,這也是一個人有沒有一個良好的習慣和態度的體現。最起碼,可能你同事也會看你程式碼,請善待同事,程式設計師何苦難為程式設計師。

不停地給自己充電

我們不能一直啃老本,幹軟體這一行,技術更新非常快,今年上半年學的技術,估計下半年就有了新的版本,我們要一直不停地給自己充電,不停地學習。哪怕是不停的總結自身不足,也比停滯不前要好,最起碼自己沒閒著。

我們還要有一定的憂患意識,公司每年都會輸入新的年輕血液,有初學者,也有牛逼人物,我們不要讓僱主逼著自己去學習,自己要有主動充電意識,這樣才不會被周圍的人給超越,才不會給後來者給超越。但是這都不是最根本的原因和出發點,最根本地,還是為了提升自己的能力。

計劃、堅持與執行力

我一直認為,一個優秀的人都應該是好的時間管理者,不管我們現在的能力如何,如果我們能合理的安排時間,分清主次,步步為營地去執行,堅持下來,我們肯定能收穫很多,而且進步很快。

我從讀研那會兒開始,每天學習,每週都會寫幾篇技術文章,總結好了,就寫到部落格裡,沒總結完的,就放在本地繼續完善。我當初堅持寫部落格的目的很簡單:鞏固知識,形成系統,等到畢業找工作時可以很自豪的把部落格地址放到簡歷上。這些我都做到了,我在CSDN寫部落格堅持三年多了,這期間我受益良多,不僅僅是為了找工作,也是個人品牌的積累,這非常重要。當由量變形成質變的那一刻,效果是很可怕的。如果你還沒有部落格,那希望看完這篇文章之後,去註冊一個吧。

壞習慣養成很簡單,好習慣養成很難,但是不管哪個,養成之後,都是蝴蝶效應。是良性迴圈還是惡性迴圈,就看自己了。

放低自己的姿態

是在分享還是在吹逼,這點我們一下子就能辨別出來,我也有所謂的朋友經常在我面前吹牛逼,可能這是一個人的本性,每次跟我聊天都要海吹一波,我只能苦笑一番。這是做人的一種方式。

我是同濟大學碩士畢業,可能相比於大部分人來說,我這個背景還算可以了,但是我一直為人低調,真心待人,從來不會因為你是大專或者一個不起眼的學校畢業的,我就在你面前吹牛逼,說一些大話,站在高處俯視你。我覺得人與人之間靠的是真誠,我真誠待人,別人肯定也會真誠待我。而不是我讓別人覺得我有多牛逼,那樣換來的也不是真正的友誼。

任何人都是從0開始往上爬的,你的背景好,可能快一點,別人差點,可能就會慢點,但是這不能說明別人就不夠努力,我很佩服那些先天條件差,但是卻非常努力的想要提升自己的人,我特別願意給這些人幫助。我的粉絲當中,有很多很多還在學校讀書的學生,也有很多大專生,這些粉絲在微信裡跟我聊天,讓我指點指點(當然,指點不敢當,我一般都是建議和分享),我都會耐心的把自己的想法結合他們的處境,給一個我覺得比較好的建議。別人來問我是看得起我,我能幫上忙的,基本上都義不容辭。

所以,如果哪天,我們牛逼了發達了,一定不要趾高氣昂。人,不能有太多的稜角。這個社會,還是要靠朋友的。善待周圍的朋友,放低自己的姿態,是對別人的一種尊重,同時,也是自己修養的體現。它也是決定一個人能否成功,能走多遠的關鍵因素之一。

建立職業發展目標

不管你現在處境如何,不管你之後的規劃如何,你需要理清你的職業發展方向,是做管理還是走技術?做管理,那你就需要在努力工作的同時培養好管理的能力;做技術,架構師就是你努力的方向。下面給大家分享架構師必備的技術知識,你看看你瞭解多少。

1、來自架構師的架構解讀

 

架構師是一個充滿挑戰的職業,知識面的寬窄往往決定著一個架構師的架構能力

知識面的寬廣對於一名出色的架構師來說是必不可少的技能,也許很多人對架構的理解還停留在設計模式,重構,SOA等等的軟體層面,然而這僅僅是非常基本的東西,架構師的腦子裡不光需要知道讓軟體如何高效的執行,還需要知道如何去結合網路,儲存,甚至一些檔案系統的特性,比如GFS,NFS,XFS,NTFS等等,而且架構師還需要知道一些程式語言的特性,C,C++,Java,PHP,Python,Lisp,JS等等,現在是一個混合程式設計的時代,只瞭解一種語言,即使再精通也會使你在架構系統的時候受到很大的侷限性。

再有一點,架構師需要對資料庫技術有深刻的認識,因為現今是一個資訊時代,大量的資訊都是需要儲存並檢索的,資料庫設計的不好,將會嚴重影響系統的效能,而這一點往往會被我們的設計人員忽略,他們只知道遵守那些正規化而不會結合資料的特性去設計資料庫。

從一個程式設計師到架構師是一個很大的變化,架構師需要從大的方面考慮,而不只是考慮這個模組該用哪種設計模式去開發。

總之,想要成為架構師,需要有耐心,不斷學習,拓寬自己的視野,不僅僅侷限於自己眼前的專案

2、架構知識體系

效能優化

 

微服務

 

開源框架

 

架構築基

 

團隊協作

 

B2C商城專案實戰

 

如果你滿足開頭的那些條件,這些知識點給你,你覺得你離一名合格的架構師還有多遠。需要更加清楚的架構思維路線圖,我這裡可以免費提供給你的。

3、十一道BAT面試專題

01、按執行緒池內部機制,當提交新任務時,有哪些異常要考慮?

02、HashMap底層執行原理

03、hashtable和ConcurrentHashMap如何實現執行緒安全?

04、jvm的記憶體佈局,垃圾回收機制

05、類載入機制裡的,雙親委派模型

06、闡述事務的隔離級別和傳播屬性

07、高併發下,如何做到安全的修改同一行資料?

08、A服務呼叫B服務多介面,響應時間最短方案

09、A系統給B系統轉100塊錢,如何實現?

10、動態代理的幾種實現方式及優缺點

11、多執行緒下讀概率遠遠大於寫概率,如何解決併發問題?

這十一道面試題出來,是否有種意猶未盡的感覺,作為所有程式設計師擊破腦門都想進的大廠,十一道題當然不夠,但你能完美的給出這些題的答案嗎?

4、架構視訊學習

分享一些免費的架構學習的視訊資料,想要的可以自己去領取。

當然還有更多,這邊就不一一列舉了,你如果覺得你能全部吃下,也不擋著你要到更多,反正都是免費的。

歡迎加入Java高階架構學習交流群:939420159
本群提供免費的學習指導 架構資料 以及免費的解答
不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導 進群修改群備註:開發年限-地區-經驗 方便架構師解答問題
免費領取架構師全套視訊!!!!!!!!