我的软件开发旅程

我对制作此类3D游戏的兴趣将我介绍给软件开发人员(在美国塞勒姆的一家怀旧游戏商店中拍摄) 我是来自诺丁汉的28岁的开发经理Chris Winfield,目前在伍斯特生活和工作。 在接下来的几个月中,我将撰写一系列帖子,分享我作为动手开发经理,将最初的MVP成长为市场领先的解决方案以及管理成功的开发团队的经验。 18个月前,我决定每天早上2个小时开始起床,给自己时间去尝试新的想法,技术和工作方式。 我通过阅读书籍和博客,收听播客以及简单地抽出时间尝试其他方法来提高自己的技能。 我将根据到目前为止的职业经验分享诚实的建议。 这些帖子是我自己的观点和经验,但是发布的原因是要学习新的东西-我很乐意在评论部分听听您自己的经验和观点。 背景 自从我上学以来一直从事编码工作,后来我继续在伯明翰大学学习计算机科学。 在那里,我真正开始对设计定制算法以解决复杂数据问题感兴趣。 2010年毕业后,我以初级Web开发人员的身份加入了地址技术公司PCA Predict(或当时的Postcode Anywhere)。 加入后不久,我为一个新概念实现了UI,这是一个用于国际邮政地址的自动完成搜索引擎。 这个概念很成功,从那时起,我开始设计和实现搜索算法,并推动了最终成为PCA核心产品的愿景。 随着它的吸引力,团队不断壮大,我逐步担任高级开发人员和团队负责人的角色,成为开发主管。 2017年,PCA被GBG…

在FutureLearn技术团队的采访中您会期待什么

在本文中,我们的技术经理之一Nicky Thompson谈到了我们如何采访技术团队中的软件工程师,并为应聘者提供了一些指导。 面试一份新工作可能是一个可怕的前景。 每个公司处理面试的方式都不一样,求职者通常不知道会发生什么。 我们如何才能使潜在候选人更容易准备和理解他们的期望? 我们之前曾写过有关FutureLearn技术团队面试方式的文章,但多年来,我们已经完善和更改了该过程,不断地反映并试图为求职者改善这种体验。 我们怎样才能使面试的恐惧感减少? 在FutureLearn上进行的采访不仅仅是我们向候选人提问。 我们认为,重要的是要有空间和时间来探索他们认为我们公司是否适合他们。 我们希望使人们能够以最好的方式展示自己,这意味着我们将尽一切可能减少在这里申请工作所带来的焦虑和不确定性。 我们定期为招聘人员举办有关“如何面试”的讲习班和进阶讲习班,以便求职者确信他们的面试团队将做好准备并准备谈论其角色和经验。 我们首先编写要发送给应聘者的指南,因为我们意识到,面试新工作时不知道会发生什么,这可能会让人望而生畏。 我们已经向已经邀请了一段时间的求职者发送了这次面试指导,因此我们决定是时候将其发布为博客了! 向候选人介绍我们的面试指南 因此,如果您是因为已经向我们申请了工作而在这里,您好! 当您进来时,我们将非常高兴与您会面,希望本文中的信息对您有所帮助。 我们认为在所有这些采访中与您完全诚实符合我们的利益,因为我们希望确保人们长期长期满意。 因此,在您进行所有面试时,请随时向我们询问有关公司使命,价值观,业务模式,团队组织和协作的任何问题,或对您的工作场所或团队重要的任何问题。…

你并不需要成为一个数字游牧享受远程工作,我该怎么办呢

