誰說Python找工作難?人生苦短,Python工程師你們還好嗎?
前幾天看到某網站看到有人提了這麼個問題,Python這麼火,為啥找工作這麼難呢?
近幾年人工智慧的發展確實推動了Python的熱度,Python出現在了中小學課本,產品經理、運營等非程式設計師職業都認識到了Python這門語言的重要性,甚至有些非網際網路行業的員工都跟風的學起了Python,你一定會問,Python憑什麼這麼火?人工智慧出現前Python有這麼火嗎?
我們先不拿Python與Java、C這些老大哥做比較,因為差距確實是存在的,但從這兩年的各大榜單的程式語言排名資料來看,它確實穩居前幾名,而且趨勢越來越猛,直逼程式語言的頭號老大,令人意想不到的是曾經風靡一時的Perl、Ruby 似乎在一點點淡出我們的視線。
但不可否認,很多在程式設計界摸爬滾打數十年的技術大牛依然保持本心,無論是Perl、Ruby、go、PHP、Java、C還是現在熱門的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搜尋指數從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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 人生苦短,我用 PythonPython
- 人生苦短,要學Python!Python
- 人生苦短,我用PythonPython
- 人生苦短,我選Python,C++,還是Java?PythonC++Java
- 人生苦短,我學Python——Python的資料型別中Python資料型別
- 人生苦短:Python裡的17個超讚操作Python
- 人生苦短我用Python,本文助你快速入門Python
- 程式碼優化指南:人生苦短,我用Python優化Python
- 年底找工作,太難了!你覺得難嗎?
- Python好學嗎難不難?0基礎能學會嗎?Python
- 地產大佬潘石屹:人生苦短,我要學PythonPython
- 學習Python爬蟲難嗎?入門好學嗎?Python爬蟲
- C++和Python學哪個好?Python學習難嗎?C++Python
- 人生苦短,請用 Chrome!Chrome
- 你知道python教程哪個好嗎?Python
- 【人生苦短,我學 Python】基礎篇——初步認識(Day1)Python
- python很難嗎Python
- 九成消失!成都的遊戲美術外包商,你們還好嗎?遊戲
- Apple Watch釋出一年了 你們用得還好嗎APP
- 學習python容易找工作嗎?python基礎入門Python
- 剖析:Python與Java相比,選誰好?PythonJava
- Python就業前景好不好?學Python好找工作嗎?Python就業
- Python雖然很火,為啥找工作這麼難?Python
- 學好Python的10種方向,你選擇好了嗎?Python
- 到底是Java好還是Python好?JavaPython
- 難道你還敢忽視網路安全嗎?
- 看了此文,你還敢說你懂了Javascript運算子嗎JavaScript
- 學習Python發展前景如何?好找工作嗎?Python
- 對於你來說最令人難忘的遊戲NPC是誰?遊戲
- 聽說你會 Python ?Python
- 0基礎學Python難嗎?精通Python需要多久?Python
- 阿里要成為一家內容公司?微信公眾號你們還好嗎阿里
- Python可以從事開發工作嗎?Python學習難度高嗎?Python
- 什麼是Python?好學嗎?Python
- 英語差能學好Python嗎?學Python有捷徑嗎?Python
- 找工作,去小公司好,還是大公司好?
- 如何初學Python,Python入門難嗎?-開課吧Python
- Python課程學習難不難?零基礎可以學習Python嗎?Python