在新公司开始编码所需的时间[关闭]


12

我是一名软件工程师已有4年了,而我只是第一次更换公司。

Company使用结对编程进行工作,已经有3天了,我什至无法编写一行代码。这让我感到沮丧,因为我在以前的公司工作效率很高。

代码库很大,他们使用的是我不熟悉的5-6种语言/工具,例如rspec,halm,jasmine等。但是,我仍然感觉很糟糕。

这个周末,我创建了UML以更好地了解应用程序,但是我仍然猜想我本周将无法编写大量的代码。

这正常吗?

当您换工作并潜入使用不熟悉的语言/库编写的大型代码库时,您会有什么经验?

当然,我并不是在要求确切的时间,但是过去的经验或完成该过程的东西会很棒。

顺便说一句,我已经阅读了以下问题与解答, 如何进入大型代码库?

/programming/215076/whats-the-best-way-to-become-familiar-with-a-large-codebase

/programming/214605/the-best-way-to-familiarize-yourself-with-an-inherited-codebase

更新

所有很棒的建议!我刚下班,我干了很多工作!

关于结对编程:

通常,他们编写代码,而我力争不错过任何一秒钟!如果我尝试编写代码,我知道这将永远花光,因为我什至不知道应该编辑哪些文件,但是除此之外,正如我所说,它们使用的是6-7种语言/框架,熟悉并同时学习所有这些语法并非易事。

公司为工程师准备的情况:

我不能说他们组织得很好,他们有点希望我立即开始编写代码。

做笔记,积极主动:

当他们编写新命令/或任何有关数据模型的内容时,我总是记笔记。我的同龄人非常聪明善良,我想问很多问题,有时甚至是愚蠢的问题

这很常见吗?:

@Telastyn,感谢您的回答,这让我感觉好一些。看来我的问题并不少见,但是在我从事这项工作之前我确实很有生产力,现在我真的觉得自己没用,也不聪明。

我希望我能尽快开始解决错误/实现问题。

关于他们使用的框架/语言:

我真的很诚实,我没有说我知道我实际上不知道的东西。但是我没想到会有那么多不同,而且自从我接受报价的那一天开始工作以来,我没有时间做准备。

@Southpaw Hare,非常感谢您分享您的经验。你是绝对正确的。无法保证我将学习所有这些知识,但我正在尝试。最后,很难一次学习所有语法,我认为这也是主要问题。因为我知道该语言,所以我可以很好地在ruby代码中导航,而且由于浏览器检查器的帮助,我可以在js代码中导航,但是问题是使用我不知道的框架/语言编写了实际代码。


既然您提到了如何深入大型代码库?,那里的答案没有涵盖您的情况?
t 2013年

3
由于您是结对编程,因此无需编写代码即可提高工作效率。仅观察他人编写代码,您可能会非常有用。很快,您将了解到足以开始自己编写代码的知识。
凯文·克莱恩

@kevincline,如果他要与新开发人员结对,他应该确保自己是键盘上的那个,否则那将是一个非常糟糕的结对设置……
Jimmy Hoffa 2013年

如果这是公司的工作方式,那么您真的别无选择。确保您知道他们期望什么时候来。问问题。得到反馈。如果不小心,可能会浪费很多时间。
JeffO

@JimmyHoffa,我知道这对我会更好,但是在那种情况下,我会使我的同伴慢很多。由于我必须询问所有语法,需要编辑的实际文件,数据模型或其他内容,因此它会降低我的同伴的速度。
罗伯·约翰逊

Answers:


10

这取决于诸如系统的复杂性以及组织准备好迎接新程序员的能力。这可能需要30分钟到数周的时间。这不一定是您做错了什么,也不应该为此感到难过。

但是,您应该主动为自己和他人修复它。告诉您的经理您的挫败感,并共同努力克服这些挫败感,并改善其他新员工的工作流程。

写一些关于您正在苦苦挣扎的事情的笔记,集思广益地解决问题或解决问题,并记录您的过程。让其他可以帮助您的人了解您的进度,并寻求帮助。寻求帮助没有什么可耻的。


1
对于复杂,大型(超过100万个SLOC)而言,多个月并不罕见,尤其是该域也属于利基市场和/或复杂环境。
mattnz

1
+1:由于这些原因,无论他们有多少经验,有些公司都会将导师分配给新员工。我总是吸吮那些最愿意帮助我的人,并愿意向他们询问一些问题-然后,当他们帮助时,我会公开地向他们/我的经理推销。
史蒂文·埃弗斯

@mattnz是的。但是,数月只是数个星期。;)
Rein Henrichs

5

这正常吗?

对于大多数代码库而言。地狱,在我公司,您正在与人力资源部开会两天,然后才可以触摸计算机。这是一个离群值,但请考虑建立开发环境,模糊地熟悉域,代码结构,团队规范需要花费多长时间...

作为团队负责人,我希望您在1个(两周)冲刺中什么也不做,而在接下来的1-2个冲刺中以〜50%的速度工作。


2

转到另一个极端。我在一家只有2-3种语言的公司里工作,但花了一年的大部分时间才让程序员松开代码库,大概是一两个月之后才提交他们的第一行代码。码。

不要为自己而战,如果您在采访中说实话,您对这些平台的知识不足,他们就会知道自己正在投入什么。这需要时间,并且时间无法扩展,缩短或压缩,只需确保充分利用它即可。


1

这实际上取决于您正在做的工作和所担任的角色。

如果您正在执行基于合同的工作,那么您将真正使用所有可用的技能来完成工作。合同工作通常定义明确,至少根据我的经验,您(通常)能够做到这一点。

另一方面,我是从一个地方开始的,这个地方拥有庞大的遗留代码库和巨大的学习曲线。我们没想到在那的头六个月会写生产代码。

要耐心,尽可能多地吸收知识,并在开始编码时充分利用它。如果您住院或急诊,那么在如此大型的系统中很有可能会破坏某些功能,尤其是在其测试范围不够出色的情况下。


0

为了适应如此完全陌生的东西,一定的时间是绝对正常的-我不会怪自己或感到难过。但是,重要的是要愿意接受这项工作可能不在您的技能范围内的可能性。不一定是这种情况,值得将可能性留在您的脑海中。

问题可能不在于代码库的大小,而在于您不了解所涉及的语言。以我自己的亲身经历,我在一家公司工作,我不知道在相当广泛的代码库中使用的任何语言。不幸的是,大约5个月后,我再也无法学到足够的知识,而是去了另一家公司。在那儿,我精通主要语言,尽管代码库大小可比,但我做得还不错。

在学习新语言时,人们通常认为它比实际要容易,并且坚持以高标准快速学习它们。这可能会使您花费比预期更长的时间,因此无论您做出什么决定,都请记住这一点。


2
有人认为这比实际困难。很多时候,这取决于信心而不是才华。
ChaosPandion
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.