完成项目有多重要?[关闭]


42

我是一名学生(尚未上大学),并且我已经编程大约5年了。在那段时间里,我从一种语言到另一种语言,从一个API到一个API,以及从一个项目到另一个项目,随处可见。我曾尝试过将自己放在一件事上,但我却失去了兴趣。我的整个PC上都完成了一半的项目(至少格式化了磁盘上四倍的项目)。

我开始想知道我出于乐趣而编程的较低动机(这是我真正喜欢的一项活动),是因为我最终没有完成项目。我不能告诉我目标是否太开放,或者关注范围太短。我试图做一些较小的项目只是为了完成它们,但是它们对我一点都不感兴趣。

这可能是我动力下降的原因吗?另外,当我申请去大学(并希望将来有软件工作)时,这可能会成为问题吗?

综上所述:

完成辅助/业余项目对职业,动机或教育有多重要?


8
当我们谈论个人项目时,我认为这并不坏。我开始进行许多项目是因为我想学习一些东西或测试一种工具,并在我学到了想要的东西后就停止了,尽管事实上项目本身还没有完成:产品是在学习,而不是软件和产品已经完成!您将完成所有项目,并在需要时完成支付账单。尽你所能享受!:D
Vitor Py

2
我听说它说业余程序员和专业程序员之间的区别是,专业人士找到完成项目的方法。寻求帮助是一种摆脱困境并完成项目的方法。:-)正如其他人所说,完成您的个人项目并不重要,尽管学习如何完成一个项目值得学习。
吉尔伯特·勒布朗克

1
你完成你的开始了吗?是一个常见的面试问题。
Aditya P

1
@AdityaP:答案是“否”。一家公司说:“我们不知道X是否值得做。但是如果我们等到知道之后,竞争就在眼前。所以我们现在就开始X。也许半年后,我们会取消该项目,损失五百万。或者也许半年后,我们全力以赴,赚到一千万。” 完成您开始的一切都是白痴。
gnasher729

Answers:


40

显然,完成一个项目在“现实世界”中很重要,因为除非该项目完成并交付给您,否则您(或您的雇主)不会得到报酬。

但是,对于业余爱好和学习项目而言,要复杂一些。完成项目向潜在的雇主表明您可以交付您打算交付的东西,但这取决于您对“项目”的含义。

如果您正在做一个项目,目的是拥有一个完整的产品来展示您的所有技能,并且可能最终想从中赚钱,那么您应该完成它,或者至少表明它正在积极地进行中。

如果您正在做项目以学习特定的东西(如何流式传输视频,密码加密,无论如何),那么一旦您完成了这方面的工作,那么就可以拥有一个功能齐全的产品,因为您已经有效地完成了该项目,因此变得不那么重要。您应该拥有的东西可以让潜在的雇主证明自己的技能。

例如,这可能只是一个成功登录后显示“欢迎回来,乔”的网站,而没有其他内容-很好,因为您正在展示网站背后的代码以证明您了解密码加密和安全连接等。


1
尽管您的示例已经完成,但是因为目的只是为了了解密码加密。完成项目非常重要,因为您会学到很多关于项目的知识,知道哪些项目有效,哪些无效,这些知识对于您如何处理下一个项目很有用。
DBlackborough

1
@ G3D-公平的观点,但是整个网站作为一个项目并没有“完成”。我会尝试澄清这一点。
克里斯·

48

从遇到相同问题的人那里获取经验,至少完成一些项目非常重要。完全可以做一些实验性的项目,并在知道需要的内容后放弃它们,否则一开始就不是一个好主意。

但是,富有创造力的人倾向于喜欢任何项目中具有挑战性的第一部分,而不是最后无聊的“整理,打包和出门”阶段。您需要提出一些解决方案,否则您将

1)永远都不会因您所做的任何事情而获得任何公共信誉(如果您要这样做的话)

2)永远无法从自己的工作中赚钱(如果那是你想要的)

但最糟糕的是,其他人和您自己会开始将您识别为没有完成事情的人,这对您而言对其他人来说是一个很不好的标签,对您自己的心态也很不利。

因此,找到一个合作伙伴,理由或纪律至少可以开始完成一些项目。

