January is National Creativity Month, and while you’ve probably seen poets, screenwriters, painters, and other artists celebrated on social media, too often, programmers are left out of the spotlight.
It makes sense. People still see programming as sitting in front of a monitor, clacking away at a keyboard all day. Many don’t even realize that creativity is actually one of the cornerstones of development — but what’s more creative than using cutting-edge technology to solve problems and hopefully make the world a better place?
Creative coding is gaining popularity as art projects built with tools like p5.js become more mainstream. But, you don’t need to be an artist to be a creative programmer. There are several steps you can take to help showcase your creativity in your everyday work.
1. Develop your foundation
First, you’ll want to diversify your programming knowledge (and toolkit). Experimenting with different programming languages will help you learn new methods and processes that’ll help you breathe new life into your projects.
You’ll also learn more about the various programming paradigms (e.g., functional and object-oriented) and their respective principles and approaches, providing you with multiple perspectives to approach your problem-solving.
Kenny Lin, Skillacademy’s Domain Manager, explains how learning new languages helps develop his creativity:
When you explore new tools and trends in your industry and see how other developers are using them, chances are, you’ll find some great inspiration.
2. Learn from other developers
Creatives often learn from the old masters. Painters study Picasso. Writers study Shakespeare. Programmers study other, more advanced programmers.
Take a look through online communities like the Skillacademy Forums and Stack Overflow — see what other developers are working on. Try to find someone who’s building a project similar to yours and extrapolate from their solutions.
Or, you could take a direct approach and ask a more senior developer for a couple rounds of code reviews. Their feedback could provide new avenues for you to explore or problem points you hadn’t considered.
Plus, you could even put your heads together and build a group project! That way, you can learn from a more experienced programmer first-hand as you create something incredible bit-by-bit. Two minds are sometimes better than one, and the brainpower in collaborative coding is far more than the sum of its parts.
3. Maintain a beginner’s mindset
As your coding skills have progressed, you might’ve developed a list of helpful code snippets that you plug into different projects. That’s great, and it’s a habit that’ll save you loads of time throughout your career, but it also means you’re probably not trying to find new ways to achieve those same functions.
Similarly, as you become more proficient, you might spend less time brainstorming different ideas when you’re faced with a problem. It happens to all of us. Once you’ve found a solution that works, why wouldn’t you keep using it? (If it ain’t broke, don’t fix it, amirite?)
Still, while helpful, this habit often curtails creativity. That’s why the “beginner’s mindset” is so important. You can’t learn and grow if you think you already know everything.
Before starting your next project, take a little extra time to think of alternative solutions. Try to come up with at least three. Even if you end up going with the first one, exploring new workarounds will help you flex your creative muscles. Kenny, who we heard from above, explains how before building a project, he takes a moment to ask himself a few questions:
“The big one is — what problem am I trying to solve? For me, this question then branches into something like: Is there something that I’ve encountered that could be made easier through an app or a script? Or it could be that my ‘problem’ is I want to practice writing code in a language or framework I’m rusty in. Maybe I want to try out a new language or framework. But in all cases, I think back to ‘what is the problem I’m trying to solve?’”
4. Find exciting side projects
You know what they say about all work and no play.
It’s easy to try to achieve your goals as quickly as possible, but churning out project after project to flesh out your portfolio is a great way to burn yourself out. Give yourself a little room to play. Believe it or not, fun and creativity actually play a huge role in your education.
Try stepping away from your career path for a moment and find something that inspires you — something you’re excited about. It doesn’t even have to be work-related.
Andrew, one of our learners from Scotland, built this cool data science project based on RuneScape (a popular MMORPG) while working through our Data Analyst career path. His project exemplifies how we can apply code to our other interests — whether it’s gaming, art, or even music.
If you’re having trouble coming up with a side project, why not add your own spin to one that you build in your coursework? Take Robert, another of our learners, as an example. While creating a Blackjack game, he added a little twist by using six decks instead of one. As he explains in our forums, this helped sharpen his problem-solving ability as he figured out different ways to implement this added functionality.
Need help coming up with ideas? Check out these learner projects for more inspiration.
5. Look outside of tech
At the end of the day, creativity is a muscle. It gets stronger the more you use it, no matter the context.
That’s why it can be helpful for you to explore other creative outlets.
Pick up a paintbrush. Spit a freestyle. Step away from your code to give yourself a chance to come back to it later with fresh eyes. Take it from Kenny:
“When I was first learning how to code, I kept trying to abstract this knowledge to other areas. One that kept coming up was actually cooking and thinking about how different actions, like chopping veggies, can be a function that I call over and over again — and pulling together these different functions to make a dish is like building an app. It’s such an eclectic mix of things that I draw inspiration from, and I think that’s the same for everyone.”
It’s like playing video games. How many times have you rage-quit after a difficult level or boss, just to breeze through it when you came back later?
Stepping away from your code gives your brain time to process information and make new connections. As Kenny explains:
“Sometimes in programming, the best thing to do after hitting a wall is to step away and take a break. This comes after trying on my own to figure out a solution, searching online, bugging colleagues. But after some time doing something non-programming related, I come back to the problem with a fresh perspective, or I might’ve been inspired during my break and eager to try out something I thought up.”