Be a better Java Developer
May 10, 2019
I made a schedule (see last blog post) and I try to stick to it. The Oracle exam is at the forefront of things I have to study. I looked up the date I could take it next (side note, don’t call Oracle unless you’re good with interpretting Indian accents, I could only understand ~ 40% of what she was saying on the phone and gave up eventually figuring out a different solution) and that date is July 31st. Ackpfft, I was hoping for June 31st or beginning of July. I have gone through all the material already and I should be ready in a few weeks, but there is no test offering until July, oh well. I’ll be even more ready.
My underlying focus to be better a better Java programmer: Learn Java 8, Spring Framework, Unit Testing (and TDD), API’s and libraries, JVM workings, design patterns, DevOps tools, Kotlin, Microservices, and know the IDE better (IntelliJ, and Eclipse—I like IntelliJ better).
I’m focused on Java 8. From what I can see, 9 - 12 are not in production almost anywhere yet. Trying not to shrug this off and learn 9, 10, 11, & 12, as I think this will become a focal point in the future, but there is only so much I can do.
Spring Boot is a big area. I’m trying to come up with some projects I could put on my website for all the differnt goals OR a mobile app, but a project I can use/keep.
TDD. Wow, this is huge. I need to come up with a way to create a project that starts with making Tests first. I’ve thought about making a script, but that seems inefficient. Any larger project I make the src folder and name the Class, then make a test folder and write tests to the Class I created for testing first. I just can’t seem to make this work for all the smaller projects. I would think another developer or teacher would have thought of something, perhaps a plugin, perhaps I should write a plugin… I’ll look into it. But, I’m guessing the smaller code blocks (like in a learning setting where you are creating methods/classes on the fly to teach your development ideas) just should be left alone. But anything else! Even the small assignments… TDD!
API’s libraries, and the JVM I try to incorporate as much as possible. API’s come naturally if you are creative in your progam project decisions.
Design patterns: I need to study the main ones. Perhaps I’ll pick up the “Gang of Four Design Patterns” Seems to be a good reference.
DevOps. Why do I feel this is more of a buzzword? I love the idea, I really do, but honestly, it just seems like common sense by leveraging Agile. I’ve been a lone developer before, and being isolated sucks, period. If there are devs that like that? I do not believe you. Either that or you are not really isolated. I like working on a team, you learn more, you create better code, you FEEL BETTER about yourself, and on and on. Nonetheless, I attend DevOps meetups and study it where I can.
Kotlin. I think I’ll pick a project in Kotlin and give it a go. Thinking mobile.
Microservices. This ties into containers (Docker, Kubernetes), web services, AWS/Azure, and puts your name on the map quickly. I need to get a better handle on it.
I constantly refine my IDE skills, but often I get complacent with one way of doing things and don’t think of a better way. Often the better way is by utilizing the IDE to accomplish a task.
Easy. Right?
I’m easily studying 10 hours a day right now. I am worried about burnout and need to create some projects that carry more meaning (ie, have some kind of return value -> a mobile app, or java app for Windows or a webservice running on one of my websites, something.
Blog developed by Robert Lee Hoehle III with React & Gatsby. Rob lives and codes in Des Moines, Iowa. You should follow him on Twitter or visit his website.