不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇學(xué)python全棧有用嗎,就多了一項(xiàng)技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專業(yè)的優(yōu)勢(shì)到底體現(xiàn)在哪里:“全棧”這個(gè)概念坑害了多少開(kāi)發(fā)者,一個(gè)從事Python多年的全棧工程師給你分析為什么學(xué)Python!??。
1.“全?!边@個(gè)概念坑害了多少開(kāi)發(fā)者
“全?!边@個(gè)概念坑害了多少開(kāi)發(fā)者**技多不壓身**,這么一個(gè)傳統(tǒng)觀念充斥著每一個(gè)行業(yè)希望進(jìn)取進(jìn)步的人們,當(dāng)然包括了互聯(lián)網(wǎng)行業(yè)。作為互聯(lián)網(wǎng)行業(yè)“技多”的頭號(hào)標(biāo)簽就是“全棧”,作為公司之中的技術(shù)負(fù)責(zé)人,“深度”和“廣度”哪個(gè)更為重要,一直是一個(gè)爭(zhēng)論不休的話題。最近我和朋友也對(duì)此有些爭(zhēng)論,這里反跟大家分享一下。我們先看看:全棧的定義是什么? 度娘給出的答案是:全棧工程師,也叫全端工程師,英文Full Stack developer。是指掌握多種技能,并能利用多種技能獨(dú)立完成產(chǎn)品的人。相信很多人不認(rèn)同此觀念,但是不得不說(shuō),絕大多數(shù)的開(kāi)發(fā)者都以此為目標(biāo)。近段時(shí)間在工作中,頻繁的與同事聊到這個(gè)話題,也讓我深思了一下。何為“全?!惫こ處煟恳詫?shí)現(xiàn)一個(gè)電商APP作為例子:使用Java之中的maven項(xiàng)目管理,以Spring + SpringMVC + MyBatics作為服務(wù)端框架,以RestFULL形式提供API接口。數(shù)據(jù)存儲(chǔ)使用MySQL,使用Redis作為緩存加速。剛開(kāi)始可能由于不夠熟悉運(yùn)維,設(shè)備云服務(wù)都在阿里云和七牛上購(gòu)買現(xiàn)成的。將整個(gè)需要制作的需求全部理清楚,API接口開(kāi)發(fā)完畢之后??梢蚤_(kāi)始書(shū)寫前端和客戶端邏輯了。對(duì)于每個(gè)后端的開(kāi)發(fā)者都是一個(gè)較為頭痛的問(wèn)題,好在與朋友咨詢過(guò),前端頁(yè)面使用Google的AngularJS作為MVVM框架,使用Bootstrap作為UI,使用Gulp作為整個(gè)項(xiàng)目的打包工具。調(diào)用之前自己封裝的接口,終于能夠出現(xiàn)一些商品展示頁(yè)面了。這個(gè)時(shí)候開(kāi)始書(shū)寫客戶端了,Android客戶端開(kāi)發(fā)之中在github上淘了一些華麗的第三方控件,使用OkHTTP、Retrofit作為網(wǎng)絡(luò)框架,EventBus作為整個(gè)APP中的事件流傳遞系統(tǒng)。配置使用Gradle并使用第三方的360加固保護(hù)自己的APP。iOS開(kāi)發(fā)使用作為網(wǎng)絡(luò)框架,JSONKit來(lái)解析協(xié)議之中傳輸過(guò)來(lái)的JSON。等~左青龍,右白虎,老牛在腰間,龍頭在胸口。人擋殺人,佛擋殺佛的不叫全棧工程師,而是一個(gè)公司之中的救世主。他憑借一己之力,減少了公司內(nèi)部的溝通成本,人員招聘成本,幫助畫(huà)餅的CEO,把餅變成了現(xiàn)實(shí)。對(duì)于這樣,我只能說(shuō)“請(qǐng)收下我的膝蓋~!”。然而,這樣的人存在嗎?根據(jù)格拉德威爾的10000小時(shí)定律,希望熟練的掌握前端、后端、客戶端方向的知識(shí)內(nèi)容,每天都花時(shí)間來(lái)專研也得花10年左右的時(shí)間。大多數(shù)自稱為“全?!钡墓こ處煟纪A舻竭@個(gè)方向我“略懂”的境界。至于具體如何實(shí)現(xiàn),如何讓架構(gòu)更時(shí)候后面階段的模塊化開(kāi)發(fā),那就真不知道了。 什么公司會(huì)招聘“全?!??國(guó)內(nèi)的公司基本很少在自己的招聘JD上書(shū)寫自己需要招聘全棧工程師,很多CTO的職位所描述的也不是對(duì)一位“全?!钡囊?。Facebook的一位員工就曾在OSCON上說(shuō)他們只招聘全棧工程師,這樣很多了解很多方便技術(shù)的人才都?xì)g欣鼓舞。然而,**“全棧”指的不是掌握不同方向的技術(shù)**,在Facebook工作的朋友之前就和我說(shuō)過(guò),自己曾是一位做推薦系統(tǒng)方向的專家,然而由于Facebook*內(nèi)部的人員變動(dòng),自己卻要扛起整個(gè)*系統(tǒng)架構(gòu)的事情。隨著公司業(yè)務(wù)的發(fā)展,每個(gè)缺少人力的方向都會(huì)得到補(bǔ)充,這里的“全?!彼傅母嗍牵跇I(yè)務(wù)需要的時(shí)候迎難直上的自我學(xué)習(xí)能力與責(zé)任擔(dān)當(dāng)能力。并不是讓一個(gè)人親手的完成公司內(nèi)部的業(yè)務(wù),這從時(shí)間成本、精力成本都不現(xiàn)實(shí)。這樣的“全棧”工程師才是Facebook所真正需要的。對(duì)于創(chuàng)業(yè)公司來(lái)說(shuō),“全?!惫こ處煙o(wú)意是一個(gè)香餑餑,因?yàn)檫@么一個(gè)人對(duì)于創(chuàng)業(yè)公司來(lái)說(shuō),能夠解決很多的招聘成本。鄙人的朋友小B,在*的時(shí)候?qū)W習(xí)過(guò)Java,畢業(yè)之后現(xiàn)在一個(gè)初創(chuàng)公司使用Python寫過(guò)1年的網(wǎng)頁(yè)后端,后面發(fā)現(xiàn)公司的業(yè)務(wù)發(fā)展需要,自己又轉(zhuǎn)頭回去從事Java的開(kāi)發(fā)。近兩年由于iOS的大力發(fā)展,工資待遇也不錯(cuò),自己又轉(zhuǎn)行去做了iOS APP的研發(fā)。自稱自己為“全棧”,從起頻換更換技術(shù)方向來(lái)說(shuō),我并不認(rèn)為他在之前的那幾個(gè)方向都擅長(zhǎng),反而模糊了自己的定位,弄不清楚自己想要什么。對(duì)一個(gè)企業(yè)來(lái)說(shuō),我招聘Python工程師、iOS工程師、Java工程師,他都能算是中級(jí)(也許還算不上)。這個(gè)時(shí)候,除了跳槽去一個(gè)不懂技術(shù)CEO的初創(chuàng)企業(yè)之中扛大旗,其他也別無(wú)他法。錨定自己的目標(biāo),培養(yǎng)自己的“一技之長(zhǎng)”如同我們公司的CEO一樣,公司初創(chuàng)的時(shí)候,自己得做PR、市場(chǎng)、金融產(chǎn)品采購(gòu)、企業(yè)注冊(cè)、工資發(fā)放、融資、產(chǎn)品需求確定、以及掃地阿姨。但是,HR+市場(chǎng)+財(cái)務(wù)+PM+掃地阿姨 ≠ CEO,只要CEO的事情他們沒(méi)有做好,其他方向他做的再好那也是百搭。一個(gè)牛逼的人,能夠在需要他的時(shí)候承擔(dān)一些之前沒(méi)有從事過(guò)的工作。反過(guò)來(lái),一個(gè)每個(gè)方向都做得得心應(yīng)手的技術(shù)小能手,卻未必是一位牛逼的人。希望奮斗在一線的年輕工程師不要迷信“全棧”的歪理邪說(shuō),把自己的精力都投入到學(xué)習(xí)井噴式的“新技術(shù)”之中。明確自己的目標(biāo)是什么,系統(tǒng)架構(gòu)師? or 客戶端安全專家? or 推薦系統(tǒng)大神? 每個(gè)方向都感興趣就等于沒(méi)有興趣,“略懂”足以能夠幫助你在后面的工作中減小你與別的工程師溝通的成本,“深究”一門技術(shù)才能然自己的眼界變得更寬。畢竟技術(shù)在進(jìn)步,時(shí)間不等人,錨定目標(biāo),才能不斷的接近目標(biāo)。*,給大家?guī)讉€(gè)建議:**嘗試與別人溝通自己的想法**——不做困在籠子里的孤鳥(niǎo)**學(xué)會(huì)閱讀英文文檔**——拒絕閱讀英文意味著永遠(yuǎn)只能接受別人的二手資料**要做思維遷移**——IT技術(shù)本質(zhì)是相同的,打好技術(shù)才能以不變應(yīng)萬(wàn)變**對(duì)自己負(fù)責(zé)**——所有你發(fā)現(xiàn)的問(wèn)題,都是你的問(wèn)題
2.一個(gè)從事Python多年的全棧工程師給你分析為什么學(xué)Python!
Python的火熱度持續(xù)不斷。。。。。。作為入門語(yǔ)言還是不錯(cuò)的!你覺(jué)得Python真的好嗎?或許你在漫天的宣傳中看到了這些:開(kāi)發(fā)環(huán)境簡(jiǎn)單,能打字就能寫代碼;接近英語(yǔ)的簡(jiǎn)單語(yǔ)法;眾多的第三方庫(kù);解釋執(zhí)行,不需要編譯;跨平臺(tái),方便移植;但是作為一個(gè)負(fù)責(zé)任的假程序猿,要跟你說(shuō)的是:就算再簡(jiǎn)單的語(yǔ)言,也得學(xué)才會(huì)會(huì),不要在好不好,真的好不好這些事情上下功夫,要在怎么學(xué)如何學(xué)上下功夫。想要學(xué)習(xí)的可以加群:725479218*部分:各個(gè)領(lǐng)域應(yīng)用的語(yǔ)言。大家看這個(gè)內(nèi)容,其實(shí)你很明顯發(fā)現(xiàn),其實(shí)各個(gè)語(yǔ)言都有他的用處。我們可以說(shuō)Python是應(yīng)用最廣的。但是暫時(shí)還是不能說(shuō)它是全能的,因?yàn)樗灿兴亩贪?,但是?duì)于一般的小公司和小項(xiàng)目而言,是很難得的全能?,F(xiàn)在有個(gè)很奇怪的現(xiàn)象,就是大家把Python神話了。Python作為一門語(yǔ)言,確實(shí)有他的優(yōu)勢(shì)。但是建議大家在學(xué)好這個(gè)語(yǔ)言的同時(shí),要學(xué)第二門語(yǔ)言,這樣未來(lái)對(duì)大家有好的發(fā)展。第二環(huán)節(jié):Python工程師在企業(yè)里面的定位是什么?四個(gè)重要的定位:驗(yàn)證算法、快速開(kāi)發(fā)、測(cè)試運(yùn)維、數(shù)據(jù)分析。1、驗(yàn)證算法:就是對(duì)我們公司一些常見(jiàn)設(shè)計(jì)算法或者公式的驗(yàn)證,公式代碼化。2、快速開(kāi)發(fā):這個(gè)大家應(yīng)該都比較熟悉,快速開(kāi)發(fā),就是用成熟框架,更少的代碼來(lái)開(kāi)發(fā)網(wǎng)站,Python在網(wǎng)站前后臺(tái)有大量的成熟的框架,如django,flask,bottle,tornado,flask和django的使用較多,國(guó)內(nèi)用Python開(kāi)發(fā)的網(wǎng)站有:知乎、豆瓣、扇貝、騰訊、阿里巴巴;3、測(cè)試運(yùn)維:做運(yùn)維同學(xué)應(yīng)該清楚,在Linux運(yùn)維工作中日常操作涵蓋了監(jiān)控,部署,網(wǎng)絡(luò)配置,日志分析,安全檢測(cè) 等等許許多多的方面,無(wú)所不包。python可以寫很多的腳本,把“操作”這個(gè)行為做到極致。與此同時(shí),python在服務(wù)器管理工具上非常豐富,配置管理(saltstack) 批量執(zhí)行( fabric, saltstack) 監(jiān)控(Zenoss, nagios 插件) 虛擬化管理( python-libvirt) 進(jìn)程管理 () 云計(jì)算(openstack) ...... 還有大部分系統(tǒng)C庫(kù)都有python綁定。4、數(shù)據(jù)分析:Python有三大神器:numpy,scipy,,其中numpy很多底層使用C語(yǔ)言實(shí)現(xiàn)的,所以速度很快,用它參加各種數(shù)學(xué)建模大賽,完全可以替代r語(yǔ)言和MATLAB。spark,Hadoop都開(kāi)了Python的接口,所以使用Python做大數(shù)據(jù)的mapreduce也非常簡(jiǎn)單,加上py對(duì)數(shù)據(jù)庫(kù)支持都很好,或者類似的orm也非常強(qiáng)大好用。在結(jié)束這個(gè)部分之前,大家有沒(méi)有一個(gè)疑問(wèn):為什么爬蟲(chóng)沒(méi)有中重點(diǎn)講?其實(shí)這里給大家重點(diǎn)說(shuō)一下,如果你要學(xué)好Python,僅僅停留在爬蟲(chóng)上,這個(gè)是很不靠譜的。Python 寫爬蟲(chóng)的教程網(wǎng)上一抓一大把,據(jù)大家所知很多初學(xué) Python 的人都是使用它編寫爬蟲(chóng)程序。小到抓取一個(gè)小黃圖網(wǎng)站,大到一個(gè)互聯(lián)網(wǎng)公司的商業(yè)應(yīng)用。通過(guò) Python 入門爬蟲(chóng)比較簡(jiǎn)單易學(xué),不需要在一開(kāi)始掌握太多太基礎(chǔ)太底層的知識(shí)就可以很快上手,而且很快可以做出成果,非常適合小白一開(kāi)始想做出點(diǎn)看得見(jiàn)的東西的成就感。你沒(méi)有爬蟲(chóng)的技術(shù)是萬(wàn)萬(wàn)不行的!除了入門,爬蟲(chóng)也被廣泛應(yīng)用到一些需要數(shù)據(jù)的公司、平臺(tái)和組織,通過(guò)抓取互聯(lián)網(wǎng)上的公開(kāi)數(shù)據(jù),來(lái)實(shí)現(xiàn)一些商業(yè)價(jià)值是非常常見(jiàn)的做法。當(dāng)然這些選手的爬蟲(chóng)就要厲害的多了,需要處理包括路由、存儲(chǔ)、分布式計(jì)算等很多問(wèn)題,與小白的抓黃圖小程序,復(fù)雜度差了很多倍。Python崗位有哪些呢?主要的崗位有這些:Python全棧開(kāi)發(fā)工程師(10k-20K)Python運(yùn)維開(kāi)發(fā)工程師(15k-20K)Python高級(jí)開(kāi)發(fā)工程師(15k-30K)Python大數(shù)據(jù)工程師(15K-30K)Python機(jī)器學(xué)習(xí)工程師(15k-30K)Python架構(gòu)師(20k-40k)目前應(yīng)用最多的:全棧開(kāi)發(fā)、數(shù)據(jù)分析、運(yùn)維開(kāi)發(fā),大家知道他們分別的要求是什么嗎?想要知道的可以加群:725479218
就拿大數(shù)據(jù)說(shuō)話,優(yōu)勢(shì)一目了然,從事IT行業(yè),打開(kāi)IT行業(yè)的新大門,找到適合自己的培訓(xùn)機(jī)構(gòu),進(jìn)行專業(yè)和系統(tǒng)的學(xué)習(xí)。