如何写论文?写好论文?免费论文网提供各类免费论文写作素材!
当前位置:免费论文网 > 范文百科 > 学编程的感想

学编程的感想

来源:免费论文网 | 时间:2016-09-19 15:04:35 | 移动端:学编程的感想

篇一:编程大赛感想

(本人技术一般,所写只为给新人介绍一下西工大acm如何入门,大牛请无视本贴)

ACM竞赛作为大学阶段计算机学生的最高荣誉在咱学校竟然不受重视,也没人提起,让那些高中转战NOIP,IOI的同学寒心不已。其实我们学校成绩还是可以的,前年就获得了合肥赛区的第二名,当然由与高手都在其它赛区,没有参加决赛的资格,但也说明了只要我们努力就能有成果。但由于其获奖难度极高,我们学校几乎是破罐子破摔,根本就不管事。其实是学校的这种心态造成大量潜在人才由于不知道相关信息而大学四年庸庸碌碌迷失方向,所以我来说说吧。(如果想简单地保研的话就去机器人吧,进了70%国家一等奖,直接保研资格哦)当然想成为高手,想提升自己的能力就参加ACM吧。

首先说下参加ACM比赛好处,以及与其它课程的关系:

很多人都说ACM考察面太窄了只是算法罢了,像操作系统,编译原理,网络,嵌入式等等都没考察。

其实当你成为ACM高手的时候会发现这些课的重点难点用的算法你都已经知道了,你再学这些东西就像看小人书一样了,你会觉得如果让你去做这些东西你也会这么设计甚至还能加以优化。比如内存分配管理其实就是排序算法的应用而已,PV操作就是设置标志的小技巧而已,编译原理就是字符串处理而已,路由器的相关算法就是图论里的东东而已。。。因为算法是核心,其它那些只是算法在具体环境下的特定应用罢了。如果说那些东西是套路,那么算法就是内功,而ACM比赛就是内功的检验场,你通过了说明你的任督二脉已经打通,你已可纵横天下了。此时你已成为世界各高校争相抢夺的人才了。

就算没有进入决赛但内功强了干啥都顺手。从本科生阶段到博士生阶段的的各种面试笔试机试全逃不出acm考察的圈圈。因为难所以价值极高!

对于找工作来说,百度腾讯网易google每年都有类似于ACM的竞赛,初赛大概都在五月份到六月份进行。只要进入决赛去他们公司找工作都不用简历,直接走绿色通道的哦~你夺得名次后这些公司的岗位就任你挑了,不用简历不用面试,求你到他们公司去!

想想看吧:你不用向各大公司投简历,而是各大公司像你投他们公司的简历了,然后你看都不看把它们都丢到垃圾桶里去!(我时常就在幻想这样的牛人待遇啊,现在已经大四了悔之晚矣,希望大一的同学努力啊)

再说高数,物理等科目。其实与算法真的没什么关系。一旦模拟信号变成了离散信号就是算法的天下了,与之相关的数学是组合数学(研究生阶段才开,我认为应该大一就开)。主要是为了我们今后的计算机应用,比如各种物理数据的采集处理,物理电路的设计仿真等等,这些都属于计算机应用范畴,我们学校其实没有计算机科学专业,有的只是计算机应用与技术专业。有志去1,3系的同学好好学高数,复变,信号与系统这些课吧。当然高数等是常识性知识,不能不知道,这么简单的东西都学不好就不要搞acm了。

接着讲正题:

本人刚来时由于不知道如何进校队而浪费大量时间,学校信息也较为闭塞,到了大三参加了一次也是草草收场,所以希望更多有志的同学早些知道些信息少走弯路。

咱学校进校队其实非常简单,有两条路:

第一条路:在学校举行选拔的时候去参加选拔赛。这个要特别留心,很多阴险的人看了通知后就把通知扯掉的(当年亲眼目睹。。。),一定要多留心。

第二条路:把usaco前五章的题目做完你就直接去找王琪老师就可以进校队了。王琪老师会上离散数学和算法分析课,大家留心下。王老师水平不咋样但人还是很好的,会尽力帮你的哦。ACM竞赛与其它竞赛的区别就是学生一定比老师强,强很多!(不像咱学校的那些所谓的强项竞赛,哼哼)

