超越教程:接收需要解决的问题

2025-05-24

超越教程:接收需要解决的问题

解决任何问题的第一步都是理解问题本身。有时,项目的规范和意图可能比较模糊。此外,一旦理解了问题,就必须先概述其基本特征,然后再考虑代码。

你可能会通过几种不同的方式接到项目——会议口头通知或书面通知。此外,你还可能遇到一些不同类型的问题——工作、学习或面试练习的代码谜题。我们将在这篇文章中解答所有这些情况!

找到需要解决的问题

在某些情况下,你会遇到一些难题,通常是通过工作或教育项目。话虽如此,有时如果你是自学或接到更广泛的任务,你就必须自己想出一个项目。在这种情况下,有几个地方可以参考。首先是参加代码挑战,以提高解谜能力。以下是一些不错的网站:

如果你正在寻找一个应用程序来构建,我建议你首先考虑一下你感兴趣的东西,或者你想进入的技术领域的子领域。如果你还不确定要构建什么,这里有一个很棒的项目列表,你可以构建。另外,重新创建游戏通常相当具有挑战性,而且很有趣。

你需要了解的内容

在开始项目之前,你需要了解两类主要信息。第一类是功能。最终项目由哪些属性构成?客户希望最终产品包含哪些功能?这些功能需要如何实现?你优先考虑哪些功能?务必提出问题以获取这些详细信息。

另一半是意图——为什么要开发这个应用,它会改善谁的生活,用户是谁。理解这些能让你获得更多背景信息,从而以最终用户受益的方式实现功能,也能让你在编码时有明确的目标。

确保你提出问题是为了充分理解你的项目是什么以及为什么这么做。

做笔记

请做好笔记。无论你的任务是书面的还是口头的,写下你的想法都非常重要。如果你是在会议上接到任务,那就更是如此。你必须在会议结束后记住讨论的内容和具体要求,仅仅依靠记忆是不够的!在会议进行的过程中,写下你的想法。我用 Google Keep 做笔记,那时我不会太在意格式。我只是写写而已。

如果你收到的是书面作业,一定要仔细阅读几遍。我甚至会记下作业要求,并确保通过电子邮件、评论或亲自询问任何相关问题。

MVP 是什么?

一旦你有了实际的项目,重要的是弄清楚哪些组件对项目来说是必需的。哪些是必需的,哪些是额外的?你可以构建一个什么样的最小可行产品来向用户交付产品?然后,你可以进行迭代并添加下一组功能。即使时间不够,你仍然有东西可以交付。

每当我接到一个项目时,我都会先创建一个无序列表,列出所有需要的属性。然后,我会根据优先级别,将它们分组——真正必要的、可有可无的,以及那些需要大量思考和工作才能实现的、不切实际的。之后,根据项目工作流程,我会将这些步骤整理成一份待办事项清单,并附上详细的注释,或者将它们添加到 GitHub 上,或者制作 Trello 卡片。之后,我会先从真正必要的步骤开始,然后再逐步提升优先级。

可能出现什么问题?

这可能过于悲观,但在构建项目的过程中,也值得思考哪些方面可能出错。你可能会遇到哪些阻碍,你可能需要学习哪些知识,以及应用程序的哪些部分构建起来会非常困难。如果你正在制定时间表,所有这些因素都很重要。不要过于乐观,否则你最终可能无法按时完成。

线框

我在项目上做的第一件事就是创建线框图。用户界面(如果有的话)会是什么样子,以及用户将如何与之交互。在大型团队中,你会有设计师,但如果你为自己工作或学习,你就是自己的设计师和开发人员。你可以深入学习SketchFigma之类的工具。但是,你也可以更简约地在白板上画草图,或者使用BalsamiqWireframe之类的工具。仅仅对要构建的内容有一个概念就非常有帮助,可以让编码过程更加顺畅。

时间线

另一件需要考虑的事情是截止日期。你是被设定截止日期(比如在学校或许多工作场所),还是被要求自己规划路线?如果你要自己设定截止日期,务必切合实际,但也要严格遵守。如果你设定了截止日期,请确保在尝试任何花哨的东西之前先完成最低可行产品。在大多数情况下,毕业或有产品交付比完美更重要。

我向你发起挑战

这部分课程的作业是:

  • 找到一个需要解决的问题。
  • 确定项目的 MVP。
  • 创建一个按重要性排序的关键功能列表。
  • 如果适用,请为所述问题创建线框。
  • 如果尚未设定时间表,请为该项目创建一个时间表。

新帖子的更新

说实话,发布新内容我有时会很紧张。所以,虽然这篇文章已经写了一段时间了,但我还是花了这么长时间才发布。以后我会努力做得更好,感谢大家的支持!

如果您想在新帖子发布时收到通知,请点击此链接订阅我的电子邮件列表。

感谢您的阅读,我很快会回来分享更多内容。

文章来源:https://dev.to/aspittel/moving-past-tutorials-receiving-a-problem-to-solve-2hf8
PREV
我的博客文章工作流程:从主题到发布
NEXT
前进教程:伪代码