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
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.
Man wtf, this was and add
Why does the video look motion smoothed?
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.
yeah i feel so smart right now
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.
Any idea on Codebases like C++??? Especially large codebases like GCC or something like Blender .?
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.
I just watched 18min fckn 3th party software add
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!
Awesome
u make development sound interesting and ur real world examples are top notch thanks for your efforts
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
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.
What theme and all do you use for VSCode?
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.
Great video!
What do you mean unfortunately 😅, yarn is dope
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. 😎
Most important video for a developer