三个境界——致计算机系的同学们

三个世界及其有关概念 三个世界及其有关概念 数据库管理的对象(数据)存在于现实世界中,即现实世界中的事物及其各种联系。从现实世界的事物到存储到计算机的数据库中的数据,要数经历现实世界、信息世界和计机世界三个不同的世界,经历两级抽象和转换完成。 认识抽象,概念模型 1现实世界:客观存在,事物以及其关系 2信息世界:概念世界,客观事物以及联系的抽象表示实体:客观存在,相互区别,人,事,物,抽象事件 属性:实体的某一特性属性... 阅读详情
三个境界——致计算机系的同学们
 
语出朝禅师青原惟信:“老僧三十年前未参禅时,见山是山,见水是水。及至后来,亲见知识,有个入处,见山不是山,见水不是水。而今得个体歇处,依前见山只是山,见水只是水。”
 
第一境界:见山是山,见水是水
       内涵:初次接触,随意观察,表面印象,没有深入探讨。
 
       对于我们程序员来说,初识一门程序语言,乃第一境界。了解这门语言的语法,如何声明和初始化变量,如何用三大基本结构:顺序、分支、循环,如何写函数,如何构造类,了解这门语言的函数库、类库……特别是对于我们计算机系的学生来说,课堂上讲的全部搞清楚,作业全部完成,考试轻松90,也仅是达到了第一境界而已。但是,很多计算机专业的同学却没有这样的意识,总以为课堂上学会了,就通了,牛先吹在前面,说“精通某某语言,同时还精通某某语言……”,让人“肃然起敬”。而真真开始做具体的项目了,却还是停留在“作业”阶段,一连串函数写到底,或者就是一个类通吃……不懂如何划分模块,不知道怎么设计类的结构,“高内聚低耦合”就更别提了……退而求其次,用软件流水线模式来分配任务,在编码阶段提供一个模块的功能、入口及出口,仅要求完成模块的功能吧,确实功能实现了,打开源码一看,程序结构一团糟,编码毫无风格可言,没有任何注释……曾经听过印度一个教授的讲座,印度计算机学校的高中生大都已经达到了在“第一境界”中游刃有余的地步,唉,感叹国内的计算机教育。
 
第二境界:见山不是山,见水不是水
       内涵:进入怀疑、批判阶段,疑团满腹,眼前是假象。
 
       一般,达到了“第一境界”后,初识了一门语言,是远远不够的,按理应该是继续深入下去。但是,对于我们计算机系的学生来说,却只能遵照计算机高等教育的要求,学完了C,就是汇编,然后就是C++或JAVA,抑或.NET,假如学网页,又是ASP、JSP、JavaScript、AS(Flash)……一个接着一个,都是表面印象,什么都懂,什么都做不来。是否会思考一下,难道计算机程序语言就那么回事么?语言间是否存在着什么本质关系?……假如有过如此思考,那么恭喜了,你已经在摸着石头过河,河对岸就是“第二境界”。
所谓“第二境界”,就是否定阶段,不断地怀疑、批判这些的表面印象,然后通过推理、思辨得出事物的本质。这些否定,或许感受不到,但却时刻隐藏在学习的过程中。那么程序语言的本质又是什么呢?思想。面向对象思想应该是耳熟能详了,其实面向过程有思想,编写程序代码的时候有思想,写文档的时候有思想,测试的时候有思想……思想无处不在,却悄无声息,如何把握就成了这个境界的关键。
对于面向过程来说,分层,划分模块,确定数据结构就是重中之重;面向对象的精髓就在于如何把现实世界抽象出一系列具体的模型,以及确定模型的各部分彼此之间的关系,然后具体到面向对象的技术,继承与组合,耦合与内聚,信息封装,消息传递,以及重构、设计模式等等;编写程序代码时,如何通过缩进、换行来使代码的阅读更为方便;实现具体功能时,如何对数据结构的进行合理的操作,以及算法的实现;写文档时,如何做到自己写的东西结构清晰,其他项目组的成员能够一目了然;测试的时候,单元测试、集成测试如何来做,测试应该在何时进行,是否需要TDD,软件的构建周期如何确定……
除了以上这些一目了然的思想、准则,我们计算机系的学生其实应该算是幸运的,因为每天,在课堂上,我们都接受着一系列计算机科学家们所总结的理论、技术、经验和思想。数据结构,算法,微机原理与接口技术,数据库,操作系统,软件工程……虽然我很重视这些课,有个计算机专家说的好,语言是外功,基础是内功。在大学里学习的时候,我们应该做到以内功为基础来练外功。但事实上,这些计算机基础课是否确实有用,还是存在不少争议。记得曾经某高校硕士就公开叫板教育部,说自己3年硕士白读,学了7年计算机理论,发现自己根本跟不上计算机技术发展的潮流,虽然这有点偏激了……还有在csdn上转悠,发现讨论高校计算机教育的帖子,最后大多都成了水帖……感叹,所以对于此,我持保留意见……但就从我自己的经验上讲,好好学还是不会错的。1年以前,我大二时做一个J2EE的项目(J2EE框架+Flex),确实把那些基础全部扔在了一遍,整天抱着Thinking in Java和Java API Specification,充其量还有一本数据库原理及UML参考资料;但是当我投入Linux的怀抱,学习系统编程的时候,微机原理,数据结构,操作系统,几本以前积了一层灰的书都放在了案头;做网络编程的时候,则是TCP/IP原理;现在涉及到了嵌入式Linux系统,要写设备驱动,微机原理与接口技术,逻辑电路,汇编语言,操作系统则是必备的参考资料。
对于计算机专业的同学们,今后到底从事什么方面基本还是未知数,所以应该为将来做好一切可能的准备,好好学习这些理论技术,要知道,任何前沿技术都是以计算机科学理论为载体的。
 
