實習週記(一)

我對演算法一無所知發表於2020-11-08

實習第一週結束了,有一些感觸。

大學階段我雖然算不上努力,但是也沒閒著,學了不少東西,算的上對得起自己。但是實習第一週給我多少有點打擊(上一次打擊是東秦訓練營的時候)。我發現大學學得東西不少,但是實習的時候幹不了活啊,沒意義啊。我不是說理論知識不到家,沒到那一步呢,手上功夫都不到家。最淺顯的說,打字還得看鍵盤找呢,寫程式碼的時候包名函式名都記不住,還得查呢,拋了error,連error說的是啥都看不懂,學再多理論,基本也沒什麼意義。我覺得這件事跟彈吉他很像,手上彈個最基本的自然音階都彈不穩,指望學學樂理就能彈好吉他簡直是痴人說夢。手指頭沒出過前三品,只會幾個三和絃,還換不利索,就彷彿c語言學完只會寫個氣泡排序水仙花,寫完還不知道分號掉哪了。計算機最基本的基礎知識我可以說是處於僅有常識的階段。linux不會用,只會個cd、ls基本連了解linux的階段都不到。shell一點不會寫,sql有時候還得百度,對各種計算機最最基本的知識都完全不瞭解,比如檔案系統,各種檔案型別的結構、編碼等等,還有一些具體到程式碼上的資料結構。這些不瞭解導致我現在寫程式碼水平基本處於能實現的水平,而且還很勉強。僅僅一段幾十行的程式碼寫完調很久都跑不通,我很難跟別人說,我會寫程式碼。我很難想象我已經學了四年電腦科學與技術專業。再其次,我覺得一名普通程式設計師的基本素養應該是能迅速寫出一段能跑通的程式碼,先別考慮程式碼效率,很明顯,我還達不到,就是程式碼敲的太少,我現在覺得以練代學比以學代練重要的多。

上面是說的手上功夫,下面是腦子裡的東西。一段簡單的邏輯,我可能還能寫出來一段程式碼,邏輯一旦複雜,大腦一片空白,學的理論用不上,根本原因還是寫的太少,或者說,其實也沒什麼可寫的。或許大學階段本身就不太可能接觸到端到端的開發過程(這裡說的端到端是指對於自己負責的那部分工作,完整的從自己工作範圍的開始到結束,做完整個工作的全部流程,不是說從需求到上線),而在學校學的練的往往是最核心的那一部分而已,而這一週實習,告訴我一個冷酷的現實,工作的時候不會有人像學校老師一樣,把整個實驗的前前後後的工作都處理好,只需要完成最核心的部分就可以了。

我感覺寫程式碼不是科學,只是邏輯和業務而已,在邏輯和業務面前,或許熟練要比太深的理論知識重要的多,而理論集中於最核心的部分,也就是在學校學的部分;而熟練度體現在方方面面,或許學習好就理論到家,就比別人懂得多,比別人想的多,但是,不熟練的話,完全不具備工作的能力。

我現在就完全不具備工作的能力。實習導師說,給你個模型,資料在那臺機伺服器上,你去把資料拿出來,隨機抽個樣,然後,把這個模型跑一下,驗證一下效果,順便熟悉熟悉業務。這個任務邏輯很簡單,就是把資料從伺服器裡取出來,然後random一下,丟進別人寫好的模型裡,執行一下就完成了。但是很難想象,僅僅是把資料從伺服器取出來再隨機採個樣,這兩步我就做了3天,第四天早晨才算是暫時做完了,但是效果似乎不太好,可能還要重做。

這個過程體現了方方面面,先是伺服器的登陸,然後是用shell指令碼寫一個流程從伺服器裡取資料,然後是用python把資料清洗好再隨機取樣,然後是儲存到檔案,幾乎每一步我都卡了很久。就連這所有工作中我最熟悉的Python處理資料那一步,我耗費的時間也不比其他的過程要短。這也體現出能寫和會寫是兩碼事。

這次實習還是非常必要的,反映了很多問題,反映了很多在學校根本不可能發現的問題,也是在學校根本不可能解決的問題。希望在接下來實習的幾個月裡,我能把過去四年欠缺的補一部分回來。

相關文章