[b]vb/asp过气程序员[/b]
2001,自动化专业毕业,自学了c/c++、vb
2001-2005,物流软件开发,用VB6和PB
2005-2009,在一个教育NGO组织工作,管理和维护一个中型教育网站(ASP),同时为几个教育项目做数据统计和分析(asp做数据录入、vb做数据整理、spss做数据分析)
2009年夏天,年30,女儿出生,生活负担加重,现有半公益性质工作实在无法支撑,遂上51job和csdn寻一份好的薪资,才发现自己现有的知识结构已是昨日黄花,自嘲:过气程序员

[b]c#[/b]
实际上是在c/c++、java、php、.net这四大知识结构(或是说就业方向)中做一个选择。
选择.net一方面因为本身还算是熟悉微软的产品,比较容易入手;另一方面是觉得.net的应用面/就页面比较广,从移动平台到web到普通应用程序到企业级架构都可以做。
再从.net中选择c#,一个考虑也是为了以后重新捡起vc++做准备

[b]学习心得[/b]
1. .net
一个完备的体系,对于一般的开发者来说只要考虑应用逻辑,绝大多数的基础处理都无需自己再去找‘轮子’代码或者写‘轮子’代码。当然这也造成前期的学习需要记忆很多的知识点,就像学语言,.net的词汇量相比起vs6的年代,要丰富太多。
对托管代码一致的平台,看msdn代码示例里面几乎一致的vb.net、c#、c++、j#代码片断就知道了
轻松开发,简单调试(我一直认为这是微软对开发者来说最好的地方)
特别是看到using NameSpace的简单引用,当年在一个大项目组里面做过ocx控件版本管理的泪流满面。。。

2. 从代码中学习编写代码
因为有java script的基础,花一天时间便快速看完了c#的基本语法部分,基本上差不多。根据经验,最快的学习方式还是一边看一边写。刚好自己做的一个小网站因为没时间维护,需要一个自动采集其它网站页面并更新的功能,网站的cms程序里面自带的采集器无法自定义数据字段,于是便从网上搜索了一个c#的蜘蛛程序源代码,在这基础上根据需要改写和增加功能。
重新编译、跟踪察看、阅读代码,在这过程中,同时也就熟悉了vs2008的开发环境和.net对应的知识点,算是上手了

3. 获取帮助:msdn/参考书/web搜索
以前学vb6的时候用的是msdn,现在还是一样,在代码中看到不认识的定义,全选-->按F1,基本上都能弄明白。
但 msdn里面主要以描述性的内容为主,太细,缺少‘为什么’-->‘怎么做’的方式,当根据新功能编写代码时,就有点摸不着头脑了。于是去同学那边顺了一本《c#高级编程》,这本书很不错,全面、清晰。比如说xml处理找到相关章节看清楚以后,基本上就能依样画葫芦在自己的改编的程序中用xml。
但再深入一点的细节方面‘为什么’-->‘怎么做’,还是得靠web搜索,基本上关键字找对,都能在google搜索的第一页找到答案。反过来说,如果第一页找不到答案,那肯定是自己问题都还没搞明白,所以搜索不到结果。

4. 从On Error Goto到try/catch/finaly
记得以前vb做错误处理是一件蛮痛苦麻烦的事情,有时候写出来的代码自己都不想看,更不要说维护那种打过N多个补丁的企业管理系统。
try/catch/finaly清晰的三段论结构,自然而然的让代码风格便得好很多,看起来也清楚。

5. xml
xml是个筐,什么都能往里装。归根结底理解了一点:xml是自描述的。自然也就明白了为什么越来越多的地方用到xml,xml在不同的方面具体怎么应用。

5. 正则表达式
向deerchao致敬:[url=http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm]正则表达式30分钟入门教程[/url]

6. 面向对象
好像以前看过一句话:面向过程的程序写多了,哪怕是用面向对象的语言,也能写出面向过程的结果。
学的是自动化,写了这么多年面向过程的程序,一开始看c#到这一章还真是晕乎。后来发觉其实不过是自己的思维转不过弯了。
面向过程就像设计流水线,考虑的是先做什么后做什么,谁来做没关系,但先后次序一定不能乱。
面向对象就像设计舞台,考虑的是这个人做什么那个人做什么,什么时间做没关系,但不同的人只能做自己的事情。

7. 线程
搞清楚了线程,肯定就搞清楚了面向对象,因为多线程本质就是并发操作、互动的。所以想要快速理解面向对象的程序设计理念,自己动手写一个多线程的程序就明白了。

8. ado.net
用惯了ado的,一开始看ado.net肯定觉得麻烦,我觉得可以这么理解。ado.net实际上就比ado多了一层‘缓存’,在这一层里面可以根据业务逻辑对数据进行预处理——这在以前ado代码里面不是都要自己写的嘛。

[b]成果[/b]
[url=http://www.deep3g.com/batch.download.php?aid=15]ASpider网页数据采集器 v0.1[/url]
# 绿色软件,无需安装,在xp/vista/win 2003下可直接运行
# 采用XML格式设置文件,简单直观
# 支持从列表页面定义获取网址后采集内容
# 采集标签数量不限,支持通配符,支持正则表达式
# 可下载图像文件到本地目录
# 采集到的数据可设定内容排除、内容替换、文本格式化(清理html代码)
# 可采集需要登录的页面
# 可自定义采集线程数量
# 采集到的内容发布方式支持web页面提交和数据库两种模式
# 可发布内容到需要登录的页面
# 实时显示各标签的采集结果状态

[b]求职[/b]
地点:上海
薪资:5000+
方向:开发、维护、技术支持、数据分析
联系方式:shigengxiu@163.com[em8][em8]