當前位置:
首頁 > 最新 > 這位同學,編程了解一下?

這位同學,編程了解一下?

頭圖是本期讀書會必讀書目自己總結的思維導圖,是一本很棒的書,作者是 古典,主要內容是講現代人如何學習和思考,感覺作者看了很多書,也思考了很多問題,但這不是我們今天討論的重點,我們今天要說的是編程,我這裡就結合自己的學習經歷來簡單說說自己關於編程的思考。

首先我們來說為什麼要學習編程?

人是生活在意義之網上的生物,不講清楚意義,很難有動力學下去。我覺得學一門知識之前,弄清楚為什麼要學是很關鍵的,首先可以增強動機,為學習蓄力,其次是能夠帶著問題進入,知道自己想學什麼,為什麼學。沒有思考的人生是不值得過的,沒有意義的知識也是不值得學的。

我覺得現代人必須要懂的三門學科是:

1、經濟學。

能更好的理解外部世界。

2、心理學。

能更好的了解自己。

3、計算機科學。

它首先是一種思維方式,其次是一種強大到令人害怕的工具。

為什麼把思維方式放在首要位置,什麼是計算機的思維方式呢?說說我理解的幾個點:

1、思考方式的不同

在計算機看來,世界上所有問題都是數學問題,只要是有解的數學問題,理論上

計算機都能解決,至於如何把問題都變為數學問題就是我們需要思考的,也因此不是所有問題計算機都能解決的,比如:如何過好這一生。

2、數量級的差距

《從零到無窮大》中曾經有個例子,是說古代兩個酋長比賽,看誰說的數字大,一個酋長說:「3」,第二酋長想了半天,說:「你贏了」。你可能覺得可笑,但是從計算機思維來看人類,就是故事中這種感覺,人類可覺得1億是很大的數字了,但計算機那邊只需要幾毫秒。而且計算機的計算能力還在不斷的提升。這項能力可以讓計算機把事務拆分成最小的細節,計算、統計龐大的數量的細節,來還原出原本的事務。

3、循環和遞歸

簡單來說就是重複做一件事情的能力,這項能力讓計算機能不厭其煩的不斷重複一個最微小的事情,不斷的迭代出需要達到的目的,這裡我想到的是堅持是做事的基石。

4、網路效應

計算機可以通過網路並行計算、實時共享數據解決問題,可以說他們的合作可以成倍的提升能力,而人類的群體協作效率遠低於此,這也是需要我們學習的。

5、全局思維

計算機因為有了處理大數的能力,可以自頂向下的思考一個問題,人類往往限於自己的計算能力只能看到局部的最優解,而計算機可以計算出更多的可能,比如說:阿爾法狗,有點像古典所說的系統論。

6、模塊化思維

計算機做很多工作都可以製造輪子來提升效率,製作模塊來完成特定工作的,有點類似積木,通過不同的組件就可以組裝出做不同事情的工具。有點類似人類的方法論。

以上:可能還不全面,要更好的理解這些思維,通過編程是最好的途徑。

然後說說工具的問題,你可能覺得我會用現成的應用就行了,沒必要學編程啊。

首先應用都有功能的局限性,你在工作生活中碰到的問題很可能很個人化沒有合適的工具來解決,就算可以解決也解決的不是很完美,或者說找不到那麼好用的工具;

其次,很多工具,本身也提供編程的功能,你不學習編程就沒法使用這些強大的能力。比如EXCEL的VBA。

一個事情需要重複3遍,就可以通過編程來實現自動化,想想你生活和工作的事務,是否有可以通過編程工具來提升效率的。

說一個我生活中的例子:

有一次一個女性朋友,跟我抱怨說:「完蛋了,這個月可能要忙死。」,我問她怎麼了,她說:「變態老闆布置了一個變態任務,讓我從1500+的PDF文檔中找尋100個關鍵字,並記錄這些關鍵字出現的位置和前後文。我這一個一個詞的查找得查到猴年馬月啊!」,我一聽,感覺裝X的機會來了啊,哈哈,這不正好是編程最能解決的問題嗎?我不動聲色的說:「你別慌,我幫你看看有什麼有效率的辦法。」

當天晚上回家,翻出我的《別怕!其實VBA很簡單》重新溫習了一遍。開始著手編程:

首先是第一步:把PDF全部轉換成EXCEL文檔,好在這些PDF不是掃描版的,試用幾個工具後,輕鬆完成第一步。

第二步:把所有的EXCEL文檔按文件名匯總到一個文件中,形成數據源,這步是最難的,因為單元格字元的限制還有計算機內存溢出問題,大概前後花了2個小時才搞定。然後就簡單了。

