博文

李开复给中国IT大学生的7点建议(转)(2006-04-26 13:21:00)

摘要:很多在校的大学同学问我们:“我今年还没有到毕业班,但我很想知道,如果将来想申请Google中国工程研究院,现在应该如何让自己做好准备?”下面是Google中国总裁李开复博士和其他一些Google资深的华人工程师给广大同学的建议。

(1)练内功。不要只花功夫学习各种流行的编程语言和工具,以及一些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好。不妨试试Donald Knuth的Art of Computer Programming里的题目,如果你能够解决其中的大部分题目,就说明你在算法方面的功力不错了。

(2)多实战。通过编程的实战积累经验、内化知识。建议大家争取在大学四年中积累编写十万行代码的经验。

(3)求实干。不要轻视任何的实际工作,比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与职业精神。

(4)不放弃数学。数学是思维的体操,数学无处不在。尤其当你对一些“数学密集型”的领域有兴趣,例如视频、图像处理等等,你需要使它成为你的利器。

(5)培养团队精神,学会与人合作。

(6)激励创新意识,不为书本和权威意见所束缚。

(7)有策略地“打工”。在不影响学业的前提下,寻找真正有意义的暑期工作或兼职。去找一个重视技术的公司,在一个好的“老板”指导下完成真正会被用户使用的程序。不要急于去一个要你做“头”而独挡一面的地方,因为向别人学习,是你的目的。打工和找工作一样,“不要只看待遇和职衔,要挑一个你能够学习的环境,一个愿意培养员工的企业,一个重视你的专业的公司,最后,要挑一个好老板。” ......

阅读全文(2598) | 评论:0

写给想当程序员的朋友(2006-04-01 18:40:00)

摘要:写给想当程序员的朋友 软件以程序员为本(《程序员》) 谨以此文献给所有想当程序员的朋友 (一) 文章由来及个人经历 我是一名计算机专业的本科毕业生,毕业已经1年多了。毕业后从事的是软件编程工作,经常有其他专业的朋友想从事软件编程工作,向我请教如何,因为我自觉涉行不深,不敢信口开河,无奈朋友信任,我不得不郑重考虑一下这个问题了,来帮助朋友选择和回报朋友的信任。 这也就是此文的由来。 还是先谈谈我个人的经历吧。(是不是有点俗套,但我觉得了解我的经历,有助于理解我话的含义;我一向认为不了解古龙的生活经历的,不会真正读懂古龙的作品和古龙笔下的英雄的)我本科就读于南方一所著名的高校(因为自己的不成气,愧谈母校名谓),学的就是计算机专业。上本科时,几乎没有认真的听完一门专业课程,上课看报纸睡大觉,下课看录像看小说看球赛,临考抱佛脚,每次考试和课程设计都是蒙混过关。(于之相对是,我选修的工商管理和经济贸易方面的课到是听得不亦乐乎,考的分数颇高,也许这才是我的真正兴趣所在。) 总而言之,大学是混过来了,对专业的理解和掌握程度,应该没有达到毕业要求的合格水平。(也很后悔,但是有什么用呢,当时不知道珍惜;如果上天再给我一次机会的话,我一定会抓住,多看点美国大片少看点港片;现在,重回校园是我的一大理想)但是大学的学习使我有了一个简单的知识框架(总算学费没白交),我对一个朋友这样形容过我的这个知识框架,“它不是钢筋铸的,是稻草扎的”,哈哈哈,不要笑,真的,我敢说很多本科毕业的朋友的本专业的知识框架也只不过是“稻草扎的”。直到现在,我一直觉得自己的基础知识还是很薄弱,一直想抓点时间,把基础书本好好的温习一下。(此项任务正在计划和实施中) 毕业后,分配到某研究所工作。当领导让我选择自己以后的工作方向时,我毫不犹豫的选择了软件(也不知道到底是对还是错,但我决不后悔)。此研究所主要是以硬件为核心搞通信控制设备的研发生产;软件是辅助,所以也不受什么重视,很多搞软件的人都跳槽走了,留下来的大都是一些已经废掉和行将废掉的“伪/ 萎”程序员(名副其实的“软件人员”)。在这里感觉不到什么高紧张和高技术程度的研究和开发;软件开发的技术含量极低,以致于大部分人只有半年的学习和开发经验,以后都是这些知识和经验的重复利用。(我问过其他到研究所工作的同学,他们说都一样,呜呼......

阅读全文(2850) | 评论:3

怎样做程序员(2006-04-01 17:05:00)

摘要:借用一句台词“如果你爱一个人,那么让他去做程序员吧。如果你恨一个人,那么让他去做程序员吧”这个世界再没有一种职业比程序员更痛苦了;再没有一种职业比程序员更快乐了;再没有一种职业比程序员更具有挑战性了;再没一种职业比程序员有更单纯的生活了。因为他是造物主,魔术师,流放者,虔诚之徒。 如果你只想做一些,“XX管理系统”之类的东东,拜托了请不要做程序员拿起身边的可视化编程资料,用一个礼拜时间在痛苦并未来临之前掌握完成,当然不会随之而来的还有快乐。其实可以学的好方向多的是,老实说,计算机现在已经没有前几年吃香了,正处于低潮期。MBA、法律都是很好的。兴趣是我们作事的最大源动力,当你在这个行业看不到自己的兴趣所在,那么毅然决定离开是最好的选择。但如果你选择了程序员,恭喜你,世界上最美好的,伟大的,震撼的作品就在你触手可及的地方。 一、起步 所有人都想成为一个高手,可要知道在所有的高手成为高手之前,他自己都有一个相当长的积累时间。当然,我不是说的那种攒机高手,我是指的真正的计算机高手。比如,懂得汇编可以从事系统底层的工作,或从事软件加解密的工作,这样也可以称为高手;再比如,精通OOP,熟悉设计模式,也可以成为系统设计的高手。高手的定义很多,总体来说,“高手”是在你的实际能力和水平达到一定程度之后一个很自然的反馈。所以千万不要在起步的时候用“高手”两个字来迫害自己,每个人都是从“顺序结构”开始的,每个人都从“main函数是什么?”的问题开始的,掀开第一页,打开编译器是你的起步。执著,坚持,非凡的毅力必定会成就你的。 二、学习 计算机的核心课程大致为:数据结构,组成原理,离散数学,操作系统,编译原理,系统结构,软件工程,OOP,图形学,网络,C/C++ /Pascal/Asm编程语言等。是的我知道你想学编程,我知道你今天就想写出一个windows 2006或者什么。我知道你不想学数学,不想学与程序看似无关的其他东东。但是拜托,请耐心点,把核心课程认真学习一遍或几遍,比如数据结构,比如离散数学,再比如操作系统和组成原理等等。为什么是“核心”以后会明白的。不要眼高手低,千万别想当然DS简单,不信你现在写个后序非递归算法,我估计你是挂了。 三、拓展 通过起步,你已经学会了三四个低级语言,五六个高级语言在短......

阅读全文(5402) | 评论:1