个人介绍
张凯龙,我校建筑学专业2024届本科毕业生,秋招期间签约TP-Link联洲国际技术有限公司。
1:关于转行的决定
我大概是在大二下学期的时候就有产生过转行的想法,当时就是在学建筑设计的过程中感受到了迷茫,觉得自己可能不太适合搞设计,再加之对建筑行业当下发展现状的了解以及后面和一些学长学姐的接触,转行的念头就更加频繁了。但毕竟当时才大二,也没有什么对其他行业的了解,基本处于摸索、探寻方向的阶段。
到大三上学期的时候,基本上转行的想法就很坚定了,那个时候也综合考虑了很多方面来确定自己转行的方向是什么。对于建筑专业的人来说,转行大概有两个大方向:要么基于本专业的知识和技能转行到相关行业,要么就放弃自己对专业的执着转行到其他行业重新开始。前者我了解到的比如说平面设计、室内设计等等各种设计行业,或者是游戏设计、建模设计等行业,于我而言,一方面这些相关设计行业本身也是需要学习很多专业性的知识和技能的,转起来并不简单;另一方面这些行业毕竟还是属于设计的范畴,对于不太适合搞设计的我并不友好。所以我当时更多倾向的是选择其他行业重新开始。
那时候了解到的像互联网行业的一些职能岗比如产品、运营、客户经理、人力资源等等岗位,基本上对专业性没有太大限制,但是相对来说会更看重在校期间的一些校园经历、实践活动、学生工作等,而这些方面我也没有什么亮点,所以考虑过后感觉也不适合我。然后当时想到在大二的时候偶然接触过一些编程的东西,觉得还是挺感兴趣的,再加上这几年计算机专业的火热,综合考虑最终选择转码当程序员了。以上大概就是我决定转行的整个过程,只是些个人看法,有局限性,仅供参考。
2:关于转行的过程
一开始,我并不清楚该如何从一个完全不相关的专业转到计算机去,那时候转专业已经晚了,后来尝试申请辅修计算机专业,但因为申请的人很多,自己成绩不够靠前也没申请到。再然后就是了解到还可以通过考研跨考到计算机专业,很多尤其是传统工科的人都是跨考到计算机来实现转行的,我一开始也是打算要考研跨考的,大三上学期的时候还花了些时间去了解考研计算机要学哪些东西,还买了备考资料等等,可以说那个时候并没有想过直接找工作。所以我一开始是按照考研的方式来准备的,而且真正开始学计算机的专业课知识也差不多到大三寒假了,算是起步比较晚的。
之后大概是在大三暑假过后,可能是这半年多的转行经历让自己有了更多想法和思考,我发现自己很难拿出好的状态去考研,而且自己其实并不想读研,不适合做学术研究,更想尽快步入社会来锻炼自己,同时也了解到虽然跨考研究生是转行最合适的方法,但也还是有非科班的本科生直接转行的案例的。当然,如果跨考成功,就是科班生了,还有三年的时间来补足基础、充实背景,在学历敲门砖和个人能力提升方面肯定是要比本科直接转行的人更有优势的,也更容易进大厂,现在很多大厂学历门槛越来越高,像本硕双9的话基本就是顶尖学历了。我知道自己本科直接转行的劣势,基本上除了华科的学历之外其他一无所有,考虑到我没有什么大厂情结,于是我一开始的期望值就放低了很多,想着能有公司要就行,后面再慢慢积累提升,所以最后拿到offer的时候还是很惊喜的。
我的整个准备过程大概是大三下学期的时候主要学了计算机的一些基础课程,大四上学期学了Java编程语言、项目框架搭建、做项目,大四下的时候继续完善项目、看面试资料和面经、准备简历、浏览各大招聘网站和公司官网,然后就是秋招。其实我的整个时间安排是不合理的,起步晚节奏慢,因为自己不了解别人科班生的找工作节奏和流程,所以这里的教训就是一定要多去牛客等论坛看一看别人进行到哪个环节了,跟上其他人的节奏。现在看来,最好是能在大三的时候就学完计算机相关的基础课程和编程语言,并尝试做一些项目,然后在大四的时候重点准备项目和面试所需要的其他知识,尽量找到不错的实习,给自己秋招增加取胜的砝码。
3:关于转行的准备
开发岗找工作和其他岗位的区别还是很大的,我在这里简单介绍一下相关内容。不同公司的招聘流程和要求不尽相同,但一般都有笔试和面试两个部分:
笔试:考察内容主要包括算法题、计算机专业课程的基础知识、应聘岗位所需求的代码语言相关知识等等,很多公司还会在笔试环节增加一些类似行测、心理测评的内容。算法题的话首先要学一下数据结构,然后就是到LeetCode、牛客等网站刷题,遵循一个由易到难的原则,把简单难度和中等难度的题先掌握,困难难度的题一般考察的相对比较少,刷的时候也可以优先刷比如Hot 100题、经典150题等题单;计算机专业课程的基础知识一般是选择填空题,主要包括操作系统、计算机网络、计算机组成原理等课程的内容,需要在学这些课程的时候掌握一些重点就可以;代码语言相关知识一般也是选择填空题,就是和你应聘岗位的语言要求(比如Java、C++、Python等)相关的内容,这些一般在学语言的时候都会学到;最后行测和心理测评类似的内容不是特别重要,大概看一些题总结一下方法就行。值得注意的是,不同公司对笔试成绩的态度也不同,有的公司就会说笔试成绩不影响进入面试,而有的公司可能会因为笔试做的太差而结束招聘,尤其是算法题做的太差的话,所以算法题很重要。
面试:面试一般要经历3面左右,其中前2面(专业面)主要侧重考察个人专业能力水平,最后一面即终面一般是hr面或主管面,更侧重个人经历、个人品质的考察。专业面主要包括自我介绍、代码语言知识考察(又称八股文)、项目经历考察、实习经历考察、算法题考察等。自我介绍部分重点介绍一下自己的学校、学过的课程、做过的项目、实习经历等等,如果有亮眼的竞赛奖项等也可以说。然后就是面试官考察能力的环节,会包括很多内容,但基本上是根据你简历上写的内容提问的,比如根据你掌握的技能提问你一些技术、代码细节(这部分很多问题是有标准答案的,所以也叫八股文);根据你的项目经历提问你该项目的具体技术实现、某某部分是怎么做的;根据你的实习经历提问你在实习项目中主要负责什么和一些技术实现细节等等;很多专业面也会有手撕算法题的环节,面试官当场出题,然后给你十几分钟左右的时间做出来,很多时候面试一开始就是手撕算法题,面试官会根据你做的结果决定后续面试的节奏和流程。Hr面(主管面)的自我介绍部分可以侧重讲自己的校园经历、学生工作等,面试官会问的东西也很广泛,常见的比如团队合作、时间安排、人际关系处理、为什么转行、本专业对转行有什么帮助、如何看待该行业,甚至会问一下家庭情况、个人情况之类的,这个环节就和其他专业的面试差不多了,区别就是基本没有群面,都是单独面。开发岗的每次面试都相当于一次现场考试,所以每次面试过后,一定要总结该场面试中没有答上来或者答的不好的地方,及时巩固和复习。
作为一个转行的本科生,上面提到的像算法题、八股文这些东西可以自己找资料自己学,而项目经历、实习经历、竞赛奖项等内容就相对比较难了。项目经历的话,大多数人一般都是选择去B站、微信公众号等地方找一些机构的编程教学项目实践,这些项目的优点就是比较详细,可以自己跟着做,缺点就是太烂大街了,很难有亮点,还有一些公司比如字节跳动会在寒暑假开展青训营,是一个线上形式的学习+组队项目的练习,如果时间充裕也可以参加一下作为自己的项目经历;实习经历更难,因为大多非科班专业没有时间去进行别的行业的实习,近年来随着找工作越来越卷,实习经历越来越重要,目前现状就是如果缺乏足够有含金量的实习经历的话,进大厂是很难的;竞赛奖项属于是锦上添花的东西,一般那些特别有含金量的专业竞赛,非科班也不容易接触到,而类似蓝桥杯这样偏大众一点的算法竞赛,除非成绩特别特别好,否则含金量也不大,对于非科班的人来说算是聊胜于无吧。
以上是对开发岗找工作的一些简单介绍,如果有兴趣详细了解,网上的教程资料很多,也很方便找,我用过的网站和工具主要有慕课(学一些计算机基础课程)、B站(基本什么资料都有,一些机构的编程教学等)、牛客(校招生交流APP,还能刷题)、LeetCode(刷题)、微信公众号(比如JavaGuide、小林coding的八股文整理)等等。当然,开发岗也有不同的方向,比如前端、后端、客户端等等,不同方向、不同语言的面试内容是不一样的,有兴趣可以自己去了解,我个人选择的是后端,以上经验分享也只针对后端方向。还需要注意的就是像建规等专业秋招一般是9、10月比较集中,俗称“金9银10”,但如果是互联网相关行业的话秋招就会比较早,很多厂基本7月、8月就陆陆续续开始招聘了,所以如果真的想到互联网相关行业工作的话,一定要尽早投、多投、多尝试。
4:关于转行的思考
转码有风险,入坑需谨慎。前几年计算机和互联网行业火爆,转码的人很多,每年都有大量应届生输送到社会,还有社会培训机构的参与,行业迅速趋于饱和,再加上近几年经济形势的变化,行业本身也在从存量市场向增量市场转变,内卷加剧,不少人也开始找寻其他出路。裁员、不稳定、35岁危机、996、内卷……这些都是真实存在于该行业的现象,如果真的打算转行当程序员,一定要想好自己能否接受目前的行业现状。
转行的过程是煎熬的,要面对很多未知和不确定,会经常动摇内心,会怀疑自己的决定和想法是否正确,这是一个摸着石头过河的过程。我个人的建议就是不要给自己太多压力,相信自己的能力,在能力范围内尽最大努力就可以了,收到offer的那一刻就能体会到一切煎熬和努力都是值得的。
5:结语
转行的过程就像一场对自我的深度探索,每一步的跨越都在重新认识自我,让我们更加清晰地知道自己想要什么,更坚定勇敢地追逐梦想。祝愿大家都能找到自己理想的工作,加油!