Kobe:在外企远程办公,是一种怎么样的体验?

B站影视 2024-11-28 12:23 1

摘要:这是《开发者说》的第25期,本期我们邀请的开发者是Kobe,从富士康到外包公司测试工程师,再到华为软件工程师、苹果运维开发,他走了10余年。在外企远程办公,和来自全球各地的开发者远程协作,是一种怎么样的体验?

这是《开发者说》的第25期,本期我们邀请的开发者是Kobe,从富士康到外包公司测试工程师,再到华为软件工程师、苹果运维开发,他走了10余年。在外企远程办公,和来自全球各地的开发者远程协作,是一种怎么样的体验?

大家可以叫我的英文名Kobe。如果要说纯代码这一块,我基本上从大学就开始就开始接触编程了。我早期在国内的时候是读的是计算机图形艺术,它是带一些计算机跟三维动画那一块的专业,大学的时候主要学的是C语言,学一些数据结构,后面我就出国读书了。

出国的话可能是跟氛围有关系。我读的高中在深圳这边,基本上有一半同学都出国了。后面我大概工作了一年多后,我就去申请国外的学校,最后是在英国诺丁汉特伦特大学读书,读了一个智能产品设计的硕士,学的东西更偏向于一些理论,因为我在诺丁汉,他们的产品专业在英国还可以,叫product design,我们那个专业跟他们product design是一个平行的专业。

但是它里面会有做电子类消费类偏向的产品,不光是做那些造型,可能也会涉及到做生产制造,就是包括设计电路,做一些嵌入式,代码也会涉及到一点,它是综合的专业,总体还是属于产品方向。在诺丁汉的学习开阔了自己的见识,包括在国外跟同学一起做项目,我们那个专业大概就是十个人,这种小班制比较强调每一个project,你要去写论文还要去对你的这个论文里面的一些东西做一些原型。

包括我们学校里面也会有一些助教可以帮助你去做一些设计,最终你做的东西可能是一个多方面的,要花很多时间去了解,整个下来我觉得就是对自己的各方面能力还是提升了不少。

我们专业其实有一个教授,他原来是哈工大的一个老师,后来去英国,后面又辗转到我们那个学校,实际上他是tutor。后面他还跟我说希不希望就是跟他一起做博士那个项目,他可以把名额给我,当时想就是觉得一下子要再读个几年,觉得时间太长了。综合考虑之后后面就回国了。

我刚开始的时候,我不是那种完全就是纯写代码的那种。人家就觉得你没经验,我最早的时候是在富士康一个自动化的部门,待过比较短的一段时间,后来我就感觉富士康的那种企业文化和军事化管理比较压抑,后面的话我就慢慢的去往测试那一块去转,去做自动化测试,我当时专门去报了一个班,他会讲一些测试自动化测试的东西东西,后面我就慢慢就转到测试。

写代码那一块,是我自己后面自学那个C、C++跟Java。我刚开始是想从Java走,但是我第一份开发工作是一个C++的工作。所以我其实真正是从C++的开发开始,从C++之后就慢慢就转到C#,然后到python的这个线路,没有真正的去走那个Java开发那块。

感觉很多东西其实不是说能完全按照你的规划,但确因为我觉得在那个时候,你想找一个那种产品设计,跟去找一个去互联网相关的工作,因为那个时候互联网的确是最热门的,最后就从选择了这一方向。

我觉得整个历程真的很长,包括在那些大厂里面去工作跟在其他的中型公司,其实你能去接触到的可能有些东西还挺不一样的。

我那个时候在华为是做通信客户端,他们有一个叫uc client,它实际上做的并不是很好,它是华为自己的企业通讯工具做了一个定制化,然后去卖给那些大的企业吧,这个通讯工具就有点像我们现在的钉钉。那个时候很多企业不想用QQ,就只能去找这种企业给他去做一些定制化的通信。当时做的功能可能针对的是东南亚,沙特那边的企业和学校去用这种东西。在华为的工作,你可以了解到很多这种项目,但是你真正做的那块工作的话,你不会涉及到整个项目,你可能涉及到的是某一个部分,比如说我的工作就算是中间层跟上层的一个整个的维护,可能不需要对整个项目进行深度了解。

其实那个时候出国去读书,刚开始我觉得国外的那些同学大家一起交流都挺友善的,但是后来我慢慢感觉到,真正在做项目或者说做project要去拿一个分数之类的,或者说一旦涉及到你要去跟你们partner去完成项目时,就会发现他们会觉得你是中国的,你语言上没有先天优势,你肯定是做不好,我个人感觉可能没有那么强烈,但是的确是隐隐约约能感觉到,但是他后面发现其实你做项目的时候,你真正的去做,去花了时间花了精力去做,如果你做的好的话,他们也会改变自身的看法。

刚开始的时候,老师都不看好我们这一组,因为我们当时那组就是我跟另外一个国内的小伙伴,当时觉得肯定是他们这些有先天语言优势的会做得比较好,但我们后面做完了以后,我们这组拿到了最好的成绩,可能在这种比拼里面你去用你的东西去证明了,人家才会觉得中国的这些学生虽然没有语言优势,但是在项目上依然能做出一些耀眼的成绩。

有些人会觉得中国的学生可能就是花点钱过来读书。但你要让别人觉得在一些项目里面你是有认真去做的,老师也会尽量的去帮助你。后面慢慢地能感觉到其他人开始认可你的努力和学习能力,后面大家就玩得挺开心,就能感觉到他们没有像一开始这样,带有一点偏见的去跟你去沟通。

在学校里面,特别像他们那些英国人还是挺务实的,学的这个专业可能也是属于产品类的,他都是要去做一些那种东西出来。在英国的话,他们的文化也是那种比较喜欢玩的,他们玩的时候也比较玩得开一点,在英国的这段时间还是很快乐的。

现在整个看过来的话,其实你进到某个公司,一定都会有一些时候让你觉得这个阶段很困难的时刻。

要说印象比较深刻的话是我在苹果的工作经历。我是外派到苹果,但我觉得在苹果那边工作让我一下子觉得原来工作是可以几乎全部远程的,每天就是在线上去沟通,跟之前传统的工作模式真的区别挺大的,我之前的那些工作都是跟项目的每一个成员,每天都会在办公室里面直接沟通,但是在苹果几乎完全远程。

第一个它有时差,美国印度和中国的三波人在做项目,它要找一些时间段去把这些人给拼起来。这个时候你会发现要把这些人的工作时间都组合在一起的话还挺难的,要么你上班的时候人家都已经下班了,要么你下班的时候人家才开始上班。

但我感觉苹果的员工对待工作还是十分认真负责的,有些时候为了配合我们的一些会议,他在家里面很晚的时候他也会远程跟我们去沟通。像我们的话也有时候晚上去跟他们开会沟通项目的一些事情,相当于你要去适应这种节奏。

文化方面,他们很多是印度裔,然后也有一些是像apple park他们部门里面那边的白人也有就是很多,你要去跟他们去沟通的话你要感觉到他们的想法。

比如说你是做一个我们的项目的on call或者stand by,那边就是我们的工厂的一些状况,你应该去怎么反应或者说你应该怎么样去跟他们苹果的那些人去说,你觉得这个事情你分析下来怎么去做,这个是很考验技巧的,就是说不光是说你觉得这个东西该怎么做,而是你应该怎么去看待这件事情,去分析这件事情怎么样可以最小的去规避一些问题,这个时候就很考验你。

你需要去灵活的去了解一些状况,去给出一些建议,或者说他想要去做这个事情的时候,他希望你自己去了解,你觉得应该去怎么去做这个做东西会比较好。很多问题,它相对来说是比较开放性的,这个的确不一样。

还有一点就是它的时间上面来说,你可以拿一部分时间来自己去了解这一领域,或者说你去了解一些你觉得这一块的你想去了解的东西。在其他公司的话,你做项目会进入一种循环:你去做一个项目,做了以后要从开始到上线,去反馈问题,去修复问题。整个循环中间自己是没有时间可以自己去把控去思考的。

相对来说,你所有的时间要被压缩的很夸张,以后你就没有太多的时候去给你自己发挥,因为国内公司的导向性是很强的,你做的这个项目是客户的,导向性有什么问题,一定要赶快的去在这个问题上面给客户一个比较好的那种解决。相对来说,的确是没有太多的时间去实现一个更好的想法。

这就很少会给这种机会给你去尝试你想做的事情,通常来说,在国内的公司做的项目的时间就相当于已经是给你做了一个压缩了,本来可能需要三个月做的事情,它可能让你两个月就做好。那这个时候你要在做完的基础上,还想要在这个上面去做出一些你觉得应该更好的东西,或者说你可以去做的更好的点的话就非常难。

在他们这种团队里面工作的时候,在开项目的时候它会有一个整套的workflow的软件,你可以把所有的你的那些工作post到conference里面去,你也可以在里面讨论。

他们做一个项目,他就会有一个可以规划的类似于甘特图一样的那种project,你在那个上面可以很清楚的知道每个人现在做的项目是到哪个进度,别人做的是什么东西。我感觉在一些其他的公司是很难去有资源去给,在其他的公司你去开一个项目,上来就是先看技术栈,然后准备去对每个技术栈去分析,要指定这个技术栈,就准备钉一个大概时间,马上就开始开工了。中间出了什么问题,或者怎么做,那些细节的东西,都是做到哪看到哪个的阶段。

在中间去了解该怎么去处理这样的一个问题。真的是很不一样。你有一些多余的时间去看这个项目,思考一些问题的时候,还有包括他们去开这种项目的会议的时候,他可能也会是在那里面去激烈的去讨论。

他做的这块,他觉得别人的那块有一些问题,大家都可以相互去讨论和协商。在国内的那种晨会更多的是想告诉别人我做了很多事情,我做了什么事情,这些事情就是表现的你做了很多了,而在苹果里面可能是针对一些问题去分析的程度会更多一点。

在国内其实做项目你要做好的话,相当于你对这个项目你要从头到尾去跟各个方面的人去沟通。很多时候你要做好一个项目,别人可能不会把他们想跟你做的事情去做一个陈述,你要花成倍的时间在这个项目上面做一些额外的工作,你不光是说要了解你这一部分,你对他的那一部分也要有一点了解,这个时候你才能把你的项目做好,导致做一个项目的成本就会拉得比较高。

工作项目周期压缩了以后,只能每一个人都多做一点,这个项目才能真正的完成。那如果每一个人都少做一点的话。那这个项目就一定会问题很大。

但是你在苹果里面,他们做项目的时候每个人的项目周期都稍稍微多了一点点。那这多了一点点你本身做完的情况下,你还有多一点点时间去思考你做的这一部分跟其他部分的一些问题,这个时候你就可以花一点点时间去思考你这个项目上面你的不足,或者说思考你的问题,而不是说在国内做项目的时候,你是要把这一部分工作是带到家里面去做的这种感觉。

我补充一点文化差异的部分。在外企里面印度裔非常多,你跟印度裔的人去沟通的时候要去理解他们的一些想法跟文化,因为他们的一些想法跟真正的那种白人文化还是有一点不一样,他们可以跟你以一个就是相对比较平等的一个角度去看问题,而不是说把所有的事情你要自己去思考,他们可能也受到西方的一些文化的那种感染,他们会比较开放,把一些问题做的比较开放的那种,你可以在某一些问题上面可以提出你的想法,提出你的意见,不会说带有很大的成见。这一点是就是说你要能够理解到他们的那种想法。

印度人也比较能歌善舞,他们也比较活跃,你也可以在生活上面去沟通很多事情,他们对中国文化其实也是很感兴趣的。

国外的技术岗,首先他们在语言上面肯定是有要求,你肯定要英文要过得去,他们希望你的一些想法不会是仅仅是专注于技术,或者说代码本身,你要有一些自己的思考。在国内的话对你的技术,包括你的这些代码熟练程度才是最注重的。

而国内,就拿华为举例。华为的面试几乎每一个编程类的岗位都是要做ACM题。虽然它可能也是借鉴国外的那些公司,但我觉得还是有区别的,国外它的这种算法,他要去考这些算法,他不是说你一定要做出来的,他可能觉得他会去更多的是去了解你算法的思路,或者说你解决问题的思路。他会根据这个去衡量。但华为他们就可能没那么多时间去考虑这些问题,可能国内环境不一样,国内就是大把的人等着进大厂,所以说他也不在乎。

这就导致国内的这些写代码的,只能花很多时间去天天刷题,那你都花这么多精力去刷题了,你真正的处理问题,思考逻辑这种东西反而变得不是那么重要。

现在这种刷题的网站,我觉得不是每一个程序员都一定要去天天去刷这种ACM题,包括那些真正的做项目的大佬,他们也不一定会刷ACM的题目,我觉得肯定是不太现实的,因为你刷这个东西本来就要花大量的时间精力去研究,但这些东西在真正做项目的时候,很难去用到。

之前我就是跟我们公司的做算法岗位的同事关系很好,他是重庆理工毕业的,他当时在重庆理工拿到了ACM的奖项,但是真正他做的那些模块和功能,其实也不需要涉及到太多的ACM算法题知识点。我觉得哪怕是专业的算法工程师,对算法的需求程度也就是一般般而已,更别说其他的编程岗位了。我觉得就是这种刷题的文化带得有点偏了。

关于远程工作的体验,我觉得最大的挑战是如何将工作与休息时间有效区分。在远程工作中,由于时区差异和团队成员的时间不完全重叠,沟通往往超出传统工作时间,这使得工作与私人时间的界限变得模糊。而为了高效合作,我们需要协调并整合双方的工作时间,定期沟通,这点是远程工作的难点之一。

尽管如此,远程工作也有显著的优势,特别是在时间管理上。你能更高效地分配时间,集中精力处理工作任务,从而提升工作效率。这种高效的时间利用常常能带来更好的工作成果。

不过,远程工作的工作强度和时间投入并不会比办公室工作少。你依然需要投入足够的时间和精力去完成任务,尤其是在开发和项目推进中,远程工作并不会减少你的工作量。

是否选择远程工作,实际上与个人的职业阶段密切相关。对于刚入职或者刚毕业的同学来说,远程工作可能并不理想。因为在初期,工作中有许多新知识和技能需要通过团队合作和面对面的沟通来学习和掌握。而对于有多年经验的开发者,尤其是对项目、技术栈非常熟悉的人来说,远程工作就非常合适,因为可以更高效地规划时间,避免无效沟通,从而提升工作效率。

远程工作的适应性还与个人性格相关。有些人可能更喜欢办公室的氛围,认为团队的面对面交流更有动力;而另一些人则喜欢在家工作,可以灵活安排时间,并且享受更高效的工作方式。

我个人是比较适合远程工作的,因为我有海外求学背景,且从事过许多国外项目,这需要频繁的远程沟通。现在,我发现远程工作确实能更高效地利用时间,相比于公司环境中,避免了很多形式化的流程和时间浪费。我也能更灵活地使用自己的工作环境,随时准备好测试环境,提高了整体工作效率。

我觉得远程工作你要让别人了解你,你们的整个工作team相互之间能够了解。你要让别人能够了解你的优优点跟缺点,优势跟劣势,这个可能通过远程的方式会比较难,有些东西它能需要更多的时间去跟你去沟通,去增加一些信任感。

工作时间长了,你可能还是希望能够有些时候面对面的交流,有些时候的确是不可替代的。但是你如果是远程工作者,你应该在远程工作的时候让别人去更多的了解你,而不是说单单的关注于工作本身。因为只有别人了解你了,会更有利于这个项目的运行。

我觉得不同的项目可能不一样。有一些项目它会尽量的在工作时间来去做远程的事情,沟通的时间是尽量安排在工作时间。当然可能有一些远程的项目,它不是那么规范的话,那它就会更多的去要把你其他的时间都做一个分散,就是导致你的工作时间跟你的休息时间就变得非常模糊,的确是会有一些困扰。

但我觉得有一点就把远程工作当做正常的工作来去做的话也是没什么问题的,你只要把你的项目的工作内容能够在你的控制范围内做的比较ok的话,也是可以实现WLB的。

对于未来的规划,我更倾向于根据当前的兴趣和方向,做一些相关的工作。我认为规划和变化是并存的,我们无法预见一切,但我会尽力朝着自己感兴趣的方向发展。

随着经验的积累,我在项目把控方面有了更强的能力,能迅速推进项目,因此不再需要在办公室内浪费时间处理一些无关紧要的流程或无效沟通。未来,我更愿意通过远程工作来提升效率,避免一些形式化的工作内容,专注于高效地完成任务。

关于AI的发展,我认为它正在为程序员提供强有力的辅助,尤其是在加速和简化一些任务方面。AI已经可以在很多场景下帮助我们完成快捷的辅助工作,程序员不再需要在某些技术细节上纠结,而是可以专注于解决问题的思路和框架。例如,AI可以帮助我们快速实现某些代码逻辑,尤其是当你切换到新的编程语言时,AI能帮助你理解并实现新的功能,大大减少学习成本。

对于程序员来说,最重要的是具备创新的思维和想法。你要能够通过AI工具实现你的想法,快速验证思路,降低试错成本。过去,我们在验证一个算法时可能需要花费大量的时间和精力,而现在,AI能够迅速指出问题所在,帮助我们减少不必要的反复试错。

虽然目前AI的能力仍有限,特别是在一些高复杂度的任务上,它仍无法完全替代人的智慧,但作为辅助工具,它在很多日常工作中大有可为。比如,AI在控制、智能化以及数据处理方面的能力正不断提高,我们可以利用这些工具来帮助解决问题,提升工作效率。

未来,随着AI技术的进一步突破,我们可能会看到更为强大的工具和应用。因此,作为程序员,我们要不断学习和适应,深入了解AI工具的潜力及其局限,灵活运用这些工具,提升自己的工作效率,进一步推动自己的技术发展。

故事征集:

《开发者说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台。

欢迎大家推荐朋友或自己来参加我们的节目,分享与对话是一件利他又利己的事。

来源:LUCI全球hu

相关推荐