NUS
 
ISS
 

7 Habits of Highly Effective Software Developers

software dev
By Lee Chuk Munn, Chief, StackUp Programme, NUS-ISS

Fascinated by the smooth graphics of the key player in Lode Runner that debuted in the early 1980s was what got Mr Lee Chuk Munn, Chief of StackUp Programme interested in programming. He then took up Computer Science as his career pathway to become a software developer and the rest is history.

In the world we live in today, "technology powers everything from how a business runs to the products and services it sells...and in addition to mastering the nuances of their industry, they need to excel first and foremost at developing software, " according to a Mckinsey report¹. Backed by numbers the report shares that, "at the Goldman Sachs Group, for instance, computer engineers make up about one-quarter of the total workforce and within retail, software development is the fastest-growing job category and of the 20 million software engineers worldwide, more than half are estimated to be working outside the technology industry, and that percentage is growing". 

With software developers in high demand across all industries, here are seven core habits which must be established to keep burnout at bay and fuel highly effective routines:

1. Understand the Problem 

Programming is about problem solving. Focus on the issues that you are trying to solve. Define the boundary around your solution to make it manageable and expresses what you are trying to solve. Once you define the boundary, you can start thinking inside and outside the box. Tip: Learn programming and not programming languages - try to understand the underlying problem to be able to adapt between projects.

2. Use the Correct Tool

All programmers have two tools - one that goes on mentally (data structures, algorithms, design patterns) and the other, physical deployment application tools. It is of utmost importance to keep ideas fresh and refresh often by keeping up with news in the industry. For deployment tools, don't limit them but rather explore all API options and understand why you are using them. Your task should dictate the tools and not vice versa. If you are breaking new ground, you may have to develop new tools. 

3. Keep Your Solution Simple

Strive to make your solution simple. One that is easy to understand, explain to others, document and maintain in case of bug fixes or new features. Aim for the best of both worlds where your product allows both novices to use easily and advance users to do clever things with it. Note: Simple is not simplistic. You can have simple rules that enables complex behaviour. Example, Tetris is simple, Tic-Tac-Toe is simplistic.

4. Practice continuously

Growing as a software developer is a process. Don't expect to learn everything in one day. Practice, practice and practice to broaden the range of your repertoire. You can widen your experience and work pro bono by helping your friend's startup, contribute to open source, give feedback, fix bugs and try new things! Why not publish your own YouTube tutorials?

5. Learn to Debug

While bugs come and go, debugging skills accumulates. Jump at the chance to debug! The debugging process is more important than the bug. It allows you to gain speed in understanding codes, intuition and insight into a piece of software. Don't give up even if it takes you hours. Be persistent as through this time-honored process you are building resources to help you with future bugs, rendering you much confidence. If you must ask for help, try StackOverflow. 

6. Exercise and Rest

Programming is a very demanding job, both mentally and physically. Keep yourself fit for better concentration. When you're stuck with a bug relax your mind by engaging in some physical exercise such as jogging or swimming. Disconnect from tech devices for a bit. Do try it sometime. Also a good keyboard is recommended to stay comfortable.

7. Learn from Your Projects 

Look upon your past projects to note what has worked and what hasn't. Anticipate skills you will be needing to get up to speed. Bookmark interesting articles and read engineering blogs, technology sites and news to keep aware of relevant industry knowledge. This will allow you to have an idea of what to use in your next project. 

Find out more about our StackUp Programme - Startup Tech Talent Development programme here .

__________________________________________________________________

¹ Srivastava Shivam, Trehan Kartik, Wagle Dilip, Jane Wang. "Developer Velocity: How software excellence fuels business performance." Mckinsey.com. April. 2020. Web. July 2021

Fresh from her four-day DevOps Engineering & Automation class, as part of the Nucleus 2.0 programme, NCS application consultant, Jeanvia Yeo, shared that "the instructors were very helpful and responsive online. The lecture format were well-balanced with a good mix of assessments, online learning and hands on workshops, with real world applications which I can apply directly to my workplace.” Classmate and fellow NCS application consultant Chin Wei Boon, added that the “online lessons were taught clearly and the instructors where fluent in their teachings.”

A+
A-
Scrolltop
More than one Google Analytics scripts are registered. Please verify your pages and templates.