对大学编程学习的一点理解和感悟

来源:互联网 发布:如何连接网络打印机 编辑:程序博客网 时间:2024/05/22 06:34

对大学编程学习的一点理解和感悟

说明:我是一位大二的学生,做为学生,做为一个班的学委,对自己在大学期间对编程学习的一些感悟。对我看到的和自己遇到的进行一些总结。希望能对大一的新生有一定的参考价值和帮助。

链接:第一门编程语言选谁? 作者:金旭亮

今天,看到了这篇博客之后,结合回想了自己和身边的同学们。不是正如作者金老师所说的一样吗?作者对于学习的理解中,着重强调成就感对学习的促进作用正如评论中所说,成就感是学习的引擎!

引用文中的一段话:

”在国内的大学中,当前大多数选用C作为学生的第一门编程语言。这其实并没有太大的问题,C的重要性无须我多说。其实问题的关键不在于选择C教学,而在于以哪种方式去教。

很不幸,国内许多C语言的教材都将主要的精力放在对C语法细节的介绍上,课程考核方式又很古板——很多院校采用闭卷考试,出一堆的选择题和填空题。典型的题目是将一段代码砍掉一两句,让学生“填空”。有哪位高手是通过做这些“填空题”学会编程的?上机也流于形式,让学生反复折腾几个“黑底白字”的“玩具般的”小程序,学了一个学期,学生连一个有点用的程序都写不出来……

这种僵化的教学方式,足以毁掉多数学生对编程的兴趣。“


结合我的经历,我最早学习的不是C语言,而是小学自学的易语言(中文编程语言),随后的vb,写的是window程序,虽然小时候理解能力差,但是能经过一个周末的努力创造出自己想的窗口程序,给我很大的动力,成就感。同时我的编程思想也慢慢的在建立起来。高中住校所以没继续去学习编程。到了大学,第一门语言,就是C语言。对这门语言学习,我倾尽全部精力,因为我之前在网上了解过C语言的重要性,开学前我就开始啃书,网课自学。C语言可能是除了易语言之外我学过最久的语言。开学时,我已经基本学完(说实话,学习C语言是真的在用我小时候积累的对编程的热爱去兑换),后来自己试着用C语言写了一个控制台下的贪食蛇,这个程序写了整整3天(因为我有记录),这个程序总算是脱离了算术题了,这带给我巨大成就感,这非常好玩。这促进了我后面的学习。
注:可能很多人觉得先易语言很糟糕,但是我个人觉得作为一门中国小学生用来入门编程的语言还是有一定意义的。

而同学们的感受就像作者所说的,毁掉兴趣。作者结合自己的理解,列出了一些第一门学习的语言应该有的特点。

引用文中一段:

针对初学者所讲授的第一门编程语言,应该具有以下的特点:

(1)必须是“有趣”的,能诱导人去“动手”和“思考”。

(2)需要对初学者屏蔽不必要的底层技术细节,以免分散他们的注意力。

(3)这种语言必须足够简单,但同时又具备足够的能力编写出实用的程序,从而让学生能比较容易地获得成就感,感悟到软件开发的魅力。

(4)这种语言必须能充分地体现现代软件开发的基本思想和技术成果,为学生进一步深入学习打下基础

(5)花在这门编程语言上的时间和精力是有回报的,掌握了它,就掌握了一个强大的工具,可以在今后的学习中使用这个工具进行实践和创造。

另外,这门编程语言的学习,应该有助于初学者正确理解与体会到以下的编程思想:

(1)分而治之:将大问题切分为小问题。

(2)组件化与模块化:以搭积木的方式“构建”出软件系统。

(3)算法思想:针对实际问题建立数学模型,设计计算机算法,最终编程解决问题。

同时,这门编程语言的学习,应能有效地培养出以下的编程基本功:

(1)调试代码的能力。

(2)撰写可读性强、扩充性好、易于复用的优质代码的能力,培养良好的编程习惯。

(3)查找技术资源与阅读技术文档的能力。


然后作者推荐了一些第一门语言的选择,大家可以参看。如果经过半学期的学习,你已经感受到了C语言学习过程的无聊,结合我们的现状,学校的课程安排我们是改不了的,但是,我觉得,可以这样,在听课学习C语言的同时,课后用一定的时间去尝试学一门,这个博客里面推荐的。能快速开发出你喜欢的东西的(结合实践),又能训练编程思维的语言。这样,我相信你之前不理解的C语言的东西,再去回顾下,你将会拥有属于自己的理解。 

脚本语言将是个不错的选择:比如Python等等

============================================================================
对于更高年级

如果你是一位大二的学生,并且现在学到了JAVA。C和C++可能让你很痛苦。C语言本身的复杂,不适合写应用软件。C++面向对象思想的复杂。从JAVA开始也是不错的选择。可以用JAVA试着来开发windows下的程序,等等

对于我说的这句话可能很多同学们要有异议了。我连JAVA语言本身都没学完,怎么就直接去写程序呢。其实我现在正在做的事情就能解释,我现在学习的基于PHP的Laravel框架。学习之前,PHP的面向对象部分,我基本没学。只会写一个一本的类,继承。仅此而已,对web开发我以前也没学过,没任何了解。但是,语言的更高级的部分,其实从实践中来学习会更好,因为在实际的开发中,我们并不会把语言的所有东西都用上。

我的建议,你可以这样,先铁着头,去网上找个JAVA开发最熟悉的系统Windows的程序的视频教程,然后就跟着学,如果遇到跟语言有关的东西,不懂了。就去找度娘。这样起码,有一点能保证,你写出的东西不再是控制台窗口下的文字。可以更加的像你平时用的程序,即使功能没那么强大,但这确实能提高你的编程思想,最重要的,这能带给你成就感。

如果你觉得你跟着把书上的所谓的JAVA学完,你就能理解这门语言,那就大错特错,对于语言的理解,我相信没有程序员敢说自己对某一门语言完全理解。不同的项目,可能都会带给你对语言的不同理解。

在学习的同时有一点需要注意,那就是遇到稍微复杂的东西,尝试着学习完这个知识点后,写一篇博客。好处有很多比如
1.下次可能你需要用了,但是忘记了,这能让你快速复习。
2.既然是复杂的东西,在你的Demo中,你感觉理解了,但是思路并不清晰,所以这样的一篇博客,能让你去整理思路。(我常常这样的感觉,写完后,又会得到更多的理解)
3.这可能能帮助到别人,可能别人遇到和你同样的问题,并且这帮助了他。(这很开源)


关于这篇博客被喷的问题,我想说明一下,这个不适合”大牛“看,我并不是说不要理解底层,只搞什么GUI,而且,我并没有在此批判C语言和C++,这两门语言的重要性毋庸置疑,能帮助你理解很多。我只想表明一点没有兴趣,你难道会想去理解底层?我只是提供一种提高兴趣的方式。这就像玩游戏,你喜欢上玩一款游戏了,你会想办法提高自己的游戏水平,比如看高手玩,看攻略,甚至是研究。这不就跟编程的学习一样么,你得先喜欢上这个个东西,才会去主动的了解,去学习,去研究。
原创粉丝点击