- 开始做一些算法和数据结构的练习
看了大佬的分享,了解到学习顺序的重要性。 我英语不熟练但有编程基础,所以准备先从中文讲解的开始。
算法和数据结构 先视频 再书本,练习跟着做
视频:
一定要边看边练
基础:
-
(漫画算法的作者) www.bilibili.com/video/BV15V…
进阶:
?还没有找到,可以在这里找找 https://csdiy.wiki/
练习:
书籍:
- 大话数据结构,
- 漫画算法
- 算法竞赛入门经典(第2版),刘汝佳著
算法红宝书 计算机编程的艺术 算法导论
国内CS教学质量一言难尽(尤其是上海邯郸路某大学)。放个北大CS大佬的自学指南,dz看后收获颇丰。 csdiy.wiki/ csdiy.wiki/
CSPrimer_哔哩哔哩 组成原理,操作系统,算法与数据结构
英文为主 转载:www.zhihu.com/question/38…
背景:我是个北美高中留学生,今年毕业,选了CS专业,但在学校没有修过CS的课. 不想到时候开学听课太懵逼,>所以想问问各位CS大佬们有什么办法先自学/预习?
顺便...可以推荐点相关书/视频嘛?
这个题我碰巧会,而且我是转专业学计算机的。现在也是CS的TA,所以对美国的CS本科课程还算了解。
课程的话,最重要的就是下面五门:
-
- 数据结构,
-
- 算法,
-
- 计算机操作系统,
-
- 计算机网络,
-
- 数据库系统。
外加计算机组成原理。
上面的这六门课,无论你是将来找工作,读研,还是读博,都是最最重要的。
而且学习的顺序就是上面的这样,
美国一般会开一门计算机基础,教一门语言,Python和Java居多。
然后就是数据结构,在这之后就学算法。以此类推。
如果你想在美国找工作的话,就需要把时间分配好,去刷题,刷project。
因为如果你到毕业的时候哪怕GPA很高,学校也不错,能过得去简历关,面对你最重要也是最难的一关就是面试。
切记上面这一点。
面试就是算法面试,除了少部分公司,比如Amazon,特别注重behavior question (BQ)之外,其他公司基本一溜的需要你对算法和数据结构掌握得很好才行。
以下的情况都是针对国外,尤其是北美而言的。
GPA有3.5+就好,一定要重视刷project,刷题。
有project才能过简历关,LeetCode熟练才能过面试关。
毕竟读CS或是转CS的大部分人,还是以读书找一份程序员的工作为导向的。 因为国外实习或是new grad找全职,面试主要考察算法和数据结构。
一、 需要熟练掌握一门语言(Python,Java,或是C++),然后用你熟悉的语言来实现基本的算法和数据结构。
二、网课可以跟着这几门来学
-
网络课程的话,则是十二分强推UCB的CS61B。他们家的计算机系的CS61 A,B,C课,简直制霸各种课程推荐列表。 CS61B的官网在这里:inst.eecs.berkeley.edu/~cs61b/fa19… 这门课以Java为主。
-
MIT的算法课,教程用的算法导论,也是强推的网课:www.youtube.com/watch?v=HtS… 这门算法则基本不涉及到语言层面,主要是算法层面,讲得很好。
-
然后就是红宝书的网课以及配套官网: algs4.cs.princeton.edu/lectures/ www.youtube.com/watch?v=1QZ…
-
斯坦福2018 Winter CS106B: Programming Abstractions,虽然从名字不太能看出来,但其实是用C++讲数据结构,想用C++的小伙伴不容错过,我看了一半了,特别有帮助,尤其是对递归和回溯的讲解,简直醍醐灌顶。 现在因为不可知的原因,Youtube上面已经下架这门课程,但更方便的是, 咱们可以在B站直接看:
www.bilibili.com/video/av216…
www.bilibili.com/video/av216…
三、最后来说说练习平台 光学(看书)不练,算法和数据结构是学不会的。
所以推荐一些好的刷算法和数据结构平台,当然另一方面也是为了找工作面试做准备咯。 如果你在北美的话,初级程序员面试基本就是考察数据结构和算法,所以大家一定要勤加训练!
-
LeetCode。 这是现在刷题找工作最热门的网站了。
但LeetCode现在题目也太多了,一共1300+了,而且一直在增加!!! 全刷完没必要,也不高效。 -
Educative Online Coding Courses - Learn Interactively www.educative.io/explore?aff… 它把算法面试中可能遇到的题分成了各种模式,每类题各个击破。
对算法最有帮助的课程对应下面这篇回答: LeetCode按照怎样的顺序来刷题比较好?
下面这个系列是新出的算法课程:通过解决大公司真实场景问题来破解算法面试。
下面是用Java的: Decode the Coding Interview in Java: Real-World Examples - Learn Interactively www.educative.io/courses/dec…
还提供了Python: Decode the Coding Interview in Python: Real-World Examples - Learn Interactively www.educative.io/courses/dec…
C++: Decode the Coding Interview in C++: Real-World Examples - Learn Interactively www.educative.io/courses/dec…
以及JS版本: Decode the Coding Interview in JavaScript: Real-World Examples - Learn Interactively www.educative.io/courses/dec…
专门针对数据结构的课程则有:
C++: Data Structures in C++: An Interview Refresher www.educative.io/courses/dat…
JavaScript: Data Structures in JavaScript: An Interview Refresher www.educative.io/courses/dat…
Java: Data Structures in Java: An Interview Refresher www.educative.io/courses/dat…
Python: Data Structures in Python: An Interview Refresher www.educative.io/courses/dat…