为什么美国高校有很强大的(软件)工程能力?

发布时间:2021-08-17 发表于话题:美国的强大靠什么 点击:563 当前位置:黄埔网 > 科技 > 电脑 > 为什么美国高校有很强大的(软件)工程能力? 手机阅读

国外,尤其是美国,很多高校 CS 教育极其注重实践,国内也就清北复交浙等少数学校有少量的实践教学,其它都是念 PPT,课后作业就是做 Word 项目。。。。

知道为什么国内 Word 项目这么多么,因为很多老师自己也不会编程.... 更没法设计那些硬核的实验和辅助教学平台,不会编程的人教你编程这结果能好么。

就拿我自己来说,学校不是很好 但至少也是个 985 吧,我上了三周的 Java 课,愣是没听懂在讲啥,最后看了几个尚学堂高琪的视频几天就入门了....

再来说美国为什么有强大的基础软件能力吧,这得益于他们的高校在培养学生造轮子的能力。

在这先送大家一份我大学四年搜集总结的CS经典电子书库:

这部分我是会不断把它完善的,当成自己的小电子书库,不多,但贵在精。

国内是怎么教的?

记住 TCP 三次握手、四次挥手、记住 DNS使用 UDP协议....

国内大作业是什么?

有些是 Word写。。。有些是让你用一下 socket api 写个网络程序。。。 这是计算机网络原理吗?

国外是如何教 操作系统的?

比如 MIT 6.828,现在改名了

直接让你基于一个 xv6 去实现一些模块,比如文件系统、多线程。

国内是如何教的?

记住进程和线程区别、记住虚拟内存的各种组关联....

当然也有一些学校会有实验,比如清华 ucore、哈工大 linux0.11

这就是为什么美国高校有很强的编码能力、造轮子的能力,因为他们的CS学生成长环境就是这样的。

国内大多数高校老师升职不靠教学,所以大家都没把心思放在教学上,做”研究“发论文,不香么。

设计这么多麻烦的实验不是给自己找麻烦么

弄个 PPT、Word 多爽呀

--- update 5.5 ---

评论区老有某 985 同学跑出来说”不是呀,我们学校老师教的也很好,word只是为了方便收上去....“

说实话,我开头就说了除了”清北复交浙等少数高校“,少数里面也包含一些985、211以及计算机强校,但是全国有多少高校?

两千多所,211 985 加到一起也就一百多,这还不是少数?

我听到不少二本、一本、211 包括部分 985 的读者给我说他们老师布置的就是 word写点综述、问答题。

有同样经历的同学双击屏幕点个赞吧,看下有多少!

都 2021年了,国内估计没几个学校交代码是用 git这些工具吧,评分没有搞自动化测试吧?

我做国外的labs,都是直接去网站提交代码,立马跑test case,马上就能知道哪些 case 没有过,立马再去 debug。

国内有这样的教学环境的高校估计不到十位数吧?

这个现象我估计还会一直持续下去,老实说,跟着学校的路线走,学计算机,大概率毕业即失业。

在这里也送大家一本帮助我拿到BAT 等一线大厂 offer 的算法笔记,是一位阿里大神写的,对于算法薄弱或者需要提高的同学都十分受用,算法一定是计算机学习的重中之重,千万别再去蒙着头写word了,多去 leetcode 刷题,打周赛!:

编程指北:Github 疯传!史上最强!BAT 大佬「LeetCode刷题手册」电子书开放下载了!

--- update end----

再来看下我做过国外老师设计的一些实验吧:

第一个是文件系统

这个玩意挺有意思的,就是要让你自己去设计一个文件系统,比如文件、数据块、目录等等,而且你要提供创建、读写、删除、随机读、随机写等等接口,然后通过 Linux 的 VFS(虚拟文件系统) 机制挂载到 Linux 内核中,然后就可以用系统调用 open、read、write 这些来在你的文件系统上进行读写。VFS 是Linux一个机制,它规定了 IO 接口,然后你去实现这些接口,你就可以挂载在上面。通过这个东西我深入的学习和了解了文件系统,报酬也是非常值的。



第二个是SVC

就是版本管理系统,类似 SVN 和 GIT的,但是相对 GIT 做了很多简化,核心的就是创建分支、分支合并、回滚、commit 这些,通过这个我又去详细了解了 GIT 的实现原理,并且自己写了一个简单版本的 GIT,受益匪浅,也赚到了几千大洋。



第三个是操作系统的锁实现

这个就是让你基于硬件的原子指令 xchg、cmpxchg 这些实现一个锁,这个需要内联汇编、汇编等知识,简直是硬核!!!做完这个也解开了我对锁实现的一些疑惑。



Web Proxy

这个就更有意思了,要求用 C++ 写一个代理服务器,类似 Nginx 的代理功能,当然,相比 Nginx 弱鸡很多,

但是麻雀虽小,五张俱全,而且老外最有意思的是要求代理服务器对一些图片和 HTML 恶作剧,就是代理服务器随机的在原始服务器,返回的响应里 插入一些图片和文字,因为那天是愚人节。。。 不得不说老外还是很有趣的。



还有模拟实现 TCP 可靠传输的

这个就更硬核了,人家老外老师就是给力,直接做了一个网站,这个网站你可以通过 TCP 连接上去,然后你需要运行几个节点,互相发消息,他们之间的消息都会经过老师的网站,所以通过网站上是可以控制丢包率的,也能控制节点的拓扑结构,要求就是让你基于这种不可靠的信道,做出可靠数据传输!这简直就是翻版 TCP 嘛,超时重传、ACK、滑动窗口啥的都给我上!就是像下面图中一样,圆圈就表示你可达的范围,不同节点形成各种网络拓扑,可以调节网络 丢包率 Loss chance。


设计这些东西、实验系统、自动化测试评分系统,肯定需要花费老师大量时间精力,但是有没有带来多少升职上的产出,当然没动力去搞啰。

最后,送大家一份自己整理的电子书库,绝不是在网上那种打包下载的,而是自己需要学到某个方向知识的时候,需要看了,去网上挨个找的,最后汇总而成。

汇集了编程语言(Java、C++、C、Python等等)、操作系统、计算机网络、系统架构、设计模式、程序员数学、测试、中间件 、前端开发、后台开发、网络编程、Linux使用及内核、数据库、Redis....等主流的编程学习书籍。

这部分我是会不断把它完善的,当成自己的小电子书库,不多,但贵在精。

我整理的这些书大家可以在这里获取,对于学习计算机的同学帮助非常大,且十分系统

本文来源:https://www.huangpucn.com/info/181895.html

标签组:[git

相关APP下载

热门话题

科技推荐文章

科技热门文章