真的能一週學會Python嗎?(文末附乾貨)

這裡為什麼用 Python 舉例呢?

因為在很多人看來,Python 比較“簡單”。

寫這篇文章主要是因為我在知乎上看到了一條有趣的動態:

真的能一週學會Python嗎?(文末附乾貨)

該條動態的作者認為一個高考600分以上的人,一天時間能學會 Python,一週時間就能推完 Andrew Ng 的 ML 課程。

恰好,我是一個高考600分以上的人,學過 Python,也看過 Andrew Ng 的 Machine Learning 課程。所以我想設身處地就這個話題聊一聊,到底能不能在短時間內學會 Python,這裡我們不限制時間為一天,就一週好了。

我並不反對上圖中作者的觀點,因為我確實只用了一天就初學和上手了 Python(大學四年級),還寫出了小應用。不過這個學習成果存在一個不可忽略的前提條件:在學習 Python 之前,我已經寫過兩年 C++ 和一年 Java 了。

和沒有一點基礎的人相比,我已經擁有了大量的編程實踐經驗和計算機理論知識,所以我能一天上手 Python,並不是非常奇怪和罕見的現象。

1

站在山頂能看見什麼?

真的能一週學會Python嗎?(文末附乾貨)

針對上面的問題,我的觀點是:即使是高考600分以上的人,如果沒有一定的編程基礎,也很難在一週內學會 Python。

當然,也不排除有人是天才,可以速成。但是至今我還沒有發現這樣的人。我女朋友、我周圍的同學,高考都是600分甚至650分以上,但我真的沒有見過誰能一天或一週就學會編程的。

那麼,更一般的情況是,高考600分以上的人尚且不能一週學會 Python,那些沒有600分以下的人是不是更難學會呢?從概率上講,是的,這裡不是歧視,只是闡述一種現象。

但為什麼時常有人說可以快速入門 “Python”,是他們在說假話嗎?

我想他們並沒有說假話,只是忽略了一個關鍵的問題——我在前文提到的“基礎”。有了基礎之後,一週入門 Python,速成 Django,一天學會爬蟲,這都是再正常不過的事情了。但這些對於完全沒有接觸過編程的同學來說,實在是難度太大。

之前聽過我的一個直系學長關於創業的講座,我印象最深刻的一幕,是臺下的同學請他分享一下自己在創業過程中遇到的困難,他答道——當你走過荊棘、越過重重困難走到山頂的時候,你看到的是一望無際的遠方和光明,之前的困難你都會忘得一乾二淨。

這句話我十分認同,我在第一次高考失利後復讀過一年,每當我讀到自己在復讀時期記錄的點滴生活,都會感嘆那些日子是多麼艱難,卻總是忘記那就是我曾經的生活,忘記復讀的那個人是我,忘記那些日子究竟有多苦。唯一記得的就是我復讀後的成績——比前一年多考了140多分。

人在經歷重重磨難並取得暫時的成功後,會很容易忘記自己受過的苦,記得的只是成功。

所以,當有人告訴你可以快速學會一項大部分人都很難學好的技能時,有三種可能,一是他在裝逼,二是他是天才,三是他努力過了卻忘記了自己的努力。大部分情況下,是第三種。

一週學不會 Python。

2

Python真的簡單嗎?

為什麼很多人都覺得 Python 簡單,到底是誰在說 Python 簡單,Python 是否真的簡單,如果真的簡單它到底簡單在哪裡?

我想,很多人說 Python 簡單指的是“語法”層面的簡單。的確如此,Python 和其他編程語言如 C++、Java、PHP、Go 相比,語法要簡單很多。

除了語法簡單,Python 天然適合和數據打交道,對數據的處理相對其他編程語言也是比較方便,內置的數據結構也比較少。

但是我們很容易忽略一個問題:編程語言不能獨立於業務而單獨存在,編程是為了解決問題的。各個編程語言都有自己擅長的方面,比如 Linux 內核系統調用、底層交互方面,C++ 可能更佔優勢;實際業務場景中有大量的計算任務和併發時,可能要達到某一參數指標,Go 會更加簡單。

只是語法簡單沒有用,在能滿足業務要求的前提下,誰最容易達成目標,誰才是最簡單的。

況且,Python也沒有傳說中那麼簡單,只會語法和能做出東西是有本質區別的,就像你會了 Python 語法,但你能做出數據分析嗎,能寫爬蟲嗎,能開發 Web 嗎?任何一門編程語言往深學,都會成為工具,能用工具完成具體的任務才是真的學好並用好了它。

我喜歡買書,也喜歡看書,下圖是我從書櫃上隨便拿的幾本關於Python的書,有的我看完了,有的正在看,有的還沒看,每本書都有幾百頁厚,任何一個方向往深了學,都不簡單。

真的能一週學會Python嗎?(文末附乾貨)

我們學習的時候,千萬不能在剛開始的時候就給自己一個心理暗示這很簡單,很容易學好,如果這樣,你將很難在學習中堅持下去

我時常看到一個有趣的現象,不少人都很在意“編程語言排行榜”,如果自己正在學習 Python 或 C++,而 Python 或 C++ 的排名又上升了,他就會格外開心,反之就開始罵爹喊娘。

其實大可不必這樣,學習編程的時候一定不要把自己限定在某一門編程語言中。在實際工作中,大多數情況下我們是根據項目來選擇合適的編程語言,而不是根據編程語言選擇合適的項目

比如你一直寫 C++,但是來了一個適合用 PHP 做的需求,即使你不會 PHP,你也得用 PHP 寫。不會寫也要一天入門,工作就是這樣的,別問我為什麼,工作一年半我已經寫過 JAVA、JavaScript、C++、PHP、Python、Lua、Go ... 而我當初入職面試的崗位是C++工程師...

多瞭解一點沒壞處。

3

一步一個腳印

很多初學編程的朋友對如何入門傷透了腦筋,而我的回答只能是:

真的能一週學會Python嗎?(文末附乾貨)

其實大家現在學習編程比我們當初的條件好多了,我們剛學編程那會兒,慕課還沒有流行起來,我那時學C語言看的還是譚浩強的書。哪裡有現在這麼方便,動不動就送你1024G資料的福利,掩面。

其實學編程和學外語一樣,都是階梯式進步的,而它的特點就是,在學習很長一段時間後都感受不到進步,但突然某一天就開竅了,想通了很多問題,感受到自己的經驗值得到了大幅度的提升,然後又會陷入一段平淡期。

真的能一週學會Python嗎?(文末附乾貨)

當你多經歷幾次這樣的循環,你就算是學會編程了。

學習編程,我們不應該以天為單位,而應該以年為單位。如果非得給一個最快能入門的時間,那就定為三個月吧,如果你真的在三個月裡用大量的時間投入去看一門課,啃一本書,三個月後你應該會到達一個新的 Level,就算是入門了。

無論如何,加油!如果你想了解我是如何學習編程的,

需要Python學習資料的,轉發私信小編“Python”

真的能一週學會Python嗎?(文末附乾貨)


相關推薦

推薦中...