如何从零开始学习C#

来源:互联网 发布:mac wifi不能上网 编辑:程序博客网 时间:2024/05/21 20:46
多造轮子,实际编码为主,理论学习为辅。

这个太抽象了,举个具体例子吧,够让你干上一年了。

比如,以做爬虫为例子。
可以分成下面几个阶段。

第一版:单页面读取
目标:写一个控制台程序,可以从网络上读取一个指定页面的HTML内容。并输出到控制台
作用:练习语法,理解类库阶段,比如属性HTTP相关的类的操作,String类的操作,控制台操作

第二版:.2层页面读取
目标:在前面的基础上,读取到一个页面之后,用正则操作分析出其中的URL地址,读取第二层页面
作用:可以学习正则,数组操作。

第三版:.N层页面读取
目标:在前面的基础上,读取N层网页。
作用:可以学习递归,异常处理(N层页面,总会遇到访问不到的无效链接的),以及循环读取控制的问题(重复访问首页:从首页出发爬行,子页面再次指向首页的问题)。

程序做到这里,基本上就是慢如乌龟了。然后就是考虑加速

第四版:.N层页面单线程读取
目标:在前面的基础上,把访问HTML部分代码放置到一个线程中,并和前面的结果保持一致
作用:可以学习代码重构(因为功能要保持前面一个版本完全一样,只是改成线程操作),线程相关的类库

第五版:.N层页面,多线程读取
目标:使用多线程来同步读取网页内容,并解析之后,放入到待解析队列中。
作用:学习多线程操作,线程同步概念,以及同步操作。

这时候运行速度飞快,但是内存消耗也飞快。于是会就会有第六版本

第六版.N层页面,多线程读取,存入数据库
目标:在前面的基础上,把读取的内容保存到数据库中
作用,数据库读写操作学习。

第七版:增加控制界面
目标:运行过程中有些参数,比如线程数,爬行深度这些参数需要一个界面来控制。还有一些运行数据,比如抓取数目,错误数目,队列长度等需要在界面上直观的显示出来。这都需要把控制台的程序,改成UI界面的。
作用:学习UI开发,以及线程和UI的交互。

基本上到了这里,如果按这个来操作,C#的学习结束了,完全过关。

当然在这个过程会遇到不少问题,多看帮助文档,多看书,多google,少百度。

就酱!

原文:http://www.zhihu.com/question/26480901

0 0
原创粉丝点击