當(dāng)前位置:首頁(yè) > IT技術(shù) > 移動(dòng)平臺(tái) > 正文

Android工程師轉(zhuǎn)型Java后端開(kāi)發(fā)之路,自己選的路,跪著也要走下去!
2021-08-10 18:29:09

?

每日早8點(diǎn)半,精品技術(shù)文章準(zhǔn)時(shí)送上

?

Android工程師轉(zhuǎn)型Java后端開(kāi)發(fā)之路,自己選的路,跪著也要走下去!_分布式鎖

本文是讀者jianfeng投稿的面試經(jīng)驗(yàn)

恭喜該同學(xué)成功轉(zhuǎn)型

?

目錄:

毅然轉(zhuǎn)型,沒(méi)頭蒼蠅

制定目標(biāo),系統(tǒng)學(xué)習(xí)

面試經(jīng)歷

?

毅然轉(zhuǎn)崗,沒(méi)頭蒼蠅

首先,介紹一下我的背景。本人坐標(biāo)廣州,2016年畢業(yè)于一個(gè)普通二本大學(xué),曾經(jīng)在某機(jī)構(gòu)培訓(xùn)過(guò)Android。

?

2018年初的時(shí)候已經(jīng)在兩家小公司工作干了兩年的android開(kāi)發(fā),然后會(huì)一些Tomcat、Servlet之類(lèi)的技術(shù),當(dāng)時(shí)的年薪大概也就15萬(wàn)這樣子。

?

由于個(gè)人發(fā)展規(guī)劃,在當(dāng)時(shí)就已經(jīng)決定了轉(zhuǎn)型干Java后端開(kāi)發(fā)了,但是由于之前沒(méi)有相關(guān)經(jīng)驗(yàn),當(dāng)時(shí)好像一個(gè)沒(méi)頭蒼蠅一樣,胡亂買(mǎi)了幾本書(shū)籍,準(zhǔn)備學(xué)習(xí)Spring MVC,MyBatis的XML配置方式。

?

但是當(dāng)時(shí)有個(gè)同事給我提了一句,現(xiàn)在都流行Spring Boot了,然后我就轉(zhuǎn)學(xué)Spring Boot,百度網(wǎng)上看了幾篇文章,寫(xiě)了幾個(gè)Demo就以為自己很吊了。

?

接著又從同事的那里得知,還有個(gè)Spring Cloud的東西,現(xiàn)在很流行。然后又轉(zhuǎn)戰(zhàn)Spring Cloud,同樣看了幾篇博客寫(xiě)了幾個(gè)demo之后覺(jué)得自己叼的不行~(汗顏)

?

接下來(lái),還是熟悉的套路,同事說(shuō)jenkins很吊,docker很吊、k8s很吊呀,還有什么領(lǐng)域驅(qū)動(dòng)模型,DDD啊,被牽著鼻子走。

?

反正聽(tīng)到別人說(shuō)那個(gè)牛逼就學(xué)習(xí)那個(gè),但是每個(gè)技術(shù)都是demo入門(mén)級(jí)別的掌握水平。我當(dāng)時(shí)甚至連Controller/Service/DAO/Mapper、DO/DTO/VO之類(lèi)的基本常識(shí)都不會(huì)。

?

?

制定目標(biāo),系統(tǒng)學(xué)習(xí)

這一切的轉(zhuǎn)折點(diǎn)在2018年5月,當(dāng)時(shí)覺(jué)得這又搞一下,那又搞一下,不行啊。沒(méi)有系統(tǒng)的學(xué)習(xí),各種東西都掌握的不好。

?

于是沉下心來(lái)開(kāi)始進(jìn)行系統(tǒng)的專(zhuān)題性學(xué)習(xí),并且自己定下對(duì)每個(gè)技術(shù)的學(xué)習(xí)目標(biāo)。官網(wǎng)文檔開(kāi)始,先掌握其基本用法,然后跑通最基礎(chǔ)的demo之后,基于這個(gè)demo,一步步調(diào)試,讀懂其底層源碼,邊讀邊寫(xiě)筆記,這個(gè)過(guò)程及其漫長(zhǎng)和煎熬。

?

在這個(gè)過(guò)程中,我瘋狂的搜索了各種視頻教程,博客,公眾號(hào),各種途徑都用上了。

?

給我的感覺(jué)是,確實(shí)有視頻、博客講的挺好,但是極少。很多講的還是比較淺,點(diǎn)到為止。此時(shí)需要我們自己進(jìn)一步深入到源碼層面研究,一點(diǎn)點(diǎn)啃,一點(diǎn)點(diǎn)摸索,邊啃邊記筆記。

?

在這一段時(shí)間,利用了很多業(yè)余時(shí)間學(xué)習(xí),基本上可以保證工作日每天學(xué)習(xí)2~3個(gè)小時(shí),周末每天平均12小時(shí)。

?

(可能這塊大家不是很相信,大家都是上班,為什么我就有時(shí)間學(xué)習(xí)呢。我要說(shuō)的是,時(shí)間是自己控制的,可以利用坐地鐵時(shí)間或者午休時(shí)間)

?

就這樣準(zhǔn)備了大半年,截止2019年3月,因?yàn)閷?duì)于當(dāng)前公司的業(yè)務(wù)場(chǎng)景和薪資不太滿意,所以忍不住想出去跳槽了。

?

在這個(gè)過(guò)程中,尤其前期,我經(jīng)歷了至暗時(shí)刻,摸索學(xué)習(xí)源碼幾近崩潰,如同黑暗森林一般。有的源碼我反復(fù)讀了不小5遍,畫(huà)圖、記筆記,一遍遍的強(qiáng)化總結(jié)。

?

然而,正是這段時(shí)間,我的整個(gè)知識(shí)棧飛速擴(kuò)張,并且因?yàn)槲覍W(xué)完一個(gè)東西,都會(huì)自己畫(huà)圖,一步步給自己講解。這種學(xué)習(xí)方式讓我對(duì)新東西的掌握及其扎實(shí),效果比那種泛泛而學(xué)好很多。

?

在這大半年的時(shí)間里,學(xué)到了包括以下內(nèi)容:

?

Java基礎(chǔ)

JDK集合、并發(fā)包內(nèi)容,這些基本上都是研究到底層源碼了。比如volatile,AQS之類(lèi)的,已經(jīng)到了熟練于心,隨時(shí)可以手工畫(huà)圖的地步。同時(shí)專(zhuān)門(mén)去學(xué)習(xí)了設(shè)計(jì)模式,并且可以初步嘗試在公司項(xiàng)目中使用。

?

微服務(wù)架構(gòu)

現(xiàn)在比較流行的微服務(wù)架構(gòu),這一塊選擇了學(xué)習(xí)比較熱門(mén)的Spring Cloud。將Spring Cloud的Eureka/Ribbon/Feign/Hystrix/Zuul這些套件深入理解其源碼實(shí)現(xiàn),對(duì)其底層源碼熟爛于心。

?

分布式技術(shù)

比如一些分布式事務(wù),分布式鎖,分布式接口冪等性,分布式基礎(chǔ)理論CAP之類(lèi)的東西,這些也要掌握它們的場(chǎng)景以及對(duì)應(yīng)的解決方案。

?

這里說(shuō)一下,其實(shí)本人就職的公司并沒(méi)有這些挑戰(zhàn),甚至是單機(jī)系統(tǒng),但是這一塊的技術(shù)方案其實(shí)是可以平時(shí)用自己公司項(xiàng)目來(lái)設(shè)想一下,設(shè)想做成分布式之后,會(huì)面臨什么問(wèn)題,應(yīng)該怎么解決。

?

ps:順便提一下,這塊本人是受了石杉老師的文章的啟發(fā),也推薦大家看一下,在公司沒(méi)有高大上的高并發(fā)項(xiàng)目時(shí),應(yīng)該怎么應(yīng)對(duì)?

?

IO、網(wǎng)絡(luò)基礎(chǔ)

這一塊個(gè)人覺(jué)得還是很重要的,比如一些網(wǎng)絡(luò)基礎(chǔ),Linux IO模型,Java里面的BIO、NIO、AIO、這些內(nèi)容其實(shí)還是很有必要掌握的。

?

ElasticSearch

這個(gè)是分布式搜索引擎,目前大熱,一般互聯(lián)網(wǎng)公司都或多或少用到了es,這一塊是需要對(duì)其分布式架構(gòu)原理,搜索原理都搞的門(mén)兒清才行。

?

緩存、MQ

因?yàn)槊鎸?duì)高并發(fā)場(chǎng)景,緩存MQ這兩塊也是必問(wèn)的,所以專(zhuān)門(mén)看了一些緩存架構(gòu)實(shí)戰(zhàn)的視頻教程。對(duì)于MQ的話,專(zhuān)門(mén)對(duì)RabbitMQ、Kafka這兩種深入研究。

?

項(xiàng)目經(jīng)驗(yàn)

項(xiàng)目經(jīng)驗(yàn)這一塊是硬傷,確實(shí)來(lái)說(shuō)這一塊在原來(lái)公司里面不是很大的場(chǎng)景。

?

高并發(fā)這一塊平時(shí)確實(shí)積累不到很多知識(shí),只能通過(guò)想象,當(dāng)系統(tǒng)遇到的并發(fā)量提升10倍、100倍的時(shí)候,系統(tǒng)應(yīng)該如何設(shè)計(jì)?

?

當(dāng)遭遇到高并發(fā)流量時(shí),用一些什么樣的方案可以支撐?采用緩存還是MQ,采用了之后又什么坑,又如何解決,這一塊需要自己深度思考一些細(xì)節(jié)問(wèn)題。

?

?

數(shù)據(jù)結(jié)構(gòu)、算法

這一塊沒(méi)啥好說(shuō)的,就是靠平時(shí)積累以及l(fā)eetcode刷題。我刷了幾十題這樣,加上平時(shí)積累的一些數(shù)據(jù)結(jié)構(gòu)也是比較夠用的。

?

除此之外,在面試前還突擊了一下那些場(chǎng)景的面試題,包括MQ、Mysql、分庫(kù)分表、之類(lèi)的常見(jiàn)互聯(lián)網(wǎng)面試題。

?

?

同時(shí),石杉的架構(gòu)筆記公眾號(hào)很多精品文章也讓我受益良多,比如公眾號(hào)的并發(fā)系列、分布式系列、微服務(wù)系列。

?

文章分析了很多面試高頻熱門(mén)考點(diǎn),我在面試時(shí),很多問(wèn)題都直接命中。

?

因此,我將自己的面經(jīng)投稿到平臺(tái),希望分享給更多朋友。同時(shí)也是對(duì)石杉老師表示感謝,希望公眾號(hào)越做越好!

?

有點(diǎn)跑題。。。喝杯水繼續(xù)!

?

看到這里,可能部分同學(xué)覺(jué)得不可能,在不到一年的時(shí)間里從一個(gè)啥都不懂的小白,做到能熟練掌握這么多東西的?

?

我想說(shuō)的是,每個(gè)人的情況不一樣,我這邊學(xué)習(xí)一個(gè)東西起碼是經(jīng)過(guò)5遍之后才能熟練記住,有的甚至看了不下10遍,反復(fù)的畫(huà)圖操練,自己對(duì)自己講解。

?

所以,最重要的是肯花時(shí)間去學(xué)習(xí)。甚至我可以透露一下,我除了學(xué)了這些之外,我還學(xué)習(xí)了一些大數(shù)據(jù)的技術(shù),比如Hadoop的HDFS、Kafka源碼、Spark開(kāi)發(fā)、Storm之類(lèi)的

?

?

面試經(jīng)歷

接下來(lái)說(shuō)下我的面試經(jīng)歷,在面試之前,本人基于職業(yè)發(fā)展的考慮,投簡(jiǎn)歷基本上都是瞄準(zhǔn)比較有點(diǎn)知名度的互聯(lián)網(wǎng)公司。

?

面試策略一開(kāi)始也是想先找?guī)讉€(gè)小公司面面看,試試水。但是,好像今年行情確實(shí)不怎么樣,往往投了很久沒(méi)啥反應(yīng)。

?

后面一咬牙,干脆直接投心儀的公司,后面通過(guò)投簡(jiǎn)歷和內(nèi)推的一些手段,拿到了5家公司的面試邀請(qǐng)。

?

我這邊面試的僅有5家公司,這些公司的面試套路基本上都是差不多。

?

1面問(wèn)基礎(chǔ),二面問(wèn)項(xiàng)目,3面hr

?

?

某汽車(chē)服務(wù)平臺(tái)(拿到offer)

首先面試題是有一些算法的,比如讓你寫(xiě)一個(gè)遞歸算法,還有一些二分查找之類(lèi)的題目,總體來(lái)說(shuō)還算比較簡(jiǎn)單的算法題了。

?

1面的時(shí)候基本上就是自我介紹,然后問(wèn)問(wèn)比較熟悉那一塊,然后講了一些AQS原理。當(dāng)時(shí)是手工在紙上畫(huà)圖的。

?

給面試官講完AQS之后,又讓我把話題扯到了volatile這一塊,我就從CPU內(nèi)存模型、Java內(nèi)存模型,然后結(jié)合CPU高速緩存的數(shù)據(jù)結(jié)構(gòu)講解一下可見(jiàn)性問(wèn)題是如何出現(xiàn)的。

