
What today's software developers need to know
However, the reverse is as well 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. Or were only relevant for organizations and applications with immense budgets.
"The list of what you need today that you didn't need earlier depends on how long ago you went to school, how hard you've worked to keep up on research, the software industry, and software engineering," says David Intersimone, Vice President of Developer Relations and Chief Evangelist for Embarcadero Technologies.
"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 at the same time and a little bit of glue to hold them all at the same time. 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, just as stackoverflow.com, as then as what habits are good to adopt in the end is important. For instance, 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."
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. However it be, 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 innovation area, says, "During knowing your innovation is critical, 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, assuming you will be spending some of your planning time understanding why your target users like or want the things they want -- and knowing how to do this information gathering and assessment."
"Because of the move to cloud computing for the most part 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 for the most part used by transactional systems just as banks, hotels and airline reservations. Today, all nevertheless the simplest applications require asynchronous programming, taking everything into consideration 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.
Breadth of skills says Ben Curren
"It's become more important to have a breadth of skills" says Ben Curren, CoFounder, Outright.com, which offers easy-to-use online accounting and bookkeeping software for small businesses. "For instance, web developers these days need to understand clients, 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 afterwards 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, Rich Internet Applications for the mobile market and applications that run directly on mobile devices 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 customers are requesting more client-rich application experience, just as Windows Presentation Foundation with ASP.NET, and Ajax programming like jQuery and the DOJO Javascript tools.
What you already know
It isn't just about what you already know, either. It's as well 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 research, 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 in point of fact successful resource."
"Today's developers need to have awareness of more agile software development processes," says Jeff Langr, owner, Langr Software Solutions, a software consultancy and training firm. "Many modern teams have learned to incrementally build and deliver high-quality software in a highly collaborative fashion, to continually changing business needs. This ability to adapt and deliver frequently can result in significant competitive advantage in the marketplace.
The business
"In order to deal with continual demands for change coming from the business, and sustain reasonable maintenance costs on their systems, today's developers need to understand how to incrementally grow their systems using appropriate quality technical practices," says Langr. "Some of these practices are: test-driven development, automated acceptance testing, refactoring, continuous integration, and continuous delivery."
Senior software engineer Amy Unruh adds, "it is useful for today's developers to understand issues in realtime search, and techniques for pipelining data analysis and for managing 'activity streams.' And you should able to exploit the 'small pieces loosely joined' model, including use of microformats, and understand how to consume APIs from other services and support relevant APIs for your service, by building on RESTful computing principles."
Daniel P. Dern is a freelance research writer based in Newton Center, MA. His web site is www.dern.com and his innovation blog is TryingTechnology.com.
- · Rackspace debuts OpenStack cloud servers
- · America's broadband adoption challenges
- · EPAM Systems Leverages the Cloud to Enhance Its Global Delivery Model With Nimbula Director
- · Telcom & Data intros emergency VOIP phones
- · Lorton Data Announces Partnership with Krengeltech Through A-Qua⢠Integration into DocuMailer
