Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
reversefungi
Nov 27, 2003

Master of the high hat!

Munkeymon posted:

Or just find the shortcut configuration that makes it work like Atom - editors are mostly fungible that way.

Along this line, is there a way to get Visual Studio to use the same keyboard shortcuts as Visual Studio Code, outside of manually setting them up one by one? I use both a lot at work and it's getting frustrating having to juggle shortcuts between the two.

Adbot
ADBOT LOVES YOU

ChickenWing
Jul 22, 2010

:v:

jetbrains good, do a jetbrains

incredibly not hot take: writing wrapper classes is the worst and makes me want to die

e: and that's with maximum use of autogenerated code

Taffer
Oct 15, 2010


ChickenWing posted:

jetbrains good, do a jetbrains

the most correct of all opinions

geeves
Sep 16, 2004

ChickenWing posted:

jetbrains good, do a jetbrains

I just hope Jetbrains brings in live code sharing / programming.

I won't switch to VS Code full time, but I will to program with my coworkers.

ChickenWing
Jul 22, 2010

:v:

Good feels: getting maximum caffeine and some good music and crushing a bunch of backlog in an afternoon :c00lbert:

Pollyanna
Mar 5, 2005

Milk's on them.


ChickenWing posted:

Good feels: getting maximum caffeine and some good music and crushing a bunch of backlog in an afternoon :c00lbert:

You're working on Thanksgiving? :(

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

Pollyanna posted:

You're working on Thanksgiving? :(

Proper Thanksgiving already happened 2 weeks ago. :canada:

ChickenWing
Jul 22, 2010

:v:

Skandranon posted:

Proper Thanksgiving already happened 26 weeks ago. :canada:

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me
:( no wonder my kids didn't call...

ChickenWing
Jul 22, 2010

:v:

Client is deploying our newest release today.


At 7pm.


This is a major release.


It's also been buggy as hell.


I'm on incident management this weekend.


:shepicide:

ChickenWing
Jul 22, 2010

:v:

what's the ritual to ward against Sev 1s?

Virigoth
Apr 28, 2009

Corona rules everything around me
C.R.E.A.M. get the virus
In the ICU y'all......



ChickenWing posted:

what's the ritual to ward against Sev 1s?

Light all the fingers on your Hand of Glory.

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

ChickenWing posted:

what's the ritual to ward against Sev 1s?

Appendicitis

Pollyanna
Mar 5, 2005

Milk's on them.


What’s a reasonable expectation for how long it takes to get used to a codebase? Although it’s nice to think of someone being able to submit a bugfix and PR on the day they start, that’s not always the case, and I personally still don’t feel like I have a good grasp on how the systems work with two days under my belt. Is this normal, or do I need to pick up the slack?

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...
It depends on how complicated the system is and how complicated the change is. There's no good answer.

sarehu
Apr 20, 2007

(call/cc call/cc)
It definitely takes only one day. You're falling behind and people on the street who stare at you when you aren't looking can tell.

Clanpot Shake
Aug 10, 2006
shake shake!

The codebase at my last job was extremely complex and my manager flat out told us (me and the other guy who started the same day) she expected us to be useless for 6 months.

LLSix
Jan 20, 2010

The real power behind countless overlords

Pollyanna posted:

What’s a reasonable expectation for how long it takes to get used to a codebase? Although it’s nice to think of someone being able to submit a bugfix and PR on the day they start, that’s not always the case, and I personally still don’t feel like I have a good grasp on how the systems work with two days under my belt. Is this normal, or do I need to pick up the slack?

I don't usually expect new hires to be a net benefit for the first 6-12 months depending on how complicated our environment is. The first few days are usually spent on setting up your computer(s) and work area. I wouldn't worry about someone not getting anything done in the first two days. Don't slack off, but don't feel bad about taking a few days to get your feet under you. If you feel like you're stuck, definitely ask your coworkers for help, but as long as you're making progress I wouldn't worry about not having something ready to submit yet.

Shoot, most of my office took the whole week off for Thanksgiving (USA). So if you got anything at all done last week you're ahead of curve.

Pollyanna
Mar 5, 2005

Milk's on them.


Well, I’ve already got 5~6 bugs assigned to me and I’m not sure what their expected fixby date is, is why I ask. I’ll clear it up with the team.

My experience is basically the same, a codebase takes on the order of months to truly understand, I’ve found. I hope that’s well understood by the entire industry...

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

Pollyanna posted:

What’s a reasonable expectation for how long it takes to get used to a codebase?

As long as it takes to re-write it.

Pollyanna
Mar 5, 2005

Milk's on them.


Skandranon posted:

As long as it takes to re-write it.

:gonk: I’ve learned by now not to beat the “flatten and redo” drum as soon as I get hired. A re-write is not that trivial...though the insights that come from attempting one can be valuable.

Skandranon
Sep 6, 2008
fucking stupid, dont listen to me

Pollyanna posted:

:gonk: I’ve learned by now not to beat the “flatten and redo” drum as soon as I get hired. A re-write is not that trivial...though the insights that come from attempting one can be valuable.

You've learned the wrong lesson. You need to play a better tune, not put the drum down.

https://medium.com/feature-creep/the-software-engineer-s-guide-to-asserting-office-dominance-ddea7b598df7

geeves
Sep 16, 2004

Pollyanna posted:

What’s a reasonable expectation for how long it takes to get used to a codebase?

Well, I’ve already got 5~6 bugs assigned...
I have been at my company for 7 years and don't know the entire codebase.

I don't think it's time frame but more, "Hey Random Coworker, I have this bug, and getting used to the codebase and where everything is, can you point me in the right direction?" Then with a good IDE, you can go anywhere that file is affected.

Maybe look at the jira history and see who was assigned to it before you and ask them? Once you find the files, the git annotate could help you more.

Doom Mathematic
Sep 2, 2008
It shouldn't be necessary to understand the entire codebase in order to fix any single bug.

Doom Mathematic
Sep 2, 2008
And if you were paired up with an experienced programmer from your new team, then you - as a pair - would be productive immediately. Just saying.

Pollyanna
Mar 5, 2005

Milk's on them.


Doom Mathematic posted:

It shouldn't be necessary to understand the entire codebase in order to fix any single bug.

Code can turn into a ball of spaghetti reaaal easily...

Doom Mathematic posted:

And if you were paired up with an experienced programmer from your new team, then you - as a pair - would be productive immediately. Just saying.

Ideally, yes, but this is a small company that has to move quickly, and they’re focusing on getting things out the door. Still gonna be taking people aside when they’re available, of course.

geeves
Sep 16, 2004

Pollyanna posted:

Code can turn into a ball of spaghetti reaaal easily...


Ideally, yes, but this is a small company that has to move quickly, and they’re focusing on getting things out the door. Still gonna be taking people aside when they’re available, of course.

There's a difference between a company moving quickly and moving incorrectly.

Doom Mathematic
Sep 2, 2008
A good way for a company to move quickly is to spend time bringing their new developers up to speed, rather than leaving them spinning their wheels for six months plus.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Doom Mathematic posted:

It shouldn't be necessary to understand the entire codebase in order to fix any single bug.

Right, but sometimes bugs are indicative of a larger design problem. Like for instance, we had a class that would propagate the effects of an operation to other views on the same screen that contained similar data. A class "propagation handler" sprung up that was full of awful procedural code that would iterate through everything on the screen and try to find the entities that were similar. Offshore just kept hacking that class until it worked - however, the underlying cause of the problem was that the cardinality of the relationship between the data and the view was inappropriate, and that they were doing procedural-style copying the data to the view rather than having all the views point at the same underlying data, which is loving stupid.

The point is that when doing maintenance work, you need to do a second-level "why" - too often you throw an inexperienced (or even an experienced) developer at a large project, and they just fix the bug. I made a mistake as a lead because I saw there were a bunch of bugs related to propagating operations, but I was busy and didn't own that area of the code, and now I have a loving mess on my hands.

If you work with large codebase long enough, being able to detect issues like these and mentally fill in the relationships between the classes yourself (don't work off the diagrams, they're all bullshit) will greatly accelerate your ability to contribute. But don't just fix the bug, figure out the cause of the bug and the cause of the cause.

Pollyanna
Mar 5, 2005

Milk's on them.


Bruegels Fuckbooks posted:

Right, but sometimes bugs are indicative of a larger design problem. Like for instance, we had a class that would propagate the effects of an operation to other views on the same screen that contained similar data. A class "propagation handler" sprung up that was full of awful procedural code that would iterate through everything on the screen and try to find the entities that were similar. Offshore just kept hacking that class until it worked - however, the underlying cause of the problem was that the cardinality of the relationship between the data and the view was inappropriate, and that they were doing procedural-style copying the data to the view rather than having all the views point at the same underlying data, which is loving stupid.

The point is that when doing maintenance work, you need to do a second-level "why" - too often you throw an inexperienced (or even an experienced) developer at a large project, and they just fix the bug. I made a mistake as a lead because I saw there were a bunch of bugs related to propagating operations, but I was busy and didn't own that area of the code, and now I have a loving mess on my hands.

If you work with large codebase long enough, being able to detect issues like these and mentally fill in the relationships between the classes yourself (don't work off the diagrams, they're all bullshit) will greatly accelerate your ability to contribute. But don't just fix the bug, figure out the cause of the bug and the cause of the cause.

Yeah, this. Just fixing the bug isn’t enough, I need to also understand what’s going on behind the scenes and why so I can 1) not make a similar bug down the line and 2) advocate for improvements to the system. That takes a good bit of time and effort, though, hence the friction.

necrobobsledder
Mar 21, 2005
Lay down your soul to the gods rock 'n roll
Nap Ghost
It primarily depends upon number of lines of code - number of tested lines of code with a multiplicative factor depending upon how well architected the codebase is (most places simply aren't architected even if you have 4+ people with architect titles around). It's easy to figure out how things are supposed to work if you have a bunch of tests explaining how things should work. In the absence of tests, you wind up doing a lot of reverse engineering.

Even for a small company I have to emphasize that moving faster means working slower and more deliberately.

redleader
Aug 18, 2005

Engage according to operational parameters

Pollyanna posted:

Yeah, this. Just fixing the bug isn’t enough, I need to also understand what’s going on behind the scenes and why so I can 1) not make a similar bug down the line and 2) advocate for improvements to the system. That takes a good bit of time and effort, though, hence the friction.

You've been at your new place for what, a week? No one's expecting you to take ownership of fixing deep architectural flaws or whatever. Calm down, take your time, learn by doing. You'll pick up the problems in the codebase organically - and don't assume that the other devs are unaware of the issues.

KoRMaK
Jul 31, 2012



Pollyanna posted:

What’s a reasonable expectation for how long it takes to get used to a codebase? Although it’s nice to think of someone being able to submit a bugfix and PR on the day they start, that’s not always the case, and I personally still don’t feel like I have a good grasp on how the systems work with two days under my belt. Is this normal, or do I need to pick up the slack?

Just some meta feedback about some of your posts in here, but they frequently seem to ask questions that can't be objectively answered. You should talk to your team about those kind of things, instead of internet people. Your code base could be arbitrarily complicated or simple, we would have no idea.

Main Paineframe
Oct 27, 2010

Bruegels Fuckbooks posted:

Right, but sometimes bugs are indicative of a larger design problem. Like for instance, we had a class that would propagate the effects of an operation to other views on the same screen that contained similar data. A class "propagation handler" sprung up that was full of awful procedural code that would iterate through everything on the screen and try to find the entities that were similar. Offshore just kept hacking that class until it worked - however, the underlying cause of the problem was that the cardinality of the relationship between the data and the view was inappropriate, and that they were doing procedural-style copying the data to the view rather than having all the views point at the same underlying data, which is loving stupid.

The point is that when doing maintenance work, you need to do a second-level "why" - too often you throw an inexperienced (or even an experienced) developer at a large project, and they just fix the bug. I made a mistake as a lead because I saw there were a bunch of bugs related to propagating operations, but I was busy and didn't own that area of the code, and now I have a loving mess on my hands.

If you work with large codebase long enough, being able to detect issues like these and mentally fill in the relationships between the classes yourself (don't work off the diagrams, they're all bullshit) will greatly accelerate your ability to contribute. But don't just fix the bug, figure out the cause of the bug and the cause of the cause.

Hopefully they aren't assigning those kinds of bugs to the new guy who's only been there two days. I mean sure, sometimes you find a bug that's down to a fundamental limitation of the design of the systems involved and one or more will have to be largely rewritten. On the other hand, sometimes you find a bug that's just a typo, or someone forgetting to account for a potential state, or something like that - and those kinds of bugs are great for learning how various parts of the codebase work. Nothing will teach you the codebase as fast as getting in there and actually working with it. If Pollyanna's team has any sense at all, they're assigning them minor bugs that aren't expected to have major implications, and I'd expect them to open to explaining bits if Pollyanna runs into something they suspect might have major effects.

Only lovely idiots expect someone in their first week on the job to have a comprehensive understanding of the codebase already. Their job is to work around that, assigning small stuff that gets you poking around without requiring a pre-existing knowledge of how everything ties together. I mean, it's possible that the new co-workers are lovely idiots who honestly expect you to go mucking around in deep architectural issues on day 1, but that's not your fault. Either way, that's no excuse to sit around spinning your wheels - learn by doing and ask for help if you need it.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

KoRMaK posted:

Just some meta feedback about some of your posts in here, but they frequently seem to ask questions that can't be objectively answered. You should talk to your team about those kind of things, instead of internet people. Your code base could be arbitrarily complicated or simple, we would have no idea.
A thousand times this. So many of your questions or concerns could be addressed by just *talking to people*. Maybe it's easier because you're remote now and the barrier may be a bit lower? It's kinda like writing on SA except with people that know the codebase :)

Doom Mathematic
Sep 2, 2008
This is why I say that a newcomer should be paired up with experienced existing team member. I don't think pair programming is a panacea or even generally a good way to code, but in this case it is 100% the way to go. Nobody benefits from a newcomer struggling along by themselves. It's a waste of everybody's time.

ChickenWing
Jul 22, 2010

:v:

100% talk to people. Not only is this the best way to get the information you need, it's also the best way to get to know your coworkers

Pollyanna
Mar 5, 2005

Milk's on them.


Talking to people is the exact reason I’m in Cali for the week. :) I getcha, though...I’ve actually found it a little harder to talk to other employees when remote, but maybe that’s just a matter of getting used to it.

And yeah, it’s very subjective. I guess what I’m asking is more for what other people’s experiences have been.

CPColin
Sep 9, 2003

Big ol' smile.
Be careful saying "Cali" around Californians; some of them may get offended. (Like me! How dare you!)

Adbot
ADBOT LOVES YOU

Mniot
May 22, 2003
Not the one you know
"Commit code on your first day" is not a goal for new developers; it's for the existing ones. If a new person can make a non-breaking change to the code on the first day, then it implies that you're keeping things pretty clean. You can use "how long does it take a developer to get productive on your code-base?" as an interview question to try to avoid companies with lovely code, but I think there are code-bases that I'd enjoy working on that are just more difficult to comprehend than a half-day of skimming well-written code can get you.

You should ask your boss, "when do you expect me to be able to fix mid-sized bugs without any help?" to get an idea of their expectations. And your boss should be telling you those expectations without being prompted.


Pollyanna posted:

I've actually found it a little harder to talk to other employees when remote, but maybe that's just a matter of getting used to it.

No, you will not get used to it. It's difficult and massively important. You should consider a kitchen timer or something to enforce not spinning your wheels on a problem: after 10 minutes of trying to solve it solo, go looking for help. With remote work, you need to figure out how to ask for help. I do like this

1. Direct-message to the person I think would know best, or skip this if I'm not sure
2. Message in group-chat
3. Direct-message to my boss, saying I'm stuck on this thing
4. Message in group-chat with some more things I've tried while waiting and an @here
5. Message in group-chat saying that I'm giving up and moving to something else for now

If I get a hold of someone and it's not completely trivial, I usually switch to voice-chat. If I don't get a response from anyone I'd probably escalate through those steps in 20-60 minutes depending on how much progress I feel I can make banging my head. When I started and was totally unfamiliar with the code I'd give 15 minutes from first asking for help to giving up.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply