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

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


學肯定能學會,就是效率低,學起來缺少愉♂悅♂感♂。

比如我。

要解決這個問題沒啥捷徑,缺啥補啥吧。


英語不好不意味著其他字母語言差,和海外團隊合作時曾經見過義大利語的異常,把我們給氣的。

至於數學不好,又不是讓你做演算法設計,流水線上組裝車,要數學幹嗎?

什麼都不好,都不會妨礙你做個Code Monkey,但是想更進一步,就要進化成懂English和Math的Programmer。

沒做過Andriod App開發,印象中好像java就足夠用了。要是嫌麻煩可以轉iOS開發,只需要會Object-C就行了,真心跟C差不多。


寫完才發現答偏了&>.&< ,本答案說的是「英語和數學不好的人是不是學不好編程」,大家將就著看吧。

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

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

想必有人看完這句話就要跳出來反對了,有人肯定會說:「就編程里的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 語言真的可以開發出很多東西嗎? - 濤吳的回答

所以在我看來,數學是編程的本質,而英語則是研究任何一門學問必須要掌握的技能。英語和數學不好的人是不是學不好編程?是的。


說實話,我同意「數學和英語不好是學不好編程的」這樣的觀點。在我身邊也有很多這樣活生生的案列。

我們先來說說英語。編程這種事本來就是寫單詞並且進行邏輯組合,編程最直觀的對象就是英語,當然編程裡面的單詞都是比較基礎的,一般學點英語的人都會。那麼既然程序本身的英語很簡單,為什麼還要有很強的英文功底呢? 一下我簡單的列幾點,大家自己體會:

  1. 編程語言的起源是來自歐美等國家,其編程思想也是保佑歐美特色的,我們只有讀原汁原味的英文教材才能體會到一門編程的藝術。比如說PYTHON,你看英文的和看中文的簡直感覺自己在學兩種語言
  2. 每一門語言都會有官方文檔,而這是學習編程的最好的參考資料。(官方文檔幾乎么有中文的)
  3. 很多新的語言,如果你不會英文,幾乎沒法學,因為國內沒有。比如,R(現在好多了),但是看看SAS吧,如果你不會看官方文檔,你能學會?哦,對了,還有那牛逼到天上的hadoop。
  4. 不會英文,你怎麼google,怎麼玩GIT,怎麼去看stackoverflow。這三塊是每一個高手程序員必去的地方
  5. 請你看看知乎裡面那些大神,是不是清一色的幾乎是海龜?即使不是海龜,也都是在英文方面頗有造詣的人,至少閱讀方面是頗有造詣的

我們再來看看數學。我見過太多的不會數學的程序員了,誠然,數學不好也是可以開發軟體或者寫代碼的。但是在計算機界里高大上的數據結構和演算法才是核心競爭力(有點片面)。你看看那些計算機的大牛,動不動就是數學,計算機雙學位,我就不說那些又會運籌,又會統計概率的大牛了。 我們再來看看最近火的不得了的大數據,無論是數據分析還是數據挖掘,核心技能就是:數理統計和計算機。我就不說機器學習了!

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

當然,如果你爹是王建林,我上面說的都是廢話! 誰閑的蛋疼去當程序員啊!


學不會英語/數學那你能學好編程的可能性也不大


完全不能這麼說吧,我和樓主一樣算是失足青年,我玩電腦要早兩年,但是那會一直沒碰過編程,後來看了一下c語言,是譚浩強第三版,數學問題不是很多的藍色的那本,我覺得寫的很不錯,幾遍沒什麼英文單詞,數學也用到的少,所以對於入門來說數學樓主可以放心了,只有遇到一些底層的小演算法的時候可能用到數學,比如十進位轉換二進位,多理解幾遍也就可以了,如果不會也不影響樓主的學習,那是一個循環的練習中會碰到的問題而已,至於英語我的英語就很差,雖然是本科,但是我英語一路水過來的,編程中遇到的英語也有很多屬於cet6或者是gre中的,我一般都是有道詞典現查詢,就是遇到什麼學習什麼,所以希望樓主不要被挫敗了,畢竟我們不是天才,縱觀當下很多算是高薪的開發人員,大家英語其實不是都那麼好的,但是照樣10k什麼的拿,混得是項目經驗和機遇,比如安卓開發,雖然飽和但是也緊缺!我哥們高中沒上依舊10k,不要被大家人云亦云的說法嚇到了,只要堅持,你的智商也不比別人差不是么?只是缺少努力和經歷?

至於往高處發展數計不分家,這句話樓主一定有聞吧,一定會遇到數學的,英語好可以看很多外國文獻,但這不代表英語不好你就無法編程,10k的工作都有可能在玩框架和項目經驗,單詞不認識一個記一個,你還在擔心什麼,先月薪10k了,再去考慮其他的事情,諸如此類我英語不好,數學不好怎麼辦。。你又不是搞圖像和遊戲,對數學要很透徹,說了這麼多就是希望傳達給樓主一個概念,學吧,不打緊,我們的近期目標還不會被這些問題所挫敗,不是么?

歡迎大家拍磚,我哪裡說的不對?


