计算机专业大学学生的学习规划(2)
计算机专业大学学生的学习规划
大家不要笑啊,90年那会,生活不富裕,PC机还是一个很贵的东东,一般家庭都还停留在18吋电视机的时代,大学生又是最穷的,物质条件更为匮乏,我当时有个小收录机,京华牌的,呵呵,在同学中已经很可以了。因此,像现在的同学们,一考上大学,MP3、MP4、笔记本电脑家里给配齐的,在当时是根本不可能想象的事情。我作为过来人,还是要说大家一句,大家真是生在好时代了,很幸福的。
不过呢,我很喜欢编程,就养成一个习惯,想象编程,找一个题目,自己在脑子里把程序构思出来,写在纸上,然后自己模拟电脑的run,把程序过一遍,看能不能执行正确。这个习惯现在都还有。呵呵,我老是劝大家写简单的程序,其实和这个习惯有很大关系,因为我比较笨,稍微复杂的程序,脑子就想不过来了,就晕了。
也正因为有了这个经历,我就开始思考一个问题,编程究竟是什么?呵呵,当时我在学校,也是小有名气,大家都知道有这么个程序疯子,没事喜欢发呆,喜欢想程序。在一次舞会上(别激动,我也是过来人,也会跳舞的,虽然很难看哈,呵呵),一个计算机专业的师姐就考我,问我编程是什么?
我当时想了一下,很郑重地回答她,我的理解,编程就是拆解任务,把一个任务,拆解成很细很细的步骤,一步步教计算机去做。计算机很笨的,举个例子,我们说早上起来去上课,是个人都知道做什么,但是它不知道,因此,我们要告诉它:
起床--穿衣--拿饭盒--去食堂--买早饭--吃饭--洗饭盒--回宿舍--放饭盒--拿书--出门--如果人都走完,要记得锁门--去教室--推门--找到自己的座位--走过去--坐下来--等待上课--上课。
说到这里,我突然自己有点明悟了,编程,就是把复杂的问题简单化,简化到每个动作都是1+1=2那么简单,然后计算机照做就好了。这就是我理解编程的真谛。我师姐听到了,也若有所悟,这个话题就没有再说了。
我们来分析一下计算机的特点,准确的讲,目前我们这个社会的计算技术,还很原始,说它是计算机,正确,它确实只能计算,说它是电脑,太抬举它了,它不可能有思考能力。
在冯诺依曼体系架构中,计算设备就是具有一定计算能力,有能力和外界做出IO互动,并且能高速重复动作的这么一种设备,这可能和大家在教科书里面学到的不太一样啊,不过,我是这么理解的。
因此,我从一开始,就没有把计算机作为一个伙伴,一个可以帮助我出主意,或者代替我思考的伙伴,仅仅是看做一种工具,这种工具有什么用呢?我认为它最重要的,有两个作用:
1.无限可重复性,一个动作序列,一旦编订程序,计算机就可以无数次重复这个序列,不会感到累。这特别适合于那些乏味的,不断重复的劳动,比如,我们一个学校每天要敲钟,打上课铃,如果让人来做,这个人会很乏味,做久了,就可能出错,但是让计算机来做,它可没有什么思想,不会觉得累,而且做的很好。计算机特别适合做重复性工作。
2.服务品质的稳定性。计算机适合做重复工作,还有个有点,就是每次执行结果都是一样的。这体现了工业化时代最重要的一个思想:量产思维,大家可以看到,现在的社会,不可重复的艺术固然很好,但公众需要的是量产的产品,因为质量稳定,产量稳定,能满足大众需求。劳斯莱斯虽然很美,但绝大多数人在开大众、丰田等低端车。就是这个道理。还是打铃那个例子,如果是人,可能会生病,可能会请假,或者干脆搞忘了,但计算机不会,只要有电在正确工作,打铃就不会出错。
这样,我就慢慢理解到了,计算机其实就是能以恒定品质不断重复输出服务的机器而已。
OK了,这我们是不是可以理解到,计算机编程,其实首先是人的工作,当我们遇到一个服务需求,我们人来做一次,嗯,获得一个比较满意的结果,然后我们觉得这个动作可以重复,下次遇到类似的问题,照做就好了。于是,我们就安排计算机来做这件事了。是不是这样?
这是不是说明,程序,其实是在讲一件事应该怎么做,这个做的过程,以及这个过程的含义,其实是人定义出来的,然后通过编程,教给计算机来做而已。
我以前经常有种感觉,计算机编程,是两层意思,一层,是程序本身的含义,就是怎么做事,另一层,是隐含在程序下面的逻辑含义,就是做事的意义,程序只是字面上的意思,而逻辑,是程序段落组合起来,共同表述的一层意思。现在想想,其实就是这个道理。
嗯,既然我们知道,编程,就是把做一件事情的步骤,分拆开来,教计算机去做,但,分拆到什么粒度呢?这个很重要。如果分拆的粒度太细,白白浪费程序员的时间和精力,这些都是成本。而分拆得太粗,计算机还是弄不明白,做事不对,就是bug了。
这说明,编程有个很重要的概念,就是粒度,也就是我们对问题描述的精细程度。
最开始的计算机是最笨的,学过计算机组成原理的同学大概知道,只要有个累加器,其实已经可以算一台计算机了,只会做加法计算。因为从数学上,我们可以知道,任何计算,最终都可以演化成加法计算,事实上,现在的CPU,在最底层核心的部分,也还是这个加法逻辑。
这样做当然没什么不好,不过,有个小小的问题,就是粒度太细了。如果每件事情,都要程序员去拆解成很细的加法计算,这个工作就几乎不是人干的事情了。难道就无解了吗?
呵呵,前面我们说过,计算机的特点是什么?无限重复,大家就发现,一个事情,比如7*24,这是乘法计算,但是,我们最终要拆解为加法计算去实现,但是,不是说我们每次都要这么拆解,乘法计算也是一个工作,有规律的,因此,当我们拆解一次之后,我们当然可以把这次拆解过程本身,编订为程序,下次遇到类似问题,让计算机把这个程序再跑一遍就ok了。呵呵,大家以为Intel的CPU里面的乘法计算指令是怎么实现的?大家又以为AMD的CPU内部的微代码体系是怎么实现的?
就是这么一个思维,解决了所有的问题,遇到需求,首先拆分,然后不断检索我们以前是不是以前拆分过了,遇到能套用的程序段落,就直接用,不用每次都拆分那么细,减少工作量,当然,遇到新问题,还是需要自己拆解的,不过,拆解后,最好把拆解本身,也写成程序,下次重用。
大家玩各种语言,一般都提供基本库,这个基本库,其实就是前人已经拆解过的结果,软件公司觉得有代表性,可以满足大多数应用场合,就编订到基本库里面,以后程序员直接用,不用自己重复了,大家说是不是这样?
现在,大家知道怎么看待C的stdio.h,stdlib.h这些基本库了吧?C++的iostream是什么含义,知道了不?MFC知道了不?Java的运行时库是什么意思,也知道了吧?
不过呢,这个世界的需求总是很多的,并且,计算机的能力也是不断在进步,以前不适合计算机做的事情,现在也慢慢变得适合了。因此,大家总能遇到一些新问题,需要自己重新拆解,基本库中没有提供,这就是程序员这个职业存在的真实含义。帮助用户不断拆解新需求,解决新问题。当然,库本身也在进步,不断把已经被证明拆解成功的问题,修补到库中,避免以后的程序员做重复工作。就这么简单。
呵呵,啰嗦了这么多,可能很多同学看的一头雾水,你到底想说啥?我想说的,其实很简单,编程序,就是拆解问题,但讲究个拆解的技巧和方法,以前人做过的,别做,尽量用,没有的,做过一次,尽量保留下来,供下次使用,就这么简单。
那,这和本文的题目“修炼编程的内功”有啥关系呢?当然有关系了,什么叫编程的内功?我的理解,就是对这个世界的抽象化理解能力以及描述能力。一个工作,能迅速从中提炼出下次可以重复的套路,并且能以一定的规则,就是计算机语言规范,描述出来,拥有这两个能力,就能保证遇到任何问题,都有办法写出程序来。
所以,大家学校中学了很多数学,语言,算法,数据结构,甚至编译原理,操作系统,其实这些统统是工具,不是写程序的目的。
写程序,就是遇到需求,能迅速抽象,理解其共性,并能以清晰的语言描述出来。上述学科,不是帮助提升你的抽象能力,就是帮助提升你的描述能力,大家看是不是这个道理?
所以,我在带徒弟的时候,有时候喜欢说一句话,其实作为程序员,学习一点语文有好处,因为最能培养描述能力的,其实还是语文。英语不算啊,英语虽然也是一门语言,但中国的教育,一般是能看懂,很少从一个英文文学家的角度培养学生用英文的描述能力。只有我们的语文课,这不但是教语言,而且通过无数次造句和作文,在教大家描述问题的组织能力,这个能力在写程序的时候,很有用。
这个时候,话题就出来了。中国的语文,先是甲骨文,然后古文,然后白话文,大家发现没有,总体是越来越简单,这是发展的趋势。为什么呢?因为大家觉得,语文就是让人懂的,太深奥的东东,不太适合普及,就没有生命力,反而越简单的东东,普及越快。
因此,请大家注意,写程序时拆解,是把问题简单化,不是说把一个问题描述得晦涩难懂,才叫本事。真正的程序高手,都是简化问题的大师。
当然,从这个话题,我们是不是可以得出一个结论,其实写程序的方法本身,编程的内功本身,其实是没有什么语言特性的,C、C++、Java、PHP、Python。。。是不是都用的同一种方法在做事情?
因此,我这里提出,修炼编程的内功,是学习抽象能力和描述能力,与语言无关,换而言之,从任何一门语言入门,都可以修炼到内功的极致,关键看你用不用心。
因此,学习期间,我的建议,不要好高骛远,不要去评价语言的好坏,平台的好坏,没有多大意义的,你并不能确定这辈子最终能在哪个平台下用哪种语言开发。捡着手边有的书,老师教的课程,埋进去学扎实,出来后,换语言比吃盘菜也难不倒哪去,呵呵。这算是正式回答很多同学的问题。
计算机专业大学学生的学习规划(二)
随着时代的发展和知识经济时代的发展,我认识到知识的重要性,所以我必须树立学习理念, 活到老,学到老 ,时时学习,处处学习。
平民进步的阶梯,教育公平的砝码,学习者充实自我和增进动力的补给站 ,是广播电视大学的核心价值。中央电大开放教育不仅仅会教给我学科和专业知识,更重要的是帮助我掌握利用现代信息技术进行终身学习的必要技能,为以后继续学习培养良好的学习习惯,我认识到,学会运用现代信息技术进行自主学习,对我今后顺应岗位需求和生活需要,不断地获取知识和提高能力将是非常有益的。虽然,远程教育有极大的灵活性,但自己仍需时刻明白自己是独立的,自我为主的学习者,所以,制定周密而有弹性的学习计划是保证学习成功的重要因素。
我的学习计划如下:
1.参加并通过所有必修课程,如开放教育学习指南,信息管理系统,邓小平理论和 三个代表 重要思想,Dearn wearer网页设计,计算机应用基础,信息化管理与运作,ERP原理应用,计算机专业指南,网站实用技术,英语I,微积分初步。
2.修够上述必修课的学分80分,并参加其它选修课,使学习达到一学期需达到的76分学分。
在自学的过程中,要树立自强不息的精神,要做到以下几点:
〔1〕要有学习风险意识和刻苦学习的精神。没有辛勤的耕耘,就得不到丰收的硕果。对于学习中遇到的挫折与困难,要仔细分析问题和原因,不气馁,不放弃。
〔2〕对能否顺利毕业不产生畏惧感,坚信只要有努力就会有收获。 为了下一秒的精彩,在这一秒我会百分之百付出!
〔3〕严格约束自己,根据制定的学习计划完成自己的目标,如期完成学习任务,力争做到 今日事今日毕 。
虽然是开放教育,但我们要自主学习,要做到勤学。
〔1〕要上好面授课,提高课堂学习效率。
〔2〕安排好业余时间,每天都要有进步。
〔3〕多听,多看,多记。
〔4〕学习中经常会遇到一些自己无法解决的问题,这就需要做到 善问 。
所以,我的详细措施如下:
1.认真听讲,利用电大的多媒体进行多方位的学习。在听课过程中努力听懂和积极思考的基础上做好笔记,作业,预习,复习等工作,在空间时间要通过看书,积极参加小组讨论。
2.面授课做好预习,复习工作,有了预习,老师在上课过程中可以把我们不理解,不明白的地方使我们弄懂。
3.合理分配时间,我们必须利用时间理解知识,达到举一反三。
4.成立学习小组,解决学习困难,与同学们进行学习上的交流。
5.积极参加多媒体教学,掌握学习内容。
6.积极完成课后作业,及时消化和巩固知识。
7.做好课前预习和课后复习,即使对知识进行整理,加强对知识的理解和认识,制定了学习计划,可以有目标的学习,争取所有学科都通过。
这就是我的学习计划,我相信, 付出与收获成正比,我付出多少,就有多少的收获 。所以,我只要努力学习,把时间安排的张弛有度,那我离成功也不远了。
计算机专业大学学生的学习规划(三)
首先,我认为,学习中不可忽略的一点就是要学会分析自己的学习特点,像我——理解能力还可以,老师讲的东西不是不懂,但却总出错(用家长们的话说就是不认真),而且对于一些死记硬背才能学会的东西总觉得不耐烦,因此,在这点上,我希望自己能在这一年的学习中对待学习更认真,更有耐心。
其次,我觉得,在学习中,确定学习目标也是很重要的,学习目标是学生学习努力的方向,正确的学习目标更是能催人奋进。反之,没有目标的学习,就是对时光一种极大的浪费。所以,我暂时的目标就是考上大学,而对于我较弱的文化课我会努力,让它也有所进步。
最后,也是最关键的一点,就是要科学安排时间,没有合理的安排,再好的计划也会付之东流。所以,在这一年里,我最要学会的就是要合理安排学习、娱乐、休息的时间,要把每一点一滴宝贵的时间都抓紧。在这关键的时期里,我要认真,仔细地规划每一分钟。认真投入到学习中。曾经有一位老师对我说,态度决定一切,要以良好的态度去面对学习。挑战自己,相信自己,我个人认为,人一生的时间的有限的,时间不等人,因为这是我中专生涯的最后一段时间,我不会放过从我身边中的每一份时间,挣取把握好身边的每分每秒。
从学习习惯方面
一、做好预习。预习是学好各科的第一个环节,所以预习应做到:
1、粗读教材,找出这节与哪些旧知识有联系,并复习这些知识;
2、列写出这节的内容提要;
3、找出这节的重点与难点;
4、找出课堂上应解决的重点问题。
二、听课。学习每门功课,一个很重要的环节就是要听好课,听课应做到:
1、要有明确的学习目的;
2、听课要特别注重“理解”。
三、做课堂笔记。做笔记对复习、作业有好处,做课堂笔记应:
1、笔记要简明扼要;
2、课堂上做好笔记后,还要学会课后及时整理笔记。从学习目标方面
一、从计算机网络技术及因特网的基本原理和体系结构作一个较为全面的了解。了解OSI/RM参考模型和TCP/IP体系结构、传统的以太网技术和传统传输介质;掌握IP地址、MAC地址、子网掩码、CIDR的概念;掌握TCP/IP协议簇中的重点协议,掌握网络中关键器材(交换机、路由器、网桥)的工作原理,了解计算机网络发展的前沿技术,了解计算机网络发展的前沿技术,了解我国计算机网络发展的现状。
二、在VisualFoxPro中掌握数据库中的基本概念和常用命令;建与维护;查询与统计;用户界面设计和用户菜单的设计;简单的应用程序的编写方法。
三、在C语言中了解C语言的发展与特点,掌握C语言的程序结构、语句格式和标准库的使用;掌握各种数据类型中的常量的书法方式和变量的定义、赋值、初始化方法,运算符的运算规划和优先级别,能正确书写各种类型的表达方法;掌握键盘输入和屏幕输出语句的书写格式、参数的功能和用法;掌握顺序、选择、循环三种程序结构。用C语言提供的选择、循环语句和相应的函数,编写出符合要求的顺序、选择、循环程序或包含二种,三种结构于一体的综合性程序;掌握函数、递归函数的定义和调用方法,理解变量的存储类型及作用域;掌握一维数组的定义、初始化和引用方法区分一维数值数组和字符数组以及存储数据的不同点;掌握指针的概念、指针与地址的关系;深刻理解指针与一维数组的区别与联系,掌握其规律,学会正确使用;掌握结构、联合、枚举类型的定义、赋初值、成员访问方法;掌握文件包含和宏定义的书写方法,理解其运行原理和在程序中的作用;掌握文件的概念、正确运用打开、关闭。读写文件数据的函数。
四、熟练掌握网页三剑客,Photoshop的使用,CSS语言,HTML语言的用法和编写,以及对制作网页的熟练度的提高。
从时间方面抓住零星时间:有的人总说自己没有时间看书,特别是工作的人爱这样说。我认为不是没有时间看,而是大块大块的时间较少,零星时间又没有抓住,所以他们才会那么说。“时间就象海绵里的水,要挤总是有的”,这句话一点也不错,从早晨醒来到起床可以想,从晚上上床到睡着可以回想,午睡前后不妨看几条法条或者看几道历年真题,工作间隙见缝插针看两眼书都是利用时间之道。在学校用上课时间完成老师布置的课程,下课利用课间时间复习上课的内容或问老师自己还没有懂的问题,利用下半年把思科的书和案例(看)作完。然后语数外,德育健康与安全常识,计算机应用基础等。
猜你感兴趣: