Python用作後台開發語言在國內的前景?

本人大三,大二下開始學慣用Python做後台開發,但是周圍的人基本都在用java做後台開發,而且大公司像阿里這種都用java做後台。感覺python在國內的市場不大,在美國倒還不錯。


程序員的話,寫著寫著你會的就不只是 Python 了…


我也是在大二時接觸python,在一個創業型公司實習做後台開發,他們做後台大部分用的是python,加上我當時覺得python很厲害加上當時python比較火,於是我就在這個公司做後台實習。

做了一年多,接觸了tornado,flask,公司裡面就是用這兩種模板來開發後台的。

期間也是因為學校學習加上公司實習這兩邊時間的問題再加上在實習的時候還在做web前端,差不多一年,自己在python上面的造詣還沒有達到很高的地步。的確自己還需要努力。

自己當初選python的時候就已經知道了樓主所考慮的問題,但是當初沒有多想,只是想學python這門語言,當時主要覺得python很屌。

國內現在用python寫後台的真的除了一些創業公司外,沒有很多大公司用python寫後台,除了知乎和豆瓣在python寫後台還是不錯的例子。

到現在大三找實習了,通過這一個多月的找實習我發現,國內大公司python一般用在運維開發上面,python一般都是作為一個輔助語言,崗位要求很多是要求c,cpp,java,或python,python都是作為前面三種語言的輔助語言出現在招聘要求上面,所以我認識到了只會python還很不夠,起碼還要在java和cpp之中選一個去好好學學。

另外我發現大多數招後台開發的大部分是JAVA,只有企鵝的是c/cpp。

於是我在這找實習的期間又去補JAVA(我之前用JAVA做過android,但是時間不長,學的不是很好) 就在這一段時間很苦惱,一邊要好好再去加強python,又要去補java,在短期內哪能把java再補好,在java開發後台上又沒有經驗,在找實習的一段時間內真的很苦惱。

我再來說一下找實習的經歷,投了企鵝的後台開發,完全對我的簡歷上面的python後台開發不感興趣,面試都沒問我python的項目經歷,那個面試官還說python是腳本語言,那種很看不起腳本語言的語氣。面試就問了些別的c的知識,問了一會就開始亂聊一些了,明顯看出了那個面試官沒有問題問了。我的項目經歷空有了,沒有起一點作用。面完騰訊,掛了,傷心了很久。。。

後來,面了阿里的JAVA開發,因為阿里招聘的也沒有和python有關的崗位,我就投了我還熟悉的JAVA,但是阿里面到了HR了,但還是掛了。第一面面JAVA的基礎知識,我沒什麼太大問題。滴二面就問的項目上,加上面試官臨時想的一些題,有些沒答好吧。

總結,學python做後台開發在國內很少,大多數是JAVA,c系列,php,所以,要在學python的同時還要掌握另一門用的多的語言來作為主要語言。我現在的打算就是把java在後台開發上多學學,另外java現在在大數據方面也是用得很廣,例如hadoop,所以我想再好好學學JAVA,在大四找工作時能適應現在公司的崗位需求。python真的只能作為第二語言,不能作為第一語言。

大公司一般用戶多,追求速度性能,一般會選擇c,cpp例如百度,騰訊。

阿里就是JAVA了,在電商上面。

另外百度的web後台很喜歡php,我也是醉了,完全沒python的地位。

不過小米有python的web開發,由於小米的在線筆試系統有問題,沒有過小米的筆試,真是太遺憾了。和自己對口的職位又因為別的原因沒過筆試,真是慘。。


大公司選擇php、java這些成熟語言,初創企業選擇較新的語言和框架,都是非常理性,甚至可以說是身不由己的選擇。企業的技術選型不單取決於技術本身,更重要的是技術人員的市場供給,以及企業對於人才的不同期望。

對於大企業來說,選擇成熟的技術棧一方面是因為歷史包袱,另一方面由於人員流動性大,需要不斷的補充新的工程師,就要求社會能保證相應技術人員的供給充足。因此,不能採用較為小眾的語言開發核心業務 。採納新技術的步伐比較保守。

