As I said in “The Best Thing I Ever Did Was Open Source”, open source is really where my heart is, so I’m grateful to be working on TomEE – even if sporadically – and seeing that project evolve and grow. Since David Blevins post, “TomEE for the Holidays”, we have seen a serious uptick in the number of contributors, pull requests, and commits to TomEE. Every new community member has joined with the same simple question, “How can I help!”, and all of them have received a warm welcome and a plentiful todo list.
It’s been a while
It has been a long time since I worked on an open source project. Before I joined Tomitribe, the last time I worked on an open source project was OpenEJB in 2004. I needed to update my skills in Java and Java EE (aka Jakarta EE) because I hadn’t done any work in these areas since Java 2, SE 1.4 and Java 2, EE 1.4. To get back up to speed in these platforms I took to reading and watching tutorials and it has really paid off!
Even with the technologies, I’m already familiar with, I’ve had to refresh my skills. Although I had been using Git on work for several commercial customers, I found myself constantly looking up Git commands I had not used in a while (e.g. rebase). I was, to put it lightly, rusty. With open source, because there are so many efforts in parallel, you have to be on your game with Git if you want to handle non-happy-path situations which arise more frequently than they seem to in commercial projects. I decided to tweak my skills in Git and do some learning again. I fired up a tutorial and was surprised by all the things I had forgotten. It was time well spent, yet Git isn’t the only area in which I need to improve or refresh my skills.
I’m constantly going back to refresh skills I developed years ago while trying to learn some of the new things that have gone mainstream. A minor example might be the formatting used on GitHub for README files or the use of JIRA and pull-requests. I’m embarrassed to admit that even Twitter, which is such an important part of the open source community, was totally new to me. When doing contracting for commercial clients, Twitter was definitely not the primary means of communication.
Just 30 – 60 minutes a day
Improving and adding new skills can be intimidating if you are apprehensive than I recommend you do what I do: I spend just 30 to 60 minutes a day learning a new skill. It can take a long time to master new skills that way, but it seems to sink in better, stays with me longer, and is far more enjoyable than spending a week cramming knowledge into my head.
The Curse and Reward
The curse and reward of working in software, and in particular it seems open source, is that you have to constantly be learning or you will be left behind. It can be exhausting having to constantly update your skills, but it’s manageable. Take 30 minutes a day and start learning a new skill. You can google for tutorials or watch a series of training videos on Pluralsight or Udemy (my favorites), or read a few pages in a programming book. You will start to see the benefits right away. It is far easier to do it this way than to suddenly find yourself having to master a new skill in a week.
It’s Good For Everyone
I’ve never met any developer who knew too much that he/she didn’t need to learn more. The best developers I know are those who are constantly learning. They choose to spend a few minutes every day refreshing their skills and learning new ones. You will be glad you did and so will your peers.