Last week we surveyed our internal team of incredibly productive Java developers looking for the best advice, tips, and tricks they could offer. For a small team, they have a combined 153 years of professional experience in Java, so they know what they’re talking about! Here’s what they had to say:
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 you’ll 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 it’s 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 you’re on Mac, Homebrew is where it’s at for every utility you could possibly need, and probably a few hundred you didn’t know existed.
4. Be Proactive About Productivity
If you’re 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. Don’t 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 doesn’t 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, don’t be afraid to open a book! There are some amazing general and Java-specific 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, and Design Patterns.
Bottom line: You never have to stay stuck for long, so don’t.
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 here’s 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 you’re 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: