I was recently asked by someone on LinkedIn how to move from a technical support role into a
programming role and what skills should be learnt in this progress. This is my response (identifying information has
been removed for privacy).
You mentioned wanting to get into DevOps, but then focused on the developer side of it in your follow up comments, so
I’ll focus more on learning coding than on DevOps.
To cover off the DevOps side of things, I personally find ACloudGuru to be one of the best
resources for learning about cloud based technologies. They have a lot of training for AWS,
GCP and Azure. I’d highly recommend them to cover the
platform side of DevOps.
In terms of other DevOps related tasks, becoming familiar with CI/CD pipelines is always valuable. There are services
such as TravisCI, Jenkins and BuildKite that are
quite popular. There’s also BitBucket Pipelines, GitLab has CI/CD
functionality built-in, and AWS has Build Pipeline (I’m sure the other cloud hosting services
have similar items). Most of these have plenty of free tutorials available though a Google search.
Other aspects of DevOps include server administration and security, Docker and Kubernetes and web server configuration
(Nginx, Apache, IIS). There are plenty of other
things, but that’s probably enough for now.
You’ll find some potential overlap between the tools in your current role and the tools used by developers. Items such
as Jira (or Trello or other Agile boards) are used
extensively for task management and visibility. A number of companies also rely heavily on apps such as
Slack, and these are commonly used by developer-centric user groups due to their prevalence in the
developer community. As you move into a developer role you’ll find the ability to communicate technical ideas to
business people, and to turn business requirements into technical specs is also important.
In terms of resources for learning how to code, it very much depends what part of development you want to get in to. My
primary skill-set is based around web technologies, but I know there are many companies looking for other skills.
If you want to get into lower level programming (so you can work on IoT devices) I’d recommend learning C++ and getting
a Raspberry Pi and Arduino to help you learn. Although I’ve got both
of these devices for some personal projects I haven’t had a chance to experiment with them and can’t recommend any good
resources; I’m sure you’d be able to find some free and/or cheap ones out there to get you started.
If you’re more interested in data science and data analytics there are some proprietary solutions such as
Microsoft PowerBI and Tableau that you will want to learn, and
you’ll also likely want to learn Python. Again, I don’t have much experience here, but I can find some resources for
Python if you want them.
AWS has the DeepLens and
memory, but best to confirm this). They are great starting points for learning to algorithms and finding out how
machine learning works.
If you’re interested in augmented reality and virtual reality I’m not sure what the best options are here. I would
assume your learning should be based around mobile device development for AR as much of it seems to be based on mobile
devices at present. This will mean focusing on React Native,
Flutter, C# and Java.
For items such as smart speakers, I think both the Google Home and the
Where I’m more knowledgeable is with web based development. Many organisations are currently using
Free Code Camp you will find some great training for HTML,
the frameworks. You can look at React.js, vue.js,
Angular, all of these frameworks are in common use throughout the world. For the formatting of
the front-end you’ll want to know about Boostrap, Less and
Sass. You’ll also want to have a good working knowledge of HTML (check the Free Code Camp link
I posted before).
A significant part of front-end development these days is also based around APIs, so this you’ll want a good knowledge
of JSON, and at least a working knowledge of XML. Most of the APIs
that are in use today are RESTful APIs, but GraphQL is slowly taking hold for APIs, so
understanding the basics of these is a good start.
Back-end development has a lot more choice for languages. You could checkout PHP (with frameworks
such as Symfony, Laravel or WordPress),
Node.JS, Ruby (on Rails),
Python, .Net, and many others. It doesn’t really matter where
you start, pick one and work with it for a bit, and you’ll find the others are easier to learn because you’re familiar
with the concepts. All of these options are capable of producing JSON, XML or HTML output, some of the frameworks make
it easier to output all thre eoptions based on what the client requests.
If you aim to do much back-end development you’ll also want to become familiar with some data storage layers, learning
the basics of SQL (and knowing that there are differences between
PostgreSQL, etc) is very valuable. It’s also worth knowing about some NoSQL solutions
such as MongoDB, Redis and a variety of others. The level of knowledge and
which ones to learn really depend on your future employer, so an overview of each is a good place to start.
I realise there’s a LOT of information here and a lot of different technologies. Don’t let this put you off! Just
start with one of them and play around with it; when you find you need to start on another to achieve something then
learn the bits you need of the next item. My partner recently decided to start learning how to program (she doesn’t
have an IT background). In her case we started with some basic networking concepts just to get her logic circuits
options and decided to teach herself Python. She’s still learning Python
and has just started learning C++, but has enrolled in a mobile application development course at university next year.
Experiment a bit, find out what bits of development interest you, teach yourself some of it, and as you can afford the
time and money do some courses. You’ll find courses that cater to all incomes and interests. You’ll find sites like
Alison offer a large number of courses you can take for free, the only catch is that if you want
the certificate at the end you have to pay for it.