Larry Wall, the original author of the Perl programming language, once said that great programmers have three virtues: laziness, impatience and hubris.
Laziness because it drives them to write labor-saving programs and document them well so they won’t have to answer questions about them. Impatience because it motivates them to write programs that anticipate your needs. And hubris because it makes them want to write tight code that other people won’t criticize.
But great programmers aren’t always the most productive ones, and the developer who gets the everyday jobs done well is much more effective than the one who occasionally reaches dizzying coding heights. And for most employers it’s the area under the curve that counts, not the highest point it reaches.
So to maximize your employability, you don’t necessarily need to be a great developer, but you do need to be an effective one. Here are seven practives that can make you a more effective developer
1. Do at least four hours of coding every day
At first glance this tip looks unambitious — most coders are at their desks for at least eight hours, and many for far more than 10. But Peter Nixey, founder and CEO of email startup Copyin, reckons that very little of this time is spent on actual development work.
“I have worked on projects where developers frittered away their time on meetings, table tennis, lunch and so on,” he says. “So four hours of pure work — not broken by getting cups of tea — is surprisingly elusive in a [disruption-filled] office environment.”
[Related: One-in-three developers fear A.I. will replace them]
A key to getting those four hours in is avoiding interruptions. That’s because once you’re “in the zone” and your brain is juggling variables, a single interruption can cause you to lose up to an hour as you try to pick things back up and get back to where you were, Nixey says.
2. Fit in with the dev team culture
Being a team player and getting along with your co-workers is a big part of being an effective developer. It’s far more important than having elite coding skills and years of experience, according to Damien Filiatrault, CEO of developer network Scalable Path.
Pointing out how unpleasant it can be to work with a cocky jerk who thinks he’s smarter than everyone else, Filiatrault says that no matter how talented people may be, a key question to ask is, “Are they fun to work with?” If they aren’t, “that can affect the morale of the whole team,” he adds.
But it’s not just the arrogant jerks whose personalities cause problems. Issues can also arise if developers are too nice or for some reason are uncomfortable in the team environment. For example, Filiatrault notes that “developers from some parts of the world may want to avoid conflict, or may be less willing to admit that they can’t do something, and that can be a problem.”
3. Code in your spare time
If the only development work that you do is the work that you’re paid to do, it can be hard to learn new skills and get experience in new fields. That’s why Dave Child, founder of Web developer Added Bytes, says it’s important to do some coding for recreation.
“The best developers I know all have side projects that they are working on,” he says.
None of those developers use the skills that they need in their paid jobs for their side projects, Child adds. Instead they use the extracurricular undertakings as vehicles for expanding their skill sets and keeping up with new technology developments in areas that excite them.
4. Learn to write sloppy code
Very few projects require brilliant developers to create works of coding genius: What’s usually needed is a general platform that specific features can be built on top of.
Nixey says the best way to achieve that is to quickly write something that works and take it from there.
“It doesn’t matter if the code is mucky, repetitious or uses bad naming,” he says. “Code is a manifestation of a solution, and you can then go and refactor it and make it good. If you try to make it perfect straight away, you can get carried away and achieve very little.”
5. Don’t stay in the same job for too long
A surefire way to lose your coding edge is to get a job on a development team and settle into a routine, says Child. That’s because once you master the work that’s required, you reach a dead end and you’re no longer advancing your skills and becoming a better programmer.
“You need to challenge yourself constantly,” he says. “If you’ve worked somewhere for a couple of years, then you have probably learned as much as you’re going to. So don’t stay there — move on and find a new challenge.”
6. Never stop learning
Software technology changes constantly and rapidly, and that means many of today’s vital coding skills will be obsolete tomorrow. So if you’re planning a long-term career in software development, it’s important to keep abreast of new trends and languages as they emerge.
“The simple fact is that you can’t work the rest of your career with the current body of knowledge you have — you have to be prepared to constantly relearn because what you know today will not sustain you,” says Todd Anglin, chief evangelist at development company Progress Software.
He adds that it’s important to concentrate on what interests you instead of trying to be a master of all trades. “You have to have a passion and hunger to continue, but learn where you want to go deep. Don’t try to learn everything, because that’s impossible — keep focused and keep learning.”
[Related: 6 job search tips for developers]
Filiatrault agrees. “Maybe half of every development job you do will involve things you haven’t done before. So the most important skill you can have is to know how to learn and seek out information,” he says. “If you have that skill you can teach yourself whatever you need.”
7. Code for what you care about
Gregor Riegler, author of the blog Be a Better Developer, says it’s vital to get involved in projects you’re passionate about to ensure that you put everything into your coding efforts.
“What’s important for motivation is that you care about what the code does,” he says. “Maybe it will make an app work in a certain way, or maybe it will make a machine work as you want it to.”
Whatever the case, he adds, “you need to really enjoy what you’re doing and try to get the best results possible. If you find joy in that, then you’ll develop great code.”