剛入職的java程序員,在公司已經看了兩個禮拜的代碼了,感覺做不來,怎麼辦呢?

那個漫


對於新入職的程序員,如何能快速的熟悉公司業務,並能讀懂公司原有項目的代碼呢?以下三點建議可以參考一下。

1、熟悉公司業務

新入職公司,一般都會有個老人帶你或者公司組織培訓。這是全面瞭解公司業務的好的時機。公司產品屬性,面向群體,盈利模式,都需要了解清楚。

2、親自使用公司的產品

作為新入職的研發人員,對於公司的線上系統或者app一定要實際操作或者下載使用。對於每個功能都要使用一邊。通過使用的過程,自己去設想它背後的實現邏輯。

3、結合系統讀代碼、調試代碼

讀代碼不是拿到一個工程代碼就開始讀。首先,我們搞清它的構建方式。目前很多java工程代碼都是基於maven或者gradle構建,確保本地有相應的環境。其次,嘗試本地啟動工程。在啟動過程中,第一次多半不會成功。不成功的話,一般都會有錯誤信息輸出,我們根據log信息來判斷不能成功啟動的原因。最後,我們開始閱讀代碼。閱讀代碼的時候我們需要結合系統的功能。我們打開系統,分別點擊每一個功能,然後通過瀏覽器的開發者工具或者一些文檔,找到這個功能調用的接口。然後在代碼中找到相應的接口,再具體讀其實現代碼。

總之讀別人的代碼開始都比較痛苦。只要我們找到一個入口,一切就會變得容易。千萬不要拿到代碼,就從第一個代碼文件開始讀。這樣,永遠不會明白其中的邏輯實現。


阿邁達聊技術


實習生都可能都這樣,看代碼不知道你看的是什麼,你應該是j2ee吧,公司有自己框架的看看他們從前臺到後臺的增刪改查怎麼寫,然後結合項目業務去試著理解點流程,這個也不是叫你自己去完成,看看公司用的什麼 對應去看看響應技術基礎,只要耐心過一兩個月就輕鬆很多了開始都這樣。我13年帶過一個實習生,那時候公司ssh,來了第一天我問這哥們以前接觸過嗎?他告訴我寫過html,溝通的時候我發現他js css也不知道,指著eclipse.說是Oracle,真是服氣了,for都不知道怎麼用,然後人家北京戶口,跟公司領導有關係,沒辦法我每天每天上午抽半個小事從jsp servlet tomcat開始一步一步告訴她,給他降最簡單的web邏輯思想,這哥們兒挺有毅力,本來我是打算過兩天不行直接找部門經理說給換掉他的,看到這哥們毅力覺得幫幫他,一個哥一個哥的叫著,正好那時候不忙也是國企就當玩了,兩週後這哥們能自己配置ssh,胡亂能寫增刪改查了,就這樣慢慢能改邏輯了,等三個月給我打電話說離職,理由是他父親去世了,我就同意了,一年後碰見了說當時騙了我,那時候感覺工資低,換工作了,其實挺傷心的。講這個故事其實就是告訴你,只要有毅力其實沒有什麼學不會的,基礎弱就從基礎學習,一步一步來,要理解不要看到什麼就懵逼,現在不換什麼框架都是簡化開發,你記住都是servlet jsp那一套東西,無非就是頁面傳個值,處理處理在傳回去,慢慢摸摸流程,看別人增刪改查怎麼寫的,看看框架的特點,什麼都沒接觸直接spring boot.罵一套確實需要記很多東西,不過上手挺容易的 ,上手以後再去理解為什麼這樣,不要開始就想著都學會了,多寫多學,一定要做到知其然,知其所以然,這樣對你以後好。希望能幫到你。


小白成功記


Java程序員剛入職時肯定在各方面都是不熟悉的,所以剛入職時的主要任務是學習,儘快熟悉公司各項業務。我不知道題主入職的公司是傢什麼樣的公司,我就說說當時我入職時是如何快速融入公司的。



那是一個躁動的季節,7月份大批畢業生進入職場,開始了職場人的生活,我就是就業大軍其中的一員。我進公司也是做技術,那個時候每個人剛進公司時會有半年的考察期,同時會給每一個新人安排一個老員工做“導師”,在這半年的考查期裡就由這位老員工帶著你,最後你能否轉正,老員工是有很大的話語權的。

