What Topics Do I Need to Know?
The tech world is full of seemingly baffling ideas and phrases such as “our agile team is using Jenkins CI/CD pipelines to deploy a scalable Kubernetes cluster on GCP”. But by doing some light reading on just a few topics, you can dramatically increase your technical literacy. So have a look below to see the lingo to learn and basic concepts worth understanding.
Note- these are just outlines of the key parts of tech that every tech professional should have at least heard of. If something sounds interesting, check out our concepts page or see if we have suggested a course for it here.
4 Main Ones
Artificial intelligence is arguably the hottest tech topic of our lifetime and the vast majority of cutting edge AI is based on machine learning (ML). There are many definitions of machine learning available but the simplest one is a computer algorithm that is able to learn from experience without being explicitly programmed. A quick internet search will provide you with more examples that effect your everyday life than you may care to know about.
Machine learning research remains an extremely active area of academia and implementation of machine learning in even the most monolithic, traditional corporations is becoming common. As such, there is a wealth of information and training available online to get you up to scratch. If you simply require a high-level (i.e. general and broad) understanding of machine learning, we’d recommend reading up on case studies of application in business, how to spot an opportunity to leverage ML algorithms, an overview of current ML technical capabilities, and the importance of AI ethics. However, if you hoping to make machine learning a significant part of your career, we’d recommend reading up on AND trying out Python ML packages, how common ML models work, large data set processing, and how to apply ethical AI best practices.
If you are less mathematically inclined, don’t be scared off by all the machine learning courses that demand linear algebra and statistics as a prerequisite. Whilst these are highly beneficial skills to have, machine learning training and application is now very accessible with little to no knowledge of maths or programming.
You can read our guide to machine learning here.
Cloud (AWS, GCP, Azure)
You’ve no doubt heard of cloud and perhaps the three big players in this space: AWS (Amazon Web Services), Azure (Microsoft’s cloud), and GCP (Google Cloud Platform). However for many people, its precise meaning and significance takes a little longer to get their head around. At its core, cloud is based around the idea that a specialist computing and storage company can do computing and storage better than your company can. And by better, we mean cheaper, more flexible, and more future-proofed. As an analogy, think of the food we eat. Each household could grow their own food to eat, however humans quickly realised that a small number of specialists (farmers) could do this much better than everyone else. And so we decided that we would pay them to grow our food for us. The same concept applies to computing and storage. Google has the expertise and knowledge to run servers better than a bank can. And so many banks pay Google to do exactly that for them.
As you read more about cloud, you’ll come across many of the more tangible benefits that cloud brings such as scalability and flexibility. Note that despite all this, sometimes using a cloud provider is not the best solution. There are sometimes reasons to keep your hardware on-premise (i.e. in your company’s physical location), the most common of which is the need to store very highly restricted data in a particularly secure way.
As well as reading up on cloud, we highly recommend actually giving it a try for yourself, especially since almost every provider offers a free trial or free credits (HINT- these are especially generous for GCP and AWS).
You can read our guide to cloud computing here.
APIs and Microservices
APIs, or application programme interfaces, are little bits of code that you likely utilise hundreds of times per day without realising. APIs are software that let applications talk to each other, for example, to pass data from one to the other. The major selling point of APIs is that the user/application on the requesting end does not need to know the inner-workings of the system since they are provided with a kind of template which they simply fill in and send. RESTful APIs are probably the most talked about kind of API and as such, it’s well worth spending some time familiarising yourself with the basics of how they work as well as trying out some easy examples.
APIs allow technical architects and developers to build microservices. This is a style of architecture that, as the name suggests, is a collections of small services (e.g. parts of an application) rather than a single, large application. There are several benefits to building things this way including increased flexibility, scalability, and reusability.
You can read more about microservices and APIs in our guide to architecture here.
Agile, DevOps, CI/CD
You may not have heard of these concepts because they are a little more under-the-hood than something like artificial intelligence. However, they are the driving force behind the vast majority of world-class technology products and will definitely come up in conversation in almost every tech role. Warning- all three contain similar concepts and so are often confused with each other!
The agile framework is a way of developing and delivering software incrementally rather than all in one go, as had been previously done with the waterfall method. There are several different methodologies such as Scrum, Kanban, and SAFe, each with their own interpretation of the agile principles. A key but often forgotten point of agile is that whichever implementation you use, it should to be tailored to the team and not the other way around. The team should not be bent to abide by word-for-word, textbook Scrum practices, for example. Agile is designed for interpretation and as such, no single implementation of it is perfect in every situation.
DevOps is the combination of software development and operations, hence the name. Traditionally, the two teams have operated independently and simply passed software from development to operations when it was ready for use. This approach constantly caused problems and conflict between the two teams. What if there was a bug in the code? What if the requirements suddenly change? What if operations have a different project understanding than development do? DevOps remediates many of these problems by combining the teams such that engineers work on software all the way through its lifecycle from development to testing, deployment, and support. The best DevOps team utilise CI/CD practices as well.
CI/CD stands for Continuous Integration and Continuous Deployment (or delivery). It is based around the idea of making software releases as painless as possible by automating processes wherever possible. By automating, we mean programming a computer to do a repetitive job so as to free up the human to do work that the computer can’t. You’ll usually hear the word ‘pipeline’ used a lot when talking about CI/CD. This metaphor just refers to an automated process in which you can put something like Java code into one end, and it will move through several steps (such as testing for bugs or releasing it as an app update) with little human intervention. This allows more frequent and more stable software releases to be made.
Or if they all sound great (which they are!) and you’re not sure which one to focus on, try out our short tech personality quiz for some pointers.