Programming
Learn to write code
General Concepts
As developer, you will need to have an open mind and use many different languages with different purpose and philosophy. Languages were designed to craft tools for your needs.
Imperative programming like C
Oriented Object Programming like Java or Python
Functional Programming like Haskell, Erlang or Clojure
Erlang/OTP
Erlang and OTP were designed to create high available systems. The language and OTP framework, were implemented as full actor model, offering a really high level language.
Portable Shell Scripting
Make a portable shell script is hard because of the many different bourne shell implementation, like bash, ksh, csh. Learn to create portable shell scripting and tools to manage them like Make or CMake.
Powershell
During the past years, Microsoft released many projects in Open Source, Powershell is one of them. Powershell is fully object oriented language designed to automatize systems tasks.