随着软件产品需要整个团队的开发,一个程序员可以自己完成多少工作?换句话说,一个人可以写Photoshop,MS单词等吗?如果他们做不到,那么Web开发会成为程序员可以做很多事情的领域吗?
随着软件产品需要整个团队的开发,一个程序员可以自己完成多少工作?换句话说,一个人可以写Photoshop,MS单词等吗?如果他们做不到,那么Web开发会成为程序员可以做很多事情的领域吗?
Answers:
目前,Linux比其最初的版本要大得多,但是重要的是,它的推出足以吸引人们的注意。
我有一个个人规则,那就是如果大的东西与其他东西根本不同,那么就值得做。否则,您将潜入一片红色的海洋。
如果您的软件足够好,则可能需要认真对待。以Minecraft的创建者Markus“ Notch” Persson为例。IIRC他独自开始游戏,当游戏获得关注时,他开始寻找合作者,甚至创办了一家公司。
大型项目虽然奖励自己完成某件事,却通过开发人员的协作发挥了潜力,而不是一个天才,这使我进入了下一个观点。
请参阅 Ben Collins-Sussman和Brian Fitzpatrick在Google I / O 2009上的演讲“天才程序员的神话”。您应该在那里得到所有错误的期望。我要在这里指出的主要观点是,有时只有一个开发人员才能获得整个开发的荣誉,而背后却有更多的人。
除Linus Torvalds以外的另一个例子是John Carmack。当EA估计整个团队需要两个月的时间时,他在短短四天内就将Wolfenstein移植了出去。
它不是大量的代码,而是其体系结构和技术知识,可让您用比您期望的少的代码来完成大型工作。
有了技能和知识(超过平均水平),您可以使很多工作变得很少。
由于我正在做的工作性质,我一个人开发了几个非常大的应用程序。是的,这是可行的。我可以继续进行几个小时,但现在没有太多时间,因此这里有一些个人经验的利弊。
优点:
缺点:
这完全取决于技能,所花费的时间以及是否愿意这样做。您拥有的知识越多,完成某件事所花费的时间就越少。作为唯一的开发人员,您将获得对代码库的极为熟悉的知识,它还可以加快找出/重构/调试的过程。
我个人一直在研究桌面到服务器的传输应用程序。我已经编写了服务器应用程序,桌面应用程序的代码,并亲自对其进行了测试。我什至为应用程序编写了安装程序。我想出了一种方法,可以将其拖放到Windows中的系统托盘图标上,甚至可以从头开始编写新的Java库。我在一年的时间内做到了这一点,并且仍在开发和测试中。
整个项目一直是一个主要的考验。放学后的每一天,以及周末,我都参与该项目。它像MS Word,Photoshop等一样庞大吗?不。该项目仍然很大,而且还在不断增长,并且有可能实现很多目标。
我目前正在业余时间自己从事此类项目的工作(这是一个Web应用程序,而不是桌面应用程序,但是原理是相同的)。到目前为止,这是我发现的内容:
1)不要重新发明轮子。使用现有的库/框架,而不是从头开始。这里有一个警告:请确保您注意许可证,因为它们适用于所需的发行/发行/任何型号。某些copyleft许可证将要求您开源“衍生作品”。一些许可证仅允许非商业用途。跟踪使用的库/框架,以便可以在“贷方”屏幕/区域/任何地方提供适当的归因
2)反复工作。这与dukeofgaming所说的“从小开始”有关。如果可以看到结果,则您更有可能坚持执行项目。在您看不到某样东西起作用之前,您所做的任何开发都等同于在黑暗中绘画。
3)不要害怕在早期就寻求反馈/帮助。很有可能,您并不擅长一切。如果您擅长于较低级别的编码工作,那么您可能会深陷UI。相反也适用。在某个领域,从比你强的人那里得到建议永远没有什么坏处。许多人会避免这种情况,因为他们担心有人会窃取他们的想法。不必担心-如果有人尝试复制您,则意味着您值得拥有。想法便宜,执行是关键。苹果没有发明MP3播放器,微软没有发明操作系统,Facebook没有发明社交网络,而Google没有发明搜索引擎。他们所做的是使它吸引用户(而不是吸引)。