I started programming about 6 years ago when I built my first shitty Android app. It was a phone directory of sorts, and I had no idea what I was doing. Fast-forward to 6 years later at Razorpay and I still felt like I had no idea what I was doing
3 months have passed since I joined Razorpay in July and I feel like I am a full 3 months wiser. Here's some stuff that I have picked up in the past 3 months
Disclaimer: There isn't going to be any code whatsoever in this post.
Don't work more, work extra: What's the difference? Let's say you have a project that if you worked 7 hours on every day, you'd complete in a month. If you instead worked on it for 8 hours a day, you would complete it 4 days before the deadline. The only person you would be making happy is your product manager. If you instead spent that 1 hour trying to improve your codebase, or automating something or reducing tech debt or even building something that makes life easier, you'd make a team full of developers happy. You'd be creating a much greater impact
Stick to your deadlines: The thing about working at Razorpay is that I decide my own deadlines. The problem with that is that if my timelines are not accurate or are not running on time, everyone else who depended on my tasks being complete to continue their work will also be delayed. This snowballs into the whole project being delayed. Estimation is a skill that comes to you with experience and thought. Only promise what you can deliver. Take into consideration your sick days, holidays, and vacations.
Talk to your colleagues: This is not so obvious. When I started working, my conversation with my colleagues was limited to work. Your colleagues, especially the ones with more experience, have a lot to share. You will only get their wisdom when you talk to them informally. This is especially difficult due to remote work so it will take effort on your side to form a relationship
Buy a good chair: You will be sitting on a chair for the greater part of your day. Save your back and buy a comfortable chair that has good lower back support. I don't have any recommendations to give but buy something comfortable. It doesn't have to cost 15k, you can get one for around 1.5k that will be just as comfortable. Also, stand up and stretch after every 45mins of work. Backache will be a real problem even for someone in their 20s
Don't work on the weekends: Don't fall for the hustle culture crap. Weekends exist for a reason. They exist because they allow you to rest and take time off of work. Rest rejuvenates your mind and body and allows you to be more productive in the coming week.
Learn outside of work: To progress in your career, you will have to do more than is expected of you. You can increase your technical skill by learning new stuff on your own time. Build something with what you have learnt. Take out 30 mins every day in the morning, before starting work to read up about something. What I generally do is make a reading list in a To-Do app and try to read 2 articles every day.
Have a goal in mind: You will not progress unless you have a realistic goal in your mind. "Where do I see myself in the next appraisal cycle?" It sounds cringy but appraisals are a record of your performance throughout the year. If you have nothing impactful to show, you won't go far. This point ties well with point 1. Your goal does not have to be limited to the next appraisal cycle either. Ask yourself "do I want to code for the next 20 years?" "Do I want to manage people instead and become an Engineering Manager?" "Do I instead want to talk to customers and become a Product Manager? This choice is difficult but once you think about it and have clarity, it will help you in making decisions.
There's a lot more I'd like to add to this post, and maybe I will. Subscribe to my newsletter at burhanuday.com,or follow me on DEV and you will be notified when I post my next article. If you want to talk to me, come over at my twitter @burhanuday