When I started my first job as a software engineer I would have never realized how narrow my world view regarding tech was. In my mind, the world of software is as large a pool when it is an ocean.
It is commonly said that most software engineers don’t know what exactly their profession would be in the tech world. It becomes more complicated today as more branches of software engineering emerge. The fast emergence of AI has opened many branches of software engineering roles such as Data Scientist, Machine Learning Engineer, and Deep Learning Engineer. Each role is different and needs exceptional skills in their own right.
This coincides with previously available roles like Database Administrators, System Administrators, Networking Engineer. Heck, even Software Engineers have sub-roles like Frontend Engineer and Backend Engineers now because of how complicated software is nowadays. I don’t think I have even touched on the security roles yet.
I honestly entered the tech world thinking I would end up as a Frontend Engineer. Today I am mainly focusing on backend services, system administration, and machine learning. If you’ve ever touched any one of these skills you would understand how different these 4 roles are.
I ended up learning everything I can. Though I am currently focusing more on machine learning than any other field. I find making computers do menial and repetitive jobs amusing.
As you might have already noticed, there are many flavors to software engineering. Some roles might be more enticing than others. But it doesn’t make those other roles less important.
Every role in the software department needs to work together. Either you’re the networking engineer to the backend engineer. As you progress forward you would respect your colleagues for their contribution. Because in the end, they know things that you may not know, as well as you knowing things they do not know. Respect should be mutual.
Mentorship should not always be a relation between seniors to juniors, rather peers from different backgrounds.
In my opinion, you should always take every opportunity for a sharing session with your peers. You would never know what you would get out of it.
Ever heard of the term open-source? Open-source software is software projects that allow for contributions from anyone. Contributions to an open-source project come in many forms. If you are a highly skilled engineer that has an interest in the project, you may contribute your time to help develop the project altogether. Otherwise, you can usually support the project maintainers by donating money to them directly.
In this culture sharing is the norm. We contribute to the field and everyone in it while being open and transparent about it.
Even though software engineering has an open culture it doesn’t mean plagiarism would be left unchecked, don’t ever steal someone else’s source code and claim it as your own.
Originality is always appreciated!
My first years as a software engineer began with mentorship. I entered a trainee program to make apps that solve real-world problems while learning.
It was one of the most formative years of my life. I have always wondered how my life would be like after my trainee years have passed. It has been 2 years since then, I can say it helped me through a lot.
Just as in any field, mentorship gives you a boost in learning. It helps you skim through the less important skills and gives you an insight into what skills you need to improve to reach your end goal.
It is completely forgivable if you don’t know what role you would be focusing on specifically. Precisely why every new software engineer should go through some sort of mentorship with more senior software engineers, to help them go learn faster.
For example, a backend engineer does not necessarily need to learn artificial intelligence. Though it might be a useful skill, there are more important things at hand.
Some people might not know this, but sharing helps you learn. When you are sharing what you know with other people, you get the chance to review your knowledge and probably patch holes in your knowledge that previously was unbeknownst to you.
Sharing also gives you the opportunity of being questioned by inquiring minds. As the saying goes, “Two heads are better than one”.
If you encounter a question that you have never thought about, you gain a plus there. A new insight.
When given the responsibility of sharing your knowledge, of course, you want to perform your best. You should be aware of the big responsibility of teaching. You wouldn’t want to disappoint. Given, it would improve your sense of responsibility to your own words.
So you think you are ready for the tech world? Don’t ever be afraid to ask for help. It is completely normal to not know about somethings in this field. You don’t have to be the know-it-all.
Be humble! It may be one of the most important traits you would ever need. If you know something your desk neighbor doesn’t it wouldn’t hurt to share a bit. Being a mentor can get you further than you would ever expect.