当前位置: 首页 > news >正文

心与心的交流

心与心的交流
——与读者互动
今年6月,我的第二本书《.NET 2.0面向对象编程揭秘》由电子工业出版社博文视点公司出版了,这是我《编程的奥秘》系列书籍的第二本。
书出版以后,一直想抽点时间写点文字与读者交流,直到暑假快结束时才有了写作的冲动,于是有了下面的这些文字。
《编程的奥秘》系列的第一本:《编程的奥秘——.NET软件技术学习与实践》,是2006年1月出版的,这本书与我本人在计算机教育方面的一些观点,曾在CSDN论坛上引发过一场激烈论战,影响了许多人(包括我自己)。
的确,这本书有许多不足,技术高手们可以从书中挑出许多不严谨甚至可以说是错误的地方,然而,到目前为止,此书已第3次印刷,我收到的与此书相关的读者邮件高达数百封,几乎一边倒地认为这本书对自己有帮助,这对于一名作者,同时又作为一名以传道授业解惑为基本职责的教师而言,是一个巨大的鼓励。
记得去年10月~11月CSDN论战期间,正值我《.NET 2.0面向对象编程揭秘》初稿完成之际,网上许多朋友们的虽然尖锐却很有价值的观点,以非常大的力量敦促我以一种负责的态度重新审视了全书,下决心增删改多处,将初稿弄得几乎面目全非。到2007年3月终稿交给出版社,我人也差不多倒了。
我想,不管您是在书店里买到的还是在图书馆里借到的,只要您认真地看了我的任何一本书,您一定是一名热爱学习,想掌握软件开发技术的人,而且是我的知音。
值此第二书出版之际,我想对读了我任何一本书的读者提一些学习建议。
1 软件技术的学习需要循序渐进
这个道理谁都懂,好象是废话。在这儿,我只针对具体的.NET软件技术学习提出自己的看法。在《编程的奥秘》序言中,我曾绘制了一张学习路线图,这是我结合自己的教学实践与自学经验提出的。而《编程的奥秘》一书,正是为了完成这个路线图的前三步:学会使用一种软件集成开发环境-->掌握一门.NET编程语言 -->学习Windows Form编程技术-->……。
这个路线图是两三年以前制定的,由于技术的进步,编程模型由CBD(基于组件化开发)向SOA(面向服务的架构)转移,以及象WCF这种“一统天下”的技术的出现,原有路线图中后继的“ASP.NET,Web Service和局域网技术”的学习步骤完全可以合成为一步,就是“ .NET 网络编程技术”。这一领域是.NET最活跃也最有应用前景的技术领域。
然而,到底应该怎么学习这一体系庞杂的“ .NET 网络编程技术”呢?有不少的初学者给我发过邮件询问过这个方面的问题。为此,针对这一部分中的核心技术——ASP.NET,我写了一篇《ASP.NET技术的学习顺序》文章,也发表在我的个人博客上,供请大家参考。
一般来说,如果您系统地学完了《编程的奥秘》,那么,您可以直接从当前书店中出版的大量《ASP.NET 2.0》技术书籍中选一本来学习,在这方面,目前国内引入了许多优秀的技术书籍,国内作者的许多作品也有相当不错的,而且您已具备了必要的技术基础,学习起来不会茫然失措。
然而,要注意,ASP.NET的书大体上可分为两类,一类是讲应用的,比较浅显,另一类涉及到ASP.NET的许多技术内幕,仅看完《编程的奥秘》是远远不够的,您必须再啃下我的第二本“更厚”的书——《.NET 2.0面向对象编程揭秘》,才有足够的面向对象技术与理论基础去深入理解与把握象ASP.NET这样复杂的技术框架。
所以,我目前已写的两本书,其用途就很明确了:第一本《编程的奥秘》用于入门,可供初学者走马观花地大致了解一下程序是怎样写的,.NET技术各领域有些什么东西,培养出良好的编程习惯,拥有对于软件开发的感性认识;第二本则用于夯实根基,我努力想在书中讲深讲透.NET面向对象编程中一些非常重要的技术点,并将许多面向对象和软件工程理论渗透其中,还同步介绍了如何在这些技术知识和理论的指导之下,用好Visual Studio 2005这个工具。
准备不足则行之不远,在此,我想对我的读者,提出我的建议:不要在编程基础还不扎实的前提下去学习新的复杂的技术(比如OO语言与基本技术都没弄好就去学ASP.NET,AJAX之类流行技术),你会消化不良的。
尤其是在校的学生,我建议你在大学一二年级就开始系统学习.NET技术(如果你未来想在微软平台上从事软件开发工作的话),可以参考我设计的技术路线图,循序渐进地学习,注意克服急燥的心理。如果你选择的是我的书,我建议你先学《编程的奥秘》,再学《.NET 2.0面向对象编程揭秘》,书中提出的许多编程练习一定要动手实践,才能打好基础,为你自己具备学习与探索能力打下扎实基础。我估计不错的话,一个初学者,认真读完这两本书,再完成大部分练习,恐怕得半年甚至更长时间。
我正在写的一本书针对的是Web编程技术,这将是《编程的奥秘》系列的第三本书,我将尽我所能,为大家清晰而透彻地剖析Web编程技术。有关ASP.NET,目前已有许多优秀的书籍,然而,我坚持我自己的特色,并且有足够的信心与优势把这本书写好,这本书将是继《编程的奥秘》之后,我又一本倾注大量心血的作品,我估计可能要到2008年底才能写完。
2 对读者的“售后服务”
我的书有一个特点,就是例子众多(通常都有数百个),书中仅列出关键代码,因此,光盘中的源码是必不可少的,但不知什么原因,好多读者的光盘不是丢失就是损坏,于是纷纷发邮件来找我要源码。但所有源码合在一起高达上百兆,我实难一一回复。请读者最好能将源码从光盘上复制到硬盘上,有条件的读者可将此资源共享(比如可以上传到一个FTP服务器上)。
应CSDN之邀,我正在准备录制一个网上教学视频系列(类似于微软的Web Cast),大约10讲左右,主要内容是《.NET 2.0面向对象编程揭秘》中的一些重点内容。包括教学PPT,技术要点讲解,实地编程演示以及课后答疑几个环节。目前我正在设计教案,成熟之后将会把主要讲授框架发布在网上。
这也是CSDN进行 e-learning的一个尝试,呵呵,我可能是第一批为CSDN提供线上课程的讲师吧。不过,要下载课程,CSDN到时可能会收取大家一定的费用。
另外,我每学期都在北京理工大学本部为本科生讲授《.NET软件开发技术基础》选修课,共10讲,每周四晚6:40~9:20,以讲座的方式向大家介绍.NET技术,除开头几讲外,后面基本上每讲针对一个技术主题,帮助大家把握.NET技术的概貌。这个讲座是开放且免费的,回京后我会将每次讲座的主要内容纲要公布在博客上。如果您在北京的话,有兴趣可以过来一同交流。这门课主要针对没有基础的低年级本科生,帮助他们迈入编程的大门,了解现代的软件开发技术概貌。呵呵,这门选修开设数年以来,教学效果不错,许多学生在网上评教时都给了我热情洋溢的评语,在此我向同学们表示感谢!我会不断努力,把课讲得更好。
除了面对面的沟通,读者如有各种技术问题,一是可以给我发邮件,二是可以在我的博客上(CSDN为主技术博客,也可以到我的新浪博客上)直接提问,我将尽力帮助大家解决疑难。
3 心中的话
自从开始进入软件领域学习和工作,已有十多年了,由于资质愚鲁,一直是半桶水的水平,非常惭愧。
如果读者发现了我书中的技术错误与硬伤,请务必海涵,并将详情来邮告之,我将在个人博客上发布勘误表。
有的网友可能会问:你既自知是半桶水,为何还要出来现呢?
对此,我的回答是:你不能因为许多普通人没有出众的能力,就不允许他们做能做该做的工作,虽然同样的工作,高手与专家可能做的水平与层次比普通人更高。
说得通俗些:大狗小狗都要叫。野百合也有春天,不是吗?
我也许没有这个水平与能力去做一些尖端的研究工作,开发一些尖端的技术,研究出一些很“牛”的产品,然而,我却觉得我拥有一点优势——我能将我所理解与把握的一些知识以比较易于读者接受与理解的方式表达出来。也许我这些对技术与知识体系的理解与把握并不全面与深刻,但却是我个人经过独立思索与实践所得,是有着自己独特性的,绝不人云亦云。你拿起我的书看,只要看几页,我相信就会有这个感觉:这本书是一行行写出来的,不是一大段一大段地Copy & Paste出来的。
写书很苦,一本书写作至少要花去一年,象《编程的奥秘》从最初构思到最后完成,有两年半的时间,而《.NET 2.0面向对象编程揭秘》也有一年多的时间,记得去年暑假写作此书时,每天在电脑上敲8到10个小时的键盘,整整持续两个月。
而写书得到的那点稿费,不说也罢,如果我做项目,几个月就可以拿到。从经济利益上说,写作实在是大大地不合算。
然而,这世上有许多事情,不是仅以金钱为唯一目的的。一本书所带来的社会效益,岂是金钱所衡量的?
我在承接或参与一些软件项目时,发现大家最头痛的往往不是技术,而是人的问题。两条脚的人有得是,但有两条腿的合格的(还不讲是优秀的)软件工程师却不好找。许多事情,最关键的就是找到合适的人才,有了优秀的人才去做事,事情还没做就成功了一大半。
独木不成林,你一个技术高手,水平再高,如果是光杆司令,你能干什么?反过来也对,如果是三个臭皮匠,合在一块也顶不了一个诸葛亮。
中国软件靠什么成长壮大?关键是人。得要有大批合格的软件工程师,在这样基础之上,才会更有多的高手成长起来。一枝独秀不是件好事,只有万紫千红才是春!高手得从群众中来,没有软件工程师群体质量上的不断提升,什么中国软件振兴,什么高手如云,都是空话假话。
我写书,我讲课,我写文章,先不讲对出现“万紫千红才是春”的景象有多少作用,但至少不会拉后腿,而且我相信我也为祖国这个大花园多多少少加了一点自己的“春色”。
位卑未敢忘忧国,就算是我在街上摆摊卖豆浆,也要向做出这条街上最好喝的豆浆而努力。是不是这个理儿?

