The Quest For Mobile Knowledge
28th
December 2016, 12:24
Back in 2013, I started experimenting with mobile development after obtaining my first smartphone. I borrowed a copy of Android Application Development for Dummies from the library, downloaded a working version of Android Studio, and got to coding.
I met with mixed results, and my progress was slow. Sure, my code worked, but only because I typed everything from the example faithfully. I had no idea why it was working. All I really gained from the experience was the knowledge that XML supplied the user interface markup and Java did the rest. Self-learning wasn't cutting it. I needed guidance; being told when I was doing it wrong, and when I was doing it right.
It was around this time in 2014 when I finally decided to get off my arse and work towards a third Diploma. I had just turned 37, settled in a new job, and the time seemed ripe. Before that, I had a Bachelor's Degree and Diploma in Information Technology, and a Specialist Diploma in E-commerce Technology. Diversify or die, that had been the mantra since I left the desktop support job back in 2008. One area that really stood out for me was mobile technology. Having been in web development for years now, I knew mobile technology was here to stay. And learning this stuff could only improve my web dev cred in terms of responsive design, front-end work and cross-platform compatibility. So I looked back to my two alma maters in Temasek Polytechnic and Singapore Polytechnic, but for pragmatic purposes, I chose to take up night classes in the latter as it was a stone's throw from my place.
Even among the local professionals, there weren't many like me - a code monkey looking to expand his skill-set. They were mostly at managerial level trying to gain an understanding of mobile technology, probably so that they wouldn't get gypped by vendors. There were even a couple of network technicians. Now, I'm not disparaging network techs at all; in fact networking was one of the toughest subjects for me back in school and I have nothing but respect for those who are good enough at it to ply it as a trade. However, the fact remains that these guys not only had never done any kind of software development (much less web development), they had never written a single line of code in their careers. It leads me to think that they hadn't really thought this through and all they were doing was trying to cash in on the Government grants for professional development. And that whoever was vetting suitable applicants for the course, had either been snoozing that day, or taken a very liberal view as to what constituted "experience in web or software development".
All in all, my foreign classmates seemed more my kind of people. And so the first semester began...
Concurrently, we were learning the theory behind mobile technology, what constituted web applications, native applications and hybrid applications. To further cement what I was learning, I blogged about it. This phase was more about drawing wireframes and mocking up mobile applications. I took special note of the tools used, such as Pencil. They would come in handy during my day job.
I'd be remiss here if I didn't give a little shout-out to my tenant Zhao from Guangdong, China. He'd been renting my guest bedroom for the past couple years. Sure, he had his little eccentricities that drove me nuts, such as this habit of singing cheesy pop songs in the middle of the night over and over, leaving the bathroom lights on the entire day… but he was also experienced in Java and a great help whenever I hit a wall. We had also begun learning JQuery Mobile, and this meant I was picking up jQuery as well. I practised what I could with jQuery.
Again, to further drill in the process of creating a Single-page hybrid app in jQuery Mobile and porting it over to mobile using Cordova, I created a few apps in my own time - an expense tracker (which I'm still using to this day), a household chores tracker, and a mobile compass. During an annual medical checkup, my doctor gave me a valuable piece of advice: if I wanted to succeed at something, I had to make it part of my daily routine. In fact, I had to make it a part of me as much as possible. (She was actually referring to the task of lowering my cholesterol levels, but that's another tale for another day.) That got me thinking. I wanted to manage my expenses better, right? And my household chores. And I wanted to learn how to make mobile apps.
The obvious solution? Make mobile apps to track my expenses and manage my household chores! I had learned all this really cool stuff, now I simply needed to apply it.
The second semester started off with a bit of a whimper. It wasn't so much that the coursework was difficult, because it wasn't. We were learning about web services - SOAP and REST. REST, in particular, seemed intuitive because I've been using a scaled-down version of it for years in my AJAX-driven applications.
No, it was because the lecturer in question was being paid by the hour, and on the first day alone he insisted on using the full three hours allotted to our lesson, to explain Client-server Architecture. I've had Client-server Architecture explained to me before, and I've even explained it while teaching. It has never, ever, taken more than ten minutes. This was to set the tone for all our lessons together.
On the other hand, the tutorials involved using a very scaled-down, very portable database known as HSQLDB, which I was pretty sure I'd get to apply in some interesting ways.
The other module was infinitely more interesting - we got to play with Android Studio. At long last, the very reason I had wanted to take this course in the first place. After having learned all that Java the previous semester, this shed new light on what I had been doing before starting this course. Now I knew what I had been missing - an understanding of Java, namespaces and all that jazz. It all started to look increasingly clearer.
Yes, a lot of my coding was still done via copying and pasting, but this time I actually had some idea of what I was doing.
That's why I did all those projects on my own time - to really drill in those lessons.
And also because I was - and still am - interested.
Sure, learning the coursework wasn't all that difficult. Even without the extra effort, I would probably have gotten by just doing the school projects and reading the material. Hell, I don't think anyone failed this course.
But I'm not in this just to get by. Getting by was never the point. Graduating and obtaining the certification was never the point. Even having good grades was never the point. Learning was the point of all this.
I had taken this course in order to help me along a path I had started traveling a year prior to this. And it all came to fruition in...
But meh, it's just another piece of paper that may be obsolete in three years. In this business, what certifications you have aren't all that important. People are more interested in what you've done.
To the untrained eye, I had simply obtained certification. But my real harvest from all this was - Java, jQuery, jQuery Mobile, HSQLDB, Android development….
Quite a haul.
This is just the first step. This is just the beginning. One of many beginnings.
Tags
See also

I met with mixed results, and my progress was slow. Sure, my code worked, but only because I typed everything from the example faithfully. I had no idea why it was working. All I really gained from the experience was the knowledge that XML supplied the user interface markup and Java did the rest. Self-learning wasn't cutting it. I needed guidance; being told when I was doing it wrong, and when I was doing it right.
It was around this time in 2014 when I finally decided to get off my arse and work towards a third Diploma. I had just turned 37, settled in a new job, and the time seemed ripe. Before that, I had a Bachelor's Degree and Diploma in Information Technology, and a Specialist Diploma in E-commerce Technology. Diversify or die, that had been the mantra since I left the desktop support job back in 2008. One area that really stood out for me was mobile technology. Having been in web development for years now, I knew mobile technology was here to stay. And learning this stuff could only improve my web dev cred in terms of responsive design, front-end work and cross-platform compatibility. So I looked back to my two alma maters in Temasek Polytechnic and Singapore Polytechnic, but for pragmatic purposes, I chose to take up night classes in the latter as it was a stone's throw from my place.
Meet my classmates
The first day was a little bit of a culture shock. I know that globalization and Singapore's liberal labor laws had increased the percentage of foreign labor, but still I was in for a little surprise when I realized that less than a quarter of the class were local professionals. Roughly half were from India. Burmese, Filipinos and Singaporeans made up the rest. Were my fellow citizens that set against self-improvement? Was that why I was hearing so many complaints about their jobs being taken away by "invaders"?Even among the local professionals, there weren't many like me - a code monkey looking to expand his skill-set. They were mostly at managerial level trying to gain an understanding of mobile technology, probably so that they wouldn't get gypped by vendors. There were even a couple of network technicians. Now, I'm not disparaging network techs at all; in fact networking was one of the toughest subjects for me back in school and I have nothing but respect for those who are good enough at it to ply it as a trade. However, the fact remains that these guys not only had never done any kind of software development (much less web development), they had never written a single line of code in their careers. It leads me to think that they hadn't really thought this through and all they were doing was trying to cash in on the Government grants for professional development. And that whoever was vetting suitable applicants for the course, had either been snoozing that day, or taken a very liberal view as to what constituted "experience in web or software development".
All in all, my foreign classmates seemed more my kind of people. And so the first semester began...
Term 1
It all started out mostly with basic Java. Having my roots in C++, PHP and JavaScript made this a breeze. Having spent a year using almost exclusively C# back in 2012, sure didn't hurt. I got through the basics fairly quickly; in fact the real value of these lessons lay in using an IDE such as Eclipse for the first time. I gave myself a little test, implementing little exercises in Java. It was completed within minutes. I supplemented all this by reading Java SE 7 Programming Essentials by Michael Ernest. It's a good reference and I hope to review it sometime on this blog.
Concurrently, we were learning the theory behind mobile technology, what constituted web applications, native applications and hybrid applications. To further cement what I was learning, I blogged about it. This phase was more about drawing wireframes and mocking up mobile applications. I took special note of the tools used, such as Pencil. They would come in handy during my day job.
Term 2
Now we were having fun in Java. We learned the basics of Object-oriented Programming in Java, and I began applying those concepts to my work in PHP and JavaScript as well. I'm not sure this actually improved the robustness of my work, but it definitely made it more extensible. And then we started making GUIs in Java, using the Swing library. This turned out to be interesting, and after handing in my project, I decided to embark on my own project - a memory game written in Java. To that end, I needed to use some stuff that wasn't covered by the lessons, such as timer functions for animations. Frequent reference to Oracle's documentation did the trick.
I'd be remiss here if I didn't give a little shout-out to my tenant Zhao from Guangdong, China. He'd been renting my guest bedroom for the past couple years. Sure, he had his little eccentricities that drove me nuts, such as this habit of singing cheesy pop songs in the middle of the night over and over, leaving the bathroom lights on the entire day… but he was also experienced in Java and a great help whenever I hit a wall. We had also begun learning JQuery Mobile, and this meant I was picking up jQuery as well. I practised what I could with jQuery.
Again, to further drill in the process of creating a Single-page hybrid app in jQuery Mobile and porting it over to mobile using Cordova, I created a few apps in my own time - an expense tracker (which I'm still using to this day), a household chores tracker, and a mobile compass. During an annual medical checkup, my doctor gave me a valuable piece of advice: if I wanted to succeed at something, I had to make it part of my daily routine. In fact, I had to make it a part of me as much as possible. (She was actually referring to the task of lowering my cholesterol levels, but that's another tale for another day.) That got me thinking. I wanted to manage my expenses better, right? And my household chores. And I wanted to learn how to make mobile apps.
The obvious solution? Make mobile apps to track my expenses and manage my household chores! I had learned all this really cool stuff, now I simply needed to apply it.
The second semester started off with a bit of a whimper. It wasn't so much that the coursework was difficult, because it wasn't. We were learning about web services - SOAP and REST. REST, in particular, seemed intuitive because I've been using a scaled-down version of it for years in my AJAX-driven applications.
No, it was because the lecturer in question was being paid by the hour, and on the first day alone he insisted on using the full three hours allotted to our lesson, to explain Client-server Architecture. I've had Client-server Architecture explained to me before, and I've even explained it while teaching. It has never, ever, taken more than ten minutes. This was to set the tone for all our lessons together.
On the other hand, the tutorials involved using a very scaled-down, very portable database known as HSQLDB, which I was pretty sure I'd get to apply in some interesting ways.
Term 1
As explained earlier, we were working on SOAP-based protocols, going through the ins and outs of XML. Nothing really ground-breaking there.The other module was infinitely more interesting - we got to play with Android Studio. At long last, the very reason I had wanted to take this course in the first place. After having learned all that Java the previous semester, this shed new light on what I had been doing before starting this course. Now I knew what I had been missing - an understanding of Java, namespaces and all that jazz. It all started to look increasingly clearer.
Term 2
Here, we started delving into RESTful web services, and using them in the native Android applications we were developing. I began to make a native Android version of the hybrid app I had made earlier to keep track of my household chores. My web services and database were hosted on www.teochewthunder.com.
Yes, a lot of my coding was still done via copying and pasting, but this time I actually had some idea of what I was doing.
My Learning Methods
You'll probably have figured out by now that I learn mostly by doing. And making extensive use of other resources such as local libraries and the Internet.That's why I did all those projects on my own time - to really drill in those lessons.
And also because I was - and still am - interested.
Sure, learning the coursework wasn't all that difficult. Even without the extra effort, I would probably have gotten by just doing the school projects and reading the material. Hell, I don't think anyone failed this course.
But I'm not in this just to get by. Getting by was never the point. Graduating and obtaining the certification was never the point. Even having good grades was never the point. Learning was the point of all this.
I had taken this course in order to help me along a path I had started traveling a year prior to this. And it all came to fruition in...
Graduation
… May of this year. That was when I graduated with my third Diploma.But meh, it's just another piece of paper that may be obsolete in three years. In this business, what certifications you have aren't all that important. People are more interested in what you've done.
To the untrained eye, I had simply obtained certification. But my real harvest from all this was - Java, jQuery, jQuery Mobile, HSQLDB, Android development….
Quite a haul.
This is just the first step. This is just the beginning. One of many beginnings.
I did great! How about some app-lause?!