這可能是我在簡(jiǎn)書(shū)上發(fā)表的最后一篇文章了。
在簡(jiǎn)書(shū)的這段時(shí)間
我的第一篇文章發(fā)表于2015年3月6日:當(dāng)我選擇出國(guó)時(shí)我做了什么, 文章寫于我經(jīng)歷大半年的折騰后收到錄取通知書(shū)之后,那時(shí)候的我更多的是對(duì)未知領(lǐng)域的一種好奇,不過(guò)以我現(xiàn)在的眼光看,當(dāng)時(shí)是有有一點(diǎn)裝逼嫌疑的,不過(guò)問(wèn)題不大,年輕就應(yīng)該有年輕的樣子。也許是因?yàn)楹?jiǎn)書(shū)處于剛起步的時(shí)間,當(dāng)時(shí)的推送資源比較富裕,這篇文章是我所有文章中各方面數(shù)據(jù)最好的一篇,評(píng)論褒多貶少,我印象最深的是兩條帶負(fù)面評(píng)論,特地去翻看了下,其中一條是這樣說(shuō)的:
可憐的樓主如果回國(guó)就會(huì)在留學(xué)生服務(wù)中心發(fā)現(xiàn)大批量的和你一樣但比你年輕的多的歸國(guó)留學(xué)人員再找工作時(shí)還會(huì)發(fā)現(xiàn)最終還是工作經(jīng)驗(yàn)起決定作用。我不是故意打擊你!建議在國(guó)外工作,至少工作一段時(shí)間。
說(shuō)實(shí)話當(dāng)時(shí)我也沒(méi)出過(guò)國(guó),心里還是有點(diǎn)慌的。現(xiàn)在我回國(guó)快一年了,我到現(xiàn)在也沒(méi)去過(guò)留學(xué)生服務(wù)中心,所以我也不確定是不是有很多歸國(guó)待業(yè)青年,不過(guò)就我身邊的情況而言,學(xué)CS的回國(guó)在上海找份不錯(cuò)的工作還是比較輕松的。關(guān)于在國(guó)外工作一段時(shí)間的建議,我覺(jué)得還是中肯的,因?yàn)槟銜?huì)有機(jī)會(huì)學(xué)到一些更加先進(jìn)或者人性化的管理模式,這會(huì)對(duì)你的價(jià)值觀產(chǎn)生影響。比如說(shuō)我就認(rèn)為996是一種極其低效的管理模式,我完全不能接受。
30多歲就沒(méi)搞了吧
這條評(píng)論其實(shí)和出不出國(guó)沒(méi)什么關(guān)系,但卻對(duì)當(dāng)時(shí)的我觸動(dòng)很大,直到現(xiàn)在我都時(shí)不時(shí)拿出來(lái)琢磨一下。時(shí)不時(shí)的拿出來(lái)問(wèn)下自己:“我是不是要被淘汰了?”,好在我每次問(wèn)完我自己就發(fā)奮學(xué)習(xí)一段時(shí)間,至今還沒(méi)覺(jué)得會(huì)被淘汰。我一直覺(jué)得外界其實(shí)對(duì)IT這個(gè)行業(yè)是存在誤解的,不過(guò)這個(gè)話題太大,就不展開(kāi)說(shuō)了。
題外話:所以應(yīng)不應(yīng)該出國(guó)?
應(yīng)該。如果家里有條件的話我個(gè)人覺(jué)得還是要出去看一看的好。至于為什么?原因很簡(jiǎn)單,就是開(kāi)闊眼界,至少在別人問(wèn)我為什么出國(guó)時(shí),我不只能回答說(shuō)因?yàn)閲?guó)外好。但這個(gè)話題展開(kāi)來(lái)講又會(huì)很長(zhǎng),有機(jī)會(huì)我會(huì)和大家分享的,大概的框架可以參考我的另一篇文章:美國(guó)這三年。
自由選擇的權(quán)利也是很多人想要出國(guó)的原因,但我以為不然,我認(rèn)為自由選擇不是一種權(quán)利,而是一種能力。這種能力不是由外界賦予你的,而是因?yàn)槟阍趪?guó)外的經(jīng)歷對(duì)你的三觀產(chǎn)生了影響,讓你能夠更深入更真實(shí)的認(rèn)識(shí)到什么對(duì)你才是最重要的,從而催生了自由選擇的勇氣,并愿意堅(jiān)定的為之努力。這才是自由意志,是你的本心。在國(guó)內(nèi),同樣有機(jī)會(huì)覺(jué)醒這種能力,可能性可能會(huì)小一點(diǎn),但殊途同歸。
我時(shí)常會(huì)碰到一些人,他們受制于自己的所見(jiàn)所聞,持有一些在我看來(lái)有點(diǎn)狹隘,有時(shí)甚至有點(diǎn)偏執(zhí)觀點(diǎn)。但是一般情況下,我都是點(diǎn)頭表示贊同,不會(huì)與之爭(zhēng)論。一方面是因?yàn)槟撤N程度上我覺(jué)得他們是幸福的,另一方面則是因?yàn)槲乙膊桓冶WC我持有的觀點(diǎn)就是不狹隘不偏執(zhí)的。所以我總是時(shí)常提醒自己,要保持謙卑,對(duì)人,對(duì)世界,對(duì)大自然要常懷一絲敬畏。這個(gè)世界遠(yuǎn)比你以為的要大,不要自己看到了什么,就覺(jué)得世界就是什么。“弱小和無(wú)知不是生存的障礙,傲慢才是。”
話題叉的有點(diǎn)遠(yuǎn)了,言歸正傳,15年后我就出國(guó)了,雖然我有持續(xù)更新博客,但是并未在簡(jiǎn)書(shū)上同步,未能和簡(jiǎn)書(shū)一起走過(guò)這幾年,也算是一件憾事。時(shí)隔三年,我把所有的博客搬到了簡(jiǎn)書(shū),分享了一些關(guān)于爬蟲(chóng)的文章和我這幾年的心路歷程。這段時(shí)間粉絲數(shù)漲了很多,時(shí)不時(shí)就會(huì)有一些朋友在后臺(tái)問(wèn)一些問(wèn)題,這感覺(jué)很好。我也收到了一些贊賞,不多,卻是對(duì)我的肯定,非常感謝。這是我最新的數(shù)據(jù):

這是去年11月的數(shù)據(jù):

聊聊后臺(tái)的留言和我對(duì)我自己定位
我在2018-09-08 近況、打算和一些對(duì)爬蟲(chóng)工程師的理解里提到當(dāng)我找到了工作生活的平衡點(diǎn)后我會(huì)開(kāi)始定時(shí)更新博客,可惜直到離職這個(gè)平衡點(diǎn)我也沒(méi)找到,當(dāng)然此中波折又是另一番故事。
在我發(fā)布了這些爬蟲(chóng)文章后,我一度在收到了各種各樣的留言,這里要感謝簡(jiǎn)書(shū)。這些留言大體可以分為幾類:
- 說(shuō)代碼不能用或者直接索要源代碼。關(guān)于這類問(wèn)題,我一般不會(huì)回復(fù)。
- 問(wèn)我一些細(xì)節(jié)。這類問(wèn)題我其實(shí)是很愿意回答的,因?yàn)檫@說(shuō)明你在閱讀我的文章和代碼,并自己去實(shí)踐了。關(guān)于細(xì)節(jié)的問(wèn)題其實(shí)主要集中在淘寶和搜狗,無(wú)奈有些時(shí)候一者實(shí)在是時(shí)間過(guò)長(zhǎng),有些細(xì)節(jié)我自己也不記得了;二者網(wǎng)站是會(huì)更新它的反爬策略的,而我一般工作用不到,我是不會(huì)去更新這些細(xì)節(jié)的。所以萬(wàn)分抱歉,但是,重點(diǎn)來(lái)了,我在文末提供了一種此類問(wèn)題的解法。
- 正常的技術(shù)交流,這也是我最喜歡的交流類型,大部分朋友也已經(jīng)加了微信,保持著聯(lián)系。
- 對(duì)未來(lái)很迷茫,需要一些職業(yè)規(guī)劃方面的建議,這種問(wèn)題一般來(lái)源于未畢業(yè)的學(xué)生,我自己本身本科也不太好,讀書(shū)和剛工作時(shí)也缺乏前輩高人的指點(diǎn),所以我還是很愿意回答此類問(wèn)題的;但是,我也深知對(duì)于一個(gè)未入社會(huì)的學(xué)生來(lái)說(shuō),這類意見(jiàn)分量很重,我不想因?yàn)槲译S口一答誤了別人。所以一般這類問(wèn)題,我會(huì)盡量問(wèn)清楚對(duì)方的背景再提出建議。后續(xù)的話,我會(huì)繼續(xù)分享我自己的職業(yè)發(fā)展路程,我會(huì)真實(shí)的寫明當(dāng)時(shí)的想法,希望能有些參考作用。
再說(shuō)說(shuō)我對(duì)自己的定位吧。很多留言在開(kāi)頭都稱我“大佬”,我自然不是什么大佬,比我優(yōu)秀的人比比皆是,所以我通常會(huì)讓他們改口喊我的名字。我姓黃,我大學(xué)同學(xué)都喊我小黃,工作后同事一般喊我名字,或者老黃(很神奇,因?yàn)榇蠖鄶?shù)同事都比我年紀(jì)大),我翻譯書(shū)時(shí)編輯會(huì)稱呼我黃同學(xué)或者黃老師(受寵若驚)。其實(shí)細(xì)細(xì)想來(lái),我最喜歡的稱呼其實(shí)是“老黃”,一方面這包含了同事朋友對(duì)我的能力的認(rèn)可,顯得我成熟;另一方面老黃很容易給人一種勤勤懇懇的形象,我很喜歡。
我寫這些文章只是單純的喜歡寫作,編程和寫作是為數(shù)不多的能讓我真正感到快樂(lè)的事情,某種程度上說(shuō),這是創(chuàng)造帶來(lái)的快樂(lè)。這也是為什么我愿意兼職去做翻譯。
為什么想離開(kāi)簡(jiǎn)書(shū)?
我最終決定放棄簡(jiǎn)書(shū),打算轉(zhuǎn)投公眾號(hào),主要有三方面的原因:
其一,是因?yàn)槭虑楹芏?,也可能是因?yàn)橥涎影Y還沒(méi)完全治好,在博客和簡(jiǎn)書(shū)上同步更新文章對(duì)我來(lái)說(shuō)太耗精力了。其實(shí)以我之前分享的文章都是些入門級(jí)別的,有很多想法我都來(lái)不及寫出來(lái),這些想法都是已經(jīng)落地的,已經(jīng)應(yīng)用于日常工作中的某個(gè)地方。我只能說(shuō)今后慢慢再跟大家分享吧。
其二,是一些主觀上的原因,除了閱讀以外,我平時(shí)最主要的碎片信息來(lái)源就是簡(jiǎn)書(shū)和知乎,雖然兩邊內(nèi)容質(zhì)量這幾年都在下滑,但似乎簡(jiǎn)書(shū)下降的有點(diǎn)過(guò)分了。我的簡(jiǎn)書(shū)推薦流里關(guān)于爬蟲(chóng)和Python的文章,基本都是水文,毫無(wú)干貨,有時(shí)候我都覺(jué)得作者是直接復(fù)制粘貼過(guò)來(lái)的,代碼格式都不改,毫不用心。更令我失望的事,簡(jiǎn)書(shū)文章不提供“反對(duì)”這個(gè)選項(xiàng)。
其三,運(yùn)營(yíng)一個(gè)公眾號(hào)是我目前覺(jué)得更有趣的一件事,這其中會(huì)涉及到公眾號(hào)內(nèi)容產(chǎn)生,公眾號(hào)運(yùn)營(yíng)推廣,公眾號(hào)功能開(kāi)發(fā),小程序開(kāi)發(fā)等,這幾項(xiàng)除了運(yùn)營(yíng)推廣我都能做,整件事本身又可以和爬蟲(chóng)產(chǎn)生一些交互,至于能不能融匯貫通,就是另一項(xiàng)挑戰(zhàn)了。相對(duì)而言,在簡(jiǎn)書(shū)上只需要一些簡(jiǎn)單的markdown編寫技巧,所涉及的技術(shù)都沒(méi)有我在博客上發(fā)布一篇文章多,固然方便,卻喪失了很多樂(lè)趣。
此處獻(xiàn)上我的公眾號(hào):

我喜歡將工程師成為“攻城獅”,“獅趣”自然就是作為工程師的樂(lè)趣了。這段時(shí)間我自身處于一個(gè)調(diào)整階段,我會(huì)對(duì)最近大半年時(shí)間的經(jīng)歷做一些總結(jié),目測(cè)應(yīng)該又會(huì)輸出一大波文章。
目前我想了想可以寫的文章還可以有:
- 關(guān)于爬蟲(chóng)的,我應(yīng)該會(huì)寫一篇或一個(gè)系列的文章盡量涵蓋所有反爬的策略,以及對(duì)應(yīng)的解決方法;當(dāng)然內(nèi)容會(huì)跟深入一點(diǎn),我會(huì)盡量講清楚每種技術(shù)的前因后果。比如說(shuō):
- 瀏覽器的工作原理
- 網(wǎng)頁(yè)的渲染過(guò)程
反爬的時(shí)候可以想象如果你是對(duì)方網(wǎng)站的開(kāi)發(fā)人員,你會(huì)怎么做呢?
- 一些項(xiàng)目的源碼分析。我之前為了寫定時(shí)任務(wù)的調(diào)度器,去研讀了下celery中相關(guān)的實(shí)現(xiàn),受益不淺,這些還沒(méi)有落地成文章。另一個(gè)我很想寫的源碼分析是scrpay。
- Python這門語(yǔ)言本身的一些編寫技巧和原理,Python的底層是怎么實(shí)現(xiàn)的,弄明白這個(gè)之后,會(huì)對(duì)寫代碼有很大的幫助。
- 其他任何領(lǐng)域的一些有趣的事情,因?yàn)槲冶旧砼d趣也好,工作性質(zhì)也好,接觸到了很多不同的東西,有些東西交叉對(duì)比下,不管是對(duì)學(xué)到的東西還是新學(xué)到的東西都會(huì)產(chǎn)生幫助。
- 公眾號(hào)優(yōu)先保證一周一更吧。
我還能做點(diǎn)別的嗎?
當(dāng)然能。這才哪跟哪。我換公眾號(hào)僅僅是換了一個(gè)內(nèi)容發(fā)布渠道,但這跟構(gòu)建一個(gè)小圈子是兩碼事。
上文提到,通過(guò)簡(jiǎn)書(shū)我也認(rèn)識(shí)了一些朋友,都是現(xiàn)役或預(yù)備役工程師,有一部分還交換了微信,我也不想因此就斷了聯(lián)系。我為大家準(zhǔn)備了一個(gè)Slack頻道,這里先獻(xiàn)上邀請(qǐng)鏈接:usebrainbeforehands.slack.com的邀請(qǐng)鏈接。
但,為什么是Slack?
為什么選擇Slack,主要有兩點(diǎn)原因:首先它是要梯子才能用的,而在我看來(lái),合理使用梯子是一名合格工程師必備的能力,這相當(dāng)于是個(gè)入門檻;其次,Slack會(huì)有一些機(jī)器人插件,我覺(jué)得這里可以和爬蟲(chóng)有很多交互,這個(gè)后面會(huì)說(shuō)。滿足這兩點(diǎn)的app本身就不多,其中Slack的UI設(shè)計(jì)是我喜歡的,我是極簡(jiǎn)主義設(shè)計(jì)理念的追隨者。所以,就Slack了。
為什么你可能會(huì)需要這個(gè)Slack頻道?
如果說(shuō)公眾號(hào)是個(gè)大圈子,那么我希望Slack是一個(gè)面向工程師的小圈子,它是一個(gè)技術(shù)導(dǎo)向的交流環(huán)境,沒(méi)有那么多唧唧歪歪,shut up and show me your code。當(dāng)然你不一定要是做爬蟲(chóng)的。在這里你至少可以
- 資料和信息,問(wèn)題和代碼共享。
-
項(xiàng)目,如果未來(lái)有一起做項(xiàng)目的打算,在我的想法里,項(xiàng)目主要會(huì)被分為兩類:爬蟲(chóng)框架和基于Slack的Bot。我在以前的文章中提過(guò)我想自己寫個(gè)爬蟲(chóng)框架,其實(shí)并不是一點(diǎn)進(jìn)展都沒(méi)有。我自己手上現(xiàn)在有兩套爬蟲(chóng)系統(tǒng)設(shè)計(jì),都是基于scrapy的,一套是上家公司采用的,比較復(fù)雜,動(dòng)用了scrapy、scrapyd、scrapyrt等;另一套是我基于第一套自己簡(jiǎn)化的,自己實(shí)現(xiàn)了循環(huán)任務(wù)調(diào)度器和爬蟲(chóng)任務(wù)隊(duì)列的管理(這些我以后都會(huì)分享出來(lái))。真正讓我頭疼的其實(shí)是創(chuàng)新的問(wèn)題,當(dāng)我讀了scrapy后,我覺(jué)得scrapy真的是個(gè)很完美的框架,如果沒(méi)有一些更精彩的idea,再寫一個(gè)一樣的框架又有什么意義呢?
- 另一個(gè)我最近在思考的問(wèn)題是如果實(shí)現(xiàn)爬蟲(chóng)共享但不暴露源碼。比如說(shuō)我破解了某APP的核心加密算法,我把它做成爬蟲(chóng),我愿意分享給大家,但是出于某種原因我不想給被人看我的解密算法,這種情況應(yīng)該怎么辦?我調(diào)研過(guò)一些方法,也有一些想法,之后可以再交流。
- ……
Anyway,期待你們的加入!