前言
时间回到2018年年底,我还是一个连C语言 Visual Studio、Java Eclipse这些最常见的IDE没打开过的小白,
由于现有本科专业是机械,属于知乎典型劝退专业,并且研究生依然在本专业读研,起初并没有什么转行的念头。
然而临近毕业,发现自己的行业薪资低、前景惨淡,镇定思痛后决定转行迈入IT领域,
凭借着正确的打法和战略,通过大半年的学习时间,我成功拿到了华为的顶薪offer(30w+)。
这篇文章的目的主要是帮助和我一样的0基础小白,采用什么样的打法来迅速入门,
在秋招季拿到自己心仪的offer。
前期准备
在2018年12月份左右我开启了转行的前期调研工作,由于自己是非科班出身,缺少计算机基础,
我首先考虑的是入手若干计算机教材进行学习,此处我参考的是中山大学硕士生CyC2018的书单,
但由于该书单更多针对科班学生,且数量过多(在部分内容上推荐了2本书以上,
其实我们只需取一本来看,此外包含一些竞赛类书目我们也可以略去不看),
推荐顺序上没有按照重要性来排序,因此我根据自己的实际学习经历,重新调整了书单,
共计12本,严格按照转行的同学最适合学习的顺序排序:
1、《算法(第 4 版)》

2、《数据结构》

3、《现代操作系统》

4、《计算机网络:自顶向下方法》

5、《TCP/IP 详解 卷 1:协议》

6、《鸟哥的 Linux 私房菜》

7、《MySQL 必知必会》

8、《Head First 设计模式》

9、《Redis 设计与实现》

10、《大型网站技术架构》

11、《剑指 Offer 题解》

12、《程序员代码面试指南:IT 名企算法与数据结构题目最优解》

这里需要额外说明下:《鸟哥的 Linux 私房菜》和《Head First 设计模式》,
这两本属于内容比较多,书比较厚的书,但是在秋招笔面试过程中相对要求不那么高的内容,
也就是如果花费过多时间占用宝贵的复习时间的话,性价比不是那么高,建议在复习这两本书时控制下进度,
不要过慢,甚至可以先行搁置,回头再以突击的形式进行学习。
这些大部分都是一些经典教材,可以在网上买到,也可以从学校的图书馆借到,如果觉得比较贵的书籍,
可以从淘宝买二手资源或者电子版,我个人的话还是推荐纸质版,阅读起来相对比较有感觉。
——————————————————————分割线——————————————————————
准备好了教材,就要做好时间规划,我自己当时的时间规划是这样的:看书的进度控制在一个月3本左右,
也就是大概10天看完一本,其中最为重要的是《数据结构》、《算法》这两本书,
可以说无论你去面试哪家公司都会考察算法与数据结构,可以说学到就是赚到,
希望还在学习的同学们在这本书肯下大功夫。总体上要控制在实习生招聘(集中在3-4月)之前,
基本搭建好自己的知识体系,并且有一个相对能看的简历。
很多非应届毕业生或者刚转行的同学可能并不了解实习的重要性,尤其是IT领域实习的重要性,
如果想去大厂的同学,请务必在3-4月拿到一份实习offer,这是去大厂最好的敲门砖,
因为实习可以通过转正答辩直接拿到大厂的offer。就好比高考是一条人生捷径一样,
不是说不实习秋招就不能去大厂,而是目前被无数次证明过实习转正是去大厂的最好的捷径没有之一,
对于非科班的学生更是如此。即使你没有时间去实习,你还是要去参加实习生面试,
因为这样可以帮助你提前了解企业的面试流程,在面试中你可以得到反馈,知道自己的薄弱点在哪里,
4-7月就有更加针对性地复习,这样秋招的时候你就已经快人一步,把竞争对手甩在了后面。
此外,部分企业如阿里,如果你通过了实习生的面试,拿了阿里的实习生offer,
即使你没有去实习,秋招是可以直通终面的。总之,我强烈推荐大家认真备战准备春季的实习生招聘,
打好走向大厂的第一枪。
在4-7月属于春季招聘到秋季招聘(主要是在7-9月)之间的一段空窗期,
这段时间要开始结合leetcode网站开始刷题,可以从leetcode 热度top100题开始刷起,
题目难度主要以easy和medium为主,时间不要超过两个月,边刷题边学习。
项目经历
对于部分同学,一些转行的同学来说,项目经历是一大痛点,我们以前学的根本就不是计算机,
哪里来的项目经历?这里如果你已经拿到了实习offer,恭喜你实习经历可以很好的填补这一块空白,
如果你没有拿到实习offer或者没有时间去实习,我们可以借助Github一些众多的开源项目,
在项目的基础上进行改进,加入自己的创新点。我们也可以在Bilibili上搜索“java实用项目”
“C++项目”,也有一堆项目的视频教学。项目有很多,挑选一个好的项目来做很重要,
简历上一份烂大街的“XX电商项目”可能不会让面试官眼前一亮,一个还在使用SSH框架,
这种已经过时的技术的项目可能也不是一个好项目。
如何判断一个项目是否是一个让面试官欣赏的好项目?它应该满足如下条件:
1、有一定的技术难度
这个很好理解,如果你的项目里面都是CURD,维护性的功能居多,面试官无法判断这个项目的价值在哪里,
也就不是一个简历加分项
2、技术与企业主流需求匹配
如果目前主流的技术框架是SpringBoot、SpringCloud,那么企业肯定更偏爱有相关开发经验的人才,
而不是一个项目经历中使用的还是10年前技术框架的同学。
3、项目选型新颖
这个相对来说有一定难度,如果不是自己的科研项目,很多同学从网上搜索到的项目都容易落入俗套,
例如”某某电商项目”、“某某后台管理系统”,对于面试官来说,这样的项目见得太多,容易审美疲劳,甚至觉得你可能是从网上直接照搬到简历来的,印象分大打折扣。找项目是个技术活,有心的同学可以多在网上搜索搜索,也可以是来自生活的灵感,做一些有一定的创新性的项目。