第二条路显然是我们的最好选择。因为一旦你做完了前五章题目什么选拔赛早已不在话下了。 usaco是美国的程序设计训练站,刚开始英语看不懂的话就去nocow看翻译。acm的题目都

是英文的,所以最好看英文的。(学计算机英语极为重要,这东西几乎是美国一家弄出来的没办法)。这个站的特点是题目按学习进程一步步安排,从最简单的讲起,对各种算法分别介绍,题目循序渐进的出现。不像其它OnlineJudge一开始就让你面对杂乱无章的一对题目。一开始你只能做几道题,只有你做完了这几题之后才能解锁后续的题目。做这套题目还有一个好处就是做过这套题的人特别多,相关分析讲解到处都是,相当于有一位经验丰富的老师给你指引了。

当然做完这套题是很不容易的,用一年时间攻克它吧。如果光看书不做题是绝对不行的,要边做题边看书。你会感到强烈的对知识的渴求,而且在应用中你会牢牢记住书上的东西并透彻地了解他们。

首先是语言基础,先把C语言弄熟来(高中用过PASCLE学C一样很快的)。C语言书用谭浩强的就可以了,我们的目标只要会用这门语言即可,此阶段会写冒泡排序,斐波那契数列的递归法,八皇后,约瑟夫问题(数组版和链表版,有兴趣看看数学公式版)即可。然后找一本简单数据结构书看一下(一般都用严蔚敏写的),先把前四章看下,代星星的以及树和图以后做题时一块看。接着学习C++。C++的好处就是STL,一些数据结构如栈,队列,优先队列都可以直接调用,一些常用的算法(例如快排)也可直接调用。C++先用几天看看谭浩强的写的红色的那本,把类,构造函数,析构函数,泛型编程,操作符重载等相关概念理解下,谭的书例子非常简单利于理解,然后看下《ACM程序设计》这本书(蓝皮的,北京大学出版社,超简单的入门基础书,强烈推荐新手看),基本上STL就会用了。然后备着本《C++ primer》就好了,遇到问题时查查。用一周把《ACM程序设计》上的水题推掉,这时语言功底已经打好了。接着准备一本《算法导论》和一本简单的国人写的算法设计与分析,按照usaco上的顺序开始算法的学习吧。

其中你会遇到各方面的问题,主要有数论,数据结构,组合数学,计算几何等方面,带着问题去图书馆或上网查资料学习吧,效率很高的哦~

顺带说下,我们学校是先学数据结构再学算法,我认为在学数据结构前先学下算法较好,因为是先有算法

做完五章就去校队吧,会让你做乌拉尔大学的OJ,这时再准备本刘汝佳的《算法艺术与信息学竞赛》翻翻吧(此书极难,分析超短,只适合高手看)

篇二:编程学习心得和方法

雪中悍刀行 http://bmdqw.com/

编程学习心得和方法

说到编程,很多人首先会想到C、C++,JAVA,DELPHI。没错,这些都是现今最流行的计算机程序语言,它们各有特色。然而事实上是,不为人知而且比它们更好更出色的语言有很多。它们得以流行的原因有很多,其中最重要的一点是,它们在计算机语言的发展历史上有重要的划时代意义。特别是C的出现,将软件编程引入了真正的可视化编程。很多新语言的出现,解决了当时不能解决又不得不解决的问题。

另外,这些语言的确是出色的,它们不但易学,更是易用,这也是它们得以流行的一大原因。大家的支持,和个别系统和开发公司对它们的支持,以及它们的开发组件和类库众多和广大推广的原因,也使得它们当今数一数二的计算机语言。

编程语言不只有这些,计算机语言还有很多分类,其中,网络编程也属于其一。广为人知的编程语言有ASP,JSP,还有PHP。当然,还有脚本语言,比如ASP用的VBscript,还有在客户端流行的Javascript。其中,ASP(asp.net)基于VB(vb.net),JSP基于JAVA。现今已经发展出各种各样的编程语言,并且,它们大多采用了英文编写,单是关键字和标准类库就要我们花时间去记忆和识别,最后,还得去灵活运用更多的东西。所以,我们想一次性学习它们,这是不可能的事情,尽管大多语言很相似,你也不可能做到的。事实上,很少有人能够学习全部,大多都只能擅长某一种。

