-
1 # FungLeo
-
2 # 此生唯一
做JAVA開發的三年一個坎,你應該慶幸你還有一年的時間可以用來提升,讓自己不要後悔!
不過話說回來,在平時的工作中其實90%的工作量都是增刪改查,或者是對增刪改查的改進,那些所謂的高併發,多執行緒,高可用系統,分散式系統,負載均衡,快取,資料庫讀寫分離,分庫分表等等全部都是圍繞增刪改查來做改進的!
比如說快取是因為資料庫的讀寫壓力大的時候,為增加讀寫效率而引進的,使用快取的記憶體讀寫代替了資料庫的硬碟讀寫!
比如說資料庫的讀寫分離或者分庫分表都是在單點資料庫的壓力過大,效能低的時候引入的無論架構怎麼設計都是為了得到更好的讀寫效率!
再比如說,高可用,分散式都為了避免單點服務出現異常,導致讀寫服務不可用,從而引入的叢集部署或者分散式部署!
由此可見,增刪改查是我們最核心的功能,只不過我們引入了其他的架構,完善我們的功能,讓我們的增刪改查更加的快速!
在實際的開發過程中,要多思考系統的瓶頸在哪?增刪改查的壓力在哪?怎麼改進?不要網上搜一堆亂七八糟的,覺得很屌的東西,學完之後發現他根本不知道是做什麼的,一切的開發圍繞我們的業務來展開,然後才是增強體驗性,搭建快速穩定的架構!
那我們應該怎麼來進階呢?
1,大局觀:不要只是盯著自己開發的功能,要知道整個系統的整個架構是什麼?使用什麼技術?服務之間怎麼通訊?整個服務的效能怎麼最佳化?全面的來考慮,不然晉升的肯定不會是你!
2,不要一心撲在公司的工作上,要有自己的時間去學習最新的技術,去拓寬自己的知識,明白別的公司用的是什麼?主流開發技術開發是什麼?
3,一定要多總結,不管是平時的工作中或者學習中都能學到很多有用的東西,要把它轉化成demo記錄在自己的技術文件裡面,方便以後自己查閱和使用!不是做過就算了,一定要記錄下來!
我晚上加班的時候,除非有急事,不然都學習自己的!然後才能感覺自己有很大的提升!我自己記錄了很多做過的,學過的JAVA相關技術,以後會一直分享,需要的話請關注!
-
3 # 極客宇文氏
這是Java程式設計師中大部分初級程式設計師很容易走上的路,如果自己不主動學習,只靠公司完成的任務很難對自己技術水平提升。
我是Java開發者,看看身邊工作了一年到三年的同事,能力參差不齊。
之前聽一個工作了一年半的研究生同事分享自己的心得,當著部門總經理的面,說剛開始工作薪資不重要(也暗示了一些東西),主要應該花費精力和財力去提升自己。
工資不高是小事,把錢投資自己是大事買技術書籍買技術課程,如果走正規渠道花費的都不是小數目,但是對於自己的能力提升,這點金錢和精力也是值得的。
很明顯他屬於工作之餘會找自己的技術棧去深挖。乃至於他僅僅工作兩年就可以擔任技術組長,可以負責某個核心模組的開發任務。
這也說明一件事,增刪改查只是為了完成初級的工作,當你自己主動去學習去提升,才會不斷因為自己的能力充足而被賦予更多技術層面更高的任務。
-
4 # 會點程式碼的大叔
看到這個問題,我快速回想了自己這十多年的程式設計師經歷,感覺我所有工作的實質好像都是在做增刪查改;但哪些是在提升工作能力,哪些是在做重複性的工作,以及怎樣應對,我談談自己的看法。
增刪查改,也要分場景看舉個例子,開發一個商城頁面,展示銷售量最高的十件商品。
當頁面一分鐘訪問量只有100次的時候,我們可以執行100次select top 10;但是當一分鐘訪問量有100萬次的時候,這還會是一個簡單的查詢麼?
我在上一家單位的時候,所做系統的業務很簡單,就是把一批資料,按照模板,加工成待發送的簡訊、電郵,基本上沒有特別難的地方。
但是資料量很大,基本上每天都會處理生成幾千萬條資料,那時候公司還都是IOE的架構,只有單臺Oracle支撐;也就是在這段時間,我練就了一身資料庫最佳化的本領;但是想象一下,如果資料量再增加10倍呢?如果資料量再增加100倍呢?
毫無難度的增刪查改,建議趕緊跳出安逸狀態如果每天做的都是毫無難度的增刪查改(沒有複雜業務,系統也沒有多大的壓力),建議還是早些跳出這個安逸的狀態,就算你對現在的工作環境很滿意;因為說不定到什麼時候,你就會摸到職業發展的天花板,甚至會面臨失業的危機。
還是上一家公司的這個專案,我在這個專案工作第三年的時候,基本上把能做的都做完了,最佳化基本上也到極限了,最後半年的工作狀態是:需求來了,做一下設計,然後讓其他同事開發;我朝九晚五,上班有大把的空間時間;還好我利用這些時間去學習,看流行的技術框架,後來跳槽,工資上升了一大截。
如果你正處於這種工作狀態,我建議:一定要清楚地認識到:作為程式設計師,只做簡單的增刪查改,是很危險的;
考慮一下能否把專案做得更好,是否可以負責更多的工作;
多學習一些流行的技術,並考慮能否應用到工作中(眼界很重要);
跳槽,尋求更大的平臺,很多時候,程式設計師的成長都是被逼出來的。
不要享受安逸!
最後,敬大家一碗雞湯:你現在的生活水平,是你三年前的工作狀態決定的;而你現在的努力程度,會決定你三年後的生活;軟體開發是個逆水行舟,不進則退的行業,既然選擇了這個行業,那麼就要努力地“敲”下去。
-
5 # 大學生程式設計指南
java程式設計師絕大部分工作的時間都是增刪改查,很多人覺得這項工作沒什麼技術含量,任何一件事情都要站在不同的角度去考慮,對於大部分的java程式設計師來講開始前幾年就是在為了達成增刪改查而努力,大部分的程式設計師具備這種能力之後就開始相對安逸的狀態了,增刪改查的功能如果對於簡單的工程程式碼來講就是比較簡單,如果是涉及到大總量的資料處理,能像簡單資料一樣玩轉那就是真正的能力問題了。
所以java程式設計師如果能力到了增刪改查的之後,就要考慮下一個層次的突破問題了,現在java的框架非常多,程式設計變得越來越簡單化,也會更加不可控,主要整合的功能模組也是越來越多,大部分都是直接從開源社群直接拿過來使用的,平時用的時候可能基本上沒有多大問題,一旦出現問題解決起來就是非常麻煩的過程,所以到了能夠解決簡單問題的能力之後就不要提早讓自己進入安逸期,就要制定下一步的技術拓展能力,看底層程式碼到底是如何實現的,如何真的遇到底層的框架問題是不是具備能力去解決。
其實不只是java程式設計師,大多數的程式設計師在度過入門的苦逼的時期之後都會有一個比較輕鬆的感覺,就是常說的開竅了,好像做什麼功能模組都不像之前那麼費力了,感覺程式設計那就是那回事,這個時候特別容易放鬆對自己的要求,主要針對工作3年左右的程式設計師,這個時期對於框架性東西還不是很深刻,一旦有這種安逸的想法時間很快就容易過去。
如果現在的你處於這種狀態,將是非常危險的狀態,現在國內程式設計師的數量少數每年都會產出幾十萬的人數,如果能用幾年的時間達到增刪改查的能力,那麼意味著新進入的人也可以用這些時間達成這種層面,後面的競爭自然會加大,由於技術一直是在進步不及時更新新的技能很容易被淘汰,現在很多人喊著軟體行業不吃香了,說的就是一類水平不是很高,但是市場數量非常巨大,市場當然不會給出很高的薪資,建議在這個階段的人重新規劃自己的技術生涯,如果所在環境就是做點這種事情,可以考慮離職或者轉崗。
尋找一個有挑戰性的工作對於程式設計師的職業生涯還是非常有幫助的,有挑戰意味著要強迫自己學習新東西,這樣才能夠迫使自己進步要學會改變,如果不能靠意志力來克服就考慮換個環境去做,一個人進入安逸區很容易脫離出來,前幾天發生的甲骨文裁員事件,裡面就是有很多程式設計師在裡面當作安逸區當作養老的地方,企業畢竟需要競爭,這種類似的場景不會堅持很久的,所以讓自己行動起來,多跟進一些新的技術才是保持市場競爭力的關鍵。
技術能力沒有所謂的天生強者,所有的技術看上去很強的人都是逼出來的,潛力也都是強制挖掘出來的,這條法則對於程式設計師講也是成立的,技術不行就是拿不到高工資沒毛病。
-
6 # 架構師的成長史
我的經歷應該跟題主比較類似,我是今年5月剛換的工作,上一份工作我從畢業開始一直幹了5年,我的前公司是框架部封裝好的框架,再在框架基礎上二次開發,而且是公司以業務為主導的,不看重技術,開始1~2年還好,可是隨著時間的推移,很多人會吐槽學不到新知識,感覺每天只是在做著重複的工作,沒有任何提高,導致先先後後跟我一起進公司的幾個同學都辭職了。
其實這五年時間的最後倆年都萌生過跳槽的想法,原因就是覺得太安逸了,學不到新技術,想想自己五年後甚至十年後依然是這樣,就覺得壓力很大。有人說,只會增刪改查的程式設計師最多稱為碼農,一名真的程式設計師,技術應該是隨著工作年限不斷增長的,5年時間,混的好的已經是架構師、技術總監級別了,再看看去年的自己,每次面試處處碰壁,一遇到技術面試就啞火。然而,經過一年的沉澱,今年終於換了一份還算滿意的工作。
Java程式設計師如何進階自學,生於憂患死於安樂,能夠2年內意識到自己只會增刪改查而想有所改變,已經是一個好的開端了,從去年跳槽受打擊後,我平時就會利用下班和週末的時間去網上看一看教程,也會買一些相關的書籍,主要針對目前比較流行的技術,填充自己的短板。跳槽,網際網路公司千差萬別,有業務為主導的,也有技術為主導的,可以試著面試一些技術與時俱進的公司,最好是沒有框架的,面試受挫沒關係,我的方法就是多試試,每次面試前先針對技術要求做好準備,面試失敗再及時把面試官問的幾個技術點搞懂,我也是面了十幾家才拿到offer,因為我下定了今年必走的決心。轉管理崗,很多公司的領導雖然是技術出家,但是後期專心於業務和專案、人員的管理,假如對管理崗感興趣,也可以試著朝這個方向轉型,畢竟沒有人會敲一輩子的程式碼,程式設計師到35歲後,年齡越大,技術方面的競爭力越小,因此轉型是必然趨勢。總而言之,作為一名程式設計師,就需要不斷給自己充電,工作中和空餘時間都是提升自己的機會,無論是技術還是管理,靠的不是時間的堆砌,而是自身的努力。
-
7 # mikechen的網際網路架構
對一個已經兩三年的Java程式設計師來說,如果主要工作還是增刪改查,這是相當痛苦的一件事情。網際網路行業是一個發展快、變化快的行業,身處這個變化莫測的行業,總讓人感覺既興奮又不安。
在Java程式設計師的職業生涯中,如何才能不斷提升自己的核心競爭力,實現自身技術能力進階,也一直是一個大家都比較關心的話題。下面簡單羅列了Java程式設計師學習進階的幾個方向,供大家參考。
程式設計基本功:資料結構和演算法1.資料結構相關的雜湊表、連結串列、二叉樹等等
2.常見的演算法有哪些?至少下圖的演算法我認為應該要掌握。
比如:HashMap如何擴容,重點就是考底層資料結構。
程式設計基本功:Java程式設計這些都算是程式設計基本功底:多執行緒、JVM、併發容器、併發類、NIO等。
Web開發其實web開發這個領域,如果你要掌握好了,發展也非常不錯的。
比如:現在的H5、小程式等,對於掌握前端技術的開發人員,競爭力也是槓槓的。
當然作為後端開發人員,多掌握點前端的技術,那也是必須的。
資料庫重點就看圖了,這裡涉及的技術還是蠻多的,mysql、oracle、nosql相關的mongodb,以及如今大家都熟知的分庫分表、讀寫分離等技術。
這些都是大家熟知的,我補充點設計相關的:資料庫設計正規化、索引、事務、資料庫相關的慢查詢、長事務。
這些也算是資料庫技術的程式設計功底。
研發相關的框架工具Java程式設計師對於下圖應該都是比較熟悉的,這些框架與工具都是經常使用。
架構設計談到設計,就不得不提到專案中的概要設計和詳細設計,這就會涉及到UML。
除此之外,整個專案的設計,這個時候考驗你的架構設計能力。
這裡的架構設計,包含的系列非常多,特別是Redis、應用程式拆分、拆分後涉及到的RPC微服務等技術,以及後端資料庫的拆分技術,以及拆分後的分散式叢集部署。
分散式會涉及到:分散式鎖、全域性唯一ID的生成、分散式Session…這裡還有蠻多的,其實大部分我在【BAT架構技術專題合集】中都分享過了,回覆【架構】,即可領取。
結束語要知道,再成功的大佬也是從第一行程式碼開始的,增刪改查是修煉成神必經之路,該走的階段還是要走,但在走的過程中多看、多學、多思考、多實踐,在自己不同的發展時期,找到屬於你的立足點,只有站穩了這個立足點,你才可以更好的開始延伸自己別的領域。
程式工作,大多始於增刪改查,重複的小事做漂亮,同時擴充套件自己的技術邊際;
職業生涯中的轉機,源於堅持不懈找方法、尋求改變,主動出擊爭取機會;
欲速則不達,循序漸進成長,不同時期,有不同的成長階段。
俗話說:師傅領進門,修行靠個人,想要技術進階,需要自己持之以恆,付出100%的努力。提前做好準備,機會總是青睞有準備的人,程式人生,學無止境,共勉~
回覆列表
你才工作了兩年的時間,可以非常熟練的做增刪改查,就已經很不錯了。實際上在我們公司有一些程式設計師已經開發了好些年的時間了,甚至連一個遞迴都寫不好。
作為一個工程師,想要提升自己的能力的話,僅僅是依靠公司裡面的專案,絕對是沒有很大的發展的。你需要自己去拓展一些專案,比如說你可以去參與一些開源的專案。
不要小看這樣一個小小的系統,當你逐漸的能夠把一個小系統給設計的越來越完美的時候,然後你就可以去嘗試做一些比較大的系統啊。因為當你全盤的去操作和開發一個系統的時候,你的整個思路就不是侷限於這個系統上的某一塊功能,而是整體的這個思想就貫徹到你的大腦當中了,這對於你的技術提升是非常有幫助的。
多想多做,而不要僅僅是完成工作,然後就去玩遊戲了。