第三境界:见山只是山,见水只是水
       内涵:分析后获得领悟和证明,用事物的本质重新看待原有事物。
 
       这里的“只是”又回到前面那知识表面上了吗?不是,也没有落到第二阶段“不是”的层面上。这个“只是”就是看出事物真正实质性的东西,通过对它表面的东西的观察,看到它“只是”,再通过经验去推理、去分析,然后形成一种独有的理念,看出事物的另一面,也就是更深刻的一面。但是这还不够,还要在这种基础上再进一步观察,在某种高度上观察,此时会发现原来“只是”这个东西。
       在学习编程过程中,当达到了第二境界时,你就会发现学习编程语言异常容易,本质相同,不同的仅是表面的语法结构和函数库而已。学好了C++,学好了面向对象思想,再学Java能不轻松么?至少我仅花了2天就学会了使用Java语言,但仅是使用而已。在这个时候,既然思想已掌握,入门很轻松,那么就要想着如何去使用认识到的思想来重新回归到学习语言的过程中,去精通一门程序语言,让其成为自己的立足之本。
       选择一门最感兴趣的语言,熟练掌握标准库,熟悉编程细节和技巧,熟练使用与该语言相关的编译器、调试器,然后逐渐从语言层次向底层靠拢,程序的汇编码,VM Specification等等都要有所了解,这样才能从本质出发去使用编程语言及分析代码,查错也好,性能瓶颈分析也好,都有很大的帮助。当你可以说能够做到驾驭这门语言的地步,能够使用其来和谐地指导实践,那么说明,你已经合格了。
       对于我们计算机系的同学们,无论学过了多少种语言,精通一门语言是非常必要的,这里所说的“精通”,当然是指使用这门语言达到了第三境界。
       通过不断地学习、练习、实践(项目)的方式,我个人认为,要达到第三境界,应该是远在天边、近在眼前的事,主要就在于你自己,有没有这样的信念。
 
PS:最近在看一本关于“禅悟”的书,结合自己3年来计算机本科的学习实践,有了这样的一些感慨,就趁着还在大脑记忆曲线的波峰,写下了这些心得……关于“禅悟”,弟子愚昧,并不清楚到底参悟了多少。“道可道,非常道”,能用语言来表达,执着于文字表面,说明我离“道”还相去甚远呢。如此生动活泼的“禅”,却被我这个不知天高地厚的“褴外人”给荼毒了,在此谢罪……
入职程序员,最好的资源分享给大家 自从准备打算入职程序员以后,近半年花了很多日日夜夜浏览各大博客,借阅各种专业语言书籍。 因为大学学习的是软件工程专业,刚好专业对口,却学的一点都不扎实,只能在后来一阵恶补,期望在大四的一年中找到一份满意的工作。整理此篇博客,是想将近些月网络到的优秀博客,文章,以及各种学习资源罗列出来,给广大准备入职程序员,零基础或者想要学习其他语言的朋友提供一个方便。博客:分享的是平时经常浏览的一些博客,这些博客相 阅读详情

相关推荐

程序员10大境界

本文转载自:http://student.csdn.net/space.php?uid=1318585&do=blog&id=60100程序员10大境界<br /> <br />自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。 <br /><br />那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程

lr2131的专栏 6056

计算机学习资料(全)——含视频资料

一、前言 内容涵盖开发所需工具如eclipse、idea、maven、MySQL等、Java开发学习视频,包含多家培训机构内部视频,以及网络直播视频等,整理不易,还请点个赞再走吧! 所有资源均为互联网收集以及其他途径获取,非商业用途,如有侵权, 请联系作者删除,谢谢! 资料会持续更新,欢迎在GitHub上更进,或者微信公众号或者博主个人博客或关注博主CSDN博客查看最新资料; 我的GitHub 微...

一个成长中的程序员,期待用技术的眼光生活 5740

年底发福利了——分享一下我的.NET软件开发资源

最近建了一个.NET软件开发资源的360网盘共享群,把收集的一些.NET软件开发资源分享给大家,也欢迎大家把好的东东分享一下。 欢迎大家加入360共享群:.NET软件开发资源 邀请链接:http://qun.yunpan.360.cn/12183107 邀请码:0247 我们的口号就是:“人人为我,我为人人!!!” 友情提示:每天签到可以增加群共享...

灵雨飘零的专栏 229

HNU 计算机系统 作业3

HNU 计算机系统 课程的第三次作业,用的是 HNU 老师自主编写的教材《计算机系统-从应用程序到底层实现》里面的课后习题。有的题目可能有解析,有的可能没有。同学们可以选择性的参考一下答案。

Smile_laughter的博客 512

学校计算机室简报,计算机系雅室大赛简报

原标题:计算机系雅室大赛简报古有南阳诸葛庐,今有计算机雅居。为了营造良好的学习氛围,增强班集体的凝聚力,丰富课余文化生活,美化教室生活环境,计算机系生活部于10月12日在七号楼405教室举办2017级新生雅室大赛。 此次雅室大赛先于微信、微博进行为期两天半左右的网络投票,再组织班级进行解说以及班级风采展示,精彩的解说加动人的才艺表演,我们用优美的舞姿、嘹亮的歌声、幽默的小品,展现多彩的青春! 文明...

weixin_32818781的博客 176

清华计算机系9#楼,计算机系学生节:我的世界,9#制造

创办于1983年的计算机系学生节是学生节在清华园的发端。经过30多年时间,在各院系学生节异彩纷呈的今天,计算机系学生节仍然具有鲜明的个性特征,已经称为系里“9#文化”(由最早计算机系学生住宿于9#宿舍楼得名)的代表,更是成为清华的一项文化符号。2015年12月20日,2015年计算机系学生节在大礼堂上演,主题是“Ninecraft”。熟悉网游的朋友一看就知道,这个主题的灵感源自风靡世界的一款沙盒游...

weixin_36205072的博客 324

北邮计算机系统基础课程实验报告:助你掌握计算机系统核心知识

北邮计算机系统基础课程实验报告:助你掌握计算机系统核心知识 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 为北邮计算机系统基础课程提供实验报告,助你巩固知识与技能。 项目介绍 在计算机科学领域,理论与实践相结合的学习方式至关重要。北邮计算机系统基础课程实验报告正是基于这一理念,为北邮计算机专业大二学生量身打造。该报告旨在帮助同学们更好地理解和掌握计算机系统基...

gitblog_06753的博客 416

《深入理解计算机系统》怎样学?个人看法和资源分享

《深入理解计算机系统》怎样学?个人看法和资源分享

达的程序员日记 7159

初中计算机系统的组成教案,《计算机系统的组成》教案

《《计算机系统的组成》教案》由会员分享,可在线阅读,更多相关《《计算机系统的组成》教案(9页珍藏版)》请在人人文库网上搜索。1、计算机系统的组成教案一、教学内容分析本课是苏教版初中信息技术第二章第一节第一课时,管理计算机中的认识计 算机部分,主要对计算机系统的基本组成进行简要介绍,通过本节课的学习,揭 开计算机的神秘面纱,使学生充分了解计算机系统,为后续知识的学习和操作, 打下坚实的基础。本节课的...

weixin_39926104的博客 534

计算机系期末个人总结范文,计算机系学生会学期末工作总结

计算机系学生会学期末工作总结计算机系学生会学期末工作总结(XX-XX年学年度第一学期)元旦到来,计算机系学生会第二学期的各项工作也喜摘硕果.在校系领导的亲切关怀下,在全体同学鼎力支持下,在全体学生会成员的共同努力下,计算机系第二届学生会始终牢记"四个一"的宗旨,团结一致,踏实工作,勇于拼搏,共同奋进,圆满并完成了上级领导下达的任务;同时发挥学生会自主管理的优势,深入同学开展了一系列的活动,收到了良...

weixin_36039452的博客 431

计算机系统的组成说课,《计算机系统的组成》说课稿

计算机系统的组成》说课稿 计算机系统的组成说课稿 一.说教材分析 • 本课程所采用的是全国中等职业教育教材审定委员会审定的,高等教育出版社出版的,周南岳主编的《计算机应用基础》(提高版Windows XP+Office 2003)一书,它是为培养中专层次应用型人才使用计算机技能而开设的课程 • 本节涉及的电脑知识和术语很多,在整个教材中都占有重要地位,我在讲授这节课时计划用二课时的时间来完成。 ...

weixin_34039843的博客 296

张似玫计算机系,计算机系学生会学习部工作总结.doc

计算机系学生会学习部工作总结计算机系学生会学习部工作总结首先,上学期经过学习部所有人员的共同努力,各项活动都得以顺利、有序的完成。1.十月至十二月我部负责了我们计算机系辩论比赛的选手培训和参赛工作,虽未夺冠,但让我们大家都增长了见识,学到了很多。2.十二月我部主要的工作是承办了从策划直至最后成功举办的,丰富了校园文化生活的,给予广大同学展示自己的机会的,同时使得学习部每一个成员都得到了充分锻炼的 ...

weixin_29800319的博客 175

同济大学计算机系统结构考试题,!!!!!同济大学 计算机系统结构 排名大分享...

这是我得到的排名。计算机系 系统结构方向的排名。大家都看看自己在哪里!!52 72 118 114 35659 65 117 106 34766 66 115 99 34656 73 120 ...

weixin_42356978的博客 302

计算机系迎新主题,计算机系迎新庆国庆晚会异彩纷呈

计算机系迎新庆国庆晚会异彩纷呈 (副校长、计算机系主任、软件学院院长王芝庆教授就专业教育发表生动亲切的讲话) (佟振明副主任主持) (会场挤满了同学们) (王成均副主任宣读计算机系英语四六级考试成绩表彰名单) (新生同学代表讲话) (清新脱俗的民族舞《故乡美》) (大学生艺术团带来的《蒙古舞》) (系领导与演职同学亲切合影) 摄影/宋常铁9月28日晚上6点30分,主题为“新的血...

weixin_33860377的博客 373

南京大学计算机系计算机系统基础期末试题下载

南京大学计算机系计算机系统基础期末试题下载 去发现同类优质开源项目:https://gitcode.com/ 本文提供了2013年度南京大学计算机系计算机系统基础课程的期末考试试题。这份资源对学习计算机系统基础课程的同学具有很高的参考价值,可以帮助大家更好地理解和掌握课程内容。 文件详情 标题:南京大学计算机系计算机系统基础期末试题 描述:2013南京大学计算机系计算机系统基础期末试题 请同学...

gitblog_06798的博客 358

[西南科技大学]计算机系统基础 学习指导与作业参考

本文介绍了西南科技大学软件工程专业开设的《计算机系统基础》的学习方法与作业参考,仅供西科大同学参考,抄袭后果自负!

litxiaoyao的博客 1399

计算机专业活动简报,计算机系辩论赛活动简报

原标题:计算机系辩论赛活动简报唇枪舌战,辩赛场硝烟;口若悬河,理是非曲直。口齿伶俐,言之有理,尽显才气风采。九月二十六日晚六点~九点半,由计算机系学习部发起的辩论赛正式举办。本次比赛分为表演赛和正式辩论赛。表演赛为大二辩手的辩论,旨在给大一辩手的正式辩论做赛前"热身" ,正式辩论赛分两场。第一场网络一班VS计科二班网络一班胜最佳辩手 网络一班一辩李浩第二场计科一班VS网络三班网络三班胜最佳辩手 计...

weixin_32808853的博客 251

计算机系期末总结,计算机系学生会学期末工作总结_0.doc

计算机系学生会学期末工作总结计算机系学生会第二学期的各项工作也喜摘硕果.在校系领导的亲切关怀下,在全体同学鼎力支持下,在全体学生会成员的共同努力下,计算机系第二届学生会始终牢记”四个一”的宗旨,团结一致,踏实工作,勇于拼搏,共同奋进,圆满并完成了上级领导下达的任务;同时发挥学生会自主管理的优势,深入同学开展了一系列的活动,收到了良好的效果.现将前阶段学生会的各项工作总结如下:加强团员”六个一”学习...

weixin_39737224的博客 283
上一篇: Debug与Release的区别
下一篇: 基于S3C2410平台移植Linux 2.6内核指南
魔王子
博客等级 码龄21年 42粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值