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












FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區別?


評論