The Best Tool to Accelerate Your Career as a Software Engineer

The Best Tool to Accelerate Your Career as a Software Engineer

Introduction

I left university at 23 years old, and got my first job for that same university earning around £23k a year, I have been in full time employment ever since and by the age of 29, was earning over £90k. In the US, that would be graduate salary to 6 figures in 6 years!

I attribute this success to one thing and one thing only, my brain.

(I know that sounds pretentious, but trust me, please keep reading).

I was initially attracted to quick hacks, got sucked into a cycle of trying to make my way through my career, choosing the fasted path to success. The key takeaway I internalized from reading posts like “Move fast to get paid more, the secret to getting a raise as a software engineer”, was to get a different job within 2 years to get your pay increases faster. I applied to many roles that paid more money, went to interviews, and got offered jobs. The only problem with this was that the money they offered was about the same as I was paid now, or I was simply rejected.

I began to realize that the issue wasn't the process, it was me. What I had read and learnt wasn't working. The advice I had taken to heart was probably not good advice.

In this article, I offer my thoughts on what I think can craft a path to success in the shortest time possible, without relying on luck, or anything else other than yourself.

Quick hacks never work

The internet and social media is full of quick hacks, “this one tool can save you time, make you money, get you a job” (okay maybe that last one might help).

People selling guides and courses on how to get rich quick, mastering drop-shipping, etc. These are all things that can be very attractive to software engineers, as there is always the thought in our heads that we could automate that with software. It is true that these processes can be automated, the issue is the processes themselves don't work in the way they advertise.

Courses to master a particular aspect of software development are fine, courses that are created by academic institutions for the purpose of learning are great (Stanford University has a free machine learning course, and it is amazing)!

However, courses that allude to being able to master anything in a short period of time, will probably be too good to be true.

Software boot camps can be great, but the surrounding marketing is very misleading. They focus their messaging around getting you a job very quickly, but miss out the part that they only teach you exactly what you need to get through the door. You will have to learn the fundamentals, and the vast expanse of knowledge required to progress in that job long term, on the go (not that that's especially a bad thing).

Take responsibility for yourself

If there is one message you internalize from this article, let it be this one. Take responsibility for yourself. Don't blame others for your shortcomings. Not being able to get a job after getting a degree, is not the universities fault. Not being able to make a sale, is not the Udemy course on closing sales fault. Deploying a bug to production is not the CI/CD pipelines fault, or whoever reviewed the codes fault. It is unequivocally your fault, always, and that's okay!

If you have any habit of laying blame on anything other than yourself for things instigated by you, stop. If you even find yourself subconsciously looking for an excuse, stop. The faster you accept that something you did, didn't pan out, was because of you, the faster you can get on with learning from that mistake.

The better you get at identifying when you could have done better, the faster you will trigger the learning process that comes from it. Without doing this, you will never trigger the learning process, and will never improve.

The art of compounding knowledge

Just like investment profits that is re-invested into a fund. Experience, and knowledge, compounds over time. It can be hard to explain this, but I will give it a shot.

A lot of knowledge acquisition is driven by the desire to gain that knowledge. When you get stuck during a learning process, you will often get unmotivated, and procrastinate on continuing to learn it. This is simply human nature, and eventually if you are determined, you will pick it back up and push through the hard parts.

Now, let's imagine you want to get better at maths. You are working through a course, but end up dropping it halfway through due to some problem you can't figure out. You start a different course that focuses on other aspects of maths, you hit a similar issue and get demotivated and move on to yet another course. The third course explains a concept that can be used to solve the problems you were stuck on in the previous courses. The light bulb moment hits, and you are immediately hit with dopamine and are suddenly super motivated to continue on with all three courses and complete them.

Now take this concept and apply it to all knowledge you have about everything you know. The more you know, the greater chance there is for learning something new to connect more dots. The more light bulb moments you have, the higher the chance of the next light bulb moment opening more doors.

If you feel you have a better way of explaining what I have just explained above, please let me know, I don't think this explanation is very good 😂

Reduce the noise when learning

If you are trying to learn something, give that thing your undivided attention. Having TV on in the background whilst reading an article will distract you enough for the information to go in one ear and out the other.

By making a habit of focusing solely on consuming the information you need to consume, the quality of that information goes through the roof, and you will retain that information for much longer.

It can be very easy to get distracted in today's world, your phone is pinging you every 2 minutes with a text message, or new YouTube video recommendation. It's so easy to divert your attention from what you are reading, even just for a second. Take the time to isolate yourself from these distractions before consuming the information you want to consume.

If you grow tired and demotivated with what you are reading or watching, just stop, and come back to it. Having distractions can make it easier to keep going with what you are trying to consume, but by the end, will you have really consumed, and understood it? Or did you just waste your time?

Learning how to learn

This is something that only you can answer. It's important to understand yourself, and how you learn best. If you can watch and understand everything you watch without a break for hours, but can only read a book for 5 minutes without getting distracted, you should focus on visual/auditory learning materials. If you are a bookworm but get restless watching TV, buy books on the topics you are trying to learn.

This may sound simple, but I have found when I really analyze my learning habits, that in some situations, there is no point in trying to learn at all, and I might as well save time and go do something I actually want to do.

Try to pay attention to yourself in different situations and acknowledge when you are excited, or bored, interested or demotivated. Try to analyze why you feel that way in those moments, and capitalize on what you can infer.

Master the tools and skills at your disposal

Everything you do requires a skill set that you may not even think about when you do it. When you read, you use the skill of reading. When you write code, you use the skill of typing, and the toolset provided to you by your text editor.

I have found the speed in which I do things, like writing code, is not limited by my ability to think of what code to write, but my ability to get the code on the screen. I still get frustrated knowing what I need to implement, but can't just make it just appear and need to spend an hour getting it all typed out.

Did you know in VS Code, you can select multiple of the same word with ctrl+d? Did you know if you hold ctrl+alt and press down arrow you can create multiple cursors on multiple lines? Hell, you can do that anywhere just by holding alt and clicking multiple places in the code! These are just a few examples. There are literally hundreds of shortcuts that would take an implementation from hours to minutes. Extensions that provide snippets, so you don't have to write the same boilerplate of a React component ever again. Extensions that auto format your code to your specification every time you save the file.

You get the idea. The faster you can get through the parts where you aren't learning anything, the faster you can get to learning more (if this were a motivational speech, I would start looping back to the art of compounding knowledge, but let's crack on).

Getting even more granular, reading and typing is a skill that, as a software engineer, you use constantly. Have you ever thought to spend time actually honing these skills that underpin everything you do? If you could do these two things twice as fast, would you not be able to do pretty much everything twice as fast?

I try to assign an hour or so a week to enhancing these skills, and it turns out it can be really fun! Personally, I got really addicted to The Typing of The Dead on Steam and ended up just playing it for fun! There are lots of free typing games too!

Just like typing, there are lots of free and paid games and apps out there that aim to help you improve your reading speed. There are also tools to help you read faster by highlighting parts in every word. There are techniques like “Bionic Reading” and chrome extensions like SwiftRead that take alternative approaches. These really do improve reading speed and can help immensely if this is a major flaw for you, like it is for me.

Conclusion

Your brain is the best tool you will ever have, listen to it, and use it to your advantage!

That's it! I hope this helps you to look at yourself, listen to yourself, and hone what's already there to accelerate your career!

Follow me on Twitter to keep up to date with my projects and get notified of new articles like this in the future!