Imagination

06/21/2020

A creative imaginative person. Does that sound like a programmer? To most people the answer would be "No!" Go ahead, imagine a programmer (see what I did there).  What do you see? Someone who is very logical and is all about facts and code? Or do you see a creative person who does art, plays music - or even writes music, writes fiction, and builds really cool things?  Maybe both of these people are programmers. But even if so, what does imagination have to do with programming? Wouldn't our creative person need to put their imagination in a box and push it under the bed or shove it into a drawer in order to write good logical code? Well..... actually imagination can be a useful tool for programmers.

Programmers can use imagination to write brilliant blog posts... uh ok.... so I haven't done that yet. But I'm only half joking here. Writing a blog can be useful to programmers as it helps them to think about what value they have to share with other coders. This could be vast knowledge of programming languages, experience communicating with clients, or just something kind of random like this blog.  Whatever that thing is that you have that makes you unique as a developer, it is helpful to both yourself and others if you share it.  There is always something to learn from other coders. Even if you have been programming for decades, even Newbie Coder over there has something to teach you.  When you learn that thing (whatever it might be) from Newbie Coder, you become a better programmer.  Then you teach Newbie Coder what you have to offer. They also become better. The next lesson you learn from Newbie Coder is better than the first, because Newbie Coder is a better programmer thanks to you... and the next lesson you teach them is likewise even better than your first because you are a better programmer now. [INSERT COMPUTER CRASH HERE DUE TO ENDLESS LOOP]  Programmers have the power to make each other better programmers.  One way of impacting other developers outside of the ones you know personally, is go ahead and put away any feelings of being an impostor and share that value by writing a blog. Your imagination can help you to figure out what value you have to offer, come up with ideas to write about, and think of appealing ways to write the thing you want to write. (And even if it is a complete mess, it probably has the power to help someone somewhere)

What about debugging? We all know that as developers we spend way too much time doing that. How much time? I would love to do a study and find out so I could have some hard data to give you, but I'm just going to speak from personal experience and from the experience of others that I personally know, and from the experience of others that I have read about and say it's a lot... undeniably a lot. What if you could cut that debugging time by at least a little bit? Well, imagination can help here. If you could imagine what could go wrong with your code as you write it (or ideally before you write it) you can anticipate what bugs might pop up before they actually do. This is no guarantee as I can guarantee that you will still have bugs... but it is a suggestion that using the imagination in this way can cut back on debugging time as it can prevent some bugs from ever being written in the first place. Imagination also helps once you are in the middle of figuring out a bug - either your own or someone else's. Yes there are really great debugging tools in IDEs that are super helpful. But why not also use your special debugging tool in your head? Imagine what the code does - both what it should do and what it might do based on what you see on the screen. When you see the bug happening during testing, imagine what code might have caused that behavior. It gives you both an idea of what to look for and how you might fix it. Imagine possible fixes and play them in your mind. Once again, when you need to get into breaking down the code line by line to get to the core of what it is doing, go ahead and use your debugging tool. Just don't neglect the value of a good imagination. It can help you jump to solutions even quicker, or at the very least it will help you to eliminate possible incorrect paths. 

Want to write your own game or other cool app? Imagination helps here too. Of course you have to use your imagination to invent that cool new game or app. Maybe you have the desire to build something cool but think you aren't capable of doing so. Maybe you feel like you are that stereotypical programmer that is all logic and facts and no imagination. I can't prove this with any data, but I have a strong feeling that this isn't true. Some people are more naturally creative than others, but everyone has some creative capacity. Embrace your creative side. Start drawing - even if you are no good. Or find something else you enjoy like photography, scrap-booking, dance, or even cooking. Find something creative that you enjoy and spend time doing it. At the very least you will have a good time and it will develop your creativity enough to make you a better developer. Ideally, you will find some inspiration for that game or app you want to build. Even if it puts you in a better mood while you work, you are still a better programmer than before. 

Maybe you don't want to create something new, you just want to do a good job building that feature for your client. How can imagination help? It can help you anticipate what your client overlooked. You can imagine how a user interacts with that feature. In your imagination you can see what problems might arise if you build the feature exactly as your client requests. You can see what changes might improve that feature. Doing this brings more value to your clients than just simply doing what they asked. Imagination helps you to see the why behind what your clients ask for, and that helps you help your clients bypass potential pitfalls in their feature design.  Imagination can also help you see possible solutions to tricky problems once you dive into the code and are in the middle of building that important new feature that your client expects to see done yesterday. When you get stuck, imagination can help you see more alternatives for getting by a tricky problem. 

Of course, there are many many other ways imagination helps you be a better coder.  For the sake of the post not continuing forever, I am going to end my examples right here. The point is that imagination is a useful tool for any developer, however they might use it. Am I trying to say here that imagination is all you need and that you can leave all your facts, experience and logic behind? Absolutely not. You still need those things to make good quality code. If you can imagine lots of ways to write your code, knowledge and experience help you to evaluate which way will be best. For example, knowing your stuff will help you determine which option will result in faster code or will be easier to maintain, etc. You also have to have enough knowledge to know what you can possibly implement in reality.  However, imagination can and will make you a better programmer. Even if you don't see yourself as a creative person, you can develop that capacity to some extent and will improve as a developer for doing so. So go out there and dream your code to life. 


© 2020 Coder's Toolbox blog. All rights reserved.
Powered by Webnode
Create your website for free! This website was made with Webnode. Create your own for free today! Get started