英語和數學不好的人是不是學不會編程?

來源:互聯網
上載者:User
24歲了無一技之長所以想學編程,為了以後能自己養活自己,但在網上搜尋了一下,發現有人說英語和數學不好的人不可能把編程學會。我的英語在自學中。數學就真的很差!請問真的是這樣嗎?英語和數學不好的人學不會編程嗎?要開發一款安卓APP和蘋果APP需要學會哪幾種程式設計語言?

回複內容:

學肯定能學會,就是效率低,學起來缺少愉♂悅♂感♂。
比如我。
要解決這個問題沒啥捷徑,缺啥補啥吧。關鍵是你是因為興趣和用途,還是因為想成為大牛。

1.肯定學得會編程
,學不學得好是另外一回事,但夠不夠用又是另外一回事。
2.現在的編程多麼簡單啊,你能靜下來看一會書練習一下就會了。我的英語比一大堆說英語不好學不好自命不凡的程式員都要好多了,但他們的編程能力比我高多了,那是因為他們學編程,而我還是喜歡看中文學編程,同時他們是專業,我是業餘愛好,那是兩碼事。
3.“數學分析”這種詞應該不是我這種人用的,但我的高數就記得極限、有限無限還有線性方程之類的東西,我完全忘了怎麼算,但我有mathematica。我也有一大堆的Python的import庫。
4.學編程你以為科班畢業很厲害?才不是,大多數都其實很普通,我工科畢業也一樣對我的專業感覺十分差勁,但其實上,拚命學幾個月其實就能追得平均值差不多。
5.大牛是一種回事,但大牛的標準其實沒多少人達到,很多偽大牛,當然就有了許多漂亮的說法來讚揚他們的牛法,一些編程方面的怪異理論往往被偽大牛們當成了賣點,還有一堆人去引用大牛的話當成他們自己發明出來的。去看書,然後練習,找工作只比業餘層次高那麼一點點,實際上,尤其是需要大量經驗的工作。
6.數學和英語應該每天學習,慢慢增進,但應該與實際結合。你去工作幾年,又一起學了幾年,你就肯定能成中上遊了,不偷懶就已經讓你慢慢地超過許多人了,你剛學編程,這裡很多人則是相關專業和背景的,他們有些人就喜歡欺負弱小。

做什麼最重要是順從心意,作為回答最緊要是有作用。你24歲又無一技之長,那就去學習,然後找份工作邊學邊做,你能進去就代表你學得足夠了,再慢慢學,沒心思讀書進去後有壓力自然也會學。許多回答一邊炫耀自己的演算法,各種英文文檔等等陳詞濫調,還一邊各種惡劣態度表示你十分爛……根本不用管。很多回答動不動就是什麼靈魂深處之類的意境,各種粗糙的文墨賣弄,我真想嘔。英語不好不意味著其他字母語言差,和海外團隊合作時曾經見過意大利語的異常,把我們給氣的。
至於數學不好,又不是讓你做演算法設計,流水線上組裝車,要數學幹嗎?
什麼都不好,都不會妨礙你做個Code Monkey,但是想更進一步,就要進化成懂English和Math的Programmer。
沒做過Andriod App開發,印象中好像java就足夠用了。要是嫌麻煩可以轉iOS開發,只需要會Object-C就行了,真心跟C差不多。靠編程為生,數學不好不是特別嚴重的問題,但英語不好會比較麻煩,至少用拼音命名會讓人很反感。

最後,知道缺陷在哪為何不去學呢?說實話,我同意“數學和英語不好是學不好編程的”這樣的觀點。在我身邊也有很多這樣活生生的案列。
我們先來說說英語。編程這種事本來就是寫單詞並且進行邏輯組合,編程最直觀的對象就是英語,當然編程裡面的單詞都是比較基礎的,一般學點英語的人都會。那麼既然程式本身的英語很簡單,為什麼還要有很強的英文功底呢? 一下我簡單的列幾點,大家自己體會:
  1. 程式設計語言的起源是來自歐美等國家,其編程思想也是保佑歐美特色的,我們只有讀原汁原味的英文教材才能體會到一門編程的藝術。比如說PYTHON,你看英文的和看中文的簡直感覺自己在學兩種語言
  2. 每一門語言都會有官方文檔,而這是學習編程的最好的參考資料。(官方文檔幾乎麼有中文的)
  3. 很多新的語言,如果你不會英文,幾乎沒法學,因為國內沒有。比如,R(現在好多了),但是看看SAS吧,如果你不會看官方文檔,你能學會?哦,對了,還有那牛逼到天上的hadoop。
  4. 不會英文,你怎麼google,怎麼玩GIT,怎麼去看stackoverflow。這三塊是每一個高手程式員必去的地方
  5. 請你看看知乎裡面那些大神,是不是清一色的幾乎是海龜?即使不是海龜,也都是在英文方面頗有造詣的人,至少閱讀方面是頗有造詣的
我們再來看看數學。我見過太多的不會數學的程式員了,誠然,數學不好也是可以開發軟體或者寫代碼的。但是在電腦界裡高大上的資料結構和演算法才是核心競爭力(有點片面)。你看看那些電腦的大牛,動不動就是數學,電腦雙學位,我就不說那些又會運籌,又會統計機率的大牛了。 我們再來看看最近火的不得了的大資料,無論是資料分析還是資料採礦,核心技能就是:數理統計和電腦。我就不說機器學習了!

所以說,你不會數學和英語也可以當程式員,但是這樣的程式員在我天朝少則百萬,多則上千萬。而怎麼從這幫人當中脫穎而出,數學和英語就是你首先要考慮的問題。

當然,如果你爹是王建林,我上面說的都是廢話! 誰閑的蛋疼去當程式員啊!英語一切的基礎,數學不好抽象能力就不夠,你看不清問題的本質。學udacity的 CS101做題到這裡

防欺詐連結來計算任意兩連結的距離時,這裡我憋了十幾個小時也沒理清頭緒。我就去看mit的single calculus了,看完differentiation的a小節,a的第一個習題組做了一半再回頭看這題趕腳就好些了。

數學彷彿是這個世界的靈魂。

觸得到這千頭萬緒,看不出那纖纖一束寫完才發現答偏了>.< ,本答案說的是“英語和數學不好的人是不是學不好編程”,大家將就著看吧。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

答案很殘酷,但英語和數學不好的人確實是學不好編程的。

想必有人看完這句話就要跳出來反對了,有人肯定會說:“就編程裡的if,for,while,do,void這幾個單詞還需要英語好?看幾遍就會了。”也有人會這麼說:“學好編程還需要數學好?我會物件導向,我會寫app,但是和數學半毛錢關係沒有啊!”但是必須要說,這麼想,就錯了。

好吧,首先來說英語。

正如某些同學所想的,一個程式裡面的單詞確實很簡單,詞彙量超小,C++的關鍵字也才63個而已,而且變數名、函數名雖然不能用中文,但是你也可以用中式英語甚至用拼音隨便起。所以編寫程式完全不需要英語好。但是你們忘了,這隻是停留在“能寫出一個程式”的水平上,如果你要學會甚至學好編程,下面這幾樣東西你是必須掌握的:Debug、看/寫注釋、查閱資料。

Debug,相信每個學習編程的同學都知道它的重要性。C++之父說過:“我們估計在開發正式軟體時,90%以上的工作是放在如何避免、尋找和糾正錯誤上。”而Debug過程中顯示的錯誤資訊,就不像C++的關鍵字那樣都是小學水平的英文詞彙了,其無論從詞彙還是文法上來看,對編程者的英語水平要求都比較高。很多初學編程的同學,寫完程式一跑,編譯器一報錯,就傻了,因為完全看不懂報錯的資訊,只能夠紅色知道是哪一行報錯了。然後就只能單步調試、上網查報錯資訊或者問其他人,這三種無論是哪一種都無疑是效率極其低下的Debug方式。但是如果你能直接看懂報錯的資訊呢?相信你的編程效率會立馬高到不知道哪裡去了。我也相信,能看懂編譯器的報錯資訊,是學好甚至學會編程的第一步。

看/寫注釋,這個也許初學者接觸得並不多,甚至某些CS(Computer Sience)方向的同學也會接觸的不多。但是如果在編程的路上一直走下去的話,看/寫注釋幾乎是日常必須要做的事。首先規範的代碼是要求在程式的關鍵處寫上注釋,以及在程式開頭寫上程式作用、程式版本變更等等資訊,如果用心去做,其難度並不亞於一篇英語作文。此外,編程的時候,你也可能需要閱讀大量注釋。所以,這也對編程者的英語水平有一定要求。

查閱資料,新學一門語言、掌握一個演算法甚至安裝一個圖形類庫都需要查閱資料甚至閱讀文獻。而有時候,好的資料往往是全英文的,或者這個領域暫時沒有中文書籍和資料,你能找到的,只有幾十本幾百頁的英文書。在編程的學習過程中,這個現象是很常見的。相信自學過iOS開發的同學都深有體會。

綜上,我以為,英語不好的人是學不好編程的。

其次,來說說數學。

編程某種意義上來說就是用電腦來做數學題,因為關於這一點曾經看到過一個很棒的答案@濤吳,我就直接引用了:



馬里奧碰到花朵就變身。

什麼是馬里奧?一個裝著 16 × 32 個小色塊的長方形,其中一些色塊填著顏色,另一些沒有。什麼是花?一個 16 × 16 的正方形。什麼是「變身」?把馬里奧這個方塊裡面代表衣服的褐色變成紅色,代表背帶褲的紅色變成白色。什麼是褐色?暫且說它是 0x887000 這個數字。什麼是「碰到」?馬里奧的長方形與花朵的正方形有所重疊。什麼是「重疊」?假設馬里奧的這個方塊佔據螢幕(什麼是螢幕?一個能裝下 256 × 240 個小色塊的矩形)中 X 方向 101 到 116、Y 方向 21 到 52 之間的地區,那麼只要這個地區內有一點或更多點也被花朵所佔據(比如花朵處在 X 116 到 131、Y 21 到 36 之間的地區內),我們就認為兩者有所重疊。

若給定以八個數值代表的兩個矩形地區,請寫出判斷兩個地區是否有重疊的 C 語言程式。如果你能寫出來,那麼祝賀你,如果有朝一日你想自己做一遍 NES 版本的《超級馬里奧》,你至少知道讓他變身需要做什麼了。

是的,C 語言也許「只能」做數學題。可是,絕大多數遊戲的運行過程就是不停地做數學題,而所謂編寫遊戲,也就是把遊戲的規則和遊戲的效果轉化為數學題而已。其中不少題目電腦都已經知道怎麼解——是別的程式員事先告訴它的——比如「求一堆散落在三維直角座標系之中的多面體在 8(x−3)−10(y+1)−11(z−1)=0 這個平面上一個給定範圍內的投影」或者「給定一些彼此相連的頂點,求任意兩點之間的最短路徑」之類的數學題,它只需要千萬分之一秒就能給你解好。這種能力有什麼用?電腦上 FPS 遊戲的本質活動就是不停地求三維座標系下的多面體經過變換之後在二維平面上的投影,不停地判斷兩個多面體是否彼此重疊,以及不停地尋找兩個頂點之間的最短路徑,最終達到讓怪物衝到你面前咬你一口的目的。不止遊戲如此,其他軟體也都差不多,每一個細節都是某種數學題——比如知乎頁面頂端的藍色導航條背景,就是 CSS 描述的一個淺藍到深藍的漸層——漸層是怎麼回事呢?給出兩個數字分別代表兩種顏色,以及第三個數字代表一段距離,求一系列顏色的數值以及次序,使得這段距離中兩種相鄰顏色之間的變化最小。數學題。別說 C 語言,一切程式設計語言最終都只能做數學題,根據給定的資料,算出另一些資料,算出更多的資料,然後存貯、發送或者呈現算出的資料。
傳送門:學會了 C 語言真的可以開發出很多東西嗎? - 濤吳的回答

所以在我看來,數學是編程的本質,而英語則是研究任何一門學問必須要掌握的技能。英語和數學不好的人是不是學不好編程?是的。我堅信學編程可以提高英語和數學能力編程門檻不高,但最終英語和數學是最大的瓶頸。完全不能這麼說吧,我和樓主一樣算是失足青年,我玩電腦要早兩年,但是那會一直沒碰過編程,後來看了一下c語言,是譚浩強第三版,數學問題不是很多的藍色的那本,我覺得寫的很不錯,幾遍沒什麼英文單詞,數學也用到的少,所以對於入門來說數學樓主可以放心了,只有遇到一些底層的小演算法的時候可能用到數學,比如十進位轉換二進位,多理解幾遍也就可以了,如果不會也不影響樓主的學習,那是一個迴圈的練習中會碰到的問題而已,至於英語我的英語就很差,雖然是本科,但是我英語一路水過來的,編程中遇到的英語也有很多屬於cet6或者是gre中的,我一般都是有道詞典現查詢,就是遇到什麼學習什麼,所以希望樓主不要被挫敗了,畢竟我們不是天才,縱觀當下很多算是高薪的開發人員,大家英語其實不是都那麼好的,但是照樣10k什麼的拿,混得是項目經驗和機遇,比如安卓開發,雖然飽和但是也緊缺!我哥們高中沒上依舊10k,不要被大家人云亦云的說法嚇到了,只要堅持,你的智商也不比別人差不是嗎?只是缺少努力和經曆?
至於往高處發展數計不分家,這句話樓主一定有聞吧,一定會遇到數學的,英語好可以看很多外國文獻,但這不代表英語不好你就無法編程,10k的工作都有可能在玩架構和項目經驗,單詞不認識一個記一個,你還在擔心什麼,先月薪10k了,再去考慮其他的事情,諸如此類我英語不好,數學不好怎麼辦。。你又不是搞映像和遊戲,對數學要很透徹,說了這麼多就是希望傳達給樓主一個概念,學吧,不打緊,我們的近期目標還不會被這些問題所挫敗,不是嗎?
歡迎大家拍磚,我哪裡說的不對?
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.