工作3年還是只會(huì)增刪改查?
其實(shí)大部分的企業(yè)級(jí)應(yīng)用從本質(zhì)上看,都是在做增刪查改,但是有些公司的業(yè)務(wù)復(fù)雜而專業(yè),有些公司應(yīng)用的在線客戶很多,你做的增刪查改和別人做的增刪查改,可能會(huì)有極大的區(qū)別,舉個(gè)例子:
你做一個(gè)新聞資訊網(wǎng)站,首頁上需要展示當(dāng)天最熱門的十條新聞,網(wǎng)站每分鐘大概有100個(gè)人訪問,那么這個(gè)功能你可以這樣實(shí)現(xiàn):select top 10 from 新聞表 order by 閱讀量 desc;
但如果是一個(gè)跟今日頭條體量相當(dāng)?shù)木W(wǎng)站或APP呢,每分鐘有100萬人進(jìn)入首頁,那么還能做成這么簡(jiǎn)單的一個(gè)查詢么?相信數(shù)據(jù)庫肯定是扛不住的!
建議工作兩三年的,可以好好地分析一下自己現(xiàn)在做的工作,是不是簡(jiǎn)單的增刪查改:
業(yè)務(wù)是否專業(yè)?我有這些業(yè)務(wù)知識(shí),是否可以在該領(lǐng)域長(zhǎng)期發(fā)展?比如在金融相關(guān)的行業(yè)做核心系統(tǒng),又比如一直在做支付相關(guān)的業(yè)務(wù)。
用戶量是否大?是否有高并發(fā)的場(chǎng)景?項(xiàng)目為增加系統(tǒng)的高可用性,做了哪些措施?
是否能參與流程討論和制定?是否能參與架構(gòu)設(shè)計(jì)或功能設(shè)計(jì)?是否能摸到核心的業(yè)務(wù)和代碼?
如果以上一項(xiàng)都不沾邊,那么你很可能是在做簡(jiǎn)單的增刪改查,這種敲代碼的工作,可以說是“體力勞動(dòng)”;也可能你現(xiàn)在的工資還不錯(cuò),朝九晚五不用加班,你對(duì)現(xiàn)在的工作狀態(tài)很滿意,但是!建議趕緊跳出這個(gè)舒適圈;因?yàn)槟愫芸炀蜁?huì)摸到職業(yè)發(fā)展的天花板,很快就會(huì)面臨失業(yè)的危機(jī)。
如果你現(xiàn)在處在這個(gè)舒適圈,個(gè)人給一些建議:
如果你接受跳槽,那就果斷跳:我是不鼓勵(lì)程序員頻繁跳槽的,但是不得不說,跳槽是解決這個(gè)問題最快的手段;【平臺(tái)非誠(chéng)重要】,你可以通過選擇一個(gè)更高的平臺(tái),跳出現(xiàn)在的舒適圈:在上一家單位的時(shí)候,我們的技術(shù)棧是SSH+Oracle數(shù)據(jù)庫,現(xiàn)在的單位以Spring Boot、Spring Cloud為主,關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫都有使用,這已經(jīng)提高了不少;但是一跟互聯(lián)網(wǎng)公司相比,我們又差了很多;
如果你覺得現(xiàn)在的公司還不錯(cuò),值得再待今年,那么先考慮一下能否把現(xiàn)在的項(xiàng)目做的更好,能否引入一下比較主流的技術(shù)組件以解決項(xiàng)目遇到的問題;能否擔(dān)任更重要的工作;
不管跳不跳槽,程序員都需要不斷地學(xué)習(xí):利用碎片化時(shí)間學(xué)習(xí)雖然值得稱贊,但是更鼓勵(lì)抽出完整的時(shí)間去學(xué)習(xí),最好關(guān)閉一切通訊軟件,避免被打擾;并且把學(xué)習(xí)內(nèi)容通過筆記、博客等形式記錄下來。
至于技術(shù)路線么,建議還是從工作出發(fā);比如項(xiàng)目中關(guān)系型數(shù)據(jù)用的比較多,那么除了會(huì)寫SQL之外,還得懂一些數(shù)據(jù)庫優(yōu)化的知識(shí),如果能引入一些NoSQL數(shù)據(jù)庫就更好了;如果用戶越來愈多,項(xiàng)目擴(kuò)展越來越難,那么就要了解了解分布式架構(gòu)設(shè)計(jì),如何把一個(gè)大的單體應(yīng)用拆分開,非核心功能可以引入消息隊(duì)列進(jìn)行異步處理,等等。
我將持續(xù)分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注。