程序员怎么想?

Gor*_*ter 22 logic

这可能是一个毫无希望的模糊问题.但我有兴趣听到人们在学习新概念或试图让他们的大脑围绕他们可能以前从未见过的代码时所经历的任何逻辑思维过程.

基本上,人们采取什么一般步骤来解决问题以及"获得它"需要做些什么?如果您要查看代码或尝试解决问题时心理过程如何工作的流程图?

您认为在解决问题方面有哪些常见的参考,提示和心理假设?

不同域名之间有何不同?例如,Web程序员的思维过程在哪些方面与传统桌面应用程序开发人员的流程相似或不同?

Nic*_*las 13

我非常相信无论你第一次看到什么类型的应用程序,可能是网络应用程序,桌面应用程序,设备驱动程序或其他什么,一个开发人员通常遵循三个步骤为了理解它是如何工作的:

全局了解:

  • 这是什么类型的应用程序(网络,桌面,...)?
  • 它是如何分层的(独立,客户端 - 服务器,n层,......)?
  • 该应用程序的用途是什么?该怎么办?
  • 谁是应用程序的制作?

看看它怎么运作 :

  • 使用了哪些语言?
  • 代码是如何构建的?
  • 数据结构如何?

理解(或至少尝试)应用程序的思考方式:

  • 是否经过深思熟虑?
  • 该应用程序是否明确优化?(对于表演?为了便于阅读?)
  • 应用程序完成了吗?还是有进化的空间?
  • 是否有多次发布的迹象?
  • 等等...

在第一和第二步骤是纯粹的技术,而第三必须是untechnical尽可能......它更多的是心理和了解如何应用程序已经建成.它显然需要经验,但只要你认真思考并且不浪费你的大脑时间与技术细节,你最终会得到它.

整个过程不需要使用键盘.你只应该在纸上阅读,思考和记笔记(我不是在开玩笑:笔和纸!).


Ste*_*teg 12

何浩,祝你好运.这是一个很好的问题,我相信你会得到很多答案.虽然我不得不说我无法给出一个令人满意的答案 - 最后我会用流程图描述我的思维过程 - 我认为没有任何黄金公式.

我可以推荐解决问题的唯一方法是与其他人讨论.在你碰到砖墙的那些时候,与同事一起经历它是非常宝贵的.通常情况下,他们实际上甚至不会在讨论中添加太多内容 - 在公开解决所有想法的过程中,解决方案可以变得清晰.

  • 是的,有很多其他人的问题我坐在那里"解决"了,当他们对我发出技术性的胡言乱语时,他们茫然地看着他们.:) (12认同)