?

之后又問(wèn)了一些分庫(kù)分表的事情,HashMap的原理。

?

2面的時(shí)候是總監(jiān)面,主要是上來(lái)就問(wèn)了自己有沒(méi)有遇到到線上full gc,還有一些JVM內(nèi)存劃分,GC收集算法,垃圾回收器之類(lèi)的知識(shí)。

?

然后講一下自己看過(guò)啥源碼,然后圍繞著項(xiàng)目問(wèn)了一些問(wèn)題,比如說(shuō)你遇到過(guò)最大的挑戰(zhàn)是什么?

?

3面就是hr了,這一塊主要就是問(wèn)一問(wèn)離職原因(錢(qián)太少咯),然后其他就是問(wèn)一下職業(yè)規(guī)劃,這塊按照自己想的說(shuō)就行了。

?

最終的結(jié)果是拿到了25萬(wàn)的offer??傮w來(lái)說(shuō),這家公司的面試過(guò)程相對(duì)比較簡(jiǎn)單一些。

?

?

某跨境電商公司(掛掉)

第二家公司主要做跨境電商,是通過(guò)內(nèi)推拿到面試機(jī)會(huì)的。這里面了2輪。

?

技術(shù)面試:

面試官問(wèn)的算是比較全面了,首先自我介紹,然后就開(kāi)始技術(shù)問(wèn)題:

  • HashMap原理?

  • synchronized和ReentrantLock有什么不同?

  • AQS原理?

  • 線程池的各個(gè)參數(shù)作用?

  • Spring Boot如何實(shí)現(xiàn)AutoConfig?

  • 還問(wèn)了CurrentHashMap這一塊原理?

?

接著是問(wèn)MQ:

  • 用RabbitMQ,他們有幾種exchange?

  • 消費(fèi)者推拉模式有什么區(qū)別?

  • 為什么用MQ?

?

然后到了Redis這一塊:

  • 緩存穿透、雪崩、擊穿各種場(chǎng)景的問(wèn)題以及解決方案?

  • redis為啥速度快?以及Redis Pipeline相關(guān)的一些問(wèn)題。

?

然后又問(wèn)Mysql了:

  • mysql的索引原理是啥?

  • 然后mysql的執(zhí)行引擎有幾種,有啥區(qū)別?

  • 事務(wù)隔離級(jí)別?

  • 線上數(shù)據(jù)庫(kù)用什么級(jí)別隔離?

  • @Transactional有什么關(guān)鍵參數(shù)?

  • 針對(duì)分布式場(chǎng)景下的事務(wù)解決方案是如何實(shí)施落地的?

  • TCC事務(wù)、還有一些可靠消息方案,針對(duì)你公司的業(yè)務(wù)場(chǎng)景講解清楚,然后詳細(xì)問(wèn)每一個(gè)細(xì)節(jié)是如何落地的,這樣會(huì)不會(huì)出什么問(wèn)題?

?

接下來(lái)還討論到分布式,比如說(shuō)分布式鎖啊,zk和eureka有什么不同,CAP理論這一塊,還有畫(huà)出項(xiàng)目架構(gòu)圖。Zuul線上怎么配置。

?

2面hr面,這一塊也聊了挺久,主要也是問(wèn)一些職業(yè)規(guī)劃啊,還有工作意愿之列的,介紹一下原來(lái)工作情況這樣。最終是讓回去等通知。

?

當(dāng)晚通過(guò)內(nèi)推的人知道被淘汰,其實(shí)在面試完本人也是覺(jué)得有機(jī)會(huì)的,不過(guò)最終卻是淘汰了,也沒(méi)什么好說(shuō)的,我覺(jué)得問(wèn)的問(wèn)題80%都答得挺好的。

?

總的來(lái)說(shuō),這次面試還是可以的,問(wèn)的算是比較全面的,自己也知道自己哪一方面不足。查漏補(bǔ)缺!

?

?

?

某少兒在線教育公司 (拿到offer)

這家公司技術(shù)總體來(lái)說(shuō)還是非??梢缘模?面都是技術(shù),老板也是技術(shù)出身,兼了hr的工作。

?

1面主要讓你畫(huà)出線上的項(xiàng)目架構(gòu)圖,然后針對(duì)分布式事務(wù),緩存架構(gòu),并發(fā)之類(lèi)的都問(wèn)了。

?

比如說(shuō)分布式事務(wù),還有一些Spring Cloud的底層原理,Hystrix原理,CAS底層如何實(shí)現(xiàn)的?HashMap的原理,AOP如何使用的?事務(wù)有幾種實(shí)現(xiàn)方式,RabbitMQ如何控制消費(fèi)速度?。

?

2面的也面的比較全面,也是問(wèn)了一些AQS原理,volatile原理,synchronized底層原理,HashMap原理,針對(duì)Redis和ZK兩種分布式鎖的一些問(wèn)題

?

還有一些Mysql優(yōu)化,索引底層數(shù)據(jù)結(jié)構(gòu),還有就是公司部署的時(shí)候是服務(wù)部署多少機(jī)器,是如何考量應(yīng)該用多少機(jī)器?

?

然后使用到Redis,為什么上來(lái)就用Redis cluster架構(gòu)而不考慮Master-slave模式呢?還有redis cluster為什么是分為16384個(gè)slot?

?

紅黑樹(shù)和完全二叉樹(shù)有啥區(qū)別?B+樹(shù)原理、為什么不用紅黑樹(shù)實(shí)現(xiàn)索引?

?

線上如何擴(kuò)容集群?Mysql執(zhí)行計(jì)劃,snowflake算法,如何解決分庫(kù)分表后的跨表join問(wèn)題?那些場(chǎng)景使用了tcc事務(wù)?哪些場(chǎng)景使用了可靠消息方案?

?

然后讓畫(huà)一下Hystrix的架構(gòu)原理圖,分布式接口冪等性如何保證?如何設(shè)計(jì)一個(gè)1000萬(wàn)并發(fā)的系統(tǒng),要求只能用有限的資源?還有就是一些項(xiàng)目管理的問(wèn)題。

?

3面問(wèn)了一些ArrayList的問(wèn)題,然后問(wèn)了Spring IOC有什么作用?還有就是mysql在表數(shù)據(jù)量非常大并且數(shù)據(jù)單一的情況下如何優(yōu)化查詢性能?

?

總結(jié):這家公司最終給了25萬(wàn)的offer??偟膩?lái)說(shuō)面試官也算很nice了,問(wèn)的問(wèn)題比較全面,基本上項(xiàng)目,java基礎(chǔ)、mysql、事務(wù)、mq、緩存都有涉及到,也算是測(cè)出了我的水平。公司屬于比較技術(shù)性,可能是因?yàn)槔习逡彩羌夹g(shù)出身的原因吧。

?

?

?

某職業(yè)教育公司(拿到offer)

這家公司純粹就是混混經(jīng)驗(yàn)的,面試過(guò)程也是1輪技術(shù),1輪hr

?

技術(shù)面試: 基本上就是圍繞Spring源碼,MyBatis設(shè)計(jì)思想,還有一些分布式事務(wù)的問(wèn)題。。。然后還問(wèn)了一些大數(shù)據(jù)類(lèi)的問(wèn)題,HDFS、HIVE之類(lèi)的問(wèn)題。然后就是問(wèn)了一些項(xiàng)目的問(wèn)題??偟膩?lái)說(shuō)問(wèn)的比較少東西。

?

hr面:2輪直接hr,然后hr可能是得到1面面試官的反饋吧,當(dāng)場(chǎng)給我offer。

?

但是說(shuō)我這個(gè)工作年限(2016年畢業(yè))正常來(lái)說(shuō)是15萬(wàn)年薪的,因?yàn)槲壹夹g(shù)好給到25萬(wàn),但是30萬(wàn)是不可能了(我當(dāng)時(shí)寫(xiě)期望是30萬(wàn)的)

?

?

某智能汽車(chē)平臺(tái) (掛掉)

1面:2個(gè)面試官一起面,主要是圍繞項(xiàng)目來(lái)問(wèn),首先畫(huà)一下自己的項(xiàng)目架構(gòu)圖,然后問(wèn)一下你覺(jué)得項(xiàng)目里面那一塊比較有挑戰(zhàn)性。

?

我就分析了一下Spring CLoud的源碼、還有分布式接口冪等性方案,分布式鎖,分布式事務(wù)的一些方案都講解了。

?

然后還問(wèn)了一些比如說(shuō),新舊系統(tǒng)的數(shù)據(jù)庫(kù)如何遷移???然后怎么做的灰度發(fā)布???主要都是圍繞者項(xiàng)目來(lái)問(wèn),這一塊其實(shí)沒(méi)有問(wèn)的多深入。

2面也是技術(shù)面,主要是問(wèn)了一些項(xiàng)目的問(wèn)題,問(wèn)我做商品服務(wù)的,電商詳情部分是不是我搞的?

?

我說(shuō)了一些緩存架構(gòu)的東西,三級(jí)緩存,數(shù)據(jù)庫(kù)緩存雙寫(xiě)一致性方案,Cache Aside Pattern,分析了數(shù)據(jù)庫(kù)緩存的數(shù)據(jù)不一致的問(wèn)題,然后給出了解決方案!

?

還有如果多個(gè)實(shí)例如何確保正確,這樣又扯到了分布式鎖,分別講了一下Redis的分布式鎖和zookeeper的分布式鎖,對(duì)redisson、curator的底層原理分析了一波。

?

最后,等了十幾分鐘,二輪面試官說(shuō)負(fù)責(zé)人出差北京了,讓回去等通知。最終等了2天也沒(méi)啥通知,暫且認(rèn)為是失敗了吧。

?

總的來(lái)說(shuō),面試了5家公司,拿到了3家公司的offer,戰(zhàn)績(jī)還算可以。另外的話,還有一些面試的技巧。我覺(jué)得最重要的是自己要有信心,面試失敗了難免會(huì)氣餒,但是這個(gè)時(shí)候不要灰心,趕緊回去查漏補(bǔ)缺,然后把知識(shí)補(bǔ)起來(lái)。

?

另外,面試的時(shí)候,如果面試官問(wèn)道一個(gè)問(wèn)題,要主動(dòng)帶節(jié)奏。

?

舉個(gè)例子,比如問(wèn)到了AQS的實(shí)現(xiàn)原理,你就可以首先畫(huà)個(gè)圖,說(shuō)明一下AQS底層是如何實(shí)現(xiàn)的?然后扯到底層的state變量是volatile的,然后對(duì)于volatile又可以扯出可見(jiàn)性,有序性,原子性,然后扯到了Java內(nèi)存模型,CPU內(nèi)存模型,還有高速緩存的一些硬件實(shí)現(xiàn)啊,MESI協(xié)議。以及它是如何通過(guò)指令、內(nèi)存屏障來(lái)保證可見(jiàn)性的。

?

我舉這個(gè)例子的意思就是說(shuō)面試官問(wèn)到一個(gè)問(wèn)題,如果了解其底層原理,就主動(dòng)說(shuō),你看過(guò)xx的原理,跟他說(shuō)一下。這樣可以讓面試官對(duì)你的印象更加深刻。

?

當(dāng)然了,這一切都是需要自己有很扎實(shí)的計(jì)算機(jī)基礎(chǔ),還有對(duì)某些技術(shù)研究的比較深入才能達(dá)到的。

??

最后我還是選擇了上文中第一家汽車(chē)服務(wù)平臺(tái),因?yàn)閹准夜窘o的年薪都是25w,然后我選擇的是最有挑戰(zhàn)場(chǎng)景的電商類(lèi)公司,對(duì)于技術(shù)成長(zhǎng)會(huì)比較有好處。

?

最后,我想說(shuō)的是,其實(shí)我算是半路出家做Java開(kāi)發(fā)的了,付出了很多時(shí)間和努力,走過(guò)不少?gòu)澛罚彩斋@了不少東西。

?

我這里不想給各位拼命打雞血灌雞湯,個(gè)人認(rèn)為技術(shù)積累的過(guò)程注定孤獨(dú),甚至黑暗,且周期漫長(zhǎng),需要你有足夠強(qiáng)的毅力和想改變自己的內(nèi)驅(qū)力。

?

希望咱們都可以通過(guò)不懈的努力,實(shí)現(xiàn)自己的夢(mèng)想。我行你也行的,一起加油!

?

END

?

Android工程師轉(zhuǎn)型Java后端開(kāi)發(fā)之路,自己選的路,跪著也要走下去!_spring_02

?

?

歡迎長(zhǎng)按下圖關(guān)注公眾號(hào)石杉的架構(gòu)筆記

?

Android工程師轉(zhuǎn)型Java后端開(kāi)發(fā)之路,自己選的路,跪著也要走下去!_緩存_03

BAT架構(gòu)經(jīng)驗(yàn)傾囊相授

Android工程師轉(zhuǎn)型Java后端開(kāi)發(fā)之路,自己選的路,跪著也要走下去!_分布式鎖_04

?

本文摘自 :https://blog.51cto.com/u

開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >