本文首发于作者个人微信公众号:Myoung。

之前提到要写一篇关于自己转行到互联网的过程,这篇文章就是来兑现诺言的。BTW,这里说的是转行做技术哈,也就是研发,说的也是针对大多数人的普适性经验。话不多说,直入主题。
转行码农的有两种,一种是像笔者这样,在学校的时候就开始转,作为应届生直接转行;另一种是已经工作了,然后再转行的。显然,在学校的时候转行更容易些。一是在学校的时间多,你可以在没有太多生活压力的情况下去学习;二是各个企业对校招生的要求比社招的要求要低。
本文介绍的是校招转行互联网的相关经验,可能对社招有一定参考意义,自行度量。

1  时间

你当前还在学校,不管因为什么原因,想转到互联网。首先第一步就要安排自己的时间了,可以依据自己的情况来合理安排,比如学习能力、每周可以拿出的额外时间。
学习的截止时间最好到研二结束,那时就要完成所有准备知识的学习,并能够获得较好的成果。因为很多公司在研二的暑假就开始提前批次的招聘,所以从暑假开始就要着手准备开始投递相关公司和岗位了。笔者当时的经验是,研一马马虎虎学了一些,研二没有课程后,拿出了很多个人时间,所以主要的知识学习都在研二一年完成的。

2  方向

对于在校生来说,尤其是非计算机和软件专业的在校生,可能并不了解每个方向具体做什么,所以笔者个人认为选择方向可能并没有那么重要。当然,如果你通过其他渠道的了解,知道自己想要学习什么,或者以后想做什么,这样更好,可以根据具体方向,选择语言、要学习的知识体系。比如,要转去做人工智能,那需要学习人工智能方面的知识;要去做机器视觉,那就要学习机器视觉的知识。
其实不管做什么方向,基础都是最重要的。这里只针对具有普适性的转行生来说,因此只考虑基础性的东西,也姑且认为读者们没有特别要学习的方向。

3  基础

基础是最重要的,尤其对于在校生。你没有工作经验,又不是科班出生,而和你竞争的大部分人都是科班的,学习过基础课程,有相关项目经验。你想想你的竞争力是什么,就是打好基础。
简单总结下需要打好的基础:
  • 语言

    你肯定要学习一门语言,这个是必然的,不然怎么 coding 呢?在笔试、面试的过程中,都需要写代码的,语言这是必过关。要会使用语言,了解语言的特性和相关知识点。
    笔者当时先学了 C/C++,后来转向 Java 了,主要是考虑 Android 使用的是 Java,而且 Java 确实容易些。就目前的市场岗位来看,Java 的岗位需求量仍然是比较大的,而 C/C++ 的岗位很少。
  • 算法

    算法主要是两个部分,一是数据结构,二是智力题。需要熟悉常用的数据结构,比如链表、数组、二叉树等。还需要能够使用数据结构解决常见的问题。还有常见的排序算法、二叉树算法、数组操作等。智力题在面试的过程中也很常见,比如一个五升和一个三升的桶,怎么量出一升的水。
  • 网络、操作系统

    网络基础和操作系统基础也是笔试和面试的常客。它们是反应最底层逻辑的,非常容易考察,尤其是常见的考察点,比如三次握手、补码等。

4  投递

在正式投递之前,在网上多找些往年各大公司的笔试、面试资料,了解各个环节的考察点,自己多做上几套找找感觉,常见的题目也能碰到。到了正式找工作的环节,首先要多尝试,多关注各个公司的招聘动态。很多大公司在暑假的时候就开始提前批次的招聘,这个批次的招聘一般和正式的校招不冲突,建议找在这个公司工作的师兄师姐投递,这样相当于这家公司你有两次机会了。
如果自己不够有把握,可以先投递一些小公司或不太想去的公司去练练手,一定要多尝试,可以采取广撒网的模式。当然,如果你很有把握或者能力足够好,很早期就拿到了满意的 offer,那基本这次转行万事无忧了。
最后想说的是,一定要有自信,不要觉得这个公司要求好高,竞争的人这么多,自己能力不够等等。面试虐我千百遍,我待面试如初恋。要有自信,上去就是干!笔者和笔者的朋友,当年被各种大小公司虐的惨不忍睹,后来也都拿到了大公司的 offer。说到满意的 offer,对于应届生,建议首份工作选择大公司。大公司有相对完善的培养机制,有更好的项目和氛围,有更优秀的人才,你会得到更好的成长。如果你对某个小公司有信心,觉得是一个机会,那也可以跟随自己的心去选择。这只是针对大多数人的普适性建议。

5  推荐书籍
  • C/C++:《C++ Primer》

  • Java:《Java 编程思想》、《深入理解 Java 虚拟机》

  • 算法:《大话数据结构》、《算法导论》(可以啃啃)

  • 网络:《计算机网络:自顶向下方法》、《TCP/IP详解》卷一

  • 系统:《深入理解计算机系统》


那祝转行互联网的你们,都能成功吧~