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

那個漫


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


用戶1572265430982


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


Jun日記


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

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


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

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


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


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

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

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


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


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


真的看不懂

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


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


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


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

非著名程序員


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


陌陌2438


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


小白成功記


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



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

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



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

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

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


數字視聽科普



小怪日常vlog


小夥子,看在你這麼老實誠懇的份上,我就告訴你一個程序員之間的不傳之秘吧!

這個秘密是:寫代碼比讀代碼容易!!!

你知道老代碼在我們程序員圈子被稱為什麼嗎?

屎山!

對!你沒有看錯!就是狗屎一樣的代碼堆得像山一樣高的意思。

一份代碼哪怕一開始再怎麼優雅,在經歷了歲月的洗禮之後,隨著各種各樣的傻逼需求、臨時方案、bug補丁、半吊子重構而變得醜陋臃腫。

再加上國內同行普遍不愛寫註釋、不愛留文檔。

想要看懂簡直比登天還難。


寫代碼就不一樣了。

你作為新人,不會給你太難的任務,也不會讓你動核心代碼。

你接到任務後,只要瞭解任務相關的那點代碼就夠了。

要是不明白,你還可以問老員工。

甚至就算寫出bug也沒什麼大不了。畢竟不是核心功能嘛。


所以,不要怕,讀不懂代碼沒事兒。你去找領導要個小任務,順便再讓他給你指定一個導師就ok了。


自稱實戰派ex


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


自學JAVA


身為了一個某公司的技術總監,分幾種情況給你一些建議吧。

第一種 有相對明確的文檔或者有同事給你做一些代碼大致的講解,只是有個別的技術棧不會。這種情況其實基本上每個人都會遇到,有什麼好辦法解決嗎?很簡單,邊學邊做,這種方式是我們技術人員學東西的最佳途徑,我們應該感覺很幸運,有這麼好的機會去學習新的技術棧。

第二種 沒有對應的文檔或者同事來講解,看著看著就看暈了,這個也很正常,畢竟我們這一行自己寫的代碼過兩個月再看自己都可能不認識,怎麼辦呢?從業務功能入手,選中一個相對簡單的功能點,在項目裡找對應實現,看懂了,再嘗試做些小的修改,然後基本上就可以做些簡單的新功能了,然後,其實你已經可以做下去了。

第三種 基本技術能力欠缺,代碼確實看不懂,也彆氣餒。唯有提高我們自己自身的能力了,才能往下走,不是嗎?

以上三種情況是我的建議,最後我會留下一些學習網址,希望能對你有些幫助吧。

https://juejin.im/post/5dedd995f265da33b313e90d 這個地址應該比較適合你,下面是部分內容,你可以看看。

Java

JavaGuide :【Java學習+面試指南】 一份涵蓋大部分Java程序員所需要掌握的核心知識。

CS-Notes :技術面試必備基礎知識、Leetcode 題解、後端面試、Java 面試、春招、秋招、操作系統、計算機網絡、系統設計。

advanced-java :互聯網 Java 工程師進階知識完全掃盲:涵蓋高併發、分佈式、高可用、微服務、海量數據處理等領域知識。

architect-awesome :後端架構師技術圖譜。

toBeTopJavaer :Java工程師成神之路 。

tutorials:該項目是一系列小而專注的教程 - 每個教程都涵蓋 Java 生態系統中單一且定義明確的開發領域。 當然,它們的重點是 Spring Framework - Spring,Spring Boot 和 Spring Securiyt。 除了 Spring 之外,還有以下技術:核心 Java,Jackson,HttpClient,Guava。

JCSprout :處於萌芽階段的Java核心知識庫。

JavaFamily :【互聯網一線大廠面試+學習指南】進階知識完全掃盲。

JGrowing :Java is Growing up but not only Java。Java成長路線,但學到不僅僅是Java。


分享到:


相關文章: