The Problem
I’ve been a Java Backend Engineer for about 7 years and I think I’m pretty good. But with expertise, comes laziness. Building a REST API (using Spring), writing unit test, etc become routine and what was once a sharp blade is now a dull blade. How do you practice? How do you stay sharp? Luckily the are several ways to get you back to being nimble. Lets explore some:
Find the answers to popular interview questions
This is my favorite way to explore parts of a language because its a great way to evaluate where you are. Firstly, gather questions for different roles pertaining to your area. My personal levels are junior, mid, senior, lead, and architect. For example, on of my favorite questions is: “What is the difference between a interface and abstract class?”. The greatest thing I find about this question is how the answer you provide reveals the level of knowledge possess about the language. Here is a great resource to learn about the answer to that question:
Consider a paradigm shift
Now that functional program is a big craze, many languages have added support for it. In the latest versions of Java, specifically v8, the support for functional programming has become a norm in daily development. The easiest way I find to study a new paradigm is to explore the concepts/features that make that paradigm possible. When it comes to Java, we have lambda expressions, higher order functions, immutability, etc. To explore Java 8, I suggest the book Java 8 in Action.
Most languages are similar to pasta, you don’t have to just cook with fettuccine
Weird metaphor but stay with me. If you look around at the most popular languages, they have frameworks, derivatives, and whole ecosystems to explore. There are a ton of options for popular languages:
- Java – Scala, Kotlin, Groovy
2. Javascript – Nodejs, React, Typescript
3. C# – F#, .NET
Also, some language derivatives spawn themselves because their parent language lacked certain features (at that time). So there is an opportunity for a dual learning experience.
Confidence is a great thing to have as a developer. However getting high on our supply leads to many gaps in our knowledge. Hopefully some of these tips can help you get out of that stuck place.
