一、籌備兩年,60萬(wàn)字誠(chéng)意續(xù)作《騰訊游戲開(kāi)發(fā)精粹Ⅱ》發(fā)布
騰訊游戲開(kāi)發(fā)精髓II
#第一部分
人工智能
第一章,基于照片的角色捏臉和個(gè)性化技術(shù)
角色的個(gè)性化已經(jīng)成為現(xiàn)今游戲的一個(gè)常見(jiàn)需求。根據(jù)用戶的照片,生成帶有用戶特征的游戲人臉將會(huì)提升用戶的角色代入感和游戲體驗(yàn)。本方案設(shè)計(jì)了一個(gè)智能捏臉系統(tǒng),可以根據(jù)用戶上傳或拍攝的人臉照片進(jìn)行自動(dòng)的三維人臉關(guān)鍵點(diǎn)檢測(cè),將標(biāo)準(zhǔn)的人臉根據(jù)游戲風(fēng)格進(jìn)行相應(yīng)的變化,生成保持用戶人臉特征且具備游戲風(fēng)格的三維人臉模型。
第二章,強(qiáng)化學(xué)習(xí)在游戲 AI中的應(yīng)用
通過(guò)利用深度強(qiáng)化學(xué)習(xí),我們?cè)诟?jìng)速類、格斗對(duì)戰(zhàn)類等品類的游戲上建立了快速的游戲 AI生成管線。它只需要部分的人工參與,即可以批量地生成高質(zhì)量的BOT AI。這些BOT AI在競(jìng)技水平上不僅能夠比肩人類頂尖玩家,也能適配各個(gè)段位的人類玩家。與此這些BOT AI在擬人性上也相比傳統(tǒng)方法有更佳表現(xiàn)。
第三章,多種機(jī)器學(xué)習(xí)方法在賽車(chē)AI中的綜合應(yīng)用
第三章以研發(fā)高強(qiáng)度的競(jìng)速賽車(chē)AI為目標(biāo),介紹遺傳算法、監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)在賽車(chē)AI中的研究和應(yīng)用。文章首先介紹利用遺傳算法進(jìn)行程序自動(dòng)化調(diào)參解決人工調(diào)整AI參數(shù)的復(fù)雜問(wèn)題,以得到能力較為不錯(cuò)的賽車(chē)AI參數(shù);再采用通俗易懂的語(yǔ)言,介紹監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)訓(xùn)練賽車(chē)AI模型的基礎(chǔ)知識(shí)以及落地過(guò)程中可能面臨的挑戰(zhàn),并對(duì)它們的應(yīng)用做簡(jiǎn)要分析,以便于缺少相關(guān)知識(shí)的游戲從業(yè)人員了解這兩項(xiàng)技術(shù)。
第四章,數(shù)字人級(jí)別的語(yǔ)音驅(qū)動(dòng)面部動(dòng)畫(huà)生成
本章論述了一種基于機(jī)器學(xué)習(xí)方法的語(yǔ)音驅(qū)動(dòng)數(shù)字人處理框架和相關(guān)算法。與傳統(tǒng)的基于規(guī)則或數(shù)據(jù)驅(qū)動(dòng)的Lip Sync(Lip Synchronization,唇形同步)解決方案不同,該方案分析了高保真數(shù)字人面部綁定系統(tǒng)的制作管線和數(shù)據(jù)特點(diǎn),并從機(jī)器學(xué)習(xí)的角度對(duì)該綁定進(jìn)行抽象,定義了一個(gè)語(yǔ)音-控制器的端到端學(xué)習(xí)框架。基于這個(gè)框架,提出了一種基于深度學(xué)習(xí)的語(yǔ)音驅(qū)動(dòng)面部動(dòng)畫(huà)模型。
#第二部分
計(jì)算機(jī)圖形
第五章,實(shí)時(shí)面光源渲染
隨著基于物理的渲染在實(shí)時(shí)渲染領(lǐng)域廣泛應(yīng)用,面光源變得越來(lái)越重要。面光源與經(jīng)典的方向光、點(diǎn)光源等光源的區(qū)別在于其解為一個(gè)積分式,求解方向中Linearly Transform Cosine(LTC)由于精確性、較好的性能、支持多種類型的光源成為游戲等實(shí)時(shí)渲染應(yīng)用程序的首選方案。然而要將LTC在移動(dòng)平臺(tái)的生產(chǎn)項(xiàng)目中使用仍然存在不少挑戰(zhàn)。本章將對(duì)一系列在實(shí)踐中遇到的問(wèn)題展開(kāi)討論。
第六章,可定制的快速自動(dòng)化全局光照和可見(jiàn)性烘焙器
本章提供了一個(gè)可定制的快速烘焙方案,底層提供基于Voxel(體素)的快速構(gòu)建和光線追蹤,上層根據(jù)需求提供若干烘焙實(shí)現(xiàn)。該方案具有硬件要求低、可快速迭代、全自動(dòng)等優(yōu)勢(shì),如《王者榮耀》的對(duì)戰(zhàn)地圖可以在幾秒之內(nèi)預(yù)覽烘焙效果,大大提升了項(xiàng)目美術(shù)迭代的效率。
第七章,物質(zhì)點(diǎn)法在動(dòng)畫(huà)特效中的應(yīng)用
最近一段時(shí)間,高質(zhì)量的動(dòng)畫(huà)與電影中(尤其是好萊塢)開(kāi)始使用一種稱為物質(zhì)點(diǎn)法(Material Point Method)的新的物理模擬技術(shù)。我們基于物質(zhì)點(diǎn)法開(kāi)發(fā)了可以用于制作對(duì)視覺(jué)細(xì)節(jié)要求較高的CG過(guò)場(chǎng)動(dòng)畫(huà)的Physion,可以充分發(fā)揮最新的GPU架構(gòu)提供的強(qiáng)大計(jì)算力;與傳統(tǒng)的CPU模擬器相比,計(jì)算效率提高了數(shù)百倍,在PC端絕大多數(shù)場(chǎng)景下可以達(dá)到實(shí)時(shí)或者準(zhǔn)實(shí)時(shí)的速度。
第八章,高自由度捏臉的表情動(dòng)畫(huà)復(fù)用方案
本章所闡述的技術(shù)方案幫助游戲美術(shù)師高效制作捏臉控制器,賦予玩家更高的自定義形象的能力。面部表情捕捉方案可以生產(chǎn)高質(zhì)量的表情動(dòng)畫(huà)美術(shù)資產(chǎn)。表情補(bǔ)償技術(shù)將細(xì)膩的表情融入玩家捏出的特征臉。通過(guò)針對(duì)移動(dòng)端的表情系統(tǒng)性能優(yōu)化和LOD方案,使得更多的手機(jī)游戲玩家可以體驗(yàn)到這一切。
#第三部分
動(dòng)畫(huà)和物理
第九章,多足機(jī)甲運(yùn)動(dòng)控制解決方案
本章總結(jié)了一套以程序化動(dòng)畫(huà)為核心,結(jié)合動(dòng)畫(huà)序列、曲線控制及物理模擬等手段來(lái)增強(qiáng)表現(xiàn)力的解決方案。該方案不僅從根本上解決了滑步問(wèn)題,還能為不同形態(tài)的機(jī)甲快速生產(chǎn)和迭代運(yùn)動(dòng)動(dòng)畫(huà),使小團(tuán)隊(duì)在人力資源有限的情況下,依然能高效地打造高品質(zhì)的機(jī)甲運(yùn)動(dòng)效果。
第十章,物理查詢介紹及玩法應(yīng)用
物理引擎的應(yīng)用是游戲開(kāi)發(fā)的重要組成部分。本章主要介紹物理引擎中的物理查詢功能,同時(shí)附帶相關(guān)玩法的實(shí)現(xiàn)方法。通過(guò)閱讀本章,讀者可以了解物理查詢的作用和基本分類,以及3種查詢類別的算法和相關(guān)玩法實(shí)踐。
第十一章,基于物理的角色翻越攀爬通用解決方案
我們開(kāi)發(fā)了CP(Collison Probe,碰撞探測(cè))系統(tǒng),該系統(tǒng)基于物理系統(tǒng)的場(chǎng)景查詢(Scene Query)功能,適用于各種不同的物理系統(tǒng)接口。本章介紹的算法在游戲《無(wú)限法則》中已經(jīng)正式使用。開(kāi)發(fā)中的難點(diǎn)主要來(lái)自對(duì)游戲中復(fù)雜情況的歸納和算法的復(fù)雜度控制。
#第四部分
客戶端架構(gòu)和技術(shù)
第十二章,跨游戲引擎的H5渲染解決方案
本章介紹一種方法,通過(guò)實(shí)現(xiàn)一套精簡(jiǎn)版本的HTML5渲染引擎來(lái)屏蔽不同游戲引擎、平臺(tái)的底層差異,同時(shí)保留游戲引擎必要的交互體驗(yàn),可以采用H5的開(kāi)發(fā)方式來(lái)快速實(shí)現(xiàn)運(yùn)營(yíng)活動(dòng)開(kāi)發(fā),最終做到開(kāi)發(fā)和運(yùn)營(yíng)分離,運(yùn)營(yíng)部門(mén)自主開(kāi)發(fā)運(yùn)營(yíng)活動(dòng)而不依賴游戲發(fā)版節(jié)奏。
第十三章,大世界的場(chǎng)景復(fù)雜度管理方案
在相同的硬件平臺(tái)下,復(fù)雜度管理方案很大程度上決定了大世界場(chǎng)景里填充內(nèi)容的數(shù)量和質(zhì)量。本方案基于控制理論中的負(fù)反饋控制系統(tǒng),最終可達(dá)成:1、離線檢測(cè)工具,自動(dòng)分析場(chǎng)景各區(qū)域復(fù)雜度。2、運(yùn)行時(shí)根據(jù)平臺(tái)設(shè)定,智能控制場(chǎng)景內(nèi)容的加載卸載、顯示隱藏、LOD控制等。3、根據(jù)平臺(tái)負(fù)載能力和當(dāng)前負(fù)荷,更有效的控制運(yùn)行負(fù)荷,獲取平滑的fps。
第十四章,基于多級(jí)細(xì)節(jié)網(wǎng)格的場(chǎng)景動(dòng)態(tài)加載
大型次世代手游在移動(dòng)端極易遇到大規(guī)模場(chǎng)景加載導(dǎo)致的性能問(wèn)題,Level Streaming(關(guān)卡流式加載)是用于解決大場(chǎng)景加載的一類技術(shù)。本章將介紹一種基于多級(jí)細(xì)節(jié)網(wǎng)格的Level Streaming技術(shù),它可以提高加載速度,降低加載內(nèi)存,改善加載卡頓等性能問(wèn)題。
#第五部分
服務(wù)端架構(gòu)和技術(shù)
第十五章,面向游戲的高性能服務(wù)網(wǎng)格TbusppMesh
TbusppMesh是一款騰訊自研的適合游戲微服務(wù)化的ServiceMesh(服務(wù)網(wǎng)格),提供了有狀態(tài)服務(wù)一致性Hash路由、選主、容災(zāi)等適合游戲業(yè)務(wù)場(chǎng)景的核心能力,助力游戲微服務(wù)化改造上云并提高CI/CD效率。本章從數(shù)據(jù)通信、組網(wǎng)策略、有狀態(tài)服務(wù)3個(gè)方面介紹TbusppMesh的技術(shù)原理和實(shí)現(xiàn)。
第十六章,游戲配置系統(tǒng)設(shè)計(jì)
本章主要介紹一種便捷的游戲配置管理方式,它實(shí)現(xiàn)了可視化管理、版本歷史和回滾和一站式發(fā)布。本章在講述游戲配置系統(tǒng)的會(huì)對(duì)整個(gè)游戲配置從設(shè)計(jì)、生產(chǎn)到使用進(jìn)行詳細(xì)介紹,并在Github上發(fā)布了一個(gè)Demo實(shí)例供讀者對(duì)照參考。讀者可以在Github上探索 configmanagedemo查看Demo具體實(shí)現(xiàn)細(xì)節(jié)。
第十七章,游戲敏捷運(yùn)營(yíng)體系技術(shù)
我們提出的一套不依賴版本的敏捷運(yùn)營(yíng)技術(shù)DataMore及其服務(wù)體系,基于游戲的日志以及標(biāo)準(zhǔn)化API接口,借助于實(shí)時(shí)計(jì)算能力打造的與游戲解耦的運(yùn)營(yíng)工具鏈,幫助游戲?qū)崿F(xiàn)敏捷快速運(yùn)營(yíng)。
#第六部分
管線和工具
第十八章,從照片到模型
2019年,舉世聞名的巴黎圣母院被燒毀。所幸早年已經(jīng)有學(xué)者對(duì)整個(gè)巴黎圣母院進(jìn)行了完整的掃描和建模,這對(duì)后續(xù)的重建工作起到了重要的指導(dǎo)作用。本章搭建的Photogrammetry生產(chǎn)管線可以用于從普通大小物件到大地形、大型物件模型的重建,將從拍攝照片到輸出可用于實(shí)時(shí)渲染的模型的整個(gè)流程智能化、自動(dòng)化,以便用較少的人力、較快的速度完成大規(guī)模室外場(chǎng)景的3D重建工作。這將對(duì)游戲制作、數(shù)字化展覽、數(shù)字化記錄保存歷史文化遺產(chǎn)、科學(xué)研究等起到很大的幫助作用。
第十九章,一種可定制的Lua代碼編輯檢測(cè)工具
Lua語(yǔ)法簡(jiǎn)單、使用靈活,在游戲開(kāi)發(fā)中十分流行。但其生態(tài)并不完善,各插件在對(duì)Lua項(xiàng)目的支持上仍存在一些不足。本章遵從微軟LSP(Language Server Protocol,語(yǔ)言服務(wù)協(xié)議),前端使用TypeScript語(yǔ)言,后端使用Go語(yǔ)言開(kāi)發(fā)了一款跨平臺(tái)Lua工具。目前主要提供了VSCode插件的應(yīng)用LuaHelper。
第二十章,安卓平臺(tái)非托管內(nèi)存分析方案
安卓平臺(tái)一直缺乏簡(jiǎn)單易用的非托管內(nèi)存數(shù)據(jù)采集與分析工具。對(duì)于大型游戲項(xiàng)目來(lái)講,沒(méi)有合適的底層工具,內(nèi)存分析就是噩夢(mèng)般的存在。本章旨在通過(guò)整合安卓平臺(tái)中的相關(guān)技術(shù),提供一種易用且高效的非托管內(nèi)存數(shù)據(jù)采集和數(shù)據(jù)分析解決方案。
第二十一章,過(guò)程化河流生成方法研究與應(yīng)用
目前比較有特色的河流生成方法是游戲《地平線:黎明時(shí)分》中提出的方法,考慮了階梯瀑布、山谷侵蝕、寬度變化等河流自然特征,能夠得到比較生動(dòng)的效果。本章借鑒地平線方法,在此基礎(chǔ)上進(jìn)行補(bǔ)充和擴(kuò)展,實(shí)現(xiàn)一套魯棒可控的河流生成系統(tǒng)。
本書(shū)獲多位業(yè)界高層、行業(yè)專家力薦
騰訊公司把自己技術(shù)人才多年研發(fā)的經(jīng)驗(yàn)積累編篡出書(shū),無(wú)疑是對(duì)中國(guó)游戲技術(shù)研發(fā)的巨大貢獻(xiàn)。
——姚勇,北京永航科技有限公司CTO
從業(yè)的開(kāi)發(fā)人員或有興趣在相關(guān)技術(shù)方向發(fā)展的同學(xué)能從中獲得行業(yè)中較新的且已經(jīng)落地的技術(shù)的第一手資料。
——王禰,Epic Games China首席引擎工程師
——金小剛,浙江大學(xué)-騰訊游戲智能圖形創(chuàng)新技術(shù)聯(lián)合實(shí)驗(yàn)室主任
本書(shū)由鵝廠游戲的技術(shù)大牛出品,記錄和分享了在面對(duì)技術(shù)時(shí)代變遷時(shí),在大型在線游戲作品中如何應(yīng)用AI技術(shù)和場(chǎng)景落地的經(jīng)驗(yàn)、教訓(xùn),以及他們的思辨路徑。推薦給喜歡游戲產(chǎn)業(yè),喜歡AI新科技的朋友們。
——張志東,騰訊主要?jiǎng)?chuàng)辦人
我們嘗試將項(xiàng)目中積累沉淀的前沿技術(shù)方案與全行業(yè)共享,希望能激發(fā)出更多的想象力和創(chuàng)意,不斷豐富游戲技術(shù)在不同場(chǎng)景、產(chǎn)業(yè)運(yùn)用的可能,共同探索產(chǎn)業(yè)契合未來(lái)的可能路徑。
——馬曉軼,騰訊集團(tuán)高級(jí)副總裁
作為《騰訊游戲開(kāi)發(fā)精粹》的續(xù)作,本書(shū)維度更豐富、技術(shù)更前沿,希望為讀者朋友們提供更好的閱讀體驗(yàn)。期待能以本書(shū)為契機(jī),促進(jìn)游戲行業(yè)更多的分享交流,推動(dòng)游戲行業(yè)良性發(fā)展,助力游戲人成就游戲夢(mèng)想。
——夏琳,騰訊游戲副總裁、騰訊游戲?qū)W堂院長(zhǎng)
《騰訊游戲開(kāi)發(fā)精粹Ⅱ》和時(shí)下的熱詞Metaverse(元宇宙)遙相呼應(yīng):騰訊游戲在計(jì)算機(jī)圖形學(xué)、動(dòng)畫(huà)上的實(shí)踐,工業(yè)化的生產(chǎn)流水線,各種AI能力和應(yīng)用,大世界的C/S架構(gòu)……凡此種種,均有助于讀者搭建自己的虛擬世界。
——崔曉春,騰訊游戲副總裁、騰訊游戲公共研發(fā)運(yùn)營(yíng)體系負(fù)責(zé)人
對(duì)于正在從事游戲開(kāi)發(fā)或?qū)τ螒蜷_(kāi)發(fā)好奇的讀者,本書(shū)既可以拓展知識(shí)面,又可以對(duì)照著動(dòng)手實(shí)踐。
——徐成龍,騰訊互動(dòng)娛樂(lè)天美工作室群技術(shù)中心副總經(jīng)理
《騰訊游戲開(kāi)發(fā)精粹Ⅱ》是一部技術(shù)好文集錦,囊括了當(dāng)前游戲開(kāi)發(fā)所必需的多種關(guān)鍵技術(shù)。
——陸遙,騰訊互動(dòng)娛樂(lè)光子工作室群技術(shù)中心助理總經(jīng)理
本書(shū)由騰訊游戲多位資深技術(shù)專家共同編撰,涵蓋了游戲研發(fā)各重要領(lǐng)域的知識(shí),代表了騰訊游戲前沿的技術(shù)實(shí)踐。
——朱新其,騰訊互動(dòng)娛樂(lè)魔方工作室群魔鏡工作室總經(jīng)理
《騰訊游戲開(kāi)發(fā)精粹Ⅱ》貴在實(shí)戰(zhàn)和實(shí)踐,除技術(shù)和算法外,我們更能看到這些技術(shù)和算法是如何應(yīng)用到具體的項(xiàng)目中最終面見(jiàn)玩家的,是一個(gè)有實(shí)戰(zhàn)意義的完整分享。
——安柏霖,騰訊互動(dòng)娛樂(lè)北極光工作室群技術(shù)總監(jiān)
希望本書(shū)用心編撰的內(nèi)容能給予讀者更多啟發(fā),我們一起知行并進(jìn),持續(xù)探索前沿技術(shù)對(duì)游戲開(kāi)發(fā)的內(nèi)在提升。
——沈黎,騰訊互動(dòng)娛樂(lè) NExT Studios負(fù)責(zé)人
二、一個(gè)高級(jí)java工程師需要具備什么能力和技術(shù)
宏觀方面
一、 JAVA。
要想成為JAVA(高級(jí))工程師肯定要學(xué)習(xí)JAVA。一般的程序員或許只需知道一些JAVA的語(yǔ)法結(jié)構(gòu)就可以應(yīng)付了。但要成為JAVA(高級(jí))
工程師,您要對(duì)JAVA做比較深入的研究。您應(yīng)該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您
對(duì)JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發(fā)現(xiàn)其實(shí)您想實(shí)現(xiàn)的很多功能,通過(guò)JAVA的API都可以實(shí)現(xiàn)了,就不必自己費(fèi)太多的腦經(jīng)了。
二、設(shè)計(jì)模式。
其實(shí)寫(xiě)代碼是很容易的事情,我相信您也有同感。但如何寫(xiě)得好就比較難了。這個(gè)“好”字包括代碼可重用性,可維護(hù)性,可擴(kuò)展性等。如何寫(xiě)出好的代
碼往往要借助一些設(shè)計(jì)模式。當(dāng)然長(zhǎng)期的代碼經(jīng)驗(yàn)積累,只要您用心,會(huì)使您形成自己代碼風(fēng)格。相信您的代碼也比較符合代碼的可重用性,可維護(hù)性,可擴(kuò)展性。
但既然前人已經(jīng)給我們總結(jié)出了經(jīng)驗(yàn),我們何不踩著前人的肩膀前進(jìn)?
三、 XML。
現(xiàn)在的系統(tǒng)中不使用XML幾乎是不可能的。XML的功能非常強(qiáng)大,它可以做數(shù)據(jù)轉(zhuǎn)換、做系統(tǒng)的配置、甚至可保存您的系統(tǒng)業(yè)務(wù)數(shù)據(jù)。因此您必須了解
XML,包括它的語(yǔ)法,結(jié)構(gòu)。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因?yàn)樵谖覀円话愕捻?xiàng)目中,XML往往擔(dān)當(dāng)系統(tǒng)配置
信息的作用,您需要用這些API解析這些配置信息,開(kāi)發(fā)完美的項(xiàng)目。
四、精通使用一種或兩種框架。
“框架都會(huì)有許多可重用的代碼,良好的層次關(guān)系和業(yè)務(wù)控制邏輯,基于框架的開(kāi)
發(fā)使你可以省出很多的開(kāi)發(fā)成本”。這里希望您能精通,更多的是希望您能通過(guò)框架的使用了解框架的思想。這樣您在開(kāi)發(fā)一個(gè)項(xiàng)目時(shí)思路會(huì)開(kāi)闊一些,比如您
會(huì)想到把SQL語(yǔ)句與您的JAVA代碼分開(kāi),再比如您會(huì)考慮把您的業(yè)務(wù)邏輯配置到XML或者數(shù)據(jù)庫(kù)中,這樣整個(gè)項(xiàng)目就很容易擴(kuò)張了。
五、熟悉主流數(shù)據(jù)庫(kù)。其實(shí)真正比較大的項(xiàng)目都是有人專門(mén)做數(shù)據(jù)庫(kù)的,但往往很多項(xiàng)目要求作為(高級(jí))工程師的您也參與數(shù)據(jù)庫(kù)的設(shè)計(jì)以及SQL的編寫(xiě)。所以為了
更好的為國(guó)家做貢獻(xiàn),建議您還是多了解一些主流數(shù)據(jù)庫(kù),比如SQLSERVER,ORACLE,多連接SQL和存儲(chǔ)過(guò)程以及觸發(fā)器。如果您不是“科班”出
身,您還需要補(bǔ)充一些數(shù)據(jù)庫(kù)原理方面的知識(shí)。
六、精通一種或兩種WEBServer。
因?yàn)樽鳛镴AVA工程師,特別時(shí)
想成為高級(jí)JAVA工程師的您,您不可避免地要部署您的項(xiàng)目到WebServer上,而且只有當(dāng)您精通一種WebServer,您才可能最大限度地使用它
的資源,這往往可以節(jié)省很多時(shí)間和精力。
七、 UML。
您肯定想成為高級(jí)工程師,因此您有必要了解或熟練或精通UML,這取決于您有多大決心想成為高級(jí)工程師和項(xiàng)目經(jīng)理。在比較正規(guī)的開(kāi)發(fā)團(tuán)隊(duì)
中,UML是討論項(xiàng)目的交流工具,您要想做一個(gè)軟件工程師,您至少要能看懂,您要想做高級(jí)工程師,您要能通過(guò)它來(lái)描述您對(duì)項(xiàng)目的理解,盡管這不是必須,但
卻很重要。
八、站在高度分析問(wèn)題:
這不是一個(gè)知識(shí)點(diǎn),也不是通過(guò)書(shū)本就能學(xué)得到的。只所以提到這一點(diǎn),是因?yàn)槲冶饶€著急,我希望您更快的成為一個(gè)高級(jí)的軟件工程師,而
不是一個(gè)一般的軟件工程師。希望您在工作中多向您的系統(tǒng)分析員、需求分析員、系統(tǒng)設(shè)計(jì)員學(xué)習(xí),多站在他們角度上去看您在開(kāi)發(fā)的項(xiàng)目。在最好在項(xiàng)目之初先在
您的腦海里對(duì)項(xiàng)目有個(gè)大致的分析、設(shè)計(jì),然后和他們進(jìn)行比較,找找差別,想想缺點(diǎn)。
九、工具。
您在這個(gè)階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對(duì)
ROSE,Together要多了解一些,因?yàn)槟?huà)UML了。不要再對(duì)Dreamweaver等HTML編輯器情有獨(dú)鐘了,那些JSP頁(yè)面讓初級(jí)程序員去寫(xiě)吧
微觀方面
1.Core Java部分
這是最基礎(chǔ)的,對(duì)于一個(gè)java高級(jí)開(kāi)發(fā)/設(shè)計(jì)人員,你需要對(duì)這一部分達(dá)到精通的水平,重點(diǎn)內(nèi)容如下:
a.面向?qū)ο缶幊趟枷?封裝繼承多態(tài)接口)
b.字符串處理
c.java.lang包,java.util包等常用包
d.java異常處理
2.Java高級(jí)部分
a.Java I/O流
b.Java多線程技術(shù)
c.Java網(wǎng)絡(luò)編程
d.Java Swing
后兩項(xiàng)可以了解即可,如果項(xiàng)目需要可以深入研究
3.前端基本技能
* HTML+ CSS網(wǎng)頁(yè)開(kāi)發(fā)
* JavaScript
* Jquery
*瀏覽器兼容性 CSS hack(了解)
4.熟練使用JSP+ Servlet進(jìn)行開(kāi)發(fā)
5.MVC設(shè)計(jì)模式,原理,以及相關(guān)框架,如Struts
6.SSH框架
7.緩存技術(shù) session& cookie
8.熟練使用一種以上Java開(kāi)發(fā)工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)
9.熟練使用XML
JDOM w3c.dom SAX
10.Java設(shè)計(jì)模式
工廠模式,單例模式==
11.Java反射機(jī)制
反射的各種用法
12.了解或熟悉 C, C++,.NET
13.熟悉JDK的配置,環(huán)境變量
14.數(shù)據(jù)庫(kù)oracle必學(xué),其他最好了解一種以上(mysql,sql server,access==)
oracle:視圖,索引,存儲(chǔ)過(guò)程,觸發(fā)器,游標(biāo),包,常用函數(shù)==
15.數(shù)據(jù)庫(kù)原理
事務(wù)的原理,鎖機(jī)制,表連接,復(fù)雜查詢語(yǔ)句(工作經(jīng)驗(yàn)),性能調(diào)優(yōu),鎖表以及解決方案==
16.JDBC,連接池
17.Ajax,反向Ajax
18.HTTP協(xié)議,request和 response的原理,HTTP status(了解常用的),Https原理
19.熟悉Linux基本命令,使用過(guò)Linux/Unix系統(tǒng),可以編寫(xiě)shell腳本,可以在Linux上部署項(xiàng)目
20.了解windows系統(tǒng)批處理腳本bat
21.了解HTML5,最好學(xué)習(xí)過(guò)
22.熟悉一種JS框架,如Prototype
23.J2EE原理熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==
24.熟悉ant或maven
25.熟悉一門(mén)腳本語(yǔ)言,如python,ruby
26.了解php/ asp
27.了解ftp協(xié)議及原理
28.熟練使用Junit測(cè)試,熟悉Mockito等測(cè)試工具
29,熟悉javac,javadoc,native,native2ascii等常用命令
30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究過(guò)一些的算法。
31.了解Flex(不學(xué)也沒(méi)關(guān)系)
32.了解敏捷開(kāi)發(fā)模式
33.工作流workflow至少用過(guò)一種,如OSworkflow,了解原理
34.使用過(guò)VPN了解其原理
35.熟悉jstl表達(dá)式和el表達(dá)式
36.熟悉webservice,WSDL,SOAP
37.圖片處理,如圖片上傳,預(yù)覽,限制大小等
38.版本控制工具,CVS VSS SVN
39,JSON技術(shù),JSON+AJAX
40.分頁(yè)技術(shù),最好自己實(shí)現(xiàn)過(guò)不僅僅是用過(guò)要知道原理
41.Java Mail
42.Java讀寫(xiě)txt,excel,JXL技術(shù)
43.JVM原理,JVM內(nèi)存管理,GC,Java堆棧池
44.熟練使用下面的工具:
office辦公軟件,word,excel,ppt等
plsql,sqldevelop數(shù)據(jù)庫(kù)開(kāi)發(fā)工具
outlook大公司都用
ue編輯器
瀏覽器控制臺(tái),調(diào)試
SHH/PUTTY遠(yuǎn)程
45.UML建模工具Rational Rose等
46.使用log4j
47.使用過(guò)開(kāi)放Api如百度,騰訊街景,新浪微博等
48.頁(yè)面靜態(tài)化技術(shù)(偽靜態(tài)頁(yè)面)
49.報(bào)表技術(shù),使用過(guò)報(bào)表制作工具,如水晶易表。
50.定時(shí)任務(wù),如Spring batch,學(xué)會(huì)自定義batch任務(wù)(不適用第三方工具)
51.了解uuid
52.b/s和 c/s架構(gòu)
53.正則表達(dá)式
54.了解jndi jms
55.ERP
56.UNICODE編碼,亂碼解決
57.開(kāi)源網(wǎng)絡(luò)編輯器,如ckEditor
58.二進(jìn)制原理
59.使用過(guò),了解過(guò)開(kāi)源論壇框架,如discuzz
60.GWT,Closure框架
61.了解大數(shù)據(jù),云計(jì)算
62.搜索引擎搜索技術(shù)
63.軟件工程,項(xiàng)目管理
三、騰訊工資是多少
像BATJ這樣的互聯(lián)網(wǎng)大廠對(duì)招聘的要求還是比較高的,當(dāng)然薪資待遇也是很高的,下面以騰訊為例。
1、騰訊薪資構(gòu)成
鵝廠薪資結(jié)構(gòu):一般是12+1+1= 14薪。
鵝廠的標(biāo)準(zhǔn)薪資是14薪,但是通常能拿到16-20薪。
年終獎(jiǎng)看部門(mén)盈利情況,一般是 3個(gè)月。
雖然說(shuō)鵝廠的薪資結(jié)構(gòu)一般是 16薪,但實(shí)際上從 offer看不乏 18薪的團(tuán)隊(duì)。
并且鵝廠作為項(xiàng)目眾多的大廠,內(nèi)部不同事業(yè)線之間也是存在不小的薪資、股票差距的。比如鵝廠的游戲團(tuán)隊(duì)薪資、年終獎(jiǎng)一般都比較高,而騰訊云的股票份額則要高于游戲團(tuán)隊(duì)。
根據(jù)去年騰訊對(duì)外發(fā)布的校招薪資,可見(jiàn)鵝廠對(duì)于畢業(yè)生的待遇還是不錯(cuò)的:白菜價(jià)22-25w,SP級(jí)25-35w,SSP級(jí)35w+...,不少算法類崗位更是開(kāi)出了50w的高薪。
而從社會(huì)招聘來(lái)看,在高校應(yīng)屆生已經(jīng)達(dá)到875萬(wàn)人的嚴(yán)峻情況下,各互聯(lián)網(wǎng)大廠薪資不減反增,從各大招聘網(wǎng)站顯示,大廠“白菜價(jià)”O(jiān)ffer基本上15w起跳,騰訊、字節(jié)等頭部名企基本崗位都向20w年薪看起的。
2、鵝廠的高薪程序員具備什么要求
鵝廠工程師在去年調(diào)整了職級(jí),取消了原有的 6級(jí) 18等(1.1-6.3級(jí))的職級(jí)體系設(shè)計(jì),將專業(yè)職級(jí)體系優(yōu)化為14級(jí)(4-17級(jí))。
與之相對(duì)應(yīng)的是,統(tǒng)一置換為“專業(yè)職級(jí)+職位稱謂”。這是由于雖然T3序列的 title都是高級(jí)工程師,但每個(gè)小職級(jí)范圍之間的薪資差距并不小,T3-3級(jí)別的薪資比 T3-1級(jí)別要高出 30-60W/年,且 3-1級(jí)別幾乎沒(méi)有股票。
再按照人才需求的邏輯來(lái)看,鵝廠的程序員可以分為四個(gè)大類:
想法層:產(chǎn)品經(jīng)理、UI設(shè)計(jì)、策劃;
實(shí)現(xiàn)層:Web前端、Java、C++、iOS、Android、Python;
維護(hù)層:Linux運(yùn)維、Web安全、大數(shù)據(jù)開(kāi)發(fā)、云計(jì)算;
推廣層:網(wǎng)絡(luò)營(yíng)銷(xiāo)。
就目前來(lái)看,我們把想法層、實(shí)現(xiàn)層、維護(hù)層、推廣層都定義為可學(xué)習(xí)的項(xiàng)目的話,實(shí)現(xiàn)層和維護(hù)層最穩(wěn)定,但是也最辛苦。
而對(duì)于想法層和推廣層來(lái)講,推廣費(fèi)用是有限的情況下,如何做到推廣結(jié)果的最大化,這是一個(gè)非常難的問(wèn)題。所以這也就是很多人為什么想做程序員(處于實(shí)現(xiàn)層和維護(hù)層)的原因,雖然辛苦,但是高薪又穩(wěn)定。
3、鵝廠這樣的大廠,招聘工程師需要什么技能?
互聯(lián)網(wǎng)大廠招聘人才,對(duì)應(yīng)聘者有什么要求?一般對(duì)于應(yīng)屆畢業(yè)生的要求是畢業(yè)于名校、成績(jī)優(yōu)異、面試表現(xiàn)好。社會(huì)招聘一般是具有多年工作經(jīng)驗(yàn)的高技能及項(xiàng)目經(jīng)驗(yàn)豐富的人。
以不久前發(fā)布的招聘需求為例,Switch《新超級(jí)馬力歐兄弟U豪華版》過(guò)審,而運(yùn)營(yíng)單位為“深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司”。
根據(jù)騰訊招聘網(wǎng)站顯示,繼此前的Switch游戲移植客戶端開(kāi)發(fā)和Switch產(chǎn)品策劃等招聘外,日前騰訊又發(fā)布了更多關(guān)于Switch的崗位招聘。
招聘要求顯示,Web前端開(kāi)發(fā)工程師的崗位主要負(fù)責(zé)Nintendo Switch國(guó)內(nèi)相關(guān)的Web需求,包括官網(wǎng)、商城以及相關(guān)的內(nèi)部運(yùn)營(yíng)系統(tǒng)開(kāi)發(fā)。
而其中Node.js的技能要求卻通常是Web全棧工程師的必備技能。可見(jiàn)鵝廠對(duì)于人才的選擇是比較嚴(yán)苛的。
根據(jù)當(dāng)前的市場(chǎng)需求,互聯(lián)網(wǎng)大廠們對(duì)于普通前端開(kāi)發(fā)工程師的需求逐年銳減,大廠對(duì)于人才產(chǎn)生了強(qiáng)烈的“T”型人才需求,即在一樣精的基礎(chǔ)上還要“百樣通”。例如Web全棧工程師的招聘數(shù)量高達(dá)21萬(wàn)之多,對(duì)應(yīng)的人才卻很少,因此高薪也是可以理解了。
對(duì)于想學(xué)習(xí)Web全棧工程師、架構(gòu)師等無(wú)基礎(chǔ)同學(xué)來(lái)說(shuō),北大青鳥(niǎo)、課工場(chǎng)等優(yōu)秀品牌都是不錯(cuò)的選擇。課程根據(jù)招聘需求制定,包含全部分布式微服務(wù)技術(shù),對(duì)標(biāo)鵝廠T4、阿里P8級(jí)別。
希望我的回答對(duì)你有所幫助!