If you’re a reader of my blog, or a friend of mine, you know I recently started working on a new project named BlackPing. BlackPing is my first foray into BlackBerry development and what a bumpy road it’s been. The BlackBerry API (for CLDC applications) is very robust and is written in Java. Java is a big part of my life, I’ve written thousands of lines of code and most of it has made it into a production environment. But writing for the BlackBerry is different. You may know how to speak the Java language but do you know the BlackBerry dialect? Different APIs, different rules, different constraints to take into consideration.
Over the years I’ve learned a few different languages - C, C++, Java, Java Script, some PHP, some Perl, some Ruby-on-Rails, PL/SQL and a slew of other ones. With all of them I learned through trial-and-error, by looking over a friend’s shoulder or by looking at code examples. I only ever asked for help at 3am. Once my brain was fried, my eyes about to bleed and I could barely write a coherent sentence let alone a technical paragraph describing the problem I was having. Not a good, or fun, way to learn a new language.
This time I decided to do something different - instead of simply posting questions to a forum I found, I tried answering them. A lot of the posted questions were well over over my head but I read them anyway. I performed Google searches, I analyzed what other people wrote back. I tried to understand, I asked questions about the responses not the original post. By joining in the conversation I was able to learn a lot about BlackBerry programming. More than I ever would have using my trial-and-error methodology. By reading what other people had to say I found problems in my application that I didn’t know I had! I was able to find cool coding tricks and learn what else the BlackBerry API had to offer.
By joining the conversation I was able to rapidly expand my knowledge of what the BlackBerry API allowed me to do. I think this is the way I’ll try to learn every new language.
Wednesday, March 25th, 2009