非科班本科如何入游戏行业

简介:24届985本科自动化,大二开始决定转行进入游戏天坑(x),参加24届秋招有幸入行,分享一些大学几年转码学习经验。题主方向是程序,图形学弱鸡,找的岗位是游戏客户端开发。(文章前面部分内容有点像碎碎念,省流版可以往下拉)
叠个甲:转码建议以短期功利性为主,与科班专业培养不可避免存在差异,行业想法都仅代表个人见解,如上请专业人士轻喷
-----------------------------
先卖个关子,跟很多懵懵懂懂就上了大学的学生一样,大一还保持着高三的优良习惯,也是个有搞一个好看的学分绩目标的新生,无奈高估了自己的能力水平,想跟来自各个教育大省的同专业的卷学分绩还是异想天开,想着发展点课外节目,试着加入了学校的robomaster战队,作为大一新生打打杂混过了一个赛季,但作为一个大型比赛只有大二以上的正式队员才有表彰资格,这一比赛也为我的大一学年以及与大学所学专业打交道,画下了句号。(比赛是很有意思的比赛,队友也是非常激情的队友)
在大一升大二的暑假,跟同高中同大学的校友学长打游戏的时候,聊到不知道现在的专业在学什么,学了有什么用,被搭了嘴要不要转行敲代码,一时兴起就打算跟学长一样去游戏公司敲代码,稀里糊涂地开始学习c++,稀里糊涂地开始学数据结构,稀里糊涂地啃起四大件,于是乎便开始了转码学习。
--------------------------------
大一升大二的暑假,啃完了黑马C++的网课,还有清华邓俊辉的数据结构与算法(C++版)
大二上看书:深度探索C++对象模型;C++11新特性,两本很经典的入门C++性质的书(微信读书上可以白嫖),还有一本很薄的汇编语言教材;在b站大学看网课学习了点科班的专业课课程:数理逻辑、数字逻辑、计算方法,都是哈工大的网课(不过说实话从现在的视角看的话,如非时间充沛,功利点的话可以不急着学太理论的数理),寒假的时候啃了本很厚的risc-v计算机组成原理。
大二下:开始接触图形学,学的网课也是很经典的games101,花了一个多月时间学完并总结后开始算法coding练习,背了点应试用的C++,数据结构算法八股,报名参加了由学长介绍的腾讯游戏高校公开课,后续在北极光工作室下进行虚幻引擎的技术学习,并完成工作室布置的课题大作业(真正意义上的自己写的游戏程序)。
大三上:随着公开课的结束,开始了实习的投递,目标瞄准了向往的腾讯ieg,也为后续多次倒在鹅厂门口埋下伏笔,基本处于一个等鹅捞-流程结束的死循环,大概数了下在22年9-11月期间挂了五次鹅的一面,于此同时投的朝夕光年也在二面后流程结束。痛定思痛,开始用王道考研书速成了计算机网络与操作系统,为了增强工程能力也花了一个月时间做了6.s081项目与学校的计网的手写协议栈的实验,丰富下简历。
大三下:在23年年初收到鹅的技术中台的面试,在2月意外地通过了面试流程,并在3月入职开始实习。大三下应该算是秋招人最关键的节点,这段时间基本都是在实习总结产出,总结面试八股备战秋招。实习到7月份由于个人规划提出了离职,这段时间把games104看完,还有浙大的编译原理网课。自此秋招前学会的相关技术就到这了。
以上便是大学两年间我的非科班转码游戏程序的经历,好多好多细节,像是如何水平时学校专业内的课程,翘课自习实习,应付专业考试,少不了学校同学帮助,每个学期末回头速成专业考试及格过线的时候,都会为了转行成功而坚持下去。
-------------------------------
碎碎念就到这了,根据秋招为止的笔试面试,结合自身技术栈总结分类一下游戏客户端校招要求:
编程语言:无论面的ue项目还是unity,编程语言都会考察C++为主,包括语法、特性、stl等;
个人推荐b站的黑马程序员的C++网课进行入门(虽然是卖网课但速成效果体验还行);
在熟悉语法基础上,可以看《深度探索C++对象模型》、《深入理解C++11新特性》、还有effectiveC++系列;
C++在校招面试中往往是重头,考察了解的细致程度广泛程度。

数据结构与算法:笔试中的算法难度相对面试手撕代码难度更大,求知过程中我的笔试成绩相对一般,笔试就挂的公司不少,hard难度题基本没写出来过,这里面向非算法竞赛选手给出一些不成器的建议;
邓俊辉绿色的那本《数据结构与算法(c++版)》建议在熟悉c++语法后上手,同时这块的学习建议以敲代码为主,方便加深记忆,学习完成后可以考虑在leetcode上刷点题练练手;
其次是针对面试常考的手撕题,《剑指offer》作为秋招前功利性质的算法速成书籍相当推荐;

计算机组成原理:个人眼里虽然在面试过程中考察相对较少,但确实质检程序员的重要领域,多的不说,如果面试中有相关考察能给面试官展现你的理解,必然能获得青睐;
计组推荐黑皮书《计算机组成设计:软硬件接口 RISCV版》,很厚但含金量十足,可以跟汇编语言一起学,

操作系统、计算机网络:实习面试中问的相对较少,但却是校招八股的主要成分,也是程序员需要重点培养的素养领域;
这里如果以转码学习为目的,功利性考虑选择王道考研教材速成,一周就能速成一本;
OS计网的实践项目练习,可能在游戏客户端岗位校招上,不会作为重点关注(简历上的6.s081、手写协议栈项目近乎没问过),有时间的前提下可以考虑找些开源项目作为练习。

图形学:游戏客户端方面,至少到今年为止,GAMES101吃透(注意是吃透)的前提下能保证客户端校招要求的图形学能力,就像闫老师说的“常看常新”,第一遍学完101感觉像是学到了东西但又说不上来,图形学注定是边实践边学的;
GAMES101的cpu渲染器写在简历上,要确保能清晰说明用到的光照模型与算法(实习面试惨痛教训),如有余力可以通过《learnopengl》项目学习gpu着色器相关知识(但游戏客户端校招一般不会要求那么深)

游戏引擎与通用游戏开发技术:对比跟学长要的去年前年的各种面经,能感觉到现在游戏客户端的岗位应聘,在没有特别拔尖的技术能力情况下,会考察游戏引擎架构、游戏开发常识等,表现在一些gameplay框架、事件系统、客户端服务器框架等等,还有一些游戏开发场景题、对动画、音频、渲染等小框架的了解;
这里就推荐想转码游戏客户端的,选择王希老师的GAMES104作为启迪课程,能了解到游戏引擎与相关技术的一些概念,同时装个ue、unity,去油管上找个demo教程,熟悉一下基本的游戏开发操作,简历上有个自己做的小demo,也有能跟面试官聊的话题;进一步深入可以啃啃《游戏引擎架构》(厚到现在菜鼠还没完整看完过)

其他一些有被问过的或者推荐学习的:Lua脚本编程、mvc/mvvm架构、TypeScirpt编程、编译原理等游戏开发技术或计算机技术,都算是加分项,面试官聊到如果会的话会留下很深印象的。
----------------------------------
接下来是一些技术学习外的一些规划建议:
首先决定好自己是否想入行,而不是平时喜欢打打游戏,通关多少游戏或者达到某个高度就能入行,建议是主动去找行业人士了解清楚,不仅仅是工作强度,还是xx风险,最重要的是游戏开发!=打游戏;
其次是转码问题,势必要面对需要在本专业的学习中如何挤时间的问题,个人评价是,该翘的课翘,该抄的抄,该水的水,大二之后除了通识数学课,其他课也就最后的考试月需要rush学习;
以及实习,一般大二下结束的暑假就可以准备找实习了,游戏公司的实习更多是想招来直接上手干活,实习面试考察更多的还是图形学、引擎技术,以ieg光子为例,挂的三次都是在图形学技术考察上(校招还是以计算机基础为主);如果能找到理想的实习,翘课代课啥的操作都能用上,国内本科教育谁在乎你的就业问题,功利点拜托舍友朋友帮忙不香吗。
--------------------------------

如今网上的教学资源丰富,又有以GAMES为代表的分享游戏工业技术的平台,自学硬件条件压根不是问题


#游戏公司求职##转码经验#
全部评论
佬,看看春招合集
1 回复 分享
发布于 03-24 12:34 陕西
大佬说的太好了,我也是非科班转的现在也是在面试实习,但是现在面试基本都是面了就挂感觉自己都有点害怕面试了,这种情况我该怎么办呢😢
点赞 回复 分享
发布于 03-15 15:05 四川
佬,相对长线的说完了,有没有给时间不够的速成选手的建议 或者 速成路线该着重学哪些
点赞 回复 分享
发布于 03-20 11:36 浙江
佬,想问下像腾讯网易这种会卡双非本硕学历么
点赞 回复 分享
发布于 03-22 16:30 河北
是不是游戏前沿技术部门 前同事
点赞 回复 分享
发布于 03-29 00:32 上海

相关推荐

不愿透露姓名的神秘牛友
11-15 11:54
已编辑
点赞 评论 收藏
分享
30 123 评论
分享
牛客网
牛客企业服务