Whether you’re looking to start or you’re just starting, being a software engineer is both challenging and extremely rewarding. 6 months ago, I was in your shoes; I started here at Forward Financing as software engineer co-op with no professional software engineering experience. I had never actually written code to be used by real users and my development experience was limited to school projects and small personal projects. Here are some things I have learned that will be useful for anyone that is thinking about becoming a software engineer or just starting out as one.
Don’t be afraid to make mistakes
You will make mistakes as a software engineer and that’s just part of the process. Like many others, I have made many silly mistakes as a software engineer. There have been times where I have put my pull requests into code review with silly typos or put my feature through QA only to realize I had misread a specification. As a perfect way to end my co-op, I had to hotfix an issue that I released to production on my last day. I learned that everyone makes mistakes and the fear of making a mistake should never discourage you as a developer. The important part of making mistakes is owning up to them and learning from them to make sure they don’t happen again. Here at Forward Financing we have a blameless culture where we all understand that bugs will happen and we won’t single out the individual that committed the bug. By taking the blame off of the individual, it encourages growth as a group because we all learn from each other’s mistakes one box of donuts at a time!
Step Outside Your Comfort Zone
Before I started, I really had no idea whether I wanted to do front end or back end development. Luckily, every engineer at Forward Financing is a full stack engineer. Though each engineer has freedom in choosing what kind of tasks he or she wants to do, everyone here does their fair share of front end and back end work. As someone who was unsure about which direction to go in, being a full stack engineer is especially helpful for figuring out what to do. Prior to working here, I was always more comfortable doing back end work because it would not be immediately visible to users. However, when I started as a full stack engineer, I was eager to try out all different types of tasks, especially in languages or frameworks I was unfamiliar with. I found that diving into a task I was unfamiliar with was the best way for me to learn and grow as an engineer.
We are part of an industry that is constantly evolving with new technologies and frameworks popping up and changing the way we work. It is important to keep up with all the changes that seem to happen every week in our industry. I quickly realized that no matter how long someone has been in the industry, there is a constant stream of new information and new ideas to learn. Being new to the industry, I found myself spending just as much time on the job learning as I did actually coding. Within my first month, I learned to use React to work on our front-end apps and Elixir to create new API endpoints by simply immersing myself into our codebase and taking advantage of the extensive resources I had at hand, whether it be other people or communities online. Whenever I find myself with a natural break in the workday, like waiting for code reviews, I’m constantly reading articles and documentation to learn about technologies that we are using here at Forward Financing or new ones that I am curious about working with. It feels great to be constantly learning because it keeps your day to day work from ever getting stale and it ensures that you are continuously growing.
Asking questions can be scary at times, especially when you’re not as experienced. You’re thrown into a new environment and you’re probably just trying to figure out what’s going on. I was initially hesitant to ask questions because I was afraid of looking incompetent if I couldn’t get things right on my first try. I quickly learned that if there was something that I was unsure of, it was best to ask around because chances are someone else will have an answer. If anything, I will help you understand the problem at hand and make sure what you think you’re supposed to do is what is actually supposed to be done. By asking many questions and clarifying any concerns before I start coding, I have saved myself from wasting a ton of time working on something that could potentially be wrong. I am lucky to work with a group that is always welcoming questions and that is very eager to help each other out.
The most important lesson I learned is to have an open mind. Be open to learning new things and be open to speaking up when you don’t know something. Listen to what others have to say because someone else might have more knowledge than you. Don’t be afraid of trying something new; embrace ideas that are different from what you are used to and branch out! You will make mistakes and you may struggle at times but one day in the near future, you will look back and be shocked by just how much you’ve grown. Happy coding and good luck!