Becoming a software engineer
The bright side. The path.
At least once in a lifetime we are faced with a challenging task of choosing a professional activity.
My choice was made by chance. Initially, I was torn between Applied Mathematics and Industrial Electronics. Both my parents are engineers and I wanted to become one too. I was lucky to have spent a lot of time with them — in their workplaces. At the time of submitting my application to a university, Computer Science caught my eye. I was so undecided that I made my 2.5-year-old cousin make a choice for me in front of my family. She chose Computer Science which I am forever grateful for! My dad reassured me that there will be enough math and circuit boards not to regret either of my original preferences.
I didn’t have many expectations. I was simply excited about graduating from a university I admired since the beginning of my consciousness. The program did indeed involve enough math and circuit boards. And I still became an engineer — a software engineer.
However that was ages ago, things have changed since — and for the better. A lot more preliminary information has become available and accessible, facilitating decision making.
So, where to start? and what to expect? Let’s explore a number of aspects:
Learning the trade
There are many ways to get started — from crawling the World Wide Web, and taking a guided course, to getting University Degrees, Masters, and PhDs.
I recommend starting by exploring the web as soon as you become interested in Computer Science. Proceed with a course online or in person and then get a degree.
University provides abstract knowledge on a number of topics. You learn the principals and fundamentals. All particular platforms and programming languages are used as examples to demonstrate the application of abstract concepts. Whereas courses typically focus on specific platforms and programming languages. Abstract knowledge empowers you to create beautiful code.
While studying, I recommend going to meet-ups and connect with software engineers and subject matter experts in the field of your interest. You don’t have to become an expert in that subject matter, but you must know enough to be able to come up with clever solutions and communicate efficiently.
As a starting point it’s always helpful to analyze your primary objective, here are some approaches:
- You admire a company and want to join no matter what — learn a programming language that the company of your dreams works with.
- You have an idea and want to bring it to life as quickly as possible — present it to a few fellow engineers or mentors and learn a recommended suitable tool that promotes the most efficiency.
- You are fascinated by a particular platform or language and believe it will provide a beautiful solution in any subject matter (my case) — welcome on board!
The good news is, any particulars you chose don’t have to be your focus forever. You can expand or switch at any time — fully or temporarily, for a project or two. The more you learn the easier it becomes to familiarize yourself with new things, and the more value each previous experience brings to your new learnings. You start recognizing similarities in different programming languages and frameworks, identifying strengths and weaknesses of each programming language and development environment.
Everything in life is interconnected. Work or hobby are just labels. One can turn into another in a blink of an eye. Any activity may ignite an idea. Engineering becomes embedded into your life. You see an opportunity for improvement in everything, for which you attempt to engineer a solution. And you are in power to make an app for it (wink-wink;). You are walking on the clouds of excitement.
There’s a wide selection here. You can join a corporation, a smaller organization, a startup, found your own, contract, consult, commit to working in the office, freelance out of cafes and co-working spaces or experience a fully nomad life for some time, or a long time:)
What can you do?
Literally — anything! There’s no subject matter that cannot be affected by software. Absolutely everything is, can be and will be computerized.
Educate, entertain, save lives, create lives(!), explore the stars, discover galaxies, launch spaceships to name a few. Oh, and create Angry Birds 4.0 of course:)
One of the key attributes of the software industry is agility. It allows you to change the direction of a project virtually instantly, or adopt solutions from one subject matter to another.
The sky is the limit!
The true power
Everyone has ideas, many of them are good, some are great. It’s been proven time and time again, even brilliant ideas are nothing without execution.
Ultimately, software engineers hold the true power. We are the ones who make it or break it. We work the magic!
Have further questions? — Leave a comment or contact me directly — I’ll be happy to converse.
If you found this article helpful, add some claps to spread the word and follow me on medium for future reads.
Ready to roll up your sleeves? — Job search — think different