一篇關于編程的文章页慷,啟發(fā)你的編程知識

本文的文字及圖片來源于網絡,僅供學習酒繁、交流使用,不具有任何商業(yè)用途,版權歸原作者所有,如有問題請及時聯(lián)系我們以作處理

本文章來自騰訊云 作者:Python知識大全

編程究竟難在哪?
“編程一點都不難揭绑,它只是和你十幾年來在學校受的教育格格不入而已他匪。”

第一次看到這句話依鸥,是在知乎問題“編程究竟難在哪里毕籽?”里一位名叫@ invalid s的高贊回答井辆。

與也是這兩年才開始半路學編程的我杯缺,所感所悟不謀而合。

所以今天站在前人的肩膀上袍榆,我想和大家好好聊聊“編程究竟難在哪?”這件事包雀。

一才写、難在我們從未接受過解決問題的訓練

從小到大奖蔓,我們受到的教育終極目的是有一個:考取理想的學校吆鹤。每一張張考卷都是一個個堆砌起來的知識點:三角函數(shù),解析幾何沾凄,數(shù)列搭独,函數(shù)……

這么多知識點,你需要做的是背下它們唉俗,或者說的更高級一點,理解它們股缸。

即便是強調思辨和分析的“文科類”敦姻,也可以靠死記硬背答題模板拿分歧杏,就連作文都要有統(tǒng)一的標準犬绒。


在這里插入圖片描述

我記得有一年考試凯力,題目是對冰心的一首小詩寫評論:

“墻角的花咐鹤,當你孤芳自賞的時候祈惶,世界就變小了〖橄伲”

出題老師原意是讓大家批判孤芳自賞突照,但有同學偏偏贊美孤芳自賞讹蘑,贊美這種潔身自好的精神座慰。而這種文章要一律判作不及格版仔。

年紀尚小的我們甚至都來不及懷疑“為什么這個學生說得沒有道理蛮粮?為什么所有的人都只能有一樣的價值觀呢?”因為千萬軍擠獨木橋莺奔,保險起見的我們只需要按照所理解下來的知識令哟,將一塊塊碎片,根據(jù)正確而萬能的模板拼好役听,才容易拿下滿分典予。

我們非常擅長理解和記憶乐严,并井井有條地套公式。

這一切捂敌,到了學編程這里占婉,統(tǒng)統(tǒng)不奏效。

我大一的時候剛開始接觸C語言奖慌,非常痛苦松靡。那會兒岛马,沒有任何計算機基礎蛛枚,編程語法大多靠背——C++語法蹦浦、操作系統(tǒng)各項定義盲镶、計算機網絡各種協(xié)議蝌诡、常量、作用域浦旱、多態(tài)…

身邊不少同學也這樣颁湖,“高考精神”還深深印烙在骨子里抢蚀,我們都認為學習一門編程語言最重要的就是掌握其語法皿曲,所以為了將語法爛熟于心屋休,最直接的方法就是記憶。

結果可想而知,即便拿了相應的學分虑绵,沒有人敢說自己會編程翅睛。

我們接受了十幾年的應試教育捕发,為了最大化公平檐涝,考試必須有一套清晰的標準。正是如此窃植,我們更看中重應試技巧而非知識本身,學習變成了追求標準答案延塑,求知變成了死記硬背。

絕大部分人,難以形成系統(tǒng)的學習方法論的意識好芭,以至于很多人一旦脫離試卷,在社會中面對實際問題的時候邻薯,完全沒有一套行之有效的方法論支撐其解決問題。

而編程的核心灵嫌,不是編程猖凛,不是語法,甚至不是算法或數(shù)據(jù)結構本身漠吻,恰恰是如何分解問題——發(fā)現(xiàn)規(guī)律建立解決問題模型绍傲,映射到合適的數(shù)據(jù)結構和算法上猎塞,最后才根據(jù)算法寫程序實現(xiàn)。

