Question:
Why does computer programming require so much creativity?
2013-06-06 13:39:08 UTC
The reason I'm asking this question is because I read various forums that said that you need to be good at math to be good at programming, but I find that this isn't true as I did computer science, and found it pretty hard since you have to invent code from scratch and make it work. In other words, I'm great with mathematics, economics and geography but when it comes to writing computer code for C++, VB, and Java, I cannot write code for my life, regardless of the fact that I'm great with math, and there are people in my class who aren't great with math(as in below 70%) but when it comes to writing computer code, they have no difficulties in making it work, and they are great with English Literature, Humanities and History. Which leads to my main question, why does computer programming require so much creativity?
Six answers:
Matt
2013-06-06 13:46:13 UTC
Different types of code are just languages. It's the same concept of writing a narrative in English, except that narrative is trying to make something work. And in computer science Math is VERY important and those other students will struggle later on when they are having to write algorithms to solve problems.
2017-01-19 08:24:02 UTC
Creative Answers Require
Almighty Wizard
2013-06-06 13:58:52 UTC
It really depends on the type of problem you are trying to solve.



If the problem has a distinct set of steps, mathematics should be your saving grace. Why do I say that? When given problems in a math course, many times it is necessary to prove why a theorem works, or how you arrived at an answer starting with a formula. This is where programming roots itself. If you are given a problem, you must work out step-by-step every piece of the process that is needed to get the job done.



Now, this can be stifled when it comes to logical problems. If you can't think outside of the box, then you will have a problem. These types of problems may include scheduling or routing problems, which do not have a distinct set of steps for solving within a reasonable period of time. This is where creativity comes in to think outside the box of the problem. Either you try off the wall ways of computation, or you transform the current problem into a different problem that can be solved easier. This last part is also mathematical.



Basically, being good at math is the basis for a good programmer; you have to be good at the basics of math and be able to prove out your work. You don't need advanced math knowledge for most computer work. Creativity comes into play when you need solutions to bigger, more complex problems, since a straight forward solution is either impossible to find, or would take far too long to solve a given problem. Realistically, it's not that you have to be good at math, but you need to be good at logical math.



Sure, some people may be able to churn out code no problem and be not-so-great at math, but that doesn't mean it's good code. I can churn out hundreds of lines of code to sort collections, but if it takes seconds to sort 10000 items instead of milliseconds, then my code is useless. That is where the real math comes into play by proving that your solution is the best for a problem.



To say math doesn't play a part and creativity does in computer programming is naive. Both play a major part since both are tied together.
_Object
2013-06-06 14:05:06 UTC
Programming requires making logical decisions, not necessarily creativity.

What you might see as being creative is likely a demonstration of others' abilities to visualize patterns or trends -- thinking outside the box.

When you program and you notice a trend, before you start writing you should always pause and plan out the basics of what you're going to do. Think about what you need to do on both a high level (i.e., use this hierarchy to accomplish x) and low level (i.e., is there an alternative to using push_back() to a vector)?

Weigh the advantages and disadvantages, and than see if there's any way to combine approaches without causing undue confusion on the user's end or creating spaghetti code. It's all about design, and it's your job to ensure that the code is as elegant, short, and descriptive as possible.

Without a plan your code will be terrible. If it helps you, write psuedocode and use decision matrices.

As you get more experienced, you'll start to recognize patterns that your classmates may (or may not) apply, and be able to recognize where they are appropriate and apply them effectively.



tl;dr: You're not making good design choices. Evaluate and explore your options more closely next time you program.
cpcii
2013-06-06 13:45:34 UTC
It does not take a lot of creativity to be a programmer, you just have to know how to use the Library or SDK for a particular programming language. Different languages have different benefits and different disadvantages and you just have to learn how to use those different features.



Being good at math is a help (I have 2+ years of calculus from college) but I haven't had to use any of it in my experience as a programmer.



You must be creative to figure out a way to solve the problem you need to solve using a set instruction set (the programming language of choice) and sometimes have to create your own functions using that set, but it isn't hard over all.
ronnie
2016-04-18 20:57:20 UTC
A Japanese Zen Backyard is a garden that utilities simplicity and different theories of ‘cause and impact‘, utilised to enhance rest and tranquility. Zen Gardening is a wonderful way to get involved in the garden and still come to feel relaxed, pressure free of charge and closer to nature. If you are interested in make one for you then the ideal location to understand how is this https://tr.im/OOqmC , Ideas 4 Landscaping manual.

Ideas 4 Landscaping will save you money and give you the choices that you would otherwise not locate. With his database, you'll really be able to make the "dream home" landscape you've always wished to have.


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Loading...