為什麼美國人不會問,中文和數學不好是不是學不會編程呢?我覺得主要還是百度質量差的原因。

所以呢,題主如果選擇一些成熟的技術學,也還是有希望的。說白了就是書是中文的,手冊是中文的,各種論壇全都是中文的。。。 這種情況下就沒有英文問題了。

至於數學嘛,一般學這個程度的東西也不會涉及到什麼數學問題。


嗯,學會編程不需要多高深的數學知識和英語水平,想要學會編程,初中的數學和英語水平足夠了,現在的程序開發環境又很友好,基本上打開之後不需要怎麼配置,直接寫代碼就行,程序語言無外乎順序、判斷和循環語句,寫一寫簡單的程序毫無壓力,你看很多高中生甚至初中生都可以編程了。

但是如果想要學好編程,數學知識還是很重要的,但是也不會太高深,修完大學本科的數學課程(微積分、線性代數和概率論)、外加計算方法,你的數學知識可以說是準備足夠了。如果再加上離散數學也很6,那就綽綽有餘了。而且數學好,體現在抽象思維和邏輯思維能力上,這兩點在編程時是十分重要的,程序=演算法+數據結構,而理解演算法,設計演算法就需要較好的數學能力,在接觸到新問題的時候,能把問題抽象為以前解決過的問題,或者能根據問題提出求解模型。

英語並不作為編程的瓶頸,但是客觀條件導致還是一個必須的要求。如果英語水平太差了,對於你提升編程能力可能就會有一些阻礙,因為計算機和互聯網技術最開始是國外搞出來的,很多編程語言也是國外的人搞出來的,很多優秀的資料都是用英文寫就的,甚至,國內的大牛搞出來的東西,為了和同行交流,也會寫成英語發表。想編程入門,操起國內一本入門到精通系列的書,基本上能沒問題了,寫個小程序也是輕鬆寫意,如果能了解一些類庫和API,就可以搞出很炫的程序了。但是如果想把編程能力上一個台階,就需要閱讀進階的資料,但一般都是英文寫就的,如果英語太差可能就看不懂,但是我始終認為,英語通過了CET-4基本上就OK了,少數不太懂的詞或者專業名詞,就在網路上查一下,而且計算機專業嘛,常見的專業術語也就那些。


英語一切的基礎,數學不好抽象能力就不夠,你看不清問題的本質。學udacity的 CS101做題到這裡

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

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

觸得到這千頭萬緒,看不出那纖纖一束


你好好學c++ c#,學到後來,百萬年薪找上門。沒人管你英文好不好。


我堅信學編程可以提高英語和數學能力


編程門檻不高,但最終英語和數學是最大的瓶頸。


英語不好學不「會」編程,

數學不好學不「好」編程。


靠編程為生,數學不好不是特別嚴重的問題,但英語不好會比較麻煩,至少用拼音命名會讓人很反感。

最後,知道缺陷在哪為何不去學呢?


我的看法可能有人不愛聽。

零基礎學編程,基本不靠譜。

沒有經過大學幾年的系統學習,就算知其然不知其所以然的學會了一門語言,也走不遠。就算找到個幾千塊月薪的工作,你也會很痛苦(加班到九十點是常事)。

你可以去學淘寶開店、SEO什麼的,編程可能不適合。


搞編程可以,搞軟體設計和開發不行。

這就好像你不會畫圖也不會算術,但你還是可以搞搞木工刷刷牆的,不過建築師你就別想了。

搞APP開發的話,不一定。

如果是公司,總有一些模塊是你可以寫的。但是公司為什麼要一個只能滿足最低要求的人會成為一個問題。

如果是個人,這個主要看運氣。比如Flappy Bird。

另外,現在國內程序員就人數上最多的應該是給公司內部做增刪改查開發。這個總體上並不難,因為大多數就是套模板和修修補補。

為什麼英語不好不行:

尖端技術永遠是英文的,翻譯過來的速度實在是太慢。

為什麼數學不好不行:

我們就算不說AI和圖像處理這些東西(這些你信號自控乃至通訊原理不好都有可能不行,別說數學),組合數學和離散數學好歹它也是數學吧……


數學不好當然可以編程 但有可能編不出邏輯嚴謹 簡潔的code

至於英語不好學不好編程 我猜測是說在解決問題時 大部分的資料是英文的 所以英文的閱讀跟理解能力要夠

所以綜上 數學英語不好依然學得會編程 但不一定編的好而已


我是數學好,英語特別特別差,這倆沒關係吧,一個文科一個理科


數學不好還可以php 英語不好這個真的不行( ̄(工) ̄)


英語數學學好了,也不一定能學好編程


推薦閱讀:

如何開發一個App?
如果有一個 App 的想法,但是我沒有製作 App 的經驗,如何找到可以幫助我完成 App 的人?
對於產品來說App和H5頁面長遠來看哪個更有發展?各有什麼優勢?
看完了 Beginning iOS 8 Programming with Swift接下看什麼書合適?
產品經理如何避免被程序員打?

TAG:編程語言 | Python | 編程 | 移動開發 |