DEV Community

Cover image for Codebase is too large. Any tips on how you quickly understood existing codebase on your first job?
Ibrahim Alausa
Ibrahim Alausa

Posted on

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

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 full-stack role where the team uses React/Redux on the front-end and Laravel on the backend.

Where do I need help?

First, so far, I have always started all my projects on my own because I was using them for practice. Now all the coding tutorials and practice turned into a job and words cannot express how happy I am. Here's the challenge, There's an existing codebase I have to jump on, understand and contribute. I have been given 1 week to familiarize myself with everything and I'll be assigned a task on Monday, next week.

Second, I have only gone through tutorials and built minimal APIs with NodeJS and express but the team uses Laravel. I haven't worked with Laravel before now, so any advice, resources on building APIs with Laravel framework will be appreciated. They also use a TDD approach so I'll appreciate any advice and resource that can get me started on TDD with Laravel API.

Top comments (12)

Collapse
 
phaniteja1 profile image
Phani Teja Komaravolu

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!

Collapse
 
tosinibrahim96 profile image
Ibrahim Alausa

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

Collapse
 
arjunan profile image
sarjunan • Edited

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

Collapse
 
rhymes profile image
rhymes

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.

Collapse
 
tosinibrahim96 profile image
Ibrahim Alausa

Thanks rhymes

Collapse
 
tosinibrahim96 profile image
Ibrahim Alausa

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

Collapse
 
lightalloy profile image
Anna Buianova

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
Collapse
 
tosinibrahim96 profile image
Ibrahim Alausa

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

Collapse
 
grantstromgren profile image
Grant Stromgren

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.

Collapse
 
tosinibrahim96 profile image
Ibrahim Alausa • Edited

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

Collapse
 
buphmin profile image
buphmin

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.

Collapse
 
tosinibrahim96 profile image
Ibrahim Alausa

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