I've been following a lot of programming forums recently and I come across a lot of enthusiastic developers. Ones who are very excited about what they're doing and are thrilled to tell everyone about it. Usually it's refreshing to see, and it resonates with me as I too am not only in it for the money. I have a genuine interest in my profession that manifests itself through sleepless nights spent in front of the computer, trying to add new features to my hobby apps that no one uses. But I am not interested in everything that I do.

Making a good application requires one to have skills in a lot of different areas. Front-end, back-end, database design, UI design, testing, DevOps, and what have you. Someone on the internet once said that building an application is akin to building a house, one day you're laying bricks and the next you're doing plumbing. These days the term "full-stack" seems to encompass every skill a developer might need in the path of building and deploying an application. Yet somehow we're still expected to be these geeky people who are so interested in their job that they talk about JavaScript at parties.

Reality ain't like that. Devs are being asked for more and more and if someone is a full-stack developer by today's definition, there's zero chance that they have a vested interest in all of the facets of their job. The age of geeky specialists has died and the age of jacks of all trades has begun. And it's made us all a bit more depressed. But let's look on the bright side, our knowledge is broader. We are those people who can build a house from scratch (the Amish?). It's just that we don't do it with the same level of enthusiasm that people had when they specialized in the technologies that they were interested in.

There seems to be an atmosphere, a kind of expectation that developers have to be excited about the technologies that they're working with and if they aren't then they must be working solely for the money. I not only disagree with that but I'll go further and say that if you're a full-stack dev who's interested in every part of your job you are either working on a very trivial project, working for a company that barely places any expectations on you, or have been working on the same project for so long that you can recite lines from its codebase better than my grandma can recite the bible. In either of those cases, comfort is what drove you to being content, and the comfort zone isn't quite where knowledge grows and flourishes.

So let me be the first to open up about pet peeves. I hate most aspects of DevOps. Whether it's fiddling with nginx/IIS or wrestling with environment-related bugs, it's not my thing. Azure and its immense collection of proprietary tools is also a never-ending source of annoyance for me. (Anyone who yelled "Docker!" whilst reading these last few sentences has probably never worked on a big enough project.) With that being said, I don't seek to avoid either of those. Because not every skill you're gonna need in this trade will be one that catches your fancy. Know any devs who like unit testing? Didn't think so. Most developers learn unit testing at work because they never found it interesting enough to play with at home. So is it boring? Yes. Is it one of the pillars of software quality? Also yes.

Many things that most people might not like are quite important in this profession. If you keep reading about and working on only the things that you like you're basically placing yourself in a bubble of comfort that will stifle your growth as a developer. Which is where this post's title stems from. Doing what you like is great for motivation, but a balanced diet of things that you don't like is imperative for achieving real, meaningful experience.