0:00
18:16
18:16

My Favorite Way to Learn a New Codebase

Tech

Augment Code is awesome for large codebases (try it out for free): https://www.augmentcode.com/?utm_source=forrestknight&utm_medium=youtube&utm_campaign=influencer I often have to learn new codebases, so I figured I'd share how I actually do it after years of chaos. And now that I have a bit of a method to my madness, hopping into an existing 100k+ line codebase is more so organized chaos. 0:00 overview 0:58 read the docs 3:42 poke around the codebase 4:12 make docs with augment code 5:26 use the software 6:02 quick recap 6:15 what code does a specific thing (a user interaction) 7:29 ask augment code to explain 8:55 mental model 9:08 official augment code integration 10:24 have teammates assign you tasks 11:05 if no teammates, have augment code make a task for you 12:28 write tests for the codebase 12:43 recap 12:58 pair programming 14:16 take notes 14:41 don’t only casually learn the codebase 15:26 rinse and repeat 16:26 contribute to docs 16:48 understand the domain 17:30 understand why we’re building something and completing a specific task 17:51 teach it If you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/ If you're a student, checkout my Notion template Studious: https://notionstudent.com Don't know why you'd want to follow me on other socials. I don't even post. But here you go. 🐱‍🚀 GitHub: https://github.com/forrestknight 🐦 Twitter: https://www.twitter.com/forrestpknight 💼 LinkedIn: https://www.linkedin.com/in/forrestpknight 📸 Instagram: https://www.instagram.com/forrestpknight

ADVERTISEMENT

Comments 35

Sign in to join the conversation

Sign in
L
lauragallegos937 3 weeks, 5 days ago

I'm entering my 3rd year working to become a software developer through college, and I'm being held back a lot by overthinking. I have the drive, interest, and commitment, yet I overcomplicate every task including small things like learning codebases or even learning new languages. I take a lot of initiative and have even had the privilege of being paid through one of my professors' research program funds to work as a contribute to an open source project, but I keep everything and I'm really struggling to make the most of the opportunity. I have about 5 weeks left (paid anyway). I'd really love if anyone who has gone through anything similar could offer any advice because I keep hearing that my habit of overthinking is my greatest strength but also by greatest weakness. I'm really looking forward to becoming a skilled software developer, but the sooner I overcome this barrier the better.

W
william_grant 1 month, 2 weeks ago

Man wtf, this was and add

J
jayeden68 1 month, 3 weeks ago

Why does the video look motion smoothed?

L
leon_rogers 5 months ago

1. Architectural diagrams. Communication diagram first. If it doesn't exist, work with teammates that know enough to make one. 2. Ask QA for a walkthrough. That's their playground. They at least know the application, maybe not the code but it is a start.

G
garry.hayes 5 months, 1 week ago

yeah i feel so smart right now

J
jacquelinesanchez870 5 months, 2 weeks ago

Just an affiliate link for augment code. God I miss the internet before AI. Rip to juniors trying to learn the fundamentals without using this AI crap.

S
shawnbird242 6 months ago

Any idea on Codebases like C++??? Especially large codebases like GCC or something like Blender .?

irene.humphries
irene.humphries 6 months, 2 weeks ago

I love how this starts out because I agree I prefer to read documentation first.... but I keep getting unlucky where the codebase I have to learn has either no documentation or might as well not have any so I have to learn it the hard way anyways.

R
rebeccareynolds895 7 months ago

I just watched 18min fckn 3th party software add

A
angela_rodriguez 9 months, 1 week ago

Most important I feel is to get it to run locally and start sending requests to your local instance. Then debug and be able to see the program in action and examine at will!

B
bryanmyst97 9 months, 1 week ago

Awesome

M
martinemarion431 9 months, 3 weeks ago

u make development sound interesting and ur real world examples are top notch thanks for your efforts

M
matthewjimenez802 11 months ago

I was using augment exactly for this. I work on open source crypto wallets. But cursory now gives me similar functionality so I stayed with it. I can do most of the same exporing

R
rebeccareynolds895 11 months, 2 weeks ago

Should've had some sort of laughing track in the background at the start of "read the docs" section and fast skip to other ways of learning it as there's barely ever some even ok docs for a project.

lakshmiatlas43
lakshmiatlas43 11 months, 4 weeks ago

What theme and all do you use for VSCode?

utkarsh.kalita
utkarsh.kalita 11 months, 4 weeks ago

Good advice. I've had a lot of practice doing contract work on existing code bases. A pet peeve of mine is programmers who make changes without understanding how the code they are changing may affect dependent code, either directly or indirectly. Your comment about teaching is something I've said for years. If you can explain it in simple terms, then you understand it. If you can't explain it in simple terms, then you don't understand it well enough to teach it. I've gained valuable insight by explaining a concept, at a high level, to someone who has no experience in what I do. They'll say something like, I understand, why don't you try this. At which point I say something like, you're right, why didn't I think of that. It's like not seeing the forest for the trees issue.

C
christopher_moon 1 year ago

Great video!

lakshmiatlas43
lakshmiatlas43 1 year ago

What do you mean unfortunately 😅, yarn is dope

L
leon.mohaupt 1 year ago

Security note! Read the committs too if you can and see if there's any malicious code so you don't run it on your machine! Don't want another xz incident. 😎

M
melissa_haynes 1 year ago

Most important video for a developer