Tuesday, February 24, 2009

Coding is Easy

There, I said it. What a relief too.

Coding is easy. Once you learn the syntax of your language of choice, hammering out code is easy. The hard part is the design onto which you apply your code. The better the design, the easier the code.

With a nod to Kathy Sierra and her wonderful graphs...

I don't mean to infer that there is a sweet spot there where design goodness and complexity of code meet, just bare with me.

My point is simple, the better the underlying design, the easier it is to code against. Naturally I see this as a database thing as that's where my level of "expertise" lies, but it applies to all software development. Java, Ruby, .Net, whatever. In the OO world it would probably be class design. In my world, it's all about the data model.

If it were so easy, why the heck do they pay us so much? I ask myself that every day. Since I wasn't talented enough to play professional baseball and make oodles of money, I consider myself extremely fortunate to make the money I do at something I so thoroughly enjoy. I sometimes feel guilty about it too.

But why is it easy? I don't really know how to answer that. It's just been my experience. I would also imagine there is alway an exception; as I don't write programs for the Space Shuttle, I can't attest to that, but the point is the same. If you have a good model (design), coding is easy.


Anonymous said...

Try coding in C/Assembly. Of course design is important, but your design will be better if you use a better language.

oraclenerd said...

I don't have any experience in either language but I suspect that the same holds true whatever your language...obviously I can't speak with any authority to what you say.

Doesn't it still hold true though that if you can reuse something (for example) you should? Do either of those lend themselves to reuse?

Anonymous said...

Well, self-starter programmers/hackers don't always distinguish between coding/programming and designing. This is an enterprise terminology I think to divide responsibilities and increase efficiency in large projects.

So ultimately developing smart entities is as easy as developing an ant or a human. Which is to say, it's not necessarily easy, but it's a wondrous activity.

oraclenerd said...

well said Abeer!

oraclenerd said...

For further reading on Code Complexity (Cyclomatic Complexity) go here: http://en.wikipedia.org/wiki/Cyclomatic_complexity

Anonymous said...

Seriously? You're citing *Kathy Sierra*? On *programming*? The only thing she's ever programmed is a game that came free with cereal, and she wasn't even in a senior position on the project.

She's not even a competent blogger, for fuck's sake! A couple of random comment trolls managed to scare her so badly that she had a total meltdown (as a blogger, I'm embarassed just to be using the same medium as her).