您是否曾经担心过自己更关心事物的构建方式而不是实际构建的事物?


11

作为程序员,我对自己的工具,其他人的代码,我的代码以及整个世界都有固有的烦恼。我一直想改善它。因此,我进行重构,以掌握最新技术。我尝试学习模式,尝试使用框架,以免重蹈覆辙。我可以写一份技术规格书,以我可以压入的图案数量来打动您的袜子。

但是,最近我觉得我对使用的工具了解更多,而不是如何实际实现成功的软件。

我觉得我缺乏人为因素技能,我认为要成为一名成功的软件工程师,不仅仅需要了解最酷的框架。我认为它也需要以下一些技能。

  • 交互设计
  • 用户体验
  • 市场行销

我从与我一起工作的人和我从事过的伟大项目中学到了一些东西,但是我不觉得自己“拥有”这些技能。

我对吗?我应该尝试进一步发展这些技能,还是应该将这些技能留给从事这些职业的人使用?

您如何确保自己在做某事时不会太受束缚,并确保自己“使用户很棒”?

有谁知道从编程的角度学习这些技能的好资源?


2
是的,那很重要。如果您是一家单人公司,那么您马上就会感到紧绷。一家初创企业可能不会雇用您,因为您没有意识到它正在为生存而战,或者他们要么在下个月推出Beta质量的产品否则就死掉,或者因为您在与客户交谈时不能说出真相。但是,在一家管理不善的大公司中,追求自私的自我利益也许更好。无论如何,管理层始终如此。
Job

我喜欢使用很棒的产品,我认为“哇,效果很好”。因此,尝试参与创建此类“哇”产品对我来说很自然。如果这对您来说不自然,也许只是记住那些喜欢它并愿意支付高额费用的人(请考虑使用Apple产品)。
LennyProgrammers 2011年

2
在我看来,您正在朝着以过程为导向的工作人员,而不是以结果为导向的工作人员前进。您专注于过程,因为这是您所熟悉的。学习放开过程,并专注于结果。如您所说,设计模式和内容仅仅是工具:您主要关心的是应该制造的产品要解决什么问题。
whatsisname 2011年

1
@whatisname,它不是那么简单,可以肯定的是,“结果”似乎是这样的应用程序对于1.0版以及被黑客入侵的一些即席代码非常有效,但是对于2.0版则需要进行重大更改,那么您仍然将会陷入需要重新工作的先前工作的“结果”中。我认为,这确实是一种情况,从用户的角度来看,应用程序的功能只是冰山一角,您可以t将“结果”限制为该值
programmx10

@whatisname如果这是一个答案,我会接受的,但我也同意你的想法。我要达到的目的是在两组技能之一之间保持平衡,因此我能够在使用最佳工具和技术的同时设计出色的用户体验。现在看来,一个或另一个正在遭受痛苦。我需要使两种技能都具有第二天性。
罗布·史蒂文森-莱格特

Answers:


5

我的建议:尽可能与您的用户交流。我不知道您是否在大公司中,并且与用户所在的大陆不同,或者您是否处于自由职业者类型的职位,但如果可能,请与您的用户交谈。

我知道很多时候,我不得不退后一步,并记住,构建世界上见过的最多的代码,或者构建使用最少的周期和花费的函数不是我的工作。技术上最短的时间,但使用户能够完成工作所需的时间。因此,我发现,除了纯粹的技术能力外,(无论如何对我自己而言)最好的两个特征是对用户业务的良好工作知识以及与他们之间的良好工作关系。

我在一家规模不大(约50人)的公司工作,我喜欢能够走到任何人的立方体,并聊聊我为他们制作/修复的最新产品。我从工作中获得的绝对最佳感觉是,当我能够听到他们谈论他们的工作,并提出一些可以解决他们从未意识到的技术解决方案的问题的建议时。如果我不了解他们的业务并且无法与他们随意交谈,那将是不可能的。


+1与用户交谈-关键创建有用的产品
加里·罗

5

我要说的是,这取决于您在哪里工作,以及将来会发展到哪种类型的公司-这实际上是一个开放式讨论。

在较小的公司中,您可能会戴上很多帽子(尽管我不确定为什么要在此列表中列出营销,除非您打算出售自己的产品)。

在较大的公司中,他们可能倾向于吸引专门关注这些事情的人。

所以说真的,这一切都关系到您的前进方向,并有可能为自己打开更多的大门。


2
谢谢-有趣的观点。我认为作为营销比销售多,我想开发博客,搜索引擎优化,关联公司,他们应该如何进行整合,等等
罗布史蒂文森-莱格特

2

对于您编写的每一行代码,都介绍了发生错误的可能性。

因此,最好的设计可以最大程度地减少引入的代码量-也许是通过DRY(不要自己重复)原理。但是,初创公司倾向于使用YAGNI(您将不需要它)方法,从而更快地获得MVP(最小可行产品)。

如果您的目标是创建一个干净,易于使用的产品,该产品完全可以满足用户的需求,那么YAGNI是您的最终设计模式。丢弃所有不会直接影响工作代码的东西。这包括纯粹的构建过程和对模式的强迫性使用。

一些阅读材料

您可能需要阅读“ 不要让我思考 ”,这是一本关于用户界面设计的好书。此外,任何Gitomer系列书籍(尤其是The Little Green Book)都将帮助您提高销售,网络和营销技能。


1

我认为,即使在一家大公司中,出于某种原因,一定数量的交互设计和用户体验知识也非常有用:作为开发人员,您是第一个真正使用该界面的人,甚至需要数周甚至数月才能使用该界面。测试人员进行测试。

在早期阶段指出一个不如计划的那样易于使用或某些设计原则可能被忽略的接口可能非常有用。在您要使用一些具体的东西之前,有时很难看到这些东西,而且您始终是第一个要使用一些具体的东西的人。


我不在一家大公司里,过去我在一家交互设计公司工作。我发现,因为有时我缺乏知识,所以我会推迟。您有任何资源或预订建议吗?
罗布·史蒂文森-莱格特

1

我可以写一份技术规格书,以我可以压入的图案数量来打动您的袜子。

仅凭那句话就使我相信您需要在软件开发的其他方面进行工作。


有点讽刺意味的是:)在这个问题上可能讲得不太好。
罗布·史蒂文森-莱格特

@Rob,很高兴您这么说,我到处都是红色的闪烁大图案滥用灯。
ocodo 2011年

1

尽管您可能永远不会对公司软件的每个方面负责,但在许多主题上拥有广泛的知识可能会非常有价值。如果没有别的,那就是您可以参加面试的更多内容,从而可以使您的职业前进。

如果您在工作中的某些方面没有受到足够的挑战,请在家中启动自己的项目,做一些您认为有趣的事情。或参与一个开源项目。


1

不,我不是,我的工作不是担心我要构建的东西,而是要按照我的客户/雇主制定的规范来构建它。他们已经知道他们想要什么,并且由我决定如何正确实施它以便可维护。如果我能告诉他们不确定是否有将功能集成到软件中的最佳方法,我会提供建议。

也许在某个时候我会想做自己的项目并担心自己正在构建的东西,但是我认为在开始软件开发事业的一段时间内,不断努力学习正确的做事方法很重要。


有趣的是,您属于少数。您不认为有时其他人可能是错的吗?
罗布·史蒂文森-莱格特
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.