今天是Beansmile成立4周年,同時(shí)也是五月天成立20周年的日子
很不巧兩個(gè)對(duì)我很重要的團(tuán)隊(duì)都是今天生日,一個(gè)是五月天,一個(gè)是我如今的東家Beansmile。首先祝兩大團(tuán)隊(duì)生日快樂(lè) !!
當(dāng)跑步的時(shí)候你在想些什么?
晨跑之時(shí),我便已在琢磨,是否可以趁著它們的生日來(lái)寫(xiě)一篇博客。只是我應(yīng)該借五月天的生日來(lái)寫(xiě)B(tài)eansmile,還是借Beansmile的生日寫(xiě)五月天?
晨跑過(guò)后發(fā)覺(jué),其實(shí)無(wú)論以哪種方式去寫(xiě),如果一篇文章側(cè)重點(diǎn)有兩個(gè)或以上,那么似乎便注定了這篇文章沒(méi)有側(cè)重點(diǎn),只能算是一篇隨筆吧?那我就當(dāng)做一篇隨筆來(lái)寫(xiě)吧,反而沒(méi)有刻意突出重點(diǎn)的負(fù)擔(dān)。
一. MayDay是生活的一部分
今天是五月天的20歲生日。最近也剛開(kāi)完演唱會(huì),簡(jiǎn)書(shū)上出現(xiàn)了很多關(guān)于五月天的文章。閱讀了簡(jiǎn)書(shū)上一些人對(duì)五月天的理解,我覺(jué)得我只能勉勉強(qiáng)強(qiáng)地算是一個(gè)偽五迷。
不過(guò)也無(wú)妨,信爺也曾說(shuō)“希望五月天的音樂(lè)能夠一直陪著你,在沒(méi)有人看到你的地方?!?。演唱會(huì)過(guò)后似乎一切都將歸于平靜,無(wú)論我是真五迷還是偽五迷,五月天的音樂(lè)依然會(huì)在生活中陪伴著我,我相信這一點(diǎn)永遠(yuǎn)都不會(huì)變。

今天也順便預(yù)約了2077年五月天的演唱會(huì),圖個(gè)紀(jì)念吧。
二. 豆廠小記事

Beansmile是一家以ruby為主要編程語(yǔ)言的外包公司。
2016年下半年,我穿著“I Love Ruby”紀(jì)念版襯衫到處招搖撞騙,總算讓我撞開(kāi)了這扇大門(mén),成為了豆廠(Beansmile)的一份子。

但其實(shí)我并不寫(xiě)ruby,我是這家公司的前端工程師。我手里拿的是html + css + javascript。
在這家公司生存了幾個(gè)月,從一個(gè)前端菜鳥(niǎo)到現(xiàn)在能夠?qū)懸恍┫駱拥木W(wǎng)站,可以說(shuō)前端技能有很大的進(jìn)步(可能是因?yàn)槠瘘c(diǎn)低吧)。如果在這里寫(xiě)太多技術(shù)方面的話題似乎意義不大,我覺(jué)得我可以談一些技術(shù)之外的事情:
幾個(gè)月以來(lái),其實(shí)里面的生活并沒(méi)有我想象中那么完美?;蛟S是我當(dāng)初期待太高了?
無(wú)論理想多么豐滿,人們也總是生活在現(xiàn)實(shí)當(dāng)中。
1. 擺脫搬磚
我本期待客戶都是優(yōu)質(zhì)的客戶,他們善解人意,理性分析,而我只需要根據(jù)客戶給的原型,或者設(shè)計(jì)師給的設(shè)計(jì)圖,把頁(yè)面的樣子實(shí)現(xiàn)出來(lái)就好了。

這種情況這輩子都不可能出現(xiàn)
客戶是正常人,但是我們程序員不是。因此客戶根本無(wú)法站在程序員的層面上考慮事情,他們不知道一個(gè)看似簡(jiǎn)單的支付寶支付流程,中間會(huì)有多少次API調(diào)用。他們不知道他們提出的需求技術(shù)成本有多高,而且還不一定能夠達(dá)到他們預(yù)期的效果。
如果程序的只想像我這樣搬磚,那我只能說(shuō)“你只配當(dāng)個(gè)碼農(nóng)”。搬磚的后果是,把自己累得半死,然后客戶還不會(huì)感激你。
正如我所言,客戶是不專(zhuān)業(yè)的,他們甚至搞不清楚自己需要的是什么,他們經(jīng)常會(huì)提出一些“變態(tài)”的構(gòu)思。這個(gè)時(shí)候需要程序員站出來(lái),好好教教他們?nèi)绾巫鋈恕?/p>

下面是我所理解的程序員跟碼農(nóng)的區(qū)別:
1. 碼農(nóng): 敲代碼
2. 程序員: 思考功能價(jià)值 -> 思考功能可行性 -> 敲代碼
作為程序員我們需要站在用戶的角度去思考問(wèn)題。我們作為旁觀者能夠更加清楚地知道用戶到底需要達(dá)到什么目的,然后再根據(jù)我們的專(zhuān)業(yè)知識(shí)來(lái)給予用戶一個(gè)替代方案,這個(gè)方案或許沒(méi)有之前方案這么“完美”,但它肯定是一個(gè)可行性更高的方案,一個(gè)更節(jié)省時(shí)間的方案。并且到目前為止,絕大多數(shù)客戶都很樂(lè)于接受這種結(jié)果。
程序員應(yīng)該花更多的時(shí)間去創(chuàng)造價(jià)值,而不是拼命敲打鍵盤(pán)。
這也算是豆廠有經(jīng)驗(yàn)的員工給我上的寶貴的一課吧?
2. 我做不了全棧工程師
當(dāng)初我進(jìn)入豆廠的夢(mèng)想是成為全棧工程師。既能寫(xiě)前端頁(yè)面,又能寫(xiě)服務(wù)端邏輯,想想多酷啊。但如今你要我去開(kāi)發(fā)后端程序我會(huì)對(duì)你說(shuō):

五月天在人生無(wú)限公司演唱會(huì)上說(shuō)
人生有限,但是每個(gè)人的自傳是無(wú)限的。
在工作上用這個(gè)套路就是
人的精力有限,但是工作是無(wú)限的。
當(dāng)然,前端工程師有些后端的知識(shí)固然能夠減少許多的溝通成本,但是如果讓前端人員去開(kāi)發(fā)后端邏輯或者說(shuō)讓后端人員去調(diào)整前端樣式,我覺(jué)得都是災(zāi)難:
人的精力有限,沒(méi)有辦法兼顧很多東西,當(dāng)分心去做其他事情的時(shí)候勢(shì)必會(huì)對(duì)他本該做好的事情造成負(fù)面影響。
當(dāng)然如果他是一個(gè)很有經(jīng)驗(yàn)的全棧工程師,那我無(wú)話可說(shuō)。不過(guò)那種人一個(gè)人可以扛幾個(gè)人的工作,目前的豆廠應(yīng)該暫時(shí)還沒(méi)有這種人。
我并不認(rèn)為,后端工程師去前端幫忙,或者說(shuō)反過(guò)來(lái)前端工程師去后端幫忙是一個(gè)1 + 1 = 2的問(wèn)題。我覺(jué)得應(yīng)該把它當(dāng)作是1 + 1 < 2 甚至是1 + 1 < 1的事情來(lái)看待。
在豆廠我曾經(jīng)不只一次聽(tīng)到過(guò)有人抱怨說(shuō)CSS代碼難維護(hù),后來(lái)發(fā)現(xiàn)那堆代碼是后端人員寫(xiě)的。當(dāng)時(shí)前端人力不足,后端只能幫忙調(diào)整前端樣式了。
但是他們往往忽略了“代碼的壞味道”。不過(guò)這也可以理解,想想后端人員不熟悉前端技術(shù),如果讓他們?nèi)?xiě)前端樣式,能夠把樣式調(diào)整出來(lái),就已經(jīng)用盡了洪荒之力了。

根本就沒(méi)有精力去考慮代碼可維護(hù)性的問(wèn)題。如果是個(gè)不用維護(hù)的項(xiàng)目那倒還好,但是這幾乎不可能。所有項(xiàng)目到頭來(lái)還是要我們自己去維護(hù)。
這讓后面接手該工作的開(kāi)發(fā)人員就只有崩潰的份了。這不但降低開(kāi)發(fā)效率而且還會(huì)讓后期花更多時(shí)間去維護(hù),得不償失。
鑒于此,并不是我不想當(dāng)全棧工程師,而是我真的做不了這個(gè)事情。

3.豆廠員工離職
最后提一提豆廠的人員變動(dòng):
豆廠前端組的組長(zhǎng)據(jù)說(shuō)這周就要要離職,具體原因我并不是十分清楚。平時(shí)交流機(jī)會(huì)太少了,至今不算深交。不過(guò)不管怎么說(shuō),他也是帶我入行的“老司機(jī)”,比較遺憾的是進(jìn)入豆廠接近半年都還沒(méi)有機(jī)會(huì)與他共事。
如果今天豆廠慶祝生日是在飯桌上,而且還有酒,或許我還可以名正言順地敬他一杯,祝愿他回武漢之后有更好的前程。不過(guò)既然沒(méi)有這個(gè)機(jī)會(huì)的話,我便只能在文字中默默地歡送了。

此時(shí)我是否應(yīng)該期待著哪天到武漢一游,能夠如你所言吃上一碗代表著豆廠情誼的熱干面?
不知不覺(jué)間胡言亂語(yǔ)寫(xiě)了很多,也算是為了記下今天這個(gè)特殊的日子,最近發(fā)生的事情,以及自己在豆廠這幾個(gè)月以來(lái)的工作總結(jié)吧。即便寫(xiě)得不堪入目,但那也能說(shuō)得上是所思所想吧。
思來(lái)想去,應(yīng)該用五月天哪一首歌來(lái)結(jié)尾,或許可以用《脫胎換骨》
旅途之后是旅途
一生幾十億萬(wàn)步
活著就是要不斷脫胎換骨
末路一樣是出路
不把客棧當(dāng)歸宿
腳印全都是 身外物