新員工入職後最好的學習方法是什麼?就是看代碼。那個時候老員工就直接扔給我一套代碼讓我看,這代碼都是他寫的,看不懂的就問他,而且這套代碼以後就由我來維護了。於是我就開始了苦逼的看代碼的日子。



看代碼的日子肯定是非常辛苦的,有不懂的我就問老員工。老員工說熟悉一套代碼的一個辦法就是熟悉這套代碼對應的流程,結合著流程看代碼打印的日誌。於是我就實際在線上維護這套代碼,看代碼的輸出,而且每天7點多就到公司看代碼,就這樣堅持了兩個月。

功夫不負有心人啊,經過我自己的努力,老員工的指導和線上的維護,兩個月後我終於理解了這套代碼,而且維護起來也得心應手,在這方面在公司有了一點小名氣。

所以這位題主,熟悉代碼沒有捷徑只能不停地看看看,花的時間足夠多一定會理解代碼的,要有信心哦!


數字視聽科普


這樣的情況很正常,我大四在一家公司實習,剛開始要我改需求,這代碼都是別人寫的,剛開始看的很吃力,而且這個項目的業務很複雜,sql動不動就是一百多行,七八張表,當時我是看懵了,完成不知道這sql要實現的邏輯是什麼,但是當時有個人帶我,有時候會指導自己我一下,但是做了幾個禮拜我還是很懵逼,而且還要我改前端,但是我作為一個後臺要我改前端真的要命,所以我就做了一個多月就辭職了,後來拿到畢業證進了一家公司,純做後端,我那時候劉想終於擺脫寫前端,雖然剛開始寫代碼的時候,出了很多問題,也是經常請教我身邊的人,還好公司的同事人都很好,也會幫我解決問題,做了幾個月後,我才覺得自己入門,基本的crud基本沒有問題,不過遇到很難的問題還是會請教我同事,所以說你現在如果碰到不懂的,你應該多問一下你的同事,他們會幫你解決的,平時的時候多加強學習,做了一段時間後,你就慢慢會有感覺的


Jun日記


我感覺對於一個初入職場或者換了一個新工作,新環境的人,遇到這種情況是非常非常正常的現象。

我先講講我個人的經歷吧。我在 12 年畢業的時候,初入職場,是做 Android 開發,在大學裡除了學習自己的專業知識之外,Android 開發是屬於自學的。畢業那年,我一個人獨自踏上了北漂之路。面試了一家做打車軟件的公司。當時給我安排的工作是打車軟件用戶端的 Android 客戶端軟件的開發工作。


一個新入職場,沒有任何工作經驗人,只是通過大學自學的 Android ,當然他們把 Android 端代碼扔給我了,給我一到兩週的熟悉時間。我當時,打開代碼熟悉的時候,說實話,確實一臉懵逼,感覺好難。其實,並不是難在代碼看不懂,難在的是架構模式,就是這套代碼使用的是什麼架構模式。

我第一天很懵逼,第二天依舊懵逼,公司安排了一個人帶著我,我初入職場其實不好意思問,就自己百度搜索,學習,慢慢從頭開始理順整個架構和回調,只要這個理順了,就很簡單了,我花了一週多就理順了架構邏輯和網絡請求的回調,封裝。理順之後,就感覺好簡單。


我當時,那一週多,也是感覺自己做不來,但是對於應屆生來講,找工作不容易,不能輕言放棄,只能硬著頭皮上,仔細研究和琢磨,沒有什麼克服不了的。


我的例子講完了,我來講講,感覺做不來怎麼辦?其實,感覺做不來,一般分兩種情況。

技術底子不錯,就是架構和業務不太清楚

其實,這種情況下,你不必焦慮,因為,不是你做不了,也不是你做不來。只不過是還沒有把代碼看透,尤其是新的代碼的架構等東西,跟你之前使用的不一樣。而面對這種新的東西,人往往都是牴觸或者缺乏自信的。


這時候,其實你需要做的是,相信自己能夠做到,然後先去理順整個架構,以及業務邏輯,找到代碼的核心點,一點一點的克服。代碼其實最核心的東西就是架構模式,只要這個找準了,其他都好辦。


