面試官常說,培訓機構出身的程序員“代碼不乾淨”,是什麼意思?

用戶50035732909


在互聯網行業,尤其是在移動互聯網時代,程序員這個行業的門檻確實降低了很多,由於行業的火爆,程序員的待遇和薪水相比於其他行業來講,也算比較高。所以,很多非科班出身的學生開始轉行程序員,有的是自學,有的是通過培訓機構,甚至科班的學生,大學不好好學,畢業的時候去上培訓班的情況也有的是。


我感覺不管是科班出身,還是培訓出身,其實在職場上,最看重的其實就是能力。但是,由於培訓出身的學生,當然,這不能說是參與培訓的學生的錯,錯的是社會和培訓機構,以至於行業內的很多公司對培訓出身的程序員帶著有色眼鏡來看。

為什麼會帶著有色眼鏡來看呢?

原因很簡單,很多培訓機構宣傳招生的時候,號稱培訓四個月,月薪過萬,來吸引招生,賺取參與培訓學生的錢。但是,你想想四個月真正能學到的東西有多少?四個月學完科班兩三年的課程,基礎肯定也不紮實,這種情況下,怎麼能夠讓學生培訓完月薪過萬呢?


當然是簡歷造假了。簡歷上培訓完,就寫自己至少有兩年工作經驗,實際上一點工作經驗沒有,只有培訓經驗。幫助培訓學生包裝簡歷,教一些面試技巧去應付面試。從而,導致大家對培訓的學生戴上了有色眼鏡。


咱不能否認,培訓的學生當中,確實有牛逼的,但是如果簡歷不造假,憑自己能力拿高薪,是無可厚非的。所以,有時候,並不是學生的錯,而是培訓機構的錯。

對於代碼不乾淨,我感覺題主說的這個只是個別現象,帶有強烈的個人主義色彩和認識。培訓裡的學生也有技術好的,不能以偏概全。


正確認識培訓

我認為關於培訓,培訓機構應該禁止虛假宣傳,把虛假宣傳的時間用在如何努力提高培訓人員的能力上和學習上,應該不僅僅教他們技術,也應該正式培訓出來時的水平。從而,讓培訓的學生有一個好的面試經歷。


另外,培訓的學生也應該認識到,在培訓機構最重要的是學習,而不是被培訓機構的宣傳所誤導,從而迷失了自己。


我感覺要讓培訓更好的服務社會,一個是培訓機構要正規,合法,不要虛假宣傳,把時間和精力放在培訓上,而社會應該也有責任和義務,不要歧視培訓出來的學生,社會不歧視,可能培訓也不會造假,社會其實從某種程度上來講,也是有一定的責任的。


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


非著名程序員


看了前面幾個回答,有大神,也有賭氣的,我來說說我的意見。

培訓機構名聲不好,從這裡出去的程序員一般不會說自己是培訓出來的,因為一說就沒人要了。

“代碼不乾淨”我也是很少聽說,我想應該說的是代碼是胡亂拼湊的,沒有一定的系統性,只是為了完成任務東拼西湊而來,維護和擴展都非常困難。

也難怪,就那麼幾個月的時間,想要徹底搞懂一樣東西,還不分有無基礎,怎麼可能呢?

我面試過不少這種人,有一個做前端的,挺高挺瘦一小夥子,吹完自己的“項目”之後,我讓他展示一個滿意的作品,並詢問他的創建思路,結果人家說,極度崇拜喬布斯,所以網頁就用黑白兩色,也不管其他,中間還帶著斑馬線,字體也不清晰,是那種小女生比較喜歡的嬌弱體。

我的個媽呀,真是大開眼界,果斷攆走。

其他的有的說忘帶U盤了,有的連基礎知識都不知道(不是搞不清楚),還有的直接看著自己帶來的作品,說是從網上下載的......

我不是刻意貶低,也有好的,一箇中專畢業的,做的作品挺好,回答問題的思路也很清晰,最後要的就是這個人,大專、本科、碩士的都攆走了,實在慘不忍睹。


偶爾裝糊塗


大家好,我是碼農無疆。軟件行業多年老兵,和你聊理想聊技術。

你有疑問,我來回答。面試官常說,培訓機構出身的程序員“代碼不乾淨”,是什麼意思?

我們可以從團隊合作這個角度,理解這個問題。

