最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

學(xué)歷差的人如何進(jìn)大廠,0基礎(chǔ)初中學(xué)歷進(jìn)入騰訊項(xiàng)目組的故事。

2022-01-08 19:36 作者:浪晉的測試小講堂  | 我要投稿

很多人來問過我,學(xué)歷很差能不能去大廠?

那么這個(gè)故事也許能給你啟發(fā),0基礎(chǔ)自學(xué)編程,初中學(xué)歷進(jìn)騰訊做開發(fā)。

難度相當(dāng)于:自學(xué)c#,lua,Unuty,3Dmax,PS,游戲特效,玩法和數(shù)值策劃。

關(guān)鍵是一個(gè)人就完成了QQ飛車的demo開發(fā),太強(qiáng)了!

沒有科班經(jīng)驗(yàn),走過許多人生彎路,直到二十多歲的年紀(jì)決定重新開始,自學(xué)游戲開發(fā)技術(shù),通過社招進(jìn)入天美,這是我們身邊同事阿升的故事。

來到天美前,阿升因?yàn)橄矚g《QQ飛車》,用了一年多時(shí)間,嘗試獨(dú)立開發(fā)一個(gè)移動(dòng)版本,遇到種種困難,用了“最土的方法”去克服。

后來在人生的低谷期,他寫了一篇回顧性的博客,因此被項(xiàng)目組發(fā)掘,得到了一次應(yīng)聘機(jī)會(huì)。

有人說他是自己見過“路子最野,學(xué)歷最低”的程序員,面對彎路,他的態(tài)度或許像企微簽名“瘋狂漂移中...”一樣,最終也殊途同歸。

如今,阿升加入了天美J1工作室,為熱衷的《QQ飛車手游》等項(xiàng)目提供技術(shù)支持,已有5年的司齡,也多次獲得了優(yōu)秀員工獎(jiǎng)項(xiàng)。

經(jīng)本人同意,我們轉(zhuǎn)載了他撰寫的博文,故事中有他犯過的錯(cuò)誤,遇到的貴人,與努力的改正,希望對大家有所幫助。

注:原文較長,內(nèi)容為可讀性略有調(diào)整。

我在安徽出生,但在貴陽長大,因?yàn)閭€(gè)人原因,沒有讀過很多書,倒不是家里條件完全不允許,父母被氣個(gè)半死拿我沒轍。

現(xiàn)在想起來,還是挺后悔的,多讀書能少走很多彎路,只是那會(huì)兒不懂這個(gè)道理。

無所事事了一段時(shí)間,跟家里關(guān)系也鬧得很僵,后來大吵了一架,索性一個(gè)人跑去青島找網(wǎng)友(男的,幸好不是壞人,好孩子也千萬不要學(xué))。

身上只有幾百塊,憋著一口氣不想回去啃老,也不想被親戚看不起,就做各種零工賺錢。

最難的時(shí)候幾天吃不起飯,一桶水都喝光了,起床的力氣都沒有。床頭柜上還有一星期前吃剩的餛飩湯,里面還有幾片餛飩皮,聞了一下都有味道了。

一咬牙,一口悶,這酸爽,夠味!撐到朋友接濟(jì)才挺了過來。

初涉編程,膨脹遇挫

我平時(shí)喜歡玩游戲,特別崇拜做游戲的人,感覺他們很牛,能把那么多好看的畫面放到屏幕上,你還能控制它們。

當(dāng)時(shí)我認(rèn)識(shí)一個(gè)游戲金團(tuán)的人,在他的介紹下給他們打工刷裝備,第一次知道了這些灰色產(chǎn)業(yè)。團(tuán)里有人在用插件,是一種輔助工具,我什么都不懂,但背后的原理讓我感到很好奇,覺得跟做游戲很像,電腦技術(shù)都很厲害!

我動(dòng)了學(xué)編程的念頭,以前好像怎么都讀不進(jìn)書,但可能興趣是最好的老師,忽然就開竅了。

我泡在各種貼吧論壇,在網(wǎng)上一個(gè)詞一個(gè)詞地查,學(xué)了點(diǎn)散裝的編程知識(shí),試著自己上手改良和開發(fā),只會(huì)用最笨最初級的辦法,較勁一定要弄出來,折騰久了居然稍微懂了。

金團(tuán)效率高了,給我多發(fā)了點(diǎn)錢。中間我回了趟家,給我媽買了一只口紅,給我爸買了一條中華,他們都很高興,不是因?yàn)橘I了東西,而是因?yàn)閮鹤踊貋砹恕?/p>

我覺得自己能掙錢了,變膨脹了,花錢大手大腳,還交友不慎。

灰產(chǎn)終究是灰產(chǎn),每個(gè)人都很急功近利,因?yàn)檎l也不知道下一秒就會(huì)發(fā)生什么。一連串的變故很快發(fā)生,金團(tuán)倒了,錢也沒了,跟曾經(jīng)信任的“朋友”打了一架,徹底撕破臉。

現(xiàn)在回過頭看,其實(shí)也是好事,讓我從歧途中走了出來,而不是繼續(xù)錯(cuò)下去。

但在那一年,似乎我擁有的一切都消失了...... 我又陷入了一事無成的迷茫。

舞房的朋友接納了我,讓我住在舞房,跟他們吃住一起,有小課叫我代代課,一節(jié)課下來給我一百來塊錢。

那陣子渾渾噩噩的,沒課的時(shí)候就把頭悶被窩里睡一天,電腦也不會(huì)去打開,晚上沒事就跟朋友去酒吧喝酒。

一個(gè)月下來,我在蘇州的朋友過來玩,看見我說感覺我變了一個(gè)人,都不敢認(rèn)我,外觀也變化太大。很邋遢,面色蠟黃,胡子拉碴的,頭發(fā)沒有洗,亂七八糟的。

過年回了趟家,不知道為什么,過完年我又回來了,繼續(xù)住在舞房,繼續(xù)墮落。潛意識(shí)是在躲避著什么,一直走不出來。

