Confessions of a junior dev
Posted on: 11th of May, 2024

Today was a terrible day. My social awkwardness reached its peak, I also faced some health issues, so I decided to stay at home, put my weirdest green face mask on and enjoy youtubeing (yes, it’s a word) for a whole afternoon. And guess what? I stumbled upon this video: 5 Signs of an Inexperienced Self-Taught Developer. It’s time for some introspection.

1. They only care about making it work. The code. Obviously. Guilty for this one. To give an example from the other day: I developed a simple business website for a company, and the clients requested a specific feature: when you click on a promotion image, it should display full-sized, and on another click, revert to the thumbnail view. There are several ways to do this. So I chose the simplest solution that came to mind. When my senior colleague reviewed my code, he suggested alternative solutions to implement this. So what was my next step? I chose not to touch the code too much, because it worked, and the client was okay with it anyway. Yes, I need to improve in this ASAP.

2. Huge codebase changes at once. Oh, I master this. Even though we don’t use GIT or any version control systems at our company where I need to commit and push my code to review, it is still visible how much I change all at once without really thinking or gradually testing my code. This made me waste several hours (days!) because I went with my ‘intuition’ and wanted to deliver something significant in a short period to impress them. To be honest, I’m afraid to send a small piece of code for senior review because I fear they’ll laugh at me or simply get annoyed with my messages throughout the day. In this case, I’ve made some progress thanks to my colleagues, who constantly assure me that they’re ready to review even minor changes because it’s beneficial for everyone to catch mistakes before they grow into a big mess.

3. Always learning new programming languages or concepts. Yes, I’m doing that too. Apart from my actual work that requires PHP, CSS, HTML, and JavaScript, I’ve been working on React projects, which are fine. However, I decided to learn Flutter, Python, and machine learning from the basics. I’m also installing my first Linux, which I know is insane. My mentor advised me to focus on one set of skills at a time until I’m comfortable performing daily tasks in them. I should listen to him more.

4. Too many things at once. Sometimes I volunteer for new tasks even when the previous ones aren’t finished. I know I shouldn’t have done that, and I believe this is one of the reasons I’m feeling mentally overwhelmed these days. I have six to seven unfinished Jira tickets that drive me crazy because I underestimated the effort required and overestimated my capacity and skills. As a result, I’m spending my upcoming weekend working to catch up instead of spending time with my family. I need to take this seriously.

5. Avoiding critiques. I’m usually very open to critiques. I actually ask for feedback on a regular basis. So I wouldn’t say that I’m avoiding them. However,I sometimes take them too personally and come up with numerous reasons to justify my actions, assuming they were my best under specific circumstances. This might come across as defensive or like making excuses. So, I’d also work on this aspect.

So the result is 5/5. I’m feeling a bit overwhelmed and inexperienced right now, but I’m determined to improve. Here’s my plan for the rest of the day: I’ll focus on finishing all the tasks I have. No overthinking, no expectations of myself to do more than I can. Just one task at a time. And in the future, I won’t volunteer for new tasks until my previous ones are reviewed. Instead, I’ll concentrate on learning the core technologies and saving the rest for later. I hope to see significant progress within a year or two in all these areas, so I’ll be ready for a mid-level phase. Exciting days.