這種情況不是你做不了,是因為面對新東西,缺乏自信,牴觸造成的假象。


真的看不懂

還有一種情況就是完全看不懂,一點也看不懂,這就說明你技術底子本身就很弱,這時候,硬看是沒有意義的。因為,基礎不紮實帶來的問題,不是你看懂架構就能解決的,因為基礎不紮實,架構原理你懂了,你也白費。


這時候,如果公司有帶你的人,你必須虛心請教,放低姿態,以學習為主。而且平時應該去夯實基礎,這是耽誤不得的。


如果公司要求你馬上上手,你實在做不了,只能辭職了。因為,技術達不到公司水平和要求嗎,自己實在看不懂,乾的也很焦慮,沒必要耗著,就辭職,感覺去彌補基礎帶來的差距。


關注「非著名程序員」,每天分享有價值的科技內容,也歡迎大家在回答底下留言,一起交流分享,另外回答不易,請點贊支持。感謝!

非著名程序員


做不來硬著頭皮做鴨,剛畢業那會,帶我的人在我入職一個月就跑路了,他負責的一個新系統才做了一半,領導逼著我接手。接的住就轉正,接不住就滾蛋。那會真的是壓力大,天天晚上失眠,每天洗頭都掉好多頭髮。天天晚上研究到一兩點,不懂就問同事,一般同事有時間都會和你說的。反正最後抗下來了,想想當時扛不住估計也就轉行不做開發了吧


用戶1572265430982



小怪日常vlog


聽完我的經歷,我想你應該會對自己有信心的。我剛轉行的第一份工作是這樣的:連最簡單的方法之間調用我都不會[捂臉],我也看不懂方法為什麼這樣或那樣的命名[流淚],剛進公司的時候,公司有現成的代碼給我看,讓我修改bug及加新功能,我看了一個多星期都看不懂啥意思(天書)[捂臉],要知道我連方法的命名都不知道那我更不可能看得懂,(不過我很幸運的通過網上搜索和哥們傳授的各種面試經歷順利通過面試,公司給8k),我當時一邊看一邊怕,心裡只想著完了完了可能要被開了,心裡特別不安,不過我很幸運的是我遇到了一個特別特別鐵的哥們,他讓我把我們公司代碼也給他拷一份,他幫我看了公司的整個項目代碼,然後我每天下班回去不管多晚他都很耐心的一個個方法、數組、方法參數有啥用、什麼是接口、什麼是類等等等都跟我講解,幫我改bug還幫我按照公司的要求添加新功能,(真的特別感謝我這個鐵哥們),一個月後終於提前試轉正,後來他教我如何更容易看代碼,把他們公司項目給我讓我安他教我的方法去看代碼試著去敲代碼,他還專門從網上購買了黑馬培訓視頻資料百度雲及極客等網站給我自己一邊工作一邊學,慢慢的,我就能獨立修改代碼找bug及獨立一個人完成整個項目封裝工具等等……。如過我當初放棄的話而且沒有我那鐵哥們的耐心幫助的話我現在可能只是工廠裡的一名普通員工了,真的特別感謝我這位鐵哥們。哥們你一定要相信自己,我一個接近零基礎的人都能堅持,和你你非零基礎呢,一定要加油


陌陌2438


我認識的很多程序員工作兩年了,我都會問他會什麼,其實一般得到的答案都差不多,感覺自己就會增刪查改,什麼也不會。其實Java開發最開始就一個增刪查改,僅此而已。為什麼覺得自己不會,心理上還覺得自己做不來了,為題主分析分析:

為什麼從看代碼就覺得自己不會

做過一到兩年開發的小夥伴,跳槽過幾次的小夥伴應該大部分都遇到過,你被分配崗位過去是接二手代碼來開發,接二手代碼開發去了之後基本就是在看上一個人的代碼,其實大家都有體會,看別人代碼很多地方是看不懂的,特別是業務邏輯比較複雜的地方,如果還沒有註釋,你基本上就會在內心中瘋狂的問候上一位開發者。你看不懂其實是一個很正常的事情,你想想,你把你一個月之前寫的代碼拿出來可能你也會看不懂。

