计算机专业心得体会

时间:2024.4.21

计算机专业心得体会

参加工作多年,发现自身不是,电大给了我在一些学习的机会,因此我非常珍惜这个学习机会,特此为自己 制定了学习 作为一个约束自己学习的准绳。

当我进入电大的校门时,我的心情激动不已。因为我已离开学校已经很多年快乐,在这些年的日子里我无数次梦想走进大学校门,但因为种种原因一直无法实现。今天电大给我了机会,我非常珍惜这个学习机会。班主任经常鼓励我们要相信自己的能力,相信自己的实力,对自己要充满信心。学习本身就是艰苦的,我们已经选择这条路,就不要轻易放弃,我们师生要共同努力,团结一致完成三年的学习任务,胜利是我们的,这才使我一直坚持到现在。

我的工作平时不太忙,平时学习时间较宽裕。凭以往作为一名学生的经验,在开课之初,我先根据每门课程的内容和上课时间制定了一个简单的学习计划,作为一个约束自己的学习准绳。在熟悉了一下所学课程的基础后,我对自己的学习步骤有了一定的规划,就我个人而言我的学习方法主要是:

首先,课前预习。俗话说:“磨刀不误砍柴工”,做好预习可以使我们对整个章节有个融会贯通,对难点和重点的分布做到心中有数,带着问题去听面授课,在听课中,将自己的理解与老师的讲解做比较,着重加强难点和疑点的学习深入领会老师的讲解意图,做好分析,加深巩固,有的放矢去理解和消化,花同样的时间达到最好的效果。 其次,复习书本。书是根本所在,复习书本可以做到“温故而知新”,

对知识的理解再上一个新层次。在此过程中还可以拓展思路,总结经验,加强记忆。

最后,勤于练习。考试是以试题的形式来检验我们的学习成绩。因此,我在平时就多做练习,熟悉试题类型,掌握答题技巧,才能从容应对最后的冲刺,平时多做一道题,考场上就多一分把握。

每天晚上临睡前,我都会将当天所学内容在脑海中“回放”一遍,看看自己在哪些方面尚有欠缺。学完一章,作一次小结,归纳知识要点,将平日练习中作错的题重做一遍,加深印象,针对每科的难易程度,先易后难,采取不同的方法学习起到很大的帮助,每节课结束后,我不会急于做作业,而且看一看例题,其中的疑难点相当具有代表性,这对我理解和巩固知识非常重要。完成以上过程后,我才开始做作业,这样准确率会提高很多。通过一段时间的自学,我发现自己对课程内容的理解和掌握仍很有限,甚至会产生不知所措的情况。因此,参加每次面授就显得尤为必要。学校安排的面授次数也许不多,却是梳理思路的好机会。所以,我们的班主任杨老师在每次有面授课时,都提前通知每一位同学。但是,由于时间缘故,面授课时老师不可能对全书进行详细讲解,所以压缩在几个小时内讲的都是需要掌握的精华。通过老师的讲解,可以深刻的了解和领悟课程内容。还可以把自己对课程内容的理解和老师的理解做一个参照,这样有助于拓宽思维空间,利于课程的掌握。

和许多同学一样,刚进入网络时,我对于这种新生的学习方式感到迷惑,手里拿着学校发的教学光盘和学习材料,觉得凭每天到电脑前坐

上几个小时,就可以去参加考试,似乎是件很不可思议的事。而且对自己也没什么自信,每天工作那么忙,还能有学习的心思吗?但是几个月后,这种顾虑就消失了,我很清楚的意识到,这种学习方式很适合我,如果安排好业余时间,几乎可以得到同样的学习效果。

我觉得参加网路学习有以下几个方面的优势:可以自主的分配时间。在工作和生活的各种压力面前,我们很难保证每天有固定的时间参加辅导课程,而网上教学可以让我们根据自己的业余时间合理的安排学习时间,保证听课时间和质量。从人才培养上讲,网络教育因为在教学,管理,学习方式等教学环节上与一般在校学习不同,学生具有较强的信息获取能力,较强的网络技能以及较强的信息构建能力,也就是说现代网络教育是现代教育体系中一种非常有特色的人才培养模式。互动教学产生最佳效果。从过去以课堂教学内容、教材、教师经验等为主的课堂教学转变为一种包括各种类型资源的网上课件,充分利用网络资源优势,能够达到应有的质量和效益学习过程中的疑问 可以得到老师的全面解答,不受时间空间限制。

当我第一次参与网络学习,所以感觉满新鲜刺激的,起初并不知道 怎么去弄,而且还觉得不会有人感兴趣,后来看到上面有那么多人发言跟帖,于是自己也就跟着学,便发现原来网络学习并不是那么枯燥无味,而且还很长见识。每天上网产看个人信箱,在线生活的诸多事情;每周如故,上网查看 所有科目的导学科目和相关的习题,并打印下来,留待备用,在网上公布的参考资料,我会找来,放在手边,有时间就看看。通过这次学习并于大家讨论我看到了网络学习的重要性与

长远性,未来社会是高科技时代,我们必须要掌握一定的网络只是与技能,才能在将来的社会中站稳,而且网络学习能使 自己 认识很多的新朋友,大家可以 互相学习讨论并共同进步,这也是 未来社会所需要的合作精神。网络学习让我们摆脱了以往的做作业方式,让我感到了做作业的乐趣,希望以后能搞些类似的网络学习活动。 现在,我换喜欢经常去网上其他的交流渠道溜达,提供学生和老师的交流机会,而且我还通过BBS与老师交流,也可以看到老师定期在网上留的思考题以及答案。“在线答疑”提供了学生和老师实时交流的机会,可以看到其他同学所关心的问题和老师的解答。

总的说来,网络教育的学习主要还以自学为主,课程比较多,考试也不像想象中那么轻松,其实,通过网络来学习只是 轻松在学习的环境上,不是轻松在考试上,要想取得好的成绩,除了要注意事宜的学习方法外还需要刻苦的学习。

我想,这就是一份耕耘一份收获吧!在此,也感谢网络给我们提供了良好的学习条件,感谢老师的辛勤指导,祝愿网校现在远程教育事业的发展有更广阔的前景,培育出更优秀的人才。


第二篇:计算机专业理解


作为计算机科班、系统方向,谈谈我对计算机专业素养的理解,希望对大家有所帮助。 所谓,知之者不如好之者,好之者不如乐之者,计算机专业也不例外。虽然本科是被选到计算机专业,但大一因为C语言老师的激励而喜欢这个专业,并在大三偶然参加国防科大"微处理器设计”研究生暑期学校时,知道了超级计算机之父Cray及其借用1024只鸡与牛来比喻性能差异的名言,见识了龙芯实现的经验,而决定做系统领域研究。兴趣入门,比如《计算机文化》(第10版?)《编码的奥秘》(我觉得旧版比新版的小开本更好)《大话处理器》,the Information Science Hall of Fame,以及传记类的《ACM图灵奖演讲集:前20年 (1966-1985)》《ACM图灵奖 (1966-2006):计算机发展史的缩影》(ACM网站的演讲原稿)《IEEE计算机先驱奖:1980-2006》。更专业一些,推荐UT Austin Prof. Patt的《计算机系统概论》(Introduction to Computing Systems: From Bits and Gates to C and Beyond),CMU Prof. Bryant合著的《深入理解计算机系统》(Computer Systems: A Programmer's Perspective)。CMU流传着这个段子:15-213,给CMU门牌的课程。这里的15-213,既是以CSAPP为课本的Introduction to Computer System课程编号,也是匹村的邮编。信不信由你,我也是因为这本书,了解系统各部分延迟并喜欢上系统这个方向的!

在谈具体课程前,插播三类文章,以培养专业(职业?)精神。

a) 专业科普

Utah AP的What every computer science major should know、我上届创业的师兄编辑的《计算机新人入门任务》,Eric Raymond的How To Become A Hacker、William Long的《写给新手程序员的一封信》《给未来的你----李开复在2011级大学新生学习规划讲座上的演讲》,。Linux: What are some time-saving tips that every Linux user should know?。创业师兄写的《程序员的战斗力》。Peter Norvig's Teach Yourself Programming in Ten Years。The Evolution of a Software Engineer。杂类汇编。现在M$当QA的本科校友的转CS建议和面经。《资深软件工程师的特点》。工欲善其事,必先利其器----程序员的文本编辑器简介;基于HTML5的VIM寓教于乐在线游戏Vim Adventures。IEEE Computer Society。NSF旗下课程网站TRUST Academy Online (TAO)。 b) 科研素养

前哈佛教授、现Google SE的Getting started as a PhD student,基于指导MIT和Berkerly学生总结而成的Advice for students starting into research work,CMU教授的On the Ph.D.,Wisc教授的Advice,Utah AP的10 easy ways to fail a Ph.D.和Reading for graduate students,HIT校友、Wisc AP的外链。Princeton李凯教授关于职业生涯规划的报告。UT-Dallas AP关于科研方法和安全领域的资料汇总。UW教授对Paper Award的观点。The Ph.D. grind也非常有参考价值。工大博士师兄的《读书的习惯需要好好培养》。Active Learning。Intensive Study Abroad for First-Generation College Students。来自NUS的CS会议和期刊排行。Google's Hybrid Approach to Research.《梁漱溟:做学问的八个境界》。Best CS papers。

c) 时间规划

李笑来老师的《把时间当作朋友》,MSRA员工的《暗时间》,Utah AP的Tips for work-lif balance,Time Planning by Establishing your Absence and Multitasking,Prof. Tao Xie's checklist,工大博士师兄的页面和博文,GTD from a startup's perspective,我上届百度师兄的《我是如何"管理时间”的》,Fenng在微信"小道消息”发布的《碎片化时间与我的阅读习惯》《我阅读技术图书的一些习惯》。《如何提高开会的效益》。Habits for college students and grads, by Matt.

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++一条道走到黑。(LLVM is to me as Allegro is to Cloud Wu)人称"大牛”的师兄跟我说,按照某语言排名榜的说法 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,20xx年3月末取消了大一的OOP,转而开设OOD,因为前者反模块化反并行化。当然,这点还在广泛争论中。

脚本语言,顾名思义,用于完成冗余繁琐的事情。把这些事情交给计算机,定时跑就行,什么python, shell, perl, awk, sed, ruby, ror等等。选一个顺手即可。记得豆瓣还是哪里的程序员自述,计算机科班教育不会开脚本语言课,但谁真正掌握了一门脚本语言,说明他是爱计算机的,所以我们会招聘他。(说到job-hiring,相信很多人看过《The Social Network》。Zack招来的人,和那个硅谷小子的,风格完全不一样;而前者才适合一起创业。)书籍都不一一举例了,似乎是个脚本语言,O'Reilly都有从入门到精通的书。最后,要精通正则表达式哦。

浪漫的函数式语言,比如Haskell,lisp,ML等等,是另一种思维方式。有一个笑话,前苏联克克勃苦心偷到了美国NASA的核心代码,交给上峰后被训了一顿;他很莫名其妙,瞅了一眼代码,全是()的组合,当场崩溃。后面介绍Compiler时也会涉及FP。事实上,我觉得,这才是计算机学生应该掌握的语言,MIT大二就开了Scheme的课程(但现在似乎停了)。法国"中科院”INRIA设计了Coq,用于各种形式化证明(比如,编译器生成代码的正确性验证),以及教授程序原理。首届国家科学进步奖的两位获得者有吴文俊,主要贡献就是机器证明,而另一位是袁隆平,解决咱们的口粮。可见这一领域有多么重要!

最后,我很纳闷,居然有人推荐HTML/CSS/JS作为语言的入门?亲,这说的是计算机科学学生的第一门专业课。我讨论的是计算机科学,是科学,不是工程;是本科,不是大专技校。学C,是为了后面的OS----linux。学web,你跟得上市场潮流吗?HTML/CSS/JS,你咋不HTML5、node.js、Go、以及Scala呢。看到这个benchmarking,我都眼花缭乱啦。不好意思,本人很惭愧,不太懂前端编程,也感叹前端的技术细节;但推荐各位想做web的看看HTML5的发布会视频,演讲者一上来给出各种设计哲学,包括了The Declaration Of Independence、Karl Marx的按需分配、George Orwell的Animal Farm,最后才给出了HTML5的。这才是精髓,或是说web设计的精髓。看到自己做的webpage很有成就感,修改linux内核代码的成就感怎样?先抑后扬的感觉不是更爽!本科学习的原则,在我看来,是不要被外界所打动,夯实基础,做自己有兴趣的事情。举个俗透了的例子,如乔布斯学书法,去印度礼佛!

编程语言语法大全

2)Data Structure & Algorithm

很多人推荐CLRS,我也不能免俗,但毕竟不是入门级别的。其实,学DS掌握基本概念就行,推荐清华大学严蔚敏老师的《数据结构》,网上也有视频。同时推荐MIT的Advanced Data

Structures和Wisc的Introduction to Algorithms(普通版和Honor版)。之后也正如大家所言,ACM吧,不是为了WF,只为了不惧怕编程,体验成就感(再回到PL,web语言可以acm?)。一定题量后,需要加强算法,推荐Robert Sedgewick的算法书,the Algorithm Design Manual,Algorithm Design,以及《算法学:计算精髓》,并辅以《编程珠玑》。algorithmist website。最后,拜一下高德纳的TAOCP,所谓家居编码旅行侃山必备利器。

据研究TCS的同学说,the power of randomness in computation是现代的计算复杂性理论最活跃也是最核心的一个部分,其目的在于fool any computationally bounded observer,而高德纳的伪随机卷似乎只是讨论ad hoc伪随机方法。他认为,伪随机是整个计算理论最核心也是最有影响力的理论,没有之一;现代的密码学正是植根于这套理论。他同时推荐了伪随机的教材,以及(伪)随机课程(Harvard版和Wisc版)。他认为,Prof. Yao是现代密码学的founding father,并对其论文theoy and applications of trapdoor functions的评价是"完全的神作,一语洞穿宇宙的奥秘”。

Prof. Moni Naor, who taught Randomized Algorithms, conducts research in cryptography.

TCS也是有qual的,这是UIUC版和Wisc版。

Dictionary of Algorithms and Data Structures; SUNY Algo

Interesting Pi.

Big O.

Off-topic:

The Stacks project on algebraic.

An interesting graphic guy who products a really, if not the most, popular feature in Adobe Photoshop.

Prime Number Patterns, also a fantasy expamle for interactive web design.

3)Operating System

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

当然,也可以拿实时操作系统练练手,比如uC/OS,代码短小精悍,和linux kernel一样,pure

C。QNX。除了平时就使用linux发行版外,百尺竿头,还可以学习如何自定制Linux系统Linux From Scratch。DWARF debug info in Debian and thus Ubuntu as a static library is a root of evil.

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

Win方面,好像有Window internals?虽然是牛书,但是用膝盖想想也知道,写出来的肯定还没深入到骨髓(那可是商业机密啊),不如读linux源码学得扎实。当然,我不太用win,也只是偶尔对win编程。Win API似乎设计得太诡异啦,一点也不正交。以操作内存页面权限为例,为啥设置页面权限的同时还返回页面的初始权限;而获取页面权限时却是返回给定页面的所有信息,再从中找出权限信息。当然,想进入微软,还是要积累些Win系统编程和调试的阅读量的。Win32 cheat sheet也有帮助。这是Windows进程管理的脚本。

至此,还是要鄙视一下win----没有好用的终端(git的Win版都配有bash),只是以图形界面赢得普通市场,取得商业成功而已;当然win的内核技术事实上是比linux强大。君不见,哪个知名IT公司没有自己的集群?集群需要图形界面吗?在我看来,不用终端,似乎失去对整个计算机的控制;不爽,计算机是服务于人的,是被CSer控制的。顺便8g一下,"盖茨对'计算'这一概念的理解,是初中生水平;Google的Page,是本科生。”(引自《程序员的十层楼》)现在,我还不确定实现facemash的Zack是什么水平,但至少和Page是平手。再拜一下Amazon,这是因其云平台,才有Dropbox等一路风生水起;可叹中国,国家垄断。