拖延程序员的有用策略

  • 列出所有如果完成项目可能会发生的好事,如果没有完成,则会列出所有的坏事。然后将其粘贴到显示器上:)

  • 设定时间表!项目占用了分配给他们的时间,因此没有截止日期的项目将永远存在。设定每月和每周里程碑的时间表

  • 设定每日目标,“今天我要完成此任务”

  • 如果您正在执行某个应用程序或类似的应用程序,请集中精力使其可运行和可用,这样您就可以开始食用自己的狗粮了。您可能正在研究自己感兴趣的东西,因此经常使用它会激励您进行改进。

  • 当心要进行大量的重构旅行,由于广泛的重构,我将我的应用程序中断了四个月,而开发却因为无法运行而无动于衷地进行了开发,因此进展缓慢。进行重构,但不要一次全部完成:)

  • 列出完成工作所需完成的所有工作的清单(我建议abstractspoon的待办事项清单)如果我们不知道还剩多少,那我们知道何时完成?为一个未知的目标而努力可能会很消极

  • 浏览列表并删去所有不是绝对必要的内容(将其放在一个很好的类别中)。完成产品将为您带来提升,然后可以完成这些事情。释放某物总比没有好。甚至iPhone一开始都没有。

  • 不要被闪亮的新事物所分散。我没有完成项目的主要原因是我发现了新的挑战。如果您绝对肯定不能抗拒在旧项目完成之前开始新项目,请继续并行处理旧项目,否则它将完全消失。另外,请参阅下一点。

  • 设置最短工作时间。如果您真的对项目感到厌烦,请设置每天最少的时间来从事该项目,即使只有15分钟或一个小时。很有可能,如果您开始使用,那么您的工作时间就会更长。

/ me开始完成他的下一个大型应用程序/编程语言/ facebook杀手;)


21

我的整个PC上都完成了一半的项目

您确定他们甚至完成了一半吗?真正完成某件事的价值在于,只有这样,您才能真正意识到完成任何事情是多么艰巨的任务。程序员本来就很乐于考虑大多数时间里80%的事情几乎都完成了,但是事实证明,剩下的20%至少需要花费与前80%相同的时间和精力。

因此,我真的建议至少完成一个项目。付费客户不在乎项目是否完成50%,80%或99%。仅100%完成计数。


一般完成一半。我不知道他们做了多远,但几乎可以肯定要比这少得多。(即词法分析器,也许是解析器的30%,但没有后端)
共产党鸭子

3
自然,前90%的工作需要90%的时间。工作的最后10%占用了其他90%的时间。
Buttons840 2011年

非常真实。我做的最后一个爱好项目是5个小时后“完成”。然而,添加所有的铃声和​​口哨声又花了10个小时。
卡拉

5

从我的学生时代开始,我有无数的项目尚未完成。我认为完成它们并不重要。我从未完成我的大部分工作。它们中的一些完全是理智的,例如创建更好的字符串类或使用Pixel类数组处理位图。

也许您选择的项目太大。选择很小的东西。不需要花一个多星期六的下午就能完成的工作。完成后您会感到满意。也许您会充满活力地去做另一件事。

要记住的重要一件事是,当您进入工作世界时,每天将花费8个小时来解决问题。与零星的学生生活方式相比,它为您提供了更多的时间来处理大型项目。


1
+1代表“完全扎根”(顺便说一下,扎根而不是发辫)。对我许多废弃项目的出色描述。那是不可能的。
汤姆·安德森

5

以未完成的项目文件夹为荣,不要为之烦恼!如果您在另一门学科(例如艺术)中,那么未完成的项目并不重要,关键是您可以尝试并且本身就是令人钦佩的。您可以坐在家里看电视吗?或者浪费所有时间在Stack Exchange网站上(糟糕!)

微软从未发布过我曾经希望的3D'Fahrenheit'API,也从未发布过用于替换NTFS的'数据库'文件系统,并且杀死了本来很棒的DeepZoom'Seadragon'项目。他们可能无法完成和完成数百种其他产品,这不一定是出于“拥抱,扩展和扑灭”的动机。他们还交付了比“ 98%完成”要少得多的整个操作系统。这会使他们成为糟糕的完成者吗?

“ Completer-Finisher”实际上是Belbin Team Model的一个短语。也许您是“专家”或“资源调查员”,并且适合其他人完成整饰任务的团队。以这种方式看待事物可以使您更积极地看待自己的处境。


3

尽管成为专业软件开发人员已有8年以上,但仍然感到安慰,我仍然很难完成个人项目。我一直觉得这是开放式目标,“先做一点酷”的愿望以及完成该任务的真正压力的结合。...不过要回答您的两个问题:

我认为将项目视为失败是因为它们没有100%完成,这会影响您的动力,并可能使您无法真正进入美好的工作领域。与其将失败视为失败,不如考虑从失败中学到的东西-现在知道哪些新语言/框架,中学到什么编程课程,现在掌握哪些工具以及在与之互动时与哪些人/社区互动。从这个角度来看,很少找到一个对您的知识没有任何贡献的个人项目。

在大学或在职期间,您会发现有两个主要差异可确保您完成项目。首先,您的目标通常很明确-特别是在大学的头两年。其次,您有很大的压力要完成一个项目-您必须这样做才能通过课程/模块,或者您的经理告诉您XYZ项目需要在特定日期移交给测试团队。这提供了我从未在个人项目上复制过的焦点。


2

首先,这对于自我满足很重要。您已经实现了从无到有的明确目标。然后,您可以弹出您的“ project-in-mind”项目,对我而言,这一直是一种解脱。

对于您的职业生涯,更确切地说,对于工作面试而言,在完成项目之前,您没有任何可展示或谈论的内容。显示一半的项目永远都不是一件好事。它可能是越野车,丑陋的或者根本无法工作。您甚至不能向面试官提及他们,否则他们会问“您为什么不完成他们?” ...如果您回答“我没有时间”,则意味着您无法正确安排任务,你没有毅力。而且,您有时间开始其他项目,因此您的论点是错误的。您将不得不找到一个聪明的答案...


2

我和乔恩·马尔科姆(Jon Malcolm)的处境相似,但我在错误的地方浪费时间。对于个人项目,我决定降低标准以支持完整功能。这意味着没有ajax,没有本地化,没有太多验证,没有身份验证,没有分页,准系统UI,没有单元测试等等。只要让业务部分正常工作,我称之为“直线”。该解决方案将是完整的,并且应该在理想条件下工作。一旦完成,如果项目仍然很有趣,我将继续进行重构的迭代,直到我失去兴趣为止。


2

我也有类似的经验,即使是小型宠物项目,最后的5-10%都可以成为杀手kill

我的建议是否要完成?告诉朋友,同事,家人或任何对您正在研究的新事物感兴趣的人。让他们参与进来,向他们提问。希望您会获得一些追随者,询问您的进度。知道的压力将激励您继续进行平凡但必不可少的步骤来交付项目。


1

整理项目是将孩子与成人,小麦与谷壳,男孩/女孩与男孩/女孩区分开的地方。

“真正的程序员在出货。”


9
这也是将工作与游戏区分开来的原因。
汤姆·安德森

1

要知道您是否必须完成一个项目,您必须评估从中获得的价值与完成该项目所花费的时间。

如果您可以从中提取的价值低于投资,则可以按沉没成本考虑。

在经济学和商业决策中,沉没成本是已经发生且无法回收的追溯(过去)成本。

太多的未完成项目导致浪费浪费精益最强大的敌人之一。

也就是说,有时候最好放弃一个项目,将精力集中在将提供更多ROI的项目上。许多人固执己见,未能抓住真正的良机


1

简单明了:如果要完成,请完成!如果您不想,请不要!您没有人在等待交货,那么为什么要为此苦恼呢?从事业余项目与行业项目不同。他们有很大的不同。没有人会问你,如果不告诉他们您还没有完成他们的业余爱好项目,为什么还没有完成。网上有十亿个业余项目代码。您认为有人真的在乎他们吗?(除了懒惰的大学学生正在寻找一个快速而准备就绪的最后一年的项目)


1

塞思·戈丁(Seth Godin)写了很多关于养成运输习惯的文章:

http://the99percent.com/tips/6249/seth-godin-the-truth-about-shipping

我认为这很重要,这就是原因:尽管为您自己做一个项目还是有一定教育意义的,但这还不够。如果您从不与世界分享自己的天赋,那么您就像一个艺术家,永远不会向任何人展示自己的画作。

我也为此感到挣扎。如果必须分析原因,我会说我倾向于过度设计和过度考虑我的个人项目。我将对这个问题做出太多的假设,其中许多都是无效的,然后在我意识到之前,我将进行过多的工作。那很消极,那时我失去了动力。在过去的几年中,我一直在反复考虑一个想法,而我已经重复了几次这种模式。

对于所有个人项目,我的计划是将注意力集中在总体愿景的一小部分上,并将其付诸实践(无论它是开源github项目,网站还是一系列文章中的文章)。

然后,如果我仍然有足够的动力,我将再次进行迭代。我希望从运输中获得的满意将通过其他迭代来维持我的生命。


0

这很重要。

我理解鞭打某些东西作为概念证明,然后让它放在那里。没关系。但是,除了完成的项目外,客户不会支付任何费用。

最重要的是... 销售推动一切。没有销售就没有工资。没有销售,就没有资本改善。没有销售就没有公司。销售来自客户。客户只有在满意时才付款。满意意味着完成的项目运行良好。

用足球类比:红色区域是球门线前的最后20码。这是达阵得分最艰巨的部分。这同样适用于编程项目。最后20%通常是最难完成的,但必须完成。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.