基于此,卡耐基梅隆大學計算機的一名華裔教授提出「編程思維」這個概念慢叨。


在這里插入圖片描述

他定義編程思維——能夠把現(xiàn)實生活中的復雜問題馏段,逐步拆分成可理解的小問題亡蓉。

1寸宵、Decomposition,即拆分简识。
根據(jù)已有的知識和經驗,把問題拆分。

比如我想喝咖啡立由,那我可以請求你:“可以幫我倒杯咖啡嗎弛房?”但這句話如果想讓電腦聽懂荷逞,我得先告訴它哪個是“杯子”恨搓、哪個是“咖啡”常拓、什么是“倒”宪郊,然后再告訴它怎么去倒懊亡,比如先直走5米,左轉75度,左臂下放50度……

現(xiàn)實生活,每一個復雜問題,都是基于解決一個個被拆分的小問題而被解決的父腕。


在這里插入圖片描述

比如說,超級計算機感覺很復雜最后無非是解決一個帶寬問題、一個存儲問題;

比如說,解決碳排無從下手,實際上是解決人口傅联、服務稍浆、能源、單位能源的碳排放這幾個問題。

2、Pattern Recognition
即模式識別。根據(jù)新問題和以前解決過的問題的相似性族跛,舉一反三琢磨出規(guī)律。

假如你需要畫100只貓,你會怎么辦?找100只貓來挨個臨摹?

對于計算機來說佩脊,你需要找出貓的“模式”出牧。

在這里插入圖片描述

你要知道貓是專屬的毛,眼睛邢笙,尾巴啸如,四條腿等,按照這個“模式”氮惯,你才可以“批量”畫貓——你不用每次畫一個新動物组底,只需要變換局部特征:黃白條的貓還是黑貓,長尾巴的貓還是短尾貓筐骇。

3、Abstraction江滨,即抽象
將問題里涉及的數(shù)據(jù)铛纬,抽象到數(shù)據(jù)結構(變量,數(shù)組唬滑,鏈表等)告唆,把數(shù)據(jù)處理過程可重復執(zhí)行部分抽象成函數(shù)模塊。

聽起來很復雜吧晶密?這是一個過濾的過程擒悬,整個過程你要聚焦重要的關鍵信息,忽視無用細節(jié)稻艰,這樣才能通過認知問題的核心本質懂牧,幫助我們形成解決問題的構想。

比如,當我們看到這一房子僧凤,我們看到的是:

在這里插入圖片描述

但在建筑師的眼中畜侦,它可能是這樣的:·


在這里插入圖片描述

建筑師通過自己的經驗,抽象出房子里面具體的構造躯保。

這一步旋膳,我們雖然幾乎難以在應試教育的學習方法中獲得,但我們能從不斷地編程訓練中去培養(yǎng)抽象思維途事。會編程的人验懊,往往能透過一個應用表象,看到背后實現(xiàn)的步驟尸变。

4义图、Algorithms,即算法振惰。通過循環(huán)執(zhí)行歌溉,根據(jù)前三步的分析成果,設計步驟骑晶,寫出算法痛垛,從而解決問題。

這一整個過程桶蛔,我們看到所謂的編程語言和語法匙头,在最后才發(fā)揮出作用。

所以當我們覺得學編程難仔雷,是因為我們還未從過去根深蒂固的學習習慣中抽離出來蹂析,凡是需要打破習慣的事,必是不易的碟婆。

就像很多剛剛出國讀書的孩子电抚,常常在面對外國老師問出「why」的問題時,馬上一種驚慌失措的表情竖共,滿腦子想著自己是不是又說錯答案了蝙叛,不知道老師這樣問僅僅是為了引導他們拓展思維。

我們真實的社會和生活也是不易的公给,它們沒有標準答案借帘,許多人終其一生沒有追尋問題的能力,無法理解世界的復雜淌铐。

而編程肺然,是你找出解決方法的能力,把現(xiàn)實問題轉換為代碼邏輯的能力腿准。只有認清這一點际起,你才能更好地攻克它。

