My latest video for the Continuous Delivery YouTube channel is about staying up to date in tech. For the last couple of years, all anyone can talk about is AI, and it can make you feel like you're becoming irrelevant if you're not learning or using AI. Don't worry, this is a feeling that is pretty much constant in tech, and is not specifically related to the hype around AI. So I dusted off an old talk, which was based on an older blog post, about how to stay up to date in technology, and condensed it to a twelve-minute YouTube video (transcript below, if you prefer to read). Enjoy.
Notes
T-Shirt from Qwertee (it's "Women's Multi-spider", and in the thumbnail I'm wearing "Women's Don't Panic"). DISCOUNT CODE: ContinuousDelivery.
See also: this great discussion I had with my team about how they learn new things.
Transcript
The technology industry moves fast and there's a lot of pressure to stay up to date. It can be fun to learn new things. In fact, it's one of the reasons why a lot of developers do this job in the first place. However, it can be very overwhelming. How can we realistically stay up to date with the all new things we need to know? How can we remain relevant in the ever-changing landscape of tech?
Right now the industry, in fact the whole world, is going mad for AI. AI will make you more productive. AI will speed you up. AI will enable your application to do things it couldn't before. And, of course, AI is coming for your job. It's hard not to feel irrelevant if you're not using AI or developing AI applications.
If you're not using it at work, you may be wondering if it's time to learn something about AI. But you're probably also thinking you need to learn about the latest version of the frameworks or languages you're using, or maybe re architecting that legacy application to use microservices, or working to improve the continuous delivery approach of your organization.
There are so many things to learn, and it can induce a sense of panic, particularly if we're just starting out on our careers, or looking to level up or pivot in our roles.
So step one: stop. Take a breath. It's okay. In this video, I'm going to show you how to figure out which skills or technologies you need to learn or improve and some resources and techniques for learning those skills or technologies.
Before I go into that, I want to take a moment to thank our sponsors. Equal Experts, TransFICC, Tuple, Honeycomb, and RadStudio.
Equal Experts is a consultancy that’s built on applying the ideas that we talk about here to build great software.
TransFICC is a financial technology company that applies advanced CI techniques to deliver low latency routing technology.
Tuple builds software that helps people pair program remotely.
Honeycomb helps engineering teams understand their production systems through observability.
RadStudio is an IDE for creating multi-platform high performance applications.
These products and services are well aligned with what we care about on this channel. Take a look at the links in the description below.
Now, before you go running off and finding a new technology or technique to learn, I want you to take a step back and think, why?
Why do I want to learn this? Why do I want to learn new things? Is it driven by outside influences, like my job or social media? Or is it something that's interesting or important to me?
It is good to learn things that can help the organization you work for or your team you work in. But remember, the skills you learn are your skills that you will carry with you into the future.
So when you think about what to invest time in, consider why you want to learn this technology or skill, and how it will serve you now and in the future.
When I'm thinking about learning something new, there may be a number of reasons why I want to do that:
- I might want to have fun. I like coding. I like learning new things. I'm going to have fun with it.
- I might want to learn it because I want to be considered some sort of expert in my job or in the industry.
- I might want to learn it because I want a new job and I want to go somewhere where I need these new skills.
- Or I might want to learn it because I don't want to be left behind.
These first three reasons are kind of joy based, and this fourth one is fear-based - the fear of being outdated or irrelevant.
The good news is, when we're learning something for ourselves, we have a lot of choice. We can basically pick whatever we want to learn. A new language, a new framework? A new way of working, or a new paradigm? A new tool to write, build or deploy code?
How do we find these shiny new things and learn more about them?
You're watching YouTube, so you're already on the right path of finding things to learn. There are lots of other places too, like social media, magazine sites, newsletters, Substack, podcasts, user groups, conferences.
Finding things to learn is not a problem. What you really need to figure out is how important are these tools or techniques how much impact are they going to have on you or your career.
When I gave this presentation back in 2019, the big buzzwords were containerized, reactive, serverless, microservice, blockchain, big data, machine learning.
That's six years ago now and surprisingly pretty much all of these buzzwords are still relevant.
Now, not everything that's trendy will survive. 15 or 20 years ago, the buzzwords were things like Prince2, Scrum, Subversion, Flash, AWT, and Test Driven Development.
Nowadays, "everyone's" doing agile. Subversion is not a thing, everyone is using Git. Flash died, and was replaced by HTML5 and JavaScript which was replaced by 100, 000 million JavaScript frameworks for doing reactive front ends.
TDD is still a thing, of course, but it's still not really mainstream, although Dave Farley and I would argue it should be. It's also gone through various phases of being in and out of fashion over the last 20 years.
The point is that not everything that's trendy or commonly used will stick around. You could invest loads of time learning something because everyone's talking about, only to find you'll never use those skills. For example, back in around 1999, I was an intern at Ford Motor company where they were investigating using Swing instead of AWT for their dealership-facing software. I was learning Java, but hadn't used this Swing thing. So when I went back to university to finish my degree, I spent my free time working on migrating an old Turbo Pascal application I had written for my Dad to use Java and Swing. I was so proud of this, and it took me a bunch of time. However, when I went back to Ford for my next internship, only a year after the last one, they had already moved completely away from applets and Java UIs to using JSPs and Servlets. Swing had become almost immediately irrelevant, and I never used it in my professional career.
In 2025, what we're talking about is AI. I mean, i guess there must be other hot topics out there, AI is almost the only thing people are talking about. But what does it mean for us? Are we talking about using it, like using chat GPT? Or as developers, should we be writing AI systems, and utilizing AI in our applications?
What are the different types of AI and what are they used for? What's RAG? What are agents? How do I use these things and why are they important to me or my team?
This is where you need to do your research and have a look at when you see a buzzword, what does it mean? What is it used for? Why is it helpful? When is it not helpful?
Once you've successfully identified which kinds of technologies, trends, or buzzwords you want to investigate, you need to figure out an approach to learn more about these things. There are loads of resources for learning something new. You've got YouTube, blogs & tutorials, online courses, books, open source projects on GitHub, User Groups and conferences, and so on.
Different people have different ways of learning. So when I have mentioned these different approaches, you don't have to use them all! Try two or three different ones, especially if you're just starting your journey in software engineering. And also, as we get older, we might find that our learning style has evolved and changed, or that newer approaches to learning are out there.
So, pick some combination of these things which suits you. Maybe you want a high level overview, in which case perhaps watching a presentation from a conference or usergroup, live or on YouTube, is the right thing for you. I like to read blogs and articles because I can skim them very quickly and search for keywords or jump to the place I need. But being forced to read a whole bunch of texts and not necessarily see something working is not always the most effective way for everyone to learn. Or maybe you really only learn when you're DOING, in which case perhaps a tutorial or where you can actually implement something yourself is a good way to learn.
If you choose to implement something as a pet project, these days not only do you have the amazing resource of Stack Overflow to help you, you can of course use AI, for example, ChatGPT or JetBrains AI Assistant to get started with a new technology or a new project.
It can point you in the right direction, or generate you a bit of code. You can even ask it where you're going wrong when things are not doing what you expect them to do or ask it to explain code samples to you.
I really like user groups as a way to level up. I know that user groups require you to actually leave your house or office and speak to human beings, but user groups are a really good way to have Conversations about the sorts of things that you want to learn and ask questions.
When you can find someone who's doing the same sort of thing that you want to do, you can ask an individual, a real human being, about the pros and cons of that particular thing. You can also take the temperature of your local community: What are people working on? What are they enjoying? What are they not enjoying? What do their companies do? Who is hiring and what are they hiring for?
What's important about understanding your learning style is that you don't have to stick to any one way of learning. It might depend on the day, it might depend on your mood, it might depend on the thing that you're learning.
It's important not to beat yourself up if something's not working for you, if it's not sticking in your head, or if you feel like you're not getting it. It might be today is not the day. It might be this learning material is not the right thing for you. It might be that this particular topic is not currently well explained.
New, shiny, up-and-coming things generally don't have great tutorials and generally don't have a lot of information about the mental model you need in order to work with it. So, don't beat yourself up if things aren't going well as you're trying to learn something new.
Here are my tips for learning something new:
- Don't necessarily jump straight in and start writing code. This might not be the right thing. You might want to have a high level view of what this thing is before you decide whether you're actually going to invest any time in it.
- Figure out what your learning style is, and be prepared to use different types of resources to get the idea to stick in your head
- You don't have to learn everything. Just because everyone's talking about Docker, for example, doesn't mean you have to learn Docker. I use that as an example because for years everyone was talking about Docker and I felt bad not understanding what it was for or how to use it. But there came a time when I needed to understand it, and at that point, the tutorials were significantly better and it was easier for me to pick it up quickly.
- Learn enough to figure out if you want to invest time learning more on this topic. For example, I tried to create a demo on using Kotlin Multiplatform and React Native. After a little while struggling with my demo, I realised I don't understand enough about any of these technologies. I have not used React Native, and I've not used Kotlin enough to understand what is coming from the language and what's from a framework. So using a combination of technologies that I didn't understand well was not the right solution for the particular problem I was trying to solve. So, learn enough to figure out if you want to learn more.
- And it's okay to put it to one side if it's not working for you. There are plenty of other things to learn instead! There's so much to learn, you should be picking things to learn because you want to that thing.
Most importantly, Don't Panic. The industry is constantly changing. Yes, it can be overwhelming, but the fact that it's impossible to learn everything all of the time is a good thing.
Focus on things that you want to learn for yourself, either because they're fun, because they'll benefit you now, or because you think they'll be helpful in the future, but don't get tied up on that.
Thanks for watching. Thanks also to our Patrons, who support this channel and get loads of goodies from being part of our Patreon community. If you're interested in being part of the community, check out the links in the description below.