7

As a junior / mid level/ senior developer, how much time would you take to understand a large working codebase when you join a new company ?

Comments
  • 9
    Depends how large and how awful.
  • 8
    @Root I agree, I switched a year ago and there are still large swats of code I have never looked at.
  • 8
    I’ve been working at my current job for almost a year and I know, at best, 20% of the codebase.

    It’s a sprawling, tangled monstrosity.
  • 3
    Just sit and look at it?

    Not much, ain't nobody got time for that... (ok someone maybe does).

    Best way I've found is to go in and fuck it up and see what happens.
  • 2
    @Root I have probably dug into a bit more and have an overall understanding, mostly since I have jumped around quite a bit in different modules and suffer from a sever case of curiosity ;)
  • 1
    Someone said to go through all the source files and either automate scrolling through or do it by hand. Do not try to make sense of the code. Just let it scroll by. I think the theory is to get your sub processes in your brain to work on it in the background. I have been doing this, but I am not sure about the results. Anybody else do this?
  • 1
    Easiest way is if its compartmentalized and you get assigned to one.

    Then you can focus on learning that one well.

    Personally I like to know a lot more of the parts around to spot possible problems. But I know lots of people that are more content with clear boundaries :)
  • 2
    @Demolishun

    Not sure what you could get out of 'do not make sense of the code'...
  • 3
    @N00bPancakes When solving complex problems I will "state the problem to my mind" then "get out of the way" by working on something else. Later in the day my sub conscious will come up with an answer. Learning to use your sub processors in your brain is really useful.
  • 3
    @Demolishun for a really large code base I do mot think its viable.

    Same if its really convoluted or illogical.

    I would rather start with what its doing and try to follow one action path at a time.

    That gives you an understanding of that one and some overall structure through the stack.

    After a couple of such paths you should have some grasp on where different parts of functionality it located which makes further study easier since you can ignore paths you know are not part of the main logic.

    For example validation or logging, unless thats exactly what you should be working on.
  • 3
    @Demolishun I find a long bath is a good place to let the mind work.

    Not much to do and one if the few places where neither colleagues or children disturb :P
  • 0
    If the doc is good and you have someone to guide you, a week? At least for the part you are working on?
  • 0
    depends
  • 1
    @Rotten we have a different view of large ;)
  • 1
    @Voxera obviously large is subjective, true.
    But I never needed a holistic, deep understanding of the entire codebase.
    And if the part you are working on is well documented and the rest of your team is not also new to it....
    But yeah, maybe an underestimation
  • 2
    I use sematic mapping of the source code.
    As one who knows the way the code works - I try to explain the structure and logoc behind the diffrent component groups - not the specific code path.
    More of the large picture approach.
  • 0
    @Voxera Less for me due to not having a quiet work environment.
  • 2
    Forever
  • 0
    @Rotten I read the OP as “understand most of the code base”, why else specify large :)
  • 0
    @Root that’s unfortunate :/

    A to noisy workplace is a waste of talent.
  • 1
    Junior dev here. Three months in, I know like 25% of the newer stuff and 5% of the legacy part. Thr legacy part is a huge codebase and not very pretty, so I hope I can get by with this amount only doing some maintenance tasks.
  • 4
    @Voxera Home “office” (bedroom) with two small children and nowhere to go. 🙁

    Tickets take roughly five times longer because of this.
  • 1
    I am almost a year in a company and still discovering new piles of bolognese code that is hard to understand.
  • 1
    Thankyou everyone for sharing their experience. I am currently into day2 of my new job. the code base here is actually pretty good, with only about 5-10% legacy and rest of it uses latest languages , and frameworks. The trouble for me is its too new, like i am also 2 years before in the technology being used here. (eg : coroutines and graphQL being used whereas i almost always used executors and threads and REST)
  • 1
    @yowhatthefuck don't sweat if after one week you don't really know the code base. It really comes with experience of working with it.
  • 1
    It depends on whether even the existing devs understand the code base.
Add Comment