Journal Articles

CVu Journal Vol 32, #4 - September 2020 + Professionalism in Programming, from CVu journal
Browse in : All > Journals > CVu > 324 (9)
All > Journal Columns > Professionalism (40)
Any of these categories - All of these categories

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: Relish the Challenge

Author: Bob Schmidt

Date: 07 September 2020 18:43:34 +01:00 or Mon, 07 September 2020 18:43:34 +01:00

Summary: Pete Goodliffe challenges us to pick up the gauntlet.

Body: 

Success is not final, failure is not fatal: it is the courage to continue that counts
~ Winston Churchill

We are ‘knowledge workers’. We employ our skill and knowledge of technology to make good things happen. Or to fix it when they don’t. This is our joy. It’s what we live for. We revel in the chance to build things, to solve problems, to work on new technologies, and to assemble pieces that complete interesting puzzles.

We’re wired that way. We relish the challenge.

The engaged, active programmer is constantly looking for a new, exciting challenge.

Take a look at yourself now. Do you actively seek out new challenges in your programming life? Do you hunt for the novel problems, or for the things that you’re really interested in? Or are you just coasting from one assignment to the next without much of a thought for what would motivate you?

Can you do anything about it?

It’s the motivation

Working on something stimulating, something challenging, on something that you enjoy getting stuck into helps keep you motivated.

If, instead, you get stuck in the coding ‘sausage factory’ – just churning out the same tired code on demand – you will stop paying attention. You will stop learning. You will stop caring and investing in crafting the best code you can. The quality of your work will suffer. And your passion will wane.

You will stop becoming better.

Conversely, actively working on coding problems that challenge you will encourage, excite you, and help you to learn and develop. It will stop you becoming staid and stale.

Nobody likes a stale programmer. Least of all, yourself.

What’s the challenge?

So what is it that particularly interests you?

It might be that new language you’ve been reading about. Or it might be working on a different platform. It might just be trying out a new algorithm or library. Or to kick off that pet project you thought about a while ago. It might even be attempting an optimisation or refactor of your current system; just because it looks elegant, even if – shudder to think –it doesn’t actually provide business value.

Often this kind of personal challenge can only be gained on a side-project; something you work on alongside the more mundane day-to-day tasks. And that’s perfect – it’s the antidote to dull ‘professional’ development. A programming panacea. The crap code cure.

What excites you about programming? Think about what you’d like to work on right now, and why:

As I look back over my career, I can see that I’ve tried to work on things in many of those camps. But I’ve had the most fun, and produced the best software, when working on projects that I’ve been invested in; where I’ve cared about the project itself, as well as wanting to write exceptional code.

Don't do it!

Of course, there are a potential downsides to seeking out cool coding problems for ‘the fun of it’. There are perfectly valid reasons not to:

Yada. Yada. Yada.

These positions do have some merit. But they should not become excuses that prevent from us becoming better programmers.

It is exactly because we have to preform dull tasks all day that we should also seek to balance them with the exciting challenges. We must be responsible in how we use out time do this, and whether we use the resulting code or throw it away.

Get challenged

So work out what you'd like to do. And then do it.

A bit on the side

I’ve already hinted above that some of these kinds of challenge can only be experienced on a side project; you can’t blindly muck around in a production codebase. Does that mean every ‘good’ programmer must spend every scrap of personal time working on other coding side projects?

No! Please don’t do that.

If you want to spend your personal time working on projects to practise your craft or to learn a new skill, do so. But never feel obliged to spend every working hour on coding projects at the expense of all else. Do not feel ‘inferior’ if you’re not working on software development for as many hours as the hero programmer you’re reading about on some blog.

The best software developers have rounded world views. They’re great programmers, sure. But they also learn skills in other areas. They read. They practise other disciplines. They, heaven forfend, have a life. These good developers also relax, look after their body and mind, and get enough sleep.

Don’t feel like you need to invest your entire life into a ‘side project’ at the expense of all else.

Conclusion

Yes, I’ve been hand waving. And I’ve slipped into motivational speaker territory. But this stuff is important. Do you have something you’re engaged in and love to work on?

It’s impractical and dangerous to just chase shiny new things all the time and not write practical, useful code. But it’s also personally dangerous to get stuck in a coding rut, only ever working on meaningless, tedious software, without being challenged and having fun.

Questions

Pete Goodliffe Pete Goodliffe is a programmer who never stays at the same place in the software food chain. He has a passion for curry and doesn’t wear shoes.

Notes: 

More fields may be available via dynamicdata ..