《我的26年计算机生涯》由会员分享,可在线阅读,更多相关《我的26年计算机生涯(31页珍藏版)》请在金锄头文库上搜索。
1、我的26年计算机生涯Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望反思我的十年教育反思我的十年教育n n在学校学的东西大部分对我后来的工作没有帮助n n我在工作中碰的大部分问题在学校没有学到n n大学生混的最高境界大学生混的最高境界 ( (考试版考试版) ) - zms1844, zms1844, 开复学生论坛开复学生论坛n n人:什么?明天要考高数?人:什么?明天要考高数?n n得道:什么?下节课要考高数?得道:什么?下节课要考高数?n n入仙:什么?刚才考的是高数?入仙:什么?
2、刚才考的是高数?n n成佛:成佛: 什么?昨天有考试?什么?昨天有考试?n n高级佛爷:高数?刚才考的不是英语?高级佛爷:高数?刚才考的不是英语?n n我寝室一哥们:高数是什么树?我寝室一哥们:高数是什么树?n n回帖回帖 小帆,开复学生论坛小帆,开复学生论坛n n夸张之后有真实夸张之后有真实n n搞笑之中有辛酸搞笑之中有辛酸生存的境界生存的境界n n改变你能改变的;有度量接受你不能改变的;有智慧区分能改变的和不能改变的。- 圣经问题:让我们想一想,在现有的条件下,有哪些是可以改变的,使得我们能最大限度的实现自己的理想?教育的本质教育的本质n n当你把学校学的东西都忘了的时候,剩下的就是你的教
3、育留给你的最本质的东西。- B. F. Skinner, 引自开复学生网引自开复学生网问题:让我们想一想能不能做些什么使得我们将来忘得少一些,留下来的多一些呢?如果我能再回到如果我能再回到学生时代学生时代 .凌小宁博士微软研究院总部微软研究院总部 长沙,长沙,2006 2006 年年4 4月月 学习的境界学习的境界n n学会答案学会答案n n学会一个解学会一个解n n学会方法学会方法n n学会一个方法学会一个方法n n学会学习学会学习n n学会找到方法的方法学会找到方法的方法n n学会做事学会做事n n学会超越学会超越“ “纸上谈兵,与实际纸上谈兵,与实际“ “融会贯通融会贯通 n n学会做人
4、学会做人学会做人学会做人n n学会不要别人提醒,要求,强迫,就能自觉地承学会不要别人提醒,要求,强迫,就能自觉地承担起你的责任和义务。担起你的责任和义务。学会做人(学会做人(2)n n学会在群体中体现你的价值,学会与你的群体共学会在群体中体现你的价值,学会与你的群体共荣共辱荣共辱情商情商情商情商事业的潜力事业的潜力事业的潜力事业的潜力逆反的逆反的不适合任何团队不适合任何团队个体的个体的Individual contributor Individual contributor 合群的合群的团队的核心成员团队的核心成员有凝聚力的有凝聚力的团队领头人团队领头人学数学的境界学数学的境界n n学会解数学
5、题n n物理问题 数学问题n n实际问题 物理问题 数学问题n n实际问题 物理问题 数学问题 软件解数学与计算机数学与计算机n n离散数学离散数学 ( (布尔代数,集合论,数理逻辑,图论)布尔代数,集合论,数理逻辑,图论)n n计算机基础的基础计算机基础的基础n n代数代数/ /数论数论n n算法分析,计算机安全(加密解密)算法分析,计算机安全(加密解密)n n傅利叶变换傅利叶变换 n n 信号处理信号处理 (语音识别,(语音识别,)n n概率,随机过程概率,随机过程n n机器学习,数据挖掘,语音识别,信号处理机器学习,数据挖掘,语音识别,信号处理 . .n n几何学几何学n n计算机图形计
6、算机图形n n数理逻辑数理逻辑/ /证明方法证明方法n n可计算性,计算复杂性可计算性,计算复杂性算法算法 - 程序员之魂程序员之魂n n学会基本算法及其性能n n学会算法设计常用方法n n学会算法设计中的Trade-offn n学会发明新算法解决实际问题学编程的境界学编程的境界 学编程学编程学编程学编程 学写作学写作学写作学写作n n学会写程序学会写程序 学字,词,文法,句法学字,词,文法,句法n n学会高效地写程序学会高效地写程序 学会流畅地写文章学会流畅地写文章 n n学会写高效的程序学会写高效的程序 写简洁明快的好文章写简洁明快的好文章n n学会设计程序学会设计程序 选择结构,流程,方
7、法选择结构,流程,方法n n学会设计有用的程序学会设计有用的程序 写人们喜欢看的文章写人们喜欢看的文章 我最佩服的一位程序员我最佩服的一位程序员Jim Gray软件工程的要素软件工程的要素n n是研究大规模软件生产的学问n n不是关于编程的学问!n n要素:大规模软件生产的n n过程过程n n方法方法n n工具工具软件工程对编程的特殊要求软件工程对编程的特殊要求n n程序的n n可读性n n可测试性n n可调试性n n可扩充性n n可维护性卡内基梅隆大学卡内基梅隆大学 软件学院软件学院n n院长:Dr. Raj Reddyn n首席教育家:Dr. Roger Schank n n培养工程硕士
8、(两年)Dr. Roger Schankn n计算机科学家,心理学家,教育家n nCMU 教授n n曾是西北大学,斯坦福大学,耶鲁大学教授n n美国政府部门的高级顾问n n读书是获取知识的最重要的部分 错!n n只需要努力争取好分数就能学习成功 错!n n学习可以脱离现实 错!n n学生被告之应该学什么 错!n n有些不会被用到的东西是值得学习的 错!Roger: 教育中常见的错误教育中常见的错误Dr. Roger 的方法:的方法:如果我能重新开始学习计算机.n n掌握五种核心的知识和技能软件产品商业开发软件产品规划,设计软件产品开发,管理,测试软件生产过程现代企业文化基础n n确立一个相对明
9、确的职业目标确立一个相对明确的职业目标n n根据这一目标根据这一目标, , 确定要掌握的专业确定要掌握的专业/ /课程课程/ /技能技能/ /知识知识n n做大量的课程实践项目做大量的课程实践项目n n对每一个实践项目对每一个实践项目, ,n n确立一个模拟的实际工作中的用户场景确立一个模拟的实际工作中的用户场景(scenario)(scenario)n n尽量以实际工作中的方法和标准作每件事尽量以实际工作中的方法和标准作每件事n n注重项目过程注重项目过程n n碰到没学的东西碰到没学的东西, , 去问去问, ,去学去学. . 在用中学在用中学, ,带着目的学带着目的学. .学学会最有效地解决
10、问题的手段会最有效地解决问题的手段/ /方法方法n n联合同学做团队项目联合同学做团队项目, , 做好自己的部分做好自己的部分, ,帮助团队整体成帮助团队整体成功功n n采用一定规模的实用的或模拟的软件项目n n以软件公司生产架构组织团队n n以实际软件生产流程组织课程项目流程n n少上课;!多花时间做项目!n n在做项目中学;有问题请教老师,同学n n以按要求按时完成项目作为成功的标准例一:算法学习知识库例一:算法学习知识库n n联合同学和老师组成一个团队联合同学和老师组成一个团队n n找出几个大家共同感兴趣的算法问题找出几个大家共同感兴趣的算法问题n n对每个问题设计出多个算法并计算出理论
11、性能对每个问题设计出多个算法并计算出理论性能n n对每个算法编出程序统计实际性能对每个算法编出程序统计实际性能n n比较分析理论性能与实际性能,写出报告比较分析理论性能与实际性能,写出报告n n把算法,程序,报告放在网上,建立起湖南大学把算法,程序,报告放在网上,建立起湖南大学软件学院算法学习知识库软件学院算法学习知识库例二:排课系统例二:排课系统 n n学校每学期都要进行一件非常费时、费力的事情,就是安学校每学期都要进行一件非常费时、费力的事情,就是安排教室。因为一个教师可以任多门课程、这多门课程的教排教室。因为一个教师可以任多门课程、这多门课程的教学对象(学生)又不相同;每门课程的听课人数
12、不同;教学对象(学生)又不相同;每门课程的听课人数不同;教室分多媒体、普通教室两类,有的教师需要多媒体进行讲室分多媒体、普通教室两类,有的教师需要多媒体进行讲课,有的教师不需要多媒体;有个别教师需要特殊照顾课,有的教师不需要多媒体;有个别教师需要特殊照顾(例如,爬楼有困难);每个教室的座位数不同;而教室(例如,爬楼有困难);每个教室的座位数不同;而教室管理部门又希望在某个时间段按物理位置集中使用教室管理部门又希望在某个时间段按物理位置集中使用教室(例如,晚上、周末相对课少,希望楼上的教室尽量不用,(例如,晚上、周末相对课少,希望楼上的教室尽量不用,便于管理),并能够保留某些教室以作临时调用。便
13、于管理),并能够保留某些教室以作临时调用。 现请开发一个能够既考虑方方面面的因素、又符合学校教现请开发一个能够既考虑方方面面的因素、又符合学校教学计划的学计划的“ “教室教室- -排课排课” ”互联网服务软件,帮助进行这项互联网服务软件,帮助进行这项工作。工作。 这个服务软件应集成到校园网中。这个服务软件应集成到校园网中。- - 上海交大软件课程实习项目上海交大软件课程实习项目n n团队组织结构产品部 产品主管总设计师商业开发经理测试部 测试经理开发部 开发经理规划设计部 规划经理若干规划经理若干程序员若干测试工程师通过这些项目学习:通过这些项目学习:n n商务计划商务计划/ /规划规划 (p
14、roduct manager, product planer) (product manager, product planer)n n市场分析,可行性分析,资源需求分析,时间线,商业开市场分析,可行性分析,资源需求分析,时间线,商业开发发n n项目管理项目管理 (program manager) (program manager)n n需求分析,说明书,过程管理,负有按时完成的权责需求分析,说明书,过程管理,负有按时完成的权责n n开发(开发(software design engineer)software design engineer)n n按说明书设计,按编程标准(按说明书设计,按编
15、程标准(coding guideline) coding guideline) 实现系统实现系统n n测试(测试(testing engineer)testing engineer)n n根据说明书,制定测试标准,编写测试文件,实现自动测根据说明书,制定测试标准,编写测试文件,实现自动测试工具,测试试工具,测试n n团队,沟通,演讲,谈判,技术写作,团队,沟通,演讲,谈判,技术写作,项目流程项目流程Software Concept, analysis, planRequirements Analysis/specArchitecture designMilestone One: Detaile
16、d design, code, debug, testCore UI, Scheduling Alg, Database access (Web-based)Milestone Two: Detailed design, code, debug, testTracking, Monitoring, Analysis, .Milestone Three: Detailed design, code, debug, testSecurity, Scalability, Integration with IntranetAlfa test Beta testRelease To Service, DeploymentWeb Service Platform, App architecture, Scheduling, Database AppStatistics, data mining, performance analysis, reportingHacker attacks/prevention, Incident handling, Web app architecture, Testing, Internal interaction Testing, External interactionSeamless deployment谢谢!谢谢!问题?问题?