二、難在我們從未學過創(chuàng)造

清華大學前校長陳吉寧曾提過一個觀點:

清華大學里有很多“A型學生”加叁,但未來社會最需要的是“X型學生”倦沧。

“A型學生”,指的是傳統(tǒng)觀念里的“好學生”它匕,他們的成績總是能得“A”展融。

“X型學生”與之不同,他們的成績并不一定拔尖豫柬,但愿意承擔創(chuàng)新風險告希,勇于嘗試新鮮事物。

兩者最重要的差別烧给,在于創(chuàng)造力燕偶。

可是我們連作文還不敢寫得太跳,生怕閱卷的是個老古董础嫡,大筆一揮指么,讓你再考一年。創(chuàng)造力榴鼎,更是我們在學校想都不敢想的事伯诬。

絕大部分學生的思維,早已在填鴨式的教學中巫财,變成了一個只會收納外部知識的容器盗似,根本無法用所學的東西創(chuàng)造出任何東西來。

所以平项,當我們開始學編程赫舒,面對“Hello world.”這個等著我們創(chuàng)造的世界,其實是非常茫然的闽瓢。


在這里插入圖片描述

因為編程沒有“題型”和“公式”能把你解決問題的過程簡化成填空接癌,編程提出的問題基本都是空而泛,需要你根據(jù)腦子里的邏輯推斷扣讼,利用所學編程語言的各項功能組織成代碼缺猛,來解決問題。

整個世界的運轉届谈,都是靠你的大腦想象出來的。這是編程的難弯汰。

但是艰山,只要你明知其中不易,仍有一腔驍勇咏闪,你可以嘗試在編程的世界中曙搬,保持“實驗者心態(tài)”,不斷探索自己的想法,質疑自己的假設纵装,從所犯錯誤中學習寶貴的經驗征讲,就一定能在編程的魔法世界中得到更多寶藏。


在這里插入圖片描述

如果你看過近期大火的《樂隊的夏天》橡娄,那么在參賽的三十一支樂隊中诗箍,你一定會被其中一支叫做“刺猬”的樂隊所打動。

刺猬樂隊的子健挽唉,他是臺上的狂躁主唱滤祖,臺下的學霸碼農。

即使每天都在和冰冷的數(shù)字打交道瓶籽,但作為程序員的他匠童,體內有被保護得非常好的創(chuàng)造力,使得他擁有滿腔的詩意與細膩的內心塑顺,更可以譜寫出令人折服汤求,引人共鳴,充滿無限色彩的音樂作品严拒。

三扬绪、難在我們從未需要如此深刻了解世界

在我工作以后,曾受過一名編程大佬指點糙俗,他說了一句讓我印象深刻的話:

“所有的程序勒奇,都是建立在自然之上,我們現(xiàn)在所學的編程巧骚,和自然是一體的赊颠。”

舉兩個小例子:

C語言冒泡排序法劈彪,它的原理是來自汽水中的氣泡竣蹦,水中常常有許多小小的氣泡,嘩啦嘩啦飄到上面來沧奴。而組成小氣泡的二氧化碳比水要輕痘括,所以小氣泡可以一點一點向上浮動。

在C語言中滔吠,這種排序算法的每一個元素都可以像小氣泡一樣纲菌,根據(jù)自身大小,一點一點向著數(shù)組的一側移動疮绷。

在這里插入圖片描述

人工神經網絡翰舌,則是依靠一種類似于大腦神經突觸聯(lián)接的結構,進行信息處理的數(shù)學模型冬骚。


在這里插入圖片描述

它們都受到了自然的啟發(fā)椅贱。

學編程懂算,往往學的也不僅僅是計算機本身,而是將各行各業(yè)庇麦,結構力學计技,生物細胞,光學聲學……等千百萬個行業(yè)山橄,抓住它們的重點垮媒,迅速理解并且教給CPU,讓它代替人類工作驾胆。