相关文章:

  • SimpleDateFormat 线程不安全案例
  • BPEL和JAVA(一篇不错的BPEL入门)
  • 关于 BlockingQueue 的一些认识及资料汇总
  • 欣闻我班上的学生林健在Image Cup比赛中取得好成绩
  • C#.NET常用函数大全
  • Java基本类型简介
  • 动态调用 WebService
  • 关于 ThreadPoolExecutor 的一些资料汇总及个人认识
  • ADO.NET数据操作摘录
  • 线程池ThreadPoolExecutor的拒绝策略
  • 关于 ScheduledThreadPoolExecutor 的一些资料汇总及个人理解
  • 无聊的事情真多
  • 转载一篇关于JNI实践的博客---以及编写自己的native方法
  • 竞标项目,何必这样呢?
  • 关于Netty的一点初步认识
  • 深入了解以太坊
  • 0基础学习移动端适配
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • PHP变量
  • Vue.js 移动端适配之 vw 解决方案
  • Web设计流程优化:网页效果图设计新思路
  • 分享一份非常强势的Android面试题
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 前嗅ForeSpider采集配置界面介绍
  • 数据可视化之 Sankey 桑基图的实现
  • 无服务器化是企业 IT 架构的未来吗?
  • kubernetes资源对象--ingress
  • 阿里云ACE认证学习知识点梳理
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # Panda3d 碰撞检测系统介绍
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #1014 : Trie树
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #在 README.md 中生成项目目录结构
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (笔试题)合法字符串
  • (超详细)语音信号处理之特征提取
  • (算法)Travel Information Center
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一) springboot详细介绍
  • (一)u-boot-nand.bin的下载
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET Project Open Day(2011.11.13)
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET程序员迈向卓越的必由之路
  • .stream().map与.stream().flatMap的使用
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @requestBody写与不写的情况
  • @SuppressWarnings注解
  • @Transactional 详解