Because knowing the “Why” is quite important.
If you google for Android App development you will find millions of resources to learn from. Most of them are good and share valuable stuff.
But I think there is something missing. And that something can determine how well you learn Android to build great Apps.
That something which majority of online blogs and tutorials don’t address is the “WHY” to learn. Some of them do talk about the Android Market and the opportunities.
While some of them jump right in and start to talk about Android’s history. That might work for you but from my experience before learning any new skill it’s important to question “Why I want to learn this.. ?”.
If you can explain the WHY of things then that makes a huge difference to People’s Motivation. They understand Purpose. Process of Learning and how it should be. Make it interesting. – Elon Musk
Here is Elon Musk discussing the same WHY at Khan Academy.
If you have a good enough reason you will do pretty well and probably much better than most of the folks.
The drive to learn anything comes from having a good reason which can take you past the challenges. It’s easy to start something and then give up.
Reasons to learn a new skill can vary
- Job requirement.
- Curiosity to learn a new skill.
- Starting your own business.
- Job or Career change.
When it comes to Apps though I think the following three reasons prevail
- You want to build a cool App, like a Game.
- Your Job needs you to learn about Apps.
- You need a career shift and Apps are the buzzword.
This was the primary motive behind writing this article. I wanted to share my journey and how I figured out the “WHY” for me to start learning Android and creating Apps. Because I think once you have an answer to this question learning Android will be fun and enriching. I am still learning every passing day but the reasons keep me motivated.
If you have time (10-15 mins) you might like to read the next section, in which I talk briefly about my years before learning Android. If not feel free to skip ahead to the Android Journey section and come back whenever you are looking for ways to kill time. My hope is you won’t get bored.
Although I have written very briefly about my journey and the lessons learnt, I think most of the folks reading this will be able to relate.
Like many in India I went on to become a Computer Engineer. I will say an average one.
Again like many I din’t had a clue why I did Engineering except that I had some interest in Programming and liked Maths and Physics. It wasn’t like I was not aware of other streams, but my knowledge was quite limited.
I managed to complete my College, relatively well, and with a stroke of luck got a job as a Software Engineer, the title one normally gets when starting in the Software industry. Quite unlike my fellow students I din’t intern at any reputable Company and dint do any special Projects during my college days.
I started working in Java based projects, which was good since I was quite fond of Java. In fact Java was one of the few things I considered to be an entry to a great Career. Imagine a Computer Science student talking about this and not about Artificial Intelligence, Data Mining, Algorithms etc. But that’s the way it was for me. My world was quite limited.
When I look back at my initial working days, I think I din’t have good guidance in terms of Career or I din’t explore that much.
It was years later that I started to understand the importance of Certifications. Just reading online stuff was not the best way to master something.
With Java the good thing is that there is a Certification path which helps you track your progress. Frankly it took me some years to gain a deeper understanding of Java and related frameworks. And the primary reason was the lack of “Why”, the reason to gain deeper understanding.
Fascination for Websites
Fast forward a few years. I got interested in the Website business. It all started when I saw a popular Classified website and wanted to launch a similar one. The year was 2008 and since I was in US I saw how the website business was flourishing.
With almost no idea of how a dynamic website is created I started using Google to figure this out. It took me a while and some failed attempts to understand that the kind of website I was looking for needed a backend. That’s how dynamic websites can be made. Just using the fancy tools don’t help.
You might be wondering how come someone who has been in Software Industry does not know this. Frankly I knew about Java and related frameworks but never viewed it as a website development platform, until I came across Java based CMS systems. I am pretty sure if I ask most of my colleagues about creating a website they will have no clue.
The first website I launched was apnaarea for which I hired a PHP programmer who quickly created the website for me. I also started to learn PHP & MySQL. The website wasn’t a success but I will say it was my first step into the world of websites. I also developed interest in PHP. Creating websites using PHP was easy but I soon realized that one needs to follow good practice and design patterns to build a maintainable and scalable website. Not to mention Security aspects.
In one of my Project I came across a Java based Portal framework called Liferay. In a way Portals also deal with Apps, though these apps follow a different specification. Since I was using Liferay, I thought of redoing the website, I mentioned, using Liferay. One of the drivers for doing this was the fact that I had to take Liferay certification. As a result I was able to get better understanding of the Platform, clear certification and redo a couple of websites using Liferay which were earlier done using PHP. I used to blog on Liferay, but that has reduced significantly because of other engagements.
I also started to learn the WordPress platform because of its ease of use and the awesome themes, created by developers. I was fascinated by the themes and plugins the platform offered and also its simplicity. Creating good looking websites using HTML5 and CSS3 caught my attention. And that helped me sharpen my HTML and CSS skills.
I would like to mention two important lessons, these experiences taught me –
- You always gain when you try your hand at different things. Its not quantifiable but the whole process of figuring out how to do something and then building it is a good learning experience. Trying my hand in websites helped me immensely.
- To learn something deeply you need a good reason or a motivation. Like switching the website from PHP to Liferay helped me clear the Certification.
I feel there is nothing wrong in working on a product that is already popular in the Market. The process of building something is an enriching experience.
Most of the businesses or products in the Market are take off’s from some popular idea. But each tries to offer something different. More on this in a future post.
My Android Journey
Great if you have made it this far. Let’s now come to the “why” and how of the Android journey. Well the motivation came when I was discussing an idea which was related to creating an online platform for Bus reservations.
Since we live in an age of Apps, we wanted to to have an App for the idea apart from the website. Apps make life easy. Consider the Uber app which simplifies taxi bookings considerably and has changed the way bookings happen.
Initially I tried to contact some companies who could help build the App but I soon realized that the App cost will be way too high and we were not sure about the return on investment.
Since I had good background in Java I thought to give Android App Development a try. My initial thought were that it should be easy.
But as I started to learn about the platform and the framework I discovered its not that easy and straightforward. Knowing Java does help. But developing Apps is a little more complex than developing web based applications.
Android has its own set of API’s, libraries and terminologies. It takes a while to get used to it. And understanding the core concepts is quite important.
For example if you are a Server side Java developer who is familiar with Servlet and MVC framework (which uses JSP’s for View) you will be surprised to see the use of XML’s for View purpose. We will learn more about this in the next set of Articles.
Since I had experience building dynamic websites, the next thing was to figure out how to create a basic App which is dynamic i.e. gets data from a database or a web service.
Questions like these and more became the driving force to start learning Android. The idea was to build an App which lets you book a Bus.
Another motivation was that I was looking for a change, to learn something new and thought why not give this a shot.
Why I started with Android and not iPhone Apps
1. Android is open source and its growth rate has been phenomenal, especially in the Indian market. As my primary focus was to build for the Indian Market, developing in Android made sense. Although I should add that I wanted to build Apps for the iPhone, but that was not a priority.
2. My Java background made it a touch easy for me to start with Android. An iPhone App would have required me to learn Objective C or Swift.
3. Another reason was that creating an iPhone App requires an Apple laptop. Compare this to Android. Although I do have a Macbook I use my Windows laptop as well.
More Compelling Reasons
- As of June 2015, Android had 82.8% of the global smartphone market share, compared to 13.9% for Apple and 2.6% for Microsoft. Read More
- According to PC World, approximately 230 million tablets shipped in 2014 of which 67.3% were Android tablets, compared to 27.6% for iOS and 5.1% for Microsoft
Windows. Read More
- Android devices now include smartphones, tablets, e-readers, robots, jet engines, NASA satellites, game consoles, refrigerators, televisions, cameras, health-care devices, smartwatches, automobile in-vehicle “infotainment” systems (for controlling the radio, GPS, phone calls, thermostat, etc.) and more. Read More
- A recent report says that mobile app revenue (across all mobile platforms) is expected to reach reach $99 billion by 2019. Read More
Reasons like these were good enough to get me going with Android App development. And I must say the journey has been good so far. Android developer community is vibrant and very helpful.
Android does have a learning curve. But that’s with any good technology. And the fun to quickly build, install and test your App is quite an experience.
So my recommendation is figure out the Why and then start your Journey.