更重要的是:了解编程语言或能够解决业务问题?

关于学习一种编程语言以从事发展领域的职业是值得的,有很多争论。 但是我深信所要求的知识集的语言不受限制。 不幸的是,并不是每个人都理解这一点。

图片

在讨论任务时,业务人员和开发人员会说不同的语言。

从业务的角度来看,用哪种语言来解决其任务根本不重要。 业务部门不认为,甚至可能不了解java,go,ruby和其他语言和技术。 当然,当一个大型且有趣的项目从头开始并且团队选择了技术栈时,这对开发人员来说非常好。 但是在现实世界中,它发生的频率更高。 通常,公司已经在特定堆栈中拥有专业知识,IT主管不希望拒绝。 原因可能完全不同,从禁止“技术动物园”到决策者的个人喜好。 还有其他因素,例如需要吸引有趣的团队技术以吸引和留住合格的人员。

就开发人员而言,他们经常表示希望以某种技术堆栈进行开发。 某些语言的薪水之间存在巨大差异,这一意图得到了加强。 因此,有些人在Java或Python的框架中过着艰苦的生活(Go,Kotlin,Scala ...几乎无休止地在继续),甚至在Delphi中,也没有尝试去看看还有什么。

我认为,进一步深入的愿望是值得的。 但是有时“森林迷失在树后” –在潜水过程中,专家完全忘记了技术只是解决业务问题的工具。 结果,对先天完美主义的完整技术堆栈的盲目性(“对一个没有认真的开发计划的项目进行六个月的重构,只是因为它会很漂亮”)并不能最好地反映所做出决策的质量。

我的观点是,特定的编程语言是次要的。 对发展原理和解决业务问题的能力的基本了解是首要的-有助于系统化整体工作的方法和模式的知识,使用各种技术(包括团队技术)的经验。 有了这样的包,,这个特定项目中需要掌握的另一种语言并不难掌握。 在我眼前,有很多例子说明了人们在一个月中如何重新训练到其他人-两次强化训练。 当然,在具有不同范例的语言之间进行切换比较困难,例如,从功能到面向对象,但是即使在这里,如果一个人不反对“在信仰层面”进行这样的切换,也没有什么不可能。

对于每种特定的业务任务,您都知道几种语言,您可以选择自己的解决方法-这种方法不仅适用,而且在特定情况下将是最佳选择。 而且,开发人员的武库中使用这些方法(语言)的基础越多,则对问题的关注范围越广,所选堆栈的动机就越强。 这正是企业需要的-为他们的任务获得最合适的解决方案。

但是,凭借对一种语言的深入了解,却没有解决业务问题的能力,专家将无法从任何团队中受益。 当然,在单个项目中,对语言“芯片”的深入了解有助于整个团队提高绩效。 但是,更多的团队成员只懂一种语言,却听不懂业务,只会减慢同事的速度。 顺便说一句,如果一个特定的团队需要的话,这样的“非显而易见的机会的步行指南”通常只有一个(我们对劳动力市场对这样狭窄的专家的需求得出结论)。

解决业务问题的能力实际上是更全球化的本质的一部分-全面的工作经验。 您既可以与雇主合作,也可以作为家庭项目的一部分。 我认为,的确,只有业务项目(有客户,预算,最后期限的情况)才能在这种情况下提供必要的反馈,从而评估解决方案的质量。 即,这决定了获得的经验的深度。 根本没有人从家庭项目中获得这样的反馈:您自己做某事,并在某个时刻确定自己做得很好。 这就是一切的终点。 但是,当该项目为商业目的而实施时,开发不充分的解决方案将被发送以进行修订,
然后,如果需要,一次又一次。 并且在这些迭代过程中,您将不可避免地学习解决该问题的几种方法-您将获得对更高层次的理解。

解决业务问题的能力的组成部分之一就是了解这项任务。 而且由于俄罗斯开发人员经常参加国外项目,因此英语知识对于这种理解是必要的。 在这种情况下,您不能总是依靠业务分析,因为市场上该领域没有足够的优秀专家。

更好地了解业务有助于融入行业。 当您不仅制作一个抽象模块来接收,处理数据包并将其发送到未知目的地时,还实现了复杂的计费系统或银行系统的一部分,该系统具有不同类型的用户,标准和其他功能。 了解这些细节非常有价值。 这样的沉浸感会教会您对任务中所发生的事情感兴趣。 这有助于找到最佳解决方案。 我知道专家将永远不会去从事一项不清楚原因的工作。 在某些针对开发人员的业务发展领域中,提供了强制性的内部培训,因为如果没有沉浸感,原则上不会进行有效的工作。

除了更好地理解业务问题之外,我建议参加特定行业的会议。 在那里,演讲者分享了他们如何使用IT技术解决业务问题的经验。 通常,您可以从那里获得有关移动方向的有用信息。 当然,尽管没有人需要详细重复别人的经历。

我并不是说每个开发人员都应该处理业务任务。 六月只是进入这个圈子,在初始阶段,与同事交流和学习如何解决特定问题花了太多时间。 没有时间拓宽自己的视野。 但是从中间开始,以前的经验形成了对执行特定类型任务的哪一侧的理解。 在此阶段,不再出现有关开发生态系统的问题-何时设置什么状态以及如何响应代码审查等。 专家甚至可以更快地应对不熟悉的任务-这是时候“拉起”业务组件。 实际上,中高级人士的独特之处在于他们对解决常见业务问题的方法的理解。 对这种理解的渴望有助于更快地迈向新的高度。

因此,我敦促同时在两个方向上设定发展目标。 一方面,学习语言,另一方面,获得解决特定业务问题的经验。 在这种发展中,必须保持平衡,否则很难在老年人世界中找到一席之地。 但是要向何处发展(向建筑师,一个非常强大的开发人员或团队领导者迈进)取决于特定专家的抱负和个人素质(团队合作,责任感,社交能力等)。

您如何看待?

文章作者:Sergey Marina

PS:我们在Runet的多个站点上发表文章。 订阅我们在VKFBTelegram频道上的页面,以查找有关我们所有出版物和其他Maxilect新闻的信息。

Source: https://habr.com/ru/post/zh-CN459294/


All Articles