一個軟件產品或者項目,會涉及到代碼分工,如果按模塊編寫,每個人負責編寫模塊,相當於獨自處理一個任務。其次是模塊組裝,集成為一個更大的模塊。比如說其中提供輸出的模塊出現問題,會連累被輸入模塊。此時,我們說程序出現了Bug。

  • 集成聯調不過,“不乾淨”的代碼意味著邏輯實現問題,需要打回重寫。

  • 集成聯調通過,但是命名不合規範,沒有註釋。維護人員也會說這個人代碼不乾淨,不容易理解,沒法接手。

代碼不乾淨,什麼人會有這樣的問題?

代碼質量跟這個人編碼水平有關,而編碼水平的提高並非一日之寒。

在大公司工作鍛鍊,更能寫出高水平,高質量的代碼。

培訓機構出身的程序員,缺乏實際工作經驗,對項目的複雜度,怎樣團隊合作理解不夠。

怎樣做到代碼乾淨

公司層面:制定代碼規範制度以及合理的軟件開發流程等。

個人層面:不要編寫大段代碼;重複代碼封裝成方法;添加必要的註釋;留下可擴展的空間;測試自己的代碼;參考大廠如BAT編碼規範等。

總之,無論你是被面試的,還是正在求職路上,都不必被面試官的話嚇倒。真正的標準來自於對自我的要求,不是嗎?

無疆在線普及科技常識,更多精彩回答等你來看。關注請點右上角,加入無疆粉絲團。


碼農無疆


培訓機構一般培訓4個月,短短四個月很難培訓所有內容,一般情況都是以實現功能為主。但是做項目不僅僅是實現功能,還要考慮代碼的複雜度,可拓展性,耦合性,內聚性,像c和cpp這種偏底層一點的還要考慮內存的佔用使用和釋放維護等。

短期內看,實現功能很簡單。比如很簡單的實現一個鏈表,有的人用數組,有的人用stl容器。但是stl容器有list,有vector,set,map等等。你無論用哪一種,都能做到存儲數據和查找功能。但是還要具體考慮使用情景和容器底層的實現方式。map和set底層是紅黑樹,對於查找非常有效率,但是插入和刪除數據,如果數據量比較大,會動整個樹的結構和序列,所以一般用於查找較多,而很少刪除和增加的。vector是內存中一塊連續的內存,方便插入和刪除,但是本身是無序的,所以查找,內部就只能遍歷查找了,適用於頻繁增刪,查找不多,數據不大的情況,之所以數據不大,是因為內存會分配一定的容量給vector,一旦數據超過了容量,內存會另外再開闢更大容量給它,vector原有的數據要全部複製過去,很耗時。而list是一組無序不連續的內存,數據之間依靠指針指向連接,理論上只要不超過可用內存,可以無限制插入刪除,插入數據時,在內存中找到差不多大的位置,然後把該位置的地址給上一個元素,一個連接一個就行了。同vector一樣,不適合大量的查找操作。此外,由於list佔用的內存比較鬆散,很大可能會發生串地址的情況,即別的指針做個自加操作,就串到list上,並不安全。這裡我也不班門弄斧了,頭條大佬也多。這些底層的東西培訓機構不會也沒時間交給你,更不會一一舉例,但是在項目中的使用很重要。


嗶哩嗶哩啪啦啦


任何一個行業,任何一個領域,只要是“火”了,肯定會有一大批人“心急火燎”地隨大流。

IT也是一樣,互聯網的興起,在加上人工智能AI的發展,導致程序員職業處於供不應求的狀態,所以工資很高。大多數人肯定眼紅啊,就想擠破頭也要擠進這個行業,沒有隻是儲備,那就隨便報個培訓機構,幾個月速成,好趕上這一波風口。

絕大多數人都是奔著錢來的,絕大多數的培訓機構也是奔著錢來的,所以就生產出一批一批的“半成品”湧入市場,就是題主說得“代碼不乾淨”。

這也是為什麼越來越多的企業對只要是培訓出身的應聘者,一律不要的原因。

一,“代碼不乾淨”就是水平還不夠。

程序員不是簡簡單單的把那26個字母打出來就行了,程序員的工作雖然是獨立的,每個人負責一個模塊,但是模塊與模塊之間需要銜接。

如果你打完的代碼與其他人銜接不上,那就是BUG,而且對整個項目都有影響,相當於你一個人拖累了整個團隊。代碼出問題一般都說誰編寫的誰處理,別人找BUG的話很麻煩,如果你連自己寫的代碼都順不下來,那可就尷尬了,大多數培訓機構出來的,都是自己寫的代碼不知道是什麼,因為沒有基礎,學的東西基本都是死的。

