程序员不编程还能做什么
是的,您没看错标题,我是一名程序员,但实际上我不太喜欢编程。
如果您要我列出我最喜欢的事情。 我怀疑编程是否会出现在列表中。 当我没有列出的东西时,我可能最终会开始考虑它。
您知道,我不是那种在休假期间会思考的人:
让我拿出笔记本电脑做一些编程。
当然,除非我有一个目标要实现,否则我需要使用编程才能达到目标。
让我自己解释一下,我在大学学习计算机,目前我是一名软件开发人员。 我已经编程了几年了。 我认为这是创造事物的一种方式。 我喜欢有创造力。 我喜欢能够接受一个概念并将其移动到足够重要的程度,而其他人则可以从中使用它。
但是我并不特别喜欢编程本身。 我不喜欢设计模式。 我从没考虑过如何优化代码库以将处理速度缩短2–3秒。 对于尝试新的库,api或语言,我并不感到特别兴奋。
那我为什么要提请您注意呢?
我相信不止一种类型的开发人员。 我认为其他人对编程的感觉与我相同,但不满意。 为什么呢
好吧,这有点违反编程规范。
一直以来,我们一直被告知要从事代码的摇滚明星开发人员。 我们应该在晚上/周末做一些编码方面的项目,并定期参加技术聚会。 不断出现的文章告诉我们其他人对编程的热爱—“我辞职后爱上了编程。” 采访者希望我们了解有关晦涩的算法,设计模式和代码优化的每一个小细节,就好像采访是对数据结构101的考试一样。
大多数开发人员都喜欢做我上面列出的项目。 我要说的是,并不是所有的开发人员都只想成为摇滚明星编码者,他们有不同的兴趣和优先级,没关系。 也许大约5%到10%的运营方式有所不同,我们需要开始了解这些开发人员,他们的个人需求,然后我们可以继续前进并建立更有效的团队。
3种主要开发人员类型:
在入门级,我看到3种主要的开发人员类型。 但是,我敢肯定,还有更多内容可以随时在下面的评论中做出贡献。
团队中的所有3个人都有空间,我们只需要了解他们每个人以帮助他们发挥全部潜能即可。
“完成”程序员:
首先,让我解释一下我认为自己属于“完成程序员”的类别。
我觉得自大学以来我就一直属于此类。 我一直是大学和工作上的高成就者。 这不是因为我擅长编程或对此非常感兴趣。 我只需要完成它。
我将被分配一个项目。 我对无法完成它感到非常焦虑。 因此,我将尽早开始该项目,并努力实现目标。 那是我与同龄人相比唯一的优势-我花了很多时间来学习概念,理解问题,然后通过反复试验来产生解决方案。 在大多数情况下,最终结果都受到好评。
在日常工作中,我感兴趣的是抛出概念,模拟,与用户合作,提出想法并改进最终产品。 我的主要兴趣是围绕项目技术构建的一切,但是如果我需要使用编程使我朝目标迈进,则可以使用它。
如果您要管理此类开发人员:
- 尝试寻找机会让他们在部门内发展自己的兴趣,如果不可能的话,那就离开部门。
- 与他们进行坦率的讨论,讨论他们的兴趣,并尝试腾出时间/天,他们可以根据自己的兴趣工作,而其他日子,他们仍然以程序员的身份在开发团队中工作。 这意味着您不会失去顶级人才。
- 不要做出虚假的承诺,即在承受压力时您将无法履行承诺。 如果您这样做,几乎可以保证他们最终会全职追求自己的利益,或者找到可以提供他们所需要的职位。
作为经理,不要以为编程只是开发人员的兴趣或激情。 不要只提供技术培训课程和开发程序。 意识到他们可能想学习其他东西,例如数字营销,用户体验,产品管理,图形设计。
“技术”程序员及其与“完成”程序员的关系:
熟练的程序员只是喜欢编程。 他们是我们已经在行业中迎合的开发人员类型,并且他们有很多很棒的文章介绍了如何保持他们的参与度。 因此,我不会专注于此。
我想重点介绍技巧性程序员与完成任务的程序员之间的关系。 如果关系得到正确的管理,他们的技能可以互相帮助。 但是,要让每个程序员都保持一致,往往是具有挑战性的。
令人讨厌的程序员将希望实现复杂的解决方案。 做到这一点的程序员将需要一个优雅的解决方案,为用户赢得最多的积分。
通常,两个程序员都希望拥有相同的东西,但是在处理和措辞上却有所不同。 熟练的程序员将专注于具有可维护性和可扩展性的最佳解决方案。 他们在解释解决方案时经常会关注技术细节。 这淹没了专注于时间线,需求,可用性和简单性的完成工作的程序员。
理想的解决方案通常是两种开发人员思想的结合。 找到和谐并同时使紧张程度降到最低是关键。 管理这种关系并让每个开发人员了解其他技能并互相尊重对于创建一支高绩效团队至关重要。
“我不想做这个”程序员
最后,“我不想做这个”程序员。
这个程序员类似于“完成任务”程序员,不喜欢编程,但是已经进入您的开发团队…..
他们很可能不确定自己的技能或兴趣,因此选择了最可行的职业道路。 他们可能从未真正喜欢过大学编程,但认为他们会继续努力。 他们发现在工作环境中他们甚至不喜欢它。
他们可能会在3到6个月之间告知您这一点,特别是如果您所在的大公司提供轮换程序。
一开始,您可能会鼓励他们,并给他们更简单的编程任务。 但是即使那样,您仍然发现太多其他资源正在被用来帮助这些人。 他们还有其他技能,只是编程并不是他们自然而然的,他们并不真正喜欢它。 如果您不喜欢编程并且没有继承需求来解决问题或获得解决方案的答案,那么您不太可能会渴望编程和发展自己的技能。 掌握编程技能的最佳方法是反复试验,而这又是解决问题的需要。
因此,当您意识到它们实际上可能不会被切入编程时该怎么办?
在大多数情况下,我看到团队只是将个人分配给团队中的业务分析师角色,或者创建从未有过的业务分析师或Scrum主角色。
通常,这些角色只是所有其他基本任务的组合,而团队中没有其他人有时间要做—管理文档,测试,编写基本脚本,整理代码。 这通常是团队从未计划过的角色,但是至少他们可以说他们现在对高级管理层很敏捷,对吗?
错误。 您需要了解个人对该职位的期望,他们的技能以及可以提供的技能。 如果您不能提供给他们,请使用您的网络找到适合他们的角色。 不要仅仅在您的团队中创建不必要的角色,因为初级人才是免费的(这在拥有毕业生计划的大型公司中通常是正确的)。 如果您使用网络来帮助找到适合您团队的成员,那么如果他们找到适合您团队的人,您的网络很可能会偿还您
向前
所有这三种类型的开发人员都在团队中占有一席之地,我们只需要了解人们的兴趣和需求,而不是仅仅根据他们选择的学位或职位将它们放入盒子中即可。
翻译自: https://hackernoon.com/i-dont-like-programming-but-i-work-as-a-programmer-519a4bc66928
程序员不编程还能做什么