至于选择日常使用的OS,王垠04年写过《完全用 GNU/Linux 工作》和《写给支持和反对<完全用Linux工作>的人们》(两文合集下载)。正如之后有工大师弟向我介绍Windows的优势一样,事后也有人批驳王垠。现在,王倒戈啦,但其观点没法立足啊;等我准备完OS qual,新开一文试论类UNIX系统发展历程。在我看来,萝卜青菜,各有所爱嘛;凡事都有各自的因缘,保持和而不同的姿态,不是更体现多样化之美嘛。

还有,移动设备的OS有自己的研究特点。固态硬盘也有其市场化的局限。

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

4)Database

不好意思,我本科db没学好。但其实db是相当成熟也很有意思的领域。入门我就不推荐了,直接进阶吧----《数据库系统实现》。Prof. Anhai Doan recommends the Cow Book and the slides, or the Complete Book. And this is a collection of resource about languages, technologies, and DB systems. Another course on DB systems. Guru in DB.

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。

Parallel db by Dr. David DeWitt.

In the midst of Big Data era, we may need to have a profound understanding of NoSQL (模式,漫谈, 举例). In-memory computing infrastructure for Big Data. CACM published a blog on SQL databases v. NoSQL databases. However, Google developed F1, a distributed rational database with the scalability of NoSQL key/value system, to support its core business, AdWords.

A review article on Crowdsourcing systems.

推荐系统:周涛的《个性化推荐十大挑战》;项亮的《推荐系统实践》;Ricci's Recommender Systems Handbook。Latent Factor Models & Restricted Boltzmann Machine。

5)Software Engineering

这简直是个人文学科,集计算机科学、管理学、心理学、社会工程学于一身。在此我不展开,可以参考UW教授的讲座Software evolution then and now: the research of David Notkin。经典书籍也有很多分类,比如编码类(Write solid code, refactor, 各类design pattern,《代码大全》第二版,《程序员修炼之道》,《编程卓越之道》,O'Reilly"xx之美”系列,各种"UML,XP编程、敏捷、需求,测试”书籍),故事类(dreaming code),管理类(各种Joel on software,美国"创新工场”YC创始人Graham的《黑客与画家》,peopleware,37single的好书,甚至时间管理GTD的书籍)。同时敬礼图灵奖获得者、北卡教堂山教授、《人月神话》作者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及其搭档的关于前后端开发的博客,至少坚持180天。

SE paper bibliography/categorization/classification by Prof. Tao Xie's Automated Software Engineering Research Group

Stanford的创业课程

6) Compiler及PL设计哲学

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

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

徒手实现C++11?这是OSDev论坛讨论此项目的帖子。

编译强调的更是优化。这里介绍了基于Intel处理器的优化。编译器构造相关的主题。

《程序设计方法》《计算机程序的构造和解释》《程序设计语言概念》《程序设计语言原理》,甚至《自动机理论、语言和计算导论》《计算理论导引》才应是计算机专业学生应该具有的理论素养。优秀的程序员应是理解程序设计语言原理的,包括Relational operator,lazy evaluation,Abstract Interpretation等概念;即使不理解语言原理,也能围观各种编程语言的特色。Wisc有介绍程序语言原理的课程,使用OCaml(这是99难题和其标准库实现;阅读STL是学习语言的最好方式)。编译点滴blog也给出了Compiler书目的点评。Utah Prof. John Regehr科研之余写blog。Utah另一位研究PL、编译的AP Matt Might也有关于PL、Compilers、static analysis的推荐;更重要的是,其blog营养价值之高,让我惊叹!

推荐研究PL的王垠(11年及以前的状况)的《初学者程序语言的选择》。Indiana U in Bloomington教授、PL领域先驱Daniel Friedman(wikipedia;从其学生王垠的叙述,怎么看怎么像CS领域的"周伯通”费曼)01年做了主题为The Role of the Study of Programming Languages in the Education of a Programmer的演讲(pdf原文,PPT slides)。

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

关于编译的牛校,Rice肯定有一席之地,历史上就完成了多个高性能编译器设计的研究,现存的有Habanero。

Facebook从10年起开发、华人始创的HHVM(paper)旨在优化PHP,技术细节是PHP2C++以

及Dynamic Binary Translation & Optimization。

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

系统结构可大可小。小的指指令集,大的可以包括计算机组成原理、编译(每个指令集都需要自己的编译器)。所以,我把帕特森和轩尼诗的两本扛鼎之作和盘托出----《计算机组成和设计:软硬件接口》和《计算机系统结构:量化的研究方法》(caaqa)。读不懂没关系,书读百遍,其意自现。还有《Readings in Computer Architecture》《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 Patterson和Dr. Pradip Bose分别阐述了自己的观点。务实的方案是利用现有技术扩展计算能力,比如CMU的FAWN。

Gene M. Amdahl 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 Hill或Prof. Mikko Lipasti版),多核处理器编程,以及Qual的备考资料和历年真题,让想做CA研究的感受一下!话说,我当年本科时苦于没人指导如何研究系统结构,就下载《微处理器设计》、caaqa等经典书籍每章后面感兴趣的论文,陷于浩瀚paper海而没有灯塔指引。希望后来者不要重蹈我的覆辙!

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

8) Systems CS科研,尤其是系统领域的研究,不是一门课的知识就能涵盖的。比如,此文介绍了垂直搜索引擎Duckduckgo的架构。

虚拟化也是系统领域研究的热点之一,比如Virtual Machine Moniter应用于smartphone平台方面,哥大比较前沿。

网络方面本人水平有限,暂归此类。这是网络方向会议统计。Chrome Browser architecture. An interesting trick, powered by Google, to augment the visiting counter for ur website; I am sure I am joking.

MultiPath TCP seems to be promising in the mobile networking settings.

纷繁复杂的分布式系统永远是系统领域研究的皇冠之一。Google FellowJeff Dean必然是其中翘楚。Google分布式计算的三驾马车。MapReduce其实是FP的两个higher-order functions map和reduce;当然,这也不是大数据处理的救世主,详见A Comparison of Approaches to Large-Scale Data Analysis。关于分布式系统和scaling的一些文章。Distributed Key-Value Stores。云计算。此博客主要讨论分布式领域技术。

QoS of SE

有一类分布式系统是基于事件驱动模型。微软也有一篇综述。

这是高级CS课程合辑。

德国德累斯顿工业大学的系统方向论文阅读列表。

9) Security & Privacy 有人的地方就有江湖,也有安全和隐私。计算机安全领域的会议统计有很多人维护:麦屯版、TAMU版、新加坡版、英国版、沙特版。IEEE S&P展示了数十年该领域的研究趋势以及近些年的会议总结。加拿大Carleton大学汇编了一些资料。而TAMU的华人AP也收集了一些信息。Security and Privacy related Events and Slang. Computer Security Foundations Symposium workshop。DIMACS workshop。

UT-Dallas的安全课程;雪城大学以instructional laboratories for security education闻名的计算机安全和网络安全课程;麦屯的安全课程和密码学课程。

Handbook of Applied Cryptography

病毒(Malware)早已不是单纯的压缩和加密,还包括利用packer工具,甚至是protection packer工具,对可执行程序进行混淆(obfuscation)处理。Cisco安全博客回顾了病毒的obfuscation技术历史。Panda研究所介绍了packer工具的进化史。

av-test

A website focus on security & Vulnerabilities

Security tools to download

10)课程之外

回首这些年,很高兴学计算机,不仅是因为与人相比,计算机其实很"简单”,照着程序执行,出现了意外也是可评估可能恢复并规避的----每个程序员都是折翼的天使,在计算机世界里构建属于自己的理想国,没有尔虞我诈;更是因为通过计算机专业的学习(推荐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,这是门最好的学科。祝福所有飞友,并附上我的飞跃总结以及Remzi的CS牛校统计图,心安处,即是家。南无阿弥陀佛!

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

