Become An Efficient Programmer
Work Efficiently - Photo by Alexandr Podvalny on Unsplash |
As all of the industry around the world digitizes their businesses, there’s a huge demand for more software developers. A very labor-intensive job that requires focus, sitting for hours and staring at the LCD screens, sometimes overlaps with the weekends, not that it’s wanted but because the task requires an excessive amount of time.
Promises of a good salary and stable career path, people rush trying to school themselves and even their children to enter the Tech world, which is still not too late yet may be on the brink of decline, as AI now can perform to write their own codes, and Developers are in danger of being replaced.
I remembered not so long ago, about 8 years ago, my first professional job as a software coder began. Not a pleasant year being very junior, in any industry. I had to have a big brave face to not only face very mad clients but also my coworkers and myself, my inner thoughts telling me that I should've given up.
But I keep rebelling myself until times move and I am in a better position where my days and nights of very intense learning to code finally paid off. I've gotten better and climbed to a slightly better level above junior. At this point people, my coworker, and my boss started to trust me.
Back in my junior career as a software developer, I met someone who's a very good role model for a PHP developer. I looked into him, and how he handles projects with very minimal work, yet he's doing very well.
He finished a single business in just less than one month, complete with the front end, back end, and infrastructure, with a fully working result. The company started its marketing campaign and the business is running and starting to make money.
And then I wonder, how’s he doing great, finishing such complex tasks in such a quick period, did he use magic? As I am very shy, I don't have the guts to talk to ask him about what magic tricks he uses to complete such a project in a flash.
As I observed him, he’s so much oriented to what we call MVP.
A minimum viable product is where we launch a software product as early as possible with just enough features to be usable by early customers. Doesn’t care about bugs or heavy intensive testing.
Why is he such a role model? For me, his approach is focused on delivering the software in such a minimal process with the output being the priority. So the product and the business can run immediately, other sectors in the company can start to take part working, contributing their part to the business, not waiting too long for the IT guy to solve.
So many developers get trapped into developing things that will eventually take so very long because they overthink stuff, focus on the tool, refactor the code too much, upgrade things, see it like it will fail because it is wrong, and so on.
The truth is we always have time to fix stuff. We can always scale things or migrate things to a better system later on, but let’s prioritize the company, let’s make them work, and start collecting money as soon as possible.
I remember when I got roasted by the boss because I am doing a project that had never finished. What’s wrong with me is not because I am too lazy or working minimum hours, sometimes I even work on weekends. So time for me is not the problem, because I dedicated a lot of time to it.
Over the years, I finally have learned the lesson from working with many projects. In different requirements and time frames. For a given project, I already know what tools to finish that quickly. I have the framework of what I should and shouldn’t do.
The reason people fail is that they think too much about the process, not the result. They are too scared about future scenarios whether this will work or if it will fail. Too much thinking over things just slows down the progress.
As you are getting more experience, you will have a clear picture of the design and have a framework in your mind of the scenario of how things work, then you will be someone with a clear orientation on the output.
Be someone really quick, and able to utilize many tools to solve problems faster. Never overanalyze stuff, never touch those newly framework libraries that you don’t even understand what it is doing.
Just use the usual stuff you are familiar with, older versions of framework or libraries are ok, as long as it's still being maintained and doesn’t have some security hole, you will have a chance to fix it later.
The thing that matters is time, Efficiency is the number one priority in business, how you can ship the product from zero to ready for users to use. So the business is not slowing down by your very slow progress.