一個(gè)程序員的成長之路,會經(jīng)歷多個(gè)階段,從初級工程師、中級工程師到高級工程師再到這個(gè)領(lǐng)域的專家,但是能成為技術(shù)專家的終歸是少數(shù),因此我們通常給自己規(guī)劃的是前幾個(gè)階段。剛畢業(yè)的時(shí)候就在想,如何能成為高級工程師?高級工程師到底是什么樣子的?有的人會說,工作3-5年后,自然就成為了高級工程師,這種以工作年限來定義的并不準(zhǔn)確,有的人或許工作好幾年卻在原地踏步,還停留在初、中級別,有的可能工作2-3年就成為了獨(dú)擋一面,攻堅(jiān)克難的高級工程師。那么,同樣是3、5年,為什么差距能這么大呢??
思考方式(分析問題)
我記得在我畢業(yè)后的第一家公司的時(shí)候,在開發(fā)中遇到了一個(gè)問題,我就跑去問老大,然后老大給我說:如果這個(gè)問題給你來解決,你會怎么做?當(dāng)時(shí)一臉懵逼?心里是這樣的
不給答案就算了,反而給他問住了,老大問你你得回答啊,于是就分析了一下,說出了自己的想法,老大說:這不是知道嗎?還跑來問我干嘛。從那以后,我都不敢輕易去問了,遇到問題了自己先分析,然后尋找解決方法,有的時(shí)候就算實(shí)在解決不了,也要先整理一下思路然后再去問。
為什么講這個(gè)故事呢?因?yàn)楹芏嗤瑢W(xué)都是這樣,在技術(shù)群里經(jīng)常有些同學(xué)會問一些沒有營養(yǎng)的問題,可能他們自己都還沒思考或者實(shí)踐過,就把問題仍出來,等待答案。在發(fā)現(xiàn)問題的時(shí)候就為自己設(shè)置了門檻,覺得自己解決不了,想找人幫忙解決。久而久之就形成了習(xí)慣,才會發(fā)現(xiàn)自己沒有獨(dú)立分析解決問題的能力,遇到難題就扔給別人,工作了多久都是原地踏步,技術(shù)沒有長進(jìn),這非常不利于我們的職業(yè)發(fā)展。
我們與高級工程師的差距可能就在我們的思維方式,分析問題的能力。遇到問題時(shí),先想想自己的解決方案,然后再問別人,這樣才會有比較,發(fā)現(xiàn)自己的不足,從而提升自己。
知識延伸 (總結(jié))
實(shí)現(xiàn)一個(gè)需求可能有多種方案,每一種方案可能都有利有弊,在開發(fā)趕需求階段,我們可能不會考慮哪種方案最好,或許根本就沒有考慮有幾種方案,只要實(shí)現(xiàn)了需求就行,管他效率還是封裝解耦呢。但是隨著需求的增加,項(xiàng)目的項(xiàng)目變大,原來的方案可能就滿足不了了,這個(gè)時(shí)候,我們就需要為以前的方案還債了。花費(fèi)更多的時(shí)間和精力。
高級工程師會考慮得更加全面,不止于眼前,考慮性能和可擴(kuò)展性,這樣才能應(yīng)對將來不變的需求和更高的性能要求。會進(jìn)行技術(shù)預(yù)研和考量,選擇合適的方案。善于總結(jié)和分享。自己進(jìn)步的同時(shí)也幫助他人進(jìn)步。
下面給大家分享一份成為高級工程師學(xué)習(xí)路線,如果想學(xué)習(xí)Java工程化、高性能及分布式、深入淺出。性能調(diào)優(yōu)、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java進(jìn)階群:478052716 ,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家。