编程是否会鼓励过度思考,让你总是考虑所有的可能性来防止任何不想要的结果?

推荐答案1

我怀疑实际上是相反的.

固有地吸引了将所有内容分析到死的人.但是,当您获得软件工程的经验时,您将被迫找到解决方案.

您的自然倾向可能是考虑所有能够防止任何不必要的结果 - 或者,也许是为了确保尽可能多的灵活性和可扩展性.但是您将了解到,您永远不会以这种方式达到最后期限.您必须找到方法来评估由于怪异的数据,用户愚蠢或恶意攻击者而出现哪些不必要的结果,并且只能努力防止这些结果.为了仔细研究所有可能的方法,您可以使事情变得更加灵活,并确定哪些属于Yagni("您不需要它").并浏览可能的功能,找出哪些声音听起来很酷,并且实际上对3个人也很有用.等等.

如果幸运的话,您将在职业生涯的早期获得一支出色的经理,领导或协作团队,他们将迫使您表达并捍卫自己的决定.如果不是,那么要真正完成头骨需要几年的时间.

,但是一旦有意识地拥有这些技能,您就可以轻松地将它们应用于余生,因此您几乎可以像一个普通人一样有效.您在工作中无法做的所有事情,因为截止日期,您可以在一个爱好项目中做.您可以完善它,直到它是如此完美,以至于永远不会完成.给您的大脑那个插座,它将让您按时完成项目,征收税款并避免罚款1500美元,即使这意味着浪费了$ 1.37的扣除额,等等.

推荐答案2

是流动,伙计.就像您在9点坐下一样,突然间您注意到脖子很痛,眼睛酸痛,眨眼,伸展,看着时间,而11:30.时间去了哪里?您已经用测试用例编码了整个课程,并且比您想象的要好.您觉得自己真的用稀薄的空气创造了一些东西,仅利用您的思想的出色力量就可以结晶的知识融入可执行的形式.这是原始的力量,宝贝.

推荐答案3

我是软件工程师和慢性超思想.我认为这两个都不是相互排斥的,我认为成为软件工程师并不一定会加剧它.有些不必要的副作用是我倾向于嵌套括号(在短信(使人们发疯)中).

这有点夸张,但您得到了重点,当我用括号编程时,我会做很多事情,以使其流血到现实世界中.

我确实认为,成为一名软件工程师已经改善了我的关键一般的思考能力.我发现自己对事物有略有不同的看法,但我认为任何进入任何类型工程领域的人都必须对大多数事情有所改变.

我们是问题解决者,我们寻找问题和效率低下,我们试图使它们变得更好.就像肌肉一样,您锻炼它的越多(例如编写代码和构建应用程序),您就越开始注意到自己的生活/社会中的变量,关系和过程.

推荐答案4

绝对有可能,但是有了经验和理解,"您不必在项目的第一阶段涵盖所有可能的方案",应该有可能在不涵盖所有可能场景的情况下取得前进的进度.

无论您对事物有多大的看法,总会有意外的东西:

QA工程师走进酒吧并订购啤酒.

她点2啤酒.

她订购0啤酒. > 她订购了一个nullptr.准备业务.第一个客户有订单啤酒.他们结束了饮料,然后问浴室在哪里.

酒吧爆炸.

是您测试所有您可以想到的事情的情况之一,但是真实的用户可以做一些您没有考虑过的事情(也许考虑在测试酒吧时进行浴室访问,但实际上,客户会将客户访问做您从未考虑过的愚蠢事物.只要得到更多的愚蠢".

推荐答案5

边缘案例.

今天,我不得不写一个叫做" deletecustomer"的东西.

这必须做什么?

删除客户,对吗?

嗯,是的,但是首先必须它检查:

  • 它已经传递了正确的参数
  • 是存在的客户存在
  • 触发IT具有足够访问权利的用户给客户,但尝试使用exploits
  • ,客户的帐户是"明确的"(因为我们或他们的部分都没有出色的法律义务)

[edit:是的,这是一个部分列表……几个评论添加了(在大多数情况下)我也做过的东西……但是一个人寄给我回来了到代码库查看额外的边缘案例……]

和ancterin g这些并返回有用的错误消息,我必须编写代码来测试这些情况,这样,如果有人将来更改了代码,我们的自动测试将标志着总体系统可能会获得不同结果的情况.

一旦完成后端函数,我就可以从可以称呼它的前端屏幕上开始.