重新出發(fā),野路學(xué)習(xí)

朋友介紹我去大學(xué)教大學(xué)生跳舞,認(rèn)識(shí)了一群不錯(cuò)的小伙子,練舞肯吃苦,想法也沒有社會(huì)上的人那么復(fù)雜。

我開始喜歡和他們混在一起,其實(shí)我年齡跟他們一樣大,有些人比我還大。喜歡跟他們在一起我想不是因?yàn)槟挲g的原因,是因?yàn)樗麄冴柟?,熱情?/p>

我長得顯老,他們以為我比他們大,都叫我升哥。跟他們在一起半年,我走出來了,看開了,之前的事都過去了,在新的一年,我會(huì)重新來過。

我終于又重新打開電腦了。

我把以前的一切都刪了。嫌麻煩,干脆直接重新裝個(gè)系統(tǒng),全盤格式化。我想做游戲,我的初心是做游戲啊!為什么我現(xiàn)在才醒悟過來,真是當(dāng)局者迷。

我以前有個(gè)志同道合的朋友,后來當(dāng).NET程序員了。

聽他說投騰訊簡歷直接被扔了!原因是要么學(xué)歷不夠,要么不需要.NET程序員。

這小子不知道哪兒來的自信,其實(shí)我猜測他被拒的原因是這最致命的三點(diǎn):看臉!看臉!看臉!

我下定決定要學(xué)習(xí)做游戲了,找到他的QQ。

我:我想做游戲,我應(yīng)該從哪方面入手?

他:C#、Unity。

我那.NET程序員朋友在下文中我就用RRQ表示他的名字。

上面提到我猜測他面試失敗的原因,他表示十分不服氣。(那好,咱們就不提臉的事!咱們聊聊體重!哈哈哈~)

我們的相處風(fēng)格就是這樣,見面就是互損,即使很長時(shí)間不聯(lián)系也不陌生。

看到被黑了,他頂多會(huì)立馬QQ上"威脅"我,讓我給他發(fā)紅包,不然這事跟我沒完。

RRQ就是這樣人,人特別好,很有大神風(fēng)范!每當(dāng)我們誰寫出幾句酷炫代碼或者酷炫功能的時(shí)候,我們就會(huì)找到對方,問對方這個(gè)牛不牛,能打多少分。

我學(xué)習(xí)C#他沒少幫助我!他是我的好基友,也是引導(dǎo)我走向正路的師傅。就像我快餓死的時(shí)候接濟(jì)我的人一樣,我把他也當(dāng)成我的貴人。

當(dāng)務(wù)之急就是學(xué)習(xí)游戲編程。我下載了最新版本的VS和Unity,還不急著直接學(xué)Unity,從頭在老老實(shí)實(shí)學(xué)一遍C#(說是老老實(shí)實(shí)學(xué)一遍,其實(shí)我也只是大概看了下 - -)。

看著滿屏幕的英文就頭大!天啊,我英文那么差,這讓我如何是好?

英文差沒法寫代碼嗎?肯定不是啊,后來我才發(fā)現(xiàn),只要會(huì)了基本語法,其他都小意思。

取個(gè)變量名或方法名的時(shí)候,寫拼音也太戳了,不夠逼格!去網(wǎng)上翻譯一下,再copy過來用。每次取名字就得在網(wǎng)頁里面翻譯,好麻煩,我干脆調(diào)用網(wǎng)頁翻譯API寫了一個(gè)小翻譯器。

看別人代碼的時(shí)候,幾乎都是駱駝命名法,直接復(fù)制過來翻譯器無法識(shí)別進(jìn)行翻譯,所以我還加了一個(gè)小功能,自動(dòng)分割大寫字母,這樣的話,只要英文沒有縮寫,幾乎都是可以成功翻譯的,大大提高了翻譯效率。

我也是沒辦法,做了這么個(gè)翻譯器,笨人得給自己想出補(bǔ)自己缺陷的方法來,不然真的就會(huì)一直笨下去了。

網(wǎng)上說直接學(xué)Unity,可以一邊做一邊學(xué),我也感覺自己C#應(yīng)該算是入門了,那就直接上Unity吧。

在自學(xué)網(wǎng)站找到了一個(gè)教Unity的視頻,但是上了幾節(jié)課以后發(fā)現(xiàn)老師的代碼跟上節(jié)課的代碼不一樣,這尼瑪太坑了。繼續(xù)往下看,發(fā)現(xiàn)老師他自己似乎都不怎么會(huì)Unity,代碼寫錯(cuò)了都不知道哪兒錯(cuò)了,然后直接跳到下一節(jié)課??!

干脆不看視頻了,按照自己的想法來,想做什么游戲,需要哪些功能,怎么實(shí)現(xiàn),全部都去網(wǎng)上查,需要什么查什么。

當(dāng)時(shí)有個(gè)小游戲很火:《鋼琴塊兒》??雌饋砗孟裢唵蔚模蔷驮囍约鹤鲆粋€(gè)吧!

我的一個(gè)鋼琴塊就是一個(gè)cube,排了幾百個(gè)cube,看著好惡心,有時(shí)候想改變其中一個(gè)cube的坐標(biāo),其它塊也得重新改一遍。我得用代碼去自動(dòng)生成這寫鋼琴塊才行!研究了一個(gè)星期,我把cube做成預(yù)制件,for循環(huán)隨機(jī)生成了指定的黑塊和白塊,完美!就是這效果!

按耐不住興奮,恨不得馬上給RRQ玩到我的第一個(gè)簡陋的游戲。但是我又犯難了,不會(huì)發(fā)布成apk。繼續(xù)百度,發(fā)現(xiàn)好麻煩,要裝sdk,下載下來以后,unity又提示版本不對啥的,換了一個(gè),打包中途又報(bào)錯(cuò)。

