我所见过的最差的一本计算机书籍。评《Visual C# 2005 程序开发与界面设计秘诀》
Posted on 2007-01-17 09:47 追求卓越 阅读(1400) 评论(6) 编辑 收藏 举报作为一个软件开发人员,最痛苦的地方是什么?没有好的中文技术书籍。
满天的中文技术书籍,优秀者凤毛麟角,让我们不得不硬着头皮去钻英文技术文章。
这其中的苦处,相信大家都有同感。
一本垃圾的技术书籍,最大的帮助就是让你浪费了时间而且还把知识学得一团浆糊。
很不幸的是,我得到了这样一本书,还好,我及时地发现了这是一本不值得再看的书籍。
我只花了几个晚上,只看了前面50页的内容,就发现了4,5处错误。。。
很遗憾,我的学习C#的热情就这么小小地浇了一瓢冷水。。
本来,这本书是在博客园这里一位园友推荐的,他热心的介绍这本书,
并且免费寄给我阅读,在此,我由衷地感谢他,不论书籍如何,这种衷心的帮助人的做法让我非常感动。
然而,做法是很好,但是这本书的质量实在坏了这一段交流。
也许我不应该这样兴师动众的批评这样一本书,但是本着负责任的态度,还是要说一说。
刚开始看没多久,就有了一种感觉:此书的部分内容是翻译的,有些地方翻译得很蹩脚,
个人也曾经翻译过自己喜欢的计算机书籍,所以有一些经验。
翻译的质量差到什么程度?举个例子:
{
public double Real;
public double Imag;
public void ComplexAdd(Complex Operand, Complex Plus)
{
Plus.Real = Operand.Real + Real;
Plus.Imag = Operand.Imag + Imag;
}
}
看到这一段,你认为Complex应该代表什么呢?很明显就是复数。
但是本书中确是“复杂数值”。。。。
很明显,不知道从哪里找来的代码,翻译的时候,直接用词典之类的工具翻译成了复杂数值。。
不幸的是,在后面的部分,又再次发现了类似的例子,这一次,我找到了代码:
http://support.microsoft.com/kb/307368/ja
在书中,第2章的第1个例子代码就和这个一模一样,只不过把San Francisco Giants翻译成了洛杉矶巨人队。。。
例子代码:
{
private string Name;
private string Stadium;
private int Wins = 0;
private int Defeats = 0;
public BaseballTeam(string Nm, string St)
{
Name = Nm;
Stadium = St;
}
// 定义一个公共方法。
public void PlayGame(int RunsFor, int RunsAgainst)
{
if (RunsFor > RunsAgainst)
{
Wins = Wins + 1;
}
else
{
Defeats = Defeats + 1;
}
}
// 重写ToString 方法。
public override string ToString()
{
return Name + ", 比赛场地" + Stadium + ": " +
" 赢" + Wins + " 输" + Defeats;
}
// 定义一个枚举类型。
public enum Result
{
Win,
Lose
}
// 定义PlayGame 方法的多态版本。
public void PlayGame(Result Res)
{
if (Res == Result.Win)
{
Wins = Wins + 1;
}
else
{
Defeats = Defeats + 1;
}
}
// 定义一个只读属性。
public double Record
{
get
{
int played = Wins + Defeats;
return (double)Wins / (double)played;
}
}
// 定义一个可读取及写入的属性。
public string Ballpark
{
get
{
return Stadium;
}
set
{
Stadium = value;
}
}
}
其他几处错误,我不想再举出了,截图错误,概念含糊不清等等。。
这就是微软中国的专家推荐的书籍吗?不要把程序员当作傻瓜,不要拿粗制滥造的东西来充数了!
为什么就不能把一本书仔细推敲,仔细校对一下呢?
平均10页就有一处低级错误的概率应该不能用简单的失误来解释吧?
好书不是吹出来的,是读者由衷的赞叹出来的,看看那些经典著作,那一部不是凝聚了作者的心血?
我们希望能有更多优秀的书籍可读,尤其希望能有更多本土的优秀作品,但是像这样的粗制滥造之作,还是越少越好吧。