If you’re not artistically inclined, you may be surprised to hear that Rithm’s alumni network is full of creatives: people who have worked in fields like digital media, art, and music (we have lots of musicians).
But if you are artistically inclined, that’s probably not surprising to you. In fact, your background in art might be the exact reason why you’re considering a career change into software engineering. While it’s easy to think of this as a cut-and-dry field, the truth is that coding is a very creative endeavor. From finding inventive solutions to problems to building something out of absolutely nothing, it’s an art form in itself.
In this interview, our Director of Career Services, Sophie, sat down with r30 grad (and artist!) Sarah Graup to discuss the parallels between creating art and coding.
Sophie: What was your introduction into software engineering?
I was first introduced to programming when I started creating art during Covid. I realized that both are very similar, especially in the hyper-realism and meticulousness of it, and the technical skills that you need, the little details that altogether create this whole.
Sophie: What skills do you think you will be borrowing from what you learned as you were getting interested in art? Think about your style, your approach, and what type of art you create.
It’s made me more attuned to the aesthetics of code and more willing to experiment with different solutions.
With programming, creativity is figuring out the best way to implement. Is there a clever way to use less code or make the code run faster? Coming up with new ideas and finding unique ways to bring them to life.
It’s also about attention to detail and composition. When I am creating art, it’s all about the details and how the elements are arranged in the piece. For programming, it’s considering the structure of the code and the way you arrange your functions, variables, and classes. You don’t want one part or one function taking all of the attention or doing all the work when the others are barely used. You can break it down and it becomes a well-composed codebase that is easier to navigate through.
Sophie: What kind of art do you make?
I started with self-portraits. For me, it was easier to create art based on a photo. I was finding pictures with good image quality and details to create as much texture as possible, usually photos of myself or my friends. I started getting interested in how to create a very realistic eye or hair, or how to understand the skin texture.
Sophie: What is your process and what similarities exist in the process between creating visual art and coding?
For both art and programming, I break down the large project into smaller more manageable pieces and then I tackle each piece at a time. For art, it might mean focusing on one part of the face at a time. In coding, I break down an application into specific functions or components. In both cases, it’s a lot of trial and error. You have to experiment with different approaches or techniques until you figure out what works best. The ultimate goal is to assemble the pieces into a cohesive whole that you want. Whenever I encounter a tough problem I take a step back to gain perspective. First look at the entire whole then focus and look at one thing at a time.
I created a step-by-step guide for myself. Here are the 3 main steps: planning and testing, blocking in, and refining.
The initial planning and testing step: start off on the right foot, avoid mistakes or unnecessary work
Before I begin to draw I analyze the subject of the portrait, the facial features, play of light, color variations. It’s like I am testing my ideas and techniques before I actually commit to the final piece. With coding before you even start you need to understand the exact problem you are solving, the purpose of the application, or the user’s functionality. You will likely write pseudocode or a rough idea. With TDD you can write tests that reflect your desired outcomes.
The blocking in step:
With art you start blocking in the main features of the face to get the placement and proportions right. With programming you create the main components or functions of the application, getting the basic structure.
The refining step:
Feature by feature, just to get every detail and I constantly compare each little piece to the whole to make sure everything fits together. For programming, it’s the debugging and refining stage. You can test each component or function by itself, fix any bugs, and ensure that each part works together. You check your code against the whole program.
Sophie: What you have described is a very personal process. How do you react when you read someone else’s code?
I look at the overall idea and the comments. I see what each thing does. I tend to start by looking at the smaller pieces, so in a way, it’s the complete opposite of my own process.
Sophie: What do you like about being a software engineer?
Coding is an awesome creative puzzle. Like drawing or painting when you have this idea in your head that you want to bring to light. With all the projects I create it’s like a new set of brain teasers, figuring out how everything fits into place. It’s also about creating something useful. I constantly push myself to find the best solution and make everything work the way I want it to.
Sophie: Any words of wisdom for the people who are going to graduate soon?
Don’t forget why you enjoy programming in the first place and keep up with your programming skills while looking for a job.