對於初創企業,對於人才不求多但求精,需要的是對技術有熱情,甚至可以獨當一面的人。選擇一種小眾的語言和框架,就是人才的一個天然的過濾器,可以濾掉大部分的「職業代碼工人『』。為什麼這麼說呢?假設你對技術沒有太多追求,只是想找一份朝九晚五的工作,理性的選擇是學習市場上需求最大的技術,因為這樣投入產出比最高,職位供給量大。反之,如果你選擇一種小眾的技術比如python或者ROR,那麼最有可能的原因是——興趣,換句話說,就是你真正在乎寫代碼這件事。這些人正是初創企業最需要的。

所以,公司選擇什麼語言,很多時候並不是哪個語言更好,或者追趕潮流。在我看來,這更像是一種自然選擇。初創企業不能養代碼工人,否則跑不快;大企業其實也希望自家的所有工程師都對技術有熱情,但是沒辦法負擔這樣的奢侈,它的技術團隊大部分必須是一支無差別隨時可替換的僱傭軍。

當然,我不是說使用小眾語言就水平高,每個技術社區都有大牛和小白之分。我想說的是,這種選擇本身就是一個企業選人的分類器。

回到問題,我覺得現階段python的工作機會可能還是在小公司甚至初創公司。但是這些公司都有可能是火箭船,誰知道他們是不是下一個BAT呢?


你的圈子有問題。現在已經是Python過熱,開發人員紛紛流向go,go即將迎來第一次大分流的時代了,只看到身邊人的話,很難說能跟整個大的國內產業一致。


大一暑假開始接觸Python,到現在工作接近一年,無論學習還是工作都是用的Python,Python在圈子裡的狀況要比你想的好得多。

大家都說懂了基礎的內容,語言只不過是工具而已,事實也確實如此。不會Java的我也能在2天搞出安卓應用的demo。但是工具的學習也是需要成本的,還沒那麼牛逼的時候把一門語言弄熟悉還是比較重要的問題了。

不說語言的選擇了,自己喜歡就好。說說Python 的工作機會吧,從大公司說起。

百度:沒聽說專門使用Python的部門,但是Python 在百度里的應用還是很廣泛的。

阿里:見過阿里旺旺Mac 版的Python 招聘,另外高德地圖用的是Python [阿里北京][高德地圖研發中心] 內推高德地圖服務端 Python 工程師

騰訊:騰訊遊戲運營平台大量用的Python,找實習的時候約過面試,後因為地點問題沒去https://www.v2ex.com/t/160638

去哪兒,美團:有見過招聘Python 的 Python招聘-美團網招聘Python招聘-去哪兒招聘

不那麼大的公司

豆瓣,知乎:大家都知道了

今日頭條:大部分代碼都是Python 的,有各種適合職位,有各種牛人。對今日頭條有興趣的私信我^_^(硬廣)

樂視:https://www.v2ex.com/t/199887

還有很多公司用的Python,去招聘網站過濾下Python 就能發現了,另外v2ex的招聘版里也有很多Python 的職位。https://www.v2ex.com/?tab=jobs

樓主不要把自己的圈子限定到你周圍的同學,多接觸一下社區,多看看招聘,從招聘的職位要求里可以知道業界需要什麼樣的人,從而確定自己的學習路線。與其在這裡糾結語言的選擇,不過先多學多練。


前景從來不是來自環境,而是來自競爭力。

Python 程序員薪酬的中位數,比 Java 程序員薪酬的中位數,高多了。這還是在 Android 開發大熱的前提下。

最後,談一下你說到的同學都如何如何的問題,我送你一句:從眾就是平庸的開始。


把core寫好,招人做外圍,語言背景不重要——都說是做外圍,如果不會業務開發語言,需要的那些skill照Python這樣,一兩周就能預備培訓完畢。

所以Web初創小團隊用Python很合適——機動能力強,就看Boss怎麼選了,不選很可能是因為最初隊伍里沒有一個「懂」Python的。


那些說Python寫的軟體沒有效率的,用彙編寫的照樣慢的掉渣。。。。。

問題不是編程語言,問題是你自己的水平 。。。。。


對於taobao,企鵝這種超大規模型企業,上任何腳本語言速度都是硬傷,所以它們的技術都基於其他編譯型語言。國外的企業也是如此,比如Twitter,原來是Ruby,也遷移到了JVM,Facebook 雖然是 php,但是自己開發了HHVM對php做語言上的優化。

可以這麼來說,python,或者php,ruby,perl,在一般大型公司的後台都適用,但是不適合於超大類型的後台服務,原因就是解釋型語言速度上的劣勢。

有人談到了node.js,js 這種大量使用回調的方式在大型項目裡面就是噩夢,代碼的複雜度上去不是一個量級,復用率十分低下。


要問前景,不樂觀,不如go。主因是國內python流行得晚,到現在大家都知道python的時候,go也出來了。但是要找到工作還是不成問題的。


看了回答,

一, 很多人都說python很慢,不如java,巴拉巴拉云云,簡直就是笑死人了好不好.

python在大規模的項目中,普遍表現比java要好的多.你不會用而已.

python因為他的複雜性,完成相同功能的不同的代碼性能就會相差很多.如果有豐富的經驗,那麼性能一點不比java差.而且凡是會python的都會C, 那個點性能上不去了,直接寫個c模塊插進去.

開發速度和運行速度都不是java能比的,甩java幾條街出去.

說一下子原來做過的一個遊戲項目,德州撲克,裡面要寫一個比較兩副牌的大小。老闆給拿來了一套java代碼,3000多行,跟我說,這個代碼能跑,不過有錯誤,你拿去參考一下。

我跑了下,大概每秒能比較300到400副牌的樣子。後來我用python重寫了一遍,代碼也就20多行,跑起來的速度大概達到了每秒能比較2萬副牌的樣子。

這就是java的速度快,呵呵

二, 很多人說python太簡單.馬上就能上手云云.這回真的是笑死人了.

python的語法書有多厚你知道嗎? 知道什麼叫做pythonic嗎?

寫垃圾代碼誰不會啊

三, 有人說python動態語言是一個災難. 呵呵; 自己不會不要埋怨別人好不好

我當初就見過一個幹了10來年的高級java技術經理. 在那邊的項目中寫一段代碼, 列印一個數字. 不足8位前補0.

結果那個傢伙寫了好幾百行的java代碼. 大致代碼如下:

if(a&>0 a &< 10)

{ }

else if(a &>= 10 a &< 100)

{ }

.....


調bug調的煩了,過來說兩句。。

你這問題就問的很奇怪。。

首先,做為一個程序員,死扣著一門語言,就是很不應該的事情。

基本上等到你大四的時候,應該有這樣的能力,除了c艹有時候令人無語之外。大多數語言,給你一星期時間,你就可以上手開發了,一個月的時候,你就可以熟練的寫代碼了。

畢竟主流語言的語法,內存分配都是差不多的。

然後,剩下的就是你的深度了。

你做python開發是吧?

看過源碼解析這本書嘛?看過源碼嘛?知道Python int類型,string類型,list底層機制嘛?他們的內存池有啥不同?雖然它的垃圾回收器就是個玩具,但你內存回收了解過嘛?

不說這個,你看過框架嘛,別光用,試著自己寫過嘛?

反正你要就是死寫代碼,那你寫了一年python真白瞎了。因為python的確太簡單了,分分鐘上手,不去主動學習,完全就是個體力活,寫了上萬行也沒用啊。。沒有任何技術含量。

你要這些真學好了,你怎麼找不到好工作?

不說別的,python源碼你看了一小部分了,說明你的c艹肯定也不差了。不然你也看不懂啊。

然後,除了這個之外,你就真的死抱著python不放了?

python是好用,問題是你要死抱著,只能說明你學習的興趣太小。

拘泥於一個語言,眼光很容易被限制,真的是很不好的事情。

學學java,看看人家的垃圾回收器也好。python好,可以也去學習下機器學習嘛。

總之,你這個問題問的很奇怪。。


想太多,

以你現在的水平還沒到想前景的時候。

等你到了想前景的時候,也不會問這個問題了。


大學生有大把的時間可以錘鍊靜態語言的使用,C,C++,Java現在也得算上Go等都是不錯的選擇,這幾個語言現在很堅挺,未來也依然會是基礎架構類項目的主力,相對於動態腳本語言,學習並能熟練使用靜態語言需要紮實的計算機專業基礎知識和一定的編程素養,是一個人能力的體現,對於學生來說,大公司更看重你的基礎和能力,所以以後筆試面試也都是以C,Java為主,這是基礎。

學會了那些基礎的語言,再學Python之類的腳本語言,進入門檻並不高,畢竟Python的設計目標就是像偽代碼一樣清晰易懂。況且假如你有C的基礎,甚至可以直接去看Python源碼剖析,到那個時候,你對Python的理解和其他只懂Python的人完全不是一個層次上的,就算以Python為開發主力語言,相信也會有不錯的發展。

就算是Python這種動態腳本語言,往深里挖也都是那些底層的東西,虛擬機,並發模型,內存管理,IO,類型系統,這都是實實在在的C代碼,不懂C的話,怎麼去理解並避免踩坑?

CPython先天受GIL的影響,無法有效利用多核,目前還沒有完美的解決方案。其開發效率也受到Go的衝擊,再加上Go偏偏又在並發上發力,在Web後台領域,未來是怎麼樣還真不好說。不過Python在數據分析領域還是有一席之地的,畢竟這麼多年的積累,這麼多好的框架。

Python作者Guido牛逼不? PHP開發組核心鳥哥牛逼不?人家大部分時間寫的也是C吧。

基礎不一樣,未來的發展空間是不一樣的,假如真的熱愛技術,想在技術領域裡有所建樹,建議你還是把基礎的C之類的語言錘鍊好吧,對於學生而言,一個用Python的公司會因為你C寫的很好,基礎很紮實,而錄用你,畢竟Python可以以後再培養。但可能不會因為你只會Python,C寫的一塌糊塗,而錄用你,因為Python的進入門檻真的不高。


國內的開發環境、教育環境,導致Python開發少,很多大公司不敢用在大項目上,因為一旦做大了,Python的人才少不好招。小公司小塊靈,可能一兩個Python就能hold住中小項目,很爽


對數據刷新無實時要求的網站(比如新聞、社交、論壇),用再慢的系統做後台都無所謂,反正緩存是非同步更新的

電商、通訊要是用Python那就完蛋了


人生苦短,就愛偷懶~


1.前景這個概念英文中是 prospect 。

2.詞典解釋 prospect 為 the possibility of future success。

3.你乎這麼多人出來捧,肯定 prospect 也就那個樣子了。。

4.不要有賣身情結。沒有任何一門語言值得你託付終身。

5.所有的事情都值得你做好。


Java/Python/PHP/C#/C++各大城市招聘狀況分析


其實,我覺得語言的學習應該是拓寬一條道路而已,不要以自己會什麼語言就把自己釘在了自己以後就要靠這個維生。

大多數程序員都有著或多或少的語言信仰,其實,這種信仰大多數決定於,你哪個語言學的最精通,或者是,哪個語言你用的最順手,於是,就造成了,我以後要只用Java或者只用Python ,對於這種先入為主的信仰,大部分還是有害的吧。

我覺得,最美麗的程序員應該是,愛學習的,而且我也相信,薪資待遇高的也一定是愛學習的,而不一定是所謂的會Java或者是Python的。。


推薦閱讀:

學了python但是沒有實踐機會,如何測試和鞏固提高自己的水平?
你覺得學習編程給你帶來了什麼樣的改變?
如何讓停留在語法層面的 C++,變成實際工程中的 C++?
有哪些有趣的反爬蟲手段?
python爬蟲實習?

TAG:Python | 後台開發 |