Web峰会在都柏林 两年多来,我一直在全职从事前端开发人员的工作。 到目前为止,从标准办公室切换到远程模式是我职业上的最佳决定。 以这种方式工作使我实​​现了全新的可能性。 然而,这种自由是有代价的。 远程开发人员必须交付并不断证明他们是值得信赖的。 雇主无法控制实际的开发时间,因此整个工作文化都建立在信任和伙伴关系的基础上。 缺乏实际指导意味着很难在初级职位上找到工作,甚至更有经验的人也要对其自律和生产力负责。 另一方面,可以有效地管理时间,减少工作量和完成更多工作的人。 我想分享我过去两年的经验,并讲述我在生产力方面的挣扎以及如何应对。 远程优先方法 如果您想成为远程开发人员,那么这个术语应该是任何潜在雇主的主要要求。 您可能会感到惊讶,但是在实体办公室雇用人员的公司仍然非常适合远程工作者。 远程优先意味着任何人都可以随时离开甚至不去办公室,并且只能使用自己的笔记本电脑和Internet连接长时间正常工作。 如何分辨远程工作的公司和老式的现场公司之间的区别? 以下是一些我认为是危险信号的示例: 您的工作取决于办公室外部无法访问的基础结构(访问存储库,构建服务器等) 有一些强制性会议,您不能像参加该会议的其他人一样远程参加并完全参与讨论…

帮助您的团队摆脱会议

是否曾经想知道特定会议的费用是多少? 有了Rate That Meeting,现在可以了。 会议可能会消耗团队的士气和生产力,并且会迅速积雪成天,成为您一天和一周的主宰。 那些日子我们可能全天都在会议之间进行,而我们只有在正常工作时间之后才能找到时间真正地在晚上完成工作。 这样的日子既无聊又没有必要。 给会议定价,我们有一个简单的目标-使您和您的同龄人可以减少在工作中毫无意义的会议上花费的时间。 我们已经构建了两个核心产品来实现此目的-(1)一个便于内部会议进行评分和反馈的平台,以及(2)一个仪表板来显示会议对团队生产力的影响。 通过与我们的一些早期客户紧密合作,我们确定了两个主要主题,这些主题可以显着提高团队有效使用“对会议进行评分”的能力。 1.让您的同事知道您正在使用“为会议定价” 并要求他们参加! 考虑到您希望会议反馈保持匿名,这听起来似乎违反直觉,但是对Rate Rate进行匿名化的目的并不是要避免让人们知道您想要更好的会议,而是要确保您能够提供诚实和建设性的反馈。 让您的团队知道您想要对组织的会议进行反馈,可以发出一个强有力的信号,表明您珍惜他们的时间。 让他们参与让他们知道您对提高团队和整个公司的生产力很认真。 为简化此过程,我们提供了一个基本模板,您可以使用该模板让您的团队了解如何为会议定价,并让他们参与其中(在此处查看)。 将其放入电子邮件,Slack消息或会议描述中。…

外码

当我们开始从事真实的软件项目时,您将加入的团队很可能将拥有现有的源代码,而不是从头开始一个项目。 每个源代码都具有自己的一套技术,模式,实践和策略,这就是我们遇到这样一个问题的原因,即不知道从哪里开始或如何理解该代码在做什么,特别是如果它是大量的源代码。 通常,文档将不可用,如果可用,则文档可能已过时或在整个项目中未完全遵循或未实现的高级设计。 您拥有的唯一实际且真正可靠的文档是代码本身,以及编写该代码的人员(如果还存在的话),而其他所有信息充其量只有50:50的机会。 因此,如果您发现自己处在这种情况下,该怎么做才能理解您正在从事的项目? 您如何才能最大程度地减少学习曲线并最大化对项目的贡献? 在过去的15年中,我学到了一些东西,我认为在以下情况下可能会使您受益: 域优先(大盒子) 您应该做的第一件事是花费大部分时间来了解业务正在试图通过该软件实现的目标。 牢记此概述将极大地帮助您。 了解域将帮助您确定代码的最终目标,这将极大地帮助您确定哪些现有代码可以保留,以及从高层角度可以彻底删除哪些代码。 这在降低代码的复杂性方面应发挥重要作用,并使它更易于理解。 了解域将有助于您对代码进行区域化,也就是说,能够将较大的代码区域视为可以移动的大块,并查看每个区域之间的关系。 建筑(乐高积木) 除了对领域的了解之外,您还应该将大部分精力集中在查看代码遵循的流程上以实现其目标。 从体系结构的角度来看,某些源代码比其他源代码更难理解,尤其是在体系结构不是很熟悉或不常见的情况下。 最好的选择是找到最初设计该软件的架构师,以从最初的意图中学到东西。 了解该体系结构将极大地帮助您了解代码遵循其原始设计的位置以及代码偏离正常目标的位置以完成某项工作。…