Things I learned in one year working as a Software Engineer
By: Gurdip Singh
Tags: Web Development, Software Development, Software Engineering, Learning To Code, Programming

Things I learned in one year working as a Software Engineer Gurdip Singh Follow Nov 12 · 4 min read

Photo by Christopher Gower on Unsplash

It has been over a year, I started working as a software engineer and, the whole year has been a rewarding and learning experience. When I look back, I can already see how much I have learned and grown as a software engineer.

While I was reflecting on this lovely experience, I found many things that I have learned and I would like to share them here so that it can benefit budding software engineers who are in the same shoes as I was a year ago.

I have divided my learnings into soft skills and technical skills. I am going to start with soft-skills as I believe they will help in advancing one’s technical skills as well.

Ask questions: Never be afraid to ask questions. As cliche as it sounds, I can never stress enough because often a lot of people like me have no idea what is going on when they start, especially during the first couple of months and they hesitate to ask questions. When I started, everything was new to me like the technology stack, the process, and the terms my colleagues used to refer to things related to work. I was very hesitant to ask at first as I thought I might look stupid but, when I finally ended up asking my doubts, I always learned new things. So, never hesitate to ask questions even if you think they are trivial. Take Notes: During my first couple of months, I used to get stuck in figuring out things because I did not have knowledge of the system and when I asked for help from seniors, often time they did some magic to get everything working again. When this happened a couple of times, I realized how important it is to keep notes so that you don’t have to hassle your seniors repeatedly. Further, maintaining notes will help you track the progress and might also help new people who might join after you. Take initiatives: It is so important to take initiatives whenever you get an opportunity. There will be times when things sound as trivial as setting up a team meeting and, nobody is willing to take the initiatives. Do not hesitate to step ahead and take initiatives as such things will help you build a better relationship with colleagues and hence can ultimately help in your learning path. Communicate: Another significant factor to be at the top of one’s game is communication. In my one year, the one thing I got appreciated for more than anything was my communication as I always communicate if someone is dependent on me. For example, when can one expect me to finish or if something is taking longer, keeping team members in the loop always help and avoid confusion. Ask feedback: Getting proper and timely feedback is very important to making progress towards your career goals. It can be as frequent as having one on one weekly meetings or having a bi-monthly meeting. Ask your manager about what the team thinks about your progress and work in general and adjust your career goals accordingly. It is a great way to discuss and know about your future in the company.

It is not only the soft skills that I have learned. I also ended up growing a lot more technically sound than I was on day one.

Version Control Systems: Before joining I sure knew about version control systems but, I just knew beginner level commands that one could get familiar with within a day or two. The actual version control may vary from company to company. It can be challenging at first to work with hundreds of repositories and managing version control with multiple simultaneous projects. I would advise learning and get comfortable with git as much as possible. Linux development: When I started working, I had little to no experience with Linux as I come from a non-computer science background. So, this year, I spent a lot of time learning about development in a Linux environment. I wish I had known all these things before I started as I believe the journey would have been more rewarding but, as they say, you don’t have to know everything. Code Reviews: Code reviews are an essential part of the job as a software engineer. One should keep in mind when writing code that you may have to explain the reasoning behind the code during code reviews. I feel code reviews help in getting hands-on feedback and help you grow and write better code. Also, it is equally important to take some time to review the code of your colleagues and discuss the best coding practices. Debugging: Software engineering is incomplete without having sound debugging skills. Whenever I have to work on a bug fix, I always start from the top and try to reach the root cause of the problem. Again, this is something that one learns with practice and the proper guidance of mentors.

Well, I learned countless things which I can’t write about all here but, I found these few important and worth mentioning here. I hope these few things will help you in understanding more about the daily job as a software engineer and eventually help you in your journey.

Happy Coding!