Coping with some typical developer frustrations
Things people never get to talk about
Hey guys! It's been a while since I published an article, I went MIA for weeks and it was definitely not on purpose. I have been struggling a lot recently as a developer and I just thought why not write about it? Maybe I could help people also struggling with the same situation and hopefully feel much better after doing it so here I am. Not trying to be negative in this post so please keep an open mind.
Being a developer on the outside looks so good. We are talking about great pay, flexible working hours, work from home, e.t.c but there are some downsides to this most people never get to talk about.
1. Dealing with managers or clients that are not tech-savvy
This can be frustrating because in most cases this usually leads to setting unrealistic deadlines as they usually do not understand the work it requires to complete these applications. Sometimes there are situations when you're working for a client and they want you to build a WhatsApp clone in a week, from a developers point we all know this is practically impossible but they don't know that because they don't understand the hard work that goes into creating an application like that. Here are some of things I've done that helped:
Try not to get aggravated: Ensure to keep an open mind and see what's possible before the deadline
Communication: Try to communicate as much as you can and get them to understand what it takes to do this, the things you have to do to ensure you overcome future problems the application might run into, etc. Communication is very important. I remember working on a project that had an unreasonable deadline and I spoke with my manager at the time about it and she understood where I was coming from and extended the deadline. So, I highly recommend this.
Try to be less optimistic: In some cases, when a client wants an application finished in 2 weeks and asks the developer if this is possible, the developers say yes just because they want to seem serious, ready for the job, and want the job when deep down they know the deadline is unrealistic. Try speaking with the client and pitching the deadline that would be more realistic and who knows, you might get the work done just before the deadline.
Try not to overstress or overthink: If there's one thing I have learned from my journey as a developer would be trying not to overstress or overthink about situations like this. Accept what you can't change, change what you can, and have the discernment to realize the difference. Putting stress on yourself would only lead to a negative cycle (I suffered from this) but I was able to come out of it by speaking with a team mate on how I was feeling and he gave me this advise -"Don't stress, one step at a time".
2. Working with other people's codes
This is inevitable. In most cases when you get a job, you'd get a codebase thrown at you. If there's one thing I have realized, it is that every developer writes in a different way even if it is a language that you are proficient or comfortable with. I have done a few things that have helped me counteract this problem:
Walkthrough the codebase or better still talk to the past developers that worked on the application.
Get to understand the structure of the codes.
Pay attention to comments in the code (this is very important).
If there is an existing documentation, go through it (this might help a lot and help you avoid wasting time).
3. Technologies evolve every day
As a developer, you have to be on track with evolving technologies and one thing I have also realized is that learning never stops. There's always something to learn every single day. This usually leads to a lot of developers having imposter syndrome because there's just so much to learn and there are some job requirements that expect you to know almost everything. Here are some of the things I try to do:
Keep learning, learn as much as you can at your own pace (so far you don't stop learning).
Read articles, documentations, take crash courses, e.t.c (just find anything that works for you).
Listen to Ted talks or read motivational stories, this could help give you the push you need to learn.
4. Solitude (Anti-socialness)
You know how they always talk about remote jobs being flexible and all (don't get me wrong, it's flexible and in fact, I would choose a remote job over a physical one anytime) but if you are not careful, this would take a toll on your mental health and even your physical health. Imagine working from home every day and sitting in front of your screen every day. This sometimes leads to isolation or loneliness if you are not self-conscious cause you don't even get to meet new faces every day or dress up to work. My advise for this is:
Try to have some kind of social life, even if this means going out once in a week or two then do it.
Try to spend time with family or friends and have realistic conversations (if you don't have friends, try to make some using social media, attend meetups, e.t.c).
Try to exercise regularly and move around your neighborhood, this helps me a lot.
On a final note
Thank you for taking the time to read my article. I hope you were able to learn one or two things out of it. These are just some of the frustrations I deal with as a developer, I hope you enjoyed reading. Please feel free to share your experiences and how you deal with them in the comment section. Bye for now!