即便是高级编程人员,像那些为开发软件工作的类库和组件高手,他们也不敢说自己精通每一种语言。 事实就是这样,每一种语言有着它们相似而又不同的语法,它们有着不同的关键字,发展出了各种各样的类库,它们的函数或者方法的声明定义都有不同,更多的差异不为我们所知。

每一种语言,它都有着太多的东西需要我们去理解和记忆,我们没有时间和精力做得太多。 对于初学者,我们最不应该急于求成,更不要试图一次性学习所有语言。事实上,我们可以选取某种语言学习。每一种语言都有着自己的强大功能,好的语言能够完成所有事情,所以,你不要担心学习一种语言不够全面这样的问题。

当你能够得心应手掌控你学习的一种语言后,你回过头来再去学习其他语言时,你可能会发现,原来,这些语言是那么的相近。这个时候,你再去学习它们,我想,那真是很愉快的事情,大概,那个时候,你会笑出声来。

我们知道,从某种意义来说,各种语言都有很多类似的地方,这大概是因为所有的语言开发都是基于已有语言创造的,开发者也出于对大家的尊重,考虑到易于学习等等原因,他们选择了几乎是相同的语法来定义这些新语言。可以说,所有语言都是基于已有语言开发的,没有人能够聪明到突发其想,更不可能一夜之间发明出一种完全不同的外星语。

基于语言再开发语言,这么做能给使用者带来了一次学习,全部学会的好处。当然,最

大的好处莫过于新的语言肯定比之前的语言更加好用简单,功能也更全面强大。某种意义上讲,开发新的语言就是在更新旧语言的错误和不足,最后发展出新语言。

其实,每一种语言的区别大多只在于关键字的区别,还有一些语法上的区别。事实就是这样,很多语言之所以不同,就因为它们的关键字不同。就像你吃饭一样,中国人用筷子,外国人却不是。这些都没有改变吃饭的实质,我们都能完成一样的事情,那就是吃饭。说了这么多,话题也扯得太远了,回过头来吧。说了这么多,我无非是想说,所有的计算机语言都是相通的,你只要学会一种,学习其他的就是轻易而举的事情。所以,你用不着同时学习几种语言。

如果你不按照我的建议这么做,我想劝告你,你将会一样也学不会,至少,你永远不能擅长于编程,更别说精通。每一种语言都是经历了无数年代,最后由开发者总结而来,不是一个人能够轻易学完的,事实上,每一种语言都有开发和支持它们的公司和软件,每一天都有更多的新东西出现,你的时间不应该花在学更多的语言,应该是学习它们的变化。

现在的软件开发早已经不再是手工编程那么复杂化了,大多情况下,我们只要会语法,只要知道类库和开发软件支持的类库和组件,我们就能够编程,但这都只是开发,说不上什么精通不精通。用软件开发软件做软件,很像拼图和画画,你只要学会画就行。

你如果只想开发软件,忽略了语言的基础,我想说的是,你的软件永远不会更好更快。即便如此,你也得花时间去学习你所要用的开发软件的一切,包括那些扩展的组件和类库。另外,请不要忘了,软件开发出来后,还得改进,你是否能够让软件更自动化,能够自己检查错误,也或者,你能让它多线程工作呢?

其实,我们很难在不同的语言相似中区分它们的异同,也不可能同时掌握相同功能下,却有着不同的类库和不同的实现方法中去运用自如。

好了,我现在要说说学习编程的一些简单方法和步骤,今天将是第一章,也是一个开始。大概,你可能会用上小半年的时间去学习它,也或者更久,我希望是这样。

首先,我们应该学习一下计算机的基础,包括硬件基础,特别是计算机的各种发展史。之后,我们要理解计算机的工作原理,我们得知道,计算机依靠什么方法进行运算。

如果一个软件开发者,他开发了众多软件后,回过头还不知道计算机原理,那真好笑的事情,真不知道,他是怎么做软件的。当然,这样的人或许比我们聪明多了,因为他知道什么重要,什么次要。当今的社会,专业才是真,每个行业都有无数学习对象,你能全部学会吗?

其次,你应该着手学习汇编。或许,有人认为这是乎过早了一点。的确,你很有可能会无从下手,这个时候,你可以先大致了解一下,跳过这一步,往后再来学习。

之后,你应该做的是,选择自己想学的语言,或许,应该在C(c++)或者JAVA之间选择一种。当然,你要是只学习网络编程,可以在ASP和PHP之间选择,至于Javascript之类

的脚本,你可以最后来学习。

你已经选好要学习的语言了吧?现在,就去选择几本上好的相关基础书籍吧。照我说的去做,你只能选择最为基础的只介绍语法的书,这个时候,你可千万别去看软件设计的书,也别去动那些设计软件。这一点,你千万要做到,朋友,不要急于求成。

好了,选好了书籍了吗?你的书籍一定是最为基础的才行,确定这些后,你应该看书了,对了,看的时候还得记下笔记,最好能够把每一个知识点记下,特别是关键的东西。这个过程是很难熬的,你千万不要急躁,另外,你如果从来没有接触过编程语言,你就更应该慢慢来,你应该花上半天时间学习一个章节。或者,之后的几个章节,你得花上更多时间。我想告诉你,朋友,越到后面越难,编程可不是吃饭那么简单,每个人都得花上很多年的时间学习它。

这个过程中,你还得注意,千万不能跳过看不懂的东西,是的,你可以到网上也或者是找朋友请教,这是很好的办法。只有当你弄明白了一个知识点后,你才能继续学习。 也不要急着就学习用开发软件做软件,千万记住这一点。你现在是在学习语法。 是的,语法这一关,你得用心,而且得认真对待,还得过关。你想不种豆就有豆子收,世上可没这种好事情,除非你偷别人的,那还是自己的吗?更何况,你是要为自己学习。收获都是要时间的,成熟都需要时间。 现在,趁你还在学习语法的时间,你们来简单提一下语法吧。

关于基础语法,大概有几个方面,当然了,每种语言各有不同,不过,大体都一样。

一、语言本身的发展史和特点

其实,这一点,在我们选择某种语言的时候就应该提前了解。我在这里只想给大家说说自己的心得。

其中,JAVA的好处,一次编写,永远运行。它的最大好处不只这些,大家最喜欢的是,它可以在不同的环境下工作。是的,它不只是在计算机上能够运行,它同样能够在数码产品上运行,只要相应的机器上有JAVA虚拟机,JAVA软件就能运行,而且我们不必为不同的机器而修改我们的软件源码。

JAVA这个语言是九十年代才出现的,它由SUN公司开发,它的发展也算是飞快的。它的设计初衷是要在网络上应用。然而,它却不巧的成为了能够运行在更多环境下的语言,可以说,也正因为这一点,它才得以流行。当然,它的确也成就了网络,它的出现为网络编程带来了更多的功能和应用。

事实上,当今的网络应用中,JAVA、FALSH、JS、ActiveX这些小程序或者说是脚本插件,它们真是功不可没。另外,JAVA小程序比其他脚本或者插件都要安全,因为它的运行都在虚拟机下完成,不允许超越出去操控机器本身。

JAVA已经发展到了JAVA2,它已经深入计算机编程,特别是同时应用在网络和数码产品上。没什么好说的,它和C很相似,事实就是,它是基于几大语言开发的,它去除了许多语

言中难懂的语法。特别是,它没有了指针,它还能自己检测错误。

如果你觉得C太难,又想制作可以在数码产品上运行使用的软件,比如NOKIA手机的S60系统下的软件什么的,可以学习JAVA。

至于C语言,现在已经有三个版本,C、C++、C#。多的不说,这个语言是现在的主流,大多软件都靠它。三种版本的区别在于,第一个主要是采用旧式的结构化模式编写,C++最大特色是面向对象,至于最后的C#,它基于.net。

