Many people think software is some rigid, grinding environment. You have a list of tasks to get done and you do them in the prioritized order. What people don't see is how much creativity it takes to solve those problems. Have you had a client that "knew" how to code, but made up their own set of best practices? It takes a whole lot of creativity to figure out what they're talking about and get the code to work.
It's not all about problem solving. You can be creative with the things you make with your code, the way you display those weird little widgets to others, and how you decide to document things. Writing code can be as much of an art as drawing a picture if you let it. Here are a few ways you can bring some creativity and vibrancy to your code.
Go somewhere you normally don't write code
You'd be surprised how much of a difference this can make. I remember the first time I worked outside and it changed my life. It's warmer outside than in the office right now and the sunlight is a lot nicer than that overly bright, harsh fluorescent light. If you usually work at home, go sit in a restaurant for an hour. Getting out of your regular environment will change the way you think about the tasks you're working on.
It's like giving yourself a quick airing out so all of the staleness that settles in your normal spot gets shaken off. The effect is similar to walking away from a problem you've been looking at for hours and coming back later, except it lasts longer. You might get a full week of clarity just by working in a different location. Moving around helps your brain work more efficiently and we need as much of that as we can get.
Make something no one would ever use
When have a personal project you're working on and you know nobody in their right mind would use it, you get a refreshing sense freedom. No one cares how it works, what it looks like, or even what it does! That gives you a blank canvas to throw paint, confetti, and spaghetti code at. This is your moment to throw best practices aside and see what happens when you do.
The wonky app that you're making will never be seen by anyone else, so let loose. If you want to try some weird one-way binding things or you want to process data in your repository files, have at it! There's a lot you can learn from this chaos and it'll remind you of why we have best practices in the first place. Or you might solve a problem that everyone has been having and no one knew about it. It's a toss up.
Play with new libraries
Not everything you practice has to be related to your job or your normal tech stack. Taking a chance on new libraries is like trying a new set of oil paints. Even if it's not quite what you expect, you'll still have something to show people and you can say you did try something new. There are thousands of libraries out there to handle just about anything you can think of. Look up some of the new libraries that claim to do things the well-established libraries do and give them a spin.
You don't have any risks of breaking all of your existing code if you build a new project full of new libraries. This is how people are able to find those up and coming libraries before everyone else. If you find a library you really like and it's in the early stages, you can potentially start contributing to them and shape the direction they grow in. Checking out new libraries is one of the ways you expand your toolbox so you know which paintbrush to pull out when you need it.
Try connecting completely unrelated topics
By far, this is the best way to stretch your creativity regardless of what field you're in. When you start connecting the dots between topics that don't have dots, you're reaching the nirvana of creativity. The connections you can make are limitless and they will take you as far as you are willing to go with them. For example, you could try finding a way to connect web development with the zoo. I don't know how exactly, but it's an interesting combination. Maybe some kind of VR app? 🤷♀️
Try to come up with the most outlandish idea combinations and you'll start to get more creative. It's hard at first and it might make you uncomfortable when you see how small your bubble is. When I started doing this, I was surprised at how few connections I was able to make! As you keep trying to see how you can make grapes out of apples and pears, you'll find ways to connect your software to pens, mosquitoes, and whatever else you come up with.
Remember, the goal of flexing your creativity is not to be right. It's to try something different. You might not have the time to do this at work, but you can practice it anywhere. Start by looking at the little things around you and notice those details and see where else they are used. There are tons of ways you can increase your creativity and it just takes practice.
One thing people tend to think is that you're either creative or not. That's simply not true. Creativity is a skill that can be practiced and cultivated just like learning new frameworks. What are some things you do when you feel uninspired at work or at home? Most of the time experiencing something new or something old in a different way can do the trick.
Hey! You should follow me on Twitter because reasons: https://twitter.com/FlippedCoding
Top comments (9)
"When you start connecting the dots between topics that don't have dots, you're reaching the nirvana of creativity."
Yes! This is an excellent point. There are too many to-do apps and Hackernews clones out there already. Get creative!
Nice tips! I often have to take a step back and remind myself that coding is really magical (!) - and I like doing that by just making something fun, just for me. I really like the idea creativity is a skill that can be practiced - so just make something fun and something you wouldn't normally do! Thanks :)
I like these points. I do hope to see the conversation evolve to include how to foster creativity in stricter development environments. We only have stationary individual desktops at my workplace and I know my colleagues are yearning for some of the benefits you analyze here.
Fantastic post! I love the idea of building things that no one would use. It sounds so freeing :)
Great article! Thanks Milecea. I will certainly put this tips in practice.
Very promising post and techniques , I like sleeping on the problem and deriving and exploring the solutions which comes out of wrap as an instinct.
Some Great tips and ideas her Milecia, keep up the great work!
And don’t forget to share your work! Even if you think it’s not very good, sharing with a friend is a good way to keep the creativity flowing.
YES!!!
And when you take on such creative projects, consider using...
The Cranky Developer Manifesto
Jason C. McDonald ・ Feb 8 '18 ・ 9 min read