现在是凌晨2点。 你的眼睛很累,你知道你在编写废话,但你无法远离电脑。 握着一只手,你会抓住一个装有糖和咖啡因混合物的瓶子。 你的代码中的这个可怕的错误不会让你平静,直到你摧毁它。
你花了五个小时不停。 但是,你仍然没有看到梦魇的结束。 你的床给你打电话,但你不听。 代码是最重要的。
你的副项目是最重要的。
两个月后,你几乎忘记了你的副项目。 你没有触摸它,因为这个怪异的bug ...你可能花了太多时间在它上面。 在这个致命的夜晚,你烧掉了太多的神经元。 你自己的一小部分仍然喜欢它,但痛苦太过生动。
现在动力消失了......
你想创造你梦想的侧面项目吗? 亲爱的读者,这个小故事准确描述了不该做的事情。 我可以讲述上面的故事:自从我发现自己编码以来,我开始了许多辅助项目。 我在C的第一个项目是18年前的一个副项目。
由于我现在正在发布我的新项目Sharetoall的MVP ,我认为这是一个很好的机会来撰写我对一般项目的经验。
本文将介绍成功开始,享受和完成副项目所需的思维模式。 这非常重要:没有好的方法,你的副项目可能成为你最糟糕的噩梦。
第二篇文章将为您提供实现愿景的具体工具和实践。 它将为您提供具体的例子来说明我今天提出的理论观点。
不是那么快! 我知道你的想法。 “让我们来看看第二篇文章,我喜欢工具等等。 理论很无聊。“
工具只是实现您想要实现的目标的一种方式。 当你建造房屋时,最重要的不是锤子,而是你为这所房子设计的计划和目标。 如果没有这种心态,你就不会仅仅使用一系列工具来获得成功。
因此,我鼓励您按顺序阅读这些文章,从这一开始。
但首先要做的事情是:你可能会问自己,你这个疯狂的哲学家,我对“侧面项目”的意思是什么?
除了你的疲惫和全职工作/学校/无论你整天做什么,这都是个人项目。 简单。
有了这个问题,让我们开始吧。
1.软件项目的想法:在哪里找到它们?
它发生在我们最好的人身上。 你想开始一个侧面项目有很多原因,但你真的不知道是什么。
我可以看到你已经坐在电脑前,谷歌触手可及,寻求创意。 他们在某个地方,你知道,你会发现它们。
像很多人一样,你认为想法需要脱离虚空。 这是你可以积极获得的东西。喜欢买巧克力冰淇淋。 你想要它,你去商场,你得到它。
给亲爱的读者带来惊喜:实际上更容易让想法来找你。
你可以在网上找到好的想法,我不能否认。 更准确地说,您可以在周围的一切中找到灵感:
跟人说话。 他们喜欢抱怨他们的问题。 如果这些问题可以通过软件解决,那么您手中就有了一个有价值的想法。
参与产品搜索或indiehackers等社区。
大多数你的想法都会在没有你搜索它们的情况下弹出,这些想法是由你有时甚至没有良心的刺激创造出来的。
基本上你可以有各种各样的想法:洗澡时,走在街上,与人交谈。 你需要在它们出现时抓住它们,否则它们会很快消失。
因此,注意到您的想法至关重要 。 注意你拥有的每一个想法,即使你认为它们很笨拙或愚蠢。
想法,甚至是坏的,都可以激励你。 灵感将创造更多的想法。 这是一个需要消化的良性循环。 你的“创意包”将越做越大,你只需要发挥它们的全部潜力。
2.side project需要明确而准确的目标
想法很好,但还不够。 您的副项目需要服务于一个或多个目标。 它需要有一个目的。
目标对于保持动力不变是至关重要的 。 它将帮助你不要在一个尘封的遗忘区域放弃你的侧面项目。
他们需要对你有意义并鼓舞人心。
将你的目标与激情联系起来可能是一个很好的激励引擎。 假设您喜欢烹饪:您可以构建一个可以帮助您烹饪的应用程序。 它可以让你更有效率。它可以简化您为实现最佳菜肴而需要完成的一些任务。
既然你很可能是一名开发人员,我相信你至少有过一次这样的想法:“用这个工具做这个无聊的任务会很好”。 好吧,这里有一个明确目标的副项目的想法。
赚钱也可以成为一个目标,但更积极地参与更有效。 通过侧面项目,您永远无法确定资金会像河流一样流动。 这可能是值得怀疑的,并且怀疑会使你的方面项目更难以继续和实现。
尽量使您的目标尽可能精确。 他们会更多,更容易记住你为什么要建立这个侧面项目。 想象你的目标,你将保持你的动力。
最后,你的目标必须切合实际。 如果你独自一人参与你的项目并想要创建一个流媒体平台来取消Netflix,那么它可能有点过于雄心勃勃。
最终,良好的目标取决于你:你热衷于什么,你可以实现什么。 当你感到失去动力时,请记住它们。
3.享受旅途!
有一套明确的目标是良好的项目基础的一半。 从长远来看,目标将保持你的动力。
在短期内,您需要享受建设过程。
也许你对一些技术很好奇,你想学习它们吗? 也许你真的喜欢这种或那种编程语言,你想要更好吗?
侧面项目非常适合学习。 如果您喜欢学习(如果您是开发人员,那么这将是一个很好的日常动力来源)。
然而,它可能很难处理,特别是如果你很难建立它。 请记住,它是游戏的一部分,是什么让侧面项目变得有趣:它们挑战自己。
请记住,失败只是学习的好机会。
您的侧面项目是您新的闪亮绿地,您可以在那里进行实验并享受乐趣 。这非常重要。 不要过分克制自己,发疯并做任何你想做的事情。
如果您不喜欢在构建项目时构建侧面项目,请问自己:您不喜欢您使用的技术吗? 是什么让建筑过程变得无聊?
试着找出出了什么问题并修复它。
4.找到您的特定受众
现在您已经有了明确的目标并且真正有兴趣逐步建立您的项目,您可能有兴趣知道人们是否像您一样热情。
问问自己这个基本问题: 你为谁建立了自己的项目? 它可以是一群人,一个人甚至是你自己。
开发你的泡泡中孤立的项目,而不谈论它,你可能会构建一些没人想要使用的东西。 这绝不是一种令人愉悦的感觉。
首先,尝试找到您要定位的社区。 它可以在reddit上,在论坛上,甚至可以由你想要联系的人挤满。
然后简单地问。 如果你不想直接谈论你的想法,你可以保持模糊。 就像是:
“大家好! 我在想:你怎么看待一个新的网站来学习外语? 我想知道是否有人能够创建自己的单词列表并根据它们进行练习“。
不要害怕将您的想法提供给可能立即构建您想要做的事情的人。 他们不会。 仅仅因为构建新应用程序很难,并且它们不会像您这样做那样具有相同的动机,甚至不会在搜索受众时获得相同的知识。
您可以获得更多反馈,更好。
由于我们倾向于重视负面反馈而不是积极反馈,所以尽量保持现实和客观。 具有强烈争论的积极反馈优于没有解释的负面反馈。
不要忘记,人们倾向于主要给予负面反馈。 积极的事情是“正常的”,因此不会更糟糕的谈论。 这并不意味着你的副项目一切都不好。 这意味着您必须直接询问他们对此的喜好。
尽量远离这些反馈并保留那些得到充分解释的人。 只有当他们为您提供足够的信息以进行改进时,反馈才对您有用。 尤其是消极的。
您可以在项目的任何阶段基本上询问它们。 向一些朋友开发者询问你的想法。 向设计师询问您的设计。 如果测试版产品是好的,请向人们询问您的目标。
你需要确保你正朝着正确的方向前进。 如果你在每一步都能确定它,那就更好了。
最后,试着记住:失败只是反馈。 同样,他们是一个学习的机会,因此非常有用。
我知道反馈很难被接受,甚至可能会受到伤害。 然而,它们是必需品。你会越多地寻求他们,他们将会受到更少的伤害。
5.找到优先考虑你side project的地方
如果您作为开发人员已经在公司工作,那么侧面项目可能很难建立在您的空闲时间上。 你可能常常为追求目标感到厌倦。 疲劳和动力是相互排斥的。
找到如何平衡个人生活,工作和侧面项目非常重要。
尝试向您的家人,您的朋友或您所居住的任何亲戚解释您需要一些时间来完成您的超级项目。 向他们解释你的目标和动机。
解释是这里的关键词:如果你强烈要求你的家人6小时不停留深度焦点,那可能就太多了。 请记住:每天工作30分钟,每月工作时间超过10小时。
如果你定期工作一点时间,他们可能更容易接受它。 如果你有明确的目标,他们就会理解你的动机。
为了始终如一地工作,如果您可以在不受干扰的情况下为侧项目分配一些时间,那就更好了。
再次,沟通和听力技巧是关键。
另一种生活平衡建议:尽量保持足够的睡眠,正确饮食并确保在工作,侧面项目和一般义务之间保持足够的休息。 你的身体和心灵需要得到尊重,否则它们将无法满足你的目的。
总是试着记住,烧坏不会对你有任何帮助,而且会比放弃一个副项目更糟糕。
6.较小的side project更好
你的梦想是自己建立一个在月球上发射火箭的应用程序? 这是一个寻找梦想,但让我们变得现实。 一个庞大而复杂的侧面项目有更多机会永远不会看到光明而不是简单的光线。
这是有道理的:你将花更多的时间来建立你的副项目,你的动力会越来越多。 有一点你会完全让它死掉。
如果你使用一种你还不知道的技术,尤其如此。 不要担心太多额外的困难,学习新的编程语言或新的框架是很困难的。
满足感是非常重要的,以保持自己的积极性。 满足是通过实现目标来实现的。 实现整个项目当然会让您满意,但即使实现其中的一部分也会保持您的动力。
将您的侧面项目分成多个小部分。 每当你实现其中一个“侧面项目块”时,你就会触发这种满足感。 在您的项目中向前推进是一个很大的帮助。
将您的项目分成几部分将确保您始终走在通向最终产品的良好道路上。 这些部分需要与您的目标保持一致。
如果你的副项目很大并且想要实现它,可能是时候找一些伙伴来帮助你实现它了。 使用您的网络并询问开发人员或设计人员是否已准备好分享您的目标。 它可能会带来一系列新的机遇和困难。
您对目标的参与需要与您的项目一样大。 如果你开始一个巨大的辅助项目而没有真正受到你的目标的激励,那将是一个失败。
7.一个好的组织有很长的路要走
一个好的组织将有助于有效管理您的项目的范围和时间表。
许多工具可以帮助您跟踪您希望在每项任务上花费的时间,您真正花费在执行这些任务上的时间,以及您在不久的将来仍需要执行的任务。 e我将在本系列文章的第二部分中更详细地回到这一部分。 在那里,我将详细解释我的组织。
请记住,工具不是您的项目成功的原因,无论它对您意味着什么。 他们会帮助你,但就是这样。 不要花时间过度调整它们,你的副项目本身应该是重点。
8.围绕你的项目建立习惯
持续工作是成功的辅助项目的关键之一。
一致性是什么意思? 每天工作一点比燃烧自己不停地工作三天更好。 特别是如果你每三个月不停地工作三天。
你需要找到一个平衡点。 怎么样? 通过建立良好的习惯。 他们可以为您提供极大的帮助。
如果我说建筑习惯很容易,我会欺骗你。 不是。 但是,如果您的习惯到位,您的工作效率将会发生巨大变化。 我可以保证。
你的生活已经充满了习惯。 如果你每天早上喝咖啡,这都是一种习惯。如果你每天早上刷牙,另一种习惯。
关键在于建立这种强烈的习惯,并考虑到您的侧面项目。 例如,它可以每天工作10分钟,例如下午5点。
如果你认为自己缺乏建立这些习惯的意志力,那你就错了。 每个人在意志力方面都有或多或少相同的优点和缺点。 意志力不是你拥有的,也不是你拥有的。 这是一组您需要了解的复杂机制。
当你的习惯长期存在时,你就会在不考虑它的情况下完成你的项目。 你还记得上次你不得不推动自己做你需要做的事吗? 你还记得你花了多少精力来说服自己开始手头的任务吗?
这种能量是宝贵的,你需要保存它。 建筑习惯将使您只关注任务本身,而不用花费精力想知道您是否会这样做。
9.避免任何压力:side project项目应该很有趣!
你生活中有足够的压力:不要对你的项目施加压力。 这是你需要享受的东西,否则你会放弃它。
首先,完全避免固定和精确的截止日期。 您是否能够准确估计您需要做的工作量? 我不认识任何能够做到这一点的人。
您可以大致估计构成您的项目的每个小任务,但不要太认真。 如果任务需要10倍估算,那就接受吧。
截止日期可以阻止您进行实验。 有空间尝试新事物可以教你很多。
你可以从侧面项目中学到很多东西,我相信这就是为什么我们想要在第一时间做这些。 但是截止日期会让你陷入不良习惯,糟糕的代码并最终消失。
10.完美主义:质量还是违约?
我天生就是一个完美主义者:在我的职业生涯开始时,我可以花几个小时看我的代码,修改它以使其美观,无bug。 制作完美的代码。
问题? 我正在开发的每个功能都可能需要大量的时间!
请记住,您以后可以随时改进代码。
这是我的策略:
让它有效
测试你的功能
如果它真的看起来太难看,那就重构它
是时候开始另一个功能了
我们不用大理石编写代码。 您可以随时修改它。 努力永远前进将保持你的动力,你的想法突然出现。
正如作者Jon Acuff所说:
培养对不完美的耐受性是将慢性起始者变成一致的终结者的关键因素。
不要误会我的意思:重构非常重要。 你需要不时地做这件事,否则你的副业就会变得一团糟。 只需优先考虑需要重构的内容。
例如,您可以让自己在一周中有一些专门的时间进行重构。 简单地说,请记住,一个不完美的在线项目比一个永远不会在线的完美项目更好。 相应地设置优先级。
关于性能优化的最后一句话:只有当它满足您的需求并带来定义的价值时才这样做,而不是因为它更漂亮。 每当你想要重构一些东西时,问问自己真正的,有形的好处。 你可以花几个小时微调一切,没有明显的收益。
但是......我如何具体地做到这一切?
我相信没有经验的知识很难应用,没有良好知识和良好心态的经验不会给你想要的结果。 你需要两者。 这篇文章是关于心态的, 下一篇文章是关于获得它的经验和工具。
作为开发领域的一切,您应该根据您想要实现的目标应用规则和原则。 必要时弯曲它们。 不要盲目地跟随他们,不要使用你拥有的最重要的器官:你的大脑。
最后一点:没有任何一个项目是无用的,因为你总是会从中学习。 这是扩展技能的好方法。 你是你的项目的驱动者,你不必遵循一堆经理的意愿!这是一次非常令人耳目一新的体验。
你的副项目很有用。 即使你永远不会完成它们。 即使他们完全失败了。特别是如果他们完全失败了。
继续尝试,失败和学习。 这是他们成功的方法。