數(shù)學(xué)不好應(yīng)該怎樣學(xué)編程
數(shù)學(xué)不好應(yīng)該怎樣學(xué)編程
數(shù)學(xué)不好應(yīng)該怎樣學(xué)編程?想了解更多的信息嗎,和學(xué)習(xí)啦小編一起看看吧!以下是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)編程的建議,希望可以幫到你!
學(xué)習(xí)編程的建議
學(xué)習(xí)可以從編寫(xiě)一些具體的小的真正有點(diǎn)用程序入手,需要用到數(shù)據(jù)結(jié)構(gòu)與算法時(shí),順帶著就學(xué)了,感興趣的再深入系統(tǒng)地學(xué)一下。除非你在一些特定的有特殊要求的領(lǐng)域?qū)懗绦?,否則,大多數(shù)情況下用不上很高深的數(shù)學(xué)。
至于英語(yǔ),你要把它真當(dāng)成一種語(yǔ)言去用,用它去與別人交流,去吸收新知,建議你在有一定基礎(chǔ)后,直接看一些英文版的教材和視頻,開(kāi)始會(huì)比較難,慢,但堅(jiān)持下來(lái),好處很多的,你既能學(xué)到了知識(shí),又能提高英語(yǔ)水平。
要多嘗試,多動(dòng)手。不能一味地停留在知識(shí)點(diǎn)掌握的程度上,因?yàn)橹R(shí)點(diǎn)是死的,然而可以通過(guò)這些知識(shí)點(diǎn)的串聯(lián)可以解決很多活的問(wèn)題。踏實(shí)學(xué)習(xí),多動(dòng)腦多探索,多練代碼慢慢就會(huì)有一個(gè)不錯(cuò)的水平!
數(shù)學(xué)對(duì)學(xué)習(xí)編程的影響
1.數(shù)據(jù)庫(kù)
數(shù)據(jù),一下子就拉近了數(shù)學(xué)和計(jì)算機(jī)的距離,計(jì)算機(jī)離不開(kāi)數(shù)據(jù),數(shù)學(xué)那就是一輩子和數(shù)據(jù)在一起?;ヂ?lián)網(wǎng)后臺(tái)靠什么,數(shù)據(jù)庫(kù)存儲(chǔ),大并發(fā),大數(shù)據(jù),這都和數(shù)學(xué)里面的很多定理和公式有關(guān)系。而且這些方向的工作工資還不菲。
2.數(shù)據(jù)結(jié)構(gòu)
主要和算法有關(guān)。很多公司的核心技術(shù)都是算法,其他的可以共享,但是公司的核心算法都是保密的。公司的面試中多多少少都會(huì)有算法題目,數(shù)據(jù)結(jié)構(gòu)題目,屢見(jiàn)不鮮。路徑最優(yōu),二叉樹(shù)等等。
3.幾何,線性代數(shù)
玩過(guò)3D游戲吧,用過(guò)PS吧,再次點(diǎn)美圖秀秀用過(guò)吧,這些都和空間幾何有關(guān)系。Dota打過(guò)嗎?3D模型怎么做出來(lái)的,火槍手怎么從這里走到哪里,這些都和數(shù)學(xué)有扯不清的關(guān)系。
學(xué)習(xí)編程的技巧
1. 將其與類(lèi)似的語(yǔ)言進(jìn)行比較。當(dāng)你首次觀看有關(guān)該語(yǔ)言的第一個(gè)教程或閱讀代碼時(shí),請(qǐng)嘗試猜測(cè)該語(yǔ)言的每個(gè)部分將會(huì)做什么,并檢查你的判斷是否正確。
如果記筆記可以幫助你整合信息,請(qǐng)拿起一張紙并記下三個(gè)列表:
看起來(lái)很熟悉的東西,并且做了預(yù)期中的事
看起來(lái)很熟悉的東西,但做了意料之外的事
看起來(lái)完全是新的東西
例如,如果我用來(lái)自 Python 和 C 背景的 Rust 代碼進(jìn)行此練習(xí),那么在第一個(gè)列表中,我會(huì)放上用于表示范圍的花括號(hào),!(看起來(lái)像是布爾類(lèi)型的 非,但實(shí)際上是 Rust 中的宏定義)則放在第二個(gè)列表,類(lèi)型簽名語(yǔ)法(type signature syntax)放在第三個(gè)列表。
如果你保留著初始列表的副本,一旦你更熟練,可使用它通過(guò)語(yǔ)言反思你的進(jìn)展,并提醒自己在嘗試向其他人講授該語(yǔ)言時(shí),有哪些看起來(lái)不熟悉的概念。
2. 閱讀語(yǔ)言的官方文檔。如果希望在使用之前吸收大量信息,從閱讀語(yǔ)言的參考資料中可能會(huì)受益。不用擔(dān)心它們會(huì)對(duì)你催眠,參考文獻(xiàn)通常是用于查找使用,而不是用來(lái)記憶。
3. 使用互聯(lián)網(wǎng)搜索。搜索網(wǎng)絡(luò)是一個(gè)很好的方式,可提供有關(guān)特定錯(cuò)誤和一般最佳做法的信息。當(dāng)收到錯(cuò)誤信息時(shí),應(yīng)搜索信息中看起來(lái)是錯(cuò)誤的獨(dú)一無(wú)二的部分,但不是代碼唯一的部分。例如,如果錯(cuò)誤提示 "Error on line 53: Invalid argument exception(錯(cuò)誤在第 53 行:無(wú)效的參數(shù)異常)",以語(yǔ)言名稱和字符串 “Invalid argument exception” 這樣的組合搜索,以找到最佳的結(jié)果。記住要將錯(cuò)誤信息中的所有引用內(nèi)容都包含在內(nèi)。
還可以在網(wǎng)絡(luò)中搜索有關(guān)解決語(yǔ)言中特定問(wèn)題的最佳做法的博文。評(píng)估搜索結(jié)果中顯示的博客帖子的質(zhì)量和決定認(rèn)真采用他們的建議時(shí),請(qǐng)查看作者的公共代碼組合以及發(fā)布日期。
4. 與社區(qū)接觸。雖然博客和新聞文章具有大量有用的信息,但是你嘗試編寫(xiě)的特定代碼片段總會(huì)有些微妙之處。不要害怕在郵件列表中發(fā)帖,或加入 IRC 和 Slack 頻道以尋求幫助。
要提出有幫助的回復(fù)的問(wèn)題,請(qǐng)確保在正確的地方提問(wèn)。許多語(yǔ)言都有 “初學(xué)者” 郵件列表或聊天頻道,專門(mén)針對(duì)可能會(huì)頻繁詢問(wèn)的問(wèn)題而建立。當(dāng)提出問(wèn)題時(shí),請(qǐng)務(wù)必先總結(jié)準(zhǔn)備做什么、已做過(guò)的東西以及發(fā)生的情況。盡量為專家提供足夠的上下文來(lái)了解問(wèn)題,但不需要無(wú)關(guān)緊要的細(xì)節(jié)。提出問(wèn)題后,請(qǐng)務(wù)必堅(jiān)持一段時(shí)間來(lái)聽(tīng)取建議或會(huì)回答你的疑問(wèn)可能產(chǎn)生的后續(xù)問(wèn)題。
5. 編寫(xiě)玩具程序。一次練習(xí)一個(gè)新的概念,很少有任務(wù)可打敗只使用某個(gè)概念的玩具程序。你可以將重點(diǎn)放在盡可能讓你的代碼清潔和慣用性上。如果你將解決 Project Euler 或 Rosetta Code puzzle 作為玩具程序,則可以將你的解決方案與其他使用相同語(yǔ)言編寫(xiě)的解決方案進(jìn)行比較。
6. 使用該語(yǔ)言編寫(xiě) “生產(chǎn)就緒(Production-Ready)” 的代碼。玩具程序是一個(gè)很好的第一步,但在更逼真的的環(huán)境中使用一門(mén)語(yǔ)言可幫助探索其現(xiàn)實(shí)使用中的優(yōu)勢(shì)和挑戰(zhàn)??紤]將一個(gè)熟悉的、相對(duì)較小的、經(jīng)過(guò)良好測(cè)試的程序移植到新的語(yǔ)言,以探索其在現(xiàn)實(shí)使用的應(yīng)用。
猜你喜歡: