0%

学习网站开发

动态网站的课程快要结束了,虽然今年为了让学生能够早点尝到成功的滋味,把自动代码生成等内容往前提,但是效果并不好,原因也跟之前一样,学生在课外没有投入额外的学习时间,编程知识的巩固与技能的掌握所必须的练习不能保证,所以这类课其实跟老师讲了什么关系并不大,关键是有多少学生能够在课外有兴趣去投入到这些内容。

当然值得安慰的是也有一些学生已经有入门的迹象,也有同学表示要继续深入下去,那么怎么进一步学习呢?以后我也不会再给他们上课,但是我确实也希望其中有几个人能够在这方面能够继续学习下去,在这里也算是分享一下自己的学习经验,给需要的同学看看。

在诸如网站开发之类的编程开发类课程,我的一个首要的目标就是需要学生建立一个对整个网站运行起来的一个整体的观念,这个是非常粗粒度的,但是有这样的观念后,在后期网站出问题的时候可以更好地去判断问题在哪里。所以我在上课的时候,很多时候并不细讲一些实现细节问题,而是把整个过程讲一遍,但是能够理解我这种安排,并在整体上有印象的人并不多。但是如果在我的课程后面要自学,这一步必须要走。也就是对整个asp.net网站的流程机制,页面交互中的数据来回要能够非常清晰地知道。

在了解了整体的网站建设与运行的大致轮廓之后,就可以根据我上课所讲的知识去着手开发一个系统,最好这个系统你会有较为持续的兴趣。在这个过程中,你会发现你需要实现很多东西,但是很多知识并不具备,现在网络条件好,一般初学者所要解决的问题,或者一般网站中所要实现的功能或多或少能够在网上找到一些解决方法。在这个过程中有两点很重要,第一就是要有学习的毅力,在一个自己并不是很熟悉的环境中学习开发,经常会受挫,很多人会放弃。有些时候看网上的解决方法,但是你自己就是实现不了,这些都很正常,因为技术的使用其实都是有条件的,但是网上的文章很多时候都是写给自己看的,一些先决条件并没有写得很仔细,所以直接拿来会有问题。第二个要点就是要注意举一反三,其实编程本身并没有那么难,况且现在资料很充分,但是如果什么都要去找现成的答案的话,那是很浪费时间的,这个时候就需要你能够想到跟自己所要解决的问题的情景较为接近的问题,从这些自己相对比较熟的地方来接近新近要解决的问题。如果能够独立完成一万行代码左右的网站,基本上已经可以工作了。

在前面的开发过程中,或者今后的学习中我也建议不能仅仅用老师上课的知识,或者网上找来的临时解决方案。因为老师上课为了让同学接受很多都是往简单里讲,而网上的临时解决方案又比较碎片化。那么有一个更好的学习方法就是去学习一些开源软件或者开源的框架。这是把所学的编程知识系统化,同时又建立自己开发习惯的好途径。我在我学asp.net的时候,当时国内没有什么资料,我的所有学习材料是两个,一个是微软的msdn,这个在visual studio中直接通过帮助可以激活的,另一个是微软当时提供的starter kit,这里面有几个典型的应用,譬如有门户,内容管理系统有一个商店petshop,我对三层架构的理解就是从petshop开始的。从这些经典的代码中,我学习到了很多自学所想不到的代码写法以及一些简单框架。所以在熟悉了asp.net基本网站开发以后,我建议从一些知名的开源软件或框架中去学习。其实动软代码生成也是一种,这里的三层思想还是值得学习的,虽然现在asp.net在推行MVC,但是两者也并不矛盾。

有些要看入门教程的话,w3school与菜鸟教程也不错。如果一定要推荐什么资料,我觉得还是看个人的特点,譬如有些喜欢看视频(我从来没耐心看一个视频演示,所以也从来不看,文字快多了)那么可以找些慕课,网易云课堂上还是有很多培训都不错的,腾讯最近也在上这方面的东西。喜欢看文字的可以订阅博客园、csdn上的博客文章、csdn上的问答系统也是我早期学习常去的地方、开源网站github、国外比较知名的stack overflow。

我自身技术学习的经历比较特殊,我在不同操作系统(windows、Ubuntu、mac)下使用过多种语言编程,所有技术相关的都是通过自学而来的,所以自学能力还比较强,有些新东西并没怎么学就会了,这个大概就是对一个领域熟悉了以后,很多东西的学习都是有加速度的。同学们自学的时候一开始可以慢慢的,但是等你积累了一定经验后自然会快起来。

从某种意义上我并不是一个好的老师,因为好多学生的困惑我不能感知到,我的优势就在于我对我所教的内容比较熟悉,应该说用来对付教学绰绰有余。接下去我在想如何设计一个精准教学的系统,用来帮助我更好地教授学生我所掌握的知识。