C语言成功之处在于,它的出现,简化了软件开发流程,易于学习和编写,另外,它最大的特点在于,它既是基础语言,又是高级语言,或者说,它就是中级语言。作为基础,它能够操控基层的东西,比如内存、计算机硬件本身。事实上,很多硬件驱动都由它制作而成。另外,UNIX的内核曾经都是用它做的,可见它非同一般。可以说,C几乎能够完成所有的计算机功能,当然,不是太绝对。对于一些更基础的东西,大多用汇编搞定。另外,你还得明白这么一点,越是基础的东西,要用更加基础的语言去实现。各种数码电器包括电脑系统都不会用这些高级语言编写,有着更深的东西不为人知,我们只有继续学习才能搞精这一切。现在,我们只要学习自己的语言就行。

以这里,我还得说说VC,当然,还有VB。事实上VC和VB是微软公司的产品,我个人认为,VB就是在C的基础上产生的。C语言可以轻松更改成其它语言,这也是它很厉害的一个地方。事实上,像大多的基础语言一样,C的本身语言特点让它有这样的能力这么做。我们能够用C的一些关键字设计出各种函数和库,它们当然可以和VB和其他语言的函数和类库同名,某种意义上说,就因为语言之间的类似造就了它们之间的相互转化。

同样的,它也能像高级语言一样工作,前提就是,你要自定义自己的函数库和类库。这一点,就是学习编程语言的难点之一。

VC和VB已经发展成了.net版本,ASP就是从VB而来,如今,也有了ASP.net。

很多初学者大概不知道VC和VB是什么,事实就是,它们是微软的软件,很简单,它们只是软件。这么理解大概会好一些,是这样吧。

C语言的开发软件有很多,最著名的莫过于VC++_NET和C++BUILDER,是的,C语言并非某个公司和个人的专属产品。

DELPHI,这个语言可能没有C和JAVA出名,但事实上,它是一种很不错的高级语言,能够制作各种软件,而且它比我们想象中更加简单。DELPHI属于BOLAND公司的产品,开发软件是DELPHI BUILDER,是的,BOLAND公司的开发软件一直被人们称道,这是因为,它为我们提供了各种各样的组件,可以说,我们只要半天时间就可以用BOLAND公司的软件轻松做出功能强大的软件。包括C和JAVA BUILDER。

VB并不是语言,我把它单独列出来,只是说,我们可以单独学习它来制作软件。事实上,不少的游戏都由它开发,可见它的功能比想象中强大。还有一点,它和BORLAND公司的

开发软件真是太像了,它给大家提供了很多基于WINDOWS的组件,可以超快开发软件。如果是学习网络编程,你可以选择ASP或者PHP,也或者JSP。ASP(NET)的特点是,它出自微软的VB,用VBscript脚本以及VB(DLL)的ActiveX组件构成。它需要运行在安装了IIS的WINDOWS服务器上。ASP(NET)站点的最大好处在于,可以在任何可以显示的浏览器上正常动作,所有的脚本代码运行和数据处理都在IIS服务器上完成,我们不必担心客户端是否支持的问题。另外,ASP源码不会传到客户端,某种意义上可以防止别人看到你的代码。学习ASP,你还得慢慢学习ActiveX组件,有的人可能会感到惊讶,比如数据库连接或者分页功能,在ASP看来,实现这些东西真是太过简单了。也有的人会搞不明白,为什么语法里没有这些东西,ASP上却有这些,事实上,朋友,ASP支持DLL组件,也就是说,只要你是编程高手,你可以用其他的开发软件,比如VB,为你的ASP自创组件。

组件很像编程中的类库,一般来说,我们不必去细验它们是什么,又怎么工作,我们只要去运用它就行。现在的情况就是,各种语言都有第三方的支持,也就是组件和插件,你可以从别的公司或者网上获取,这样的好处在于,你不必自己编写更多的东西,却能够用别人的成就完成各种工作。比如上传文件和下载等等。

好了,关于怎么做组件什么的,你可以学习编程。但如果是聪明人,你不会这么做,因为你没有时间和精力学太多。要知道,你要吃饭,最多是自己种地买碗筷,你用不着自己造碗筷,更用不着去管什么桌子凳子。只要你会工作,用钱就能搞定一切。编程也是这样,你只要会用就行,除非你真把自己当博士,也或者,你还真想什么都弄精,那不成了神精,或者当神仙或者机器去吧,凡人是没那本事了,你不过几十年的光阴可以用耶。

学习就是学习精要,而不是概要;学习更不是全面,而是专业。八十年代出生的人大多受了蒙蔽,人人只知道当科学家或者天才,也或者都想做事完美。告诉你,完美过气,要完美的,回家种地去吧。

关于PHP和JSP,我个人不是很懂,所以,我不会过多提及。

另外,学习网络编程的朋友,你得选去学习一下XHTML标准,你也要按照这个标准行事。你也不要只学会用网格做网页,要知道,现在大多数情况下在抛弃它了,我们用CSS实现更多功能。

学习是一步步来的,现在,你只管学习语法,在后面,我会提示你怎么做的,每一步,我都有介绍。

另外,不知道有人是不是误会我的意思了,网络编程,可从来没有说,像HTML或者网页设计属于这个范畴。所以,连HTML都不懂的,先回去学习网页制作和设计吧。当然,没必要还学什么FLASH,你又不当美工。当美工的,还是不要学网编的好,学得多了,小心你什么都不精。告诉你,专一才能研究直到精通。

二、数据类型,变量,常量,数组

篇三:软件编程学习心得

软件编程学习心得

随着计算机技术的发展和工作的需要,为了能够更好的维护公司生产管理系统;公司安排我们到北大青鸟APTECH进修。我们选择了时下最流行、发展速度较快的语言C#。C#学习共分三个阶段,目前我只学习了第一个阶段;现将我在北大青鸟学习第一阶段为期两个月的学习心得总结如下:

C#是一种新的面向对象的编程语言,专门用于.NET运行时。C#编译器只能生成受管制的代码,也可以使用.NET基类。C#语言自C/C++演变而来。但是,它具有简单、现代、完全面向对象和类型安全等诸多特性。下面就简单说说简单和现代其中两种特性。

1、 简单

C#具有C++所没有的一个优势就是学习简单。该语言首要的目标就是简单。很多功能(还不如说是缺少了C++的一些功能)有助于C#全方位的简单。

在C#中,没有C++中流行的指针。默认地,您工作在受管理的代码中,在那里不允许如直接存取内存等不安全的操作。我想没有C++程序员可以声称,从没有使用指针访问过不属于他们的内存。

C#弃用其它操作符,名字空间、成员和引用仅使用单个操作符 "."。现在一个程序员所需要理解的就是嵌套名字的注解了。

C#使用统一的类型系统。这种系统充许您把各种类型作为一个对象查看,它是一个原始类型还是一个full-blown 类。和其它编程语言相比,由于加框(boxing)和消框(unboxing)的机制,把简单类型当作对象处理并不能获得性能的改善。稍后将详细解释加框和消框,但基本上仅当需要时才使用对象访问简单类型这种技术。

2、 现代

投入学习C#的努力是一笔大投资,因为C#是为编写NGWS 应用程序的主要语言而设计。很多用C++可以实现或者很费力实现的功能,在C#中不过是一部分基本的功能而已。根据应用程序的特殊需求,可以很容易地创建出新的一种数据类型。

指针不再是编程武器的一部分。运行时NGWS提供了一个垃圾收集器,负责C#程序中的内存管理。因内存和应用程序都受到管理,所以很必要增强类型安全,以确保应用的稳定性。

异常处理是C#的主要功能。C#的异常处理与C++的不同点在于它是交叉语言的(运行时的另一个功能)。在没有C#之前,您必须处理怪异的HRESULTs,但现在由于使用了基于异常的健壮的出错处理, 这一切都结束了。

对于现代的应用程序,安全是首要的,C#也不会例外。它提供了元数据语法,用于声明下述NGWS安全模式的能力和许可。元数据是NGWS运行时的一个关键的概念。 通两个多月学习,我能够很好的掌握C#语言的基本语句、语法以及老师补充的一些要点;能够编写简单的应用程序,例如电子邮件的收发等,为接下来的第二、第三阶段学习打下了良好的基础。


学编程的感想》由:免费论文网互联网用户整理提供;
链接地址:http://www.csmayi.cn/show/47545.html
转载请保留,谢谢!
相关文章