I have been a software developer / engineer for the past 11 years. And here are 5 things that I learned.
Here is a little context:
I do not have a Ba / Bsc / Msc in Computer Science or Software Engineering. I got a Dip in Digital Media Design.
Wait. I know.
You are going to stop reading and say WTF. This is so cliché!
Yeah. Unfortunately it is.
Simple example: Have you noticed how fast Angular gets a new release?
December 2016 when Angular 4 was released everyone cheered and ran with it trying to master it. By the time they "mastered" Angular 4, it was 2017.
Angular 5 got released on November 2017.
Seriously. That is how fast things change.
And we are not talking about simple upgrades. Each new iteration of Angular brings SIGNIFICANT updates!
So that bring me directly to my next point:
You can list out all kinds of coding languages, frameworks and methodologies on your CV. But all these are just tools.
If all you have is a hammer, everything looks like a nail
I have seen a lot of projects that does not benefit from React, but yet... React was chosen. Because it was the latest fanciest newest toy that everyone wants to play with.
Well... That's the responsiblity of the Tech Lead or CTO. Let him decide what's best for the project.
But, to be honest. I have met A LOT of CTOs who knows jack shit about what Agile methodology means yet they are making the decision.
And this brings me to my third point
I am not sure why it is so hard to admit that you don't know a certain solution or implementation.
IT IS OKAY!
But some engineers, especially those who have a decade worth of experience, with a Msc in Comp Science from some fancy school... They just refuse to admit that they are not sure or they might need help. They refuse to raise their hand for help if they are unsure with certain build tools or process.
This have got to stop.
Because the only thing that is holding you back from progressing further and higher is your ego.
Don't let your ego stop you. If you don't know something, ask. Even if the person who you are asking from is a fresh graduate or a new joiner. It doesn't hurt to ask.
I know that many developers prefer to figure things out on their own. Heck! That was how I learned. I kept on grinding and eventually I fixed the problem.
But do that on your own free time. If you are still grinding but the dateline is in a few days, I think you should call in the cavalry. At the very least, ask for direction. Ask if you are going the right way. It doesn't hurt.
Yeah we can really get consumed by the technology that we lost sight of the objective. The objective is simple: You are helping your employer make money.
This brings me to my next point.
Technology just enables you to make that business transaction. But it is not what sells the business.
Always think in the business perspective. What function do you provide to value-add the business?
Let me give you a technical example that ties in with the business.
Cutting down loading time from 5 sec to 0.5 sec
That is a HUGE difference. It helps with:
Lowers visitors drop off / exit rate
Increase possibility of transaction conversion
Therefore more business == more revenue
npm build script build time from 13 sec to 0.7 sec
This happened to me in one of my previous jobs. This project that I inherited used
browserify but it was so messy and clumsy that saving the file with
s each time triggers the build script which takes 10-13 sec to complete.
And how many times in a day do we press
s? Multiply that with the number of developers working? Multiply that with the cost of paying these developers? How many man-hours is spent just waiting for the
npm build to finish running?
You are hired not just to write code. You are hired so that you help the company be more successful.
And sure, once in a while you sit and you wonder, can't I set up my own business?
And maybe you did. Maybe some friends do come up to you and ask if you are interested in their start up. And they will start pitching to you their ideas.
Lots and lots of ideas.
Which now ties on to my final point
Everyone has an idea. But not everyone can execute it. And even lesser can execute it well.
I have heard it all.
We are going to be the Facebook equivalent for digital magazines!
We are going to be the Uber equivalent for part time teachers!
We are going to be like Google! But for X community!
The first few times when I hear an awesome idea, I did get excited. But eventually I get very jaded. And I realised that execution of these ideas are what's missing.
So don't be fazed to turn down an idea. Because there's more.
And because execution is expensive, especially if you have the credentially to prove it, don't be afraid to value yourself equally. Do not discount yourself.
Sure, the stories of the 5 friends invited by Mark Zuckerberg have been circulating the internet like wildfire. So have the Jack Ma original sales pitch in 1999.
But please be wary, and have your BS detector turned up a notch.
Yup so those are the 5 important things that I have learned.
Ofcourse there are way more stuff that I realized, figured out, came across and learned in the past 11 years being a software engineer / developer. If you wish to reach out to me, feel free to drop me a comment! ^_^