80 Comments
- inkedmn, on 07/24/2008, -1/+70He speaks the truth - people think programmers simply translate concrete ideas into source code the same way each time, but there are so many interesting (and often difficult) problems to solve and creative solutions to be found. I love my job :)
- JaysonthePirate, on 07/24/2008, -2/+39This is true. as one of my professors put it, "Coding is a form of art. It requires you to be as creative as an artist, while following the constraints of an engineer. Too bad the vast majority of the population will see your masterpiece as just a bunch of nonsense text."
- inactive, on 07/24/2008, -1/+33Doing things for fun seems to produce the best results, no matter what the task is!
- homercles337, on 07/24/2008, -0/+16I can generally be classified as a scientific programmer. Sometimes i can get stuck on one solution, but once i have a couple beers the solution just comes to me. Probably kind of how all great american authors are drunks. When coding though, the thing is make sure that one does not get too drunk (im reminded of that xkcd comic).
http://xkcd.com/323/ - rearlgrant, on 07/24/2008, -3/+1812. Don’t be afraid to build off the code of others.
I'd say by far the majority of coding problems I'm asked to figure out are due to a design decision that violates this rule. - n3il89, on 07/24/2008, -2/+15i find thats one of the biggest differences between a coder and a programmer. a programmer writes code that someone else can code on top of while a coder codes useless code only understandable to themselves.
- dkapuchino, on 07/24/2008, -0/+13The true creativity comes when you have to debug problems. Understanding why things don't work is a whole lot harder than telling a computer to do what you think should work.
- inactive, on 07/24/2008, -1/+14Programmers are great problem solvers, and this gives us an interesting insight to their techniques. Fascinating for a non-programmer like myself...
- seandfeeney, on 07/24/2008, -1/+13This is a pretty low level, noob article. Dugg for exposure for the new guys.
- cotaskmemalloc, on 07/24/2008, -0/+10I dispute that, I feel that creativity is at is highest during design. While debugging can occaisonally be more difficult than design, saying that it is 'a whole lot harder' in general is a sign of a poor programmer, in my opinion. Telling a computer what to do in a VB project for high school is easy. Telling a computer what to do in a performance-critical, elegant, clean, extensible fashion is not.
- duihomer, on 07/24/2008, -0/+10Good post. I'm no programmer (network/system admin by trade), but code for fun and for a couple of extra bucks. It is a great outlet for my creative and problem-solving energies. It stretches my mental muscles in ways my day job cannot.
- ePuck, on 07/24/2008, -0/+8Draw it out first
- dkapuchino, on 07/24/2008, -3/+10I actually believed you "solving problems" until I read the words "web developer".
- dkapuchino, on 07/24/2008, -5/+12As a professional programmer for the past 10 years, I can definetly say that the coding part is probably the least creative. Software design and system architecture give room for some more creativity, but even then, most of the time things repeat themselves.
- dkapuchino, on 07/24/2008, -1/+7Or, you're one of the seldom few that actually have interesting jobs, where it's not just a matter of translating Ideas into Java/C# code, but you have to deal with real time constraints, special hardware and optimization problems.
- Dracusis, on 07/24/2008, -0/+6Until you get her pregnant.
- hughesj919, on 07/24/2008, -0/+6When I'm getting paid for it I do.
- hadamin, on 07/24/2008, -2/+8Paul Graham's Essay "Hackers and Painters" is a good read that touches on the creative mindset of code-enthusiasts.
http://www.paulgraham.com/hp.html - wice, on 07/24/2008, -0/+6these advices are too general, and some of them have nothing to do with creativity.
and "Start making abstract associations"? please. to be able to do such thing, you have to be ab ovo creative. it's not something you can learn, at least not intentionally.
on the other hand, most of the advices are useful, but remember, big projects usually need very few creative programmers, and lots of ok coders, who are able to stick to the rules, eg "learn, remember and use the standard denominations", "write the test before the code" etc. - dkapuchino, on 07/24/2008, -0/+6and when you finish telling it what to do in a performance critical fashion, and that just isn't enough - it's your ability to understand exactly why things aren't working out as you planned that really matter.
When you finish reading a datasheet of a new chip you're going to be working with, but have to workaround a bug in the chip that will only be fixed in the chip's next reviison - that's when you differentiate yourself.
When your embedded device won't boot properly, and all you can do is debug it using a single wire from your CPU, that's when you know that you're doing real work. - hambend, on 07/24/2008, -1/+6He's right that programming is a creative process, but just about everything else he says is a wash. Start from the ground up, but don't be afraid to build off the code of others. Well *****, I guess I'm bound to be creative one way or the other.
Structure as a tool? No *****, it's ALL structure. Do it for fun? I spend 7.5 hours a day building software at work, any more than that and I'm likely to burn out AND have no social life while I'm at it. Question everything, don't rule anything out, always look for a simpler and more elegant solution and never stop testing, as long as you're not worried about ever finishing what you're working on. I don't think this guy really knows what "abstract associations" are. I'm not sure either, which is why I probably would have just said "good ideas."
Everything else he mentions you will learn in a much more concrete and useful manner through experience, something this guy clearly doesn't have. In the real world, programmers must inevitably compromise their creative vision in order to get ***** finished. - mllawso, on 07/24/2008, -0/+5The worst programmers I've seen are the ones that use code as a means and not an end -- that is they write code to accomplish a task, without understanding (or even wanting to understand) how it works.
Who's the better programer: the one who taught their self how to code, and do it for fun; or the paid programmer that learned C++ in college, and doesn't enjoy coding (but likes the paycheck). - TRScheel, on 07/24/2008, -1/+5I would have to disagree. I think there are many ways to code the same solution. Some are elegant, some are not. There is a definitive beauty to clean, concise and well written code. Creativity has a hand in that because even if two people code the same simple application there will nearly always be differences.
- cotaskmemalloc, on 07/24/2008, -0/+4Agreed
- dkapuchino, on 07/24/2008, -0/+4Just because there are different ways to solve a problem, and than no two solutions will be identical, doesn't make the solutions creative. Most of the time, you use a given set of tools and techniques, learn it not as an art, but as a skill, and solve the problem in quite a similiar fashion.
Solving a crossword puzzle, no two people will solve it in exactly the same order. But being able to solve the crossword puzzle, does not make you creative. - cotaskmemalloc, on 07/24/2008, -0/+4If I could digg you up twice, n3il89, I would. I completely agree with your statement.
- dkapuchino, on 07/24/2008, -0/+4Hey, don't get me wrong, I know EXACTLY where you're coming from. When I first started programming, it was a new and exciting world to me as well. I felt really good with myself, and had deep belief in Coding styles and methods. Anyone who couldn't cite "Code Complete", "Design Paterns" or "Effective C" weren't real programmers in my eyes. Eventually, you reallize it's all the same. Coding is a pattern we can teach our brains. Perhaps in the begginig you feel like you are discovering new grounds and being creative, but eventually, it's all about learning the basic principles and acting by them.
- cotaskmemalloc, on 07/24/2008, -0/+4@dkapuchino,
You do have a point. I work with a bunch of guys who do embedded work, and I constantly have to remind myself that it's an entirely different world over there. I still feel that design is the most creative part, but yes, you're right, it does take a good amount of creativity to debug a problem. - elbowman, on 07/24/2008, -0/+4Actually its the best way to give the client what they want. Have them in the room while you're developing. Talk it out and work it out while they watch. You get a much happier customer.
- heavyal, on 07/24/2008, -0/+4Digging you up and probably going to get myself dugg down, but yeah, once a system is defined and issues are worked out it comes down to reusing code that has already proven itself to be solid and bug free. Trying to reinvent the wheel often ends up in raising the complexity bar at which point entropy takes over and you're left trying to work out the bugs in something that would have been easier to maintain had you simply utilized the original solution.
- Veritas77, on 07/25/2008, -0/+3Maybe it's time to learn something other than VB.
- GoatMonkey2112, on 07/24/2008, -0/+3It depends a lot on the type of programmer you are. Some are not creative at all. You can get by with that and even do really well. These are usually the guys who have tons of certifications and program only because any other job they do wouldn't pay as well.
If that's you, maybe you should think about a new line of work even if you don't make as much money.
I would continue working with computers even if it didn't pay as well. I like that there is always something new to learn.
If you've gotten to the point where you feel like there is nothing more to learn, you need to learn a new language or architecture. Get a new job. Mobile devices, web, embedded, robotics, I don't know what you've done, but most likely you haven't done it all. - l3lastoff, on 07/24/2008, -0/+3"11. Always look for a simpler and more elegant solution."
This is truly a great rule when it comes to programming. I've met many people who think the most complicated, abstract, clever way of doing things demonstrates their understanding of it. While it may, it quickly becomes useless when they or someone else needs to modify it.
I find the mark of a good piece of code to be how quickly and easily another programmer can pick it up and understand it. - Dracusis, on 07/24/2008, -0/+3Nope, I think this guy missed the boat. Discovering a design pattern though trial and error is not creativity, it's just a lack of experience and knowledge. It might feel creative, but it doesn't make you creative. Not to say that software engineering can't be a creative process, it defiantly can, but the list of things he tries to attribute to being "creative" is quite mundane and only very loosely associated to forms of free thought.
Philosophy aside, if you want to see truly creative programmers take a peek at the processing community:
http://processing.org/ - neFariou5, on 07/25/2008, -0/+3Sucks to be you. I love programming it's great fun, creating something new with some great music on and a beer in your hand. I used to code professionally for a bit too.
- dokeshi, on 07/24/2008, -0/+3Some of these are right on the money... Others are a bit off from reality... I mean "starting from the ground up" is usually ideal (even if you borrowing from an existing codebase, set of ideas, etc.), but unless you're actually writing software to sell, you're probably going to be working with existing code, assumptions, architecture, etc. and tearing it down and starting over just isn't practical. Getting a good balance between your technical debt and new code, though, requires some creativity of its own. You want to see some real challenge and creativity, refactor legacy code without breaking stuff :)
- alarion, on 07/24/2008, -1/+4I can assure you, you are one experienced coder in a sea of many.
- crazyjake, on 07/24/2008, -1/+4i can code fine, but i am having horrible programmer's block right now. anyone have any ideas for software they would like to see?
- jeexbit, on 07/24/2008, -4/+6code poets unite.
- robot1122, on 07/24/2008, -0/+2I'm a programmer and I program for fun as well as for money.
- Cassanova, on 07/24/2008, -1/+3I'm only a novice programmer, but I have to agree 100% that coding is very artistic. It's like writing a paper where you want everything to flow well, make sense, be easy to read and all that. It's also like learning a foreign language. When I was trying to learn Spanish I would think in english and then convert to spanish just like in programming where I would think in C++ (the first programming class I took) and then convert that to whatever programming language I was using.
Also: 12. Don’t be afraid to build off the code of others.
That's pretty much all I do. I'm a "google programmer". I don't write too many things from scratch, I just work out an outline for the solution and google all the parts of code I need to fill in. :D - cotaskmemalloc, on 07/24/2008, -2/+4I don't know why he's getting dugg down, it's actually not far from the truth. I find programming to be the most boring part of my job as a software engineer. I enjoy the challenge of design the most.
- pcpimpster, on 07/24/2008, -0/+2The people at my company don't give concrete ideas for my projects. Only generic ones.
They say i want "this" - then i come running in a few weeks later with a full blown work flow process that gives them so much less to do they hate it... Owners love it.
All repetitious tasks belong to us. Resistance is... - zakatov, on 07/24/2008, -1/+3That pic of the USB lamp attached to the MBP is retarded... the MBP has a backlit keyboard that the lamp will turn off cuz the light sensor will think it's not dark enough to turn the backlight on.
- dkapuchino, on 07/24/2008, -0/+2Pleased embedded network developer, that's adaptive enough to deal with new technologies as they emerge. I've had my fair share of web developing when I was younger. Then I found a real job.
- lord2800, on 07/24/2008, -0/+2Never once has anyone said you can't be damn good at programming and not enjoy it. Stop making assumptions.
- TRScheel, on 07/24/2008, -0/+2"but eventually, it's all about learning the basic principles and acting by them"
That can be said about any other field. Chemistry, Physics, Mechanics, hell even walmart employees.
If you look at individual lines of code or even segments then yes, you are right, its just a pattern. If you look at is part of a whole then it becomes so much more then that. Everything takes a pattern if you look hard enough. Atoms, planets, people, etc etc. I am sure Michelangelo had a pattern to his paintings and applied what artists would consider basic principles but he surely made much better art than those that came before or after him for the most part.
From the micro to the macro in programming it is quite creative. Depending on where you start and how you intend to code it, things can turn out quite drastically different. It also depends on your definition of creative. Princeton says 'having the ability or power to create' whereas www.charlestonctc.com/c.htm says 'Innovative.'
I would argue that the Princeton definition would be applicable in every regard to coding. The charlestontc one, not so much. The chances of you being innovative when coding are small, especially in the micro. In the macro, or even slightly above the single lines of code, it is very possible. The larger the chunk of code, the larger the chances of you being innovative, for better or worse.
Which brings me full circle to my original point, that some solutions are ugly and do things horribly, while others are what I would envision as beauty in code. Coding with one letter variable names and magic numbers are easy ways to begin coding ugly code. On the other hand, standardization across your code and easy to follow progression make is a start to 'beautiful' code, or appeasing to the reader.
___
Off topic, I enjoy the debate and would like to continue it. Dont expect a response from me until tomorrow though as I wont have reliable computer access. - takameyer, on 07/25/2008, -0/+2I completely agree that programming is an art form. The passion I have gained for programming comes from seeing the creativity in the programs that are made today. Like a painter studying another painters paintings, I enjoy seeing new creative programming ideas and finding out how it's done and if i can add to or improve it. Programming is an exciting field to be in right now. There is so much yet to be discovered.
- Scaryclouds, on 07/25/2008, -0/+2Excellent programming quote.
- blazes816, on 07/24/2008, -1/+3You must be a programming badass with why way you know words like 'ROFL'.
-
Show 51 - 80 of 80 discussions




What is Digg?
Digg is coming to a city (and computer) near you! Check out all the details on our