How can a Sys. Admin skill up to work as a DevOps engineer? I am looking for recommendations on how to skill up to be a dedicated DevOps Engineer.

I have always wanted to work on Development related projects as I love coding but unfortunately I have never got the chance. I have previously worked on freelance projects using .Net and PHP and I am certified in Java SE but I have never used it.

My work experience incorporates being in system and application administration. Mostly I am a senior now in this field so a switch to Development is not preferred as I would have to start over as a junior. However I think DevOps will be perfect for me but I need to know what I need to study to fill the gaps in my knowledge to be a good dedicated DevOps engineer (preferably the part about writing automation and tools).

Please recommend what should I study, for example I heard Python and Perl and Ruby are very good for DevOps but what else should I start with and what is the mandatory skills that i need to cover first?

My current skill set:

Sys. Admin


Unix (HP-UX, Solaris) and Linux (Ubuntu, Red hat, 
CentOS) Administration  
Middleware Technologies administration 
(WebLogic, Apache-Tomcat, WebSphere, MQ) 
Bash/Shell Scripting
Web server configuration and administration 
Excellent knowledge of common database 
systems (SQL Server, Oracle, MySQL, etc.)  
Web services and Integrations SOAP/REST/API 
Oracle Business Intelligence Suite (OBIEE, DAC, 
Informatica)  
ITSM Remedy Development and Administration. 
SAP Business Object (Analytics). 
Splunk  
Service Center –ITIL-enabled IT service 
Management 
Strong understanding of Web Application 
technologies. 


Developer


Expert Development skills in Microsoft Visual 
Basic. 
Excellent Development Skills in Java SE.  
Microsoft .Net Development 
MS SharePoint development. 
Expert in MS Office with Expert knowledge in 
Macros and Automation across all MS office 
Applications. 
Intermediate PHP development (CakePHP)
Have a look for DevOps Engineer roles and check out the list of technologies that they are seeking. Typically you'll need automation scripting skills (like Bash, Python or PowerShell), configuration management skills (like Chef, Puppet or Ansible) and some fundamental experience maintaining and configuring a Build/Release pipeline. For this, look to get experience with CI/CD tools like AppVeyor (.NET), Jenkins, Travis CI etc. You should also be familiar with Git and source control systems in general such as BitBucket or TFS. You would also benefit from becoming familiar with automated testing techniques.

If you haven't already, consider hosting some open source products in Github and setting up a pipeline for them that performs automated tests on commits as well as (if possible) publishing to a package management system. This is great experience as well as demonstrates your skills.

For a more general understanding of the philosophy of DevOps (as beware that it's a culture as well as a technology set) do as much reading as you can on the topic and start following (e.g via Twitter) the likes of Gene Kim, Jez Humble, and Patrick Debois. Also I recommend you read The DevOps Handbook which they authored. It is a very thorough explanation of what DevOps is as well as how organisations might adopt it.

You could also check out DevOps related Meet Ups and Conferences (such as Velocity, DevOpsDays and Config Management Camp). The opportunities will of course vary depending on where in the world you are.