What are ‘Cloud’ Skills, Exactly?
What are these elusive cloud skills that everyone says are so much in demand? IDC, in Climate Change: Cloud's Impact on IT Organizations and Staffing, estimates that cloud computing created 1.5 million jobs in 2011. Though the white paper paints with a superficial brush designed to provide insight for CIOs rather than career guidance for professionals, other research has delved into specifics. Among them: Developers, if they aren't already, should become polyglots and include in their repertoire of skills more scripting languages like Python and PERL. But still, how do you answer the question, “What skills do I need to survive and flourish in a cloud-based world?” Telling a friend to "learn PERL" isn't really going to help them acquire "cloud" skills. PERL, remember, has long been used by developers (remember CGI?) as well as administrators and operators, though for very different reasons. Languages do not a cloud developer or DevOps professional make. It's what you do with the languages that determines whether you're cloudy or not. Primarily, the cloud is about abstraction of underlying systems. How high up the stack that abstraction goes depends on the cloud computing model being discussed. Infrastructure as a Service abstracts the network and related infrastructure while Software as a Service abstracts everything up to the application itself. Being skilled in one does not necessarily mean being skilled in the other. Being proficient with IaaS may mean experience with a provider's management API, which in turn may mean a thorough understanding of SOAP or REST or both. An expert SaaS developer will focus on specific systems, such as Salesforce or SugarCRM or Ceridian, and offer to potential employers the ability to extend and integrate such applications with back-office systems. Then there's the difference between the skills needed for private clouds versus public clouds. While the latter may require experience with APIs, frameworks or third-party management software, the former might carry with it expectations of experience with OpenStack or Eucalyptus, with Puppet or Chef. Blurring Roles The lines between developers and operators, too, is blurring with respect to cloud computing. Developers may need to expand their administrative skills, becoming proficient with scripting languages and configuration files for Web and application servers as well as more network-oriented services such as load balancing and caching. Operators, conversely, will need to pick up some dev chops, learning to interact with REST APIs via scripting languages and command line tools in order to move forward on continuous deployment initiatives. Getting your hands dirty with specific cloud provider APIs like Amazon and Rackspace or Cloud Foundry, too, will be a boon to increasing your market value. That's because what many employees mean when they say "cloud skills" is really experience with the tools and frameworks used to manage their public, private or hybrid cloud model. In the vastness that is cloud computing today, the skill you need to succeed will largely be those you already have or can easily acquire -- language proficiency. Today, the experience with tools and APIs and providers you need can be acquired thanks to the cloud’s economy of scale, which has driven costs down to nothing in some cases and nearly nothing in others. Experience through experimentation is a valid model in this nascent market. Much in the same way graphic designers offer up a public portfolio, cloud professionals may want to consider offering up the URL of a cloud-deployed application as part of their resume, particularly when cloud experience is limited in current roles. Inarguably, the cloud computing market is exploding with opportunities. What's missing most often is a clear indication from potential employers what specific skills or systems experience they’re looking for. Employers can help themselves and the market by being more specific and providing guidance to candidates and setting reasonable expectations with respect to skills and systems. Asking for "cloud skills" when you're really looking for AWS API experience or Puppet scripting skills makes it difficult for job seekers to determine whether they're a good fit or not. In a budding market like cloud, it's important to be specific in order to avoid overloading HR and ensure the best fit possible. Seekers can assist, too, by ensuring they provide insight into what, exactly, their "cloud" skills are. While "cloud" is certainly all about abstraction, "cloud skills" should be a bit more concrete -- from both sides of the employment table.