Codebase is too large. Any tips on how you quickly understood existing codebase on your first job?

Ibrahim Alausa on March 19, 2019

Yesterday was the beginning of a new chapter in my career. I was given a warm welcome by the team I'll be working with on my first job. It's a fu... [Read Full]
markdown guide
 

Congratulations! I've been in the exact same situation multiple times. Starting out with my first job, I had to understand a huge Android code base. Here are some of my tips for starting out:

1. Holistic Approach

Don't try to understand each and every line of code in the code base. Rather try and spend time on understanding what each module does, in general.

2. Issue-based learning

Your initial learning should be issue-based and not project-based because it takes a long time to understand the entire project. Take up the issue assigned to you and start with that function/file/module. It'll start to make sense and not drive you crazy.

3. Spend time learning the technology

Take a little time everyday to keep getting better at Laravel. This will help you solve issues faster and better. It takes time

4. When stuck, talk to peers/superiors

When I started out, the mistake that I made is that whenever I was stuck I didn't ask for help. The point that I learnt is that, there are a lot of factors that you might not know, that caused the problem (like admin accesses, firewall issues, database configs, deployment permissions, VPN issues, etc.)

All the very best!

 

Yeah!!!...thanks a lot for taking the time to give such details..Really appreciate the advice

 

Personally, I found out that it's easier to get familiarized with a project while just working on real tasks.

However, I have some suggestions to get some initial knowledge:

  • get the general information about the main project purposes and features from the team
  • great that they use TDD, tests also serve as documentation, so I recommend inspecting the tests
  • look at the code structure, find out how the main features work
  • trying to refactor parts of the app can also help to understand it better
 

Thanks, Anna. I'll definitely look at the tests for a better understanding.

 

Congrats, Here are my suggestions.

  • Understand the whole flow of application and just play around.
  • Try to debug code as much as possible and make a note of important areas.
  • Take a look at version control history. Most of the developers would have mentioned what the check-in is all about.
  • Don't be shy to ask questions to developers.

Take a look at below tutorials

 

I'd add: read the tests, they document how the various parts of the code work. If you're unsure how a method or a part of the code base works, try to read its test.

 
 

Thanks so much, @sarjunan...I really appreciate your advice. I'll check out the tutorials

 

I used to work quite a bit in PHP and it's frameworks a while back. I found laracasts.com/ a great resource to learn more about Laravel itself.

It's a subscription payment system, but you can probably consume enough of it in just one month to just get the basics.

One week is a fairly short amount of time to familiarize with the code base, especially if it's a decent size. That being said, your first task will (or should) be fairly nominal. Just start looking at how the front end is structured and pick up a few things from Laracasts, you should be on your way.

And of course once you do get your task, if you need help be sure to ask.

 

Wooow...Thanks, Grant. I just checked out the link...It's like a Laravel encyclopedia...Thanks so much

 

Good job! I can relate with being a bit overwhelmed. At my current job I walked into 10 years of custom PHP code with no documentation.

For you I would take a peak at the Laravel and React docs, then build a simple website with a few pages that accesses a database just to get a feel of how Laravel works. After that dive into the company's code and see what is going on, and how others have coded. Try and get a big picture idea of what the code is doing so that you can start making changes.

As far as TDD, the big thing is practice. Look up some tutorials and practice testing some more trivial functions. Strict adherence to TDD may or may not work well for you, but having tested code is very good. Either way it takes practice.

Good luck, and keep at it.

 

Thanks for this great advice @buphmin ..I'll try to build a small project that consumes an API..I think that would help a lot. Once again..thanks

code of conduct - report abuse