微信号:bit_tiger

介绍:“有趣,有用,有效”.刷项目,做实战,捅破技术的那层纸.

转专业如何快速冲刺 SDE 高薪 Offer ?

2018-05-17 02:10 BitTiger

今天我们讨论的内容是:作为转专业学习CS的学生,要怎么更快地入行、快速地进阶?


项目、刷题,究竟应当谁先谁后?

 

 

大家都知道刷题很重要,但是“唯刷题论”也不见得完全正确。刷题确实是面试必备,但并不是唯一的必备。项目能帮我们提升简历拿到面试,刷题能帮我们通过面试。那么究竟应该如何判断两者的先后顺序呢?

 

首先我们来自我测评一下,以下是简历投递回复率和算法刷题低级标准。

 

  • 简历回复率

    • <7%的回复率,简历有极大的问题

  • 算法解题与交流能力 - 低级标准:OA/电面

    • 45min做不出两道Medium旧题目

    • 45min做不出两道Medium新+旧题目

    • 45min做不出两道Medium新题目

 

按照100份简历为例,如果回复率低于7%,那说明你的简历存在很大的问题,导致面试官认为你技术背景和专业能力并不能胜任这个职位。这时候你就需要赶紧进行反思了,很可能的情况就是业界经历不够,项目经历缺乏,技术能力薄弱



至于算法解题能力的评定,以最基础的OA为例,45分钟时间内如果能完成两道Medium的新题并且BugFree,那么基本具备了通过OA的能力。如果你是以下任何一种情况,那么面试准备需要进一步的加强:


1. 在45分钟内完全没有思路、

2. 有思路但写不出来,coding 能力跟不上

3. 能顺利地写出来,但是跑不通

 

通过以上简历和算法算题两方面的判断,大家就能够比较快速找出自己的短板所在,但是应该优先项目、优先题目、还是两者同时开始,需要进一步分析个人的求职时间点。

 

如果你时间充裕没有身份限制,那么可以选择先刷题,再慢慢补项目。有了做题的基础,会间接地加速做项目的过程,也可以更好地将算法的思想运用到真实项目中去。如果目前毕业时间临近OPT已经或者即将开始了、找工作迫在眉睫,那么不要犹豫,两者必须要同时进行。

 

有学员看到这里会有疑问,例如最后一个学期了,学校方面仍然还有很多事情要做该怎分配自己的时间么?设想,如果你原专业是化工材料,那么你以前的专业知识对你现在的求职进程没有实质性地帮助,换句话说你的GPA再高也不能逆转转专业的现实。因此不如每天拿出两三小时做项目,三四小时刷题,这样才能更快走上CS这条路。

 

转专业同学常见的误区有哪些?



1. 死啃课本 - 按部就班学习基础课

 

要知道,作为一个转专业的学生,你一方面可能学习时间不够,一方面由于完全没有基础,也没有接触到实践的内容,会导致你丧失动力、学不下去。

 

2. 只抓面经题 - 知识范围小

 

有的同学花大量的时间收集面经,认为只抓面经题就可以了,面经考什么我就学什么。但实际上,面经真实性有待考察,并且是否能够真实还原题目考点也是一个需要思考的问题。不是所有的知识都会在面试中出现,面试中出现的也绝非全部的知识。面经不重要,真实的带有考点还原的面经重要。你一定要有扎实的基础,才能在面试中像专业学CS的人一样游刃有余。

 

3. 知识点顺序混乱 - 不成体系

 

转专业学员最大的难题在于知识点凌乱,觉得需要学习的东西太多太杂,所以今天学点这个明天学点那个,结果都只掌握了最基础的面试中很少涉及的内容。当然还有很多其他的误区,我们不一一赘述了。

 

怎样才能高效、系统性地学习?


注重实践,把学到的东西在实践中、项目中串起来。实战出真知,看代码不等于写代码。找到有经验的老师带路,精辟省时高效。另外需要补充项目,实际应用流行技术、框架和数据库等,在实践中,印证理论基础,并能够理解在工业应用中的常见常考问题。




如何系统掌握CS方向的各个知识点?



如图最基础的数据结构和算法你要懂、核心的语言要掌握,操作系统,数据库,网络和软件测试一个都不能少。


难道都要掌握吗?是也不是。以网络与网络安全与软件测试为例,这些并非必备“have to know”,但可以说是“good to know”。尤其是软件测试,它对于工程师来说,是其本身必备的一种能力。很多公司现在已经没有专门设立做测试、或者QA的团队。很多时候作为一名工程师,你是需要自己拥有测试软件的能力的,这已经成了基本功。


接下来是比较高级的内容了。这些知识是难点,但也是你必须要掌握的核心竞争力。



图中我们罗列了云计算、Wed开发、移动开发等非常多不同的选择,但大家在实际学习中要确定一个大致的方向。比如你想做大数据,可以学一学云计算;如果你喜欢IOS、安卓,就要去学一学、做一做移动开发相关的内容。更可以尝试全栈开发,包含更多的技术内容,能够在深度和广度上分别提升。在真实的项目中可以系统地学习和运用这些知识技能。


为什么做项目能帮你掌握相应的知识?


举个例子:

  • 选业界常用语言,学习基本语法 - javascript, Python

  • 从简单项目着手,学会基本网页搭建

  • Download Wallpaper - Web相关知识,e.g. HTTP协议等基础内容

  • 解析网页 - html解析库,e.g.Beautifulsoup

  • 做网站展示 - web开发,e.g. Flask,django

  • 优化前端 - html,css,JS进阶到react,angular

  • 储存并对应图片及描述信息 - 数据库,e.g. MySql,MongoDB

  • 部署网站 - Linux,Nginx

*Source:https://www.zhihu.com/question/22426146/answer/221010029




首先我们一开始肯定是要先学最基本的语言,比如学了javascript或者Python。接下来,我们先从最简单的项目着手。比如说要下载一个壁纸,那么你就要先知道HTTP协议的一些基础内容。在这个过程中,你就将实践和知识对应起来了。接下来我可能又要做解析网页的工作,那么就会利用到Beautifulsoup这个工具,再次结合到自己的知识。同样,做web展示会涉及到Flask、django这些架构。下载壁纸的时候要把信息爬下来,如果将描述信息对应起来又牵扯到数据库的问题。MySQL、MongoDB,什么时候用哪个,这些都可能是面试中会出现的问题。要部署网站,则又提到了linux、Nginx……综上所述,各个知识点其实都会在项目中串起来。


当然,如果你在简历中仅仅写了自己做过壁纸下载的项目也是不够用的,毕竟作为转专业的同学你要明白与你竞争的都不乏CS科班出身并且身经百战的人。那么如果你想要更进一步,就要继续学习。



比如刚才提到的基础网页搭建。你要学习用JS、Angular做前端,还要掌握RESTful的使用、用WebSocket实时同步更新。另外像Angular这样的内容你可能还要随时keep up,一直学到最新的。以上只是基础的部分,那更进一步呢?前端还可以用React。什么时候用React,什么时候用Angular,是否应该继续拓展了解一下?是不是可以通过做一个项目,再学一学Machine Learning?刚才做壁纸下载,我们只是把信息爬下来,进一步是不是还可以用TF-IDF实现查重?或者用NLP再进行筛选,看看哪些有用?如果这些都掌握了,你的能力也就在实践中细化了。



以上是web方面的内容。那么如果有的公司不仅想要web端,还希望你掌握移动端呢?两者的后端可能差不多,但移动端也有一些其他的特性。比如手机有GPS功能、拍照功能,那么是不是也得把这些东西捆绑起来,做一做相关的应用呢?



再接下来,如果你web也能做了、手机端也能做了,那么你是不是还可以思考一下,怎么样让你的整个server、整个系统运行地更好?这就涉及到Java后端、云原生开发相关的内容。有的同学告诉我他们在学校里接触到了云原生相关的项目,但这些项目可能还是相对简单,和公司中实际的内容还是有差距的。用云原生不仅仅要会hosting,还要让学会如何做得更scalable、dependable。这些都考虑进去了,才算是真正了解到了这个行业的内容。最后再提到我们刚才反复说的健康检查、软件测试的能力,你可能还要了解静态动态、黑盒白盒等各种测试的类型。测试的点也不同,包括单元测试、集成测试等等。把这些都摸清,才能让自己成为一个真正懂行的人。



从技能准备方面来说,希望大家还是能在夯实基础知识的同时、强化实战经验。两者一定要同时进行,尤其是在时间紧迫的前提下。


当然比起大数据,全栈更适合转专业的学员入门。我们推出了CS503 全栈开发实战精品课,帮助学员扎实Coding能力,完成高质量工业界火热项目提升背景,全面掌握系统设计思维,在3个月内学习4个高强度Full Stack工业级项目,达到业界要求成功获得SDE Offer。


从技能准备方面来说,希望大家还是能在夯实基础知识的同时、强化实战经验。两者一定要同时进行,尤其是在时间紧迫的前提下。

 

当然比起大数据,全栈更适合转专业的学员入门。我们推出了CS503全栈开发实战精品课,帮助学员扎实Coding能力,完成高质量工业界火热项目提升背景,全面掌握系统设计思维,在3个月内学习4个高强度Full Stack工业级项目,达到业界要求成功获得SDE Offer。


课程内容


高强度专业培训


第一阶段:CollaborativeOnline Judge System

阶段目标: 实现类Google Doc在线协作编程、Online Judge代码自动测试系统。

技术:Javascript,Angular,Node.js, Express, Redis, MongoDB, Docker, RESTful API, Nginx

 

第二阶段:“今日头条”新闻挖掘与推荐系统

阶段目标:实现新闻服务的Web 前端与后端,健全的数据采集系统,机器学习离线训练与线上预测系统。

技术:Python,React,Node.js, Express, Redis, MongoDB, Tensorflow, NLP

 

第三阶段 :“今日头条” iOS APP开发

阶段目标:实现扩展版iOS今日头条App。

技术:Swift,Xcode, iOS simulator, TestFlight online distribution, Cocoa Touch, UIKit,MapKit, Cocoapods, TesseractOCR

 

第四阶段 :实时定位跑步系统

阶段目标:实现一个类似Nike+Running的实时位置模拟和追踪系统。

技术:Java,Spring, Spring MVC, Spring Boot, Spring Data, Spring Cloud, JPA, RabbitMQ,WebSocket, REST, HTML, Bootstrap

*点击阅读原文查看详细课程大纲。

      

学员保障


每位学员在一年内都有一次回听本直通车的机会,课程内容升级、加深、改版,均不会额外收取费用。确保学员更好的掌握所有知识点,应对求职趋势,全面提升面试能力。

 

课程详情及安排


复制链接或点击阅读原文 

http://t.cn/R399ncn


课程咨询


30分钟与课程组老师一对一咨询,帮助你分析问题及寻找解决方案

添加负责老师微信,备注“全栈”

课程组老师会在收到简历后24小时内进行简历背景评估,并电话回访及Career指导


部分最新Offer英雄榜



 
BitTiger 更多文章 从零收入到突然收到Google Offer一夜暴富是种怎样的体验? 沁原算法|为什么他们只刷了200题就进了FLAG? 单线程架构的Node.js如何实现异步操作? 爬取了7年1500万个GitHub活跃账户,程序员比例最高的国家竟然是…… 免费试听 | 求职全栈工程师必知—Node.js架构及项目应用
猜您喜欢 2015年JavaScript开发者调查报告。 周一鸡血 | 如何成为一名数据科学家?| 数说 · 精选 做女程序员是什么体验? 歌剧小杂文(1)-五虎大将