二,為什麼培訓機構出身的程序員會被認為“代碼不乾淨”?

最主要的原因就是沒有經驗,就像上文說的,都是奔著錢來的,很多人都覺得編程就那些固定的語句,符號,學會了就能做項目,不會深入理解編程。

而且現在的培訓機構為了搶資源,都說什麼零基礎幾個月就能成為編程大神,都是扯淡。程序員這份工作,真的非常吃經驗,參與的項目越多,代碼越簡潔,編碼水平越高。

比如你敲100行代碼寫出個程序,大神可能30行就足夠,就算人家告訴你怎麼做,你都不一定能理解。

在培訓機構才幾個月就想擁有別人在大學學了幾年的編程水平,太不切實際了吧。

三,機會總是會留給有準備的人。

不能說一棍子拍死所有培訓機構出身的程序員,有些人水平還真不錯,至少能達到公司的招聘標準。

可是很多人都沒想過一個問題:去培訓機構是為了學門手藝以防萬一,還是為了儘快出山賺錢?

任何一份工作,都不是那麼簡單就能勝任的。倒不是說有些人就是不行,不適合做程序員,最起碼在轉行時要考慮清楚啊。


朋也


不乾淨應該指的是寫的代碼不嚴謹,應為在培訓機構出來的學生,只是為了實現功能,完成項目,包裝簡歷,找到工作,是不會考慮代碼的工整性,嚴謹型,完整性的。

再加上本身培訓機構的教學時間就不夠,4個月學基礎,學理論,還要做將近三個項目,是沒有時間考慮這種代碼的結構,只要完成項目,學生能做項目就ok了。

別說我沒告訴你,我說的都是真的,我之前就是IT培訓機構的教學總監,所以聽我的沒錯,培訓機構出來的學生思維能力有限,可培養性很差。


雲碼素材


說句題外話,大學學的計算機專業,畢業之後做的也是專業相關的工作,周圍接觸的基本都是程序員,還從來沒有聽說過“代碼不乾淨”這個詞,不規範或者不寫註釋等等倒是有。不過有可能就是指的這些?

其實現在越來越多的公司不太想用培訓機構出來的人,不是因為代碼呈現出來的方式,最主要的原因是:簡歷包裝得太過分了,導致擾亂了這個行業的一些氛圍。

再說現在科班(計算機專業)畢業的人也很多了,為什麼不直接招學校了經過了3年或者4年專業知識訓練出來的人培養而是要那些在培訓機構只經過幾個月的短暫培訓的人呢?


命裡缺木


這裡是丁哥開講,我來回答一下這個問題。

我不太關心,程序員是不是培訓機構出來的。我比較關心的是,什麼是乾淨的代碼?如何寫出乾淨的代碼?

首先來說什麼是乾淨的代碼?

乾淨的代碼客觀上說,程序複雜度一定是很低的。

乾淨與不乾淨雖然本身有點主觀的意味。但是容易懂的代碼,很容易修改的代碼,大多數程序員都是認同的。

除了程序複雜度以外,從如下幾個方面看一個代碼是否乾淨。

. 類和方法足夠的小,只執行單一的任務。

. 類的公開接口方法的定義要清楚簡潔。

. 代碼是可測試的,也就是很容易寫出測試代碼。

. 測試代碼也要容易理解,並且容易修改。

明白了什麼是乾淨的代碼,那我們就需要往這個方向努力寫出乾淨的代碼來。

再來說一說乾淨代碼的好處。

好處1就是代碼方便維護,任何人都可以讀懂你的代碼。按照現有的代碼格式就可以寫出同樣乾淨的代碼來。

好處2就是方便添加新的功能即程序的擴展。添加新的功能,以不破壞程序的乾淨度為標準和前提。在軟件開發過程中,經常遇到的一個問題就是,添加新的功能以後,導致程序的複雜度大幅提升。這是很不幸的事情,發生這樣的情況,一般有多個因素,但是主要的原因是對整個程序架構不瞭解,再加上項目進度催逼的太厲害。導致程序員會不擇手段把功能實現再說。這樣子,一個項目的代碼看起來會是多個項目的風格。

好處3就是方便培訓新的程序員,並讓他們很快的融入到團隊當中。項目後續梯隊的培養是一個項目能夠長久發展的重要因素。隨著時間的推移,老的項目成員可能會有晉升機會,或者轉移到其他的新項目中。如果你的代碼是乾淨的,那麼項目的人員更替以後,工作效率也應該不會受到影響。

好處4也是方便將來的自己看懂自己的代碼。經驗少的程序員很少能夠理解這一點。做過很多年項目的程序員,對這一點可能深有體會。

我們假定這樣的情況,項目中需要添加一個新的功能,或者需要修改一個bug,而這部分代碼只有少數的幾個人能夠懂。而湊巧的是你就是其中的大牛之一。

於是你打開那些代碼。代碼歷史記錄表明是你的代碼。但你需要很長時間才能回憶起當初的思維邏輯。甚至永遠都想不起來了。

這個時候你可能會後悔,我當初要是把代碼寫的更乾淨一些就好了。

最後,祝各位都寫出乾淨的代碼來。



丁哥開講


怎麼說呢,培訓機構畢竟幾個月出品一批程序猿,在某種概念上,都是一些CV攻城獅,所以很容易在代碼中留下技術債,所以很多公司對於培訓機構出品的程序猿牴觸,不過這個更多的在於自己,如果一個計算機相關的可以系統的學習計算機基礎知識,並且熟悉語法,那麼在畢業前去培訓機構學習一些實戰內容,然後再去工作,也是可以的。而可怕的是啥都不會,中間學習幾個月就出師的。所以最核心的點就是程序猿自身,是不是專注於技術,專注技術,又怎麼會有這種問題呢


冬膘不夠呀


現在很多企業對於培訓出來的程序員都帶著有色眼鏡在看,甚至一些過激的企業直接把培訓出來的程序員排除在外,這種做法很明顯是不正確的,主要很多培訓機構的宣傳以及包裝對於軟件市場有非常惡劣的影響,導致很多企業反映非常過激。

軟件培訓本來就屬於查漏補缺的一種極好方式,隨著各個行業的成熟對於職員的要求也是越來越高,所以很多人在進入真正的崗位之前先讓自己強化一下,提前試營業一些規則,現在培訓行業已經慢慢走進大家的生活了,很多機構開始對於工作多年的程序員培訓,幫助遇到瓶頸的程序員進行提升,這都是社會進步的一種體現,整個社會對於開發人員的技能要求是越來越高,培訓不失為一種好的辦法,培訓的本質是查漏補缺,就是講在具備一定基礎的條件下培訓出來的會有意想不到的效果,但是現在很多機構把培訓吹噓的太嚴重了,零基礎弄上幾個月就能順利拿到高薪,在當今這個社會對於一個普通老百姓錢不是那麼好掙。

要正確的對待培訓,零基礎的並且對於編程這個行業不感興趣就不要想這碼事情了,即使真的想參加培訓也要自學上一段時間摸摸自己的底,到底差距在哪裡下一步怎麼去學習,不要迷信覺得零基礎只要加速幾個月就把什麼事情搞定了,幾個月的時間好的機構能讓人找到如何學習編程的方法,這種相對來講更加可靠一些,現在絕大部分的機構採用的是強灌式方式,這種方式能夠激發一些人內在的動力,很多人可能都是處於半知半解的狀態。

其實參加過培訓的人都明白,培訓完了通過機構介紹找到工作的只佔很少的一部分,大部分都是覺得學的差不多了自己投簡歷找工作了,畢竟依靠培訓機構推薦的工作大部分來講是外包性質的工作,無論什麼狀態最終能夠達到什麼樣子的效果是最關鍵,培訓是一種大趨勢,但要明白自己需要在什麼場景下選擇培訓更加合適,要清晰的認識培訓的本質。

很多機構為了讓學員增加面試的機會,直接在簡歷上大做文章,結果讓很多企業非常惱火,本來拿出時間來面試人結果發現面試的人虛假成分太高,造成人力成本的極大浪費。所以有些企業直接採取極端的措施,看到培訓的直接拒之門外了,這種做法很明顯不合適。有些人基礎非常可以通過培訓讓技術更加全面了,這也是極好的一件事,所以認識上要清晰明瞭。

回到正題面試官說培訓出來的程序員代碼不乾淨,這種本身帶有一種很強的個人偏見在裡面,培訓出來的程序員由於採用的灌輸式方式,肯定會在代碼習慣以及編程行為有所欠缺,對於初級新手也算是正常的現象,初級程序員容易寫錯各種錯誤的代碼也非常正常,沒有必要帶著放大鏡看這件事情,無論誰都是從新手走過來的。

希望能幫到你。


分享到:


相關文章: