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

那個漫


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

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

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

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

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

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

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

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


IT人劉俊明


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


Jun日記


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


用戶1572265430982


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

我先講講我個人的經歷吧。我在 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 SE。不管如何,基礎才是上層建築的一切。推薦去看jdk源碼,推薦1.6或者1.7版本。因為1.8版本的源碼中會有很多lambda表達式。如果這塊不瞭解,看起來和看天書沒啥區別。先看我們日常開發中最常用的類,util包下面的,list,map,剛開始看的時候肯定會非常的難受,舉個例子,arraylist。很多基礎操作已經寫在父類中了。點來點去的會看暈。那麼就先看list接口。看看它都定義了哪些操作,然後看abstractlist。看看其中實現了哪部分操作,哪些方法留給子類去實現了。剛開始看的時候力求每塊代碼都看懂,多問問自己為什麼。作者為什麼要這麼寫,用意在哪裡,優點在哪裡。看源碼是一件很痛苦的事情,但是堅持下來會發現自己每天都在學習,每天都在成長,我自己hashmap源碼看了足足一個月才大致理解其中的思想。我看jdk源碼已經堅持了兩年了,雖然做不到每天都看。但是有空就會點進去看看,並且把自己理解的代碼和自己的理解都整理成筆記。我記得有人說過,閱讀優秀書籍就如同在和優秀的人面對面交流。在閱讀源碼同樣適用,在看jdk源碼就是和一群頂級的JAVA開發者交流。我們去看,去理解,去體會,潛移默化,我們會模仿他們的寫法,理解他們的思想。一個小建議,看源碼的時候最好準備一份類圖。比如util包,就去搜一下collect的類圖。從頂向下看也行,從低向上看也沒什麼問題,不過一開始看的時候,最好就鑽研其中的一個類,因為很多時候我們會發出疑問,為何要這樣設計,感覺這段代碼沒啥用啊之類的。雖然從頂向下看這些問題會不在存在,但是剛工作半年確實理解不了。容易讓人放棄。

看源碼最重要的不是學習技巧,而是思想,換位思考,假如我們是jdk的開發者,我會怎麼寫,如何設計一個類,哪些方法是共有的,那些方法需要提取成共有方法,哪些方法可以使用模板模式,抽象兩個字說起來簡單,但是想要做好抽象好難啊。當你把你自己經常用的類看完之後,那麼就可以按照包去讀源碼,四大包,lang,io,net,util包。

源碼閱讀一定程度之後,你就會發現繼續閱讀對於自己的提升好像不是很大了,這個時候,閱讀源碼將會成為你的一個習慣。你看到優秀的開源框架就會忍不住去閱讀,不要剋制自己。勇敢的去讀吧。書讀百遍,其義自見。

後面說一點學習技術過程中自己遇到的問題,希望能幫助到你。剛開始的時候,我會著急,會恐慌,這麼多類我哪裡學習的完啊,外面技術日益月新,我還在研究這個。怎麼辦,說不要著急有點站著說話不腰疼了,想學就去學。但是一定要有自己堅持的事情,哪怕因為某一段時間忙,沒空。總會有空,有空就去研究,就去寫筆記。水滴穿石這個道理永遠不過時。技術這麼多,我們確實學不過來。而且我們也不需要要求自己每一個技術都很精通。但是在用的時候我們要做到快速上手,快速精通。這個就靠內功了。我對於內功的理解就是基礎+思想,基礎就是我們對於計算機體系的理解和世界觀,思想就是方法論或者說是經驗。

在閱讀到併發包的時候,結合JAVA併發編程實戰這本書去閱讀。你會看到不一樣的併發世界,雖然很多人詬病翻譯不好。但是我通過閱讀源碼發現翻譯不好的地方不也是人生一大趣事。

後面就可以去學習jvm方面的一些知識,這個不衝突。你也可以繼續閱jvm源碼。jvm個人推薦深入理解jvm,那本藍色的書,作者姓周來著。在地鐵上突然想不起來叫啥了。還有一本深入g1 gc這個是主要講解g1垃圾回收器的。jvm方面我研究的也不是很深就不展開說了。對了,有一本阿里出版的,揭秘JAVA虛擬機,紅色的封面,有一頭熊咆哮的這本書需要一些彙編基礎,但是要求不高,看著很過癮,很帶勁。

計算機基礎方面,我推薦

1.編碼:隱匿在計算機背後的語言,個人十分推崇這本書,作者用燈泡,導線,開關實現計算底層的東西,不要被嚇住了,作者寫的淺顯易懂。設想我們自己乳溝對於計算機的理解達到作者這個地步,那麼真的可以做到手中無劍的地步了。

2.計算機是如何跑起來的,給自己的奶奶講解什麼是計算機的必備書籍,和編碼那本書有著異曲同工之妙。

3.同上,如何系列的,都是一個日本作者寫的,好幾本,程序是如何跑起來的,網絡是如何鏈接的。都是很不錯的書籍

4.好吧,我也要說數據結構。不是說這個不重要。而是這個太重要了,我不知道該怎麼去描述,自己能力有限,對於這塊不敢過多言語。關於數據結構的書很多,我個人閱讀是大學的那本JAVA實現的數據結構

5.算法 每次提到這個就想起來我買的那本,都是淚。推薦你去看算法 第四版,封面是紅色,入門門檻比較低。

就先說這麼多吧,馬上要到站了。對了,有機會一定要多面試,面試是一種非常鍛鍊自己的方式,不要錯過任何一場面試,你在面試的過程中,和對方講自己所學,通過對方提問彌補自己的不足。我就非常喜歡面試。畢業三年來已經面了兩百多家公司了。很有收穫

技術這條路有的時候很孤獨,或許就你一個人在路上。但是一定要堅信,付出總會有收穫


分享到:


相關文章: