2008年開始,他寫博客11年了菜皂。
僅最近兩年內(nèi)贞绵,博客的訪問量累計超過600萬。
2017年幌墓,他發(fā)布了《Django企業(yè)開發(fā)實戰(zhàn)》視頻課但壮,廣受學(xué)員好評冀泻。2019年常侣,實體書出版。
「時間在我看來并不是虛無的弹渔,是非常具體的東西胳施,一分一分,一秒一秒肢专,都很具體舞肆。」——胡陽
入門——興趣并非偶然
胡陽說博杖,他是「笨鳥先飛」的那種人椿胯。
高考后,胡陽第一志愿報的是機(jī)械工程專業(yè)剃根,他查了下專業(yè)背景哩盲,需要繪圖,于是就開始在家自學(xué)狈醉。
不過這番準(zhǔn)備沒派上用場廉油,因為報考結(jié)果出來后,他的專業(yè)是信息計算科學(xué)苗傅。
他想起高中發(fā)過一本 Visual Basic 的教材抒线,但因為高考復(fù)習(xí)緊張,沒時間上機(jī)渣慕。于是嘶炭,在等待大學(xué)入學(xué)的這段時間抱慌,他把書翻了出來開始研究。
入學(xué)后眨猎,他發(fā)現(xiàn) VB 是大學(xué)的基礎(chǔ)課遥缕,上課教的竟然就是暑假自己學(xué)的內(nèi)容。全校無論什么專業(yè)的人都在學(xué)宵呛,而當(dāng)其他同學(xué)上機(jī)還是一臉懵的時候单匣,他已經(jīng)會寫了。
胡陽說:「我們?yōu)槭裁磿σ患虑楦信d趣宝穗?一種情況是你對這件事情真的有天分户秤,一開始上手就比別人學(xué)得快。另外一種是你比別人起跑要快逮矛〖牛」
成就感激起了他的興趣。除了 VB 之外须鼎,互聯(lián)網(wǎng)有無數(shù)的未知在引人探索鲸伴。
為什么電腦運行得慢?什么是中病毒晋控?所謂的「黑客」怎么入侵網(wǎng)站汞窗?
懷著好奇,大一那年赡译,他把課余時間大多花在學(xué)習(xí)研究網(wǎng)絡(luò)安全上仲吏。
他在網(wǎng)上能找到很多黑客類的教程,比如演示怎么去入侵一個網(wǎng)站蝌焚。但是怎么去實踐呢裹唆?這類教程的時效性太高,網(wǎng)站不會敞開門在那等著只洒。
當(dāng)然许帐,方法也是有的。那時就有 X-scan 掃描器毕谴、挖掘雞這類傻瓜式工具成畦,只要填一個網(wǎng)址,它會幫你掃描有什么漏洞析珊。
但問題是羡鸥,這不太有趣,就算黑進(jìn)網(wǎng)站了也只能說明是人家這個工具寫得好忠寻。
于是惧浴,胡陽的興趣轉(zhuǎn)向了加密與解密的方向,與脫殼相關(guān)的內(nèi)容奕剃。當(dāng)時還是桌面 APP 的時代衷旅,下載之后就可以很方便地實驗捐腿,很多方法他試過后,發(fā)現(xiàn)完全可行柿顶,這給了他信心茄袖。
不過,軟件終究是程序員寫出來的嘁锯,胡陽覺得自己還是得去學(xué)編程宪祥。
恰在這時,學(xué)校有一個信息技術(shù)興趣提高班來招生家乘,他想:那就去試試吧蝗羊。
這個決定完全改變了他接下來兩年的大學(xué)生活。
米老師一手創(chuàng)立了興趣提高班仁锯,他不僅一個人教所有的計算機(jī)基礎(chǔ)課耀找,而且引導(dǎo)大家探索性地學(xué)習(xí),相比于照本宣科业崖,他更在意的是啟發(fā)大家從不一樣的角度看問題野芒。
胡陽說:「你會感覺整個視野被打開了∷唬」
在興趣提高班狞悲,大家因為同樣的熱情聚集在一起,甚至寒暑假也留在學(xué)校雄家。這兩年效诅,時間和汗水為他打下了堅實的地基胀滚。
畢業(yè)時趟济,在其他人在就業(yè)市場中迷茫的時候,他已經(jīng)去了師兄的公司搞開發(fā)咽笼。他說:「這個行業(yè)能夠讓你以自己的方式去做有價值的東西顷编。因為開發(fā)一個軟件需要依賴的外部成本很低,只需要有一臺電腦就能搞定剑刑。對我來說比較幸運的是媳纬,這個事剛好是我感興趣的,并且可以有不錯的收入施掏,能夠養(yǎng)家糊口钮惠。」
編程七芭,不只是一份工作而已
2011年素挽,他從 Java 轉(zhuǎn)到?Python 開發(fā)。
HR 問他:你學(xué)了多久 Python 并能正式工作狸驳?他回答:「一兩天预明∷跞」
他在回答里推薦了3本書,還有自己做過的項目練習(xí)代碼撰糠。
為什么會選擇做出這樣的改變呢酥馍?
那時,胡陽才剛畢業(yè)不久阅酪。工作后旨袒,他發(fā)現(xiàn)公司會接各種項目,比如Java术辐、.NET峦失、PHP、VB术吗,哪個方向他都沒辦法去深入地學(xué)習(xí)尉辑。他想給自己定一個計劃,卻不知道怎么做较屿,前路一片迷茫隧魄。
輾轉(zhuǎn)反側(cè)了幾個月后,他決定辭職隘蝎。
那一年购啄,他在博客中寫道:「我選擇走軟件這條路,不是為了一份工作嘱么,是從純對技術(shù)的熱愛出發(fā)的狮含。或許我還沒有那么多的人生經(jīng)歷曼振,不了解生活的本質(zhì)几迄。但是我一直在告訴自己,有些事冰评,你要是想做的話映胁,即便不知道是不是和你想的一樣,那你應(yīng)該去做甲雅,因為這樣你才能夠看得更多解孙。」
一年后抛人,他加入了搜狐弛姜。
他說:「在搜狐六年的時間,相當(dāng)于又上了一個大學(xué)了妖枚⊥⒕剩」
第一年,他每天都在拼命學(xué)習(xí)。他說中剩,雖然之前有了一年的工作經(jīng)驗忌穿,但還是覺得自己什么都不知道。
這樣的狀態(tài)持續(xù)了一段時間后结啼,他的學(xué)習(xí)曲線逐漸平緩掠剑。不過很快,他又面臨了全新的挑戰(zhàn)郊愧。
部門變動對于一名普通員工意味著什么朴译?有人只能被挑選,也有人擁有更多的選擇權(quán)属铁。因為在部門變動或業(yè)務(wù)擴(kuò)展后眠寿,總會有一些機(jī)會出現(xiàn)。那些做得好的人焦蘑,這時會浮現(xiàn)出來盯拱,他會被提拔到更高的位置,帶團(tuán)隊負(fù)責(zé)更大例嘱、更多的業(yè)務(wù)狡逢。
所以,胡陽發(fā)現(xiàn)拼卵,攻克了業(yè)務(wù)和技術(shù)之后奢浑,他得帶團(tuán)隊了。
一開始腋腮,他沒有多想雀彼,只是用之前老大的方法來帶大家。不過即寡,管理會分散精力徊哑,在業(yè)務(wù)膨脹之后,甚至面對全新業(yè)務(wù)的時候嘿悬,他有點手忙腳亂了实柠。
于是,他開始思考:技術(shù)人應(yīng)該怎么做管理呢善涨?
新手管理者的痛苦在于,他會糾結(jié):「這哥們怎么寫得這么慢草则?我寫早就寫完了钢拧。」
不過炕横,他發(fā)現(xiàn)自己可以換個角度想問題:「把這件事情交給他源内,就等于你已經(jīng)做了。為什么呢份殿?相當(dāng)于你本來是一個單核的 CPU膜钓,變成多核了嗽交,對吧?你可以同時接多個任務(wù)颂斜,雖然其中一個跑得比較慢夫壁,但是其他的都運轉(zhuǎn)得非常快沃疮,所以整體你的產(chǎn)出還是足夠高的盒让。況且他也會成長,會不斷變快的司蔬∫厍眩」
他總結(jié),本質(zhì)上 leader 要思考的是團(tuán)隊整體俊啼,從而不斷地把這個項目的 feature 往前推進(jìn)肺缕。
不過,管理的確會消耗精力,他沒有足夠時間持續(xù)地輸出或輸入代碼授帕,也不能具體負(fù)責(zé)某個項目的開發(fā)搓谆,但會寫一些「打雜的」代碼,解決出現(xiàn)的小問題豪墅。
他說泉手,自己會在業(yè)余時間學(xué)習(xí),保持對技術(shù)的感覺或者敏銳性偶器。
胡陽進(jìn)搜狐的初衷很簡單斩萌,就是想找一個流量大的平臺,參與做一個好產(chǎn)品屏轰。
從他剛加入時颊郎,搜狐就是一家成熟的公司,擁有成熟的系統(tǒng)霎苗。他從慢慢熟悉新聞業(yè)務(wù)開始姆吭,維護(hù)了它大概六年的時間。
2018年唁盏,在搜狐的最后一年内狸,他其實有點沮喪。
尤其是參與團(tuán)隊管理之后厘擂,他對公司變革的意義有了更深的體會昆淡。「你發(fā)現(xiàn)在部門變動或者商業(yè)調(diào)整之后刽严,技術(shù)的價值其實沒有那么大昂灵。就是說,你可以把這件事做好,但是如果換一個人來做眨补,哪怕做得不是很好管削,結(jié)果也沒有太大差別〕怕荩」
對于技術(shù)人來說含思,最大的否定莫過于此。
可是实蓬,怎樣才能最大程度地發(fā)揮他技術(shù)的價值呢茸俭?
他想要參與一個自己喜歡的產(chǎn)品的構(gòu)建。這也是他選擇加入知乎的原因安皱。
他不太愛看新聞调鬓。他認(rèn)為,對于新聞這種高流量產(chǎn)品酌伊,雖然也存在一些正經(jīng)的報道腾窝,但更多是所謂的「標(biāo)題黨」,無論標(biāo)題再誘人居砖,它的信息對你毫無用處虹脯。而知乎成立不久他就注冊了賬號,他覺得奏候,大家貢獻(xiàn)的內(nèi)容更偏知識和經(jīng)驗循集,對用戶來說更有價值。
于是蔗草,他登上了知乎這艘「海盜船」咒彤。
來到知乎,他的第一感覺是:這個地方后端真多咒精。
因為和之前相比镶柱,搜狐門戶是媒體屬性,把新聞發(fā)布出來模叙,大家去看歇拆,流程就結(jié)束了。而知乎是一個 UGC(用戶原創(chuàng)內(nèi)容)的社區(qū)平臺范咨,所有人都是可參與的故觅,業(yè)務(wù)更加復(fù)雜,盡管功能整合在一個社區(qū)里面湖蜕,但下面細(xì)分的內(nèi)容都是獨立的產(chǎn)品逻卖。而且大家經(jīng)常在群里交流,技術(shù)氛圍非常濃昭抒。
他覺得上家公司像一個大的船群,大家朝著共同的目標(biāo)各自前進(jìn)。而現(xiàn)在的則像一艘大船灭返,大家一起讓船駛向共同的目標(biāo)盗迟。
寫博客——分享技術(shù)和經(jīng)歷
從 2008 年開始,胡陽已經(jīng)寫博客 11 年了熙含。
博客內(nèi)容不僅包括技術(shù)罚缕,還有他的讀書筆記、對某事的感想怎静、找工作的歷程邮弹、年度總結(jié),等等蚓聘,像是一條河流腌乡,沿著過去流淌到現(xiàn)在,一路的景色清晰可見夜牡。
他前幾年有一個習(xí)慣与纽,看到一個好博客的時候,會從頭開始把所有內(nèi)容看一遍塘装。除了看內(nèi)容急迂,他還會揣測作者當(dāng)時是什么狀態(tài)、想法蹦肴、這個人的成長過程是怎樣的僚碎。這是他會堅持寫博客的一個原因,把自己的經(jīng)歷共享給大家也是某種意義上的開源阴幌。
2017 年勺阐,搜狐部門變動,上層戰(zhàn)略都在調(diào)整裂七,他手上的事情停了皆看,時間突然空了出來。他想:畢竟工作時間也挺長背零,在搜狐已經(jīng)呆了五年腰吟,他希望能有一些具體的東西留下來。
「為什么這么講徙瓶?比如說我有很多同事?lián)Q公司之后毛雇,就不再用 Python 了。無論他之前的經(jīng)驗有多少侦镇,只對他自己來說是有價值的灵疮。因為有這些經(jīng)驗,他可以快速地去適應(yīng)另一種新的技術(shù)壳繁。
「當(dāng)你跟他共事震捣,你會發(fā)現(xiàn)荔棉,原來他懂這么多。而他轉(zhuǎn)行了之后蒿赢,其他人可能也有同樣的感覺润樱,但是肯定不如你也用 Python 時的這種體驗更直接。這在一定程度上是一種浪費羡棵。
「但如果他把經(jīng)驗變成書或者視頻壹若,哪怕之后真的不做這個語言,或者不做這個行業(yè)了皂冰,它對別人還是有幫助的店展,因為這是沉淀下來的東西⊥毫鳎」
另一方面赂蕴,這樣也有助于技術(shù)的學(xué)習(xí)。
他說:「怎樣學(xué)技術(shù)才能做到又快又好呢剔应?一是帶著問題去學(xué)習(xí)睡腿。比如你遇到一個 bug,怎么都搞定不了峻贮,剛好有一本書能解決席怪,那你肯定會特別投入地把書看完。另外一種就是我常用的方式——以教代學(xué)纤控」夷恚」
既有輸入,又有輸出船万,中間就是大腦在提煉總結(jié)刻撒,理解吸收。
那年耿导,他做了《Django企業(yè)開發(fā)實戰(zhàn)》的視頻課声怔,學(xué)員的反饋很好。后來舱呻,他把內(nèi)容進(jìn)一步細(xì)化完善醋火,整理成了紙質(zhì)書,2019 年初在圖靈出版箱吕。
Django是基于MVC(model芥驳,template,views)構(gòu)造的開源Web開發(fā)框架茬高,可以顯著提高工作效率兆旬。
胡陽舉了個具體的例子:「如果用Tornado框架寫一個新feature,我需要先把數(shù)據(jù)庫設(shè)計好怎栽,之后寫model層增刪改查的部分丽猬,寫controler層數(shù)據(jù)整合的部分宿饱,再寫HTTP層接口部分,然后用阿里開源的antd去寫前端宝鼓。無論你的feature有多簡單刑棵,這套都要走完巴刻,很繁瑣愚铡。
「而用Django的話就會簡單很多。因為Django是基于model構(gòu)建的胡陪,把模型設(shè)計好數(shù)據(jù)庫就有了沥寥,然后再配置一下admin,頁面就已經(jīng)有了柠座。按照前后端分離的邏輯邑雅,你只需要配一個Django REST framework,所有restful 接口就有了妈经。然后你根據(jù)model寫rest framework的配置淮野,就基本上已經(jīng)完善了,剩下只要花時間寫前端邏輯就好了吹泡。所以它是生產(chǎn)工具骤星,能極大地提高生產(chǎn)力”疲」
讓自己的歷史不斷向前
「時間在我看來并不是虛無的洞难,是非常具體的東西,一分一分揭朝,一秒一秒队贱,都很具體√陡ぃ」
有多少人會執(zhí)著地記錄自己十年的變遷呢柱嫌?有人覺得這毫無意義,因為過去發(fā)生的已經(jīng)消散屯换。
但這是關(guān)于一個人的歷史编丘。我們無法想象一個只凝固于現(xiàn)在的,沒有歷史的國家趟径;而如果一個人走在一步一消散的臺階上瘪吏,也無法判斷自己是向前,在原地蜗巧,還是在倒退掌眠。
除此之外,胡陽也更明白自己時間的定義幕屹。
「你看老大爺大媽蓝丙,滿頭白發(fā)级遭,在街邊走路,你知道你以后也會是這個樣子渺尘,這是不可避免的挫鸽。有時候我覺得人生是一眼可以望到頭的,每個人都這么幾十年的時間鸥跟。
「對我來說丢郊,時間是一個刻度,它也是一個容器医咨。
「如果說它是刻度的話枫匾,比如說一個小時,人生其實是由無數(shù)這樣的一個小時組成的拟淮,對吧干茉?而說它是容器,是指你可以填充不同的內(nèi)容很泊。比如我們每個小時都在閑扯角虫,這個容器也同樣填滿了∥欤」
它有什么樣的意義呢戳鹅?他舉了一個程序員們很熟悉的例子——編程馬拉松(Hackathon)。
「很多科技公司都會定期組織 Hackathon 活動争涌,如果你沒有參與過粉楚,你可能體會不到 24 小時內(nèi)能完成多少任務(wù)。當(dāng)我們被限制亮垫,要把一些內(nèi)容放到固定的時間容器中模软,往往我們會想方設(shè)法來達(dá)成目標(biāo)。?
「它會有一個倒計時饮潦,你看還剩一個小時的時候燃异,還有兩個工作沒做,你嘩嘩嘩就開始寫继蜡,這時候效率會非常高回俐。
「所以你參加完 Hackathon 就會知道,24 個小時稀并,每個小時你能做到什么仅颇。
「很多剛?cè)胄械某绦騿T,他們估算時間的單位都是一天或半天碘举,有時候說‘OK這個需求我排一下’忘瓦,可能就排到兩周。大家早上起來往這一坐引颈,就11點了耕皮,還沒進(jìn)入狀態(tài)境蜕,中午該吃飯了。然后下午2點睡醒之后凌停,把上午沒做的事情再做一下粱年。
「說到時間管理,其實最關(guān)鍵的就是:你真正的單位時間是什么罚拟?
「同樣是一個小時的單位台诗,你能完成多少事,能往時間容器里填充多少東西舟舒,在你放 10% 的精力和 100% 的精力的時候是不一樣的拉庶,后者才是真正的單位時間。只是很多人會有意無意地忽視秃励。」
如何做到這一點呢吉捶?胡陽說夺鲜,秘訣就在于「狀態(tài)的切換」。
萬事開頭難呐舔,所以關(guān)鍵的是先把自己切換到那個狀態(tài)里面币励。
舉個實際的例子,他分享了自己寫博客時的經(jīng)驗珊拼∈成耄「平時工作比較忙的時候,其實回家是不想寫東西的澎现。你往那一坐仅胞,不想再對著電腦輸出,因為太累了剑辫。
「這時候的解決方案干旧,就是你先隨便寫個開頭。然后妹蔽,當(dāng)你繼續(xù)寫完一段之后椎眯,會覺得自己寫得不好,這時你已經(jīng)在這個狀態(tài)里面了胳岂。那就再去寫一些好的東西出來编整,最后把開頭刪掉,或者把開頭再重新寫一遍乳丰≌撇猓」
無論是大學(xué)時的「笨鳥先飛」、職場上做的選擇成艘,以及這些年不斷地學(xué)習(xí)和分享赏半,驅(qū)動他的馬達(dá)是什么贺归?
胡陽說:「其實我自制力沒那么好,特別累的時候断箫,也不太想做比較消耗大腦精力的事拂酣。
「但是我不太能接受長時間去做同樣的事情,或者說我長時間沒有信息攝入仲义,我會覺得特別可怕婶熬,覺得特別枯燥。
「所以我無論是寫博客埃撵,去看技術(shù)或者其他書赵颅,我其實是在不斷地了解新的東西。因為暂刘,本質(zhì)上我會特別害怕饺谬,我始終在重復(fù)一件事情∫ゼ穑」
他全力以赴募寨,一心探尋自己的極限,永不停息地向前森缠,時間會給所有付出一個完美的答案拔鹰。
文:李冰
采訪:樂馨,李冰
圖片來源:胡陽
資深開發(fā)工程師the5fire多年開發(fā)經(jīng)驗總結(jié)
本書以從零開發(fā)一個博客系統(tǒng)為例列肢,介紹Django在日常工作中的應(yīng)用。