文章來源于公眾號:Java極客技術(shù) 作者:鴨血粉絲
前幾天阿粉說阿粉最近換了公司,而且入職之后干掉了公司里面的測試數(shù)據(jù)庫的事情,而接下來的事就比較有意思了,來自“科班出身”的哥們和來自“培訓(xùn)出身”的我的大型辯論(SIBI)現(xiàn)場,也不能說是通俗的甩鍋,但是確實有那么點意味。
現(xiàn)場一
“科班程序員”:這功能很好實現(xiàn)呀,直接寫幾個嵌套for循環(huán),在里面判斷一下就行了,直接返回數(shù)據(jù)就行了,為啥你這寫的這么墨跡呢?
“培訓(xùn)程序員”:內(nèi)心OS:嵌套 for?再加上幾個 if,你確定你的數(shù)據(jù)超過1w條,沒有明顯的延遲么?于是,只能告訴他,兄弟,這么寫肯定是沒什么問題,但是你不想一下后期怎么維護么?你這才一兩萬的數(shù)據(jù)我都能感覺出明顯的延遲了,為啥不能優(yōu)化一下呢?
說實話,說到這個問題的時候,也避免不了被大家diss,覺得這不是科班出身的程序員能寫出來的代碼,而事實情況確實是這個樣子的,也可能是工作經(jīng)驗不太足,所以很多代碼寫的不是很給力,也可能是之前的公司做過幾次 CodeReview,所以每次在寫完代碼之后都習(xí)慣性的去考慮一下這個代碼還能不能優(yōu)化的更加簡單一點,所以考慮的時間要稍微長一點。
于是,兄弟就開始和我較真了,阿粉的策略一直很簡單,兄弟,你自己寫個三個 for 循環(huán),然后去看看你執(zhí)行完這個循環(huán)的時間,然后想想如果在循環(huán)中加入查詢數(shù)據(jù)庫的所有的操作,你再想想怎么處理,就比如說,你要比對循環(huán)里面的 List 里面是不是有這個的時候,不用寫那么多的 for 循環(huán),不然那不就是 X*Y 次了,為啥不再單獨的造一個 List 用 contains 來獲取呢?
現(xiàn)場二
“科班程序員”:哥,這個功能是不是還可以再繼續(xù)把這些內(nèi)容加上,這塊我覺得加上它會更加的完善。
“培訓(xùn)程序員”:來自內(nèi)心的OS,加個錘子,需求上怎么定,我就怎么干,干完了不是就OK了,為什么要多此一舉,但是心里這么想,實際還是不能這么干,于是說,這個地方你看怎么改,郵件給我說,抄送給xxx,然后我再改。
也不是說加這個不行,確實是,按照需求完成了工作之后,你再過來給我扯東扯西的,有點讓人難以接受不是,你要是說這地方寫的有問題,是吧,咱們還能請教一下你這塊應(yīng)該修改成什么樣子,你現(xiàn)在過來給我說加功能,你這不是要搞事情,怎么能慣你這個毛病呢,于是二話不說,先發(fā)郵件,抄送給領(lǐng)導(dǎo),誰讓加的,別到時候你一句話,加了功能,到最后出問題了,第一時間找的還是我,于是這個功能需求上沒有的,自動屏蔽。
阿粉在這里不是說“科班出身”,和“培訓(xùn)出身”之間的差距,沒有任何其他的含義,只是這次確實是比較巧合,這個哥們是剛畢業(yè)2年的本科,專業(yè)是計算機科學(xué)與技術(shù)的。僅僅是巧合,不要多想呦。
現(xiàn)場三
“科班程序員”:這個簡單,幾天就能搞定了,不用那么麻煩,
“培訓(xùn)程序員”:這是啥呀,我得先看看基礎(chǔ),然后再實際動手操作吧。
說實話,不得不說,有時候“科班程序員”雖然有些時候會讓你感覺到他們有著一些些的優(yōu)越感,但是技術(shù)也確實很給力,比如說在公司要使用一項新技術(shù),他們能夠二話不說的幾天就能開始干活,而在這些內(nèi)容上相比較,“培訓(xùn)出身”的程序員反而沒有那么給力,而是得先摸清楚基礎(chǔ),畢竟大部分的科班生都是經(jīng)過學(xué)校系統(tǒng)的學(xué)習(xí),知識體系更加完整,所以能夠更深入的解決問題,但是有一些礙于時間短的原因,沒有成功的積累起來經(jīng)驗的時候,還是欠缺點火候的。
這不正是之前網(wǎng)上看的一個圖么?
現(xiàn)場四
這個場景就比較有意思了,就是雙雙聯(lián)合和產(chǎn)品battle,面對產(chǎn)品的靈魂提問:
“這個需求用戶/運營說要改成這樣,”,
我們的統(tǒng)一回答,郵件呢?你發(fā)個郵件先,然后抄送給那個誰誰誰,單獨給我說,我實在是不敢給你這么干,不然改來改去,還是第一版怎么弄,你就先發(fā)郵件,證明我們在干活不是嗎?你先去準(zhǔn)備郵件吧。
這話說的是沒有啥毛病吧,這是經(jīng)驗總結(jié)出來了,不然等你開了頭之后,接下來的事情就比較難辦了,能做完還行,這做不完的話,那就相當(dāng)于你沒有干活,所以,對程序員來說,你把做的功能給我羅列清楚,然后提交上去,下發(fā)指定哪些功能確定之后,我再做也是完全不虛的。
說了也挺多的了,阿粉也在后邊給大家放上一個曾經(jīng)的面試題,是屬于那種上手實踐的面試題。
面試官給的一個面試題,而面試題很有意思,大家可以看一下。這個題阿粉是沒有回答上來,但是來自科班生的答案,讓面試官很滿意:
而他的實現(xiàn)方法和我從網(wǎng)上看到的是一模一樣的,
Task task = new Task(() => checkCustomerprice());
task.Start();
bool result = task.Result;
Task task2 = new Task(() => checkInventory());
task2.Start();
bool result2 = task2.Result;
if(result&&result2)
return true;
else
return false;
網(wǎng)上的大神也不確定對不對,阿粉覺得這么實現(xiàn)確實也是有道理的,不知道大家的意見是什么樣子的呢?
以上就是W3Cschool編程獅
關(guān)于“科班出身”的程序員和“培訓(xùn)出身”的程序員的大型辯論(甩鍋)現(xiàn)場的相關(guān)介紹了,希望對大家有所幫助。