Syracuse University CS/CE就读体验

一亩三分地

 找回密码 注册账号

扫描二维码登录本站

最近看过此主题的会员


码农求职神器Triplebyte
不用海投
内推多家公司面试

科技公司如何
用数据分析驱动产品开发
$366 off coupon code: best

深入浅出AB Test
从入门到精通
$366 off coupon code: best

E轮2.5亿美元融资
一起作业诚聘
机器学习/数据/教育等职位
游戏初创公司招聘工程师、UIUX Designer和游戏策划
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
把贵司招聘信息放这里
查看: 50983|回复: 96
收起左侧

[经验总结] HIT CS科班对计算机专业素养的理解

    [复制链接] |试试Instant~
我的人缘0

分享帖子到朋友圈
hitony 发表于 2012-3-12 15:09:01 | 显示全部楼层 |阅读模式
本楼: 【顶】   100% (23)
 
 
0% (0)   【踩】
全局: 顶  96% (80)
 
 
3% (3)  踩

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
本帖最后由 hitony 于 2013-4-2 17:01 编辑

最新完整版请猛点这里;以下只是节选。

【题记】Great minds discuss ideas. Average minds discuss events. Small minds discuss people.

【前面的话】本文可以随意转载,有任何建议、意见,都可以给我发邮件,hitzzy at gmail dot com

作为计算机科班、系统方向,谈谈我对计算机专业素养的理解,希望对大家有所帮助。

所谓,知之者不如好之者,好之者不如乐之者,计算机专业也不例外。虽然本科是被选到计算机专业,但大一因为C语言老师的激励而喜欢这个专业,并在大三偶然参加国防科大“微处理器设计”研究生暑期学校后,我决定做系统领域研究。兴趣入门,比如《计算机文化》(第10版?)《编码的奥秘》(我觉得旧版比新版的小开本更好)《大话处理器》,以及传记类的《ACM图灵奖演讲集:前20年 (1966-1985)》《ACM图灵奖 (1966-2006):计算机发展史的缩影》(ACM网站1966-2009的演讲原稿)《IEEE计算机先驱奖:1980-2006》。更专业一些,推荐Prof. Patt的《计算机系统概论》(Introduction to Computing Systems:  From Bits and Gates to C and Beyond)和Prof. Bryant合著的《深入理解计算机系统》(Computer Systems: A Programmer's Perspective)。CMU流传着这个段子:15-213,给CMU门牌的课程。这里的15-213,既是以CSAPP为课本的Introduction to Computer System课程编号,也是匹村的邮编。信不信由你,我就是因为这本书,喜欢上系统这个方向的;另一个原因是利用VHDL编写自定义RISC指令集的cpu和串口,并在带有FPGA的实验台上验证,使两者成功通信!

在谈具体课程前,插播三类文章,以培养专业(职业?)精神。
a) 专业科普
Utah AP的What every computer science major should know、我上届创业的师兄编辑的计算机新人入门任务,Eric Raymond的How To Become A Hacker、William Long的《写给新手程序员的一封信》,《给未来的你——李开复在2011级大学新生学习规划讲座上的演讲》。工欲善其事,必先利其器——程序员的文本编辑器简介;基于HTML5的VIM寓教于乐的在线游戏vim adventures
b) 科研素养
哈佛CS教授、现Google SE的Getting started as a PhD student,基于指导MIT和Berkerly学生总结而成的Advice for students starting into research work,CMU CS教授的On the Ph.D.,Wisc CS教授的Advice,Utah CS AP的10 easy ways to fail a Ph.D.Reading for graduate students,HIT校友、Wisc Prof. Xinyu Zhang的外链Princeton李凯教授关于职业生涯规划的报告。UW教授对Paper Award的观点The Ph.D. grind也非常有参考价值
c) 时间规划
李笑来老师的《把时间当作朋友》,MSRA员工Pongba的《暗时间》,Utah CS AP的Tips for work-lif balance,我上届百度师兄的《我是如何“管理时间”的》。. From 1point 3acres bbs

1)Programming Language
入门当然是C,否则都不好意思说自己是学cs。我当年用的是C Prime Plus,很基础。C之父写的C bible——The C Programming Language绝对是好书,是进阶和reference必备。C进阶还有各种C专家编程,C与指针,C陷阱了,可以提高。之后是C++,java,C#就看科研/项目需要了。我认识的一些MSRA实习生从C++转到C#(C++++),说什么编码效率高云云。反正我因为做llvm,就是C++一条道走到黑。人称“大牛”的师兄跟我说,按照某语言排名榜的说法 c++快挂了;anyway,大牛没给出出处。而在TAMU任教的C++之父还在弄STAPL,并行版的STL,我觉得C++肯定还不至于是五丈原的诸葛半仙。C++入门,我用的是C++ Prime(注意,不是C++ Prime Plus)。C++之父写的C++程序设计语言,其实比较难懂,入门之后可以翻一翻。C++的进阶书更多,各种Efficient C++,侯捷老师的STL源码剖析啊。boost是C++广泛应用的开源库。C++11也很有趣。(不好意思,我也只是知道,没怎么看。)而Java是不适合作为第一门语言的;CMU, "the home of object-oriented modular programming" by David Parnas,2010年3月末取消了大一的OOP,转而开设OOD,因为前者反模块化反并行化。当然,这点还在广泛争论中。

2)Data Structure & Algorithm
请通读此算法博客,也是励志故事。

3)Operating System
与DS & Algo需要考虑实际的应用场合一样,操作系统也是门实践的学科。记得老师在课上说,当年他读书时,觉得银行家算法是这么优雅,为什么没有任何OS使用?原因就在于时间复杂度是O(n^3)。话不多说,熟悉类UNIX环境后,直接读linux的源码,比如0.11,一万行左右,市面上有代码剖析的书。我的建议是,以访客身份自学工大cmsOS课程,自己动手实验+智慧的提问。有了Bochs模拟器和0.11的基础,恐怕将来对任何OS部分都不会感到陌生(进一步可以读LDD;阅读代码的方法论可以参考《Code Reading: The Open Source Perspective》),此时读者可就不只是“牛人”了,而是“大牛”甚至“专家”了(参见《程序员的十层楼》)。这篇文章介绍了linux FS的进化史。MIT用于教学的类UNIX OS XV6是另一种选择。果然还是有推荐APUE,Unix编程艺术和UNP的。感兴趣的同学可以一起学习Wisc系统课程Introduction to OSAdvanced OSDistributed Systems。前者可以参考Operating Systems: Three Easy Pieces,后两者直接读paper。而哈佛教授也在钻研OS课程教学创新

当然,也可以拿实时操作系统练练手,比如uC/OS,代码短小精悍,和linux kernel一样,pure C。除了平时就使用linux发行版外,百尺竿头,还可以学习如何自定制Linux系统Linux From Scratch

国内还有本“自己动手写操作系统”?

Win方面,好像有Window internals?虽然是牛书,但是用膝盖想想也知道,写出来的肯定还没深入到骨髓(那可是商业机密啊),不如读linux源码学得扎实。当然,想进入微软,还是要积累些Win系统编程调试的阅读量的。
. 1point3acres
至于选择日常使用的OS,王垠04年写过《完全用 GNU/Linux 工作》和《写给支持和反对<完全用Linux工作>的人们》(两文合集下载)。正如之后有工大师弟向我介绍Windows的优势一样,事后也有人批驳王垠。在我看来,萝卜青菜,各有所爱嘛;凡事都有各自的因缘,保持和而不同的姿态,不是更体现多样化之美嘛。

既然来地里的大都是出国的,那么清华学生写的《OSDI, SOSP与美国著名计算机系的调查》自然不能错过;虽然有些信息已经过时,比如Prof Zhou已转到UCSD了;OSDI、SOSP已经“沦陷”了。文中以这两大OS领域顶级会议为基础,介绍了MIT、Princeton、UW-seattle、stanford、Berkeley和CMU的OS牛教授。我相信,包括我在内的大多非牛牛们,对这些学校大都只是dream而已(给写推荐信的教授直接灭了我Stanford, berkeley的念想,各种they are top云云),那么大家可以关注下这些牛教授的学生们,都去哪些地方任教了,比如Utah,OSU都是很不错的,可以尝试。另一方面,从ASPLOS、HPCA、MICROPACTPLDI、FAST、SCICSCGO等会议发表的论文,可以大致了解系统方向的牛校。

4)Database
不好意思,我db没学好。但其实db是相当成熟也很有意思的领域,可惜mysql已死。入门我就不推荐了,直接进阶吧——《数据库系统实现》。Prof. Anhai Doan recommends the Cow Book, or the Complete Book.

Wisc的DB据说比较强势:
i)CS 564 (Database Management Systems: Design And Implementation) is "everything you should know so that you can get an industrial job working with relational databases".
ii)CS 764 (Topics In Database Management Systems) is "all the gory details you may (or may not) want to know about relational data management systems"
iii)CS 784 (Data Models And Languages) is "all the stuff beyond relational data (e.g., Web, text, data mining, data integration, data extraction) that you should know to broaden your data management knowledge or to work in the field as an advanced developer/researcher". 而其课程项目列表足以成立若干创业公司。同时推荐Principles of Data Integration。CMU就有应用DI技术于建筑设计领域的startup Schema Fusion

5)Software Engineering
这简直是个人文学科,集计算机科学、管理学、心理学、社会工程学于一身。在此我不展开,可以参考UW教授的讲座Software evolution then and now: the research of David Notkin。同时敬礼图灵奖获得者、北卡教堂山教授、《人月神话》作者Brooks,但我推荐的是他另一本书《设计原本》。

The co-author (and UW alumnus) of lmbench, a system performance benchmark, is proud of his Sourceware Operating System proposal considered as the peer to Raymond's Cathedral and Bazaar paper. He also recommends this to everyone who was annoyed at countless bugs.

搭车说一下,我不是鄙视web。如果想学web,也应该学习CSS,Ruby的framework,再不济也得HTML5。在我看来,后端架构更为重要,包括apache,linux sever管理(鸟哥的linux私房菜馆)之类的。但如果真想学web,推荐UIUC课程,我上届创业师兄建立的pureweber及其搭档的关于前后端开发的博客

6) Compiler及PL设计哲学
出来混,早晚都要还的。我本科学的最差的就是编译;一个字,混。结果研究生做的都是编译器,即LLVM。那些用iDevice的同学为什么觉得系统很流畅,闭源版本的llvm功不可没;当然还有基于freeBSD(B是伯克利的哦,他们有做工具、开源的传统。8g一下,现在Berkeley的工程系主任Sastry教授,就是受不了harvard的理论派作风,于1994年跳过来白手起家做系统的)的Mac OS X及其简化版iOS的功劳。北京intel研究院实习的师兄跟我说,intel之所以牛,是在于其编译器优化。所以说,学好OS和compiler,走遍天下都不怕。

可惜学到这门课,大家应该大三了。很多人如梦方醒,要面对出国保研考研工作公务员等等了,无心恋战。但从这门课(包括以前的汇编语言,工大是大一下在C之后开设的)起,才能真正体现CSer与其它非计算机的区别。CSer应有的境界就是,写高级语言的时候能想到对应的汇编;这应该要花10年功夫,或至少10,000小时吧?

优秀的程序员应是理解程序设计语言原理的,包括Relational operatorlazy evaluation等概念。编译点滴blog也给出了Compiler书目的点评。Utah Prof. John Regehr科研之余写blog。Utah另一位研究PL、编译的AP Matt Might也有关于PLCompilersstatic analysis的推荐;更重要的是,其blog营养价值之高,让我惊叹!

当然,不能少了龙书虎书和鲸书。Wisc的程序语言和编译方向的qual自然不可错过。对于the life of Binaries,程序员又知多少。编译也是注重实践的一门学科;基于SSA形式中间表示的LLVM从UIUC发芽,经过10多年的发展,成我的简短飞跃总结为apple主力支持的用于iOS的商业编译器,且大有替代gcc之势(FreeBSD已经完成了这一步),不可谓不是个奇迹。

7) Computer Architecture
海纳百川,系统结构就是这样一门学科——把低层的指令集/汇编、中间的OS、高层的PL熔于一炉。君不见,因为银河机,国防科大永远是中国计算机系的翘楚,虽然现在也开始浮躁了,但清华华科上交(以及南大某并行实验室)还是难以望其项背。

系统结构可大可小。小的指指令集,大的可以包括计算机组成原理、编译(每个指令集都需要自己的编译器)。所以,我把帕特森和轩尼诗的两本扛鼎之作和盘托出——《计算机组成和设计:软硬件接口》和《计算机系统结构:量化的研究方法》(caaqa)。读不懂没关系,书读百遍,其意自现。还有《Parallel Computer Organization and Design》,ASOA以及《21世纪计算机体系结构——计算机体系结构共同体白皮书》。同时,推荐陈首席及其弯曲评论,保罗万象,从系统结构到IT史话,从千人计划到复兴中国,特别推荐“弯曲推荐”。至于国内做编译/系统结构的blog roll,有IBM员工的并行实验室,中科院博士的编译点滴HelloGCC,台湾研究员陳韋任、特别是他的wiki

还是那句话,计算机专业是很practical的,Dr. Brooks是因为领导IBM 360而成就的图灵奖;系统结构领域也是很活跃的——传统的处理器设计(包括cache一致性、互联网络等)、软件层级的并行编程模型(如TAMU的STAPL、UCLA的CDSC、Intel的TBB等等)、多核众核,以及利用GPU/FPGA加速的可重构计算等等,甚至还包括系统平台相关的编译支持。Mr. Esmaeilzadeh关于系统结构的进化,特别是多核芯片功耗的研究,非常具有前瞻性;Prof. Dave PattersonDr. Pradip Bose分别阐述了自己的观点。

Prof. Mark Hill shared PBS American Experience: Silicon Valley and pointed out that "This excellent documentary is mostly about how discrete transistors and then integrated circuits became commercially successful at Fairchild Semiconductor, which then in turn spawned many companies. At one time NASA bought over half the transistors sold, accelerating computer development (and IMHO allowing you to have a smartphone now and not in decade)."

Wisc维护的World-Wide Computer Architecture Information以及Computer Architecture Research at Wisconsin提供了很多信息。ISCA是系统结构的顶级会议;有些国人分享了他们在ISCA的经历:计算所研究生的《ISCA和中国》,计算所系统组副教授的《ISCA08见闻》,Prof. Kevin Skadron学生记录ISCA 2011的《ISCA归》。

原复旦大学副教授、现上交软件学院教授陈海波,于11年在中国计算机学会通讯专栏发表的《一名系统研究者的攀登之路》(pdf),很适合作为Statement of Purpose的第一部分,即Why computer architecture。按我导师的话说,与其说是此人的攀登之路,不如说是本来很牛、思维很活跃的人(从04年大四到11年投中若干重要甚至顶级会议SOSP,只花了7年时间),通过明师(注意,是明白的明,不是名气的名)指点,在转换若干方向(包括VLIW的GCC后端移植和可重构计算)后,选定系统虚拟化这个三年后国内很火的领域后,一路顺风顺水,并从此处在系统虚拟化研究的浪潮之巅,无论是从科研经历(在MSRA和MIT鼎鼎大名的PDOS组和大牛人Frans Kaashoek共事),还是发表的论文(包括ISCA'08、MICRO 2009、PACT 2010、SOSP 2011、PPoPP 2011等)的角度。《ISCA08见闻》谈及的Harford Xiaoyao Liang,也很幸运——“他的老板是David Brooks,给他指导了一个很好的方向,避开了功耗这个热点,选择Process Variation这个突破口,在Top Conference上发表了一系列文章。”事实上,每个博士都有自己进入某一领域的独特因缘,否则真应该思考一下Why Ph.D.——6年的commitment(特指美国)。来自台湾的MIT CS博士对为什么读博士也有他的观点(需翻墙)。以上故事能有所借鉴最好,实在不行,当成茶余饭后的一个段子,也能博得一笑,十年少!

而从我的偶像,LLVM首席architect Chris Lattner自述的简短生平中,能从中了解他的成长轨迹;更重要的是,他和咱的差距也就是十年!不过,系统结构方向更务实的马拉松目标,可以定为Wisc的09届本科、11届硕士,UIUC 11年入学的博士Matt Sinclair

最后,推荐威斯康馨系统结构课程Advanced Arch I和II(Prof. Mark HillProf. Mikko Lipasti版),以及Qual的备考资料历年真题,让想做CA研究的感受一下!话说,我当年本科时苦于没人指导如何研究系统结构,就下载《微处理器设计》、caaqa等经典书籍每章后面感兴趣的论文,陷于浩瀚paper海而没有灯塔指引。希望后来者不要重蹈我的覆辙!

上面推荐了一些书,但是对于《最常被程序员们谎称读过的计算机书籍》,不知是不是有人躺枪了;反正,我是中了。

8) Systems
CS科研,尤其是系统领域的研究,不是一门课的知识就能涵盖的。比如,此文介绍了垂直搜索引擎Duckduckgo的架构。
虚拟化也是系统领域研究的热点之一,比如Virtual Machine Moniter应用于smartphone平台方面,哥大比较前沿。

网络方面本人水平有限,暂归此类。这是网络方向会议统计

纷繁复杂的分布式系统永远是系统领域研究的皇冠之一。Google FellowJeff Dean必然是其中翘楚。MapReduce其实是FP的两个higher-order functions map和reduce;对于科研来说,是旧瓶装新酒,但工程方面实际意义比较大。此博客主要讨论分布式领域技术。这是高级CS课程合辑

有人的地方就有江湖,也有隐私和安全。计算机安全领域的会议统计有很多人维护:TAMU版新加坡版英国版沙特版。加拿大Carleton大学汇编了一些资料。而TAMU的华人AP也收集了一些信息

9)课程之外
回首这些年,很高兴学计算机,不仅是因为与人相比,计算机其实很“简单”,照着程序执行,出现了意外也是可评估可能恢复并规避的——每个程序员都是折翼的天使,在计算机世界里构建属于自己的理想国,没有尔虞我诈;更是因为通过计算机专业的学习(推荐MIT CS五年本硕、海南中学07届师弟给08级高中生介绍学习经验的视频),更懂得如何获得更多的信息,以更开放的心态接受新鲜事物,而不是成为完全执着保守的左派。事实上,很多学计算机的人喜欢科幻,喜欢哲学,比如冯大师的《计算机和人脑》、《万里任禅游》,喜欢讨论技术背后体现的价值观,如《我们的防火墙:网络时代的表达与监管》。

计算机的博士研究,需要扎实的数学基础,更需要人文素养。在介绍SE时,其实更多的书目是偏人文的。是的,我认为中国缺少安贫乐道、少欲知足的精神,这与缺乏真正Ph.D.教育——五到六年时间在一个方向钻研(Prof. Mike Gleicher给出了很多建议)——有关。以计算机专业而言,本科学位是B.E.,工科学士;研究生或是M.S.,科学大拿;博士是Ph.D.,哲学博士。Ph.D.毕业后,追求的不应该是过分的物质生活,反而应是研究领域精神上的快乐!

这也与传统文化的缺失有关,包括我在内,没几人读过千字文、三字经、弟子规、四书五经、春秋左传。另外,学计算机技术也是要读计算机发展史、参观硅谷计算机历史博物馆的,什么《数学之美和浪潮之巅》《激荡三十年》《沸腾十五年》《IT史记》《IT通史》《IT大败局》,以及《信息技术文化史》豆列,了解什么技术方兴未艾,什么如日中天,什么日薄西山。同时推荐这个ted视频,how inspired leader inspire others,里面有描述创新的源泉和从新兴到衰亡的市场趋势分析。桑德尔的《公正》,讨论的就是很贴近生活实际的道德标准评判。而《细读美国大学》则是让国人了解米国大学的细节,以及如何在米国读大学,特别是本科Liberal Art教育(通识教育、素质教育都不是恰当的翻译)。子曰从心所欲而不逾矩,庄子说逍遥游,佛家的观自在(即大悲观世音菩萨的别称),让我向往,让我思考,让我自由!

跑远了,期待一下量子计算机吧。那时的计算机基础课,可能完全不是上面这一套了。1)应该是量子力学了吧?

总之,祝福所有CSer,这是门最好的学科。祝福所有飞友,并附上我的简短飞跃总结,心安处,即是家。南无阿弥陀佛!

不好意思,知者不言,言者不知。喷了一地口水,与我头像不符,常惭愧。







评分

参与人数 16大米 +856 收起 理由
Emerson_Ding + 3 感谢分享!
nessa + 3 感谢分享!
vlsi2012 + 10 欢迎来介绍你知道的情况
Buzz_ly + 20 各种资料链接!!非常感谢!!!
chentc + 25 膜拜
huanxiong4903 + 100 由衷佩服!
hdj1107 + 100
LynDino + 80 赞!
dave2008 + 25 很有见解,支持一下!
fednadal + 50 nice!
zach + 100
Ber + 20 这才是把CS学通了的大牛……
puncsky + 100
小K + 100
Warald + 100

查看全部评分


上一篇:EE大一学弟问个问题~
下一篇:迷茫于硕士期间选择研究方向:网络vs密码学?
我的人缘0
diamrem 发表于 2012-3-15 12:53:56 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (279)
 
 
1% (4)  踩
做了几年web开发的中枪到底不起。必须出来挣扎一下。

HTML/CSS不是编程语言,前者是用来做标记的,后者是用来做样式的,我想没人拿这俩玩意来入门“编程”吧。通常人们将之称做web前端。

JS是编程语言,用来入门是OK的,事实上stanford的cs101用的就是JavaScript。它通常也被看作web前端的一部分,但现在也有在后端的应用。

几乎所有的语言都能用来做web后端语言,只不过是方便程度不同。Python,PHP,Ruby可以很快速的开发,当然也有人用Lisp写web后端。

So用web语言来入门我觉得是OK的,当然光学这些是不够的。
回复

使用道具 举报

我的人缘0
 楼主| hitony 发表于 2012-3-16 08:13:54 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  96% (80)
 
 
3% (3)  踩
回复 20# diamrem


        哈哈,还真有人推荐这个组合入门,我只是引用并批驳一下。参见W大的号召,对CS入门的建议。正如我所说,我不了解web编程,如有纰漏,还需斧正啊~~~

    记得一两年前,百度的师兄跟我说,会php就能去他们那;ror快速上马的项目我也学习过。说到lisp,YC创始人当年创业时,不就是因为这个语言,性能比常见语言好20%(印象中,不确定),后来被收购的。

    总之,我是认为,拿web语言,而不是C,作为第一门CS专业课来教,有些夸张,但可以作为专业任选课。之前也有米国牛校拿java作为第一门课,后来cmu还是哪的教授发文章一顿声讨java学生不懂低层云云,工大好一阵子乐呵呢。
回复

使用道具 举报

我的人缘0
达达主义 发表于 2012-3-17 13:07:59 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  96% (48)
 
 
4% (2)  踩
果然是搞系统结构的,强调的课程也是OS Compiler Architecture
不过对于大部分打算自学,然后做碼工的人而言,这三门课门槛太高了。
我个人建议是
C+Java 作为入门的programming language,先学Java,然后再考虑学C++
算法+数据结构,然后上CareerCup上刷题
熟悉Win以及Linux下的系统函数编程,写几个小软件. 1point3acres
以后要搞web的,php+mysql入门,然后看看js
OS,COMPILER,COMPUTER ORGANIZATION自学的话学点皮毛就行,有个概念
Architecture刚开始还是不要去碰了。
回复

使用道具 举报

头像被屏蔽
我的人缘0
luck_zzy 发表于 2012-3-19 08:42:01 | 显示全部楼层
回复 22# hitony

Graham 说的是Lisp开发效率比当时的其他语言都高,表达力又强,所以他们能一直有技术和速度优势。
我倒是觉得他对Lisp过于推崇了,如果单比开发效率,ror明显要强得多。而且表达力强的一个弊端就是对程序员要求高,招不到人。

话说回来,js入门或者scheme/lisp入门是为了先教算法、数据、抽象这些概念。而不用担心一些底层的细节,并不是说就直奔web开发了。毕竟还要有cmu的csapp那样的硬件入门课。从这点上说javascript、python之类算是比较好的入门语言了。
回复

使用道具 举报

我的人缘0
 楼主| hitony 发表于 2012-6-10 19:39:50 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  96% (80)
 
 
3% (3)  踩

C、汇编、轩尼诗和帕特森的两本书。

其实,我觉得EE比CS好,如果针对出国再创业的话。通常EE/CE更喜欢micro-arch,即芯片的设计技术。体系结构出身的cs出路比较宽一下,也可以走编译。

本科应该宽基础,如果学有余力再深究一个方向,除非对这个方向特别有兴趣。因为,地里都是出国的,而出国是带有很大运气成份的。总之,需要脚踏实地,走一步,看两步。首先想想毕业干嘛,再规划学业也不迟。
-baidu 1point3acres
gl~
回复

使用道具 举报

我的人缘0
 楼主| hitony 发表于 2012-6-10 19:41:43 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  96% (80)
 
 
3% (3)  踩
ahnselina 发表于 2012-6-6 22:46
哇,楼主真厉害。。。。我是个转计算机滴,很多相关课程都没学过,请问直接看《深入理解计算机系统》能看懂 ...

除了C,csapp似乎不需要什么基础。大不了,遇到问题google啊~

建议你跟cmu的课程主页一起学习,gl~
回复

使用道具 举报

我的人缘0
 楼主| hitony 发表于 2012-6-12 21:55:43 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  96% (80)
 
 
3% (3)  踩
本帖最后由 hitony 于 2012-6-17 18:12 编辑
dubian 发表于 2012-6-12 20:45
我儿子在读文理学院(本科Liberal Art)的CS。文、史、经、社科类的课程占三分之一啊。
. From 1point 3acres bbs
首先,非常高兴您孩子在国外接受本科教育,相信您也是位相当开明的家长。但请不用过于担心孩子的专业学习,因为,美国的本科是真正的通识教育,目的在于“成人”;专业技能(包括计算机专业)的培养,是后续阶段——建立在深厚而独到的思维地基上的。退一步说,您也不能保证孩子的兴趣只在计算机这个专业,说不准,您孩子还有其它爱好和专长呢;而额外兴趣的培养,对您孩子的人生与事业成长,可能还有事半功倍的效果呢。

最近我读了《细读美国大学》,了解了美国本科教育的一些情况。美国本科前两年实际是不分专业的,比如我校威斯康星就是统一由Letter & Science学院授课。之后的大三才应该会接触专业课程(这点不确定,等我下半年过去后确认一下)。总之,美国的本科特别是常青藤的本科学院,培养的是积极的人生观、辩证的思维方式,通常是为将来硕士、博士研究生这样的专业人才提供了极强的可塑性。. check 1point3acres for more.

而国内大多大学,实际上,就相当于技工专科学校——只教工具,缺失灵魂;只传授知识,不鼓励“想法”。也因为体制的原因,用马哲统一武装大脑,大多数情况导致思维比较僵化。比如IT行业,即使很多国人把国外的创新模式copy2china,也不能持续发展。这一方面有水土不服的原因,另一方面,也有本身创业者潜力的问题。

关于水土不服,更多是因为海本学生在最重要的成长时期不在国内,接受的是很开放、自由的教育氛围;这反而是国内大学生的优势。因此,在国外读本科的同学回国后需要一段适应期,了解国内的国情。在这方面,我很欣赏黄仁宇教授,特别是他的自传《黄河青山》。建议您的孩子在国外读原英文版,应该有的。也建议海本学生借助海外的机会,多读读海外华人研究历史的著作,比如徐中约教授的《中国近代史》,以了解自己的祖国。这也能转变为海本学生的优势,既了解本土文化,又有西方思维模式,可以在国内的外企中游刃有余,最后再突破外企的天花板,谋求事业的新高度,比如上海一号店的合伙创始人就是Dell的全球采购副总裁和大陆及香港地区总裁——其创业的案例已进入了哈佛商学院的案例分析。

至于自身潜力问题,更多体现在我这样的国内本科、美国研究生身上。我以人人网(原校内网)和Facebook作为例子,因为通常大家都知道这两个网站,虽然我也同意FB 1000亿的IPO几乎是泡沫,而且不久的将来特别容易破灭。从《社交网络》这部电影,我看到Mark的性格特点、如何挑选共同创业人员、硅谷的创业环境等等。可是,清华本科的校内网创始人wx,做过饭否(相当于twitter)和后来的海内网(高端版的校内网)、美团(GroupOn),对社交网络、IT对社会的影响力(包括隐私设置)等方面理解,与FB相比,还是很粗浅,只能做出个系统、但没有数学理论的支持——我是惊叹于facemesh的评估公式、FB精准广告背后的数据挖掘技术。当然,我也只是个挑剔的旁观者而已。FB的神话,正如比尔 盖茨一样,其实是不可复制的。但我相信,更多的美国IT创业人都是文理学院的优秀本科教育的结果——思维敏锐、开放、大气!

