You are on page 1of 6

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 dont necessarily need to be a great
developer, but you do need to be an effective one. Here are seven habits 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."
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. Its 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
hes
3. Code in your spare time

If the only development work that you do is the work that youre 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.

carried

"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
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
youre 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 youre
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."
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 youre passionate about to ensure that you put
everything into your coding efforts.
"Whats 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 youre doing and
try to get the best results possible. If you find joy in that, then youll develop
great code."
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
arent, that can affect the morale of the whole team," he adds.

1. Know Your Tools (And Have the Right Ones)


Before kicking off any new project, spend some time thoroughly researching the existing frameworks
or libraries that could make your implementation easier. Along with that, have the right IDE and
customize it for your project.
Outside of the tools that are specific to your project and language, our developers deploy a veritable
battalion of everyday tools to increase their efficiency. Stormpath Java evangelist Micah Silverman
shared his list:
Zoom It : An on-screen magnifying glass which comes in handy for presentations and

webinars
Skitch : Multi-feature screen capture (goes beyond the out-of-the-box tool)
Private Internet Access : Easy VPN service (great for hotels and public networks)
Jumpcut : Indispensable clipboard buffering app
RecordIt : Multimedia recorder that turns quick screencasts into animated gifs
Alfred : Enhanced Spotlight functionality (and a lot more)
Franz : One chat app to rule them all! Franz supports Slack, Hipchat, Facebook Messenger,
GChat, Whatsapp, and Telegram (and many others)
Menu Meters : Machine health right in the menu bar
Bartender : Tame the Mac menu bar
Karabiner : Keyboard customizer
Be Focused Pro : Pomodoro technique timer for the menu bar
Riverflow : Workflow manager that assigns unique two-finger gestures to actions
Micah has also built a custom key sequence that shuts down all his open programs and leaves open
only his IDE and an empty browser.
2. Write Tests First
It sounds counterintuitive, but by thinking ahead to your testing youll end up writing testable code. It
saves you time in the long-term if your testing logic is in place before your first line of code.
3. Love That httpie
Forget curl; httpie is where its at, so learn to love the command line. This Swiss Army knife for
developers is quite possibly the most powerful tool in your arsenal, and the most frequently
overlooked. If youre on Mac, Homebrew is where its at for every utility you could possibly need,
and probably a few hundred you didnt know existed.
4. Be Proactive About Productivity
If youre naturally focused and driven you might not need the help, but for the rest of us, productivity
can feel like a never-ending battle with a wall. Productivity hacks abound, and we recommend you
devote some time to trying a few out to find the one that best suits your workflow. Our team favors
the Pomodoro technique , which breaks work down into timed intervals, typically 25 minutes, and
separates these intervals with short breaks.
And, about those breaks. Take them. For real. Get up and walk away from your computer, think about
something other than work. I regularly use an app called Pause to force my brain to disengage and
slow down.

5. Automate Where Possible


Scripts are your friend. Take the time to automate your repetitive tasks, even the simple ones. Those
saved seconds add up and can eliminate errors.
6. Dont Stay Stuck
Start by not being afraid to spike and delete: Try out different approaches and explore not just their
impact on your project and interaction with existing code, but also where you get stuck. Then, delete
that and write some tests. If that doesnt work, use the resources around you; ask questions on Stack
Overflow or pair up with a friend or colleague. Getting a second set of eyes on your problem can get
you unstuck in a fraction of the time.
Along with this one, dont be afraid to open a book! There are some amazing general and Javaspecific reference texts on the Stormpath bookshelves that can, and have, gotten our team unstuck a
time or two. These include Effective Java , Simple Java , Clean Code , andDesign Patterns .
Bottom line: You never have to stay stuck for long, so dont.
7. Pay It Forward
Stormpath founder Les Hazlewood is also the founder and primary contributor to the open-source
Java security framework Apache Shiro . He offers this advice:

Participate (actually code) in some great open source projects. A lot. As much as you can. There is
simply nothing in the world that I know of that will expose you to the quantity and quality of great
code written by senior developers than participating in multiple solid open source projects. You will
learn more by looking at clean code and good design patterns than anything you could do on your
own or what you would see by working on a few closed-source projects.

Les is quick to credit probably half of what he knows about writing good software to the thousands
of hours he spent early in his career contributing to open-source projects. And heres the thing, when
you regularly participate in large open-source projects you create opportunity for yourself, not just to
learn, but to solve the day-to-day problems youre having with your own applications.
Bonus: Keep Your Focus on What Matters
Here at Stormpath, user management is the focus of our business. Is it yours? Probably not. So keep
your eye on the core functionality of your application and leave the risk, complexity, and resource
burden of developing sophisticated authentication and authorization functions to us.
We offer an advanced, developer-centric service that implements in minutes. The Stormpath REST

API lets developers quickly and easily build a wide variety of functions they would otherwise have to
code themselves, including:
Sophisticated authorization support , with caching for maximum performance
Token authentication and revocation with JSON Web Tokens and OAuth2
Native support for multi-tenant applications , with pre-built partitioning of customer data
Comprehensive documentation and commitment to customer care even for free
developer accounts
Highly idiomatic SDKs , including robust Java support
Sound intriguing? Download our Build vs. Buy whitepaper , or sign up and get started right now !

You might also like