我學編程為什麼難?是思維方式不對還是學習方式不對?

從碼農控開始逐漸到自己打算做個APP,在這過程中覺得編程特別難學,可是看別人學的如魚得水輕鬆自如,是我的學習方法有問題?還是女生本來學這些東西就難?難道這些東西就是男性思維?
===================================================================
自學編程已經4年有餘,自己做過很多東西了,我不是三分鐘熱度,我是4年里一直覺得很難。
=====================================================================
又被攻擊了,說我黑了全部女性,我只想說,你們省省吧,可能絕大多數非科班出身的人水平還不如我呢,我代表你們問問怎麼了?


女生覺得編程難:"編程對於女生好難。"
男生覺得編程難:」編程對於我好難。「
這種想法差異就是唯一原因。

PS: 別人學的如魚得水是因為他/她晚上對著bug失聲痛哭的時候你不知道...

評論區高能,請不要錯過~

----------------------------------------update------------------------------------------------------------------
一樓同學先是說編程男女差異是生殖器決定的,被問及他自己編程怎麼樣,按照他的理論如果編程不怎麼樣是不是說明他的生殖器也不怎麼樣之後,惱羞成怒破口大罵問候個人親屬,進而攻擊說別人說女生也能編程目的是為了泡女程序員。
鬧了一晚上後又把評論選擇性的刪了,改成私信來罵髒話了。最後也沒有說自己到底寫沒寫過啥代碼。犧牲自己用現實事例向大家展示了 「鼓吹男性天生優越」和個人素質之間的相關性。

男女生理差異這個不能否認。但是我不覺得編程這種只要花時間找對方法,都可以學得會的事情上,性別會有多大影響。更多是心理上的畏難心理和自我暗示罷了。畢竟人總是傾向於找外界原因,而不去面對自己懶的事實。

---------------------------------------繼續扯兩句---------------------------------
沒想到當初抖機靈的答案後來大家吵得那麼厲害,有不少人贊同,可能也有很多人反對。評論區里支持和反對的同學也討論了很多。既然能夠引發大家的思考和交流,那這個抖機靈的答案也算是居然有了正面的作用。

占著答主的地利補充一下我的觀點:
計算機專業學生,IT行業從業者,甚至包括CS學術圈子裡,男女比例不均是事實。雖然有不少人在努力改變這個事實,但是目前來講,這個確實是事實。甚至頂尖的有名程序員里,男女數量也是不一樣的,這也是事實。男女生理上的差異也不能否認。一味的強求後者假定所有人先天條件都嚴格一致,不客觀,也不現實。舉很多優秀的女性程序員的例子,也始終是個例,並沒有統計意義。儘管我剛開始參加編程比賽就被當時還是高二學生,後來IOI國家隊,清華ACM一隊,現在在斯坦福的某女生狠狠地凌虐過。當時人家打字鍵位還不是很規範,很多二指禪,仍然一人完爆我們三個人,讓我留下了深深的心理陰影 : (

到底我的觀點是女權主義,還是偽女權,還是按照被人攻擊的那樣,是靠這個來泡妞,和本題無關,就不反駁了。(當然等到我又available的時候我會抓住一切機會努力推銷自己的么么噠~)

正經的說,我對於女生和編程的觀點是:

1)相關性不代表因果性。

女生從事cs行業的少,並不見得是因為先天差異導致的不擅長,也可能只是後天的個人傾向,以及從業時由於結婚生子導致的門檻等等其他原因。而且據我了解,隨著IT行業的火熱,計算機學院的男女比例是在逐步的趨於平衡的。在我讀本科時,可能是10:1,現在,相信大都只是2:1了。

2)很多方面造成職業選擇和職業發展的男女差異的,更多的是心理學問題,而不是生理學問題。

拿大家都知道的星座和性格的相關性舉例。首先,相信沒有很多人真的認為出生時間真的會對性格有那麼大的影響,但是在現實生活中確實會觀察到星座和性格的相關性。科學研究表明(Google很容易搜到),在星座學說流行的地方,性格和星座確實有相關性,在沒有星座定義的地方,兩者則互相獨立。 這說明了星座更多的是一個心理學的因素。人們看到星座解釋後,會潛意識裡把自己的性格和星座的解釋進行印證,進而根據星座來塑造自己的性格。

我認為編程上的男女差異也是心理學問題。我見過很多不輸於優秀男性程序員的女生,也見過很多什麼都不會作業面試都要靠男生搞定的女生。兩者最大的區別就是前者認為男生做得到的,女生也一樣可以,並不因為自己的性別而降低對自己的要求。而後者總會拿性別當做擋箭牌,認為女生先天不足,所以學不好也是客觀因素導致的,而不從自己身上找原因。

在前者身上我更多時候看到的是獨立,自主,閃閃發光的思想,以及可以預料到的成功的職業生涯,和有趣的人生體驗。而認為自己不行都是因為性別原因導致的女生身上,我更多看到的是對無論大事小事對男生的依賴,挑戰面前的自甘墮落,以及回歸封建社會女性角色之後的相夫教子的乏味生活,甚至是進而認為男生為她做什麼都是天經地義,因為女性本身就是弱勢的奇怪心理。

所以再碰到類似問題時,我個人希望:
女生都可以想一想:「這個事情是只有女生才會遇到困難,還是所有人都會,我是應該歸咎於性別原因,還是自身原因。」
男生再發表性別決定能力的言論前,也可以想一想:「真的是生理差異,還是因為這個社會的觀念甚至是歧視導致的男女差異?我是應該去加深這種差異認知,即使這種歧視將來可能發生在我的女兒身上,還是應該為我的後代努力營造一個人人機會均等,並不因為天生的性別而被默認做不好某件事情的世界?」


我第一次教我太太學CPP的時候,她還沒學過什麼編程知識,聽了個大概,自己翻了一下CPPPL,然後就寫出了一個規規矩矩的矩陣乘法。後來用筆在紙上寫代碼,輸入到計算機上一次編譯運行通過無誤,也是我親眼見過的。那會兒她一個在校讀書的小姑娘,幫人做一個在線運營的網站,對方只是友情送她一年的《VISION》雜誌,也是我親眼看到的。

打個預防針,懷疑真實性的可以退散了,我們老夫老妻的陳年舊事,我還需要拿這個吹牛?

以前下廚房(http://xiachufang.com)作品經常被贊上首頁的一位女用戶,是下廚房的主力程序員之一,在下廚房的時候,我開玩笑說這是我們團隊首席人妻。只不過她從來不在下廚房的網站上說她的身份。

再說一個比較遠的例子,圖靈獎得主姚期智先生的夫人,是高德納的弟子。姚太太會不會寫程序可以自己考慮一下……

我覺得女性做這個行業少,有性別的原因,體力、家庭、社會等等,因為傳統的影響,很多科技領域女性都比較弱勢。但我個人並不認為女性就不適合做科技工作。我母親是退休醫生,我大姐是資深的藥劑師,她們雖然不是諸位耳熟能詳的那種天才名人,但是也都是在各自工作中做的很出色的普通人,從小耳濡目染,我不認為女性在心智才能上有生理性的劣勢。至於學寫程序學不會,應該多從個人能力,而不是身份上找原因。

================
我從一開始就知道會有人這樣說:

我一個學數理統計的難道還要上知乎學習什麼叫普遍規律?

孩子,即使數據證明了性別與能力有關或無關,又能怎麼樣?
即使你被這寫故事感動,或者沒有,又能怎麼樣?
這一切都不能讓你得到你想學到的東西,除了你自己的努力,什麼都代替不了。
如果你當這是心靈雞湯,那它就是雞湯。

換個說法,即使數據證明了女性不適合寫程序又怎麼樣?你就不能自己去試一試?你就確定你不是那個小概率事件?你就真的要屈服於自己命運?
很多人都是做到了常人所不能的,才得到了自己想要的人生。如果你只是找一個理由解釋自己為什麼做不到,那確實簡單的多。
「全天下的侏儒在父親眼裡都是私生子。」

然後呢?
=================================問題日誌這種東西還真是有點兒意思。
知乎 - 與世界分享你的知識、經驗和見解


普通編程初學者的思路:
想學編程 -&> 買參考書/上課 -&> 裝個簡單好用的IDE -&> 學習整數、字元串、表達式、input/print -&> 學習分支/循環、子程序、函數調用、遞歸 -&> 學習指針、鏈表、二叉樹、冒泡排序、快速排序…… -&> 學習面向對象、GUI編程…… -&> 嘗試寫各種各樣的小項目 -&> 在程序員的世界裡存活下來
耗時:3年

文藝編程初學者的思路:

想學編程 -&> 讀經典書籍/聽公開課 -&> 配置個Vim或者Emacs + 編譯工具鏈 -&> 深入掌握一門函數式語言 -&> 融會貫通學會各種編程語言 -&> 自己實現一個LISP方言或者ML方言 -&> 用自己的編程語言秒殺代碼問題 -&> 在程序員的世界裡存活下來
耗時:10年

101011編程初學者的思路:
想學編程 -&> 啊,學什麼好呢 -&> 聽說PHP是世界上最好的語言 -&> 感覺好黑啊,不學 -&> 還是做APP比較流行 -&> 啊,安卓還是iPhone呢 -&> 用安卓的是屌絲,不學 -&> 那就iPhone吧 -&> 買macbook,買買買 -&> 買開發者帳號,買買買 -&> 裝上xcode了 -&> 卧槽OC為什麼會有那麼一大堆一大堆的英文單詞 -&> 算了放棄OC -&> 聽說新出了個Swift -&> 那就學Swift吧 -&> 咦,教程為什麼這麼少 -&> 算了,換安卓 -&> 啊,還是Java用的人多 -&> 泥煤,虛擬機是什麼鬼,J2EE和J2SE又是什麼鬼 -&> 泥煤,運行時環境配置不來 -&> 算了那就學web咯 -&> 後端那又看到PHP了,不學 -&> HTML是美工做的,不學 -&> CSS是配置文件,不學 -&> Javascript是web程序員寫的,就選它了 -&> 咦,為什麼Javascript和Java完全不像啊 -&> 卧槽 -&> 卧槽卧槽卧槽 -&> …………
耗時:3天

題主明白了吧

========

認真版的答案:(更新:大誤!見下方更新)

學習方式不對,真的想學編程就得從最基本的東西開始,有了足夠的積累才能自由發揮。不要被現在「做個App一夜成名」的氛圍干擾。尤其是不要一上來就接觸那些厚重的部分(比如圖形界面)。題主好像學吉他?可以想想按和弦、爬格子……都是怎麼練的。
我初學的時候十多歲,沒現在這麼好條件。writeln一個自己的名字就可以高興一下了,第一次聽遞歸就像聽到黑魔法一樣,後來接觸到Delphi簡直興奮壞了。就是由簡到難一步步學下來的,能做看起來比較酷炫的東西是把Delphi用熟之後的事情了。
現有的條件下,聽一門在線課程然後跟著寫代碼,是一個很好的方式。另外,把問題精確化很重要。(只要你能把問題說明白,會有很多人(尤其是男生)願意幫你的,嗯(p.s.作為一個程序媛,對括弧不對齊之類的問題要有天生的敏感性)

150107補充:

於是題主已經學了不少/寫了不少了嘛——我的第一反應是:那不是挺好的嘛。
那麼覺得「難」主要是難在哪裡呢?
之前的答案里黑了一遍的,是環境/框架/庫的複雜性(手機應用、web應用開發通常需要面臨)。本人多年專註勸初學者繞道。但是,有一定經驗以後(以上文中「存活」的標準),靠查資料和定位問題的能力,可以啃下來。比如善用StackOverflow大法。大法好。
另一種難是知識的深度,舉個栗子,第一次聽說Monad的時候我怎麼也想不通這是什麼東西,於是這個問題在我腦中停留了一年多,直到自己做語言的時候才逐漸理解。這就只能以自己有限的腦力和無限的腦洞慢慢想了……
節奏正常的情況下,學了幾年要解決的難處不會少的。真要說女生和男生不同的就是,男生在這種情況下就是以「什麼不怕什麼燙,燙燙燙燙燙」的態度應對問題,然後繼續geek下去罷了。
吶…實在受不了就做點簡單而且受歡迎的玩意(比如html5小遊戲?)找找信心吧!


以大多數人的努力,還輪不到拼天賦。而拼性別………


編譯器「你有個錯誤」
女生「不可能!」
編譯器「你聽我解釋」
女生「我不聽我不聽我不聽!」
編譯器「……」
女生「你是不是不愛我了?你肯定和別的程序員好上了!」


不用多,一天 10 個小時用來看書、抄代碼、改代碼、寫代碼、想代碼

堅持 3 年

足夠干翻一大圈人了

男生女生根本就不重要

別人只是比你早學 3 年而已


又該放這張漫畫了:

http://xkcd.com/385/


有些人的玩具變成了編譯器,於是乎你就看到有很多男生成為了編程大神。
當然也有女生從小喜歡小車和積木,然後長大成為編程大神的,總體而言比例要小一點吧。
這跟性別沒什麼關係,男生要是沒興趣照樣做不好。


謝邀。
男生和女生可能做事方式風格不同,但是並不是所有事情都是由這種差別決定事情的,我覺得某種程度類似於」你還沒有努力到要拼天賦「這句話一樣。
我覺得重要的是興趣+努力。
我大一沒有編程基礎卻對編程產生興趣,這樣的興趣讓我在這條路上遇到一些問題的時候還是不會想放棄。
我周圍一個同學大一的時候好像因為表現比較優異被某技術團隊錄取了,但是後來可能覺得對計算機沒什麼興趣不想從事這行,就換其他路了。
其實多花點時間應該就會收穫很多吧,多google多看別人的技術分享還是會找到一些適合自己的方法。在這件事情上不用太區別男生女生。
——————————————————
題外話,我知道好些編程技術不錯的女生,有時候看到她們的經歷記錄都覺得她們真的很努力。


我覺得你提問的時候應該描述清楚自己覺得「哪裡難學」,說明具體場景、具體某一類問題,自己做到過什麼,不明白什麼、等等一切可能解決你問題的線索,這樣回答者才有可能確實的針對你的問題和你給出的線索來作答。

如果只是說「編程好難」「英語好難」「數學好難」「食堂的阿姨做飯不好吃」「電腦好卡」之類的抱怨的話我只能認為你是在尋求安慰而不是解答。因為你沒有告訴回答者任何有助於回答你問題的線索和條件。

另外你應該感謝自己是個女生。如果是個男生問這個鬼問題我會直接把《提問的藝術》鏈接甩給你自己去看。


我來嘗試下認真回答下這題。撇開各種編程技術的原因,我認為歸根揭底都是社會原因。

「On ne na?t pas femme : on le devient.」
我們並非天生為女人,而是被逐漸塑造而成的。 ——西蒙娜·德·波伏娃

所以這個原因很早就被決定了,而且不在於編程本身。

在我們讀中學(甚至小學)的時候,女生就大眾貼上「理科思維比男生差」,「應該讀文科」等各種標籤,潛移默化的,數學成績趨向於比男生低,最關鍵的,丟掉了對數學的興趣。

帶著這樣的性別差異標籤去讀了一個萬惡的計算機專業,男女比例大於10:1,除了社會性別歧視的壓力,還更多來自程序員職業比例太過懸殊,更加塑造了其他的對自身的不自信和懷疑。最後導致的問題就是:「為什麼編程對女生很難」而不是」為什麼編程好難「。

如果我們說智商男女都一樣的情況下,剩下的導致社會分工的區別都是環境所賦予的。

除了這種性別差異的標籤,另外一個重要的標籤,私認為是導致各種男女問題的根本原因——生活的標籤! 特別在中國,人們都在消費女人的美貌,而消費男人的財富/生產力。 判斷一個女人是否優秀(男生內部曰」質量「,廣東人曰」質素「)的標準,就是女人是否好看(媽蛋,身材也很重要)。而男人的標準則是是否有錢有地位。

女性像要獲得好的生活,嫁一個好的丈夫在中國幾乎是必要條件,而且是公認貼標籤的貼出來的公共知識_百度百科。而嫁得好,很大程度又取決於外在的東西(好看,會打扮,優雅而不是女漢子,會撒嬌等)。

編程不可避免的是一門重複性、長期付出而且傷害身體的一門「體力活」。長期熬夜敲代碼將很不可避免地導致皮膚髮黑,黑眼圈,脫髮等各種重要問題,更別提頸椎病,視力等等的健康問題了。而這又是一門極為消耗時間的學習/工作,你會發現很多編程大神都是足不出戶一天14 5個小時對著電腦編程。這導致打扮、挑衣服、化妝品、約會等等各種時間都會被擠壓。

別說女生不肯足夠努力,你看初中高中,最努力的,拿班第一的,不大多都是女生嗎?那時候的她們,還沒那麼多來自生活的標籤。

但一到大學,甚至畢業,就再也避免不了鋪天蓋地而來的生活標籤,最後女生會傾向去不付出足夠的時間與努力到編程中,最後自然而然出來優秀的女程序員的幾率則非常的低!

嗚呼哀哉!我們一出生就慢慢背負著各種社會標籤,實在很累。而能克服各種標籤做成事情,這本事就是一件非常低概率的事。

各位女生請加油,世界有一半是你們的,請不要妄自菲薄。

PS:世界第一名程序員 愛達·勒芙蕾絲


謝 @姚培森 邀
反正不是因為"女生本來學這些東西就難"以及"這些東西就是男性思維". 請不要什麼都拿"女生"說事.
如果題主是文科生的話可以看看這個一個文科生學編程的書單
遇到問題解決不了的話學會Google, 搜不到的話去社區問問


cpu最講道理,從來不會照顧你的情緒。


覺得難的只是給自己的懶惰找借口吧


不算回答問題,有些大學第一門編程語言教ML或者lisp一類的,總而言之就是大家上高中的時候不太會接觸的東西,於是男生女生瞬間被拉到同一起跑線。

就這些課的結果顯示,女生和男生區別不大。


是你學起來難,不是女生學起來難。
不過,誰學起來不難?不都一點一點學么。
這麼說是想表達,千萬不要有我是女生所以我比男生差,所以學不好編程的想法!一旦有了,你真的學不好了!

——————
首先說啊,我沒覺得編程很簡單,在我調出來bug的一瞬間除外。(笑
為覺得學編程難找的理由居然是我是女生,太糟糕的理由了。男生這麼說我會覺得是性別歧視,女生這麼說我會覺得是懶得去找自己學習方法等其他方面的漏洞而找的借口。

不要給自己找借口。
另外,憑我的智商,我覺得幹什麼都難(哭

——————
以上都是在耍嘴皮子。
題主想問的是,我是一名女生,四年來學編程一直學得很艱難。學編程需要怎樣的思維方式?怎樣培養?
需要乾貨的時間到了。
http://www.zhihu.com/question/19862349
感覺知乎里這種東西很多啊。


http://techcrunch.com/2014/05/24/dont-believe-anyone-who-tells-you-learning-to-code-is-easy/如果英語不錯的讀讀這個,這幾天要是有時間,回頭我翻譯一下


是你學編程難,不是女生學編程難,不要把自己辦不到的事推卸到自己的性別上


先來給題主送碗雞湯吧……
你知道有一個妹紙叫Ada Lovelace么? 她被稱作程序員的開山鼻祖, 引用wiki的原文,「she is credited as being the first computer programmer.」. 祖師爺都是妹紙,沒有什麼比這個更振奮了吧。:-)

接下來說正事……
編程本來就不是一件容易的事。
你要掌握編程語言,數據結構,演算法,學習計算機架構,了解編譯器的特性,熟悉IDE。。。簡直罄竹難書,說起來都是淚……

這麼難的事,沒有點耐心,沒有點毅力,沒有點恆心,是不可能做好滴~

那為什麼很少聽男生說編程挺難的呢? 因為男生更喜歡挑戰挫折,他們最不喜歡的三個字是,「你不行」 。女生在困難面前,多喜歡求助於別人,當然啦,女漢子除外,哈哈。所以,編程界的妹紙多為女漢子,真真的外柔內剛,遇bug臨陣不亂。

在一個行業待的久了,連個性都會改變。偶從典型的多動症變成可以在凳子上靜坐半天。馬大哈變成處女座,哎。

對於個性單純善良喜歡動腦的妹紙,程序員是一個不錯的職業選擇。這裡沒有辦公室政治里的勾心鬥角,大家都憑實力吃飯。所謂的程序員是青春飯的論點,已經out了。

以前有位前輩講過一句話,把系統看成一個人,硬體就是人的身體,軟體才是靈魂。

所以,妹紙們,不要聽別人說難就覺得難,自己試試才知道;試過了還是覺得難,那再堅持一下,看可不可以越過它。爬過的高山越多,越容易看到美景。

答畢。


姑娘,誰給你洗腦說編程需要男性思維,扯淡!一定是學習方式不對,但首先別被錯誤的觀念洗腦了,編程不分男女,代碼沒有陰陽。

看看上個世紀三十年代就能如此開風氣之先的女性們。她們在那樣的時代,做了那麼多了不起的事情:辦報、辦工廠、辦學校、經營酒店、研究科學.......

要以這樣的前輩為楷模啊!

如今,一個小小的編程,也值得拿出來說難,別上當啊,姑娘!

新民報:鄧季惺:一代女性的職業努力(鄧季惺:吳敬璉的母親)

沈驪英、沈宗翰與沈君山( 沈驪英,沈君山的母親,沈宗翰的第一任妻子,費孝通和楊絳的老師)
中國迄今只有兩個品系的小麥是以人名來命名,其中之一就是以沈驪英之名命名的小麥品種,這就是廣為人知並以她的英名命名的驪英1號、3號、4號5號和6號小麥。這些品種,直到沈驪英去世後10多年仍在上述地區廣泛種植,為糧食增產做出重大貢獻,深受群眾的愛戴。

女科學家陸士嘉:我願意成為探索的一個小卒(陸士嘉:高曉松的外婆)

董竹君:錦江飯店創始人我的一個世紀 (豆瓣)


推薦閱讀:

Meta Programming 主要解決什麼了問題?
有哪些老程序員都知道對新手很有用的經驗?
為什麼 Go 語言把類型放在後面?
新手關於如何看編程經典書的一些疑惑?
網上常能見到的一段 JS 隨機數生成演算法如下,為什麼用 9301, 49297, 233280 這三個數字做基數?

TAG:編程 | 學習方法 | 思維方式 |