另外,留学生其实也可以在学习英语时加强国文的。我新东方GRE写作老师夏鹏,南大英语系毕业,就推荐了外研社的《古文观止》和林语堂先生翻译的《浮生六记》(这也将是我将带出国的仅有的几本中文非专业书)。

最后,我祝您孩子在海外留学顺利(这篇帖子归纳了海本中国学生的类型;我本科C语言和OS教师也翻译了UTah计算机助理教授的《九种学生》),希望能充分利用好在海外的优势,把自己培养成融贯中西的人才,为自己、也为祖国的强大作出力所能及的贡献!

祝好!



评分

参与人数 1大米 +100 收起 理由
woaibai + 100 赞热心回复!

查看全部评分

回复

使用道具 举报

我的人缘0
birdman 发表于 2012-6-24 10:44:59 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (2)
 
 
0% (0)  踩
hitony 发表于 2012-6-17 18:02 . 1point3acres
没搜到WSC是啥,求科普~

其实,我此文强调的不是CSArch的研究,而是要有system的基础和思维方式,然后 ...

单说传统的arch应该是没什么东西玩了,除非重新设计计算机结构,把von Neumann的结构抛弃。

但是现在都开始玩Heterogeneous了。不过,具体以后会怎么发展,实在模糊。继续搞genral purpose的多核,还是多个ASIC混一起,还是CPU+GPU。鬼知道,只有慢慢玩玩才知道。

我是觉得,arch还是得和compiler一起,相辅相成,甚至把PL也引入,三个结合,或许会有更高的效率。

毕竟PL把人的思维变为计算机可读的代码,再用compiler把代码变成机器能直行的二进制,最后arch来执行。中间丢失了不少有用的信息。毕竟人的思维没有充分的被映射到机器的执行上去啊。

最后,其实现在计算机都是缝缝补补啊。基本上都是因为前人没有考虑到,或者觉得不值得考虑的东西,现在开始修补。我觉得,破而后立,推倒重来才会有质的飞跃吧。

回复

使用道具 举报

我的人缘0
yuanleiliang 发表于 2012-3-12 15:27:07 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (14)
 
 
0% (0)  踩
lz文章真心不错,不愧HIT天之骄子
回复

使用道具 举报

我的人缘0
mwd 发表于 2012-3-12 15:28:55 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (18)
 
 
0% (0)  踩
我认识的很多msra实习生都从C++转到C#


虽然依旧对C++信心十足。但此情此景确实有些悲凉。

好文,顶一个。
回复

使用道具 举报

我的人缘0
kevinjgao 发表于 2012-3-12 15:34:20 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (10)
 
 
0% (0)  踩
赞啊赞,科班这种积淀,是我们转行的学不了的~
回复

使用道具 举报

我的人缘0
鸭梨山大 发表于 2012-3-12 15:36:58 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (5)
 
 
0% (0)  踩
楼猪很好很强大,EEer前来学习!
回复

使用道具 举报

我的人缘0
ilstxfe 发表于 2012-3-12 16:08:38 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  95% (21)
 
 
4% (1)  踩
强大啊楼主~~~
回复

使用道具 举报

我的人缘0
Aria 发表于 2012-3-12 16:16:46 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (40)
 
 
0% (0)  踩
HITer受教了。只用过一点A/C/C++/VB/Matlab,在学计算机组成技术和单片机的时候对CS科班颇为崇拜
回复

使用道具 举报

我的人缘0
flyinglyf 发表于 2012-3-12 16:40:11 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  78% (22)
 
 
21% (6)  踩
佩服LZ这种潜心想学,追求真谛的精神。就让我们朝着这个方向坚定前行吧。 HIT EEer 敬上
回复

使用道具 举报

我的人缘0
spearjia 发表于 2012-3-12 16:50:09 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (2)
 
 
0% (0)  踩
进来学习了,正在重学C和C++~~~
回复

使用道具 举报

我的人缘0
shuangjj 发表于 2012-3-12 17:03:34 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (3)
 
 
0% (0)  踩
体系结构是门艺术啊,计算机科班出身的和我们这些软院的果然境界不同啊。。
回复

使用道具 举报

游客
请先登录
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法 - 不要多加空格: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地

GMT+8, 2019-2-23 01:26

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表