Building a Career In Software Engineering

Building a Career In Software Engineering

Earlier this month, after joining the company for the last 3 months, I just pass my probation at my current company. This is very special though because working on one of the biggest tech company in the country is one of my goals last year. And since i already passed that milestone, I guess now I am eligible to share my experience

Earlier this month, after joining the company for the last 3 months, I just pass my probation at my current company. This is very special though because working on one of the biggest tech company in the country is one of my goals last year. And since i already passed that milestone, I guess now I am eligible to share my experience ahaha

So yea lets start!

Building the Basics

For starters, I think the most important thing to do is to make sure that you have a good fundamental on computer science and software engineering. From my experience and research, there are 3 sources to get this basics: University, Bootcamp and Self-Learning

University

This is the most easy and comprehensive sources because all you need to do is just follow the curriculum served. But, you need longer times (around 4 years or more) to achieve the degree and it’s not cheap though. Also, in the university, they just teach you the basics. You need to explore again by yourself on how to master certain frameworks.

Bootcamp

IT Bootcamp is interesting choices because they offer you shorter span of learning and probably much cheaper than university. But, I guess with than short span of comprehensive learning, you need to put a lot effort and discipline yourself following the lesson. Also, you won’t get comprehensive studies – just focus on basics at certain role – that probably will useful when you are entry level, but it’s certainly not enough if we want more senior area.

Self learning

This is probably the most cheap option we have but it’s super hard to do because we need to really discipline ourself on learning. if you are on these path, I have some useful resources for u here:

  • Roadmap to learn everthing: https://roadmap.sh/
  • Teach yourself CS: https://teachyourselfcs.com/ Ya basically you can use the internet to search because there are a lot of resources up there and if you want to be succeed in softeng industry you need to be good at researching online haha.

Creating Portfolio

The next thing to do is creating a portfolio. It’s not necessarrily good, because you will be improved every time you learn. The most important thing to do is to start. Just create a CRUD website will help you or maybe you can just follow this to create your own project.

If you already confident with yourself, you can also build the portfolio with paid clients. I was lucky because back in my university, I have Inkubator IT to get real clients to build my portfolio. But if you don’t have one, don’t worry because there are a lot freelancing website that you can try to get money.

Swimming in the Pool

If you want to swim in the ocean, it’s a good idea after you learn the theory you need to start learning on the pool first. If you want to be a software engineer in a company, starting as an intern is a good idea. You will learn to know how the real software engineer works and how to manage things at scale, something that we can’t get if we learning ourself. Also, there are a lot of people that get hired after they finished their intern though.

To get into intern role, we need to repair our CV and apply to the open position. There are a lot of guides for creating a good CV. you may follow this guide by harvard or just follow my CV in the CV part ahaha.

After we apply the job on some company, we will get called and get into selection process if we were lucky. There are usually three stages of selection process in the software engineering role: Code challenge, User Interview, and Behavioral Interview.

Code Challenge

At this stage, we will be given one or more coding problem (it’s sometimes similar to a CP questions or just a mini project we need to build). If you were not familiar with the CP questions, you can just grinding on leetcode or codeforces. What is important on this stage is not only you provide a correct solution, but also the optimal and readable one.

User Interview

At this stage, you will have a conversation with an engineer that will give you a few question. Commonly, there are two types of question, algorithmic problem and system design. There are a lot of resources to learn in the internet, but I personally learn from this resources. For system design interview, the recruiter recommends me to watch this video

Behavioral Interview

At this stage, it’s not really technical but mostly ask about your career goals and how you personally work. There are some technique called STAR to answer some of the question. You can also watch this video to prepare for this. One of the important mindset I think we need to have is that at this stage, we want to know each other. I want to know more about the company and vice versa.

Actually, you can ask the recruiter what to prepare and expect from the recruitment processes. You can also watch this video or read this article

What’s next?

I guess what’s next is climbing those career ladder or just create our own company by freelancing or creating startups. To climb those ladder, We can just climb it by switching companies or just staying on one company. But whatever way we chose, the most important thing is that we are ready and have those skillset to become one. I have not got this checkpoint, but I’m preparing into become one. I found this article and this article that I think is very good article to read if we want to become one. I believe that if we continuously upgrade ourself, we will get to this checkpoint sooner or later.


© 2023. All rights reserved.