尤其是身處信息時代涣澡,計算機是信息處理的核心,商業(yè)丧诺、農業(yè)入桂、工業(yè)、教育等驳阎,都被計算機技術推動著進步抗愁,如果能知道計算機是怎么做到這一切的,即知道這里蘊含的編程思維是什么呵晚,才能給個人在所處行業(yè)的發(fā)展帶來幫助蜘腌。否則,就只能浮于表面地應用現(xiàn)成軟件而已饵隙。

這是編程的第三難撮珠。應試教育標準化的課堂,正好背離了這點金矛。

從前的課堂里芯急,為了實現(xiàn)教學效益化,將課程進行了劃分驶俊。

遺傳學被歸入了生物課娶耍,概率這個概念被歸入了數(shù)學教育,然而遺傳學實際上是對概率的應用饼酿。同理榕酒,物理明明需要應用代數(shù)和微積分,它卻與這兩門課程脫節(jié)故俐,成了獨立的學科想鹰。

仿佛每個知識只存在于真空中,于外界事物毫無關聯(lián)药版。

這些劃分限制了學生的理解辑舷,讓學生對世間萬物運行規(guī)律的理解產生了偏差。

于是刚陡,為了了解每個“獨立”的知識惩妇,我們接收各種各樣精細化加工的知識:推演好的理論、公式筐乳,講義歌殃、ppt、難點總結蝙云、高分模板氓皱,我們無需知道這些公式是怎么推導出來的,只要運用公式去解題就好了勃刨。

久而久之波材,我們認為學語文就是語文,數(shù)學就是數(shù)學身隐,甚至我們對世界的認知廷区,只是基于“知識共同體”,對于許多現(xiàn)象無須究其根本贾铝,自動達成共識隙轻。


在這里插入圖片描述

什么叫知識共同體?

史蒂文·斯洛曼和菲利普·費恩巴赫的《知識的錯覺》一書提出了“知識共同體”垢揩。

知識共同體由某一知識領域相互聯(lián)系的行為體組成的玖绿,人類社會本身就是一個龐大的知識共同體系統(tǒng)。

為了人與人之間的相互協(xié)作叁巨,人們逐漸根據(jù)不同人擅長的領域進行分工斑匪。時至今日,如果我們家的鎖壞了锋勺,我們會去找鎖匠蚀瘸;如果有人生病了,我們會去找醫(yī)生宙刘。不同的工種的人苍姜,掌握了不同的知識。于是悬包,人們被歸入一個個不同的群體衙猪,這就是所謂的“知識共同體”。

我們以為自己非常了解世間萬事萬物布近,其實是個錯覺垫释,事實上我們腦袋里存著的知識微不足道,全靠相互依存和形成的認知撑瞧。


在這里插入圖片描述

就好比中世紀的人們相信地球是平的棵譬,而現(xiàn)代的我們相信地球是圓的,并非由于我們大多數(shù)人能夠給出基于物理學的解釋预伺,而是現(xiàn)代科學讓我們相信了這個基本事實订咸。

即便日常生活中充滿了各種各樣的奇跡曼尊,也因為司空見慣的緣故,很多人甚至沒有意識到它們是奇跡:

我們坐擁空調暖氣脏嚷,搭乘高鐵飛機骆撇,手握平板手機, 搜索查詢問題父叙,享受生活之安全愜意神郊,當整個世界的知識就在指尖之時,我們仿佛真的認為自己博學多聞趾唱,其實我們只是活在在知識共同體里涌乳。

這也是為什么我們以為掌握了知識,其實沒有——

考完試以后甜癞,我們會忘記大部分所學的知識夕晓;

開會討論出很多點子,但一到執(zhí)行的時候悠咱,就故態(tài)復萌运授,還是不知道從哪里入手,典型的“一聽就會乔煞,一做就廢”吁朦。

回到學編程。

