January is International Creativity Month and we had Davin Team Members Rico (Computer Scientist/Developer), Neetigya (Applied Computer Science/Software Development Programmer), and Mike (Director of Software Development) share some of their thoughts about creativity and coding.
RICO: There is a broader misconception about what coding entails which tends to push away candidates who would consider themselves creative types. I feel the depth of the field is often misunderstood or underestimated especially when it comes to the more creative applications.
NEETIGYA: Most of the programmers are tested for their logical ability, problem solving ability, and critical thinking. I rarely see a job description focused on creativity. It is considered that you can be a good programmer only if you are logically strong and can deliver under pressure.
MIKE: In the early days of computing, good math and algebra skills were very necessary as coding involved manipulating the computer at a very low level. Over the years, computer hardware, operating systems, and languages have evolved tremendously to remove these tedious tasks. People still believe that programming is math intensive, however today we are writing code at a much higher level and very little math is involved.
N: Programming works on the “you don't need to reinvent the wheel” concept, that means that we need not to write the functionality or code that has already been written by other developers. The purpose of this approach is to save time but it is quite opposite to the definition of “creativity.”
R: The lack of a “correct” answer in coding is where I find much of my creativity coming in. There are many ways to accomplish the same goal in code. This means that many variations can all “work” relatively well.
M: If you give the same problem to 5 coders, you will get 5 different solutions that all solve the problem.
N: One problem can have many different solutions. The approach taken by two developers to find the solution of a problem can be completely different. That’s creativity.
M: Coding is different based on the overriding project constraints – coding for speed of execution vs. security vs. fail-safe, for example, result in different solutions.
N: I believe that creativity plays an important role in deciding what do you want to achieve through a certain program. There is a limit for optimizing the code, after that there is trade-off between time and space, and we need to pick one. That choice depends upon what we want from our program. For example: A program on a chip can only have limited memory. A bank transaction system must function under time constrains.
M: The ability to visualize solutions, symbolic logic, and juggling multiple decision paths are the primary skills required by successful coders.
R: Finding a clever way to complete a tricky operation cuts down on initial work time, testing, and maintenance. Many times, these solutions will be unconventional, such as “tricking” code that already exists into answering a different question. This is why coders will often consider the changes they need to make for hours before writing it. Finding these little shortcuts, or the smartest way to tie the new code in, can save enormous amounts of work on the other end.
N: If a new coder asked me for advice about creativity, I would say exploring the possibilities is important and not settling for just functional code. Take calculated risks.
R: I would say the biggest thing is not to get bogged down in the syntax of whatever language they start with. There are many times where the reasoning and broader structure of someone’s code are exactly correct but a simple misspelling or lack of punctuation breaks the entire code. If early coders can fight through these frustrations they can begin to see the many ways the problem can be solved and appreciate the creative and clever solutions that can arise in this medium.
M: Keep in mind that writing code for gaming has different constraints than writing code for accounting, understanding that difference is key.
Happy International Creativity Month and we at Davin hope to inspire all the coders out there, old and new, to take a creative look at all your programming problems.
Let Us Know What You Thought about this Post.
Put your Comment Below.