DEV Community

Jurica Kenda
Jurica Kenda

Posted on

5 Tips to Advance Your CS Career

1. The price of context switching

Context switching is a process that requires the switching of the CPU from one process/task to another. In computers, it is one of the essential features that enable pseudo-multiprocessing since it happens blazingly fast. There is, however, a slight time overhead.

For humans, this overhead is amplified a lot. Our mental models are often vague and abstract, especially when we are involved in the activity of solving a difficult challenge. We don’t simply store stacks and the state that can be easily retrieved once discarded. Some of the stuff truly gets lost, and we lose a lot of time picking the pieces back up.

Some of the context switching responsibility belongs to ourselves, as we allow our smartphones and instant messaging applications to get the best of us. Some of it, on the other hand, belongs to our colleagues, as they interrupt us when we are diving deep into a certain problem.

It is your personal responsibility to create an environment that will endorse focus, deep work, and attention retention. Learn to combat your phone addiction and focus on the thing that matters the most when you are working - your work. Set hard rules among your teammates to prevent unnecessary interruptions.

2. Communicating with the management

Very early in your career will you learn the different levels of communication. Technology-oriented companies have an interestingly structured layout of people. Your management is a part of this layout.

Conveying information to the management is vastly different than conveying it to some of your peers or staff with the same job title, but a different level of seniority. Managers simply need the different, interfaced information from you.

Your manager does not need to know about every little bump on the road, yet he/she needs to know if the project will be delayed. He/she does not need to know the small technical trade-offs you make on a daily basis, yet he/she needs to know the ones that will affect the project, the performance of the system, etc.

There is an art to communicating with the managers in an efficient manner. You need to be able to present reports of how the project is coming along and where things are moving. Concise, concrete, and accurate data answering the questions: what, when, and why. Sometimes, an answer to how is provided, but this information is usually abstracted and presented minimally.

3. Staying relevant

The tech industry is one of the fastest-moving industries in the world at the moment. Certain technologies can become increasingly important in a matter of months, just to die out within a year or two.

It is implied that if you want to be a top performer, you have to keep building your skills and expanding your knowledge. Instead of perpetually chasing the rabbit and burning out, focus your time and energy on deeply grasping the fundamentals and underlying principles of the technologies you are trying to master.

With this approach, you will be able to merely update your knowledge by understanding the syntax and the slight nuances of the newly arrived technology. Even though things are moving fast, the new technologies are rarely very revolutionary. They are usually just clever implementations of very well-known principles.

Essentially, use the 80/20 principle to utilize your resources. The former chunk of your resources should go towards grasping the principles, while the latter should be steered towards learning the nuances.

4. Stagnation

As you progress through your career, you will climb different ladders and take on various roles. Each time you step up the ladder, the role inevitably gets tougher to fulfill.

This is bound to create an uncomfortable feeling. The trick is to get used to not knowing everything. It is a sign of growth and progress. Being comfortable with everything you do is a sign of stagnation in engineering.

One of the symptoms of this is imposter syndrome. Doubting your own abilities, feeling like a fraud, feeling like you do not belong and should not be here, feeling like everyone else is so much more qualified than yourself, refusing to accept and recognize your accomplishments…

This stems from the fact that the industry is constantly progressing and moving forward. You must not let it get to you. Keep reminding yourself it is okay to be uncomfortable for a while.

It is all about the seasons. It is a bit of a rough patch and a bit of smooth sailing. And the two alternate continuously. This pattern will emerge throughout your entire career. Get used to it.

5.Initiative

People consume your energy. An unbelievable amount of change can be achieved through your energy. You are constantly making an impact on people, leaving your footprint. Make sure it is a positive one.

Showing initiative is (should be) always welcomed and encouraged. Doing things you were not assigned to do, but are capable of doing well, is a good start. Volunteering, engaging in the company’s indirect but meaningful activities, actively proposing improvements and optimizations of the processes, workflows, and habits… The list is endless.

Of course, this does not imply you should stray away from your primary goal and get pulled into any little opportunity along the way. Do it after the primary target has been taken care of. Know how to prioritize. But also know how and when to go the extra mile and do more than requested and expected.

All of it should come from a genuine place. The “Fake it ‘till you make it” approach will not cut it here. People are extremely aware of your subtle intentions and will feel something is off about you if you try to apply this approach. You are either all in, or you are not. If you are not, you are in the wrong place.

If you made it this far, you might want to check out a book with related topics:
The Missing Semester: 100 things you were supposed to be told about software engineering.

Top comments (0)