繼續(xù)換版本,來來回回折騰了一個(gè)通宵,終于打出了屬于我自己的第一個(gè)apk包,別提多激動(dòng)了!插上數(shù)據(jù)線連上手機(jī)安裝了apk,看著在手機(jī)屏幕上出現(xiàn)unity logo的時(shí)候,我激動(dòng)得發(fā)抖,我也可以做游戲了!

探索飛車,困難重重

做出來了第一個(gè)簡陋的游戲,我并沒有想著去完善它。

我特別喜歡玩《QQ飛車》,從08年就開始就一直在玩。當(dāng)時(shí)iPhone上有個(gè)韓文的單機(jī)版跑跑卡丁車,特別有PC端的感覺。但是我又那么喜歡玩QQ飛車,看著QQ飛車說自己同時(shí)在線幾百萬人,也出來那么多年了,就是沒有出手機(jī)版。

官方不做,我自己做!我想自己做一個(gè)《手機(jī)版QQ飛車》,讓和我一樣期待飛車手機(jī)版的小伙伴們都能玩到這款游戲。

我把想法告訴了RRQ,他很支持我,跟我說在做的過程中遇到問題解決問題,等你做出來了,你會(huì)發(fā)現(xiàn)你會(huì)很多東西了。

他不會(huì)unity,我想他C#那么厲害,C#這樣學(xué)肯定沒問題,unity這樣學(xué)應(yīng)該也行,那就開干。

想做QQ飛車,那得有QQ飛車的人物模型、賽車模型、地圖模型、貼圖、動(dòng)畫,如果要做界面,還需要得到UI資源。當(dāng)然,如果能得到代碼更好,就算看不懂,注釋還可以參考一下嘛。

QQ飛車早在08年~10年這兩年的所有版本安裝包,有個(gè)漏洞。

使用游戲升級補(bǔ)丁,新建res、data兩個(gè)空文件夾,在把res.vfs、data.vfs和幾個(gè)配置文件復(fù)制到空文件夾同目錄下。改一下配置文件中的版本號,選擇這兩個(gè)文件夾所在的父目錄進(jìn)行補(bǔ)丁安裝,vfs數(shù)據(jù)包就會(huì)完完整整的釋放到新建的兩個(gè)空文件夾中。

當(dāng)時(shí)釋放出來后可以直接看到lua代碼,現(xiàn)在lua釋放出來都轉(zhuǎn)換成機(jī)器碼了,只有小部分能反編譯回來,沒多大用處。

我雖然釋放出所有資源了,但是我無法使用資源,僅僅能看到lua的代碼注釋 ......

還是那句老話,既然游戲自己都能用,那說明還是有方法讓我自己也能使用的,只是我不知道而已。

我又花費(fèi)了三個(gè)月時(shí)間研究如何讓我自己能使用這些模型。nif是模型文件,那我用3DMAX應(yīng)該就可以打開吧,那玩意不是專門做模型的嘛。

下載安裝完成又發(fā)現(xiàn)無法識(shí)別nif文件!懵了。

網(wǎng)上搜了一下,原來有現(xiàn)成的工具打開這種格式,支持預(yù)覽和導(dǎo)出obj。

導(dǎo)出obj我拿來干啥,我還需要?jiǎng)幼靼?!這下不好找了,網(wǎng)上都翻爛了就是沒有,然后去谷歌搜。找了好久看到曙光了,有個(gè)nif 3DMax2012插件,有點(diǎn)小激動(dòng),安裝完成后再次導(dǎo)入nif,成功了居然。

但是模型還是沒有動(dòng)作呀??!動(dòng)作去哪兒了??!我看到nif同級目錄下有很多.kf文件,看命名挺像動(dòng)畫文件的。

小手一抖,把kf文件拖到3DMax界面里,哎喲喂,人物會(huì)動(dòng)了。導(dǎo)出成fbx,拖到unity里面等著看效果。尼瑪,怎么不會(huì)動(dòng)呢?在3DMax里面還好好的。我以為是我導(dǎo)出有問題,又重新導(dǎo)了一遍,還是老樣子。

那是不是unity要設(shè)置什么呢?查了一下,還真是。

按照教程操作了一遍,歐耶,我的人物在unity里面動(dòng)起來了。動(dòng)是動(dòng)起來了,但是這人物怎么感覺像是抽風(fēng)了一樣,一點(diǎn)不自然,在3DMax里面也不自然。

加了一個(gè)3DMax的群詢問大神們,得到的回復(fù)是有可能編輯器不一樣,導(dǎo)致動(dòng)畫丟幀。

看樣子只能自己調(diào)了!我又去找教程學(xué)習(xí)如果調(diào)3DMax動(dòng)畫......

三個(gè)月時(shí)間就研究這些東西了。

我一直覺得笨鳥就要多飛,不要怕失敗,我會(huì)想“先試一百次再說,不行就算了”。往往你會(huì)發(fā)現(xiàn)其實(shí)不需要那么久,就已經(jīng)能摸索出一些經(jīng)驗(yàn)。

拿了兩張地圖《老街管道》《休閑區(qū)城鎮(zhèn)》、一輛賽車?yán)字Z、一個(gè)男孩帶動(dòng)畫的模型。

我先做的休閑區(qū),第一步目標(biāo)是人物可以在休閑區(qū)里面移動(dòng)就行了。

網(wǎng)上看別人代碼怎么寫的,參考后用CharacterController完成了控制人物移動(dòng)。

目前是鍵盤控制人物移動(dòng),手機(jī)哪有鍵盤啊!官方QQ飛車可以用鼠標(biāo)點(diǎn)擊地面移動(dòng)人物,那我也可以點(diǎn)擊地面移動(dòng)人物啊。

又研究到了尋路,發(fā)現(xiàn)unity自帶了尋路:Navigation。

查了資料發(fā)現(xiàn)使用起來非常簡單,很快,我就做出來我點(diǎn)擊地面,人物就自動(dòng)移動(dòng)到我點(diǎn)擊的位置。

現(xiàn)在又得加一個(gè)點(diǎn)擊座位,人物會(huì)自動(dòng)跑過去坐著。這和點(diǎn)擊尋路其實(shí)有些沖突,在手機(jī)上操作很不方便,屏幕太小,本來你是要走過去就行了,不小心碰到椅子就坐上去了。于是我把點(diǎn)擊地面尋路改成了搖桿控制移動(dòng),又學(xué)習(xí)到了一款插件:EasyTouch。

哦了,休閑區(qū)就算大功告成了!這第一步我沒日沒夜的做了一個(gè)月才做滿意,不感覺累。

2014年11月,在改成搖桿控制移動(dòng)時(shí),也嘗試了一下用 NavMeshAgent 尋路畫線的效果 圖源:阿升

第一步做完了,可是一點(diǎn)游戲的樣子沒有,我得做游戲界面,這樣子看起來有逼格些。

界面素材的文件后綴名是.gsa,這種格式我關(guān)注了一年多,但一直沒有解開。

得不到界面素材,我就去游戲里面截圖,然后自己PS。

游戲中控件和控件的層級關(guān)系很復(fù)雜,我壓根就沒法正常截圖!我試著做了一個(gè)叫SuperGUI的工具,可以通過內(nèi)存隨意操作游戲中的UI大小、位置、顯示或隱藏。

我稍微修改了一下SuperGUI的代碼,把我想截圖的UI移動(dòng)到白色底板的區(qū)域,然后再截圖,完美!

自己其實(shí)不會(huì)PS,修圖什么的又得學(xué)......

界面素材已搞定,現(xiàn)在就差怎么用到unity里,于是我又學(xué)會(huì)了使用一款unity插件:NGUI。

我這人有強(qiáng)迫癥,一定要盡量把UI都布局得很好看很合理?;ㄙM(fèi)一個(gè)星期左右的時(shí)間完成了登錄界面、主界面、休閑區(qū)界面。

那時(shí)候還不知道xml和json這種東西,我想做背包,物品描述信息這些東西我要存起來才行,如果都寫在代碼里面那太蛋疼了。

于是我又學(xué)會(huì)了使用一款小巧的數(shù)據(jù)庫:SQLite。我把物品信息數(shù)據(jù)全部存到了數(shù)據(jù)庫里,感覺清爽多了。

做背包需要物品icon,咋辦!我想到了用SuperGUI去截圖,但是有很多絕版賽車商城里面沒有,我也就沒法截圖。

我發(fā)現(xiàn)QQ飛車每個(gè)星期都會(huì)更新任務(wù),每次更新的時(shí)候本地游戲文件夾中有幾個(gè)在資源包外的未加密lua文件會(huì)變化,于是我就打開這些lual研究。

原來他把任務(wù)描述信息寫到了lua里面,還有任務(wù)圖標(biāo)的本地資源路徑呢。

那我如果改了這個(gè)任務(wù)圖標(biāo)的資源路徑,是不是任務(wù)圖標(biāo)就會(huì)變成我指定路徑的圖標(biāo)?試了一下,果然行得通!但是每改一下必須重新登錄游戲才能生效。

我寫了一個(gè)自動(dòng)修改任務(wù)描述lua里的資源路徑工具,并且修改完成后自動(dòng)登錄游戲,自動(dòng)截取資源圖標(biāo)保存到指定文件夾中。

就這樣不停的登錄退出,我筆記本掛機(jī)掛了三天三夜,沒停過。我得到了三萬多個(gè)物品圖標(biāo)。現(xiàn)在想想我真是個(gè)瘋子,這么low的方法都能想得出來!不過應(yīng)了我微信的個(gè)性簽名:“有時(shí)最土的方法是最有效的”。

如果我當(dāng)時(shí)我不那樣去做,我就沒法得到我想要的圖標(biāo)。整整三萬個(gè)圖標(biāo),我需要逐個(gè)在PS中裁剪、休整。太麻煩了,還好PS有個(gè)記錄操作的功能,全自動(dòng)完成了休整三萬個(gè)圖標(biāo)這艱巨的任務(wù)。

圖標(biāo)有了,準(zhǔn)備做背包,可是又犯難了!

我切換的裝備下次我進(jìn)入游戲應(yīng)該還在才對,我服務(wù)器都沒有,怎么記錄?對!我要寫個(gè)服務(wù)器才行。

自己不懂真正服務(wù)器,只能找人求救。

C#服務(wù)器RRQ教我弄了SQLServer、教我三層架構(gòu)......

有一次他遠(yuǎn)程我電腦操作給我看,他操作了差不多一個(gè)小時(shí),我經(jīng)常熬夜做這個(gè)游戲,太累,中途我不小心睡著了。

QQ連續(xù)響了好幾聲給我吵醒了,原來是他在一直發(fā)消息:“你丫是不是睡著了”、“看懂了嗎?”、“說話啊!”

這個(gè)我記得最清楚。他氣死了,我說我沒看到,他說沒看到活該!哈哈哈,我這不是太困了嗎!當(dāng)時(shí)他挺生氣,后來還是又教我一遍怎么弄的。搞了一段時(shí)間,飛車可以登錄游戲、注冊游戲信息、同步個(gè)人信息、記錄背包信息之類的。

不知道是誰跟我說的,你這游戲又不能玩,那能叫游戲嗎?我想想說得也對。所以服務(wù)器暫停了開發(fā)。

我開始做核心玩法,做競速賽。

核心玩法談何容易,網(wǎng)上雖然說有很多賽車的例子,但是沒有一個(gè)是能很容易操作的。

我學(xué)習(xí)WheelCollider,自己寫賽車移動(dòng)!網(wǎng)上的代碼一大堆,做出來的效果卻差得要命。研究了一個(gè)月,我只做出了基本的前后左右移動(dòng),賽車漂移太難做了,始終做不出來。做不出來不強(qiáng)求,那就緩緩,過段時(shí)間再做。

2014年,第一次做出了看似“漂移”的效果,但其實(shí)無法操作,只能暫緩開發(fā) 圖源:阿升

QQ飛車?yán)锩尜愜囎矇罂梢园碦鍵復(fù)位到賽道中間,我分析了他的思路。自己花一個(gè)星期時(shí)間寫了一個(gè)CarWayPoints插件。

做完插件正休息呢,打開飛車的配置文件看看,每個(gè)地圖都有一個(gè)Map.txt,里面存的數(shù)據(jù)我一直不知道是干嘛的。我用自己寫的CarWayPoints插件原理去嘗試?yán)斫膺@些數(shù)字到底是代表什么意思。

沒想到真的還被我分析出來了!我寫了一個(gè)工具,自動(dòng)轉(zhuǎn)換這些數(shù)字,為我CarWayPoints插件使用的data文件,完美運(yùn)用!

看看時(shí)間,時(shí)間過得好快,馬上快過年了!今年一年我沒賺到錢,僅僅是夠生活而已。

雖然學(xué)unity才半年時(shí)間,但我鼓起勇氣在網(wǎng)上投簡歷去找工作。

確定上班時(shí)間是年后,正好拿這個(gè)當(dāng)借口,我打電話回家告訴父母我找到工作了,先讓他們高興高興。然后我接著又說,我過年不回家了,因?yàn)槟旰缶鸵习?,我怕我來不及?/p>

當(dāng)時(shí)我心里很難受,他們知道這個(gè)消息后也不舒服,可誰讓我這么沒本事呢,這一年僅憑教跳舞賺的錢太少了,讓我省吃儉用過日子,哪還有臉回家。

雖然我知道父母不要求我什么,能回去他們就滿足了,可是我就是這么好強(qiáng)的一個(gè)人,對誰都這樣。

過年我啥也沒買,就買了幾包煙過年。街上一個(gè)人都沒有了,賣煎餅的小販也回家過年了。年前也沒有去買菜,我知道過年那幾天菜很貴,我也知道到上海后租房吃飯是大問題,所以只買了瓶老干媽回來。

沒菜,煮點(diǎn)白米飯,吃著老干媽,寫了CarWaypoints插件的說明文檔,發(fā)布到博客上,當(dāng)時(shí)過年還是有挺多人看博客的,但寫博客的人很少。

我的那篇文章成了一個(gè)星期內(nèi)閱讀量最多的文章。年就這樣過去了。

2015年2月,CarWayPoints的部分截圖 圖源:阿升

前往上海,踏入職場

過完年 ,我拖著行李來到了一線大城市——上海。

記得第一次來上海面試的時(shí)候,不會(huì)做地鐵,不知道怎么買票,站旁邊看了好幾個(gè)人買票自己才上去試一下,坐地鐵還坐過站了。出站的時(shí)候我看見別人都是在上面刷一下就出去了,我也跟著在后面刷,可是我怎么刷,我都走不出去。排在我后面的人看見了跟我說要把卡片插進(jìn)去才可以!后來才知道人家那用的是公交卡,跟我手里的卡不一樣。

小時(shí)候,電視上說什么上海灘、大上海,還有夜上海那首歌,給我的印象是上海很大,都是有錢人的地方。

十幾歲的時(shí)候,追過一個(gè)女孩,那女孩的爸爸好像在上海工作當(dāng)老板,她放暑假寒假也會(huì)去上海上補(bǔ)習(xí)班,經(jīng)常去星巴克。沒有追到她,但是我心里一直都是有陰影的,感覺自己配不上人家。她家里那么有錢,人又漂亮,在上海呆過見過大世面,星巴克我從來沒有進(jìn)去過,我當(dāng)時(shí)都不知道里面到底是賣什么東西的,只知道里面一杯飲料就好幾十塊錢。

上海從小到大給我的感覺就是可望不可即!可是今天,我也來上海了,來實(shí)現(xiàn)我的游戲夢!

當(dāng)時(shí)來面試的時(shí)候公司在一個(gè)大廠房里面,新公司在裝修,臨時(shí)在大廠房工作。

去上班的那天,新公司裝修好了!哇,好大,裝修好漂亮!

前臺(tái)領(lǐng)我坐到了我的位置上,我正式入職了!

剛進(jìn)公司什么SVN、RTX、禪道啥都不知道,還好有個(gè)胖胖的程序員幫我,他人很好,剛進(jìn)公司就跟他最熟了。

下班時(shí)間到了,大家都逐漸離開了公司。胖胖的程序員問:“你還不走想加班啊?!”

我心想我哪有地方去啊,身上就只有幾百塊錢。我說這不是等你一起走嗎?

離開公司后,我搜索了附近的青年旅社,看了幾家,要么是太遠(yuǎn),要么是人滿了。后來在上海南站附近找了一家青年旅社,一晚上好像是30塊錢。

在青年旅社住了幾天,我發(fā)現(xiàn)這樣下去還撐不到發(fā)工資我就沒錢吃飯了。

晚上下班等大家都走了,我悄悄問胖胖的程序員能不能睡在公司,他說如果你愿意大冷天的睡公司沒問題啊。

他以為我是開玩笑的,沒想到我真睡了。

我把公司休閑區(qū)的沙發(fā)搬到空調(diào)底下,對著空調(diào)吹暖和一些,可是還是冷得不行,一晚上凍醒四五次,根本睡不好。我想只要熬過這第一個(gè)月就好了!

攝于2015年2月,無處可去的自己決定在當(dāng)時(shí)的公司睡覺 圖源:阿升

我半個(gè)月沒洗澡,頭發(fā)都油成了一坨,身上也一股味道,還好大家嘴巴上都沒有嫌棄我。

我把剩下的錢一咬牙,找了一家最便宜的能洗澡的賓館,300塊錢,住了一晚上,把臟襪子洗了,然后洗了個(gè)澡!這是我半個(gè)月以來睡得最舒服的一次。

錢花光了,沒錢吃飯咯!如果加班的話,公司是免費(fèi)提供晚餐的,所以我晚上待到很晚,這樣一天就有一頓飯吃。

熬過一個(gè)月,工資到手,好像是3800多點(diǎn)。心里很高興,畢竟是自己人生的第一份正式工作。

這時(shí)候項(xiàng)目總監(jiān)跟我說現(xiàn)在要去深圳封閉開發(fā)三個(gè)月,包吃住,讓我也去。我別提多高興了,有吃的,還免費(fèi)住,多好的事啊,果斷簽字同意了。

我們公司是跟深圳一家大公司合作,是在南山科技園。

到了深圳,我站在公司陽臺(tái)上,看到了騰訊大廈,老激動(dòng)了!

攝于2015年3月 隨公司封閉開發(fā)來到深圳,在陽臺(tái)拍下夜色中的騰訊大廈 圖源:阿升

下了班,我和主程特地跑過去近距離的在門口轉(zhuǎn)悠了一會(huì)兒。

我:“如果有一天我也能進(jìn)騰訊多好?!?/p>

主程:“唉,騰訊學(xué)歷要求很嚴(yán)格的?!?/p>

這家公司真的特別大,有一次聽同事說這公司有好幾個(gè)陽臺(tái),另外一個(gè)陽臺(tái)有健身器材。我想過去瞅瞅,結(jié)果在公司迷路了......

他們公司每個(gè)星期五下午會(huì)有點(diǎn)心,有時(shí)候是蛋糕,有時(shí)候是水果。他們公司的員工感覺就像是吃膩了一樣,一點(diǎn)反應(yīng)都沒有......我們團(tuán)隊(duì)的人老激動(dòng)了,每個(gè)人都拿了好幾盒,哈哈!

我們每天八點(diǎn)半起床走路半個(gè)多小時(shí)到公司,來得早的話還有早餐吃,來得晚的話啥也沒有了。

晚上正常下班,但我們程序一般會(huì)更晚,我和主程還有技術(shù)總監(jiān)總是最晚的三個(gè),回去的路上大家一起討論今天的技術(shù)難點(diǎn),哪些地方?jīng)]有實(shí)現(xiàn),有什么好的思路,很累,但很充實(shí)。

攝于2015年4月,和主程斌哥(左)與技術(shù)總監(jiān)老蒙(右)回宿舍的路上 圖源:阿升

在深圳我就一直改bug,擴(kuò)展原有的小的新功能,跟主程一起維護(hù)戰(zhàn)斗系統(tǒng)。我的進(jìn)步很快,不過我很滿足,因?yàn)槌宰〔挥贸睢?/p>

結(jié)果在深圳封閉開發(fā)了兩個(gè)月我們就回上海了,原因不太好講。

回上海后我們在深圳辛辛苦苦開發(fā)了兩個(gè)月的新玩法被老板直接停掉了。唉......

在深圳兩個(gè)月存了些錢,足夠租房子的,我跟執(zhí)行策劃和專門做UI的程序員三個(gè)人合租了一套房子。

攝于封閉開發(fā)期間,附近應(yīng)該是當(dāng)時(shí)剛開始建地基的科興D棟 圖源:阿升

我這一間估計(jì)有不到十平米,一張床,一個(gè)電腦桌,一個(gè)衣柜就塞滿了,1600一個(gè)月。上海的房子真貴,貴的嚇人......

公司開始慢慢愿意讓我做一些功能了,我上班一年,做了7、8個(gè)系統(tǒng)功能,自己感覺還是收獲挺多的。

其中有個(gè)功能,因?yàn)楫?dāng)時(shí)上面急著要這個(gè)新功能,我預(yù)估時(shí)間需要半個(gè)月,最快也得十天,項(xiàng)目總監(jiān)說如果你能一個(gè)星期做完,我獎(jiǎng)勵(lì)你一個(gè)機(jī)械鍵盤,說到做到。

然后我每天爆肝,把功能在一個(gè)星期內(nèi)做完了,鍵盤真的到手了!正高興呢,不知道誰說了一句這鍵盤僅僅是使用權(quán)!使用權(quán)!使用權(quán)!臥槽。

不過后來想了想無所謂,一個(gè)鍵盤700塊,我買得起!能夠趕在一個(gè)星期之內(nèi)能做完,說明我如果想做,還是可以做到的,對自己也是一種鍛煉。

攝于2015年8月,公司獎(jiǎng)勵(lì)的機(jī)械鍵盤(使用權(quán)!) 圖源:阿升

我經(jīng)常留得很晚,每天晚上就基本只剩我和技術(shù)總監(jiān)兩個(gè)人。因?yàn)樽约禾苛?,東西安排的也多,時(shí)間也很緊張,所以沒辦法每天都要工作到那么晚。但很晚也有好處,可以跟項(xiàng)目總監(jiān)交流學(xué)習(xí)。

每當(dāng)我寫代碼寫累了或者感覺他寫代碼寫累了,我就會(huì)主動(dòng)去喊他透透氣,順便聊天問一些自己不懂的地方。

他人很好,很耐心地解釋給我聽,教我原理!他好像什么都懂,問他什么都知道。那肯定了,不然人家咋能當(dāng)技術(shù)總監(jiān)呢。

下半年我熟悉了這個(gè)游戲,做東西也慢慢快了起來!但是我還是很晚才回去,到家了也繼續(xù)研究我的飛車。

有次在網(wǎng)上瞎逛,看到一個(gè)QQ飛車道具城,網(wǎng)頁里有好多飛車?yán)锩娴牡谰?,可以直接購買。

我看到那么多道具圖標(biāo),心想我遍歷一下,那豈不是所有道具圖標(biāo)我都能得到了嗎!正好gsa文件我解不開,干脆從網(wǎng)頁里直接獲取。于是寫了一個(gè)小程序,通過道具地址+道具ID把所有道具圖片資源都遍歷下載了下來。

哈哈,踏破鐵鞋無覓處,得來全不費(fèi)工夫。

好事接二連三的發(fā)生,我在網(wǎng)上看到一坨代碼,看起來像是解析某個(gè)圖像的。我研究了一下,他解析的圖像跟gsa文件的結(jié)構(gòu)特別像!我又激動(dòng)了。

那些代碼我不知道是用什么語言寫的,但是我能看懂,我就把那些代碼翻譯成了C#代碼。好多API不一樣,一百來句代碼我翻譯成C#搞了好幾個(gè)小時(shí),終于能跑通了。

把gsa文件讀入進(jìn)來解析試試!臥槽!成功了居然,居然把gsa文件給解析出來了。但是有色差,應(yīng)該是代碼寫錯(cuò)了,找到問題所在,修復(fù)了這個(gè)bug,成功寫出gsa解析器。我發(fā)現(xiàn)一個(gè)一個(gè)手動(dòng)解析速度太慢,干脆遞歸遍歷所有g(shù)sa,全部自動(dòng)解析得了。

就這樣,我從網(wǎng)頁上的一坨代碼翻譯成C#,做了一個(gè)gsa解析器,得到了飛車?yán)锼懈咔鍒D片資源。

資源是拿到了,可是現(xiàn)在暫時(shí)不用,我現(xiàn)在是全心全意的在研究賽車漂移呢。以前我一直在研究WheelCollider,想用他做出飛車那樣的效果,可是發(fā)現(xiàn)這個(gè)組件真的很蛋疼。

很多東西我想改,但是不能改,因?yàn)槲覜]代碼啊。

干脆一不做二不休,我放棄了WheelCollider,直接操作剛體,使用addforce模擬動(dòng)力。

輪胎懸掛全部都是模擬出來的假象,正像飛車那樣,真實(shí)的賽車哪有那樣的物理效果啊?都是模擬出來的假象。

漂移也很輕松的做出來了感覺,但是離我想要的漂移還差得有些距離,不過沒關(guān)系,我相信我肯定可以做出來,只是時(shí)間問題而已。

攝于2016年,自己開發(fā)中的《飛車》 圖源:阿升

裸辭離開,偶遇契機(jī)

匆匆忙忙又是一年,春節(jié)后回公司我就立即提交了離職申請,我不知道我當(dāng)時(shí)為什么會(huì)這么急,只知道心里很亂、很煩。

憋了一段時(shí)間后跟朋友提起這件事,朋友說我還是太年輕、太浮躁!或許吧!我也不知道。

這是我的第一份正經(jīng)工作,從進(jìn)入公司的那天起,心里別提多高興了,我終于也可以做游戲了,這對于我來說,真的好不容易。

離開公司有多方面原因的,我最大的不舍就是技術(shù)總監(jiān)老蒙和嘻嘻哈哈的團(tuán)隊(duì)。雖然跟策劃撕逼,但是大家也是為了讓游戲更好,私下都相處得不錯(cuò)的。

技術(shù)總監(jiān)老蒙幫助了我很多,從他身上我學(xué)到的不僅有技術(shù),還有對待事情的態(tài)度。

那天請吃離別飯,團(tuán)隊(duì)的二十多個(gè)人都到了,美術(shù)不熟,沒叫。大家一起開開心心地吃飯。

那天老蒙主動(dòng)開了瓶啤酒,我很驚訝,老蒙從來沒見過他喝酒的。平時(shí)工作累,身體太虛了,我喝了兩瓶酒下肚,有點(diǎn)暈暈的。以前一個(gè)人能喝一箱,和以前比起來感覺差多了。

我讓老蒙旁邊的程序坐到了我的位置上,跟老蒙聊著天。

說著說著我不知道咋的就哭了,哭得話都說不清楚了。老蒙幫我真的太多,我沒有什么能感謝他的,也只能希望在今后的路上自己更加努力,別讓他失望。

我交接工作文檔寫好的時(shí)候發(fā)給他,讓他驗(yàn)收,他這才知道我要離職。我一直沒勇氣跟他說我要離職,我不知道怎么開口。

他QQ收到了我的文檔,過了好久,他才回復(fù)我:“你真的忍心拋下我們就這樣走了嗎?雖然說人各有志,但是我自私點(diǎn),我還是希望你能留下來?!?/p>

看到這句話,我心里更不是滋味!

老蒙,你就當(dāng)是我年少輕狂不懂事吧,對不起,做出這個(gè)讓大家都難過的決定。如果有機(jī)會(huì),我們以后再一起共事。

裸辭后發(fā)現(xiàn)工作現(xiàn)在真的好難找!好多公司都倒閉了,市面上U3D程序一抓一大把。

投了好多家簡歷,看見招人我就投,大多數(shù)都是投出去就沒消息了。

后來有一家公司愿意要我,叫我去面試。

他聽了我的介紹,說我是他見過路子最野的程序員,也是他見過的學(xué)歷最低的程序員。聽到這里,我以為又沒戲了,可是他要我了,他表示他看好我,想試一試。

好吧,既然這么看好我,那我也盡全力,爭取不讓看好我的人失望。

在決定錄用前,項(xiàng)目總監(jiān)告訴我他們開了一個(gè)十年項(xiàng)目經(jīng)驗(yàn)的程序員,還有個(gè)大廠出來的也被開了。

我瞬間亞歷山大,心想那么叼的人都被開,我這才一年工作經(jīng)驗(yàn),能勝任嗎?

我怕我把他們坑了,所以我告訴他,距離我入職還有十天時(shí)間,這十天我會(huì)做一個(gè)demo,如果達(dá)不到你們想要的效果,我就不入職了。

他說不用給自己這么大壓力的!可我是認(rèn)真的。

我花了三天時(shí)間做了一個(gè)demo,錄制了視頻發(fā)過去,他表示還不錯(cuò),比之前的人做得好。

得到認(rèn)可,我心里總算舒緩一些了。