其次就是題主是剛入職,沒理解錯的話,應該是第一份開發工作,第一次就接到二手代碼確實是有點茫然,不知道從那裡開始,在加上自己心理沒底導致懷疑自己的能力,其實大可不必,因為如果剛開始的工作內容上面答主也說了,基本就是增刪查改,沒有深特別高深的東西,特別深的東西你們組長也不可能給你去做。

要看業務,不要看代碼,代碼是別人寫的,業務是需要自己理解的。

企業讓你看代碼是為了什麼

如果是接二手項目的話,第一:讓題主自己知道上一個開發者做到那裡來了,這樣在接著寫的話,你自己也有頭緒;第二,你自己也要對基本的業務流程有一定的熟悉。因為開始的業務不是你寫的,所以對整個模塊的業務功能的理解上可能不夠深入,所以需要去看看上位開發者來幫助自己理解。

如果是公司的主要營收項目,那麼如果讓題主去看代碼是為了讓題主能理解之前項目中整個業務過程,好做對應的有業務關聯的下一個項目的開發,或者對對應的功能做升級,或者要添加新的功能做二次開發。

如果公司比較大,自己去根據自己業務改出來的框架或者技術做的項目,但是這種情況一般都會做事先的培訓工作,在去接觸代碼的。那麼這個時候看代碼是為了讓你熟悉公司自己的東西,後期好馬上入手進行開發工作。

不要真的被別人寫的代碼毒到了,看代碼就是為了業務

怎麼樣讓自己能快速的進入項目才是最主要的

不管是什麼原因去看代碼,其實最主要的是快速熟悉業務準備進行後期的開發。在題主看代碼的時候一般相應會給你開發文檔,這個時候不要盲目的去看代碼,最好的方式就是結合著開發文檔一步一步的去查看對應業務的代碼,在看代碼的時候最好不要在某些上一個開發者寫的比較複雜的業務邏輯代碼上糾結,你只要知道這段代碼是給你做了一件什麼事情就行了,因為上面就說過,別人寫的代碼你是很難看懂的。主要是理解現在的業務邏輯流程,然後隨著這個流程能讓自己有所理解,並且如果是做二次開發能接著開發,如果是二手代碼能繼續上一個人的位置能繼續開始。

其實主要的開發都是增,刪,查,改;要相信自己能行

總結:看代碼其實就是為了讓你自己能理通業務邏輯,所以不要一直糾結看不懂別人寫的代碼,每個人有自己的想法,同一個業務可能不同的人寫有不同的寫法。千萬不要覺得看不懂別人的代碼就否定自己,相信自己,說的在不好聽一點,不會那麼我們就去學唄。

以上是答主自己的個人意見,如果有更好看法的小夥伴,可以在下方評論區留言,或者點個贊,加個關注,我們一起探討探討。


自學JAVA


作為一名從業多年的IT人,我來回答一下這個問題。

對於剛入職的Java程序員來說,如果沒有過崗位實習經歷,在面對開發任務時,確實需要度過一個困難期,而如果此時沒有專業程序員的指導,通常需要較長一段時間才能逐漸融入到開發團隊中。實際上,不少Java初級程序員在入職一段時間後,就因為遲遲不能完成開發任務而選擇離職。

對於沒有開發經驗的Java準程序員來說,要想盡快提升自己的編程能力,同時融入到開發團隊中,應該從以下三個方面入手:

第一:多動手做實驗。要想提升編程能力,一定要多動手做實驗,可以從一個比較基本的實驗開始,然後逐漸進行拓展。看代碼雖然是快速學習的好方式,但是看代碼的同時,一定要動手實踐一下,這樣才能建立起畫面感,同時形成自己的編程思想。

第二:多與老程序員交流。在進入開發團隊的初期,一定要多與有經驗的老程序員交流,這是能夠快速成長的重要方式。在交流的過程中,一方面要搞清楚具體的開發流程,另一方面也應該主動承擔一部分開發任務,有了開發任務就會有更多交流的機會。按照歷史經驗來看,往往能夠主動承擔開發任務的程序員,會有更快的成長速度。

第三:善於總結。做程序開發工作,一定要善於總結,把一些重要的開發內容總結成具體的方法,然後再把這些方法應用到後續的開發任務中。Java開發比較注重模式和框架的運用,而且不同團隊往往有不同的技術選型,所以做好相關知識的總結對於快速融入開發團隊是比較重要的。

我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!


分享到:


相關文章: