前几天收到一个读者的喜讯。
他是一名文科生,不过他通过自学,在今年拿到了非常多的大厂实习 offer,岗位是前端开发。
我觉得他很厉害,而且他转行经历值得有这方面想法的同学学习和参考,所以我就邀请他写了一个分享稿,希望对你们有帮助。正文
我是来自某双一流高校的文科研一(保送本校),在今年 11 月份收到了阿里、腾讯、百度、字节、快手、滴滴、完美世界、商汤等几家厂的前端实习offer,应该是投简历的公司都给了offer。我的前端学习过程大概持续了大概有一年,也就是从大四上学期快要结束的时候到目前。《CSS权威指南》(上下)、《Javascript高级程序设计》(第四版)、《You don’t know JavaScript》、《Javascript忍者秘籍》(第二版)这些就是我的入门书籍,这四本中前两本我都是看了两边,都在 1000 页左右,后面两本则是草草翻了一下。这个过程为我打下了比较扎实的 JS 功底,大概是用了 2 个月的时候,我大概就能摸清楚原型/原型链、Promise/异步、闭包、Event loop等JS中的一些核心知识点了。我觉得一开始看视频会好一点,我自己学习的时候看书看不懂的地方也是去 B 站看相关知识点的讲解。紧接着的寒假,我就在家搞毕设,用 react 做了一个场外交易平台(导师做的方向偏向于行为经济学),使用node、区块链和数据库搞了一个全栈的项目。整个项目其实就是按照 B 站上的React目前播放量最高的那个视频(我看的时候刚出来没几天)学完之后写了一个应用,之后找了一些关于登陆注册、鉴权和状态管理的一些知识做了一些应用,整个项目就完善很多了(寒假剩余时间摸鱼)。大四下学期,开始补计网和算法的基础知识(前端这边操作系统问的少一些)。计网方面在 B 站看了中科大的mooc,讲的不错,看了自顶向下方法那本书,但是这些都不如小林哥的笔记比较好!!!不是我吹,我字节一面完全背的小林哥的笔记,面试官直接感叹:“我面了这么多人,从没有一个人像你一样说的这么细致的。”(得益于大学文科背书功底?)算法方面是看了《算法(第四版)》,youtube上看的普林斯顿的网课,跟着写了点代码,然后这个学期剩余时间几乎都在谈恋爱。接下来,就开始第一次面试。当时是陪对象去投春招,被 HR 拉着投了一个知名 K12 公司,当场被拉去面试,莫名其妙就过了。我看了一下名单上好像就一个人投了前端,好像那个人就在我前面,进去没多久就出来了,我自己却面了将近 3 个小时,写了 4 张 A4 纸正反向面。暑期就去北京实习了,亲身感受了一层楼一夜之间被开除的感觉。我在北京实习的时候,每天上班地铁上背小林的笔记,周末去公司刷leetcode,刷的方法就是按照题型刷一下。实习归来感觉自己太菜了,好多技术栈都没学过。回来之后补了 linux 的一些东西,看了docker,跟着 webpack 官网撸了一边,看了koa2、redux、react-redux源码,看了《狼书》(一二册)、《前端开发核心知识进阶》看了半本,再次去学习 JS 的相关基础知识。11 月份的时候看了看,牛客上的面经,感觉自己好像也可以进字节了,就去面试了基本上每个厂都给了offer,最后选择了去杭州阿里。我个人的感觉,知识的进步就会经历「知道自己不会」到「不知道自己会」的这样一个过程,每天学习一点点,每个月都去看一本书或者看一个小的项目源码,切记闭门造车这种行为吧,很多时候自己学了很久的东西,可能就是项目源码里面的一个很浅显的东西或者是书上都写着的,看视频很多时候是一个入门的方式,看书和源码是比较好的深入的方式。这段时间,好多次自我怀疑转行是否正确,能不能在秋招找到一个合适工作,我直到拿到快手的 offer 之前一直都觉得自己非常菜,快手的HR告诉我,“部门对你评价真的特别高,这边 Leader 专门跟我说一定要你来。”问答
为什么转行,因为原来的专业不好就业,如果读博的话,老板虽然也是业内大牛,但是我对这个方向不感兴趣,而且有一个室友是信息竞赛保送上来,他做的是前端开发,当时感觉他正在从事的事情很酷,然后受影响就去做前端了。总共学习的时间,除去整块玩的时间、准备毕设和修学分的时间,满打满算的话有7个月,老板不怎么push,干什么也不管。刚开始接触编程的时候会不会觉得很困难,你又是怎么克服的?
刚开始的时候的确很难,但是我的大佬室友带着我飞,手把手教我hello world,然后直到能到自己能写一些demo之后,感觉到成就感之后就更有动力。我觉得学习编程的前期找一个能问问题的老师真的很重要。算法题一共刷了 300 道左右吧,暑假去实习的时候,我住在青旅里面,室友玩的很不错,我告诉他们,我每天晚上下班回来刷三道题,周末为了省钱周末去公司蹭饭刷一天算法(包三餐),不会写的背下来就好了,把主要思路背下来整理个笔记,可以跟别人交流一下整体思路。面试时,面试过会介意你文科的身份吗?是不是等有相关的互联网实习,再去面一线大厂会更容易?
面试官不太会介意出身,我觉得只要技能点点满了就好了,这对文科生能否通过简历关很重要,但是面试官还是会问问为什么转行,想好这个问题就好了(我就是实话实说)。我觉得有第一份实习很重要,没有第一份实习很难找到后面的实习,我觉得我暑假的实习对于我下面的找工作有很大帮助。暑假实习的第一天跟导师沟通的时候,我直接告诉我的导师我实习期间想要得到哪些成长:当时,刚好我们组特别缺人,我基本上就是当正式工在用,这些需求都被满足了,这对我后面的成长帮助很大。但是第一份实习却很考验运气,很感谢上家公司给我offer。我的想法
以上就是这位文科生读者转行的心得分享了,接下里我说下我的感受。第一,他刚好有一个会前端的室友,抓住了一个被室友带飞的机会。这一点非常关键,因为单纯一个人学,没人交流会学的很乏味,而且很容易陷入困境。如果身边有一个可以随时交流的前端大佬,可以很快度过小白时期,有时候一个小小的问题,就能被一句话解决,而不是自己在网上折腾个几个小时。第二,他很善于利用网上的免费资源,他看的视频和做的项目,大部分来自于 B 站上的视频。这就是互联网带给我们学习上的便利,但是再怎么便利,还是得自己去搜并且学起来才是真有用,而不是百度网盘下载了几十 G 的学习资源就等于会了。第三,抓住了某 k12 公司的实习机会。他找的是前端开发,这个岗位相比后端开发没那么卷,而正好这家公司缺前端开发,于是就有了第一次在一家互联网方向的公司实习。有了这段实习经历后,对于他后面在面试一线大厂的时候,起到了很关键的作用,因为公司看到你有了一份实习经历,证明你自学的知识能实际投入到工作中,也就不会在意你是文科生这个身份,毕竟程序员是以技术能力说话的嘛。