更多相关推荐:
计算机学习心得体会

官渡区五里小学陈红世纪之交,学与技术突飞猛进,新的发明与发现层出不穷。人们发现,这些伟大成就的每一桩每一件,不是直接就是间接与计算机有关。计算机已经成为一种现代文化,这种文化使人类在迈向新世纪时欣欣向荣,充满生…

学习计算机心得体会

学习计算机心得体会随着信息技术的高速发展并迅速渗透到社会生活的各个方面计算机日益成为人们学习工作生活不可缺少的基本工具再过不了几年不会使用计算机就会象不识字一样使人举步维艰自从进入华夏爱婴这所学校计算机无时无刻...

计算机专业心得体会

计算机专业心得体会计算机专业实训心得体会近期学校组织了计算机培训当我听到这一消息时第一感觉就是我也要参加培训吗因为大大小小的计算机培训考试也经历过好几次了虽然自我感觉水平不高但总觉得这种培训的意义不大因为大凡这...

计算机专业心得体会

计算机专业心得体会首先说一说进入计算机专业的目的我个人是因为十分喜欢IT业很喜欢折腾电脑所以在填报志愿是毫不犹豫的在报了的所有的学校都填写的计算机专业梦想着进入计算机专业后能遇见很多高手能交到几个知己谁之进来后...

计算机专业毕业实习心得

实习心得众所周知,实习是学生大学学习很重要的实践环节,实习是每一个大学毕业生的必修课,它不仅让我们学到了很多在课堂上根本就学不到的知识,还使我们开阔了视野,增长了见识,为我们以后更好把所学的知识运用到实际工作中…

计算机专业指南心得体会

计算机专业指南心得体会合川电大11春计算机信息管理陈敏为教师专业发展提供了惬机。不管是现在还是将来每个教育者应不断地加强,不断地给自己“充电”,才能不断的开拓进取,勇于创新,才不至于被社会淘汰。我感到了学习的快…

计算机专业 学习心得体会(参考)

计算机专业学习心得体会10秋计算机韩梅当我进入电大的校门时我的心情激动不已今天电大给我了机会我非常珍惜这个学习机会开学后我遇到了一位好班主任她经常鼓励我们要相信自己的能力相信自己的实力对自己要充满信心学习本身就...

计算机学习心得体会

随着信息技术的不断发展多媒体教学成为活跃课堂调动学生学习积极性的一种主要手段因而对于我们教师而言计算机的操作是我们必须掌握一门技术能入到咱们长子的教育队伍中并能参加这次计算机培训我感到很荣幸故而倍加珍惜这次学习...

学习计算机心得体会

学习计算机心得体会城关三小朱俊秀这段时间的学习真的是让我受益匪浅有成长的快乐有丰收的喜悦有不懂的遗憾一提高了思想认识体会到教育技术培训的重要性通过本次学习我对信息教育有了全新的认识这样一个全方位的培训使我的教学...

计算机实训心得体会

时间过得真快转眼间为期四天的实践已经结束经过这两周的实践练习让我们学到了许多知识回头想想实践这几天我确实是有很大收获的四天看似很简短的时间实际上按小时计算96小时却是个不小的数字也许有些牵强但是简短的时间仍是有...

计算机培训心得体会

计算机培训心得体会坦白说最初我是硬着头皮来参加这次计算机培训的盼望已久的暑假到了又突然冒出来一个计算机培训多少有些不情愿而且关于计算机的培训以前参加过而且不止一次无论是内容还是形式都感到无新意以前的培训都是应付...

计算机网络专业剖析心得体会

计算机网络专业剖析心得体会3月20号我系的专业剖析活动正式启动!当天晚上我们就听了王老师针对网络技术的专业剖析讲座,听了之后我终于清楚了网络的功能之强,让我更有信心学习我的专业。王老师讲的主要分别是:1、专业背…

计算机专业心得体会(28篇)