All my recent exploits will have to wait have to wait for another post but I just wanted to list my goals for all of this. In this way, it will be clear in my head in the very least!
Really understand Java and the JVM
- Gain a better insight to how my Java code translates to byte-code.
- Learn more about how the JVM runs.
- Fully understand garbage collection, along with the G1 collector.
- Get to grips with tuning the JVM.
- Learn how to truly measure performance on a macro and micro level.
- Understand the techniques necessary to produce faster code.
- Be fully aware of all the external factors which affect performance, such as I/O and network latency.
- Learn more algorithms and use more in anger.
Better manage and estimate time
- Be able to provide accurate quotes for concrete deliverables.
- Understand the techniques to estimate for intangible/vague software requirements.
- Better plan out work to reduce risk/maximise productivity!
Become a software design guru!
- Weave the right software design patterns into all my code.
- Avoid anti-patterns!
- Make all my code simple, robust and scalable (as necessary).
Be better at testing
- Find a practical testing framework/methodology given volatile requirements and highly limited timeframes.
- Better express user expectations as some form of user interface tests.
- Improve general code coverage!
Adopt a proper release management methodology
- Find or come up with a good version number standard!
- Set up some form of "One-click" deployment
Start benefitting from Continuous Integration
- Properly set up CI environment to monitor and analyse code.
- Leverage CI in other practices, such as possibly exploring Feature Branching...
So seven main areas! Obviously this isn't all going to happen overnight but I really hope to achieve all these goals in the near future... It is all just a matter of time and patience I suppose!