Biggest Hurdle To Start Programming in Android

Biggest Hurdle To Start Programming in Android

How do i start? Where to start? Which course to take? How to become a master in android programming? Some questions that haunt a lot of starting programmers and also people looking to shift to Android.
“Consistency is key” – ok!! Am not going to bore you with lots of quotes and unwanted philosophical lines. The mountain looks giant when you are at its foot, this is true for something like android as well. Android is an Ocean that only few have sailed through, the ones who have, have made a killing out of it. Be it monetizing the right apps or creating a product out of a stellar idea, it all finally comes down to how you start.
I can list tons of books and materials here (hereone more, i can go on…..) and end the post right away, but am not going to. The point of this blog is to create a sense of awareness and also list out places where you can start and at the same time, tell you where the bridge might break.
Read for next few minutes carefully, because the word “consistency” might come up almost all the time, OK am just kidding.
The next few minutes i will list down all the important factors that will help you start and get going with Android programming and at the same time, tell you about the places where you will find difficulties so that you can make up your mind to face them.
Image result for coding funny
If only programming can be this easy. It will be if you live it!

Keep it Simple (Buttons, Textviews, Server, Database)

One aspect of android is that, there are tons of things that you have to know to first off make a decent app and release it in the play store. The first app that i created was called Follow My Friend, a light weight location tracker that will give the ability to follow family and friend’s live location.
The problem statement looks very simple, however the app took me close to 2 weeks to code and test and finally another 3 days to release it. The point here is, always start small.
By starting small, you give yourself realistic goals to meet in the first place. Yes, 2 weeks to code, with 10 hours of coding a day and testing for another 20 – 30 hours is not the very first thing you want to do, but as someone who has gone through this process before with other programming languages, it seemed as a realistic target to me.
Starting small doesnt necessarily always mean you have to create a simple calculator app and publish it. Come on, who are you kidding! There are tons of apps out there with the same problem statement and you did not per se start small. With some one who is just starting to learn android programming, i wouldnt appreciate if even they did that, because you did not start small.

How small is actually small

The question now is, what is the small that i am talking about. The small here is, setting a realistic target, which might be “Create a button, which when i click, must open a dialog to choose a photo from the gallery and upload it to my firebase database, from where i trigger success message and also update a JSON database with the file name and time stamp”. Now this, is a small target that you must look to achieve. First of all, this isnt a very unique idea that i have come up with, but the idea is mine, the database structure is mine. The button that i have created and the photo that i have saved, is all mine.
This is how you must start, push yourself to the next step when you learn about a topic today. With that mentality, Android will not be a daunting task, for that matter, programming itself wont be.
The hurdle however, when you try to do this is, you might lose interest because, nothing worked even after spending a day to code the task down. The app crashes and you dont understand why it does. The interest starts fading off, and you start to think, you arent made up for Android programming.
This isnt wrong or something only you will face. This is a common thing that almost everyone faces when they start. Like i mentioned in the beginning, the mountain looks huge when you are standing in its foot. The ability to get through that makes you a better programmer.
If the task looks huge, break it down. Break it down into multiple smaller tasks and execute them till you get your desired final product. Because, there is nothing that cannot be done by a human brain(OK! I will stop!!)
Image result for keep it simple
Android Programming in 3 words

Learn From Your Mistakes (Null pointer, array out of bound, initialisation error)

There are lots and lots of scenarios where, you end up getting stuck at some point and when you get stuck at the same point again in the future you dont remember how you came out of it.
The point to note here is, learn from the mistakes that you made. You might have declared an array, but might not have initialised it, and you will be trying to set a value to it. The program fails every single time and you keep staring at that place for a minor error but dont end up finding it for hours together.
If you can relate to this, then you are under the category called, “Null pointer Exception”.There are loads of scenarios where you will be stuck at some point missing out on the very basics of programming. It is better to learn quickly on how to find it, and get out of the situation faster, because you can sit hours together on some other really daunting task rather than a petty “Array out of bound” or a “Null pointer Exception”.
The hurdle that you might face with this is, you never remember how you solved a similar error when you faced it before. The point to note is, you dont have to, your muscle memory will take care of it.
Make sure you are making the same mistake again but train your mind to think of all the possible scenarios on why it might have happened. This way, you can quickly negotiate the situation when you commit the mistake for 19,287th time
Image result for Make mistakes
Always!! Dont be afraid to make them.

Keep a note to track your progress (Writing code down will be of huge help)

Think how you leant to write alphabets in the first place. Think how you started to write your first line in english. You did not take your Mac out and type your first line. You! PENNED it down. You! wrote your first letters with a pencil. The same concept can be applied to learning to code something you think is very huge and daunting.
I believe and even tell people who ask me to write a piece of code down. It isnt always about typing it in a editor and executing it, it is also about training your memory with the code that you might want to type. The point i am trying to make is, your brain cells are much more faster in storing something that you write rather than reading it and copy pasting it!!!! OKKK i dint spill the biggest secret hopefully!!
There is no denying that, people do copy and paste code almost all the time. After all stack overflows and Quora keeps lots of people going on in this crazy world!!
Ok, that aside, we come to the point in hand. Writing code down and practicing it not only improves the efficiency with which you program but also, registers where you left off the previous day if you are going to be coding for a period of time.
Image result for Write it down
Write Write Write! Sharpen the Pencil! Write again!!

Remember to make use of forums to ask lots of questions (StackOverflow for life, but dont copy paste it. Instead, read and learn)

The point that i had mentioned above, is to make sure you are making lots and lots of mistakes but at the same time, learning to come out of it in the shortest time possible. I can give you loads of stages where you are tempted to copy paste an answer to your code and it might completely mess up with the structure of the code.
The problem here is, the stack overflow answers are mostly, almost all the time answering the particular question that has been asked. Sometimes the question can be generic and it might solve the question you have.
So, always make it a habit to read and learn and take 2 minutes extra to even see and type the code but do not copy paste it. It affects your ability to grasp the code or for that matter learn programming in the long term.
For something like Android which owns almost 88% of the global market, the key point here is to learn the basics better and learn from mistakes.
Image result for Ask questions
Asking Question is a priviledge!Maybe not so much for the one who is going to answer it!!
All the points above might seem vague if you are newbie, but the points i have listed isnt filled with codes and advanced concepts. Learning the basics well is of utmost importance when you are starting. You can start here, i have carefully created content’s for you to learn. Follow up with me, for i will teach you the tips and tricks that i have employed to learn to code better and at the same time, make lots of applications that are live in the market now.
Link to my first Android App – Follow My Friend
You can drop in any comments you have, and i will be happy to answer all of them.