第三步:直接按照指定的關鍵字列表搜尋數據源中所有數據,並且把前後指定字元數的文字和文件名存儲起來生成新的表格。

至此全部完成,加上調試優化性能的時間,大概總共4個小時。我把做好的EXCEL文檔發給朋友,讓她試著操作下,大概5分鐘後吧,「哇塞!看著這數據生成真好玩兒,你簡直就是天才!」,我趕緊謙虛,「沒有沒有,你這麼說我會驕傲的。」,「不會,你值得驕傲,你解放了我一個月的時間啊」,那一刻,我真的為人類感到驕傲,居然能發明這麼有趣的工具,把枯燥的無聊的事情交給計算機,把有趣好玩的邏輯問題留給自己,並且在效率上有了極大提升,1個月的枯燥勞動直接在4小時05分內解決了。

上面只是簡單的例子,現在計算機的能力簡直日新月異,以大數據為基礎的人工智慧能完成的事情越來越多,甚至能發現人類不曾關注和了解的問題,在此就不贅述了,具體可以參見《大數據時代》,還有吳軍的《智能時代》。

最後該說下主題了,如何學習編程,學習哪種語言呢?還有應該看什麼樣的書,如何來學呢?

先來說說應該如何學習和入門。

古典老師說要去知識的源頭學習,但我覺得這裡忽略了一個問題,就是學習的難度曲線,專業的論文讀的人少,是因為很少有人能讀懂。暢銷書還是有其暢銷的道理,用大家都能明白的話講清楚一個道理還是很有意義的。所以我建議從三手知識開始學起,這樣難度曲線會緩慢一點,畢竟大家都不希望從入門到放棄,有一定基礎之後再去研讀二手知識和一手知識,所以這裡介紹的書籍都是我看過比較有趣易懂的。當然也因為難的我自己也還看不白,扶額!~

然後說說語言。如果你工作中需要用到EXCEL,我強烈建議你從VBA開始入門編程,它的優點是:語法簡單,操作對象固定,並且OFFICE就自帶詳細的中文函數、方法和參數說明。缺點是:IDE不太智能,用途比較單一。

入門的書建議看《別怕,VBA其實很簡單》,主要是要多用,編程是一門實踐性很強的學科,理論再強,沒有實戰也不行,工作中如果有重複3遍以上的操作,就可以考慮使用VBA,有可能剛開始還沒有普通方法快,但一旦做出可以反覆使用的工具,那種成就感是無與倫比的。

對於工作中暫時用不到,也不太了解編程的同學,我推薦從Python開始學習,入門的書推薦《父與子的編程之旅》,這是一本以父親教授兒子學習編程的書,書里用小孩兒也能理解的方式來表達Python的各種知識,非常適合初學者了解編程思想和這門語言。然後進一步了解可以看《Python編程:從入門到實踐》,這本書的講解非常詳細,課後還有練習題,理論與實踐結合的很好,最後還有3個實際的項目,1是做一個小遊戲;2是做一個數據可視化項目,這個項目可以作為大數據分析和數據挖掘的基礎,還有爬蟲相關的方向也可以考慮;3是做一個網頁,這個方向也很明確,想做一個個人主頁,知識主題站點什麼的都可以用這個來做。

了解了以上信息,就可以自己決定以後的學習路線了,想做遊戲,可以學Unity3D,想做大數據方面的工作——前面那個例子里的數據統計工作,Python也能做的更好更專業,而且更簡單,可以看看《利用Python做數據分析》這本書。想做爬蟲獲取網上的數據和知識,也有相應的Python類爬蟲書籍。想做網站就可以學Django。

最後推薦幾個入門學習網站,網易雲課堂的微專業課程,慕課網的實戰課程,都是收費的,但是感覺還是比較物有所值的,雲課堂的課程比較系統,但是收費比較貴,慕課網比較便宜,但是結構比較零散,要自己組織。如果你英文好的也可以直接上MOOC看國外大學的各種計算機課程。

至於之後的github和stackoverflow等,我就不過多介紹,如果你能學完上面的知識,相信找到這些更精粹的知識源頭也不在話下。

以上:聽完我的安利,你有想要學習編程嗎?如果答案是肯定的話,那就準備好鍵盤和椅子,準備進入新世界吧!^_^

最後大家有什麼關於編程的意義、以及入門和學習的心得體會歡迎留言交流。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

Chapter 4 TensorFlow基礎知識
願你是一個念舊的人,卻可以笑著

TAG:全球大搜羅 |