How to Feel Less Overwhelmed as a Developer
There’s a lot going on in the developer world. No matter whether you’re a complete beginner or a seasoned expert, it just never seems to stop. Here are some ideas on how to handle it all.
I’ve done my best to make this article concise & skimmable, in the hope that it may be helpful without adding too much to the chaos. It’s divided up into 4 sections: Mindset, Learning, Social Pressure, and Toolset. Let’s go.
It all starts in the mind. Feeling overwhelmed is a response to too much going on at once, being over-stimulated and unable to process everything. You need to refocus, and reprioritise.
Understand the problem
This is the first step of any problem-solving technique. Why is it you feel overwhelmed? What’s the root cause? Is it too much to learn? Too much to keep up with? Too much responsibility at work? Peer pressure? Too many expectations of yourself?
It can help to sit down with a pen & paper and map out the problems you’re dealing with. It will help you to find your biggest issues, so you know what you need to learn to handle the most.
Recognise that you can’t do everything
You can’t do everything — that’s why we have teams. It’s impossible to be an expert in everything. Every area of engineering is a whole subject in itself, from AI to DevOps to CSS. Similarly, writing tutorials, open source contributions, side projects, all take time. Everything takes time.
Know that there’s no “right” way
There are good ways to do things, and there are bad ways, but in real life there’s no “correct” way. It’s not right vs. wrong, but more a vague sort of best fit. Even with code. Especially with code.
Figure out your goal
What do you actually want to achieve? Do you want to be the world’s foremost expert on containerisation, or do you want to be really good at your job, then go home and spend time with your family? Maybe you want to find your niche? You don’t have to live your life by everyone else’s standards, and knowing what you really want helps you to set your boundaries, focus your ambition, and recognise what’s not really relevant to you.
As developers, most of our knowledge comes from self-teaching — but it’s a fairly new approach to learning for many of us. It’s very different to formal education. Most importantly, you’re not expected to memorise everything. Understanding the scope of the topic, and knowing where to look for the right information is far more important. Familiarity comes with practice & experience.
Structure your learning
One of the biggest roadblocks with self-teaching is knowing what to learn — knowing where to start, what’s important, and how much there is to cover. Nobody is setting a curriculum for you, so it’s crucial to define some structure for yourself. It’ll lessen the cognitive load to have it all out in the open, and give you a boost to tick things off later. Doing some exploratory research can help you get a handle on everything; try these:
- Developer roadmaps, like Kamran Ahmed’s. It’s still overwhelming, but it gives you some visual structure, and puts everything into context. Remember, no one knows everything on it.
- Make a list of what you don’t know, and add to it every time you hear something you’re unfamiliar with. You’ll see the same things crop up over and over.
- Online courses, and course outlines — even if you’re not a beginner. You don’t have to do the course, but you can still learn from what topics they cover.
- Textbooks. Maybe obvious, but less popular now. Books may often be out of date, but they can still give you a heads-up on subject scope.
- Browse job adverts to see what skills they’re looking for at the companies you want to work at. This way, you can see what’s actually in demand, and you know you’re on the right path for your career as well. If you’ve not heard of something, that’s great — add it to your list, and move on.
Establish your core resources
There’s a lot of content out there, and not all of it is useful and accurate. Remember how easy it is to publish an article. The most valuable posts will mostly be the ones you find when you need them, the ones which deal with the exact issue you’re searching for. Aside from those, it’s a good idea to find your core resources — the key websites and experts you can rely on again and again. There are a few main types:
- Documentation. The docs are always going to be the most accurate and up-to-date information that you need, even if they’re not that readable.
- References & learning resources. These are the websites that make a huge effort to present all the real-life best practice information, in as practical and as useful a format as possible.
- Experts. These are the people and blogs that know their niche inside out, and who write articles about new and better ways to do things. You’ll find them because their names crop up time and time again, they’re always top of your search results, or because they seem to have written a bunch of the articles you refer to a lot. If you’re new to an area, a lot of blog posts will be too in-depth and just confuse you more, but over time they’ll empower you to explore new ideas.
Once you have your favourites, you’ll find you rarely need to look elsewhere. It’s good to get out of your bubble occasionally of course, but do it when you’ve got a handle on everything, not when you’re trying to figure it all out. When you’re overwhelmed it can feel like chaos out there, while when you’re comfortable it will seem like a lot of it covers the same stuff.
Schedule time for learning
Dedicate some time every week to exploring and learning. It doesn’t have to be a big thing, just have a look at a couple of the items on your list to get familiar with them. An hour of studying can make a world of difference.
- Use Pocket to save articles for later, instead of keeping them in tabs, or trying to read them mid-flow. You can tag them as you like, which will help you with focused reading later.
- Sometimes just googling stuff and figuring out definitions is a huge step, and helps some things to click in your mind. Sometimes things that seem like a big deal turn out to be quite small.
- Focus on one thing at a time. Don’t try to tackle everything at once, just spend half an hour studying one specific topic, and understand it properly.
- Review your core resources. Maybe there’s an update to one of the frameworks you use, or you find some useful functionality you didn’t know about.
- Mess around with new things. You don’t have to do a course or use something on the job to get the gist of it, just do it for fun. Poke it a bit. If you’ve never worked with NoSQL, clone a MongoDB/Mongoose seed project and have a play around. That’s three things in one go.
Doing something routinely can make it something to look forward to. Your commute becomes your reading hour, Sunday night becomes your Sunday night experiment. Plus, you’ll get a dopamine boost from achieving something.
There’s an awful lot of noise out there, especially online, and it’s incredibly easy to feel like you’re doing everything wrong. You’re not, you just need more perspective.
A lot of people write bad code
Just like a lot of people are bad writers, bad singers, or bad at maths. Startups with $2m funding can have bad code. People who work for Google can write bad code. Even great companies and great developers write bad code. All we can do is keep practicing, and keep learning.
People only talk about the good stuff
No one talks about the fact that they were up til 2am trying to fix a simple bug, or the fact that in their day job they’re stuck working on legacy code. They talk about their side projects, and the latest shiny thing they tried. Social media makes it seem like everyone’s working their dream job, but actually a lot of people are working long hours to tight deadlines, and leaving the office well into the evening.
People have different priorities
Some people see development as their main interest, and some people have other priorities, and other things in their lives. Some people live for the newest tech, some people are dead set on their side hustle, and some people just want to be popular on social media. You don’t have to keep up with people who spend every spare minute reading the latest blog posts. Let them sum it up for you.
Articles are deceptive
People like to write articles about what’s possible, not what’s common practice. Most stuff you don’t need on a day-to-day basis. Just because it’s cool or impressive doesn’t mean it’s useful, or that you need to be able to do it.
Job adverts exaggerate
Job adverts seem to have endless lists of requirements, but they’re written with the perfect candidate in mind. A lot of what’s listed you will need, but the rest is often just fantasy. Some of it you’ll learn on the job, some of it they want to use but aren’t in practice, and some of it is just part of their 5-year roadmap. Some of it is just keyword stuffing, to attract candidates with a ballpark skillset: if you know LESS, you’ll be able to pick up Sass easily.
Make sure your managers are informed
Sometimes your managers aren’t aware of the level of work involved in things. Maybe they’re not technical, or maybe their knowledge is out of date. Often they don’t realise that you can’t just “add a dropdown”, that actually, it’s a custom select component with autocomplete functionality, and it needs two new API routes.
Coding’s just part of it, and having a good set of tools will help you to work smarter, and to better-manage your workload.
Spend time on core skills
Skills like problem solving, critical thinking & testing are like power-ups for developers. Dedicating a little time to learning how to approach problems in a methodical and systematic way will save you countless hours going round in circles. And they’re helpful in every area of life.
Use proper project management tools
Plan your projects. Manage your tasks. Track your bugs. Use git for version control. These tools all exist for a reason, and they help you keep track of everything that’s going on. You’re not supposed to store everything in your tiny human brain.
Minimise duplicate work
There are things you do a lot, and some of them you can cut out to make things easier.
- Use a good code editor. Features like autocomplete and tooltip definitions help you to get on with coding without hopping around the codebase trying to figure out what’s going on.
- Use snippets. A good code editor will let you set up snippets with shortcuts, but sometimes it’s just good to keep things in a file that you can copy and paste from. If you find yourself googling the same thing all the time, put it in your snippets file with a comment describing it, so you can find it easily.
- Keep track of reasoning. Often you’ll find yourself working through some code trying to figure out why you designed it that way. It’s a lot of cognitive overhead to repeatedly try and understand the same thing, and documenting your code well will help you save time & energy.
Fresh air, exercise, and conversation
Sitting in a room staring at a screen for 10 hours straight isn’t healthy. You can get too caught up in imaginary problems and lose sight of the big picture. It’s important to get out of your own head, as well as to keep your body and brain healthy. Go outside. Pet a dog. Let your eyes readjust. Talk to someone who doesn’t know what HTML is.
Ask for help
The people in your community want to support you. That’s why they write articles, build open source projects, and ask if you need anything from the shop. Ask for good resources, pointers, or support with your workload. Usually they’ll be glad to help.
Hopefully there’s been at least one idea here that’s helped you feel that life’s a bit more manageable. But I’ll leave you with one more.
Close your damn tabs.
What helps you feel on top of everything? Share your suggestions below.