做之前我心里也沒底,甚至不知道自己能不能做出來?;蛟S我只是用心盡全力去做了,技術(shù)跟他們相比我還差得太遠(yuǎn)太遠(yuǎn)。

用心盡全力去做游戲,不能讓看好我的人失望,不能讓自己失望,僅此而已。

這家公司到底能不能讓我留下來,我不知道。在這種不確定的情緒里,我產(chǎn)生了個(gè)念頭,開始在博客上寫這篇文,回顧下這些年都經(jīng)歷了什么。

不是我傲嬌,只是很多時(shí)候我不甘于現(xiàn)狀想往上爬,因?yàn)闆]有退路,掉下去就可能再也爬不上來了。

等我哪天落魄了或者牛逼了,回頭看看,或許才知道我年輕時(shí)的決定到底是對還是錯(cuò)。

幸運(yùn)的是,這家公司最后還是要了我,總共三個(gè)程序員,只有我有過賽車游戲的經(jīng)驗(yàn),負(fù)責(zé)開發(fā)賽車控制和玩法部分。

工作還是很忙,但我已經(jīng)習(xí)慣了這種節(jié)奏,只是有時(shí)感到比以前孤獨(dú),下班回到家就繼續(xù)研究自己的游戲。

有天凌晨,一個(gè)人突然加了我的QQ,聯(lián)系我,說他是騰訊的。

我心里一驚,覺得這肯定是個(gè)騙子,他又說了些事我才勉強(qiáng)相信,結(jié)果下一句又讓我懷疑起來。

他說《QQ飛車》項(xiàng)目組看到了你的博客,大家對你的經(jīng)歷很感興趣,有沒有空來深圳聊聊?

我心想這該不會(huì)是要誆我過去,然后當(dāng)場抓起來吧。畢竟我拿到的一些游戲資源,其實(shí)是反編譯的,說不準(zhǔn)會(huì)告我侵權(quán),心里挺害怕的。

但冷靜之后想一想,我一沒靠這東西盈利,二又窮得叮當(dāng)響,想騙我也騙不到錢,能有什么損失?

后面就買了機(jī)票,背著電腦來到深圳,好像又回到了跟著主程在深圳封閉開發(fā),特地跑去騰訊大門口轉(zhuǎn)悠的時(shí)候。

打包前往深圳的前一天 圖源:阿升

來了之后發(fā)現(xiàn)沒有騙我,也沒有想象中的三堂會(huì)審,而是喊了超多人一起去吃飯,場面很壯觀,對我態(tài)度也很親切。作為一個(gè)《QQ飛車》的老玩家,我真是受寵若驚,后來才知道里面有那么多大佬。

吃完飯他們帶著我在工作室參觀了一圈,也聽我講了自己的故事,在休閑區(qū)我把電腦打開,給他們展示了自己還不成熟的作品,但大家都很給面子,一個(gè)個(gè)排隊(duì)試玩,讓我高興得頭暈。

他們鼓勵(lì)我來應(yīng)聘試試,我也認(rèn)真準(zhǔn)備了。后來回到上海,一邊上班一邊等消息,不敢抱希望,但又很不想失望,晚上輾轉(zhuǎn)反側(cè)。

有天上班的時(shí)候接到電話,我好像有種預(yù)感,站起來接了,感覺難以置信,像夢里一樣恍惚,居然真的有機(jī)會(huì)參與做官方的飛車手游,而不再是一個(gè)人的自娛自樂。

就這樣,我來到了天美。

攝于2016年5月,入職第一天,艷陽下的科興 圖源:阿升

轉(zhuǎn)眼已經(jīng)過去了5年,我還是每天下班了會(huì)玩會(huì)飛車,我的企業(yè)微信簽名也一直都是“瘋狂漂移中...”。

它成了一種習(xí)慣,一個(gè)第二世界,開發(fā)它的想法把我從最頹廢的一年里拔了出來,學(xué)習(xí)編程技術(shù),一步步走到今天,我也希望能繼續(xù)看著它,能開向多遠(yuǎn)的未來。

后記:

《QQ飛車》項(xiàng)目組最初因博客上的文章注意到了“熱心玩家”阿升,考慮到他的反編譯行為未構(gòu)成盈利,也未將破解資源向第三方公布,以及他個(gè)人研究的初衷,決定當(dāng)面友好溝通。

在面談與體驗(yàn)他的《手機(jī)版QQ飛車》后,項(xiàng)目組更多被他作為老玩家的熱忱所打動(dòng),最終決定不追責(zé)他的侵權(quán)行為,但仍保留權(quán)利,并鼓勵(lì)他參與正式的應(yīng)聘流程。阿升也最終成功通過社招,參與到官方版《QQ飛車手游》的研發(fā)中。

未經(jīng)軟件著作權(quán)人許可,反編譯軟件資源并向第三方提供的,均屬違法侵權(quán)行為,也是不被提倡的。希望有意參與研發(fā)過程的同學(xué),都能努力提升自己,并參與正式的應(yīng)聘流程,踏上青睞的職業(yè)道路。

最后,不論路途幾多曲折,起步有多晚,只要堅(jiān)持不氣餒,總能抵達(dá)終點(diǎn)。

學(xué)歷差的人如何進(jìn)大廠,0基礎(chǔ)初中學(xué)歷進(jìn)入騰訊項(xiàng)目組的故事。的評論 (共 條)

分享到微博請遵守國家法律
焉耆| 大洼县| 宣武区| 贵德县| 类乌齐县| 大悟县| 潮州市| 威海市| 浦县| 张掖市| 中山市| 巴林右旗| 文山县| 交口县| 福州市| 文山县| 木里| 湘潭市| 丹东市| 英吉沙县| SHOW| 江城| 隆回县| 普宁市| 德江县| 涿州市| 浏阳市| 凤城市| 沧州市| 华阴市| 民县| 深水埗区| 新疆| 星座| 龙门县| 泸定县| 英超| 古蔺县| 泗洪县| 新乡市| 扶余县|