【ROSALIND】【練Python,學(xué)生信】00 寫在前面

? ? ? ?我本來是典型的生物學(xué)背景,近兩年卻總想跨界生物信息學(xué)。無奈數(shù)理和計算機基礎(chǔ)太差,人也懶了點兒,看似投入了很多時間,但收獲一直不大。最近我偶然發(fā)現(xiàn)了ROSALIND,這是一個通過解決問題來學(xué)習(xí)生物信息學(xué)知識、提高編程能力的網(wǎng)站,內(nèi)容由淺入深,形式也很吸引人,導(dǎo)致我沉迷解題難以自拔,學(xué)到了很多東西。可惜的是很多問題對我來說難度很大,實在沒有思路時想看一下別人的解法,在國內(nèi)網(wǎng)站又很難找到答案??梢哉业酱a的注釋和解釋往往很簡單,也許計算機背景的同學(xué)可以輕松看懂,但對我這種生物背景的不太友好。
???????我相信像我一樣對生信感興趣的人應(yīng)該不在少數(shù),ROSALIND是很優(yōu)秀的學(xué)習(xí)資源,如果不好好利用太過可惜。因此我把我能解出的題寫成格式一致的文檔,包含背景知識、思路(生物學(xué)背景學(xué)生可以理解的思路?。┖痛a,這樣既可以督促我自己積極學(xué)習(xí),也可以保留一個有系統(tǒng)的存檔,甚至也可以幫到被bug卡到痛不欲生的同學(xué)(如果還有別人看的話~)。
???????如果你準備閱讀我之后的文檔的話,我得請你注意如下幾點:首先,我在課堂接受過的編程教育只有一個學(xué)年的非電類C++課程,雖然我自學(xué)過一些知識,但我沒有系統(tǒng)地學(xué)過算法、概率論、數(shù)據(jù)結(jié)構(gòu)等等這些課,生物信息學(xué)也學(xué)得很淺,因此很多所謂的“常識”我是不知道的;其次,我的思維完全是生物的,思考問題會更多地從生物學(xué)問題本身入手,不會考慮效率、復(fù)雜度,只要能輸出正確結(jié)果就高興了,不管手段有多粗暴;最后,我沒有養(yǎng)成良好的編碼習(xí)慣,而且我前前后后粗略地接觸過幾種語言,所以我的代碼風(fēng)格會非?;靵y。以上問題我在努力改變,但恐非一朝一夕之功,還望見諒。
???????在解題過程中,我參考了很多網(wǎng)上的代碼,有些甚至是整塊復(fù)制粘貼的,一開始我沒有注意標(biāo)記這些代碼的來源,由于本人比較懶后面也就沒有再認真查找原作者。所以如果有不妥之處請隨時與我聯(lián)系,我會及時標(biāo)記、修改或者刪除。
???????我的文檔將主要包括如下幾部分,
題目:包括ROSALIND給的輸入輸出要求的原文和中文譯文。
測試數(shù)據(jù):ROSALIND給的小數(shù)據(jù)
生物學(xué)背景:主要來自于ROSALIND給的背景介紹。
Python知識點:因為我用Python解題,所以這部分會介紹題目中用到的Python知識點。
思路:我看到問題是如何想的,怎樣實現(xiàn),遇到了什么困難等。
代碼:解題代碼,帶必要的注釋。
? ? ? ?當(dāng)然以上部分不是絕對的,比如太直接的問題我可能省去思路這一項,做得太痛苦的題我可能會加個吐槽部分等等。
???????最后,假如真的有人看的話,歡迎大家糾錯、提問題、提意見、完善代碼,交流學(xué)習(xí)經(jīng)驗。學(xué)習(xí)其實是件挺孤單的事,能找人相伴,不亦樂乎?