新しい会社でコーディングを開始するのに必要な時間[終了]


12

私は4年間ソフトウェアエンジニアであり、初めて会社を変更したばかりです。

会社はペアプログラミングを使用しており、3日間で、1行もコードを書くことができませんでした。前の会社で非常に生産的だったので、私はとてもイライラしています。

コードベースは大きく、rspec、haml、jasmineなど、私がよく知らない5〜6個の言語/ツールを使用しています。それでも、私はひどい気持ちになります。

今週の週末、アプリケーションの理解を深めるために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、あなたの経験を共有してくれてありがとう。あなたは、絶対に正しい。これらすべてのことを学べるという保証はありませんが、試しています。最後に、すべての構文を一度に学ぶことは難しく、それも主な問題だと思います。私はその言語を知っているのでルビーコードでうまくナビゲートでき、ブラウザインスペクターのおかげでjsコードでナビゲートできるが、問題は私が知らないフレームワーク/言語で実際のコードを書くことです。


あなたが大規模なコードベースにどのように飛び込むのかについて言及したので、あなたのケースをカバーしていない答えは何ですか?
-gnat

3
ペアプログラミングであるため、生産性を高めるためにコードを記述する必要はありません。他の誰かがコードを書くのを観察するだけで、非常に役立つことがあります。すぐに自分でコードを書き始めるのに十分なことがわかるでしょう。
ケビンクライン

新しい開発者としての彼のペアリングが、彼は確かくそキーボードのいずれかである必要がある場合@kevinclineはそうでないことはかなり悪いペアの設定...だろう
ジミー・ホッファ

これが会社のやり方なら、本当に選択肢はありません。彼らがあなたが時が来たときに知ることを期待しているものを知っていることを確認してください。質問をする。反応を得ます。注意しないと、多くの時間を無駄にすることになります。
ジェフ

@JimmyHoffa、私はそれが私にとってより良いだろうことを知っていますが、その場合、私はピアをかなり遅くします。すべての構文、編集する必要がある実際のファイル、データモデルなどを尋ねる必要があるため、ピアの速度が低下します。
ロバートジョンソン

回答:


10

これは、システムの複雑さや、新しいプログラマーを採用するための組織の準備状況などに依存します。30分から数週間かかります。それは必ずしもあなたが間違っていることではなく、あなたがそれについて悪く感じるべきではありません。

しかし、あなたがすべきことは、自分自身や他の人のためにそれを修正することに積極的です。あなたの不満について上司に伝え、それらを克服し、他の新規採用のプロセスを改善するために協力してください。

あなたが苦労していることについてメモを書き、それらを修正または回避する方法をブレインストーミングし、プロセスを文書化します。他の人があなたの進行状況を最新の状態に保ち、助けを求めるようにしてください。助けを求めるのは恥ずべきことではありません。


1
複雑で大規模な(100万以上のSLOC)場合、複数月は珍しくありません。特に、ドメインもニッチおよび/または複雑です。
マッテンツ

1
+1:一部の企業では、特にこれらの理由でどれだけの経験があっても、新入社員にメンターを割り当てています。私はいつも私に最も近い人を助けて喜んで質問してくれます-そして、彼らが助けてくれるとき、私は彼らのマネージャーに公然と彼らをポン引きします。
スティーブンエバーズ

@mattnzうん。しかし、複数の月は複数の週の多くにすぎません。;)
Rein Henrichs

5

これは正常ですか?

ほとんどのコードベースではそうです。地獄、私の会社では、コンピューターに触れることが許可される前に2日間人事部と面談しています。それは外れ値ですが、開発環境のセットアップにかかる時間、ドメイン、コード構造、チームの規範に漠然と慣れるまでにかかる時間を考慮してください...

チームリーダーとして、1(2週間)のスプリントでは実質的に何もせず、次の1-2のスプリントでは約50%で作業することを期待しています。


2

私は2〜3の言語しか持っていない会社で働いていましたが、プログラマーがコードベースを解くまで1年、おそらく最初の行をコミットする1〜2か月前にかかったコード。

これらのプラットフォームに関する知識の欠如についてインタビューで正直だった場合、彼らは自分たちが何に夢中になっているかを知っていました。それには時間がかかり、時間を拡張したり、短くしたり圧縮したりすることはできません。最大限に活用してください。


1

それは本当にあなたがしている仕事とあなたがしている役割に依存します。

契約ベースの仕事をしている場合、文字通り、仕事を成し遂げるためにあなたが自由に使えるすべてのスキルを使用して、走り回ることが期待されます。契約作業は一般に明確に定義されており、少なくとも私の経験では、(通常)これを行うことができます。

一方、私は巨大な学習曲線を持つ巨大なレガシーコードベースを持っていた1つの場所から始めました。そこにいた最初の6か月間、製品コードを書くことは期待されていませんでした。

忍耐強く、できるだけ多くを吸収し、コーディングを開始するときに実用的に活用してください。入院患者や急いでいる場合は、特に大きなテストカバレッジではない場合、このような大規模なシステムで何かを壊すことになりかねません。


0

まったく馴染みのないものに慣れるには、ある程度の時間は絶対に普通です。自分を責めたり、気分を悪くしたりすることはありません。ただし、この仕事があなたのスキルセット内にない可能性を受け入れることをいとわないことが重要です。これは必ずしもそうではなく、可能性を心の中に残しておくだけの価値があります。

問題はコードベースのサイズではないかもしれませんが、関連する言語がわからないという事実です。私自身の個人的な経験では、かなり広範なコードベースで使用されている言語をまったく知らない会社で仕事をしていました。残念ながら、5か月ほど経ってもこれを十分に学ぶことができず、代わりに別の会社に行きました。そこで、私は第一言語に堪能であり、コードベースのサイズが同等であるにもかかわらず、私は非常によくやった。

新しい言語を学ぶことになると、人々は通常、実際よりも簡単だと思い、すぐに習得するという高い基準を守ります。予想よりも時間がかかる可能性が高いため、決定する内容に関係なく、そのことを念頭に置いてください。


2
一部の人々は、実際よりも難しいと考えています。多くの場合、才能よりも自信に帰着します。
ChaosPandion
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.