嗯,想找SDE工作,那就是又回到了我在网站的多篇文章里强调过的求职两大步:
一、拿到面试邀请
1.好看的简历
2.优质的渠道
二、通过面试,拿到offer
1.面试题
2.遭罪的面试过程
这两步的确可以通过一些免费、或者低付费的课程实现这两个步骤,然后你就可以顺理成章的找到SDE工作了。那我们就一个一个看看吧:
一、拿到面试邀请
1.好看的简历
(1)好看的简历是靠project经历支撑起来的,但是想做project又需要一些CS基础知识才行。所以我们先列基础知识需要会什么。
这就牵扯到CS的课程体系结构了,我粗略的分为了三类(注意,这个分类真的只是粗分类,并不100%完美,但是对当下的你区分上课优先级已经够用了):
level 1课程(语言课,所有cs方向的人都得学):python、java、c/c++(这3个要会2个以上)
level 2课程(基础核心课,所有cs方向的人都得学):数据结构与算法、计算机网络、数据库、操作系统、计算机组成原理/体系结构(这5个里面,至少需要有前3个-4个)。其余基础课包括:汇编语言、离散数学、编译原理(有时间就学,没时间算了)
level 3课程(方向课,这个就是特定方向的人才会学特定方向的课,不是这个方向的人就不太会学这个课):机器学习、大数据、数据挖掘、云计算、分布式系统、搜索引擎、文本分析、自然语言处理、人工智能、web开发、android开发、ios开发、攻防实践、并行计算、编译器
为了做project,我一般建议先学了level 1和level 2,然后level 3其实不用学太多(也就学点web的课、cloud的课就行),然后就可以直接做project了。
——————————————
level 1 的话,你就用w3schools入门 https://www.w3schools.com/ 然后可以学 java核心技术卷1 https://drive.google.com/file/d/1cKZpPFnsO0brfCLm6c7bUjej8bi5WxkS/view?usp=sharing 如果你还是想上课 那我觉得你来看java300集 https://www.bilibili.com/video/BV1ct411n7oG?spm_id_from=333.337.search-card.all.click 。
但是在Level 1这里,其实往深入里走,会牵扯到一些多线程、并发编程(https://drive.google.com/file/d/1mDnK4L1Rqfm7AquYlt35Nyeb5NAwXYi8/view?usp=sharing 、 https://drive.google.com/file/d/1VSHit5GZQM7NG8YlX31j6wHV3QFyTFMc/view?usp=sharing )、虚拟机(https://drive.google.com/file/d/1QuvQWqiveXt02v513NrY2w4vPIsGsKaZ/view?usp=sharing)的一些东西
level 2的数据结构与算法可以看UCB CS61B https://inst.eecs.berkeley.edu/~cs61b/ 然后直接刷leetcode https://leetcode.com/problemset/all/ ,计算机网络可以看mit的https://www.youtube.com/watch?v=GqmQg-cszw4&list=PLBMO3ORTdwldCqlHVcbJSOa3GxLS6bpeE&index=3 ,数据库可以先把w3schools上面的SQL和MySQL学了,然后学UCB的CS186 https://inst.eecs.berkeley.edu//~cs186/archives.html 和看下MySQL必知必会 https://drive.google.com/file/d/1-_HpoCKq7BUG43LKW7PP0KyNfP8GHOqn/view?usp=sharing 有时间再看下MySQL技术内幕 https://drive.google.com/file/d/1xygDB_txIx0H0E-AAmiyZmz4Ayhe6X6f/view?usp=sharing ,操作系统嗯。。要不然就有空就学 MIT的OS https://pdos.csail.mit.edu/6.828/2014/ 没空就只学一下CMU的15213这样 https://www.cs.cmu.edu/~213/
Level 3的课,主要是做full stack web development和backend development还有cloud的课,这个我觉得不用上啥名校课,因为可以直接做project课,请看下面的(1)吧。
(2)终于可以到这一步了,也就是做一些有助于打造简历的project课。关于project课,主要用udemy和慕课网就行,我都列在我网站的“求职疯子” https://www.xiaogeedu.wiki/col.jsp?id=103 里,我列了十五六个 project课,从里面选五六个、六七个做了就行,优先做java和spring的,因为这是后端的主流,然后也做一个c++、一个python、一个go的我觉得也行。就做去吧。
2.优质的渠道
没有课。自己连人就行。linkedin好友需要过万,否则不够用。
二、通过面试,拿到offer
1.面试题
(1)算法:这个建议自己刷题就行,但是你可能会问刷题顺序,这个我一般就是建议你按照leetcode的tag刷,确保自己没有知识死角。但是你可能又会问具体的题号顺序,那你就看下这个帖子好了:https://leetcode-cn.com/circle/article/48kq9d/ 亦或者是 https://drive.google.com/file/d/1T_CyEExiOEk3YJRAVV9SJMW0FB3Bo85T/view?usp=sharing
但是你可能还是觉得自己刷题有点虚,还是想报班,那你要不然考虑下国内马士兵教育的左神的课,还可以。他在b站有公开课,可以先学了公开课
https://www.bilibili.com/video/BV13g41157hK?spm_id_from=333.337.search-card.all.click
https://www.bilibili.com/video/BV1NU4y1M7rF?spm_id_from=333.337.search-card.all.click
当然,别忘了看左神写的书——程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版):https://drive.google.com/file/d/1kc8WSe-jykCxRcBknH1T6m3jbI7kPGWv/view?usp=sharing
他的付费课在:
马士兵教育(左神):算法和数据结构进阶课 https://www.mashibing.com/course/389
马士兵教育(左神):算法数据结构体系学习班 https://www.mashibing.com/course/339
马士兵教育(左神):大厂算法和数据结构刷题班 https://www.mashibing.com/course/465
马士兵教育(左神):算法和数据结构新手班 https://www.mashibing.com/course/337
马士兵教育(左神):数据结构和算法 https://www.mashibing.com/course/1
马士兵教育(左神):算法与数据结构基础班 https://www.mashibing.com/course/398
如果你是C++刷题,那你可以看 https://github.com/changgyhub/leetcode_101
如果你是GO刷题,那你可以看 https://books.halfrost.com/leetcode/
(2)OOD:educative.io的课
(3)系统设计:educative.io的课,algo expert的系统设计课systems expert,github上和youtube上都中英文都搜(搜“系统设计”和“system design”)
(4)基础知识(八股文):美国境内的SDE职位不太考这个,但是美国境内的中国企业(比如在美国的字节,在美国的百度等等)可能会问计算机的基础知识(比如网络、系统等)。这种资料其实网上有很多,比如
https://drive.google.com/file/d/14ze26IehsQZldpJENYAXG1I-XvW61rBo/view?usp=sharing
https://snailclimb.gitee.io/javaguide-interview/#/
2.遭罪的面试过程:
没有课。自己可以投递一些自己并不是真正想去的公司,经历真实的面试——这是免费的模拟面试的不是吗哈哈哈哈哈。
当然了,如果你依然有购买模拟面试的需求,或者期待有人1对1对你进行讲课(针对某一个知识点进行讲课),那也许你应该优先考虑淘宝,淘宝上应该是有的(但是我没有搜过),直觉告诉我是有的。应该比美国这侧的服务会便宜。
当然了,如果你想要从我这里购买,那也欢迎你来的。我这里的确也提供模拟面试和1对1的知识讲课辅导,具体介绍在 https://www.xiaogeedu.net/sys-nd/43.html