誰說Python找工作難?人生苦短,Python工程師你們還好嗎?

博為峰網校發表於2019-06-27

前幾天看到某網站看到有人提了這麼個問題,Python這麼火,為啥找工作這麼難呢?

誰說Python找工作難?人生苦短,Python工程師你們還好嗎?

近幾年人工智慧的發展確實推動了Python的熱度,Python出現在了中小學課本,產品經理、運營等非程式設計師職業都認識到了Python這門語言的重要性,甚至有些非網際網路行業的員工都跟風的學起了Python,你一定會問,Python憑什麼這麼火?人工智慧出現前Python有這麼火嗎?

誰說Python找工作難?人生苦短,Python工程師你們還好嗎?

我們先不拿Python與Java、C這些老大哥做比較,因為差距確實是存在的,但從這兩年的各大榜單的程式語言排名資料來看,它確實穩居前幾名,而且趨勢越來越猛,直逼程式語言的頭號老大,令人意想不到的是曾經風靡一時的Perl、Ruby 似乎在一點點淡出我們的視線。

但不可否認,很多在程式設計界摸爬滾打數十年的技術大牛依然保持本心,無論是Perl、Ruby、go、PHP、Java、C還是現在熱門的Python,都有其忠實的追隨者,無論時代如何改變,初心不變。

誰說Python找工作難?人生苦短,Python工程師你們還好嗎?

時代在變化,市場經濟有周期輪迴,程式語言又何嘗不是呢?

有人說Python現在是大牛市,現在科技前沿都在用Python,它是最先進的生產力;

有人說演算法是獨立於語言的,我周圍搞科研的,沒有見誰用Java做演算法的,做工業級產品需要大量碼農搬磚,Java囉嗦但是可靠性高,搞演算法研究的程式碼絕對比做軟體產品的規模小得多,沒必要用Java,Python足矣;

有人說python目前火是因為廣泛用於人工智慧,而人工智慧是需要有數學基礎的,這可能是與其他語言的差別之處;

有人說搞人工智慧,需要有學歷,資歷,能力當基礎。你光會語言,有啥用?你沒研究生學歷,根本沒有這種工作機會,沒有機會哪來實際經驗;

有人說這些語言我都不看好,還是go語言未來有發展;

有人說還是學C吧,不用擔心過時;

有人說Python中國要的少,想繼續追高估計有點難了,大多數企業都招Java和C++……

反正每個人都各執己見,你根本無法去判斷誰對誰錯,因為每個人都有自己偏愛的語言。

那Python之前火嗎?

其實在技術圈Python很早就廣為人知了,特別適用於做 MVP(最小可行性)產品,運用在創業初期的產品開發,同時在測試、運維、科研等領域也被廣為使用。我們熟悉的社交應用Instagram、流量全球第4的社交新聞站點Reddit、雲端計算管理平臺OpenStack以及企業ERP管理平臺Odoo等,都是早期用 Python 開發出來的明星產品。

近幾年又因人工智慧的熱潮,Python愛好者借勢將Python推向了一個新的高度,就連教育部門都開始重視Python,促使很多人跟風效仿。於是他們產生了這樣的錯覺:用三四個月的時間學會Python就可以輕鬆找工作。然而他們並不知道,學會和實踐之間差了時間和努力!

誰說Python找工作難?人生苦短,Python工程師你們還好嗎?

百度搜尋指數里,Python搜尋指數從2011年開始一直是平滑增長,從2017年開始超過Java,而Java基本沒啥變化,甚至有下降的趨勢。

很多Java、C語言愛好者看到這樣的資料會慌會氣憤,其實他們不知道,大部分Python開發者掌握的第一門語言都不是Python,可能他們之前就掌握了Java、C++等其他語言和計算機相關的理論知識,而對於他們來說,學Python自然是輕車熟路,只是工作碰巧遇到了Python。

Python 雖然看起來簡單,但是用好不容易,特別是大規模的團隊對 Python 的要求就更高了,你去市場上去看,一般招Python都是要求有一定經驗的。

總結下Python找工作,你可能會遇到的問題(以下來源於學生的真實反饋):

一、一學就會,一寫就懵。

學過 Python 的同學,肯定都學習過列表、元組,如果是透過Atstudy網校教程的話,肯定都學習過列表和元組的訪問、修改和刪除操作。

不知道有多少人還記得第一次看這部分內容的感覺,反正我的感覺是「很簡單嘛,和想象中差不多」,那幾個操作已經很熟悉了。

有一次我在處理一個字串拼接,我是用的元組,然後我 append 半天,總是報錯,我記得很清楚呀,我學習的時候明明是有這個方法的呀,為什麼就是不行呢?

等我回去仔細一看,嘿,append 竟然是列表的方法,這知識點簡單麼?忒簡單了,可以信手拈來麼?不行。

舉例這個已經是最簡單的部分了,類似的我還在多個元素拼接上吭哧過半天,才發現元組必須和元組型別進行拼接,不然也是報錯。

如果需要兩個元組拼接後不是合成一個元組,而是形成一個新的複合型元組,那就更要糾結一會了。

看完我上面說的是不是覺得很簡單,請動手寫一寫,或者回憶下自己當初是怎麼解決這些問題的。

古人云「看書如流水,編碼如便秘」,甚是。 建議解決方案: 多動手實操練習,真的能熟能生巧噢。

二、原樣照抄我會,稍加變通就懵逼。

我之前很多的指令碼都是 python2.6 寫的,因為 py2 已經不更新了,所以我正嘗試逐步改為 py3。

有一次我拿一個簡單的指令碼試試效果,指令碼功能很簡單,就是把一個PE檔案內容使用文字方式讀取出來,然後暴力搜尋其中是否存在某指定字串,並得出搜尋結果。

py2讀取檔案內容的寫法是:

def test_readfile2(filepath):

"""讀取檔案內容

Args:

filepath:目標檔案全路徑

Returns:

context:讀取到的檔案內容

"""

with open(filepath, 'r') as obj:

context = obj.read()

return context

同樣的寫法,在 py3 中執行會報錯:

UnicodeDecodeError:'gbk'codec can't decode byte 0x90 in position 2: illegal multibyte sequence

根據之前弱弱的經驗,一看也知道是編碼的問題,但是我反覆的 encode 或者 decode,都是無濟於事。

明明知道是很簡單的問題,但就是搞不定,那種無奈,實在是很無奈。

一次偶然的機會,終於知道了解法,方法果然很簡單:

def test_readfile3(filepath):

"""讀取檔案內容

Args:

filepath:目標檔案全路徑

Returns:

context:讀取到的檔案內容

"""

with open(filepath, 'r', errors='ignore') as obj:

context = obj.read()

return context

僅僅是加了一個引數 errors,一切都搞定了,是不是有種豁然開朗的感覺。

建議解決方案: 只有自己親自踩過的坑才是真的坑,一定要多動手實操練習,瞭解每一種變通的可能。

三、基本用法會,稍微進階就懵逼。

用 Python 寫 GUI 的同學,應該有部分是使用的 wxPython 這個庫,反正我是用的這個。

如果只是寫個主介面,大家都會定義一個主視窗類,比如 MainClass 之類的,其他控制元件也可以按教程一步步操作實現。

有次我需要在主介面之外加一個設定視窗,同時設定項更新後,主介面要立刻響應。

這個響應函式我是寫到主視窗的類裡面的,搞了半天,我就是不知道怎麼在子視窗類中呼叫父視窗類裡面的方法,網上也搜了很久,就是沒找到有類似的問題以及解決方案。

明明知道是很簡單的問題,但就是搞不定,那種無奈,實在是很無奈。

後來仔細看了網上的一些實現的例子,發現可以在父視窗類中把 self 作為引數傳遞給子視窗,子視窗再透過這個self 來進行父視窗類中方法的呼叫,完美解決。

同樣的回過頭看看解決方法,真的是很簡單,而且也確實給人豁然開朗的感覺,但這又明明就是一個稍微進階了一下的基本用法而已。

不動手時不知道自己有多弱,上手後才追悔莫及。

建議解決方案:多動手實操練習,每一個遇到的問題,都是自我進階的階梯。

總結:

有人問獨孤求敗,君子劍和青鋒劍哪個好?

獨孤求敗說,這些不重要,只要技術到了,拈花飛葉皆可傷人。

楊過和郭靖武功天下卓絕,然而武林中絕大多數人表示:

“前輩,哪個門派能招一大撥楊過、郭靖和獨孤求敗?”

程式語言的競爭也是如此,就Java和Python來說,Java語言的特性決定了一門新手和老手寫出來的程式碼差距不會太大(這裡肯定有人不會同意),而 Python 的程式碼雖然簡單,但不同的人寫出來的程式碼千差萬別。

至於Python這麼火,為什麼你還找不到工作?我想說Python這門語言確實是有前途的,這兩年大家都在給Python瘋狂打Call,讓Python成為所謂的第一語言,大家都在學,一個大膽的猜測就是未來 Python 將會像英語一樣成為大家必備的一個技能。

但是如果你現在啥都不會,只會Python,你去找工作的確有點困難,當然並不見得學Java找工作就容易了,最主要的還是對整個計算機體系的掌握,語言作為工具只是很小的一部分。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2648994/,如需轉載,請註明出處,否則將追究法律責任。

相關文章