As a developer, I often hear that developers need to keep up to date with new technologies. They need to be continuously learning new things. For a lot of people, this seems to raise a few questions, the most common of which seem to be: why, when, and how?
These are all very valid questions, and I honestly haven't really thought about deep seeded answers to them, which is actually why I'm writing this post. Although I personally do try to learn new things, and I tell my co-workers that they should too, I've never really thought about why, how, or when this should be done.
There are several reasons to upgrade your skills. First, let's consider your job. If you're working for an agency, it makes sense that you keep up to date in order to offer your clients cutting edge technologies. What if you develop internal, or proprietary systems? Your users still deserve the best experience you can give them. And your managers deserve to have you work as efficiently and effectively as possible. So, why not try something like Grunt for automating tasks, or Vagrant to maintain development environments? Sure, there is likely still a need for "the way we've always done it", but why not push that? Why not consider there might be (and likely is) a better way?
If not for your work, do it for yourself. Maybe you aren't in a position to implement new technologies or ideas in the workplace, sometimes it's just too hard tom institute that kind of change. But that doesn't mean there aren't benefits to learning new things. First of all, if you're stuck doing the same old thing day in and day out, you can get really bored. You start losing your creativity. You will actually find it harder to solve problems when the do arise, because you've spent so much time thinking inside such a narrow box. If you ever want to move beyond that position of doing the same old thing, you'll need these new skills at any place outside of where you currently work.
Typically new technologies emerge for a reason. They don't just exist for the sake of existing. They are created to solve problems. Maybe the problem they solve isn't one you've encountered, or one that stops everything from working, but what if the technology just makes things better? Embrace that! It keeps your brain moving, and it makes you significantly more valuable to any employer.
When to learn?
It seems this is a touchy subject for some people. Managers obviously want you to learn on your own time, but developers often seem reluctant to learn something on there time, if it's something that is required for their job. So, when should you learn? YES.
Learning on your time
Why are you a developer? I would assume you are a developer because you like to write code, or build interfaces, or do whatever it is you do. Why would you want to be stuck with the same old thing? It's likely a comfort issue or something, but that's all the more reason to learn on your time. Get excited about development again. Find whatever it is that lead you down this path in the first place, and find that spark again. You should love learning new things! Make time to do it! Take this time to develop your own pet project. Think of something you want to do (please, not another to-do app), and build it in a language you've never used. Or with a framework you're unfamiliar with. You'll learn something new, and possibly solve a problem for yourself.
Learn on someone else's time
How to keep up to date?
There are a lot of ways to keep up with changes. Depending on your situation, these may not all work, but I'm sure something will!
Attend conferences! This can be tough. They can be costly, but are incredibly valuable. If the content of the conference is applicable at work, ask your employer to either cover your expenses, or at the very least split them with you. Thousands of developers attend conference to share ideas, thoughts, and experiences, and to learn from others. You will hear discussions on best practices, standards, and trends. It's a great way to meet people who do what you do.
Find Courses - Personally, I prefer to learn through tutorials, reading, experimenting, and discussions (like at conferences). But if that doesn't work for whatever reason, try your local college. See if there is a night school course available. Ideally this would be something that helps you at work, but really, anything is better than learning nothing!
Keep your brain working, keep your skills valuable, and have fun.