Friday 30 November 2012

Programming Goals

Recently I have been trying to improve myself as a programmer and all round software engineer. As a part of this, I joined the London Java Community and I've been attending various meet-ups.

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.
Become an expert in performance optimisation
  • 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!