ย #NewGrad #FirstJob #LegacyCode #ReactNative #MobileAppDeveloper
Hey friends! ๐ As a fresh graduate who recently started my career as a mobile app developer using React Native, I’m facing a bit of a tough situation. I’ve been thrown into the deep end with three massive legacy codebases to understand and update, and the senior developer who built them is no longer around to guide me. ๐
I’ve tried debugging, code review tools, and online resources, but I’m still feeling lost in the sea of code. ๐ I would love to hear from experienced developers who have been in a similar boat:
– How did you approach understanding legacy codebases?
– What tools and resources did you find helpful?
– How did you prioritize tasks and manage your time effectively?
– Any tips for communicating with my manager about progress and challenges?
I’m open to any advice, tips, or tricks you have to share! ๐ Let’s help each other out and grow together. One solution that I’ve found helpful is to start by documenting the codebase’s architecture and making small, incremental changes to understand how things work. It can be overwhelming at first, but breaking it down into smaller tasks can make it more manageable. ๐๐ฉโ๐ป #CommunityAdvice #CodebaseNavigation
As a company hiring fresh graduates, your company should be expecting these kinds of questions from you and proactively guiding you on these to become a more effective developer. If they are not, or are leaving you to fend for yourself, strongly consider looking for new employment. This sounds like you’re either being set up for failure or the company is extremely poorly managed — or they are hoping to overwork fresh grads to try to balance out their financial sheets
Were you given any meaningful mentorship to turn to, documentation, or aid?
Iโve got no advice but man that does not sound fun as a new grad.
๏ผHow did you approach understanding legacy codebases?
Playing around Unit test classes/codes is the easiest way imo.
Mobile app codebases can be so fucking annoying if they were left unchecked.
You should first figure out the design patterns used in the codebase. I’m not sure if you have any React experience so maybe you’ll be starting out learning these from the ground up. Just google “React Native design patterns” and start reading.
I would then probably spin up the simulator and start changing the code on a local branch like a deranged psycho. Every time you hit save you should see the changes reflected on the screen – this is called hot reload. It’s the best way to see exactly what the fuck is going on. Pretend you’re a mechanic and you’re taking apart a car engine, and seeing what breaks when you change things.
If you are struggling with architecture, whip out [draw.io](http://draw.io) and start drawing diagrams of your codebase. There’s different types of diagrams – draw them all. These are for you to understand what’s going on, they don’t have to be pretty and they don’t have to make sense to anyone else.
Timebox a chunk of time everyday for all of the above activities on top of your normal work. Do it everyday for 2 weeks and you’ll start to see improvement.
been there, not as a new grad but even with YOE it’s still difficult.
First – find SOME PLACE that you can understand. huge codebase but there’s bound to be some places that are easy and makes sense. For example say the app has a welcome screen that says Hello {user}. Find that spot in the code, and start changing it. like Hello hihihi ggggg {user} {user} . if the result is as you expect, boom you got a start. slowly expand your horizons–
-ok so you changed some static text and works, great. then try some if statements. if [user.name](http://user.name) === ‘bill’ console.log(‘bill is here’).
works? k wheres data coming from. is user coming from somewhere? before we even go there how about the data shape coming into the page? lets revise the above and it’s actually Hello {user.name}. so whats the shape of user object? perhaps {name: ‘bill’, age: ’69’, birthday: 04/20} then output the other props like {user.birthday}.
-works? then after that try to find the source of data. api call? … and that’s the gateway into the jungle.
They donโt have any documentation????