【转码百科】零基础“转码”应该怎么做?

想必点进来的同学,都或多或少对SDE/Data/UIUX/PM等科技岗位报以憧憬(“好想找一份这样的工作啊”)或者满怀自豪(“没错!我就学这个的!”)。

确实,这是个人待遇最高发展前景最好社会认可度最大(或许还要加上速成)的一类职业。

那么零基础跨专业求职该怎么做?

1. 你不是孤军奋战

2. 从零开始,大道至简

3. 你已经是个成熟的转“码”人了!

4. 写在最后

你不是孤军奋战

想成为高端技术人才,往往只需采用最朴素的编程方式:

“Ctrl C + Ctrl V ”开始即巅峰!

开玩笑的,从零开始转码转Data,对绝大多同学来说其实是个快速劝退的过程:


你严肃的制定了学习计划,尝试按照timeline步步学习,找了各种资源各种视频……但是,往往只过了一星期(甚至只是几天),你就会感到茫然,扪心自问学会了什么?你得不到答案。 

从零开始,大道至简

我们尝试学习,列出各种各样的知识模块,但由于缺少明确规划系统性指导,往往手忙脚乱。

确定大方向

首先必须明确,你的目标是转Data还是转SDE?

对我们大部分人(天才除外!)来说,SDE与Data只能取其一

这两个方向考核的面试知识只重叠了很小一部分。另外,即使是同一方向,不同细分领域的要求也很是不同

盲目准备,历史重现

选择细分方向

SDE和Data都有哪些细分方向?

SDE

1. Frontend Software Engineer

2. Backend Software Engineer

3. Fullstack Software Engineer

4. Mobile Software Engineer

5. Desktop Software Engineer

6. Embedded Software Engineer

7. Game Software Engineer

8. AI, MLE(CV/NLP)

Data

1. Data Scientist

2. Data Analyst

3. Data Engineer

4. Business Intelligence

5. Business Analyst

6. Product Analyst

不同的细分方向,有着不同的工作内容。它们在市场上的职位数量,未来的发展机会,使用的语言框架都是不同的。

网上所谓“如果难以抉择,在开始一星期把感兴趣的语言都尝试一遍,选出适合自己的”说法,其实是非常一言难尽的。

对于跨专业求职的人来说,语言不能随便选。实际理想情况应该是在充分了解细分方向后,根据自己的兴趣或者技术背景优势,根据该方向的常用语言框架再做选择

况且,一周时间对于一门语言来说,连熟悉syntax的时间都不够,更谈不上了解了~

熟练白嫖

注意,上述这个建立从0到1的过程,是你的最佳(或许也是唯一)省钱阶段

以Data方向为例,同学们可以先到Coursera去上一门课,IBM的Introduction to Data Science

想要往数据方向走的话,建议先尝试上一下这门课程,铺一个最简单的基底。

最简单的东西都不需要花钱(为了吸引流量)!网上资源特别多,去CourseraUdemy这样的平台学一学看一看,省钱又快乐!

当你学完了基础,想要建立从1到2,从1到10,乃至从1到100的过程时,网上能获取的信息开始逐渐变少,想要深度挖掘只能靠自己去读paper……不但要一点点去啃,而且还要分辨知识的准确性可用性,这是多么痛苦的事……

你已经是个成熟的转“码”人了!

如果你已经打下了一定的基础,算是初窥天机,可以开始下一阶段的学习了。

大佬押题准!

这次我们以SDE方向为例。同学们在掌握了非常基本的语言内容后,是时候学习以下内容了:

1. 树

树的定义以及分类

二叉树非递归的前中后序遍历

二叉树重构

二叉搜索树的定义,添加,查找和删除

平衡二叉树定义

Trie树定义和实现

面试中二叉树复杂题目解答技巧

2. 栈

栈的定义以及定义相关面试考点

面试中单调栈问题的讲解

3. 哈希表

Hashmap的基本含义和接口

Hash Function以及collision的含义和解决方案

Hashmap基本习题和在面试中解题的运用

4. 堆

堆的定义以及实现方法

面试中堆的题目类型和基本习题

面试中堆的hard难度习题

 

5. 图及拓扑排序

图的定义以及拓扑排序的定义

图的常用习题精讲

拓扑排序习题精讲

实际面试中图及拓扑的题目讲解

6. 递归

递归基本概念及使用方法,尾递归定义

简单递归问题

复杂递归问题

面试中常见的递归题目考察方法

7. DFS

DFS含义及与BFS的比较

二叉树内部的DFS使用方法

复杂问题的DFS分析

DFS在面试中的应用

8. BFS

什么是BFS?BFS具体定义和方法

二叉树内部的BFS使用方法

复杂问题的BFS分析

BFS在面试中常见题目解析

面试中DFS和BFS均能解决的问题特征分析

9. 动态规划

动态规划基本定义和使用方法

简单动态规划应用问题解析

中等难度动态规划应用问题解析

复杂动态规划应用问题解析

动态规划如何巧妙解决面试中的常见问题

10. 排序

多种不同排序在时间复杂度、稳定性、空间上的比较

Java中sort库的使用方法

桶排序思想的问题精讲

其他排序问题讲解

面试中常见的复杂排序问题

11. 位操作

基本位操作的方法和技巧

位操作的常见习题解析

面试中如何巧妙运用位操作解决问题

12. 操作系统考核要点

线程和进程

生产者与消费者问题(producer and consumer problem)

多线程与死锁问题分析

Java和C++中的栈和堆在操作系统级别的特性

面试中常考的Java线程及内存相关关键字和常量池

内存优化问题的探讨

13. 面向对象设计

继承(对象及函数)问题

组合及参数化问题

接口(interface)问题

设计模式常考点总结

14. 系统设计

系统设计题分类和基本知识点

系统设计题思考模式和答题技巧

数据库在系统设计中的应用分析

面试中其他系统设计常见考点

面向对象设计答题和思考技巧

最新面向对象和系统设计面经题目精选

……

这四大模块内容是重要考点:

1. 数据结构与算法:在北美大厂考核里,能占到60%~70%的比例(公司越好!考的越难)。

经验丰富的导师,可以压中考题

2. OOD & Design Patterns:OOD考基础知识,比如什么是encapsulation, interface, api, 如何用interface等,有时也会考一个落地的带有功能导向的小型应用场景,比如怎么去用诸如Factory Pattern, Observer Pattern, SingletonPattern等Design Patterns去完成这种场景的设计。

3. System Design:应届生的话,答题方向有基本的sense,参考模板式答题方法,不会太减分(反之,工作的越久,职级越高,考的轮次越多,题也越难)。

4. 其他基础知识(组招大型公司+中小公司更常见):如Operating System,  Computer Network, Database等方面的基础考核。

写在最后

“转码一定要数学特别好”

“必须要有CS学位”

“女孩子优势大,无脑转就是了”

……

提到跨专业求职,我们总被一个又一个的刻板印象迷惑着

际上——

高中数学就足够应对;

CS学位不是必须;

女孩子面试bar不会降低,不过由于Diversity可能会有加面机会……

际上——

跨专业求职并没有那么难;

直通硅谷每年都有不少学生是非科班出身

他们有些自始至终都没在学校报过相关课程……

Hi,我们是直通硅谷!

我们专注于全球科技行业求职培训,心之所向,是壮大全球华人科技力量。凭借实战中积累的丰富经验,及由400+全球科技公司在职面试官组成的导师库,我们让求职这件事成为系统的科学,并变得越来越简单!

自2015年,直通硅谷独家保OFFER计划已帮助4000+学员成功进入全球顶尖科技公司!

科技求职
你只需要一个
保OFFER计划

已帮助4000+学员
进入全球顶级科技公司
1V1计划咨询

有哪些适合你的方向?

Recent Posts