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