之所以感覺那么難渡贾,正是因為它不允許我們喪失獨立并深入探究知識細節(jié)的能力逗宜,不允許我們冠以籠統(tǒng)的態(tài)度求知,因為計算機聽不懂我們模棱兩可的語言空骚。
程序員需要探其根本纺讲,理解每一個概念的來由、定義和用途囤屹;需要多學科熬甚、深入而原始了解這個世界:

他要懂“生物”:不同的技術構成不同的生態(tài)系統(tǒng),不同的生態(tài)系統(tǒng)有不同的規(guī)則肋坚。

他要懂“化學”:各類系統(tǒng)和語言的關鍵性質乡括,提供能寫出優(yōu)秀程序的原料;

他要懂“歷史”:技術從哪里來智厌,要到哪里去诲泌;

他甚至還要懂“藝術”:寫程序對得起自己的眼睛,做產品對得起用戶铣鹏。
編程世界是真實世界的縮影敷扫。

四、尾聲

所以诚卸,你說編程難嗎葵第?編程一點都不難绘迁,用電腦聽得懂的語言,告訴它幫你做你想要做的事情卒密,只要認真學脊髓,誰都可以。

難就難在栅受,"學以致考"和"學以致用"是不一樣的;記憶和創(chuàng)造是不一樣的恭朗;學好學科和理解世界是不一樣的屏镊。

當然,并非要徹底否定應試教育痰腮。在中國教育資源極其不平均而芥、經濟文化撕裂的大生態(tài)下,以考試為目的的教育膀值,提供了一套非常清晰的評判標準棍丐,通過分數(shù)這個顯性的指標來篩選和劃分學生群體,選拔出社會精英沧踏,可能是當下最公平的取舍了歌逢。

只是時代在不斷的發(fā)展,無論是學校翘狱,家長還是孩子秘案,都應該反思一下現(xiàn)在的所接受的教育形式,如何發(fā)揮出每一個自己的個性潦匈,讓他們成長為更好的人——學編程的過程會給你提供答案阱高。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茬缩,隨后出現(xiàn)的幾起案子赤惊,更是在濱河造成了極大的恐慌,老刑警劉巖凰锡,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件未舟,死亡現(xiàn)場離奇詭異,居然都是意外死亡掂为,警方通過查閱死者的電腦和手機处面,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菩掏,“玉大人魂角,你說我怎么就攤上這事≈浅瘢” “怎么了野揪?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵访忿,是天一觀的道長。 經常有香客問我斯稳,道長海铆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任挣惰,我火速辦了婚禮卧斟,結果婚禮上,老公的妹妹穿的比我還像新娘憎茂。我一直安慰自己珍语,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布竖幔。 她就那樣靜靜地躺著板乙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拳氢。 梳的紋絲不亂的頭發(fā)上募逞,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音馋评,去河邊找鬼放接。 笑死,一個胖子當著我的面吹牛留特,可吹牛的內容都是我干的透乾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼磕秤,長吁一口氣:“原來是場噩夢啊……” “哼乳乌!你這毒婦竟也來了?” 一聲冷哼從身側響起市咆,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汉操,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒙兰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磷瘤,經...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年搜变,在試婚紗的時候發(fā)現(xiàn)自己被綠了采缚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫂冻。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡珠叔,死狀恐怖氓扛,靈堂內的尸體忽然破棺而出稍刀,到底是詐尸還是另有隱情罩抗,我是刑警寧澤浸策,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布奏司,位于F島的核電站瓷叫,受9級特大地震影響,放射性物質發(fā)生泄漏楞陷。R本人自食惡果不足惜怔鳖,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望固蛾。 院中可真熱鬧结执,春花似錦、人聲如沸艾凯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽览芳。三九已至,卻和暖如春鸿竖,著一層夾襖步出監(jiān)牢的瞬間沧竟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工缚忧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留悟泵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓闪水,卻偏偏與公主長得像糕非,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子球榆,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內容