软件设计的更高阶影响

抽象 本文着重于软件设计的社会心理学方面,强调其在形成最终用户的认知系统中的重要作用,并讨论了“认知设计”的可能性:软件定义用户的思维方式时。 介绍 当我们想到软件开发时,考虑到它的社会和心理作用以及开发人员和最终用户之间的相互联系,我们倾向于关注反应性关系:用户要求功能→开发人员实现功能→用户使用它。 在此方案中,开发人员看起来像是一个相当被动的系统。 如果我们将此过程视为对话,那么用户会问,开发人员会回答。 本文讨论了开发人员成为主动系统的可能性和必要性。 用户想要什么? 我们已经介绍了软件开发过程中的两个主要角色:用户和开发人员。 如果我们考虑用户的生命周期(作为角色,与实际的人分离),则从他们第一次遇到开发人员实现的软件时开始,或者与该开发人员就创建一些不存在的软件展开对话。然而。 从现在起,用户的认知系统开始发展:他们确定自己的需求,知道(在某种程度上)软件应该做什么,并且开始形成一些期望。 当开发人员交付该软件时,用户的认知过程将再次开始,并且它将在用户与开发人员之间的对话中定义一个新的迭代。 这是该系统中的关键点:新迭代不会脱离整个过程:即将到来的用户请求基于其认知系统的状态,他们的经验和期望,这暗示着以下事实:用户社区是有状态的系统。 行为设计 如我们所见,定义用户认知过程的是开发人员。 有一个恒定的反馈回路,并且用户系统会随着软件版本的每次迭代进行优化。 这就是本文诞生的原因:基于开发人员的活动,正在定义用户的未来行为。 如果您想一想,这将非常令人兴奋。…

完整的软件开发人员职业指南– Brandon Goodman

完整的软件开发人员职业指南 这将是John Sonmez撰写的大约两本书,《完整的软件开发人员的职业指南与软技能:软件开发人员的生活手册》。 这个家伙真棒! 在这两本书中,我学到了很多关于软件开发中的期望和目标。 无论经验水平如何,他都会将其分解并非常清楚。 完全涵盖了大学,自学或训练营的学习之类的事物,并从非常公正的角度来看待它们。 跌宕起伏的原因已经清楚地解释了,当有人正在参加新兵训练营时,我对自己的道路充满信心,并意识到可能会发生的垮台以及如何应对(这个人很彻底)。 从建立简历到谈判薪水,您将找到可靠的信息。 他甚至解释了根据薪水,工作时间,福利和休假天数计算实际工资的数学方法。 当我刚起步时,我只能说很多这样的书,但是我现在知道如何处理我从未考虑过的情况。 您不仅会学习编程,还将学习如何掌控自己的生活以及如何为未来投资。 在写这本书之前,我以为我的401k捐款会让我退休,现在我正在重新考虑未来的投资并考虑一些房地产。 他没有任何糖衣,并解释了每种情况下的风险与回报。 是否同意他这本书绝对会让您思考! 这本书不仅是阅读的书,而且是学习和复习的书。 我会把本书推荐给任何想进入开发领域的人,尽管它也涵盖了广泛的主题。 他还叙述了可听见的版本,并从书中脱口而出谈论其他伟大的想法。

我如何在混乱的数据中找到洞察力和直觉

