Jump to content

Check out our Community Blogs

- - - - -

The Most Important Software Engineering Skills

Posted by John, 24 January 2011 · 751 views

I was recently asked by an freshman computer science student several questions about the software engineering industry. The one I would like to highlight is What are some of the most important software engineering skills? I immediately wanted to start naming off technologies and paradigms that I see used daily. Things like object oriented programming, test driven development, design/architecture patterns, and popular programming languages. But after a moment of contemplation, I responded with what I consider to be the two most valuable skills any [software] engineer can have.

1. The ability to adapt to change (and the willingness to learn).
Someone famous once said, "The only constant is change," and in the technology industry I think this is most prevalent. The popular programming languages and paradigms are quickly depreciated, and the software specification written today, is rewritten tomorrow.

2. Balancing good business with good engineering.
Every engineer wants to write the fastest, most efficient, modular, and extensible code possible. The good engineer will know this is not possible (due to imposed deadlines for practical business reasons), and will understand the trade-offs that can be made.

For those of you who have more industry experience than I do, I am interested in hearing your thoughts.

  • 0

One of the constant trade-offs I find myself making is do I polish the interface, or add new functionality? For example, adding some AJAX functionality to a website can make it shinier, but there will be an expectation that you add the same functionality throughout. By contrast, a completely new search may take the same time, but actually let users do something they could never do before.

I think it's also important to realize that NO code is forever. You will have to change it, sooner or later.
    • 0
Those two are definitely the most essential. If I had to add anything, it would be the ability to work under pressure + time constraints, and the ability to work with others on a project.
    • 0
I totally agree.
    • 0
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download