计算机小白如何从零开始自学计算机呢?

里圆桌收录等 2 项收录7,249 人赞同了该回答

这个题我碰巧会,而且我是转专业学计算机的。现在也是CS的TA,所以对美国的CS本科课程还算了解。

课程的话,最重要的就是下面五门:

  1. 数据结构,
  2. 算法,
  3. 计算机操作系统,
  4. 计算机网络,
  5. 数据库系统。

外加计算机组成原理

上面的这六门课,无论你是将来找工作,读研,还是读博,都是最最重要的。而且学习的顺序就是上面的这样,美国一般会开一门计算机基础,教一门语言,Python和Java居多。然后就是数据结构,在这之后就学算法。以此类推。

如果你想在美国找工作的话,就需要把时间分配好,去刷题,刷project。因为如果你到毕业的时候哪怕GPA很高,学校也不错,能过得去简历关,面对你最重要也是最难的一关就是面试。

切记上面这一点。

面试就是算法面试,除了少部分公司,比如Amazon,特别注重behavior question (BQ)之外,其他公司基本一溜的需要你对算法和数据结构掌握得很好才行。

以下的情况都是针对国外,尤其是北美而言的。

GPA有3.5+就好,一定要重视刷project,刷题

有project才能过简历关,LeetCode熟练才能过面试关。毕竟读CS或是转CS的大部分人,还是以读书找一份程序员的工作为导向的。

给大家送一个福利,LC慷慨给读者小伙伴们送出15% off (优惠24刀)的年费折扣了。不需要等到一年一度的感恩节,也能享受到不错的折扣。平时有需要的小伙伴,可以使用这个链接:LeetCode Premium 通过链接购买年费会员才能享受折扣。
LC的年费还是有很多好处的,可以按照频率刷题,看公司tag,还能看到不少问题的视频答案(新功能),锁住的题还有官方solutions等等。

因为国外实习或是new grad找全职,面试主要考察算法和数据结构

需要熟练掌握一门语言(Python,Java,或是C++),然后用你熟悉的语言来实现基本的算法和数据结构。


网课可以跟着这几门来学

网络课程的话,则是十二分强推UCB的CS61B。他们家的计算机系的CS61A,B,C课,简直制霸各种课程推荐列表。

  1. CS61B的官网在这里:https://inst.eecs.berkeley.edu/~cs61b/fa19/ 这门课以Java为主。

2. MIT的算法课,教程用的算法导论,也是强推的网课:https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb 这门算法则基本不涉及到语言层面,主要是算法层面,讲得很好。

3. 然后就是红宝书的网课以及配套官网:

https://algs4.cs.princeton.edu/lectures/

4. 斯坦福2018 Winter CS106B: Programming Abstractions,虽然从名字不太能看出来,但其实是用C++讲数据结构,想用C++的小伙伴不容错过,我看了一半了,特别有帮助,尤其是对递归和回溯的讲解,简直醍醐灌顶。

现在因为不可知的原因,Youtube上面已经下架这门课程,但更方便的是,咱们可以在B站直接看:https://www.bilibili.com/video/av21620553?p=1​www.bilibili.com


最后来说说练习平台

光学(看书)不练,算法和数据结构是学不会的。

所以推荐一些好的刷算法和数据结构平台,当然另一方面也是为了找工作面试做准备咯。

如果你在北美的话,初级程序员面试基本就是考察数据结构和算法,所以大家一定要勤加训练!

  1. LeetCode。

这是现在刷题找工作最热门的网站了。

但LeetCode现在题目也太多了,一共1300+了,而且一直在增加!!!

全刷完没必要,也不高效。


2. EducativeEducative: Interactive Courses for Software Developers​www.educative.io


如果想买订阅Subscriptions)的小伙伴,则可以用ZHIHUEDU-10(必须一模一样输入)的coupon code来获取额外九的优惠按年和按月均适用


他家最最出名的还是这门Grokking the System Design Interview, 但凡提到准备系统设计,这门课都上入门必推的:Grokking the System Design Interview – Learn Interactively​www.educative.io

以及OOD: Grokking the Object Oriented Design InterviewGrokking the Object Oriented Design Interview – Learn Interactively​www.educative.io

这门机器学习面试指南是这个系列最新的课程:Grokking the Machine Learning Interview – Learn Interactively​www.educative.io

目前市面上机器学习面试相关的课程比较少,这门课程应该非常值得!

还有这门算法课:Grokking the Coding Interview: Patterns for Coding Questions – Learn Interactively​www.educative.io

这门课程是一个算法总结提高的课程,它把算法面试中可能遇到的题分成了各种模式,每类题各个击破。

对算法最有帮助的课程对应下面这篇回答:LeetCode按照怎样的顺序来刷题比较好?​www.zhihu.com

下面这个系列是新出的算法课程:通过解决大公司真实场景问题来破解算法面试。

下面是用Java的:Decode the Coding Interview in Java: Real-World Examples – Learn Interactively​www.educative.io

还提供了Python:Decode the Coding Interview in Python: Real-World Examples – Learn Interactively​www.educative.io

C++:Decode the Coding Interview in C++: Real-World Examples – Learn Interactively​www.educative.io

以及JS版本:Decode the Coding Interview in JavaScript: Real-World Examples – Learn Interactively​www.educative.io


专门针对数据结构的课程则有:

C++:Data Structures in C++: An Interview Refresher​www.educative.io

JavaScript:Data Structures in JavaScript: An Interview Refresher​www.educative.io

Java:Data Structures in Java: An Interview Refresher​www.educative.io

Python:Data Structures in Python: An Interview Refresher​www.educative.io

我上过其中的Java版本,课程是把数据结构里面的基础数据结构都用java实现了一遍,对于用java的同学特别有帮助,java的基础在刷题的过程中,还是要必须掌握的。

课程从复杂度开始讲起,Arrays,LinkedLists, Stacks/Queues, Graphs, Trees, Trie, Heaps, Hash Tables等数据结构,全都实现了一遍。而且还有配套的基础LeetCode题。是一个入门的很棒的教程。选择其他语言的话,内容应该也是差不多的。

项目Project

看到评论区问项目推荐,特意更新一下我自己跟着刷项目的网站。下面这个网站是Java全栈,从Java的基础,前端三件套,以及Java的框架,应有尽有。最好的地方在于,用不同的技术栈实现天猫全栈。这样跟着一套学下来,技术方面就不会太差了。有哪些值得推荐的 Java 练手项目?​www.zhihu.com

如果你想专门学前端,可以去Udemy找几个网课跟着寻练。

计算机的东西还是比较多,也比较杂的,但先从上面的六门课学起肯定没问题。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Google photo

您正在使用您的 Google 账号评论。 注销 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s