您的位置:首页 > 编程语言 > Java开发

java工具-IntelliJ和数学思想对编程

2010-12-17 00:04 691 查看
Seibel:你实际编程中用哪些工具?

Bloch:我就知道你迟早要问这个问题,我是老帮菜了,提这个都觉得丢人。Emacs的键盘快捷方式在我的脑子里面已经根深蒂固了。而且我喜欢写小的程序,代码库之类的。所以,我写代码的时候几乎不用现代的工具。但是我知道,很多现代的工具可以提高效率。

写大程序的时候我确实使用IntelliJ
,因为我们整个团队都在用,但是我不是这方面的专家。这个工具给我留下了深刻印象,我喜欢这些工具对代码
做的静态分析。我找用Eclipse、NetBean以及FindBug的人来帮我审阅《Java解惑》,书中的很多错误陷阱都可以被这些工具自动检测
到,太了不起了。

学习数学培养出的思维方式对编程来说也是必不可少的
。例如,归纳证明法和递归编程的关系非常紧密,你不理解其中一个,就不可能真正理解另外一个。你
可能不知道术语基本情况和归纳假设,但是如果你不能理解这些概念,你就没有办法写出正确的递归程序。所以,即使是在与数学无关的领域内,不理解这些数学概
念的程序员也会遇到很多困难。

你刚才提到了微积分,我觉得它不那么重要。可笑的是这么多年来似乎已经成为了一种思维定势了,只要你受过大学教育,那么人们就认为你应该懂微积分。微积分中有很多美妙的思想,可以让人展开无穷的想象。

但是,你可以以连续或者离散这两种不同的方式思维。我觉得对程序员来说,精通离散思维更为重要。例如我刚提到的归纳证明法。你可以证明一种假设对所
有整数都成立。证明过程就像施魔法一样。首先证明它对一个整数成立,然后证明针对这个整数成立意味着针对下一个整数也成立,这样就能证明它适用于全部整
数。我认为对程序员来说这比理解极限的概念要重要得多。

好在我们无需选择。大学课程里这两样都教得不少。所以即使你用微积分用得没离散数学那么多,学校里还是会教授微积分的。但是我认为离散的东西比连续的东西更重要。

不要只知道学习数学,要注意学习数学里的思想方式,思维方式!!!

核心原则是,先写使用API的代码,然后再写实现它们的代码。
因为,如果实现代码被废弃,之前的工作就都白做了。事实上,应该在给出设计规范前写API的代码,否则你可能把时间浪费在给最后完全不需要的东西设计规范上。这就是我设计软件的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: