Blog Posts Process Management

Use a Pencil: How a Java Developer Gets Stuff Done

Blog: Oracle BPM

When Java Champion Mani Sarkar talks about technology, you think, “I’ll have what he’s having.” The prolific writer, speaker, and Java and JVM-based developer is a vibrant member of the London Java Community (LJC) as well as a passionate backer of open source projects such as Adopt OpenJDK. Although his day job focuses on strengthening teams, his interests include improving code quality and performance, implementing DevOps and machine learning, and more.

Talking to Sarkar about productivity means tapping into the mother lode. Here is just a sampling of the many ways he suggests improving your Java code and learning new technology more effectively.

Deep Work

“These days I take a lot of inspiration from the book Deep Work by Cal Newport,” says Sarkar. “Getting into the flow of working or coding isn’t hard at all. The idea is to shut yourself off from the outside world and distractions, timebox your tasks, take breaks, and be disciplined about not breaking this discipline. Cal Newport has a lot to say about how to do this. He calls it deep work, as opposed to the shallow work we all are used to doing. Developers must aim for and do deep work as much as possible.”

As any good programmer knows, you also improve productivity—and prevent ergonomic strain—when you memorize keyboard shortcuts instead of clutching at the mouse or clawing the trackpad. Sarkar recommends using an IntelliJ plugin called Key Promoter (see Figure 1) to keep track of how often you reach for menu options instead of typing equivalent keyboard shortcuts. “You can configure the plugin to keep track of how often you use the mouse to select the menu option, and if you cross that limit, it will nag you each time,” he says. “It also helps you create a shortcut for menu options if there isn’t one already.”

Sarkar has several favorite productivity-enhancing tools:

Learning Java

Sarkar is passionate about the future of cloud native Java and is currently exploring serverless computing and systems for containerized deployment, including Docker, Apache Mesos, CoreOS rkt, and SmartOS containers. “The JVM language Clojure is a great example of simplicity and compactness,” he says. “In fact, functional programming language concepts tout simplicity all the time.”

But what if you’re still learning Java or learning to be a better Java developer? Sarkar recommends attempting to solve katas, a concept that developers have enthusiastically borrowed from the Japanese martial arts world. The Gilded Rose refactoring kata, for example, has become an extremely popular exercise that hones the skill of writing more-elegant problem-solving code.

The most contagious aspect of Sarkar’s approach is how, in a fashion befitting a programmer, Sarkar has taken a step back from the problem of learning Java to contemplate what learning means. “Your brain indexes knowledge when you are resting,” he says, “so sleep and rest let the brain index away. Don’t overload. Instead, interleave: Fill the gaps, and learn incrementally and iteratively.”

Leave a Comment

Get the BPI Web Feed

Using the HTML code below, you can display this Business Process Incubator page content with the current filter and sorting inside your web site for FREE.

Copy/Paste this code in your website html code:

<iframe src="https://www.businessprocessincubator.com/content/use-a-pencil-how-a-java-developer-gets-stuff-done/?feed=html" frameborder="0" scrolling="auto" width="100%" height="700">

Customizing your BPI Web Feed

You can click on the Get the BPI Web Feed link on any of our page to create the best possible feed for your site. Here are a few tips to customize your BPI Web Feed.

Customizing the Content Filter
On any page, you can add filter criteria using the MORE FILTERS interface:

Customizing the Content Filter

Customizing the Content Sorting
Clicking on the sorting options will also change the way your BPI Web Feed will be ordered on your site:

Get the BPI Web Feed

Some integration examples

BPMN.org

XPDL.org

×