软件产品研究中的认知捷径 “数字具有许多魅力,而低俗的眼睛看不到这些魅力,只有那些疲惫而又受人尊敬的Art儿子才能发现它们。 这种沉思可能会带来甜蜜的喜悦。” –查尔斯·巴贝奇(Charles Babbage)约1825年,追忆法国数学家埃利·德·乔科特(Éliede Joncourt)的情感,约1735年 在2011年,我与一位朋友谈论了我们软件公司最近在通过优化我们的在线业务利润来规划课程方面的挑战。 尽管他显然陷入了棘手的分析难题中,但由于某些非分析性原因,我充满了良好的共鸣。 首先,我很高兴我们的团队达到了人员配备水平,能够对困难的问题进行研究,这些问题对于我们产品的持续增长和领导地位至关重要。 研究是“全都是曲折的迷宫。”错误和死胡同是这一过程的必要部分。 当我们穿越这个迷宫时,撞入几堵墙将使寻找出口变得更加令人愉快! 其次,它给了我机会来思考他的思想。 在寻找复杂的,分析密集型问题的解决方案时,期望最终获得利润最大化的解决方案是可以理解的。 但是,正如正式定义的那样,最佳解决方案是棘手的,因为它们必须是所有可能解决方案中最好的 。 鉴于系统的复杂性和我们必须利用市场地位的时间有限,这是一项艰巨的任务,也是一项艰巨的任务。 通过放宽我们的目标,我们可以寻求“调整”而不是“优化”。我们应该高度依赖数据和分析,但也要通过直觉为洞见做准备。 这使我在周末更多地思考了解决棘手问题时分析与启发式方法之间的关系。…

3种更好学习的模型

第1部分 今天,我想开始撰写一系列涵盖3种模型的文章,我认为这些模型对于通用学习以及如何专门用于更好地通过软件工程面试来说非常有用。 我从个人经验中知道,求职很容易使人灰心。 焦虑与所有不确定因素有关,很容易陷入拒绝的境地,而不注意到改善和增长的更大趋势。 这就是为什么我认为拥有良好的学习模式和心理模型来评估您随着时间的推移的进步会有所帮助,因此您会感觉自己朝着正确的方向前进。 但是,保持动力和不屈不挠可能是我在使用Outco的工程师中注意到的最大的成功预测指标,并且希望这些模型将帮助您在艰难的过程中继续前进。 能力的四个阶段 第一个模型突出了人们学习和掌握新主题时所经历的高级阶段。 每个人都始于很多未知的未知数 。 您不知道自己在某个学科上有多糟糕,因为您对此一无所知。 第一阶段可以描述为无意识的无能状态,在我看来,这是造成邓宁-克鲁格效应的原因。 邓宁-克鲁格效应–维基百科 在心理学领域,邓宁-克鲁格效应是一种认知偏见,在这种偏见中,能力低下的人有幻觉 。en.wikipedia.org 这是一种现象,在某个学科上真的很烂的人对自己的能力感到非理性的自信,因为他们对这个学科太无知,以至于不知道自己到底有多糟糕。 他们只是缺乏适当的背景来以任何有意义的方式评估自己的技能。 因此,我从中学到的教训是,始终以谦卑的态度来学习新主题。…

反对白板编码的心理案例

为什么白板编码面试没有我们所有人想象的那么有效。 “白板编码”是大多数软件开发人员都会熟悉的采访实践。 它最初的形式涉及面试官提出一个问题,例如“编写一个将字符串中重复的字符打印出来的算法”,而候选人必须在白板上编写代码,以便面试官大声解释自己的思维过程。 现在,有了诸如Codeinterview或HackerRank之类的应用程序,这些应用程序可使求职者在计算机上打字并实际运行代码以测试其解决方案。 对于更好还是更坏,我们仍未达成共识:能够打字更自然,但是在白板上很容易原谅的语法错误又困扰了我们…… 本文的目的是在软件开发人员访谈中检查白板编码的问题,并提出一种更好地预测工作成功的替代方法。 出于该论点的目的,我将更普遍地使用术语“白板编码”来指代以下条件的实践: 面试官要求候选人写出代码来解决问题。 候选人必须解释自己的思维过程,并在解决问题时提出问题。 候选人将自己的解决方案写在与面试官同一个房间中,而不是私下里。 让我们谈谈我们的问题。 实际上有两种类型的问题。 这是我们许多人已经看到的“洞察力”问题的示例: 画出穿过所有点中间的四条直线,而不用把铅笔从纸上移开。 这是一个“分析”问题: 三张纸牌面朝下摆在您面前的桌子上。 在皇后区的左边有一个千斤顶。 锹的左边有一颗钻石。…