在現(xiàn)狀和想要達(dá)到的目標(biāo)之間,總是有一條大河。大部分人花費(fèi)了巨大的精力在水流里掙扎,還沒(méi)能接近目標(biāo),就已經(jīng)被湍急的水流沖走了。然而,總有少部分人能乘著小船,直達(dá)對(duì)岸。
10年前,從普通學(xué)校畢業(yè)的我進(jìn)入了一家小公司,傳統(tǒng)運(yùn)維的工作重復(fù)性太高,特別枯燥。
于是我下定決心決定擺脫這種困境,想通過(guò)編程來(lái)改變現(xiàn)狀。于是開(kāi)始學(xué)習(xí) Python,當(dāng)時(shí)也非??啾疲刻煸缟?點(diǎn)起來(lái)看視頻看書(shū)做練習(xí)。
3個(gè)月之后,我跳槽了,薪酬是之前的兩倍。
后來(lái),我得到了進(jìn)入搜狐這樣公司的機(jī)會(huì),一路成長(zhǎng)為社交產(chǎn)品的服務(wù)端負(fù)責(zé)人,也進(jìn)入了一線(xiàn)互聯(lián)網(wǎng)公司的技術(shù)圈子,有了更高的視野。
學(xué)一門(mén)新的技術(shù),從而獲得新的機(jī)遇。與其說(shuō)是一種能力,不如說(shuō)是一種方法。
在這里,把我的實(shí)踐過(guò)的經(jīng)驗(yàn)和心得分享給大家。
轉(zhuǎn)行路上的3個(gè)坑
坑1:無(wú)盡的刷初級(jí)教程
爬蟲(chóng)是入門(mén)簡(jiǎn)單,深入難。
現(xiàn)在在知乎、微信公號(hào)上的大部分爬蟲(chóng)教程都是初級(jí)教程,大家寫(xiě)著玩的,真正公司里用的東西不會(huì)發(fā)出來(lái)。
無(wú)盡的刷這種初級(jí)教程,剛開(kāi)始會(huì)有成就感,后來(lái)就是無(wú)限的重復(fù),會(huì)讓你的水平一直停留于入門(mén)級(jí),無(wú)法提高。
坑2:代碼一失效就哭天喊地
你在書(shū)里、視頻里、教程里看到的爬蟲(chóng)代碼是很容易失效的。
要爬取的網(wǎng)站每周都會(huì)更新迭代。而且許多大公司都有自己的反爬蟲(chóng)團(tuán)隊(duì),一旦發(fā)現(xiàn)用的多的爬蟲(chóng)策略,就會(huì)禁止你的訪(fǎng)問(wèn)。
如果你缺乏自己去攻防反爬的能力,就只能在代碼失效時(shí)措手無(wú)策、哭天喊地,卻找不到辦法自己去解決。
坑3:不了解 Python 多進(jìn)程并發(fā)程序
如果沒(méi)寫(xiě)過(guò)爬蟲(chóng)的話(huà),很可能是沒(méi)寫(xiě)過(guò) Python 多進(jìn)程并發(fā)程序的。我接觸的程序員,其中好多人歲數(shù)都已經(jīng)很大了,都沒(méi)有寫(xiě)過(guò)一個(gè)并發(fā)的程序,而是一直在寫(xiě)業(yè)務(wù)邏輯。
而為了提升爬蟲(chóng)效率,關(guān)鍵點(diǎn)就在于要了解:并發(fā)、并行、什么時(shí)候用多線(xiàn)程?什么時(shí)候用多進(jìn)程?什么時(shí)候用協(xié)程?尤其像 Python 是動(dòng)態(tài)語(yǔ)言,它有 GIL 的情況下,怎么去做處理?什么時(shí)候是 IO 密集型的,什么時(shí)候是 CPU 密集型的,想提升效率怎么去處理?
如果不是科班出身的話(huà),理解起來(lái)會(huì)有很多的誤區(qū)。在處理如何更快速更高效的爬取網(wǎng)站的時(shí)候,就會(huì)遇到問(wèn)題。
如何轉(zhuǎn)行爬蟲(chóng)工程師
1. 積累項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn)
我曾經(jīng)面試過(guò)一個(gè)同學(xué)A,是某個(gè)培訓(xùn)班出來(lái)的。在我問(wèn)他簡(jiǎn)歷上項(xiàng)目的技術(shù)細(xì)節(jié)時(shí),他支支吾吾的答不出來(lái),我一看這是沒(méi)做過(guò)項(xiàng)目啊,沒(méi)做過(guò)你就別浪費(fèi)我時(shí)間了。
最后他跟我說(shuō)實(shí)話(huà),是培訓(xùn)班偽造的簡(jiǎn)歷,問(wèn)我「能不能不要工資在這實(shí)習(xí)?」
我說(shuō)「這事還是別了,你這項(xiàng)目經(jīng)驗(yàn)太弱,還有好多東西要補(bǔ)?!?/p>
然后我讓他至少先自己花一星期補(bǔ)補(bǔ)基礎(chǔ),結(jié)果他嫌一星期太長(zhǎng)了,他想馬上就找到工作。(攤手)
其實(shí)我覺(jué)得他的問(wèn)題就是出在心態(tài)上了。如果能堅(jiān)持把項(xiàng)目啃下來(lái),解決了開(kāi)發(fā)過(guò)程中的各個(gè)關(guān)鍵點(diǎn),能直接上手去做公司的事情的話(huà),找到工作就是水到渠成的事情了。
2. 寫(xiě)的質(zhì)量好的項(xiàng)目可以放 Github
如果你認(rèn)為你的代碼寫(xiě)的不錯(cuò),你可以放在 GitHub 上,寫(xiě)上你所有的解決問(wèn)題的流程。
但如果你寫(xiě)得很爛,我認(rèn)為面試官看了可能不是一個(gè)加分項(xiàng),你還不如不寫(xiě),因?yàn)槊嬖嚬贂?huì)看,會(huì)發(fā)現(xiàn)你的代碼暴露了很多問(wèn)題。
3. 技術(shù)總結(jié)可以放到博客或 Gitbook
你在真正做項(xiàng)目的時(shí)候,是會(huì)遇到一些問(wèn)題的,在解決之后可以把這個(gè)過(guò)程總結(jié)出來(lái),寫(xiě)成一篇筆記。這是對(duì)你的知識(shí)體系的一個(gè)完善,哪怕是再小的點(diǎn),記錄下來(lái)也是有意義的。如果不方便發(fā)出來(lái),也應(yīng)該自己總結(jié)寫(xiě)下來(lái),不然過(guò)幾天就忘了。
積累的多了,這些學(xué)習(xí)筆記就形成了一個(gè)你的知識(shí)體系,這時(shí)候可以在 Gitbook 上作為一本電子書(shū)開(kāi)源出來(lái)。如果別人看到你了,別人可能也就會(huì)聯(lián)系你來(lái)做這份工作了。
爬蟲(chóng)工程師崗位要求掌握哪些?
初級(jí)爬蟲(chóng)工程師
* 爬蟲(chóng)方面:熟悉爬蟲(chóng)框架,熟悉 xpath、正則表達(dá)式,有爬取經(jīng)驗(yàn),了解常見(jiàn)策略,能優(yōu)化爬取效率
* Python基礎(chǔ):尤其是數(shù)據(jù)結(jié)構(gòu)的考察,知道怎么折騰數(shù)據(jù)、并發(fā)編程
* 前端編程:熟悉 HTML,CSS,JS
-
工程師
+關(guān)注
關(guān)注
59文章
1590瀏覽量
69485
發(fā)布評(píng)論請(qǐng)先 登錄


硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

(仰天長(zhǎng)嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師




硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過(guò)于真實(shí) #YXC晶振 #揚(yáng)興科技

笑死,掌握一眼識(shí)別資深硬件工程師的訣竅了!# #電路知識(shí) #電工 #硬核拆解

當(dāng)硬件工程師穿越到霸總?。?以他性格肯定忍不到第二集? #硬件工程師 #電路設(shè)計(jì) #晶振 #揚(yáng)興科技

當(dāng)你的工程師朋友失聯(lián)時(shí),別氣,ta真的是在忙工作 #搞笑 #電子愛(ài)好者 #硬件工程師 #晶振 #揚(yáng)興科技

硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?


評(píng)論