导读
JetBrains 首席执行官基里尔·斯克里根(Kirill Skrygan),现年 38 岁。
他最初是一名普通开发人员,后来一路晋升为JetBrains 的首席执行官。他为想要提升自己的开发人员分享了一些宝贵建议。
出生于圣彼得堡
斯克里根出生在俄罗斯的圣彼得堡市,并和父母生活在这座城市。在他10岁时,曾全身心投入网球。他十分热爱打网球,而且成为圣彼得堡市最优秀的种子球员之一。
他的父母意识到,网球职业之路虽然一开始很宽广,但对于真正想成为职业球员的人来说,人生门槛很快就会收窄。
于是,父母把他送到一所当地的以数学专业著称的学校,在那里他学习了编程。之后,他进入圣彼得堡国立大学学习,并最终成为了一名软件工程师。
加入JetBrains
这位俄罗斯籍荷兰人最初在美国一家医疗保健公司担任初级开发人员。
二十出头的他于2010 年以初级开发人员的身份加入JetBrains公司。JetBrains 是一家专注于创建集成开发环境 (IDE) 的公司,其产品包括 IntelliJ IDEA、PyCharm 、PHPStorm以及WebStorm等。
后来,他成为JetBrains 团队负责人,最终晋升为JetBrains的首席执行官。
Skrygan 谈到了他从初级开发人员到 CEO 的历程,以及当今年轻人如何进入软件开发行业。
软件开发正在发生变革
软件开发和行业正在发生变革。这种变革并非以引人注目、浮夸的方式呈现,而是以更深层次、更根本的方式进行。新的人工智能工具不仅加快了开发速度,还改变了软件开发人员的构成、开发方式以及进入该行业的途径。
曾经需要深厚技术知识的小众职业正在走向大众化。低代码和无代码平台为设计师、营销人员和创业者敞开了大门,让他们能够构建功能性产品,有时甚至无需编写一行代码。这是一场代际变革。对于如今有志成为开发者的年轻人来说,进入这个行业如今有了两条截然不同的途径。
两条路径,同一个目的地
一条传统路径是:学习计算机科学,深入钻研数据结构、算法和系统设计。这条路径培养出的软件工程师能够构建和优化核心基础设施。这些专业人才的需求将持续旺盛,尤其是在优化大规模系统这类人工智能单靠自身无法解决的问题上。
第二条路径更新、更容易上手,并且正在迅速发展。生成式人工智能工具现在可以帮助人们在技术知识有限的情况下编写功能性代码。曾经认为软件开发遥不可及的人们,现在正利用人工智能工具进行原型设计、迭代和产品发布。我认为这是一个积极的发展趋势,因为它提高了软件开发者的参与度,并促进了思想和经验的多元化,最终能够帮助我们开发出更好的软件。
两条道路都能使行业长期受益,这并不是二选一的问题。
如同上世纪90年代Java的出现通过简化开发流程和降低准入门槛重塑了软件构建方式一样,人工智能也代表着另一个转折点。当时,一些C++老手对Java抱有怀疑,但许多人欣然接受了它的强大功能和简洁性。Java并没有抹杀专业知识,而是提升了它的价值。人工智能的发展轨迹与其颇有类似。
解决问题的能力永远都很重要
尽管行业发生了根本性的转变,但有一点始终不变:优秀的软件开发始终围绕解决问题展开。从某种意义上说,这是一种“回归未来”的策略:即使人工智能正在重塑我们的开发方式,基于基本原理的问题解决思维仍然至关重要。
最优秀的开发者能够把握现实世界的挑战,并创造出经得起时间考验的解决方案。人工智能可以加速这一进程,但不应取代开发者的思考方式。开发者若将人工智能视为创意伙伴,使其增强而非取代自身技能,才能取得最大的成功。
基础知识也是如此。虽然人工智能可以自动补全方法或推荐函数,但它无法取代理解“底层”运行机制的价值。注重基础知识——编写简洁的代码、构建数据结构和培养算法思维的软件开发者始终拥有优势。工具可能会不断发展,但好奇心和对质量的执着追求永不过时。
如何在人工智能驱动的环境中蓬勃发展
对于初学者来说,即使你的学习路径与别人不同,也不必担心。无论你是在大学课程中学习Python,还是使用无代码工具构建个人项目,最重要的是你的心态。你是否在解决实际问题?你是否从每次迭代中学习?你是否关注的是影响而非仅仅是结果?
至关重要的是,要将人工智能视为催化剂,而非拐杖。真正面向未来的开发者,是那些利用人工智能加速发展、拓展视野,同时又不忘精进技艺的人。
优秀的软件能经得起时间的考验。它安全可靠、易于维护,并且设计时就明确目标。人工智能可以帮助你编写更多代码;但只有你才能确保代码有意义。
基于优势融合的未来
随着新一代开发者的涌现,行业有责任为他们提供合适的工具、培训和文化。我们需要营造一个包容不同切入点的环境,而不是将他们孤立起来。软件工程师和低代码开发者应该能够协作、互相学习,共同创造更伟大的成果。
人工智能不应定义谁能成为开发者,而应拓展“可能”的定义。
发展的未来在于将根深蒂固的基本原理与新兴创新相结合。进步将源于这种交融。能够驾驭这两个领域的开发者,既理解核心原则,又能拥抱新工具,才能更好地塑造未来。
接下来,他分享了开发人员如何从程序员过渡到管理人员的建议。
如何转行做管理
斯克里根非常清楚工作的意义所在,这最终促使他开始转型成为管理人员。
“真正驱动我的是我能为全人类的整体技术格局带来影响,”他这样说道。
他曾领导Rider IDE 团队10 个年头,这位桌面应用程序开发人员爱上了用于创建Rider 前端的跨平台语言Kotlin 。“我立刻就爱上了Kotlin,因为它非常优雅,而且非常灵活,”
斯克里根说。“从一开始,最让我惊叹的是,它一方面可以非常严格,像 Java 一样面向企业,但另一方面,它又可以非常非常前卫——像 OCaml 或 Scala 之类的语言。”
后来,他成为了JetBrains IDE 部门的负责人,管理着大约 650 名员工。
“你可以完全掌控业务战略、产品战略、市场营销,所有的一切。我喜欢这样,”斯克里根坦承说道。
但是,即便开发人员想要转型管理岗位,也可能存在偏见和障碍,使他们止步于工程岗位。例如,一些公司存在“外面的世界更精彩”的心态,倾向于提拔外部人员而非现有部六员工。
斯克里根在遇到过类似的课题,是这样理解和执行的。
“你需要投资招聘初级员工和实习生,培养他们,因为初级员工往往非常积极热情,这对公司和团队的整体精神至关重要。”
他说,在其领导下的JetBrains不存在这个问题,并补充说,公司应该既要培养内部人才,也要同时寻找优秀的招聘人员。
“你不能只依赖外部的‘草根’,”他说。“你必须培养自己的人才。而且,这不仅仅是指从外部聘请高薪明星。没错,你需要聘请这些人才,但与此同时,你也需要投资于招聘初级员工和实习生,培养他们,因为有时候初级员工非常积极热情,这对公司和团队的整体精神至关重要。”
身处一家重视内部人才培养的公司大有裨益。例如,JetBrians 就与当地大学合作开展实习项目。
“我们投入了大量资金来培养年轻一代;是的,我们也聘请了一些这样的优秀人才到 JetBrains 工作,”他如此说道。
培养开发人员的管理技能
关于程序员能为管理层带来哪些技能或优势时,斯克里根这样理解道,他认为优秀的软件工程师往往做事条理清晰,善于运用工程系统。他们明白,在开发应用程序之前,需要一个稳固的架构。他还补充道,他们必须展现出对结构和架构的逻辑思维能力。
他说:“这种思维方式对管理者来说非常有用,因为制定商业战略本质上是基于一些假设的逻辑。你需要构建一个基于某些前提条件的逻辑架构。所以这种结构化思维方式真的很有帮助。”
然后,斯克里根说起程序员大都是内向的人,虽然这是老生常谈的话题,但他认为,无论你是否内向,想要晋升管理层的程序员都应该培养并展现人际交往能力。他还补充说,这需要付出真正的努力和学习。
“做管理者不像写代码。你必须要有同理心,你必须与人合作,你必须了解他们的事情,”他说。
培养人际交往能力并非一件易事。你不能简单地“解决”人际问题就万事大吉。
“你必须因人而异,”他建议道。“你不能用一种模式来对待所有不同类型的人。”
技术管理者必须既具备逻辑思维能力,又具备与人沟通和管理人的能力。
他说,只有一小部分工程师具备这种技能,但他们既需要具备逻辑能力,也需要具备与人沟通和管理人的能力。
“我的建议是深入研究——更多地涉猎社会、人文领域以及心理学、群体心理学、社会学或其他相关学科,因为这能提供不同的视角,”
斯克里根说。“技术人员的思维非常有逻辑,他们有自己严格的视角,有时他们不理解为什么人类,或者说大规模的人类群体,会以这种奇怪的方式行事。这很荒谬,但事实就是如此,你必须承认这一点,而了解其他学科肯定会有所帮助。”
他主伙,随和的性格很重要,但有些工程师并非如此。他说,这可能会使他们在公司晋升时遇到困难。工程师展现自己随和的一个方法是意识到如今的角色存在重叠。这意味着开发人员应该随时准备好并乐于协助处理自身专业领域之外的工作,例如产品管理或市场营销。
但与此同时,你也必须拥有强烈而深刻的观点来平衡这一点。
“当然,你必须以正确的方式展现出来,这样管理层才能明白,嘿,他不仅仅局限于这个狭隘的领域;这个人能够更全面地理解问题,并且对此有自己的见解,”他说。“这很有价值。”
他还建议开发者攻读MBA学位或参加MBA类型的课程来理解商业。
转向管理道路
但是,在掌握了管理技能之后,开发人员如何才能说服公司给他们一个机会呢?
这在一定程度上取决于公司文化。斯克里根表示,从本质上讲,这意味着要获得管理层的认可。
“如果可以概括地说,我认为目前积极主动的态度也很有意思,”他说。“仅仅以非常透明的方式运营是不够的。”
例如,如果你被分配了一项工作,就要积极主动地去完成。比如说,如果公司只是把所有问题工单集中起来,指望开发人员在“空闲”时间处理,那么你应该主动负责管理这些工单,确保它们得到妥善处理。
开发人员也应该意识到,管理者的反馈机制与开发人员的反馈机制不同。他说,管理者的反馈机制要复杂得多,但却是必要的。
“以我的经验来看,那些因为过于固执或自负而不愿学习的人,通常很难成为优秀的管理者。”
“这种机制可以贯穿各个层级的人员和组织,但你必须对自己诚实;你必须接受反馈,并且不断改进自己,”他说道。“能够坦诚地接受反馈并不断进步至关重要。以我的经验来看,那些因为过于固执或自负而拒绝学习的人,通常会阻碍他们成为优秀的管理者。”
他还指出,管理和领导者之间也存在区别。他强调,领导的本质在于说“不”而不是说“是”。这是因为领导是指明方向,明确重点。
“对每个人都说‘是’很容易,但如果你对所有想法都说‘是’,……你就无法完成任务,”他说。“你需要引导人们朝着这个方向努力,你需要激励和鼓舞人们,让他们真正想做这件事。”
最后给开发人员的提示,尽管这在当今的工作世界中可能显得过时,斯克里根认为,“忠诚”对于那些想要晋升管理层的人来说是一个重要品质。
“这听起来可能有点傻。但有时候,你的经理会把一些项目委派给你这个开发人员,这些项目可能不会直接影响你年底的奖金,但这是管理层要求你做的,”他说。“如果你做了这些,他们就会明白:嘿,这是一个值得信赖的人,他把整个公司、整个组织的利益看得比自己的利益更加重要。”
作者:洛逸
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。