Online Programming Courses: everything you always wanted to know about Android Development but were afraid to ask…
Say cheese! A brief snapshot of the current situation.
Over the last ten years people have been waving “goodbye” to evening or weekend classes heartily as they were saying “Hello World!” to distance learning in the comfort of their own home. The Online Courses were gaining credentials as well as a chunky part of the educational/training market: a new era was born.
Their appeal caters for a huge number of people in the Western world: students exploring higher education fields, workers wanting to improve professionally, people undergoing a personal development plan, keen learners eager to acquire some new skills. Emerging countries are not left behind and because of a lack of classic educational infrastructures the eLearning is growing fast amongst their populations.
The online courses have also benefited from two other boosts: a will from the politics in the Western world to give access to new technology to the masses and encourage schools to integrate computing sciences in their curriculum as well as a need for the industries to decentralize their services and be more responsive to their customers via digital contacts.
Elearning Industry says:” Countless reports, surveys, and studies have shown that eLearning industry isn’t showing any signs of slowing down. In fact, an increasing number of individuals, corporations, and institutions are turning to eLearning as they recognize its effectiveness and its convenience. Here are some important eLearning statistics and facts for 2015, some of which may even surprise you!”
Why learning how to program, why create Android apps?
Because the future is digital; people have radically changed their ways of interacting with each other, they feel they have to be connected in thought and technology for all aspects of their life: social media, chatting online, robots performing house chores, virtual help, shopping, playing, dating, interacting with your country’s institutions etc.
Those connections are made more and more through mobile devices such as smartphones / tablets and our friendly chap: the “App”. In reality that market is shared between mainly two big players Android & Apple. Android is now dominating the market share: “Market research firm IDC’s latest numbers showcase the continued rise of Android, which now commands an 81.3 percent market share, up from 78.7 percent in 2013…”
What does that tell us?
It is a clear indication that creating Android apps means not only learning new skills but looking towards a bright future if you are a job seeker!
1 The battle of the titans: Android vs Apple
You might ask, well why develop on Android and not Apple? Why should I take a course on Android Lollipop/Marshmallow and not on iOS8/9?
Let’s start with some short definitions:
Android is an Operating System (OS) currently developed by Google Inc. Android software development enables people to create Android apps to be run with devices using that same OS. If you picture Android developers as “artists”, they will need a place where they can express their art, such a location is called Android Studio, and it is an Integrated Development Environment (IDE). Your Android developer will need some tools and will use the Android Software Development Kit (SDK).
Apple’s mobile Operating System is called iOS and is developed by Apple Inc. to be run exclusively on Apple devices such as iPhone, iPad, iPod, etc. An Apple software developer will also need have its own IDE called Xcode and its own SDK
A mobile application development will follow a certain architecture, just like building a house: you need to plan it carefully and construct it stage by stage; things are put in a certain order and interact with each other.
It is a myth to believe that Android and Apple are so different that it comparable to a day and night scenario, in fact both platforms over the last 5 years have seen their differences fading rapidly.
The main difference is that Apple focuses mainly on the premium smartphone market aiming at customers with a higher income and Android is supplying the manufacturers that are targeting the masses and shows a large advantage in emerging markets such as Asia, Africa and South America
From a developer’s prospective there is a very thorough article written by Cameron Henneke which shades an interesting light on the matter: he developed an app called Gqueues on both Android and Apple operating systems. It compares the pros and cons of each software development platform, and he cannot make his mind up on which one he prefers before concluding “I feel fortunate to be able to develop on these platforms during this time of such rapid advances in mobile technology.”
So why should you choose to become an Android developer?
Mainly for 3 simple reasons:
- You can be an Android developer on a computer that runs Windows, Linux, OS X (Macintosh) giving you more options that would fit your ethics and budget. IOS is exclusively for Mac!
- In terms of business requirements, Android is a very attractive development platform for small & large companies across the world, increasing the possibilities exponentially between the industries and the developers.
- Android apps from a developer’s point of view are easier to test and publish: beta testers will add valuable input to your app in all its aspects and the publishing process is described by many as being “swift”, “smooth”, “easy”
2 Are you ready to take an Android development course online?
It is absolutely normal to hesitate before enrolling in any course, after all it is a commitment, it will take time, probably some money and a huge amount of dedication and self-discipline; so I have compiled below a list of 7 common fears encountered by a potential Android developer and how to overcome them:
Is online programming really for me?
I am tempted to answer that you won’t know until you try it. Lots of the companies offering courses online on learning how to code will have in their content/syllabus some samples i.e. videos, one month free trial, first lessons for free etc. This will give you the opportunity to assess if the content of the course is relevant and also if you feel comfortable with the teacher’s way of training.
There is no exact science regarding your aptitudes and abilities about teaching yourself computer programming, however it is always a good start to have a keen interest in the subject and you should be at least prepared for the following:
- You will never know everything about programming, it is a constantly changing science and you will have to evolve accordingly, meeting new challenges as software, languages etc. are also evolving.
- The logic matters a lot: that you are into game development or working with your local pizzeria you will have to sort out problems, create bits and pieces that fit together, and foresee how your Android project will come together.
- When you start learning online computer programming you will find it to be a world of trials and errors with lots of frustration, hundreds of lines of code erased by your cat’s paws whilst jumping on the keyboard, unhappy end users…so communication skills are also extremely important and should not be neglected.
You could also check this quiz and page on what it takes to be a computer programmer. For those of you already familiar with programming for beginners there is an interesting test online on what type of programmer you are cut to be.
My PC is an antiquity!
The minimum requirement for Android development is: Windows, Mac or a Linux PC/laptop having a minimum of 2GB RAM, with an internet access.
To start with this should suffice and when you are a successful Android developer and will have earned enough with your computer programmer salary you might be tempted to reinvest into better hardware and/or extra hardware; a “nice to have” would be a second monitor, a faster processor and especially plenty of memory 8 to 16GB (Android studio can take up a huge amount of memory when you are working on a large project!)
It is also a very good idea to have a device running Android OS with its latest version so you can try out your app for real and do not worry if your tablet or mobile phone is not running the latest Android 6.0 yet, depending on your device manufacturer and his policy in customer support you may or may not get an upgrade, this is why using an emulator might prove useful.
I am not good at learning!
Well I am actually rubbish at sewing: I have big fingers and find it difficult to put a cotton string through the eye of a needle, also the pattern is irregular, I am trembling when people are watching me, I can fix a new button on a shirt and that is about it. Does that make me a person “not good at learning”?
No it just means that I am not skilful with sewing and above all probably because this is a skill that doesn’t interest me, however I am a god at programming, just joking! (Well half really I am a really good Android developer!)
Brian Heese (2014) writes: ‘when you learn computer programming you learn how to check your work for details, how to apply logic and how to persist at a task. You also learn how to ask a good question, often in written form. Finally you learn how to collaborate because much programming today is accomplished in teams. These timeless skills and learning behaviours will endure far longer than any programming language.’
I have heard you need to learn a new language called Java, the thing is I was not even good at learning French at school!
I can hear you say: « Mais, apprendre le français c’est facile! »
I would like to differ, Android programming languages will give faster successful results in what you are trying to achieve than learning a foreign language.
When you work on Android development you will encounter several languages such as C and C++, but the most common one is Java. Java is an Object Oriented Programming Language (OOP).
How easy is it to learn the Java programming language? “Rome wasn’t built in a day! “The same goes with the Java language, you need to walk before you can run.
How fast you can learn will be up to the individuals: how many hours a day/week can they dedicate to learning Java? How much practice they can get. With no knowledge of programming basics it will probably take you up to 350hrs to reach a good intermediate level and a further 250hrs to reach an advanced level. Between your readings, forums, online tutorials and the full range of help available you will mostly need to practice, hitting those keyboard keys again and again until you run your program successfully.
How to learn computer programming is just the tip of the iceberg. With Android studio your biggest task is to get familiar with all its tools and libraries, and because those tools are developing fast, it will be an on-going process.
I am too old/ I am a woman, surely courses like that are aimed at young geeks!
Learning is too often associated with the youth and computing sciences too often with a male teenager/ male adult geek.
Why the need to undermine your abilities? Let’s get it straight, online programming courses and /or Android development is for everyone; some discrimination might have cropped up amongst the recruiters but the recent sexism and ageism legislations in most developed countries are tackling the issue very seriously.
Can you learn how to develop an Android mobile app without knowing Java? Of course you can, you will get an immediate result with the copy & paste method but to be able to recreate that app from scratch will be a different ball game, like any foreign language you can get “phrases books” and apply their content the best you can, and it will work for a short while; however it will not stand the test of time if your primary goal is to create and develop!
It does what it says on the tin! Just unleash the creativity inside you by producing beautifully designed app with a unique use. You have grand-children? Create the ultimate app for them to go back to school or make their yearly planner really fun to use.
- Your best friend is getting married? Create the bride to be app for her and the rest of the crowd, it will beat any voucher to a department store as a present!
- You have grand-children? Create the ultimate app for them to go back to school or make their yearly planner really fun to use.
- You have a fantastic idea for a game? Candy Crush and Angry Birds eat your heart out! That kid is 12, mean, typing codes with intent and the best part is that on Google Play there is no age restriction for publishing an app (Please do check out the latest terms and conditions for paying apps & setting a developer account if you are under 18)
Will I be a millionaire after finishing my course online?
I sincerely hope you will be a millionaire one day, meanwhile earning money is an essential question if your goal in life is to earn a decent living out of programming for Android operating systems. After all you have done the hard work done learning online programming and you acquired new skills you want to put into practice.
It is the reality check moment: how do you want to plan your life around programming? Do you wish to work as a freelancer or as a contractor, or even as an employee; it all relates to the kind of revenue strings you wish to generate: very much a case of regular low/medium income vs short assignments well paid but sporadically.
It is a life choice to make, there is no right or wrong, it is up to the individuals in relation with their lifestyle, level of commitment, ability to work in a team etc. And if you make it a permanent career you will probably experience a variation on all scenarios.
Let’s talk figures: computer programming jobs are on the rise which doesn’t always translate by a rise for a computer programmer salary and variations happen between countries.
For instance according to the latest figures for 2015 in Pay Scale you can observe differences between the countries:
- In the UK for instance a junior programmer would earn on average per year £22K-25K. As the career develops so does the bank account it seems, because in that field experience is a key word, it is the “Open Sesame” of big money, so a comfortable income could be yours in the long run.
- In Australia for instance the national average salary per year for a developer/programmer is AU$ 69K, with 11% less at entry level and it seems that experience affect the salary less, only 20% rise against 40% in the UK.
- In the USA the average yearly earning is US$ 56K, growing steadily by an extra 10% every time you reach a new stage in your career (mid-career, experienced, later career).
All that time spent in front of a screen, surely it is not good for my health!
Your health is not to be neglected: you will have to spend a fair to huge amount of your time in front of your computer/laptop and it is very important you get into adopting good habits right away. If you suffer from a condition that might not be compatible with learning programming online, it would be advisable to consult with your doctor first.
In my experience the 3 enemies are the backache, the Repetitive Strain Injuries, and the sore eyes.
- The chair will be your best ally, it will support your structure for days, months, years. And yes it can be an investment the “office chair” is an expensive item and I am sure you can be resourceful by purchasing it second hand or getting it even for free, check your local environment: people are getting rid of them when refurbishing their offices, you can always strike a deal, ask around, put it on your “wish list” for your birthday, Christmas or whatever occasion you wish.
- A properly designed mouse will rectify and erase any pain in your wrists, you need to choose one which will not be flat (one side of the mouse higher than the other one) so your hand rests on it at an angle, as an online programming learner you will use your keyboard 50% and the mouse 50% but as you are gaining more and more experience at programming you will use the mouse less and less to end up roughly with using the keyboard nearly exclusively, to that effect I would advise the use of a detached keyboard if you have a laptop and some special wrist-rest pads.
- The glare of the monitor screen can be ferocious if you spend too many hours in front of your screen without getting breaks away from it and if like myself you are wearing bi-focal lens it might have an hypnotic effect; so get yourself into the habit of timing some distractions every so often: get a drink, phone a friend, have a quick walk around the garden, get something from the local shop, do some house chore etc. whatever suits you: your muscles, eyes, brain and bathroom scales will thank you for it. Often it is away from your desk that the solution to a particular problem in your programming will come to you.
The work station will be your domain, make it your own, de-clutter should be your new kingdom’s motto, you can still personalize it but make sure you control it and not the reverse.
Ready, study, go! Err…uh…where to start?
3 “A-Mazing”? Feeling like being thrown into a labyrinth?
Save time and energy by choosing the right course for you in just a few steps, making your research fast, efficient and leading to a successful conclusion on how to learn computer programming?
How to choose the right course for you?
Ask yourself the relevant questions: what is your desired goal? Do you want to learn online computer programming as a career, a step to something else, a keen interest, because you got a free voucher? Do you have any previous experience in computer programming? How many hours per day/week can you realistically dedicate to your online course?
The web is just oozing e-learning through all its pores, everything goes from wacky java programming learning in 30mn to highly tailored courses in full immersion environments via code camp. Money wise? It varies from “free” to a few thousand US dollars.
Most of us will just want a very well structured course, with the curriculum clearly explained, the tasks accurately described and what will we have achieved at the end of it…and still the offers are mind boggling!
Many academies, schools, centres, platforms are competing to get your custom: their content quality and subject relevance differ a lot , most of the rogue players will have been eliminated by now as the industry of online programming tutorials is setting high standards.
Let’s not forget that most courses are subjected to a rating system and that people feel more inclined to unleash their disapproval via the digital avenues.
Rating systems are not perfect some people will pay to get “likes” of “5 stars”, however if a company selling online courses had an overall negative rating via a huge number of people, you can pretty much erase them from your list of “potentials”
Like any other product you will have to do your shopping: research carefully, do a comparative table of the offers, read the forums, ask people about their own practical experience, privilege content over decorum: a “cool website” is not a guarantee of a good quality course delivery, try some demos out!
Drop the Lollipop and get the fellow Marshmallow, confused?
By the time you will be reading this blog, the new Android mobile Operating System called Marshmallow or Android 6.0 will be implemented to replace the previous OS called Lollipop or Android 5.0.
Most of the courses on offer will run on the Lollipop still and this is not a problem, you have to give time to the designers of such computer programming courses to update their content. Fundamentally the content of the computer programming lessons will be pretty much the same in its core.
Some adjustments will have to occur but overall it is not a problem because when you design an Android app you design it for a range of Android versions.
The online programming course designers might ask you some extra money on top of the price you paid in order for you to have the latest updated version and that is actually fair as it will take time to update a content, some other tutorials designers will just do it for free because they have a different relationship with their customer base. There again there is no right or wrong it is up to the individuals and their favourite teacher.
Why pay for a course when many tutorials can be found for free on the internet?
Because in my experience two phenomena happen:
- People generally think that if it is free it cannot be “professional”
- People commit better to the online programming tutorials if they have paid for it as the spending is a good motivation to get “value for money”.
Of course you can get decent free courses on Android development and/or online programming courses, lots of the blogs on the internet list those and you can try them out, however if your employer is allowing you to enrol in a course online as a part of your personal development plan, he/she will want to see a proper invoice and will feel (rightly or wrongly) reassured this is a “serious” step you are taking.
The most important thing is the human factor and frankly you will only find this through paying courses: there is more dedication, support, clarification, help, commitment, time spending with the student etc. a bit like any customer service with a good pinch of humour on top!
What about the teacher(s)?
The teacher is the key to your success!
I am going straight to the point there: is a person with hundreds of diplomas and qualifications always the right sort of person to teach? In any case do some background checking.
What makes a great teacher for online programming courses is:
His/her experience as a developer, because unless that person has been in real life situations with Android development you will not get the feedback, the pointers, and the suggestions that are so important to the learner.
His/her way of delivering the course: the intonation has to be professional and yet friendly, you don’t want a conference speaker you want a teacher! That person has to use clear definitions, be enthusiastic, feel “real”, give precise and concise instructions to the students, start each “lecture”/tutorial with a brief explanation of its purpose, then deliver the content and finally have a quick recap at the end.
The teachers should also have some handouts ready for you to use and some assignments/tasks for you to perform.
Ultimately you are also responsible for the success of your own learning, do not be passive: practice makes better and in programming this is even truer than ever. Your teacher will be your guide, will support you and advise you as much as he/she can and you will even be more successful if you adopt a proactive approach.
When going through Android app tutorials don’t be tempted to pick and choose what you think “suits” you in a course, it has been designed carefully to unfold in a certain way and the teacher knows the progression you should follow, all will be revealed at the end.
One learns so much through mistakes: a fun part of programming is to find out where you went wrong when your program fails to run as you wished. With hundreds, thousands of lines of code it will become essential to find the error fast so you can rectify it quicker.
Where to get support? Resources?
Your first port of call is your teacher: through a forum or direct message you can get in touch and ask whatever question that bothers you, don’t be afraid, you are not “stupid” and the teacher will always answer your query kindly not everyone learns the same way or at the same speed or has the same previous experience in online programming course and/or Android development.
For further computer programming help, you can explore some more avenues by doing some research on line for relevant forums on a particular topic or a particular piece of coding you find difficult to implement, you will soon realise you are not the first one to encounter a particular problem and you will probably not be the last one either.
The Android Open Source Project (AOSP) allows the users to access the source code freely overall. For those who need to share their code and/or access someone else’s opening an account online is a must: beware with GitHub for instance your project will be seen by others unless you pay for a private repository. On Bitbucket you can get a private account for free.
4 Online programming course for Android development completed?
With ease and confidence you decided to enrol in an online programming course.
You chose your course carefully and followed it enthusiastically, you just loved it!
You have now achieved your goal and obtained a computer programming certificate or something similar, you are eager to develop for Android operating systems because you know how to make an app.
The world is your oyster!
You can carry on learning and take a computer programming degree, you can learn other programming languages (it all helps and it is not rare for a programmer master 3 to 4 different programming languages.)
You can especially put into practice your new acquired skills in order to create the Android app you have been dreaming about. You can even look for a job if that is what you want!