1

How to start on my project?

Profile picture
Entry-Level Software Engineer [E3] at Meta3 months ago

I just got my first project, and I have no idea where to start from and I have 2 weeks to complete the project. I have code pointers. How do I understand the codebase better to even start my project? I need the best actionable advice I can get right now

105
4

Discussion

(4 comments)
  • 1
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    3 months ago

    Rahul's advice is great - Another thing I recommend doing ASAP is to decompose the problem. For that, I recommend this specific lesson in my code quality course: https://www.jointaro.com/course/level-up-your-code-quality-as-a-software-engineer/break-it-down/

    2 weeks is a good amount of time, so I really doubt this task should be handled with just 1 diff. Try to break the task into 3-8 separate chunks, each of which corresponds to a diff.

    I don't know what team you're on, but for product teams, a standard diff stack looked like this:

    1. Add the experiment
    2. Make the model changes
    3. Implement the feature (and this would usually be split up into multiple diffs)

    If you have 0 idea how the codebase works, don't be afraid to ask someone to pair program with you and ELI5 the codebase: "How often do you pair program and what do you make of them?"

    • 1
      Profile picture
      Entry-Level Software Engineer [E3] [OP]
      Meta
      3 months ago

      Thank you Alex, I'm working on breaking if down and understanding the codebase

  • 0
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    3 months ago

    How to learn a new codebase fast:

    1. Start running the code ASAP. Add a log statement to observe when it gets hit and the state of the variables at that point. DON'T get stuck reading documentation about the language or codebase.
    2. Intentionally break things and understand how they break. Instead of incrementing something by one, increment it by two. Can you explain the result of that change? Understanding the current code is a prerequisite for making your code change.
    3. Land a low-effort code change quickly. Fix a spelling error, modify a comment, or add a unit test. It'll be easier to do your "real" work once you're familiar with the workflow of landing code (and you'll get a confidence boost!)

    How To Learn A New Codebase Fast: https://www.jointaro.com/lesson/DX27hiXPJ4G7Czk2mwLL/how-to-learn-a-new-codebase-fast

    I'd also recommend going through the onboarding course, in particular how to learn a codebase :)

    • 0
      Profile picture
      Entry-Level Software Engineer [E3] [OP]
      Meta
      3 months ago

      Thank you so much Rahul, I'm doing number 3 a lot, and it's helping me