Today’s software developers don’t have to worry about many things that their predecessors used to, like coding to minimize RAM consumption even if it means significantly longer execution time, or WAN connections maxing out at 14.4 kilobits per second. (Although, there may be some out-of-fashion skills they could benefit from or that may yet regain relevance.)

However, the reverse is also true: There are many new skills and areas of expertise that today’s software developers, hardware developers, system and network administrators, and other IT professionals need that simply didn’t exist in the past (where “the past” could be anything from “more than three months ago” to five, 10, 20, or more years) or were only relevant for organizations and applications with immense budgets.

“The list of what you need today that you didn’t need before depends on how long ago you went to school, how hard you’ve worked to keep up on technology, the software industry, and software engineering,” says David Intersimone, Vice President of Developer Relations and Chief Evangelist for Embarcadero Technologies.

Knowing what you need to know matters, whether you’re just starting out as a software developer (or planning to become one), or are a seasoned professional who wants to keep your chops fresh so you can stay in, re-enter, or advance.

So here, as a counterpoint to my “lost skills” article, are “found skills” — what a number of IT professionals see as these new areas for software developers that you want add to your existing knowledge portfolio. (Disclaimer: For the most part, I’ve left out suggestions about specific programming languages– too obvious.)

Using libraries
“One thing that strikes me as a new skill is the need to work with massive pre-packaged class libraries and template libraries in all the new languages, like Java or C++ or Python,” says consultant and software developer Jeff Kenton. “It used to be that once you knew the language and a small set of system calls and string or math library calls, you were set to program. Now you can write complex applications by stringing library calls together and a little bit of glue to hold them all together. If you only know the language, you’re not ready to produce anything.”

iPhone app developer Hwee-Boon Yar, who has been writing and selling software for 10 years, says “More programming resources are now available online freely. Knowing where to look, such as, as well as what habits are good to adopt in the long run is important. For example, if you become someone who Googles for a solution to a programming problem and copy and paste every time, you will never advance your skills.”

Factoring in your users
Meredith Anderson, a business and information architect, adds, “In 2008, discipline keywords like ‘information architecture’ and ‘usability engineering’ were scarce in online job postings. In 2010 there were numerous job postings with these keywords. I’m not sure whether the market acknowledged the need and existing skills or whether the need coalesced around these words to find the skills. In any case, the skill set of user experience engineering — usability engineering, user interface design, and information architecture, all distinct from graphic design — has become a formal area of expertise, described by a specific vocabulary. And in the last couple of years demand for these skills has exploded.”

Merryl Gross, a UI Architect in the healthcare information technology area, says, “While knowing your technology is important, knowledge of the people who use their software, how they use it, and what’s important to them about the software is critical these days when people expect more from their devices. This will keep you from making a lot of expensive mistakes. And where you don’t already have this knowledge, assume you will be spending some of your planning time understanding why your target users like or want the things they want and learning how to do this information gathering and assessment.”

Asynchronous programming and other techniques
“Because of the move to cloud computing mostly through Web-based interfaces, we are seeing an emphasis on asynchronous programming,” says Itai Danan, founder of Cybernium a software development and Web design consulting company. “Ten years ago, this was mostly used by transactional systems, such as banks, hotels, and airline reservations. Today, all but the simplest applications require asynchronous programming, mostly because of AJAX. This is a very different style of programming — most things taught about software optimizations do not apply across the network boundary.”

Brian Fino, managing director, Fino Consulting, an IT consulting firm that specializes in developing enterprise, cloud, and mobile applications for the modern business environment, stresses the need to understand the impact of distributed, networked infrastructures, multi-core hardware, etc.

“Cheap and readily available infrastructure has made most all applications multi-dimensional and distributed,” says Fino. “Software engineers have to have a good understanding of how distributed systems work from the functional right down to the packets on the wire and how they’re routed.”

Also, says Fino, understand multi-threaded design: “Hardware today is multi-core; software engineers have to understand how to design software that can take advantage of the hardware capabilities readily available today.”

A breadth of skills
“It’s become more important to have a breadth of skills” says Ben Curren, CoFounder,, which offers easy-to-use online accounting and bookkeeping software for small businesses. “For example, Web developers these days need to understand customers, usability, HTML, CSS, Javascript, APIs, server-side frame works, and testing/QA.”

“Programmers don’t learn that someone else is going to take care of the code they write,” criticizes Sarah Baker, Director of Operations at an Internet media company. “They don’t learn about release management, risk assessment of deploy of their code in a infrastructure, or failure analysis of their code in the production environment — everything that happens after they write the code. They don’t learn that a log is a communication to a operations person, and it should help an operations person determine what to do when they read that log.”

Craig Schwartz, Senior Engagement Manager at Freeborders, a global IT services provider, sees three core skills being in demand: Mobile development, global delivery and agile development experience. “With the growth in mobile computing, the ability to create Web applications designed to work on mobile devices, RIAs (rich Internet applications) for the mobile market and applications that run directly on mobile devices (Android and iOS) will be a necessary skill for developers as this market grows.”

Jane Gilligan Hamner, VP Business Development, Harvey Nash USA, an executive search, professional recruitment and IT outsourcing firm, reports, “In the Chicago market, we are finding that clients are requesting more client-rich application experience, such as WPF (Windows Presentation Foundation) with ASP.Net, and AJAX programming like jQuery and the DOJO Javascript tools.

It isn’t just about what you already know, either. It’s also about continuing to add to your knowledge and skill sets, comments Amy Wilson, Client Services Manager at Web and mobile app design firm Accella. “With the ever changing face of technology, and the skills necessary to keep up with new software/hardware, programmers and developers have to be much more flexible in today’s marketplace. Learning one language or skill won’t cut it in today’s workplace. Being flexible and staying up to date on new software releases is key to being a truly successful resource.”

Related Posts:


Comments are closed.