瞎扯淡 编程学习指北

yfractal · 2020年08月30日 · 最后由 yfractal 回复于 2020年09月05日 · 2205 次阅读

以下都是根据个人经验胡说的

为啥一定要强调个人经验?因为个人经验是有限的,并且往往是错的。。。为啥说胡说?因为没仔细想过,没准就把大家带沟里了。。。所以需要大家自己辨别。

那些一定要买的书

SICP,CSAPP,算法导论,都是要买的,英文最好,买完之后一定要放好,因为以后可以用来垫显示器。

如果对 SICP 感兴趣,可以找 Berkeley 的 CS61A 来学。CS61A 是大学低年级的课程,讲了 SICP 主要的部分。

SICP 好不好?挺好的,但计算机还有那么多有趣的主题呢。

如果对 CSAPP 感兴趣,可以找一下 CMU 的课程。对算法导论感兴趣的话,可以找美国前十学校的算法课程。

算法导论这种,好虽好,但更适合做参考资料,而不适合自学。

美国的公开课,最主要的是课后作业和 project,其次是上课的讲义和视频。最后才是这些书和一些资料。而不是反过来。

不负责任推荐

算法的话,推荐 算法引论,课程入门推荐 CS61B。

数据库相关的推荐:设计数据密集型应用

软件工程或者想学 Rails 推荐:Engineering Long-Lasting Software : An Agile Approach Using SaaS and Cloud Computing, Alpha Edition,不过更推荐这本书的课程,CS169。这门课,讲清楚了软件工程。我学的是 https://courses.edx.org/ 上的。 Berkeley 现在这门课,可能已经不讲 rails 了。

网络相关,推荐 High Performance Browser Networking,或者找一门课程。

操作系统,推荐 MIT6.828,这门没学过,据说是撸一个操作系统出来。不过扫过几眼他们的参考资料,是那种能看懂的讲操作系统的书。

推荐 MIT 6.824,讲分布式系统。没书,都是论文。读论文真的非常开括视野。虽然只刷了一小半,但改变了我对软件的认知。

语言方面的话,觉得学完 CS61A 就够了。用到啥语言,就学啥语言。

一定要学一门语言,学 Erlang。推荐看 A history of Erlang,这个讲 Erlang 讲的非常清楚。再推荐的话,就推荐 Designing for Scalability with Erlang/OTP : Implementing Robust, Fault-Tolerant Systems

不过 Erlang 没什么公司用,Go 和 Java 更实在些,所以推荐 Erlang 只是个人喜好。。。

以上的推荐,大体都是自己看过或者学过(课程都是在网上找的)。并且学过的感触是,这东西真好。或者是学完这个,终于搞懂了一个东西。或者学过之后,会刷新自己的认知。有一句话是说,如果回过头,看之前的自己,不是像看傻逼一样,那就说明没有进步。

个人经验是,学一个东西,要先入门,入门,之后剩下的东西可以自学了。所以我不会去啃 算法引论,但如果我想搞清楚某个算法的细节,我才会去翻算法导论中相关的部分。

还有一个方法,就是看计算机排前十的学校,大学都教啥,然后跟着学。

最后再次声明,以上都是根据我有限的经验随便说说,还请大家自己甄别

很赞了,Mike 果然是技术狂热分子,深度广度都服气

SICP,CSAPP,算法导论,都是要买的,英文最好,买完之后一定要放好,因为以后可以用来垫显示器。

迫不及待想面基了。😀 @martin91 @yfractal

martin91 回复

这不是想给 Martin 哥当马仔做准备吗🤓

lanzhiheng 回复

哈哈哈,下周咋样?这周在外面😂

yfractal 回复

应该问题不大,到时候再看?下周似乎是大周,哈哈哈。

@lanzhiheng @yfractal 我这两个周末不在深圳,工作日可约?

martin91 回复

那等过两周周末有空再约?我这边工作日一般下班比较晚,这两周也有点忙。到时候群上约你们。

lanzhiheng 回复

下辈子一定能看完

lanzhiheng 回复

太对了,补充一下,买 SICP,CSAPP 就可以了,三本高度太高了,现在显示器的大小也大了。

ericguo 回复

哈哈,我回去试试,刚好备了显示器。 (引用楼主的话用错格式了,垫显示器的话是楼主说的😂

lanzhiheng 回复

好的 👌

很赞了,Mike 果然是技术狂热分子,深度广度都服气。

ruby_sky 回复

我要努力向 Dylan 大佬看齐

需要 登陆 后方可回复, 如果你还没有账号请 注册新账号